UNPKG

@tangential/configurable-input-widgets

Version:

Input Widgets with persistable, dynamic configuration.

42 lines 5.88 kB
import { ObjectUtil } from '@tangential/core'; import moment from 'moment'; import { ConfigurableInputType } from '../configurable-input-type'; import { DateTimeIval } from './date-time-ival'; const BROWSER_DATE_TIME_LOCAL_FORMAT = 'YYYY-MM-DDTHH:mm:ss'; const Model = { afterMils: null, beforeMils: null, defaultValue: null, defaultToNow: true }; export class DateTimeType extends ConfigurableInputType { constructor(config, key) { super(config || {}, key); } getInputTypeKey() { return DateTimeType.TYPE_NAME; } get uiValue() { return moment(this.defaultValue).format(BROWSER_DATE_TIME_LOCAL_FORMAT); } set uiValue(val) { this.defaultValue = moment(val, BROWSER_DATE_TIME_LOCAL_FORMAT).valueOf(); } isNumeric() { return false; } createValue(cfg, key) { cfg = cfg || {}; return new DateTimeIval({ value: cfg.value || this.getDefaultValue(), recordedInTimeZone: cfg.recordedInTimeZone || 'GMT' }, key || this.$key); } getDefaultValue() { return this.defaultToNow ? Date.now() : this.defaultValue; } } DateTimeType.$model = ObjectUtil.assignDeep({}, ConfigurableInputType.$model, Model); DateTimeType.TYPE_NAME = 'DateTime'; ConfigurableInputType.register(DateTimeType); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLXR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nZW50aWFsL2NvbmZpZ3VyYWJsZS1pbnB1dC13aWRnZXRzL3NyYy9saWIvZGF0YS10eXBlL2RhdGUtdGltZS9kYXRlLXRpbWUtdHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVksVUFBVSxFQUFDLE1BQU0sa0JBQWtCLENBQUE7QUFHdEQsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFBO0FBQzNCLE9BQU8sRUFBQyxxQkFBcUIsRUFBNEIsTUFBTSw0QkFBNEIsQ0FBQTtBQUMzRixPQUFPLEVBQUMsWUFBWSxFQUFpQixNQUFNLGtCQUFrQixDQUFBO0FBRTdELE1BQU0sOEJBQThCLEdBQUcscUJBQXFCLENBQUE7QUFTNUQsTUFBTSxLQUFLLEdBQW1CO0lBQzVCLFNBQVMsRUFBSyxJQUFJO0lBQ2xCLFVBQVUsRUFBSSxJQUFJO0lBQ2xCLFlBQVksRUFBRSxJQUFJO0lBQ2xCLFlBQVksRUFBRSxJQUFJO0NBQ25CLENBQUE7QUFFRCxNQUFNLE9BQU8sWUFBYSxTQUFRLHFCQUFxQjtJQVFyRCxZQUFZLE1BQXVCLEVBQUUsR0FBWTtRQUMvQyxLQUFLLENBQUMsTUFBTSxJQUFJLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUMxQixDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sWUFBWSxDQUFDLFNBQVMsQ0FBQTtJQUMvQixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sQ0FBQyw4QkFBOEIsQ0FBQyxDQUFBO0lBQ3pFLENBQUM7SUFFRCxJQUFJLE9BQU8sQ0FBQyxHQUFXO1FBQ3JCLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRSw4QkFBOEIsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFBO0lBQzNFLENBQUM7SUFFRCxTQUFTO1FBQ1AsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDO0lBRUQsV0FBVyxDQUFDLEdBQW9CLEVBQUUsR0FBWTtRQUM1QyxHQUFHLEdBQUcsR0FBRyxJQUFTLEVBQUUsQ0FBQTtRQUNwQixPQUFPLElBQUksWUFBWSxDQUFDO1lBQ3RCLEtBQUssRUFBZSxHQUFHLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDdkQsa0JBQWtCLEVBQUUsR0FBRyxDQUFDLGtCQUFrQixJQUFJLEtBQUs7U0FDcEQsRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUE7SUFDM0QsQ0FBQzs7QUFyQ2UsbUJBQU0sR0FBbUIsVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEVBQUUscUJBQXFCLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFBO0FBQ3ZGLHNCQUFTLEdBQUcsVUFBVSxDQUFBO0FBeUN4QyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0pzb25pZmllZCwgT2JqZWN0VXRpbH0gZnJvbSAnQHRhbmdlbnRpYWwvY29yZSdcblxuXG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCdcbmltcG9ydCB7Q29uZmlndXJhYmxlSW5wdXRUeXBlLCBDb25maWd1cmFibGVJbnB1dFR5cGVKc29ufSBmcm9tICcuLi9jb25maWd1cmFibGUtaW5wdXQtdHlwZSdcbmltcG9ydCB7RGF0ZVRpbWVJdmFsLCBEYXRlVGltZUl2YWxJRn0gZnJvbSAnLi9kYXRlLXRpbWUtaXZhbCdcblxuY29uc3QgQlJPV1NFUl9EQVRFX1RJTUVfTE9DQUxfRk9STUFUID0gJ1lZWVktTU0tRERUSEg6bW06c3MnXG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0ZVRpbWVUeXBlSUYgZXh0ZW5kcyBDb25maWd1cmFibGVJbnB1dFR5cGVKc29uIHtcbiAgYWZ0ZXJNaWxzPzogbnVtYmVyXG4gIGJlZm9yZU1pbHM/OiBudW1iZXJcbiAgZGVmYXVsdFZhbHVlPzogbnVtYmVyXG4gIGRlZmF1bHRUb05vdz86IGJvb2xlYW5cbn1cblxuY29uc3QgTW9kZWw6IERhdGVUaW1lVHlwZUlGID0ge1xuICBhZnRlck1pbHM6ICAgIG51bGwsXG4gIGJlZm9yZU1pbHM6ICAgbnVsbCxcbiAgZGVmYXVsdFZhbHVlOiBudWxsLFxuICBkZWZhdWx0VG9Ob3c6IHRydWVcbn1cblxuZXhwb3J0IGNsYXNzIERhdGVUaW1lVHlwZSBleHRlbmRzIENvbmZpZ3VyYWJsZUlucHV0VHlwZSBpbXBsZW1lbnRzIEpzb25pZmllZDxEYXRlVGltZVR5cGUsIERhdGVUaW1lVHlwZUlGPiwgRGF0ZVRpbWVUeXBlSUYge1xuICBzdGF0aWMgb3ZlcnJpZGUgJG1vZGVsOiBEYXRlVGltZVR5cGVJRiA9IE9iamVjdFV0aWwuYXNzaWduRGVlcCh7fSwgQ29uZmlndXJhYmxlSW5wdXRUeXBlLiRtb2RlbCwgTW9kZWwpXG4gIHN0YXRpYyBvdmVycmlkZSBUWVBFX05BTUUgPSAnRGF0ZVRpbWUnXG4gIGFmdGVyTWlscz86IG51bWJlclxuICBiZWZvcmVNaWxzPzogbnVtYmVyXG4gIG92ZXJyaWRlIGRlZmF1bHRWYWx1ZT86IG51bWJlclxuICBkZWZhdWx0VG9Ob3c/OiBib29sZWFuXG5cbiAgY29uc3RydWN0b3IoY29uZmlnPzogRGF0ZVRpbWVUeXBlSUYsIGtleT86IHN0cmluZykge1xuICAgIHN1cGVyKGNvbmZpZyB8fCB7fSwga2V5KVxuICB9XG5cbiAgZ2V0SW5wdXRUeXBlS2V5KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIERhdGVUaW1lVHlwZS5UWVBFX05BTUVcbiAgfVxuXG4gIGdldCB1aVZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIG1vbWVudCh0aGlzLmRlZmF1bHRWYWx1ZSkuZm9ybWF0KEJST1dTRVJfREFURV9USU1FX0xPQ0FMX0ZPUk1BVClcbiAgfVxuXG4gIHNldCB1aVZhbHVlKHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5kZWZhdWx0VmFsdWUgPSBtb21lbnQodmFsLCBCUk9XU0VSX0RBVEVfVElNRV9MT0NBTF9GT1JNQVQpLnZhbHVlT2YoKVxuICB9XG5cbiAgaXNOdW1lcmljKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgY3JlYXRlVmFsdWUoY2ZnPzogRGF0ZVRpbWVJdmFsSUYsIGtleT86IHN0cmluZyk6IERhdGVUaW1lSXZhbCB7XG4gICAgY2ZnID0gY2ZnIHx8IDxhbnk+e31cbiAgICByZXR1cm4gbmV3IERhdGVUaW1lSXZhbCh7XG4gICAgICB2YWx1ZTogICAgICAgICAgICAgIGNmZy52YWx1ZSB8fCB0aGlzLmdldERlZmF1bHRWYWx1ZSgpLFxuICAgICAgcmVjb3JkZWRJblRpbWVab25lOiBjZmcucmVjb3JkZWRJblRpbWVab25lIHx8ICdHTVQnXG4gICAgfSwga2V5IHx8IHRoaXMuJGtleSk7XG4gIH1cblxuICBnZXREZWZhdWx0VmFsdWUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5kZWZhdWx0VG9Ob3cgPyBEYXRlLm5vdygpIDogdGhpcy5kZWZhdWx0VmFsdWVcbiAgfVxuXG5cbn1cblxuQ29uZmlndXJhYmxlSW5wdXRUeXBlLnJlZ2lzdGVyKERhdGVUaW1lVHlwZSlcbiJdfQ==