A special subclass of DataField which can contain any value of any type. Any input is accepted and is treated as valid. It is not recommended to use this class except for very specific circumstances.

Hierarchy (view full)

Constructors

Properties

name: string

The field name of this DataField instance. This is assigned by SchemaField#initialize.

parent: DataField

A reference to the parent schema to which this DataField belongs. This is assigned by SchemaField#initialize.

The initially provided options which configure the data field

hierarchical: boolean = false

Whether this field defines part of a Document/Embedded Document hierarchy.

recursive: boolean = false

Does this field type contain other fields in a recursive structure? Examples of recursive fields are SchemaField, ArrayField, or TypeDataField Examples of non-recursive fields are StringField, NumberField, or ObjectField

Accessors

  • get fieldPath(): string
  • A dot-separated string representation of the field path within the parent schema.

    Returns string

  • get hasFormSupport(): boolean
  • Does this form field class have defined form support?

    Returns boolean

Methods

  • Parameters

    • value: any

    Returns any

  • Apply a function to this DataField which propagates through recursively to any contained data schema.

    Parameters

    • fn: string | Function

      The function to apply

    • value: any

      The current value of this field

    • Optional options: object = {}

      Additional options passed to the applied function

    Returns object

    The results object

  • Coerce source data to ensure that it conforms to the correct data type for the field. Data coercion operations should be simple and synchronous as these are applied whenever a DataModel is constructed. For one-off cleaning of user-provided input the sanitize method should be used.

    Parameters

    • value: any

      The initial value

    • Optional options: {
          partial: boolean;
          source: object;
      } = {}

      Additional options for how the field is cleaned

      • partial: boolean

        Whether to perform partial cleaning?

      • source: object

        The root data model being cleaned

    Returns any

    The cast value

  • Attempt to retrieve a valid initial value for the DataField.

    Parameters

    • data: object

      The source data object for which an initial value is required

    Returns any

    A valid initial value

    Throws

    An error if there is no valid initial value defined

  • Validate a candidate input for this field, ensuring it meets the field requirements. A validation failure can be provided as a raised Error (with a string message), by returning false, or by returning a DataModelValidationFailure instance. A validator which returns true denotes that the result is certainly valid and further validations are unnecessary.

    Parameters

    Returns DataModelValidationFailure

    Returns a DataModelValidationFailure if a validation failure occurred.

  • Internal

    Certain fields may declare joint data validation criteria. This method will only be called if the field is designated as recursive.

    Parameters

    • data: object

      Candidate data for joint model validation

    • options: object = {}

      Options which modify joint model validation

    Returns void

    Throws

    An error if joint model validation fails

  • Initialize the original source data into a mutable copy for the DataModel instance.

    Parameters

    • value: any

      The source value of the field

    • model: Object

      The DataModel instance that this field belongs to

    • Optional options: object = {}

      Initialization options

    Returns any

    An initialized copy of the source data

  • Export the current value of the field into a serializable object.

    Parameters

    • value: any

      The initialized value of the field

    Returns any

    An exported representation of the field

  • Internal

    Recursively traverse a schema and retrieve a field specification by a given path

    Parameters

    • path: string[]

      The field path as an array of strings

    Returns AnyField

  • Render this DataField as an HTML element.

    Parameters

    • config: FormInputConfig = {}

      Form element configuration parameters

    Returns HTMLElement | HTMLCollection

    A rendered HTMLElement for the field

    Throws

    An Error if this DataField subclass does not support input rendering

  • Render this DataField as a standardized form-group element.

    Parameters

    • groupConfig: FormGroupConfig = {}

      Configuration options passed to the wrapping form-group

    • inputConfig: FormInputConfig = {}

      Input element configuration options passed to DataField#toInput

    Returns HTMLDivElement

    The rendered form group element

  • Apply an ActiveEffectChange to this field.

    Parameters

    • value: any

      The field's current value.

    • model: DataModel

      The model instance.

    • change: EffectChangeData

      The change to apply.

    Returns any

    The updated value.

  • Internal

    Cast a change delta into an appropriate type to be applied to this field.

    Parameters

    • delta: any

      The change delta.

    Returns any

  • Protected

    Apply any cleaning logic specific to this DataField type.

    Parameters

    • value: any

      The appropriately coerced value.

    • Optional options: object

      Additional options for how the field is cleaned.

    Returns any

    The cleaned value.

  • Protected

    Special validation rules which supersede regular field validation. This validator screens for certain values which are otherwise incompatible with this field like null or undefined.

    Parameters

    • value: any

      The candidate value

    Returns boolean | void

    A boolean to indicate with certainty whether the value is valid. Otherwise, return void.

    Throws

    May throw a specific error if the value is not valid

  • Protected

    Render this DataField as an HTML element. Subclasses should implement this method rather than the public toInput method which wraps it.

    Parameters

    • config: FormInputConfig

      Form element configuration parameters

    Returns HTMLElement | HTMLCollection

    A rendered HTMLElement for the field

    Throws

    An Error if this DataField subclass does not support input rendering

  • Protected

    Apply an ADD change to this field.

    Parameters

    • value: any

      The field's current value.

    • delta: any

      The change delta.

    • model: DataModel

      The model instance.

    • change: EffectChangeData

      The original change data.

    Returns any

    The updated value.

  • Protected

    Apply a MULTIPLY change to this field.

    Parameters

    • value: any

      The field's current value.

    • delta: any

      The change delta.

    • model: DataModel

      The model instance.

    • change: EffectChangeData

      The original change data.

    Returns any

    The updated value.

  • Protected

    Apply an OVERRIDE change to this field.

    Parameters

    • value: any

      The field's current value.

    • delta: any

      The change delta.

    • model: DataModel

      The model instance.

    • change: EffectChangeData

      The original change data.

    Returns any

    The updated value.

  • Protected

    Apply an UPGRADE change to this field.

    Parameters

    • value: any

      The field's current value.

    • delta: any

      The change delta.

    • model: DataModel

      The model instance.

    • change: EffectChangeData

      The original change data.

    Returns any

    The updated value.

  • Protected

    Apply a DOWNGRADE change to this field.

    Parameters

    • value: any

      The field's current value.

    • delta: any

      The change delta.

    • model: DataModel

      The model instance.

    • change: EffectChangeData

      The original change data.

    Returns any

    The updated value.

  • Protected

    Apply a CUSTOM change to this field.

    Parameters

    • value: any

      The field's current value.

    • delta: any

      The change delta.

    • model: DataModel

      The model instance.

    • change: EffectChangeData

      The original change data.

    Returns any

    The updated value.