A subclass of [ArrayField]ArrayField which supports a set of contained elements. Elements in this set are treated as fungible and may be represented in any order or discarded if invalid.

Hierarchy (view full)

Constructors

Properties

element: DataField

The data type of each element in this array

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

recursive: boolean = true
hierarchical: boolean = false

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

Accessors

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

    Returns string

  • get _defaults(): object
  • Default parameters for this field type

    Returns object

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

    Returns boolean

Methods

  • Parameters

    • value: any
    • model: any
    • options: {} = {}

      Returns any

    • Parameters

      • config: any

      Returns HTMLElement

    • Parameters

      • value: any
      • delta: any
      • model: any
      • change: any

      Returns any

    • Parameters

      • changes: any
      • options: any

      Returns void

    • Parameters

      • value: any

      Returns any[]

    • Parameters

      • value: any
      • options: any

      Returns any

    • Parameters

      • fn: any
      • value: any[] = []
      • options: {} = {}

        Returns object[]

      • Migrate this field's candidate source data.

        Parameters

        • sourceData: object

          Candidate source data of the root model

        • fieldData: any

          The value of this field within the source data

        Returns void

      • 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.

      • 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.

      • 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

        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.

      • Protected

        Validate the contained element type of the ArrayField

        Parameters

        • element: any

          The type of Array element

        Returns any

        The validated element type

        Throws

        An error if the element is not a valid type