UNPKG

@jsbailey/reactive-form-validators

Version:

[![npm version](https://badge.fury.io/js/%40rxweb%2Freactive-form-validators.svg)](https://badge.fury.io/js/%40rxweb%2Freactive-form-validators) [![Gitter](https://badges.gitter.im/rx-web/Lobby.svg)](https://gitter.im/rxweb-project/rxweb?utm_source=badge

66 lines (65 loc) 7.79 kB
/** * @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