A subclass of foundry.data.fields.ArrayField which supports an embedded Document collection. Invalid elements will be dropped from the collection during validation rather than failing for the field entirely.

Hierarchy (View Summary)

Constructors

Properties

element: typeof Document

The data type of each element in this array

name: undefined | string

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

The initially provided options which configure the data field

parent: any

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

hierarchical: boolean = true
recursive: boolean = true

Accessors

  • get fieldPath(): string

    A dot-separated string representation of the field path within the parent schema.

    Returns string

  • get model(): typeof Document

    A reference to the DataModel subclass of the embedded document element

    Returns typeof Document

  • get _defaults(): DataFieldOptions & {
        empty: boolean;
        exact: undefined;
        max: number;
        min: number;
        nullable: boolean;
        required: boolean;
    }

    Default parameters for this field type

    Returns DataFieldOptions & {
        empty: boolean;
        exact: undefined;
        max: number;
        min: number;
        nullable: boolean;
        required: boolean;
    }

  • get hasFormSupport(): boolean

    Does this form field class have defined form support?

    Returns boolean

Methods

  • Internal

    Add types of the source to the data if they are missing.

    Parameters

    • source: any

      The source data

    • changes: any

      The partial data

    • Optionaloptions: { changes?: object; source?: object }

      Additional options

      • Optionalchanges?: object

        The root data model changes

      • Optionalsource?: object

        The root data model source

    Returns void

  • Parameters

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

    Returns any

  • Parameters

    • value: any

    Returns any[]

  • Parameters

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

    Returns any

  • Parameters

    • source: any
    • key: any
    • value: any
    • diff: any
    • options: any

    Returns void

  • Dry-run an update of an EmbeddedCollection, modifying the contents of the safe copy of the source data.

    Parameters

    • source: any
    • key: any
    • value: any
    • difference: any
    • options: any

    Returns void

  • Parameters

    • changes: any
    • options: any

    Returns void

  • Parameters

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

    Returns {}[]

  • 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

      An initial requested value

    • Optionaloptions: { partial?: boolean; source?: object } = {}

      Additional options for how the field is cleaned

      • Optionalpartial?: boolean

        Whether to perform partial cleaning?

      • Optionalsource?: object

        The root data model being cleaned

    Returns any

    The cast value

  • Parameters

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

    Returns any

  • 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

  • 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

  • Render this DataField as an HTML element.

    Parameters

    Returns HTMLElement | HTMLCollection

    A rendered HTMLElement for the field

    An Error if this DataField subclass does not support input rendering

  • 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 void | DataModelValidationFailure

    Returns a DataModelValidationFailure if a validation failure occurred.

  • Protected

    Clean data for an individual element in the collection.

    Parameters

    • value: object

      Unclean data for the candidate embedded record

    • options: object = {}

      Options which control how data is cleaned

    Returns object

    Cleaned data for the candidate embedded record

  • Protected

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

    Parameters

    Returns HTMLElement | HTMLCollection

    A rendered HTMLElement for the field

    An Error if this DataField subclass does not support input rendering

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

    May throw a specific error if the value is not valid