@jsbailey/reactive-form-validators
Version:
[](https://badge.fury.io/js/%40rxweb%2Freactive-form-validators) [](https://gitter.im/rxweb-project/rxweb?utm_source=badge
66 lines (65 loc) • 7.79 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
import { ReactiveFormConfig } from "./reactive-form-config";
export class DateProvider {
/**
* @return {?}
*/
regex() {
/** @type {?} */
var regExp;
if (ReactiveFormConfig && ReactiveFormConfig.json && ReactiveFormConfig.json["internationalization"] && ReactiveFormConfig.json["internationalization"].dateFormat && ReactiveFormConfig.json["internationalization"].seperator) {
/** @type {?} */
var seperator = ReactiveFormConfig.json["internationalization"].seperator;
switch (ReactiveFormConfig.json["internationalization"].dateFormat) {
case 'ymd':
regExp = /^(\d{4}-\d{1,2}-\d{1,2})$/;
break;
case 'dmy':
case 'mdy':
regExp = /^(\d{1,2}-\d{1,2}-\d{4})$/;
break;
}
}
return regExp;
}
/**
* @param {?} value
* @return {?}
*/
getDate(value) {
/** @type {?} */
let year;
/** @type {?} */
letmonth;
/** @type {?} */
letday;
if (ReactiveFormConfig && ReactiveFormConfig.json && ReactiveFormConfig.json["internationalization"] && ReactiveFormConfig.json["internationalization"].dateFormat && ReactiveFormConfig.json["internationalization"].seperator) {
/** @type {?} */
var seperator = ReactiveFormConfig.json["internationalization"].seperator;
switch (ReactiveFormConfig.json["internationalization"].dateFormat) {
case 'ymd':
[year, month, day] = value.split(seperator).map((val) => +val);
break;
case 'dmy':
[day, month, year] = value.split(seperator).map((val) => +val);
break;
case 'mdy':
[month, day, year] = value.split(seperator).map((val) => +val);
break;
}
}
return new Date(year, month - 1, day);
}
/**
* @param {?} value
* @return {?}
*/
isValid(value) {
value = value.replace(ReactiveFormConfig.json["internationalization"].seperator, '-').replace(ReactiveFormConfig.json["internationalization"].seperator, '-');
return this.regex().test(value);
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bqc2JhaWxleS9yZWFjdGl2ZS1mb3JtLXZhbGlkYXRvcnMvIiwic291cmNlcyI6WyJ1dGlsL2RhdGUtcHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTVELE1BQU07Ozs7SUFDRixLQUFLOztRQUNILElBQUksTUFBTSxDQUFRO1FBQ2xCLEVBQUUsQ0FBQSxDQUFDLGtCQUFrQixJQUFJLGtCQUFrQixDQUFDLElBQUksSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLHdCQUFxQixJQUFJLGtCQUFrQixDQUFDLElBQUkseUJBQXNCLFVBQVUsSUFBSyxrQkFBa0IsQ0FBQyxJQUFJLHlCQUFzQixTQUFTLENBQUMsQ0FDdk4sQ0FBQzs7WUFDQyxJQUFJLFNBQVMsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLHlCQUFzQixTQUFTLENBQUM7WUFDdkUsTUFBTSxDQUFBLENBQUMsa0JBQWtCLENBQUMsSUFBSSx5QkFBc0IsVUFBVSxDQUFDLENBQUEsQ0FBQztnQkFDNUQsS0FBSyxLQUFLO29CQUNWLE1BQU0sR0FBRywyQkFBMkIsQ0FBQztvQkFDckMsS0FBSyxDQUFDO2dCQUNOLEtBQUssS0FBSyxDQUFDO2dCQUNYLEtBQUssS0FBSztvQkFDVixNQUFNLEdBQUcsMkJBQTJCLENBQUM7b0JBQ3JDLEtBQUssQ0FBQzthQUNYO1NBQ0E7UUFDSCxNQUFNLENBQUMsTUFBTSxDQUFDO0tBQ2I7Ozs7O0lBRUgsT0FBTyxDQUFDLEtBQVk7O1FBQ2xCLElBQUksSUFBSSxDQUFXOzs7OztRQUNuQixFQUFFLENBQUEsQ0FBQyxrQkFBa0IsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLElBQUksa0JBQWtCLENBQUMsSUFBSSx3QkFBcUIsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLHlCQUFzQixVQUFVLElBQUssa0JBQWtCLENBQUMsSUFBSSx5QkFBc0IsU0FBUyxDQUFDLENBQ3JOLENBQUM7O1lBQ0MsSUFBSSxTQUFTLEdBQUcsa0JBQWtCLENBQUMsSUFBSSx5QkFBc0IsU0FBUyxDQUFDO1lBQ3ZFLE1BQU0sQ0FBQSxDQUFDLGtCQUFrQixDQUFDLElBQUkseUJBQXNCLFVBQVUsQ0FBQyxDQUFBLENBQUM7Z0JBQzVELEtBQUssS0FBSztvQkFDVixDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ3ZFLEtBQUssQ0FBQztnQkFDTixLQUFLLEtBQUs7b0JBQ1YsQ0FBQyxHQUFHLEVBQUMsS0FBSyxFQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUNyRSxLQUFLLENBQUM7Z0JBQ04sS0FBSyxLQUFLO29CQUNWLENBQUMsS0FBSyxFQUFDLEdBQUcsRUFBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDckUsS0FBSyxDQUFDO2FBQ1g7U0FDQTtRQUNILE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUMsS0FBSyxHQUFDLENBQUMsRUFBQyxHQUFHLENBQUMsQ0FBQztLQUNuQzs7Ozs7SUFFRCxPQUFPLENBQUMsS0FBWTtRQUNsQixLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLHlCQUFzQixTQUFTLEVBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLElBQUkseUJBQXNCLFNBQVMsRUFBQyxHQUFHLENBQUMsQ0FBQztRQUN0SixNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUNqQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVhY3RpdmVGb3JtQ29uZmlnIH0gZnJvbSBcIi4vcmVhY3RpdmUtZm9ybS1jb25maWdcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBEYXRlUHJvdmlkZXJ7XHJcbiAgICByZWdleCgpe1xyXG4gICAgICB2YXIgcmVnRXhwOlJlZ0V4cDtcclxuICAgICAgaWYoUmVhY3RpdmVGb3JtQ29uZmlnICYmIFJlYWN0aXZlRm9ybUNvbmZpZy5qc29uICYmIFJlYWN0aXZlRm9ybUNvbmZpZy5qc29uLmludGVybmF0aW9uYWxpemF0aW9uICYmIFJlYWN0aXZlRm9ybUNvbmZpZy5qc29uLmludGVybmF0aW9uYWxpemF0aW9uLmRhdGVGb3JtYXQgICYmIFJlYWN0aXZlRm9ybUNvbmZpZy5qc29uLmludGVybmF0aW9uYWxpemF0aW9uLnNlcGVyYXRvcilcclxuICAgICAge1xyXG4gICAgICAgIHZhciBzZXBlcmF0b3IgPSBSZWFjdGl2ZUZvcm1Db25maWcuanNvbi5pbnRlcm5hdGlvbmFsaXphdGlvbi5zZXBlcmF0b3I7XHJcbiAgICAgICAgc3dpdGNoKFJlYWN0aXZlRm9ybUNvbmZpZy5qc29uLmludGVybmF0aW9uYWxpemF0aW9uLmRhdGVGb3JtYXQpe1xyXG4gICAgICAgICAgICBjYXNlICd5bWQnOlxyXG4gICAgICAgICAgICByZWdFeHAgPSAvXihcXGR7NH0tXFxkezEsMn0tXFxkezEsMn0pJC87XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdkbXknOlxyXG4gICAgICAgICAgICBjYXNlICdtZHknOlxyXG4gICAgICAgICAgICByZWdFeHAgPSAvXihcXGR7MSwyfS1cXGR7MSwyfS1cXGR7NH0pJC87XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIH1cclxuICAgIHJldHVybiByZWdFeHA7XHJcbiAgICB9XHJcblxyXG4gIGdldERhdGUodmFsdWU6c3RyaW5nKXtcclxuICAgIGxldCB5ZWFyLG1vbnRoLGRheTtcclxuICAgIGlmKFJlYWN0aXZlRm9ybUNvbmZpZyAmJiBSZWFjdGl2ZUZvcm1Db25maWcuanNvbiAmJiBSZWFjdGl2ZUZvcm1Db25maWcuanNvbi5pbnRlcm5hdGlvbmFsaXphdGlvbiAmJiBSZWFjdGl2ZUZvcm1Db25maWcuanNvbi5pbnRlcm5hdGlvbmFsaXphdGlvbi5kYXRlRm9ybWF0ICAmJiBSZWFjdGl2ZUZvcm1Db25maWcuanNvbi5pbnRlcm5hdGlvbmFsaXphdGlvbi5zZXBlcmF0b3IpXHJcbiAgICAgIHtcclxuICAgICAgICB2YXIgc2VwZXJhdG9yID0gUmVhY3RpdmVGb3JtQ29uZmlnLmpzb24uaW50ZXJuYXRpb25hbGl6YXRpb24uc2VwZXJhdG9yO1xyXG4gICAgICAgIHN3aXRjaChSZWFjdGl2ZUZvcm1Db25maWcuanNvbi5pbnRlcm5hdGlvbmFsaXphdGlvbi5kYXRlRm9ybWF0KXtcclxuICAgICAgICAgICAgY2FzZSAneW1kJzpcclxuICAgICAgICAgICAgW3llYXIsIG1vbnRoLCBkYXldID0gdmFsdWUuc3BsaXQoc2VwZXJhdG9yKS5tYXAoKHZhbDogc3RyaW5nKSA9PiArdmFsKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ2RteSc6XHJcbiAgICAgICAgICAgIFtkYXksbW9udGgseWVhcl0gPSB2YWx1ZS5zcGxpdChzZXBlcmF0b3IpLm1hcCgodmFsOiBzdHJpbmcpID0+ICt2YWwpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnbWR5JzpcclxuICAgICAgICAgICAgW21vbnRoLGRheSx5ZWFyXSA9IHZhbHVlLnNwbGl0KHNlcGVyYXRvcikubWFwKCh2YWw6IHN0cmluZykgPT4gK3ZhbCk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIH1cclxuICAgIHJldHVybiBuZXcgRGF0ZSh5ZWFyLG1vbnRoLTEsZGF5KTtcclxuICB9XHJcblxyXG4gIGlzVmFsaWQodmFsdWU6c3RyaW5nKXtcclxuICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZShSZWFjdGl2ZUZvcm1Db25maWcuanNvbi5pbnRlcm5hdGlvbmFsaXphdGlvbi5zZXBlcmF0b3IsJy0nKS5yZXBsYWNlKFJlYWN0aXZlRm9ybUNvbmZpZy5qc29uLmludGVybmF0aW9uYWxpemF0aW9uLnNlcGVyYXRvciwnLScpO1xyXG4gICAgcmV0dXJuIHRoaXMucmVnZXgoKS50ZXN0KHZhbHVlKTtcclxuICB9XHJcbn1cclxuIl19