A subclass of foundry.data.fields.StringField which supports referencing some other Document by its UUID. This field may not be blank, but may be null to indicate that no UUID is referenced.

Hierarchy (View Summary)

Constructors

Properties

blank: boolean

Is the string allowed to be blank (empty)?

choices: object | Function | string[] = ...

An array of values or an object of values/labels which represent allowed choices for the field. A function may be provided which dynamically returns the array of choices.

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.

textSearch: boolean = ...

Is this string field a target for text search?

trim: boolean = ...

Should any provided string be trimmed as part of cleaning?

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 _defaults(): DataFieldOptions & {
        blank: boolean;
        choices: undefined;
        textSearch: boolean;
        trim: boolean;
    } & {
        blank: boolean;
        embedded: undefined;
        initial: null;
        nullable: boolean;
        required: boolean;
        type: undefined;
    }

    Default parameters for this field type

    Returns DataFieldOptions & {
        blank: boolean;
        choices: undefined;
        textSearch: boolean;
        trim: boolean;
    } & {
        blank: boolean;
        embedded: undefined;
        initial: null;
        nullable: boolean;
        required: boolean;
        type: undefined;
    }

  • 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

    Returns string

  • Internal

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

    Parameters

    • delta: any

      The change delta.

    Returns any

  • 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 undefined | DataField

    The corresponding DataField definition for that field, or undefined

  • Internal

    Commit a prepared update to DataModel#_source.

    Parameters

    • source: object

      The parent source object within which the key field exists

    • key: string

      The named field in source to commit

    • value: object

      The new value of the field which should be committed to source

    • diff: object

      The reported change to the field

    • options: DataModelUpdateOptions

      Options which modify how this update workflow is performed.

    Returns void

  • Internal

    Update the source data for a DataModel which includes this DataField. This method is responsible for modifying the provided source data as well as updating the tracked diff included in provided metadata.

    Parameters

    • source: object

      Source data of the DataModel which should be updated. This object is always a partial node of source data, relative to which this field belongs.

    • key: string

      The name of this field within the context of the source data.

    • value: any

      The candidate value that should be applied as an update.

    • difference: object

      The accumulated diff that is recursively populated as the model traverses through its schema fields.

    • options: DataModelUpdateOptions

      Options which modify how this update workflow is performed.

    Returns void

    An error if the requested update cannot be performed.

  • 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

    An error if joint model validation fails

  • 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

  • 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

    • Optionaloptions: 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

      An initial requested value

    • options: any

      Additional options for how the field is cleaned

    Returns any

    The cast value

  • 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

    • Optionaloptions: object = {}

      Initialization options

    Returns any

    An initialized copy of the source data

  • 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

  • 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

  • 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

    Apply any cleaning logic specific to this DataField type.

    Parameters

    • value: any

      The appropriately coerced value.

    • Optionaloptions: object

      Additional options for how the field is cleaned.

    Returns any

    The cleaned value.

  • Protected

    Test whether a provided value is a valid choice from the allowed choice set

    Parameters

    • value: string

      The provided value

    Returns boolean

    Is the choice valid?