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