docs: function setFieldValue (data, field, isRecord) {
      // do not set value for password input
      if (field.inputType === 'password') {
          return
      }
      // get value using either property or name fields
      var value = defined(data[field.property]) ? data[field.property] : data[field.name]
      // data is a record
      if (data.ImmutableCoreModelRecord) {
          // set record for field
          field.record = data
          // value was not found - could be due to resolving record so try to
          // lookup by default id column names
          if (!defined(value)) {
              // get default id column name from model
              var defaultIdColumnName = field.record.model.defaultColumns[field.property]
              // use for value if found
              if (defined(defaultIdColumnName)) {
                  value = data[defaultIdColumnName]
              }
          }
      }
      // field is nested array
      if (field.nested && field.array) {
          setFieldValuesNestedArray(field, value)
      }
      // set value
      else {
          field.value = value
      }
      // if field is select then set selected flag on option that matches value
      if (field.inputType === 'select') {
          _.each(field.options, option => {
              option.selected = option.value === field.value
          })
      }
      // if field is immutable and it has a value then make it readonly
      if (isRecord && field.immutable && defined(field.value)) {
          field.readonly = true
      }
  }