@bi8/am-dyn-form
Version:
ng update @angular/cli yarn add @angular/cli
133 lines • 12.6 kB
JavaScript
import * as tslib_1 from "tslib";
import * as moment_ from 'moment';
var moment = moment_;
export function DynMatchValidator(otherControlName) {
var thisControl;
var otherControl;
return function matchOtherValidate(control) {
if (!control.parent) {
return null;
}
// Initializing the validator.
if (!thisControl) {
thisControl = control;
otherControl = control.parent.get(otherControlName);
if (!otherControl) {
throw new Error('matchOtherValidator(): other control is not found in parent group');
}
otherControl.valueChanges.subscribe(function () {
thisControl.updateValueAndValidity();
});
}
if (!otherControl) {
return null;
}
if (otherControl.value !== thisControl.value) {
return {
match: true
};
}
return null;
};
}
export function BusinessLogicValidator() {
return function matchOtherValidate(control) {
if (!control.parent) {
return null;
}
return null;
};
}
var TimeUtils = /** @class */ (function () {
function TimeUtils() {
}
TimeUtils.parseTime = function (value) {
var e_1, _a, e_2, _b;
if (!value) {
return null;
}
var formats = ['HH:mm', 'H:mm'];
try {
for (var formats_1 = tslib_1.__values(formats), formats_1_1 = formats_1.next(); !formats_1_1.done; formats_1_1 = formats_1.next()) {
var format = formats_1_1.value;
var dt = moment(value, format, true);
if (dt.isValid()) {
return {
hours: dt.hours(),
minutes: dt.minutes(),
is24Hour: true
};
}
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (formats_1_1 && !formats_1_1.done && (_a = formats_1.return)) _a.call(formats_1);
}
finally { if (e_1) throw e_1.error; }
}
formats = ['hh:mm a', 'hh:mma', 'h:mm a', 'h:mma', 'h:m a', 'h:ma'];
try {
for (var formats_2 = tslib_1.__values(formats), formats_2_1 = formats_2.next(); !formats_2_1.done; formats_2_1 = formats_2.next()) {
var format = formats_2_1.value;
var dt = moment(value, format, true);
if (dt.isValid()) {
return {
hours: dt.hours(),
minutes: dt.minutes(),
is24Hour: false
};
}
}
}
catch (e_2_1) { e_2 = { error: e_2_1 }; }
finally {
try {
if (formats_2_1 && !formats_2_1.done && (_b = formats_2.return)) _b.call(formats_2);
}
finally { if (e_2) throw e_2.error; }
}
return null;
};
TimeUtils.formatTime = function (date) {
if (date) {
return date.format('hh:mm a');
}
else if (date) {
return moment(date).format('hh:mm a');
}
};
TimeUtils.applyTime = function (date, time) {
if (date) {
var md = date;
md.hours(time.hours);
md.minutes(time.minutes);
}
else if (date) {
var md = moment(date);
md.hours(time.hours);
md.minutes(time.minutes);
}
};
return TimeUtils;
}());
export { TimeUtils };
export function TimeValidator() {
return function (control) {
var value = control.value;
if (value) {
var td = TimeUtils.parseTime(value);
if (td != null) {
return null;
}
else {
return { time: true };
}
}
else {
return null;
}
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluLXZhbGlkYXRvcnMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYmk4L2FtLWR5bi1mb3JtLyIsInNvdXJjZXMiOlsiYXBwL21vZHVsZXMvYW0tZHluLWZvcm0vZHluLXZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUdBLE9BQU8sS0FBSyxPQUFPLE1BQU0sUUFBUSxDQUFDO0FBQ2xDLElBQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQztBQUt2QixNQUFNLFVBQVUsaUJBQWlCLENBQUUsZ0JBQXdCO0lBRXpELElBQUksV0FBd0IsQ0FBQztJQUM3QixJQUFJLFlBQXlCLENBQUM7SUFFOUIsT0FBTyxTQUFTLGtCQUFrQixDQUFFLE9BQW9CO1FBRXRELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFO1lBQ25CLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCw4QkFBOEI7UUFDOUIsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNoQixXQUFXLEdBQUcsT0FBTyxDQUFDO1lBQ3RCLFlBQVksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBZ0IsQ0FBQztZQUNuRSxJQUFJLENBQUMsWUFBWSxFQUFFO2dCQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLG1FQUFtRSxDQUFDLENBQUM7YUFDdEY7WUFDRCxZQUFZLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQztnQkFDbEMsV0FBVyxDQUFDLHNCQUFzQixFQUFFLENBQUM7WUFDdkMsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUVELElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDakIsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELElBQUksWUFBWSxDQUFDLEtBQUssS0FBSyxXQUFXLENBQUMsS0FBSyxFQUFFO1lBQzVDLE9BQU87Z0JBQ0wsS0FBSyxFQUFFLElBQUk7YUFDWixDQUFDO1NBQ0g7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUMsQ0FBQTtBQUNILENBQUM7QUFFRCxNQUFN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QUFTLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDL0MsSUFBSSxFQUFFLElBQUksSUFBSSxFQUFDO2dCQUNiLE9BQU8sSUFBSSxDQUFDO2FBQ2I7aUJBQU07Z0JBQ0wsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQzthQUN2QjtTQUVGO2FBQU07WUFDTCxPQUFPLElBQUksQ0FBQztTQUNiO0lBQ0gsQ0FBQyxDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Rm9ybUNvbnRyb2wsIFZhbGlkYXRvckZufSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHtEeW5Gb3JtQ29udHJvbH0gZnJvbSBcIi4vZHluLWZvcm0tY29udHJvbFwiO1xyXG5cclxuaW1wb3J0ICogYXMgbW9tZW50XyBmcm9tICdtb21lbnQnO1xyXG5jb25zdCBtb21lbnQgPSBtb21lbnRfO1xyXG5cclxuaW1wb3J0IGluZGV4IGZyb20gXCJAYW5ndWxhci9jbGkvbGliL2NsaVwiO1xyXG5pbXBvcnQge01vbWVudH0gZnJvbSBcIm1vbWVudFwiO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIER5bk1hdGNoVmFsaWRhdG9yIChvdGhlckNvbnRyb2xOYW1lOiBzdHJpbmcpIHtcclxuXHJcbiAgbGV0IHRoaXNDb250cm9sOiBGb3JtQ29udHJvbDtcclxuICBsZXQgb3RoZXJDb250cm9sOiBGb3JtQ29udHJvbDtcclxuXHJcbiAgcmV0dXJuIGZ1bmN0aW9uIG1hdGNoT3RoZXJWYWxpZGF0ZSAoY29udHJvbDogRm9ybUNvbnRyb2wpIHtcclxuXHJcbiAgICBpZiAoIWNvbnRyb2wucGFyZW50KSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEluaXRpYWxpemluZyB0aGUgdmFsaWRhdG9yLlxyXG4gICAgaWYgKCF0aGlzQ29udHJvbCkge1xyXG4gICAgICB0aGlzQ29udHJvbCA9IGNvbnRyb2w7XHJcbiAgICAgIG90aGVyQ29udHJvbCA9IGNvbnRyb2wucGFyZW50LmdldChvdGhlckNvbnRyb2xOYW1lKSBhcyBGb3JtQ29udHJvbDtcclxuICAgICAgaWYgKCFvdGhlckNvbnRyb2wpIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ21hdGNoT3RoZXJWYWxpZGF0b3IoKTogb3RoZXIgY29udHJvbCBpcyBub3QgZm91bmQgaW4gcGFyZW50IGdyb3VwJyk7XHJcbiAgICAgIH1cclxuICAgICAgb3RoZXJDb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXNDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFvdGhlckNvbnRyb2wpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG90aGVyQ29udHJvbC52YWx1ZSAhPT0gdGhpc0NvbnRyb2wudmFsdWUpIHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBtYXRjaDogdHJ1ZVxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gQnVzaW5lc3NMb2dpY1ZhbGlkYXRvciAoKSB7XHJcbiAgcmV0dXJuIGZ1bmN0aW9uIG1hdGNoT3RoZXJWYWxpZGF0ZSAoY29udHJvbDogRm9ybUNvbnRyb2wpIHtcclxuICAgIGlmICghY29udHJvbC5wYXJlbnQpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVGltZURhdGEge1xyXG4gIGhvdXJzOiBudW1iZXIsXHJcbiAgbWludXRlczogbnVtYmVyLFxyXG4gIGlzMjRIb3VyOiBib29sZWFuXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBUaW1lVXRpbHMge1xyXG5cclxuICBzdGF0aWMgcGFyc2VUaW1lKHZhbHVlOiBzdHJpbmcpIDogVGltZURhdGEgIHtcclxuICAgIGlmICghdmFsdWUpe1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgZm9ybWF0cyA9IFsgJ0hIOm1tJywgJ0g6bW0nXTtcclxuICAgIGZvciAobGV0IGZvcm1hdCBvZiBmb3JtYXRzKSB7XHJcbiAgICAgIGxldCBkdCA9IG1vbWVudCh2YWx1ZSwgZm9ybWF0LCB0cnVlKTtcclxuICAgICAgaWYgKGR0LmlzVmFsaWQoKSl7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIGhvdXJzOiBkdC5ob3VycygpLFxyXG4gICAgICAgICAgbWludXRlczogZHQubWludXRlcygpLFxyXG4gICAgICAgICAgaXMyNEhvdXI6IHRydWVcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZm9ybWF0cyA9IFsgJ2hoOm1tIGEnLCAnaGg6bW1hJywgJ2g6bW0gYScsICdoOm1tYScsICdoOm0gYScsICdoOm1hJyBdO1xyXG4gICAgZm9yIChsZXQgZm9ybWF0IG9mIGZvcm1hdHMpIHtcclxuICAgICAgbGV0IGR0ID0gbW9tZW50KHZhbHVlLCBmb3JtYXQsIHRydWUpO1xyXG4gICAgICBpZiAoZHQuaXNWYWxpZCgpKXtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgaG91cnM6IGR0LmhvdXJzKCksXHJcbiAgICAgICAgICBtaW51dGVzOiBkdC5taW51dGVzKCksXHJcbiAgICAgICAgICBpczI0SG91cjogZmFsc2VcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuXHJcbiAgc3RhdGljIGZvcm1hdFRpbWUoZGF0ZSA6IERhdGUgfCBNb21lbnQpIDogc3RyaW5nIHtcclxuICAgIGlmICg8TW9tZW50PiBkYXRlKXtcclxuICAgICAgcmV0dXJuICg8TW9tZW50PmRhdGUpLmZvcm1hdCgnaGg6bW0gYScpO1xyXG5cclxuICAgIH0gZWxzZSBpZiAoPERhdGU+IGRhdGUpe1xyXG4gICAgICByZXR1cm4gbW9tZW50KGRhdGUpLmZvcm1hdCgnaGg6bW0gYScpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3RhdGljIGFwcGx5VGltZShkYXRlOiBEYXRlIHwgTW9tZW50LCB0aW1lOiBUaW1lRGF0YSkge1xyXG4gICAgaWYgKDxEYXRlPiBkYXRlKXtcclxuICAgICAgbGV0IG1kIDogTW9tZW50ID0gPE1vbWVudD4gZGF0ZTtcclxuICAgICAgbWQuaG91cnModGltZS5ob3Vycyk7XHJcbiAgICAgIG1kLm1pbnV0ZXModGltZS5taW51dGVzKTtcclxuXHJcbiAgICB9IGVsc2UgaWYgKDxEYXRlPiBkYXRlKXtcclxuICAgICAgbGV0IG1kIDogTW9tZW50ID0gbW9tZW50KDxEYXRlPiBkYXRlKTtcclxuICAgICAgbWQuaG91cnModGltZS5ob3Vycyk7XHJcbiAgICAgIG1kLm1pbnV0ZXModGltZS5taW51dGVzKTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gVGltZVZhbGlkYXRvciAoKSA6IFZhbGlkYXRvckZuIHtcclxuICByZXR1cm4gKGNvbnRyb2w6IEZvcm1Db250cm9sKSA9PntcclxuICAgIGxldCB2YWx1ZSA9IGNvbnRyb2wudmFsdWU7XHJcblxyXG4gICAgaWYgKHZhbHVlKXtcclxuICAgICAgbGV0IHRkIDogVGltZURhdGEgPSBUaW1lVXRpbHMucGFyc2VUaW1lKHZhbHVlKTtcclxuICAgICAgaWYgKHRkICE9IG51bGwpe1xyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiB7IHRpbWU6IHRydWUgfTtcclxuICAgICAgfVxyXG5cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=