UNPKG

@netgrif/components-core

Version:

Netgrif Application engine frontend core Angular library

45 lines 6.97 kB
import { DataField } from '../../models/abstract-data-field'; import { FieldTypeResource } from '../../../task-content/model/field-type-resource'; import { ComponentPrefixes } from '../../models/component'; import { UpdateStrategy } from "../../models/update-strategy"; import { Subject } from 'rxjs'; export class MultichoiceField extends DataField { _choices; _fieldType; _updatedChoices; constructor(stringId, title, values, _choices, behavior, placeholder, description, layout, _fieldType = FieldTypeResource.MULTICHOICE, validations, component, parentTaskId) { super(stringId, title, values, behavior, placeholder, description, layout, validations, component, parentTaskId); this._choices = _choices; this._fieldType = _fieldType; this._updatedChoices = new Subject(); } set choices(choices) { this._choices = choices; } get choices() { return this._choices; } get fieldType() { return this._fieldType; } get updatedChoices() { return this._updatedChoices.asObservable(); } updateChoice() { this._updatedChoices.next(); } getUpdateOnStrategy() { return UpdateStrategy.CHANGE; } getTypedComponentType() { return ComponentPrefixes.MULTICHOICE + this.getComponentType(); } valueEquality(a, b) { // we assume that multichoice options are always given in the same order return (!a && !b) || (!!a && !!b && a.length === b.length && a.every((element, index) => element === b[index])); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGljaG9pY2UtZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMtY29yZS9zcmMvbGliL2RhdGEtZmllbGRzL211bHRpY2hvaWNlLWZpZWxkL21vZGVscy9tdWx0aWNob2ljZS1maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFHM0QsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0saURBQWlELENBQUM7QUFDbEYsT0FBTyxFQUFZLGlCQUFpQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFFcEUsT0FBTyxFQUFtQixjQUFjLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUM5RSxPQUFPLEVBQWEsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBT3pDLE1BQU0sT0FBTyxnQkFBa0IsU0FBUSxTQUF3QjtJQUlpQjtJQUUvQztJQUpuQixlQUFlLENBQWdCO0lBRXpDLFlBQVksUUFBZ0IsRUFBRSxLQUFhLEVBQUUsTUFBcUIsRUFBVSxRQUFzQyxFQUN0RyxRQUFrQixFQUFFLFdBQW9CLEVBQUUsV0FBb0IsRUFBRSxNQUFlLEVBQzlELGFBQWEsaUJBQWlCLENBQUMsV0FBVyxFQUFFLFdBQStCLEVBQzVGLFNBQXFCLEVBQUUsWUFBcUI7UUFDcEQsS0FBSyxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBSnpDLGFBQVEsR0FBUixRQUFRLENBQThCO1FBRXJGLGVBQVUsR0FBVixVQUFVLENBQWdDO1FBR25FLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUMvQyxDQUFDO0lBRUQsSUFBSSxPQUFPLENBQUMsT0FBcUM7UUFDN0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDZCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDL0MsQ0FBQztJQUVNLFlBQVk7UUFDZixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFTSxtQkFBbUI7UUFDdEIsT0FBTyxjQUFjLENBQUMsTUFBTSxDQUFDO0lBQ2pDLENBQUM7SUFFTSxxQkFBcUI7UUFDeEIsT0FBTyxpQkFBaUIsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDbkUsQ0FBQztJQUVTLGFBQWEsQ0FBQyxDQUFnQixFQUFFLENBQWdCO1FBQ3RELHdFQUF3RTtRQUN4RSxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNqQixDQUFDLENBQUMsQ0FBQztlQUNBLENBQUMsQ0FBQyxDQUFDO2VBQ0gsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsTUFBTTtlQUNyQixDQUFDLENBQUMsS0FBSyxDQUFFLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsT0FBTyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUN4RCxDQUFDO0lBQ04sQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEYXRhRmllbGR9IGZyb20gJy4uLy4uL21vZGVscy9hYnN0cmFjdC1kYXRhLWZpZWxkJztcbmltcG9ydCB7QmVoYXZpb3J9IGZyb20gJy4uLy4uL21vZGVscy9iZWhhdmlvcic7XG5pbXBvcnQge0xheW91dH0gZnJvbSAnLi4vLi4vbW9kZWxzL2xheW91dCc7XG5pbXBvcnQge0ZpZWxkVHlwZVJlc291cmNlfSBmcm9tICcuLi8uLi8uLi90YXNrLWNvbnRlbnQvbW9kZWwvZmllbGQtdHlwZS1yZXNvdXJjZSc7XG5pbXBvcnQge0NvbXBvbmVudCwgQ29tcG9uZW50UHJlZml4ZXN9IGZyb20gJy4uLy4uL21vZGVscy9jb21wb25lbnQnO1xuaW1wb3J0IHtWYWxpZGF0aW9ufSBmcm9tICcuLi8uLi9tb2RlbHMvdmFsaWRhdGlvbic7XG5pbXBvcnQge1VwZGF0ZU9uU3RyYXRlZ3ksIFVwZGF0ZVN0cmF0ZWd5fSBmcm9tIFwiLi4vLi4vbW9kZWxzL3VwZGF0ZS1zdHJhdGVneVwiO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGludGVyZmFjZSBNdWx0aWNob2ljZUZpZWxkVmFsdWUge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHZhbHVlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBNdWx0aWNob2ljZUZpZWxkICBleHRlbmRzIERhdGFGaWVsZDxBcnJheTxzdHJpbmc+PiB7XG5cbiAgICBwcm90ZWN0ZWQgX3VwZGF0ZWRDaG9pY2VzOiBTdWJqZWN0PHZvaWQ+O1xuXG4gICAgY29uc3RydWN0b3Ioc3RyaW5nSWQ6IHN0cmluZywgdGl0bGU6IHN0cmluZywgdmFsdWVzOiBBcnJheTxzdHJpbmc+LCBwcml2YXRlIF9jaG9pY2VzOiBBcnJheTxNdWx0aWNob2ljZUZpZWxkVmFsdWU+LFxuICAgICAgICAgICAgICAgIGJlaGF2aW9yOiBCZWhhdmlvciwgcGxhY2Vob2xkZXI/OiBzdHJpbmcsIGRlc2NyaXB0aW9uPzogc3RyaW5nLCBsYXlvdXQ/OiBMYXlvdXQsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfZmllbGRUeXBlID0gRmllbGRUeXBlUmVzb3VyY2UuTVVMVElDSE9JQ0UsIHZhbGlkYXRpb25zPzogQXJyYXk8VmFsaWRhdGlvbj4sXG4gICAgICAgICAgICAgICAgY29tcG9uZW50PzogQ29tcG9uZW50LCBwYXJlbnRUYXNrSWQ/OiBzdHJpbmcpIHtcbiAgICAgICAgc3VwZXIoc3RyaW5nSWQsIHRpdGxlLCB2YWx1ZXMsIGJlaGF2aW9yLCBwbGFjZWhvbGRlciwgZGVzY3JpcHRpb24sIGxheW91dCwgdmFsaWRhdGlvbnMsIGNvbXBvbmVudCwgcGFyZW50VGFza0lkKTtcbiAgICAgICAgdGhpcy5fdXBkYXRlZENob2ljZXMgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIH1cblxuICAgIHNldCBjaG9pY2VzKGNob2ljZXM6IEFycmF5PE11bHRpY2hvaWNlRmllbGRWYWx1ZT4pIHtcbiAgICAgICAgdGhpcy5fY2hvaWNlcyA9IGNob2ljZXM7XG4gICAgfVxuXG4gICAgZ2V0IGNob2ljZXMoKTogQXJyYXk8TXVsdGljaG9pY2VGaWVsZFZhbHVlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jaG9pY2VzO1xuICAgIH1cblxuICAgIGdldCBmaWVsZFR5cGUoKTogRmllbGRUeXBlUmVzb3VyY2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5fZmllbGRUeXBlO1xuICAgIH1cblxuICAgIGdldCB1cGRhdGVkQ2hvaWNlcygpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3VwZGF0ZWRDaG9pY2VzLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyB1cGRhdGVDaG9pY2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3VwZGF0ZWRDaG9pY2VzLm5leHQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0VXBkYXRlT25TdHJhdGVneSgpOiBVcGRhdGVPblN0cmF0ZWd5IHtcbiAgICAgICAgcmV0dXJuIFVwZGF0ZVN0cmF0ZWd5LkNIQU5HRTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0VHlwZWRDb21wb25lbnRUeXBlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBDb21wb25lbnRQcmVmaXhlcy5NVUxUSUNIT0lDRSArIHRoaXMuZ2V0Q29tcG9uZW50VHlwZSgpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCB2YWx1ZUVxdWFsaXR5KGE6IEFycmF5PHN0cmluZz4sIGI6IEFycmF5PHN0cmluZz4pOiBib29sZWFuIHtcbiAgICAgICAgLy8gd2UgYXNzdW1lIHRoYXQgbXVsdGljaG9pY2Ugb3B0aW9ucyBhcmUgYWx3YXlzIGdpdmVuIGluIHRoZSBzYW1lIG9yZGVyXG4gICAgICAgIHJldHVybiAoIWEgJiYgIWIpIHx8IChcbiAgICAgICAgICAgICEhYVxuICAgICAgICAgICAgJiYgISFiXG4gICAgICAgICAgICAmJiBhLmxlbmd0aCA9PT0gYi5sZW5ndGhcbiAgICAgICAgICAgICYmIGEuZXZlcnkoIChlbGVtZW50LCBpbmRleCkgPT4gZWxlbWVudCA9PT0gYltpbmRleF0pXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19