@tangential/configurable-input-widgets
Version:
Input Widgets with persistable, dynamic configuration.
32 lines • 5.49 kB
JavaScript
import { ObjectUtil } from '@tangential/core';
import { StampedMediaType } from '@tangential/media-types';
import { ConfigurableInputType } from './data-type/configurable-input-type';
const Model = {
$isSystem: false,
_inputName: null,
orderIndex: null,
disabled: false,
label: 'Label for this value',
typeConfig: null
};
const inputConfigRegistry = {};
export class InputConfig extends StampedMediaType {
constructor(_inputName, config, key) {
super(config, key);
this._inputName = _inputName;
this.typeConfig = ConfigurableInputType.create(this.typeConfig);
if (this.$key === 'when') {
this.$isSystem = true;
}
}
static register(inputConfigCtor) {
inputConfigRegistry[inputConfigCtor['INPUT_NAME']] = inputConfigCtor;
}
static create(config, key, inputName) {
key = key || (config ? config.$key : null);
inputName = inputName || (config ? config._inputName : null);
return new inputConfigRegistry[inputName](config, key);
}
}
InputConfig.$model = ObjectUtil.assignDeep({}, StampedMediaType.$model, Model);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ2VudGlhbC9jb25maWd1cmFibGUtaW5wdXQtd2lkZ2V0cy9zcmMvbGliL2lucHV0LWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBRUwsVUFBVSxFQUNYLE1BQU0sa0JBQWtCLENBQUE7QUFDekIsT0FBTyxFQUNMLGdCQUFnQixFQUVqQixNQUFNLHlCQUF5QixDQUFBO0FBQ2hDLE9BQU8sRUFDTCxxQkFBcUIsRUFFdEIsTUFBTSxxQ0FBcUMsQ0FBQTtBQVk1QyxNQUFNLEtBQUssR0FBb0I7SUFDN0IsU0FBUyxFQUFHLEtBQUs7SUFDakIsVUFBVSxFQUFFLElBQUk7SUFDaEIsVUFBVSxFQUFFLElBQUk7SUFDaEIsUUFBUSxFQUFJLEtBQUs7SUFDakIsS0FBSyxFQUFPLHNCQUFzQjtJQUNsQyxVQUFVLEVBQUUsSUFBSTtDQUNqQixDQUFBO0FBRUQsTUFBTSxtQkFBbUIsR0FBRyxFQUFFLENBQUE7QUFFOUIsTUFBTSxPQUFnQixXQUFZLFNBQVEsZ0JBQWdCO0lBV3hELFlBQVksVUFBa0IsRUFBRSxNQUF1QixFQUFFLEdBQVk7UUFDbkUsS0FBSyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQTtRQUNsQixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQTtRQUM1QixJQUFJLENBQUMsVUFBVSxHQUFHLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUE7UUFDL0QsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRTtZQUN4QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQTtTQUN0QjtJQUNILENBQUM7SUFJRCxNQUFNLENBQUMsUUFBUSxDQUF3QixlQUF3QjtRQUM3RCxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLENBQUMsR0FBRyxlQUFlLENBQUE7SUFDdEUsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBdUIsRUFBRSxHQUFZLEVBQUUsU0FBa0I7UUFDckUsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDMUMsU0FBUyxHQUFHLFNBQVMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDNUQsT0FBTyxJQUFJLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUN4RCxDQUFDOztBQTdCZSxrQkFBTSxHQUFvQixVQUFVLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRSxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1R5cGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBKc29uaWZpZWQsXG4gIE9iamVjdFV0aWxcbn0gZnJvbSAnQHRhbmdlbnRpYWwvY29yZSdcbmltcG9ydCB7XG4gIFN0YW1wZWRNZWRpYVR5cGUsXG4gIFN0YW1wZWRNZWRpYVR5cGVKc29uXG59IGZyb20gJ0B0YW5nZW50aWFsL21lZGlhLXR5cGVzJ1xuaW1wb3J0IHtcbiAgQ29uZmlndXJhYmxlSW5wdXRUeXBlLFxuICBDb25maWd1cmFibGVJbnB1dFR5cGVKc29uXG59IGZyb20gJy4vZGF0YS10eXBlL2NvbmZpZ3VyYWJsZS1pbnB1dC10eXBlJ1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgSW5wdXRDb25maWdKc29uIGV4dGVuZHMgU3RhbXBlZE1lZGlhVHlwZUpzb24ge1xuICAkaXNTeXN0ZW0/OiBib29sZWFuXG4gIF9pbnB1dE5hbWU/OiBzdHJpbmdcbiAgb3JkZXJJbmRleD86IG51bWJlclxuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgbGFiZWw/OiBzdHJpbmdcbiAgdHlwZUNvbmZpZz86IENvbmZpZ3VyYWJsZUlucHV0VHlwZUpzb25cbn1cblxuY29uc3QgTW9kZWw6IElucHV0Q29uZmlnSnNvbiA9IHtcbiAgJGlzU3lzdGVtOiAgZmFsc2UsXG4gIF9pbnB1dE5hbWU6IG51bGwsXG4gIG9yZGVySW5kZXg6IG51bGwsXG4gIGRpc2FibGVkOiAgIGZhbHNlLFxuICBsYWJlbDogICAgICAnTGFiZWwgZm9yIHRoaXMgdmFsdWUnLFxuICB0eXBlQ29uZmlnOiBudWxsXG59XG5cbmNvbnN0IGlucHV0Q29uZmlnUmVnaXN0cnkgPSB7fVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSW5wdXRDb25maWcgZXh0ZW5kcyBTdGFtcGVkTWVkaWFUeXBlIGltcGxlbWVudHMgSnNvbmlmaWVkPElucHV0Q29uZmlnLCBJbnB1dENvbmZpZ0pzb24+LCBJbnB1dENvbmZpZ0pzb24ge1xuICBzdGF0aWMgb3ZlcnJpZGUgJG1vZGVsOiBJbnB1dENvbmZpZ0pzb24gPSBPYmplY3RVdGlsLmFzc2lnbkRlZXAoe30sIFN0YW1wZWRNZWRpYVR5cGUuJG1vZGVsLCBNb2RlbClcblxuICBzdGF0aWMgSU5QVVRfTkFNRTogc3RyaW5nXG4gICRpc1N5c3RlbTogYm9vbGVhblxuICBfaW5wdXROYW1lOiBzdHJpbmdcbiAgb3JkZXJJbmRleD86IG51bWJlclxuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgbGFiZWw6IHN0cmluZ1xuICB0eXBlQ29uZmlnPzogQ29uZmlndXJhYmxlSW5wdXRUeXBlXG5cbiAgY29uc3RydWN0b3IoX2lucHV0TmFtZTogc3RyaW5nLCBjb25maWc6IElucHV0Q29uZmlnSnNvbiwga2V5Pzogc3RyaW5nKSB7XG4gICAgc3VwZXIoY29uZmlnLCBrZXkpXG4gICAgdGhpcy5faW5wdXROYW1lID0gX2lucHV0TmFtZVxuICAgIHRoaXMudHlwZUNvbmZpZyA9IENvbmZpZ3VyYWJsZUlucHV0VHlwZS5jcmVhdGUodGhpcy50eXBlQ29uZmlnKVxuICAgIGlmICh0aGlzLiRrZXkgPT09ICd3aGVuJykge1xuICAgICAgdGhpcy4kaXNTeXN0ZW0gPSB0cnVlXG4gICAgfVxuICB9XG5cbiAgYWJzdHJhY3QgZ2V0RGVtb0luc3RhbmNlKClcblxuICBzdGF0aWMgcmVnaXN0ZXI8VCBleHRlbmRzIElucHV0Q29uZmlnPihpbnB1dENvbmZpZ0N0b3I6IFR5cGU8VD4pIHtcbiAgICBpbnB1dENvbmZpZ1JlZ2lzdHJ5W2lucHV0Q29uZmlnQ3RvclsnSU5QVVRfTkFNRSddXSA9IGlucHV0Q29uZmlnQ3RvclxuICB9XG5cbiAgc3RhdGljIGNyZWF0ZShjb25maWc6IElucHV0Q29uZmlnSnNvbiwga2V5Pzogc3RyaW5nLCBpbnB1dE5hbWU/OiBzdHJpbmcpIHtcbiAgICBrZXkgPSBrZXkgfHwgKGNvbmZpZyA/IGNvbmZpZy4ka2V5IDogbnVsbClcbiAgICBpbnB1dE5hbWUgPSBpbnB1dE5hbWUgfHwgKGNvbmZpZyA/IGNvbmZpZy5faW5wdXROYW1lIDogbnVsbClcbiAgICByZXR1cm4gbmV3IGlucHV0Q29uZmlnUmVnaXN0cnlbaW5wdXROYW1lXShjb25maWcsIGtleSlcbiAgfVxufVxuIl19