UNPKG

@tangential/configurable-input-widgets

Version:

Input Widgets with persistable, dynamic configuration.

35 lines 4.91 kB
import { ObjectUtil } from '@tangential/core'; import { ConfigurableInputType } from '../configurable-input-type'; import { NumberIval } from './number-ival'; const Model = { min: 0, max: 100, step: 1, decimalPlaces: 1, defaultValue: 50 }; export class NumberType extends ConfigurableInputType { constructor(config, key) { super(config || {}, key); } getInputTypeKey() { return NumberType.TYPE_NAME; } isNumeric() { return true; } createValue(cfg, key) { cfg = cfg || {}; return new NumberIval({ value: isNumeric(cfg.value) ? cfg.value : this.defaultValue }, key || this.$key); } } NumberType.$model = ObjectUtil.assignDeep({}, ConfigurableInputType.$model, Model); NumberType.TYPE_NAME = 'Number'; // Was once exposed. Alas. Thanks to https://github.com/angular/angular/blob/4.3.x/packages/common/src/pipes/number_pipe.ts#L172 export function isNumeric(value) { return !isNaN(value - parseFloat(value)); } ConfigurableInputType.register(NumberType); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLXR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nZW50aWFsL2NvbmZpZ3VyYWJsZS1pbnB1dC13aWRnZXRzL3NyYy9saWIvZGF0YS10eXBlL251bWJlci9udW1iZXItdHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVksVUFBVSxFQUFDLE1BQU0sa0JBQWtCLENBQUE7QUFFdEQsT0FBTyxFQUFDLHFCQUFxQixFQUE0QixNQUFNLDRCQUE0QixDQUFBO0FBQzNGLE9BQU8sRUFBQyxVQUFVLEVBQWUsTUFBTSxlQUFlLENBQUE7QUFVdEQsTUFBTSxLQUFLLEdBQWlCO0lBQzFCLEdBQUcsRUFBWSxDQUFDO0lBQ2hCLEdBQUcsRUFBWSxHQUFHO0lBQ2xCLElBQUksRUFBVyxDQUFDO0lBQ2hCLGFBQWEsRUFBRSxDQUFDO0lBQ2hCLFlBQVksRUFBRyxFQUFFO0NBQ2xCLENBQUE7QUFFRCxNQUFNLE9BQU8sVUFBVyxTQUFRLHFCQUFxQjtJQVluRCxZQUFZLE1BQXFCLEVBQUUsR0FBWTtRQUM3QyxLQUFLLENBQUMsTUFBTSxJQUFJLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUMxQixDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sVUFBVSxDQUFDLFNBQVMsQ0FBQTtJQUM3QixDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUVELFdBQVcsQ0FBQyxHQUFrQixFQUFFLEdBQVk7UUFDMUMsR0FBRyxHQUFHLEdBQUcsSUFBUyxFQUFFLENBQUE7UUFDcEIsT0FBTyxJQUFJLFVBQVUsQ0FBQztZQUNwQixLQUFLLEVBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVk7U0FDNUQsRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7O0FBNUJlLGlCQUFNLEdBQWlCLFVBQVUsQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLHFCQUFxQixDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQTtBQUdyRixvQkFBUyxHQUFHLFFBQVEsQ0FBQTtBQTRCdEMsZ0lBQWdJO0FBQ2hJLE1BQU0sVUFBVSxTQUFTLENBQUMsS0FBVTtJQUNsQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUMzQyxDQUFDO0FBRUQscUJBQXFCLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtKc29uaWZpZWQsIE9iamVjdFV0aWx9IGZyb20gJ0B0YW5nZW50aWFsL2NvcmUnXG5cbmltcG9ydCB7Q29uZmlndXJhYmxlSW5wdXRUeXBlLCBDb25maWd1cmFibGVJbnB1dFR5cGVKc29ufSBmcm9tICcuLi9jb25maWd1cmFibGUtaW5wdXQtdHlwZSdcbmltcG9ydCB7TnVtYmVySXZhbCwgTnVtYmVySXZhbElGfSBmcm9tICcuL251bWJlci1pdmFsJ1xuXG5leHBvcnQgaW50ZXJmYWNlIE51bWJlclR5cGVJRiBleHRlbmRzIENvbmZpZ3VyYWJsZUlucHV0VHlwZUpzb24ge1xuICBtaW4/OiBudW1iZXJcbiAgbWF4PzogbnVtYmVyXG4gIHN0ZXA/OiBudW1iZXJcbiAgZGVjaW1hbFBsYWNlcz86IG51bWJlclxuICBkZWZhdWx0VmFsdWU/OiBudW1iZXJcbn1cblxuY29uc3QgTW9kZWw6IE51bWJlclR5cGVJRiA9IHtcbiAgbWluOiAgICAgICAgICAgMCxcbiAgbWF4OiAgICAgICAgICAgMTAwLFxuICBzdGVwOiAgICAgICAgICAxLFxuICBkZWNpbWFsUGxhY2VzOiAxLFxuICBkZWZhdWx0VmFsdWU6ICA1MFxufVxuXG5leHBvcnQgY2xhc3MgTnVtYmVyVHlwZSBleHRlbmRzIENvbmZpZ3VyYWJsZUlucHV0VHlwZSBpbXBsZW1lbnRzIEpzb25pZmllZDxOdW1iZXJUeXBlLCBOdW1iZXJUeXBlSUY+LCBOdW1iZXJUeXBlSUYge1xuICBzdGF0aWMgb3ZlcnJpZGUgJG1vZGVsOiBOdW1iZXJUeXBlSUYgPSBPYmplY3RVdGlsLmFzc2lnbkRlZXAoe30sIENvbmZpZ3VyYWJsZUlucHV0VHlwZS4kbW9kZWwsIE1vZGVsKVxuXG5cbiAgc3RhdGljIG92ZXJyaWRlIFRZUEVfTkFNRSA9ICdOdW1iZXInXG4gIG1pbj86IG51bWJlclxuICBtYXg/OiBudW1iZXJcbiAgc3RlcD86IG51bWJlclxuICBkZWNpbWFsUGxhY2VzPzogbnVtYmVyXG4gIG92ZXJyaWRlIGRlZmF1bHRWYWx1ZT86IG51bWJlclxuXG5cbiAgY29uc3RydWN0b3IoY29uZmlnPzogTnVtYmVyVHlwZUlGLCBrZXk/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihjb25maWcgfHwge30sIGtleSlcbiAgfVxuXG4gIGdldElucHV0VHlwZUtleSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBOdW1iZXJUeXBlLlRZUEVfTkFNRVxuICB9XG5cbiAgaXNOdW1lcmljKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICBjcmVhdGVWYWx1ZShjZmc/OiBOdW1iZXJJdmFsSUYsIGtleT86IHN0cmluZyk6IE51bWJlckl2YWwge1xuICAgIGNmZyA9IGNmZyB8fCA8YW55Pnt9XG4gICAgcmV0dXJuIG5ldyBOdW1iZXJJdmFsKHtcbiAgICAgIHZhbHVlOiBpc051bWVyaWMoY2ZnLnZhbHVlKSA/IGNmZy52YWx1ZSA6IHRoaXMuZGVmYXVsdFZhbHVlXG4gICAgfSwga2V5IHx8IHRoaXMuJGtleSk7XG4gIH1cbn1cblxuLy8gV2FzIG9uY2UgZXhwb3NlZC4gQWxhcy4gVGhhbmtzIHRvIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvYmxvYi80LjMueC9wYWNrYWdlcy9jb21tb24vc3JjL3BpcGVzL251bWJlcl9waXBlLnRzI0wxNzJcbmV4cG9ydCBmdW5jdGlvbiBpc051bWVyaWModmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICByZXR1cm4gIWlzTmFOKHZhbHVlIC0gcGFyc2VGbG9hdCh2YWx1ZSkpO1xufVxuXG5Db25maWd1cmFibGVJbnB1dFR5cGUucmVnaXN0ZXIoTnVtYmVyVHlwZSlcbiJdfQ==