@tangential/configurable-input-widgets
Version:
Input Widgets with persistable, dynamic configuration.
35 lines • 4.91 kB
JavaScript
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==