interface IFieldDateTimeApi {
    formId: string;
    getTypeAttribute: TGetTypeAttribute<keyof IFieldDateTime>;
    id: string;
    setTypeAttribute: TSetTypeAttribute<keyof IFieldDateTime, TFieldDateTimeValues>;
    checkAll(): Promise<void>;
    empty(): Promise<void>;
    getGeneralAttribute(key): any;
    getValue(): IFieldValueUnion;
    goTo(): void;
    reset(): Promise<void>;
    setGeneralAttribute(key, value): void;
    setSearchFunction(search): void;
    setValue(value): Promise<void>;
    setVisibility(visible): void;
    uncheckAll(): Promise<void>;
}

Hierarchy (view full)

Properties

formId: string
getTypeAttribute: TGetTypeAttribute<keyof IFieldDateTime>

Example

Getting the minDate value

dateTimeField.getTypeAttribute('minDate');
id: string

Example

Setting timeStep minutes to intervals of 30

dateTimeField.setTypeAttribute('timeSteps', { hours: 1, minutes: 30, seconds: 1 });

Methods

  • Sets the field to a safe empty value (according to its type).

    Returns Promise<void>

  • Returns the value of the field. This will always be an object as some fields can have multiple values (e.g., Address field can have Address1, Address2, City, Province, Country values)

    Returns IFieldValueUnion

  • Scrolls to the targetted field

    Returns void

  • Resets the field to its default value. The default value is either one set for this specific field (e.g. via setGeneralAttribute('defaultValue')) or the default value of all fields of this type (e.g. an empty string for Short Answer fields).

    Returns Promise<void>

  • Sets an override search function for searchable fields (Dropdowns, etc.)

    Parameters

    Returns void

    Example

    Implementing a custom local search

    field.setSearchFunction((query, fieldId, options) => {
    return new Promise((resolve) => {
    // if the field is field 1, it should not show invalid options for this specific field
    resolve(options.filter(o => (query && o.label.indexOf(query) !== -1) && (fieldId !== '1' || o.value !== 'invalid')));
    });
    });

    Example

    Implementing a custom remote search

    field.setSearchFunction((query, fieldId, options) => {
    return fetch(`https://my-endpoint/options?query=${query}&id=${fieldId}`)
    .then(resonse => {
    // for an endpoint with a JSON payload
    return resonse.json();
    }).then(data => {
    // endpoint doesn't return field options, but some other custom model
    return data.items.map(i => ({ label: i.text, value: i.key, id: i.key }));
    });
    });