@muziehdesign/forms 0.0.1-alpha.301 → 0.0.1-alpha.313

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,41 @@
1
+ import { format, parse } from "date-fns";
2
+ import * as IMask from "imask";
3
+ export const dateMaskOptions = {
4
+ mask: 'MM/dd/yyyy',
5
+ format: (date) => {
6
+ if (!date) {
7
+ return '';
8
+ }
9
+ return format(date, 'MM/dd/yyyy');
10
+ },
11
+ parse: (str) => {
12
+ const dateRegex = /(0[1-9]|1[0-2])\/(0[1-9]|[12]\d|3[01])\/([12]\d{3})/;
13
+ if (!str.match(dateRegex)) {
14
+ return undefined;
15
+ }
16
+ return parse(str, 'MM/dd/yyyy', new Date());
17
+ },
18
+ blocks: {
19
+ // eslint-disable-next-line @typescript-eslint/naming-convention
20
+ MM: {
21
+ mask: IMask.MaskedRange,
22
+ from: 1,
23
+ to: 12,
24
+ },
25
+ // eslint-disable-next-line @typescript-eslint/naming-convention
26
+ dd: {
27
+ mask: IMask.MaskedRange,
28
+ from: 1,
29
+ to: 31,
30
+ },
31
+ // eslint-disable-next-line @typescript-eslint/naming-convention
32
+ yyyy: {
33
+ mask: IMask.MaskedRange,
34
+ from: 1000,
35
+ to: 9999,
36
+ }
37
+ },
38
+ };
39
+ export const phoneNumberOptions = {};
40
+ export const currencyOptions = {};
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFza3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tdXppZWhkZXNpZ24vZm9ybXMvc3JjL2xpYi9tYXNrcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFXLEtBQUssRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNsRCxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUUvQixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUk7SUFDNUIsSUFBSSxFQUFFLFlBQVk7SUFDbEIsTUFBTSxFQUFFLENBQUMsSUFBc0IsRUFBVSxFQUFFO1FBQ3pDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVCxPQUFPLEVBQUUsQ0FBQztTQUNYO1FBQ0QsT0FBTyxNQUFNLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFDRCxLQUFLLEVBQUUsQ0FBQyxHQUFXLEVBQW9CLEVBQUU7UUFDdkMsTUFBTSxTQUFTLEdBQUcscURBQXFELENBQUM7UUFDeEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDekIsT0FBTyxTQUFTLENBQUM7U0FDbEI7UUFDRCxPQUFPLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBQ0QsTUFBTSxFQUFFO1FBQ04sZ0VBQWdFO1FBQ2hFLEVBQUUsRUFBRTtZQUNGLElBQUksRUFBRSxLQUFLLENBQUMsV0FBVztZQUN2QixJQUFJLEVBQUUsQ0FBQztZQUNQLEVBQUUsRUFBRSxFQUFFO1NBQ1A7UUFDRCxnRUFBZ0U7UUFDaEUsRUFBRSxFQUFFO1lBQ0YsSUFBSSxFQUFFLEtBQUssQ0FBQyxXQUFXO1lBQ3ZCLElBQUksRUFBRSxDQUFDO1lBQ1AsRUFBRSxFQUFFLEVBQUU7U0FDUDtRQUNELGdFQUFnRTtRQUNoRSxJQUFJLEVBQUU7WUFDSixJQUFJLEVBQUUsS0FBSyxDQUFDLFdBQVc7WUFDdkIsSUFBSSxFQUFFLElBQUk7WUFDVixFQUFFLEVBQUUsSUFBSTtTQUNUO0tBQ0Y7Q0FDRixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsRUFBRSxDQUFBO0FBRXBDLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmb3JtYXQsIGlzVmFsaWQsIHBhcnNlIH0gZnJvbSBcImRhdGUtZm5zXCI7XG5pbXBvcnQgKiBhcyBJTWFzayBmcm9tIFwiaW1hc2tcIjtcblxuZXhwb3J0IGNvbnN0IGRhdGVNYXNrT3B0aW9ucyA9ICB7XG4gICAgbWFzazogJ01NL2RkL3l5eXknLFxuICAgIGZvcm1hdDogKGRhdGU6IERhdGUgfCB1bmRlZmluZWQpOiBzdHJpbmcgPT4ge1xuICAgICAgaWYgKCFkYXRlKSB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICAgIH1cbiAgICAgIHJldHVybiBmb3JtYXQoZGF0ZSwgJ01NL2RkL3l5eXknKTtcbiAgICB9LFxuICAgIHBhcnNlOiAoc3RyOiBzdHJpbmcpOiBEYXRlIHwgdW5kZWZpbmVkID0+IHtcbiAgICAgIGNvbnN0IGRhdGVSZWdleCA9IC8oMFsxLTldfDFbMC0yXSlcXC8oMFsxLTldfFsxMl1cXGR8M1swMV0pXFwvKFsxMl1cXGR7M30pLztcbiAgICAgIGlmICghc3RyLm1hdGNoKGRhdGVSZWdleCkpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBwYXJzZShzdHIsICdNTS9kZC95eXl5JywgbmV3IERhdGUoKSk7XG4gICAgfSxcbiAgICBibG9ja3M6IHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAgIE1NOiB7XG4gICAgICAgIG1hc2s6IElNYXNrLk1hc2tlZFJhbmdlLFxuICAgICAgICBmcm9tOiAxLFxuICAgICAgICB0bzogMTIsXG4gICAgICB9LFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICAgZGQ6IHtcbiAgICAgICAgbWFzazogSU1hc2suTWFza2VkUmFuZ2UsXG4gICAgICAgIGZyb206IDEsXG4gICAgICAgIHRvOiAzMSxcbiAgICAgIH0sXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgICB5eXl5OiB7XG4gICAgICAgIG1hc2s6IElNYXNrLk1hc2tlZFJhbmdlLFxuICAgICAgICBmcm9tOiAxMDAwLFxuICAgICAgICB0bzogOTk5OSxcbiAgICAgIH1cbiAgICB9LFxuICB9O1xuXG4gIGV4cG9ydCBjb25zdCBwaG9uZU51bWJlck9wdGlvbnMgPSB7fVxuXG4gIGV4cG9ydCBjb25zdCBjdXJyZW5jeU9wdGlvbnMgPSB7fTsiXX0=
@@ -79,9 +79,7 @@ export class ModelSchemaFactory {
79
79
  return schema;
80
80
  }
81
81
  buildDateSchema(options) {
82
- let schema = Yup.date()
83
- .transform((v, o) => (o === '' ? undefined : v))
84
- .typeError('Please enter a valid date');
82
+ let schema = Yup.date();
85
83
  if (options.required) {
86
84
  schema = schema.required(options.required.message);
87
85
  }
@@ -125,4 +123,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImpor
125
123
  providedIn: 'root',
126
124
  }]
127
125
  }], ctorParameters: function () { return []; } });
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtc2NoZW1hLmZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tdXppZWhkZXNpZ24vZm9ybXMvc3JjL2xpYi9tb2RlbC1zY2hlbWEuZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQVksTUFBTSxLQUFLLENBQUM7QUFDdkMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV4RCxPQUFPLEVBQWlELGNBQWMsRUFBNEYsTUFBTSxvQkFBb0IsQ0FBQztBQUM3TCxPQUFPLEtBQUssR0FBRyxNQUFNLEtBQUssQ0FBQzs7QUFFM0I7Ozs7Ozs7Ozs7RUFVRTtBQUtGLE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsZ0JBQWUsQ0FBQztJQUVoQixLQUFLLENBQUksS0FBUTtRQUNmLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QyxPQUFPLElBQUksY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTyxpQkFBaUIsQ0FBSSxLQUFRO1FBQ25DLE1BQU0sUUFBUSxHQUF1QyxPQUFPLENBQUMsV0FBVyxDQUFDLHlCQUF5QixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzNHLElBQUksS0FBSyxHQUFnQixFQUFFLENBQUM7UUFDNUIsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUM5QixJQUFJLEtBQUssQ0FBQyxjQUFjLElBQUksY0FBYyxDQUFDLE1BQU0sRUFBRTtnQkFDakQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUE4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LENBQUMsQ0FBQztTQUNMO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVPLGlCQUFpQixDQUFDLE9BQThCO1FBQ3RELElBQUksTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMxQixJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUU7WUFDcEIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNwRDtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxPQUE4QjtRQUU1RCxJQUFJLFlBQVksR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDakUsSUFBRyxPQUFPLENBQUMsUUFBUSxFQUFFO1lBQ25CLFlBQVksR0FBRyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDeEM7UUFFRCxPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDOzsrR0E3R1Usa0JBQWtCO21IQUFsQixrQkFBa0IsY0FGakIsTUFBTTsyRkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgb2JqZWN0LCBTY2hlbWFPZiB9IGZyb20gJ3l1cCc7XG5pbXBvcnQgeyBNb2RlbFZhbGlkYXRvciB9IGZyb20gJy4vbW9kZWwtdmFsaWRhdG9yJztcbmltcG9ydCB7IFNDSEVNQV9NRVRBREFUQV9OQU1FU1BBQ0UgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBPYmplY3RTaGFwZSB9IGZyb20gJ3l1cC9saWIvb2JqZWN0JztcbmltcG9ydCB7IEJvb2xlYW5UeXBlQW5ub3RhdGlvbnMsIENvbnN0cmFpbnRBbm5vdGF0aW9ucywgQ29uc3RyYWludFR5cGUsIERhdGVUeXBlQW5ub3RhdGlvbnMsIE9iamVjdFR5cGVBbm5vdGF0aW9ucywgTnVtYmVyVHlwZUFubm90YXRpb25zLCBTdHJpbmdUeXBlQW5ub3RhdGlvbnMgfSBmcm9tICcuL3R5cGUtYW5ub3RhdGlvbnMnO1xuaW1wb3J0ICogYXMgWXVwIGZyb20gJ3l1cCc7XG5cbi8qXG5TY2hlbWEgcnVsZXMgbmVlZCB0byBiZSBidWlsdCBpbiB0aGUgb3JkZXIgdGhleSBuZWVkIHRvIGJlIGV2YWx1YXRlZCBpbi5cbkZvciBleGFtcGxlLFxuICBgYGBcbiAgICBzY2hlbWEucmVxdWlyZWQoKS5tYXgoLi4uKS5tYXRjaGVzKC4uLik7XG4gIGBgYFxuZXZhbHVhdGVzIHRoZSAzIHJ1bGVzIGluIHRoaXMgb3JkZXJcbiAgLSByZXF1aXJlZFxuICAtIG1heFxuICAtIG1hdGNoZXNcbiovXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBNb2RlbFNjaGVtYUZhY3Rvcnkge1xuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgYnVpbGQ8VD4obW9kZWw6IFQpOiBNb2RlbFZhbGlkYXRvcjxUPiB7XG4gICAgY29uc3Qgc2NoZW1hID0gdGhpcy5idWlsZE9iamVjdFNjaGVtYShtb2RlbCk7XG4gICAgcmV0dXJuIG5ldyBNb2RlbFZhbGlkYXRvcihzY2hlbWEpO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZE9iamVjdFNjaGVtYTxUPihtb2RlbDogVCkge1xuICAgIGNvbnN0IG1ldGFkYXRhOiBNYXA8c3RyaW5nLCBDb25zdHJhaW50QW5ub3RhdGlvbnM+ID0gUmVmbGVjdC5nZXRNZXRhZGF0YShTQ0hFTUFfTUVUQURBVEFfTkFNRVNQQUNFLCBtb2RlbCk7XG4gICAgbGV0IHNoYXBlOiBPYmplY3RTaGFwZSA9IHt9O1xuICAgIG1ldGFkYXRhLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgIGlmICh2YWx1ZS5jb25zdHJhaW50VHlwZSA9PSBDb25zdHJhaW50VHlwZS5zdHJpbmcpIHtcbiAgICAgICAgc2hhcGVba2V5XSA9IHRoaXMuYnVpbGRTdHJpbmdTY2hlbWEodmFsdWUgYXMgU3RyaW5nVHlwZUFubm90YXRpb25zKTtcbiAgICAgIH0gZWxzZSBpZiAodmFsdWUuY29uc3RyYWludFR5cGUgPT0gQ29uc3RyYWludFR5cGUuYm9vbGVhbikge1xuICAgICAgICBzaGFwZVtrZXldID0gdGhpcy5idWlsZEJvb2xlYW5TY2hlbWEodmFsdWUgYXMgQm9vbGVhblR5cGVBbm5vdGF0aW9ucyk7XG4gICAgICB9IGVsc2UgaWYgKHZhbHVlLmNvbnN0cmFpbnRUeXBlID09IENvbnN0cmFpbnRUeXBlLmRhdGUpIHtcbiAgICAgICAgc2hhcGVba2V5XSA9IHRoaXMuYnVpbGREYXRlU2NoZW1hKHZhbHVlIGFzIERhdGVUeXBlQW5ub3RhdGlvbnMpO1xuICAgICAgfSBlbHNlIGlmKHZhbHVlLmNvbnN0cmFpbnRUeXBlID09IENvbnN0cmFpbnRUeXBlLm9iamVjdCkge1xuICAgICAgICBzaGFwZVtrZXldID0gdGhpcy5idWlsZE5lc3RlZE9iamVjdFNjaGVtYSh2YWx1ZSBhcyBPYmplY3RUeXBlQW5ub3RhdGlvbnMpO1xuICAgICAgfSBlbHNlIGlmICh2YWx1ZS5jb25zdHJhaW50VHlwZSA9PSBDb25zdHJhaW50VHlwZS5udW1iZXIpIHtcbiAgICAgICAgc2hhcGVba2V5XSA9IHRoaXMuYnVpbGROdW1iZXJTY2hlbWEodmFsdWUgYXMgTnVtYmVyVHlwZUFubm90YXRpb25zKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gb2JqZWN0KHNoYXBlKSBhcyBTY2hlbWFPZjxUPjtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRTdHJpbmdTY2hlbWEob3B0aW9uczogU3RyaW5nVHlwZUFubm90YXRpb25zKSB7XG4gICAgbGV0IHNjaGVtYSA9IFl1cC5zdHJpbmcoKTtcbiAgICBpZiAob3B0aW9ucy5yZXF1aXJlZCkge1xuICAgICAgc2NoZW1hID0gc2NoZW1hLnJlcXVpcmVkKG9wdGlvbnMucmVxdWlyZWQubWVzc2FnZSk7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLmxlbmd0aCkge1xuICAgICAgc2NoZW1hID0gc2NoZW1hLmxlbmd0aChvcHRpb25zLmxlbmd0aC5sZW5ndGgsIG9wdGlvbnMubGVuZ3RoLm1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLm1heExlbmd0aCkge1xuICAgICAgc2NoZW1hID0gc2NoZW1hLm1heChvcHRpb25zLm1heExlbmd0aC5tYXhMZW5ndGgsIG9wdGlvbnMubWF4TGVuZ3RoLm1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLm1pbkxlbmd0aCkge1xuICAgICAgc2NoZW1hID0gc2NoZW1hLm1pbihvcHRpb25zLm1pbkxlbmd0aC5taW5MZW5ndGgsIG9wdGlvbnMubWluTGVuZ3RoLm1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLnBhdHRlcm4pIHtcbiAgICAgIHNjaGVtYSA9IHNjaGVtYS5tYXRjaGVzKG9wdGlvbnMucGF0dGVybi5wYXR0ZXJuLCAgeyBtZXNzYWdlOiBvcHRpb25zLnBhdHRlcm4ubWVzc2FnZSwgZXhjbHVkZUVtcHR5U3RyaW5nOiB0cnVlIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBzY2hlbWE7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkQm9vbGVhblNjaGVtYShvcHRpb25zOiBCb29sZWFuVHlwZUFubm90YXRpb25zKSB7XG4gICAgbGV0IHNjaGVtYSA9IFl1cC5ib29sZWFuKCk7XG4gICAgaWYgKG9wdGlvbnMucmVxdWlyZWQpIHtcbiAgICAgIHNjaGVtYSA9IHNjaGVtYS5yZXF1aXJlZChvcHRpb25zLnJlcXVpcmVkLm1lc3NhZ2UpO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy5lcXVhbHMpIHtcbiAgICAgIGlmIChvcHRpb25zLmVxdWFscy5lcXVhbHMpIHtcbiAgICAgICAgc2NoZW1hID0gc2NoZW1hLmlzVHJ1ZShvcHRpb25zLmVxdWFscy5tZXNzYWdlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNjaGVtYSA9IHNjaGVtYS5pc0ZhbHNlKG9wdGlvbnMuZXF1YWxzLm1lc3NhZ2UpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBzY2hlbWE7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkRGF0ZVNjaGVtYShvcHRpb25zOiBEYXRlVHlwZUFubm90YXRpb25zKSB7XG4gICAgbGV0IHNjaGVtYSA9IFl1cC5kYXRlKClcbiAgICAgIC50cmFuc2Zvcm0oKHYsIG8pID0+IChvID09PSAnJyA/IHVuZGVmaW5lZCA6IHYpKVxuICAgICAgLnR5cGVFcnJvcignUGxlYXNlIGVudGVyIGEgdmFsaWQgZGF0ZScpO1xuICAgIGlmIChvcHRpb25zLnJlcXVpcmVkKSB7XG4gICAgICBzY2hlbWEgPSBzY2hlbWEucmVxdWlyZWQob3B0aW9ucy5yZXF1aXJlZC5tZXNzYWdlKTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMubWluKSB7XG4gICAgICBzY2hlbWEgPSBzY2hlbWEubWluKG9wdGlvbnMubWluLm1pbiwgb3B0aW9ucy5taW4ubWVzc2FnZSk7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLm1heCkge1xuICAgICAgc2NoZW1hID0gc2NoZW1hLm1heChvcHRpb25zLm1heC5tYXgsIG9wdGlvbnMubWF4Lm1lc3NhZ2UpO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy50ZXN0KSB7XG4gICAgICBzY2hlbWEgPSBzY2hlbWEudGVzdCh7XG4gICAgICAgIG5hbWU6IG9wdGlvbnMudGVzdC5uYW1lLFxuICAgICAgICBtZXNzYWdlOiBvcHRpb25zLnRlc3QubWVzc2FnZSxcbiAgICAgICAgdGVzdDogKGQ/OiBEYXRlLCBjb250ZXh0PzogYW55KSA9PiB7XG4gICAgICAgIHJldHVybiBvcHRpb25zLnRlc3QhLnRlc3QoZCEpO1xuICAgICAgfX0pO1xuICAgIH1cblxuICAgIHJldHVybiBzY2hlbWE7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkTnVtYmVyU2NoZW1hKG9wdGlvbnM6IE51bWJlclR5cGVBbm5vdGF0aW9ucykge1xuICAgIGxldCBzY2hlbWEgPSBZdXAubnVtYmVyKCk7XG4gICAgaWYgKG9wdGlvbnMucmVxdWlyZWQpIHtcbiAgICAgIHNjaGVtYSA9IHNjaGVtYS5yZXF1aXJlZChvcHRpb25zLnJlcXVpcmVkLm1lc3NhZ2UpO1xuICAgIH1cblxuICAgIHJldHVybiBzY2hlbWE7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkTmVzdGVkT2JqZWN0U2NoZW1hKG9wdGlvbnM6IE9iamVjdFR5cGVBbm5vdGF0aW9ucykge1xuXG4gICAgbGV0IG5lc3RlZFNjaGVtYSA9IHRoaXMuYnVpbGRPYmplY3RTY2hlbWEob3B0aW9ucy5nZXRJbnN0YW5jZSgpKTtcbiAgICBpZihvcHRpb25zLnJlcXVpcmVkKSB7XG4gICAgICBuZXN0ZWRTY2hlbWEgPSBuZXN0ZWRTY2hlbWEucmVxdWlyZWQoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmVzdGVkU2NoZW1hO1xuICB9XG59XG4iXX0=
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtc2NoZW1hLmZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tdXppZWhkZXNpZ24vZm9ybXMvc3JjL2xpYi9tb2RlbC1zY2hlbWEuZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQVksTUFBTSxLQUFLLENBQUM7QUFDdkMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV4RCxPQUFPLEVBQWlELGNBQWMsRUFBNEYsTUFBTSxvQkFBb0IsQ0FBQztBQUM3TCxPQUFPLEtBQUssR0FBRyxNQUFNLEtBQUssQ0FBQzs7QUFFM0I7Ozs7Ozs7Ozs7RUFVRTtBQUtGLE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsZ0JBQWUsQ0FBQztJQUVoQixLQUFLLENBQUksS0FBUTtRQUNmLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QyxPQUFPLElBQUksY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTyxpQkFBaUIsQ0FBSSxLQUFRO1FBQ25DLE1BQU0sUUFBUSxHQUF1QyxPQUFPLENBQUMsV0FBVyxDQUFDLHlCQUF5QixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzNHLElBQUksS0FBSyxHQUFnQixFQUFFLENBQUM7UUFDNUIsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUM5QixJQUFJLEtBQUssQ0FBQyxjQUFjLElBQUksY0FBYyxDQUFDLE1BQU0sRUFBRTtnQkFDakQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUE4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Q3BCLE1BQU0sR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDcEQ7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU8sdUJBQXVCLENBQUMsT0FBOEI7UUFFNUQsSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ2pFLElBQUcsT0FBTyxDQUFDLFFBQVEsRUFBRTtZQUNuQixZQUFZLEdBQUcsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ3hDO1FBRUQsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQzs7K0dBNUdVLGtCQUFrQjttSEFBbEIsa0JBQWtCLGNBRmpCLE1BQU07MkZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG9iamVjdCwgU2NoZW1hT2YgfSBmcm9tICd5dXAnO1xuaW1wb3J0IHsgTW9kZWxWYWxpZGF0b3IgfSBmcm9tICcuL21vZGVsLXZhbGlkYXRvcic7XG5pbXBvcnQgeyBTQ0hFTUFfTUVUQURBVEFfTkFNRVNQQUNFIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgT2JqZWN0U2hhcGUgfSBmcm9tICd5dXAvbGliL29iamVjdCc7XG5pbXBvcnQgeyBCb29sZWFuVHlwZUFubm90YXRpb25zLCBDb25zdHJhaW50QW5ub3RhdGlvbnMsIENvbnN0cmFpbnRUeXBlLCBEYXRlVHlwZUFubm90YXRpb25zLCBPYmplY3RUeXBlQW5ub3RhdGlvbnMsIE51bWJlclR5cGVBbm5vdGF0aW9ucywgU3RyaW5nVHlwZUFubm90YXRpb25zIH0gZnJvbSAnLi90eXBlLWFubm90YXRpb25zJztcbmltcG9ydCAqIGFzIFl1cCBmcm9tICd5dXAnO1xuXG4vKlxuU2NoZW1hIHJ1bGVzIG5lZWQgdG8gYmUgYnVpbHQgaW4gdGhlIG9yZGVyIHRoZXkgbmVlZCB0byBiZSBldmFsdWF0ZWQgaW4uXG5Gb3IgZXhhbXBsZSxcbiAgYGBgXG4gICAgc2NoZW1hLnJlcXVpcmVkKCkubWF4KC4uLikubWF0Y2hlcyguLi4pO1xuICBgYGBcbmV2YWx1YXRlcyB0aGUgMyBydWxlcyBpbiB0aGlzIG9yZGVyXG4gIC0gcmVxdWlyZWRcbiAgLSBtYXhcbiAgLSBtYXRjaGVzXG4qL1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTW9kZWxTY2hlbWFGYWN0b3J5IHtcbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIGJ1aWxkPFQ+KG1vZGVsOiBUKTogTW9kZWxWYWxpZGF0b3I8VD4ge1xuICAgIGNvbnN0IHNjaGVtYSA9IHRoaXMuYnVpbGRPYmplY3RTY2hlbWEobW9kZWwpO1xuICAgIHJldHVybiBuZXcgTW9kZWxWYWxpZGF0b3Ioc2NoZW1hKTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRPYmplY3RTY2hlbWE8VD4obW9kZWw6IFQpIHtcbiAgICBjb25zdCBtZXRhZGF0YTogTWFwPHN0cmluZywgQ29uc3RyYWludEFubm90YXRpb25zPiA9IFJlZmxlY3QuZ2V0TWV0YWRhdGEoU0NIRU1BX01FVEFEQVRBX05BTUVTUEFDRSwgbW9kZWwpO1xuICAgIGxldCBzaGFwZTogT2JqZWN0U2hhcGUgPSB7fTtcbiAgICBtZXRhZGF0YS5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICBpZiAodmFsdWUuY29uc3RyYWludFR5cGUgPT0gQ29uc3RyYWludFR5cGUuc3RyaW5nKSB7XG4gICAgICAgIHNoYXBlW2tleV0gPSB0aGlzLmJ1aWxkU3RyaW5nU2NoZW1hKHZhbHVlIGFzIFN0cmluZ1R5cGVBbm5vdGF0aW9ucyk7XG4gICAgICB9IGVsc2UgaWYgKHZhbHVlLmNvbnN0cmFpbnRUeXBlID09IENvbnN0cmFpbnRUeXBlLmJvb2xlYW4pIHtcbiAgICAgICAgc2hhcGVba2V5XSA9IHRoaXMuYnVpbGRCb29sZWFuU2NoZW1hKHZhbHVlIGFzIEJvb2xlYW5UeXBlQW5ub3RhdGlvbnMpO1xuICAgICAgfSBlbHNlIGlmICh2YWx1ZS5jb25zdHJhaW50VHlwZSA9PSBDb25zdHJhaW50VHlwZS5kYXRlKSB7XG4gICAgICAgIHNoYXBlW2tleV0gPSB0aGlzLmJ1aWxkRGF0ZVNjaGVtYSh2YWx1ZSBhcyBEYXRlVHlwZUFubm90YXRpb25zKTtcbiAgICAgIH0gZWxzZSBpZih2YWx1ZS5jb25zdHJhaW50VHlwZSA9PSBDb25zdHJhaW50VHlwZS5vYmplY3QpIHtcbiAgICAgICAgc2hhcGVba2V5XSA9IHRoaXMuYnVpbGROZXN0ZWRPYmplY3RTY2hlbWEodmFsdWUgYXMgT2JqZWN0VHlwZUFubm90YXRpb25zKTtcbiAgICAgIH0gZWxzZSBpZiAodmFsdWUuY29uc3RyYWludFR5cGUgPT0gQ29uc3RyYWludFR5cGUubnVtYmVyKSB7XG4gICAgICAgIHNoYXBlW2tleV0gPSB0aGlzLmJ1aWxkTnVtYmVyU2NoZW1hKHZhbHVlIGFzIE51bWJlclR5cGVBbm5vdGF0aW9ucyk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIG9iamVjdChzaGFwZSkgYXMgU2NoZW1hT2Y8VD47XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkU3RyaW5nU2NoZW1hKG9wdGlvbnM6IFN0cmluZ1R5cGVBbm5vdGF0aW9ucykge1xuICAgIGxldCBzY2hlbWEgPSBZdXAuc3RyaW5nKCk7XG4gICAgaWYgKG9wdGlvbnMucmVxdWlyZWQpIHtcbiAgICAgIHNjaGVtYSA9IHNjaGVtYS5yZXF1aXJlZChvcHRpb25zLnJlcXVpcmVkLm1lc3NhZ2UpO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy5sZW5ndGgpIHtcbiAgICAgIHNjaGVtYSA9IHNjaGVtYS5sZW5ndGgob3B0aW9ucy5sZW5ndGgubGVuZ3RoLCBvcHRpb25zLmxlbmd0aC5tZXNzYWdlKTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5tYXhMZW5ndGgpIHtcbiAgICAgIHNjaGVtYSA9IHNjaGVtYS5tYXgob3B0aW9ucy5tYXhMZW5ndGgubWF4TGVuZ3RoLCBvcHRpb25zLm1heExlbmd0aC5tZXNzYWdlKTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5taW5MZW5ndGgpIHtcbiAgICAgIHNjaGVtYSA9IHNjaGVtYS5taW4ob3B0aW9ucy5taW5MZW5ndGgubWluTGVuZ3RoLCBvcHRpb25zLm1pbkxlbmd0aC5tZXNzYWdlKTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5wYXR0ZXJuKSB7XG4gICAgICBzY2hlbWEgPSBzY2hlbWEubWF0Y2hlcyhvcHRpb25zLnBhdHRlcm4ucGF0dGVybiwgIHsgbWVzc2FnZTogb3B0aW9ucy5wYXR0ZXJuLm1lc3NhZ2UsIGV4Y2x1ZGVFbXB0eVN0cmluZzogdHJ1ZSB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gc2NoZW1hO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZEJvb2xlYW5TY2hlbWEob3B0aW9uczogQm9vbGVhblR5cGVBbm5vdGF0aW9ucykge1xuICAgIGxldCBzY2hlbWEgPSBZdXAuYm9vbGVhbigpO1xuICAgIGlmIChvcHRpb25zLnJlcXVpcmVkKSB7XG4gICAgICBzY2hlbWEgPSBzY2hlbWEucmVxdWlyZWQob3B0aW9ucy5yZXF1aXJlZC5tZXNzYWdlKTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMuZXF1YWxzKSB7XG4gICAgICBpZiAob3B0aW9ucy5lcXVhbHMuZXF1YWxzKSB7XG4gICAgICAgIHNjaGVtYSA9IHNjaGVtYS5pc1RydWUob3B0aW9ucy5lcXVhbHMubWVzc2FnZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzY2hlbWEgPSBzY2hlbWEuaXNGYWxzZShvcHRpb25zLmVxdWFscy5tZXNzYWdlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gc2NoZW1hO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZERhdGVTY2hlbWEob3B0aW9uczogRGF0ZVR5cGVBbm5vdGF0aW9ucykge1xuICAgIGxldCBzY2hlbWEgPSBZdXAuZGF0ZSgpO1xuICAgIFxuICAgIGlmIChvcHRpb25zLnJlcXVpcmVkKSB7XG4gICAgICBzY2hlbWEgPSBzY2hlbWEucmVxdWlyZWQob3B0aW9ucy5yZXF1aXJlZC5tZXNzYWdlKTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMubWluKSB7XG4gICAgICBzY2hlbWEgPSBzY2hlbWEubWluKG9wdGlvbnMubWluLm1pbiwgb3B0aW9ucy5taW4ubWVzc2FnZSk7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLm1heCkge1xuICAgICAgc2NoZW1hID0gc2NoZW1hLm1heChvcHRpb25zLm1heC5tYXgsIG9wdGlvbnMubWF4Lm1lc3NhZ2UpO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy50ZXN0KSB7XG4gICAgICBzY2hlbWEgPSBzY2hlbWEudGVzdCh7XG4gICAgICAgIG5hbWU6IG9wdGlvbnMudGVzdC5uYW1lLFxuICAgICAgICBtZXNzYWdlOiBvcHRpb25zLnRlc3QubWVzc2FnZSxcbiAgICAgICAgdGVzdDogKGQ/OiBEYXRlLCBjb250ZXh0PzogYW55KSA9PiB7XG4gICAgICAgIHJldHVybiBvcHRpb25zLnRlc3QhLnRlc3QoZCEpO1xuICAgICAgfX0pO1xuICAgIH1cblxuICAgIHJldHVybiBzY2hlbWE7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkTnVtYmVyU2NoZW1hKG9wdGlvbnM6IE51bWJlclR5cGVBbm5vdGF0aW9ucykge1xuICAgIGxldCBzY2hlbWEgPSBZdXAubnVtYmVyKCk7XG4gICAgaWYgKG9wdGlvbnMucmVxdWlyZWQpIHtcbiAgICAgIHNjaGVtYSA9IHNjaGVtYS5yZXF1aXJlZChvcHRpb25zLnJlcXVpcmVkLm1lc3NhZ2UpO1xuICAgIH1cblxuICAgIHJldHVybiBzY2hlbWE7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkTmVzdGVkT2JqZWN0U2NoZW1hKG9wdGlvbnM6IE9iamVjdFR5cGVBbm5vdGF0aW9ucykge1xuXG4gICAgbGV0IG5lc3RlZFNjaGVtYSA9IHRoaXMuYnVpbGRPYmplY3RTY2hlbWEob3B0aW9ucy5nZXRJbnN0YW5jZSgpKTtcbiAgICBpZihvcHRpb25zLnJlcXVpcmVkKSB7XG4gICAgICBuZXN0ZWRTY2hlbWEgPSBuZXN0ZWRTY2hlbWEucmVxdWlyZWQoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmVzdGVkU2NoZW1hO1xuICB9XG59XG4iXX0=
@@ -10,4 +10,5 @@ export * from './lib/forms.module';
10
10
  export * from './lib/ng-form-model-state.service';
11
11
  export * from './lib/ngform-model-state';
12
12
  export * from './lib/field-errors/field-errors.component';
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL211emllaGRlc2lnbi9mb3Jtcy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDJDQUEyQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBmb3Jtc1xuICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWVsZC1lcnJvcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbC1zdGF0ZS1yZXN1bHQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWwtc2NoZW1hLmZhY3RvcnknO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWwtdmFsaWRhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3R5cGUtYW5ub3RhdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZm9ybXMubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL25nLWZvcm0tbW9kZWwtc3RhdGUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9uZ2Zvcm0tbW9kZWwtc3RhdGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGQtZXJyb3JzL2ZpZWxkLWVycm9ycy5jb21wb25lbnQnO1xuIl19
13
+ export * from './lib/masks';
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL211emllaGRlc2lnbi9mb3Jtcy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBmb3Jtc1xuICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWVsZC1lcnJvcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbC1zdGF0ZS1yZXN1bHQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWwtc2NoZW1hLmZhY3RvcnknO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWwtdmFsaWRhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3R5cGUtYW5ub3RhdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZm9ybXMubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL25nLWZvcm0tbW9kZWwtc3RhdGUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9uZ2Zvcm0tbW9kZWwtc3RhdGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGQtZXJyb3JzL2ZpZWxkLWVycm9ycy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWFza3MnOyJdfQ==
@@ -8,6 +8,8 @@ import { CommonModule } from '@angular/common';
8
8
  import { __awaiter } from 'tslib';
9
9
  import { FormGroup, FormArray } from '@angular/forms';
10
10
  import { BehaviorSubject, switchMap, from } from 'rxjs';
11
+ import { format, parse } from 'date-fns';
12
+ import * as IMask from 'imask';
11
13
 
12
14
  class ModelValidator {
13
15
  constructor(modelSchema) {
@@ -181,9 +183,7 @@ class ModelSchemaFactory {
181
183
  return schema;
182
184
  }
183
185
  buildDateSchema(options) {
184
- let schema = Yup.date()
185
- .transform((v, o) => (o === '' ? undefined : v))
186
- .typeError('Please enter a valid date');
186
+ let schema = Yup.date();
187
187
  if (options.required) {
188
188
  schema = schema.required(options.required.message);
189
189
  }
@@ -376,6 +376,45 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImpor
376
376
  }]
377
377
  }], ctorParameters: function () { return [{ type: ModelSchemaFactory }]; } });
378
378
 
379
+ const dateMaskOptions = {
380
+ mask: 'MM/dd/yyyy',
381
+ format: (date) => {
382
+ if (!date) {
383
+ return '';
384
+ }
385
+ return format(date, 'MM/dd/yyyy');
386
+ },
387
+ parse: (str) => {
388
+ const dateRegex = /(0[1-9]|1[0-2])\/(0[1-9]|[12]\d|3[01])\/([12]\d{3})/;
389
+ if (!str.match(dateRegex)) {
390
+ return undefined;
391
+ }
392
+ return parse(str, 'MM/dd/yyyy', new Date());
393
+ },
394
+ blocks: {
395
+ // eslint-disable-next-line @typescript-eslint/naming-convention
396
+ MM: {
397
+ mask: IMask.MaskedRange,
398
+ from: 1,
399
+ to: 12,
400
+ },
401
+ // eslint-disable-next-line @typescript-eslint/naming-convention
402
+ dd: {
403
+ mask: IMask.MaskedRange,
404
+ from: 1,
405
+ to: 31,
406
+ },
407
+ // eslint-disable-next-line @typescript-eslint/naming-convention
408
+ yyyy: {
409
+ mask: IMask.MaskedRange,
410
+ from: 1000,
411
+ to: 9999,
412
+ }
413
+ },
414
+ };
415
+ const phoneNumberOptions = {};
416
+ const currencyOptions = {};
417
+
379
418
  /*
380
419
  * Public API Surface of forms
381
420
  */
@@ -384,5 +423,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImpor
384
423
  * Generated bundle index. Do not edit.
385
424
  */
386
425
 
387
- export { BooleanType, ConstraintType, DateType, FieldErrorsComponent, FormsModule, ModelSchemaFactory, ModelValidator, NgFormModelState, NgFormModelStateFactory, NumberType, ObjectType, StringType, equals, length, max, maxLength, min, minLength, ofValues, pattern, required, test };
426
+ export { BooleanType, ConstraintType, DateType, FieldErrorsComponent, FormsModule, ModelSchemaFactory, ModelValidator, NgFormModelState, NgFormModelStateFactory, NumberType, ObjectType, StringType, currencyOptions, dateMaskOptions, equals, length, max, maxLength, min, minLength, ofValues, pattern, phoneNumberOptions, required, test };
388
427
  //# sourceMappingURL=muziehdesign-forms.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"muziehdesign-forms.mjs","sources":["../../../../projects/muziehdesign/forms/src/lib/model-validator.ts","../../../../projects/muziehdesign/forms/src/lib/constants.ts","../../../../projects/muziehdesign/forms/src/lib/type-annotations.ts","../../../../projects/muziehdesign/forms/src/lib/model-schema.factory.ts","../../../../projects/muziehdesign/forms/src/lib/field-errors/field-errors.component.ts","../../../../projects/muziehdesign/forms/src/lib/field-errors/field-errors.component.html","../../../../projects/muziehdesign/forms/src/lib/forms.module.ts","../../../../projects/muziehdesign/forms/src/lib/ngform-model-state.ts","../../../../projects/muziehdesign/forms/src/lib/ng-form-model-state.service.ts","../../../../projects/muziehdesign/forms/src/public-api.ts","../../../../projects/muziehdesign/forms/src/muziehdesign-forms.ts"],"sourcesContent":["import { SchemaOf, ValidationError } from 'yup';\nimport { FieldError } from './field-error';\n\nexport class ModelValidator<T> {\n private schema: SchemaOf<T>;\n constructor(modelSchema: SchemaOf<T>) {\n this.schema = modelSchema;\n }\n\n validate<T>(model: T): Promise<FieldError[]> {\n return this.schema\n .validate(model, { abortEarly: false })\n .then(() => {\n return [];\n })\n .catch((e: ValidationError) => {\n return e.inner.map((error) => <FieldError>{ path: error.path, type: error.type, message: error.message });\n });\n }\n}\n","export const SCHEMA_METADATA_NAMESPACE = 'custom:muziehdesign:annotations';\n","import 'reflect-metadata';\n\nconst METADATA_KEY = 'custom:muziehdesign:annotations';\n\nexport enum ConstraintType {\n string,\n boolean,\n date,\n object,\n number,\n}\n\nexport interface ConstraintAnnotations {\n constraintType: ConstraintType;\n}\n\nexport interface StringTypeAnnotations extends ConstraintAnnotations {\n required?: RequiredAnnotation;\n length?: LengthAnnotation;\n pattern?: PatternAnnotation;\n maxLength?: MaxLengthAnnotation;\n minLength?: MinLengthAnnotation;\n}\n\nexport interface BooleanTypeAnnotations extends ConstraintAnnotations {\n required?: RequiredAnnotation;\n equals?: EqualsAnnotation<boolean>;\n}\n\nexport interface DateTypeAnnotations extends ConstraintAnnotations {\n required?: RequiredAnnotation;\n min?: MinimumAnnotation<Date>;\n max?: MaximumAnnotation<Date>;\n test?: TestAnnotation<Date>;\n}\n\nexport interface ObjectTypeAnnotations extends ConstraintAnnotations {\n required?: RequiredAnnotation;\n getInstance: () => any;\n}\n\nexport interface NumberTypeAnnotations extends ConstraintAnnotations {\n required?: RequiredAnnotation;\n}\n\nexport interface ValidationAnnotation {\n message?: string;\n}\n\nexport interface RequiredAnnotation extends ValidationAnnotation {\n required: boolean;\n}\n\nexport interface LengthAnnotation extends ValidationAnnotation {\n length: number;\n}\n\nexport interface PatternAnnotation extends ValidationAnnotation {\n pattern: RegExp;\n}\n\nexport interface OfValuesAnnotation extends ValidationAnnotation {\n values: [];\n}\n\nexport interface EqualsAnnotation<T> extends ValidationAnnotation {\n equals: T;\n}\n\nexport interface MinimumAnnotation<T> extends ValidationAnnotation {\n min: T;\n}\n\nexport interface MaximumAnnotation<T> extends ValidationAnnotation {\n max: T;\n}\n\nexport interface TestAnnotation<T> extends ValidationAnnotation {\n test: (d: T) => boolean;\n name: string;\n}\n\nexport interface MaxLengthAnnotation extends ValidationAnnotation {\n maxLength: number;\n}\n\nexport interface MinLengthAnnotation extends ValidationAnnotation {\n minLength: number;\n}\n\nconst registerMetadata = (target: Object, propertyKey: string, constraint: ConstraintAnnotations) => {\n const metadata: Map<string, any> = Reflect.getMetadata(METADATA_KEY, target) || new Map<string, any>();\n metadata.set(propertyKey, constraint);\n Reflect.defineMetadata(METADATA_KEY, metadata, target);\n};\n\nexport function StringType(...annotations: { [key: string]: ValidationAnnotation }[]) {\n return function (target: Object, propertyKey: string) {\n const o = Object.assign({}, ...annotations) as StringTypeAnnotations;\n o.constraintType = ConstraintType.string;\n registerMetadata(target, propertyKey, o);\n };\n}\n\nexport function BooleanType(...annotations: { [key: string]: ValidationAnnotation }[]) {\n return function (target: Object, propertyKey: string) {\n const o = Object.assign({}, ...annotations) as BooleanTypeAnnotations;\n o.constraintType = ConstraintType.boolean;\n registerMetadata(target, propertyKey, o);\n };\n}\n\nexport function DateType(...annotations: { [key: string]: ValidationAnnotation }[]) {\n return function (target: Object, propertyKey: string) {\n const o = Object.assign({}, ...annotations) as DateTypeAnnotations;\n o.constraintType = ConstraintType.date;\n registerMetadata(target, propertyKey, o);\n };\n}\n\nexport function NumberType(...annotations: { [key: string]: ValidationAnnotation }[]) {\n return function (target: Object, propertyKey: string) {\n const o = Object.assign({}, ...annotations) as NumberTypeAnnotations;\n o.constraintType = ConstraintType.number;\n registerMetadata(target, propertyKey, o);\n };\n}\n\nexport function ObjectType<T>(type: { new (): T }, ...annotations: { [key: string]: ValidationAnnotation }[]) {\n return function (target: Object, propertyKey: string) {\n const o = Object.assign({}, ...annotations, { getInstance: () => new type() } as Partial<ObjectTypeAnnotations>) as ObjectTypeAnnotations;\n o.constraintType = ConstraintType.object;\n registerMetadata(target, propertyKey, o);\n };\n}\n\nexport function required(message?: string): { [key: string]: RequiredAnnotation } {\n return { required: { required: true, message: message } };\n}\n\nexport function pattern(regex: RegExp, message?: string): { [key: string]: PatternAnnotation } {\n return { pattern: { pattern: regex, message: message } };\n}\n\nexport function length(length: number, message?: string): { [key: string]: LengthAnnotation } {\n return { length: { length: length, message: message } };\n}\n\nexport function maxLength(maxLength: number, message?: string): { [key: string]: MaxLengthAnnotation } {\n return { maxLength: { maxLength: maxLength, message: message } };\n}\n\nexport function minLength(minLength: number, message?: string): { [key: string]: MinLengthAnnotation } {\n return { minLength: { minLength: minLength, message: message } };\n}\n\nexport function ofValues(values: [], message?: string): { [key: string]: OfValuesAnnotation } {\n return { ofValues: { values: values, message: message } };\n}\n\nexport function equals<T>(value: T, message?: string): { [key: string]: EqualsAnnotation<T> } {\n return { equals: { equals: value, message: message } };\n}\n\nexport function min<T>(value: T, message?: string): { [key: string]: MinimumAnnotation<T> } {\n return { min: { min: value, message: message } };\n}\n\nexport function max<T>(value: T, message?: string): { [key: string]: MaximumAnnotation<T> } {\n return { max: { max: value, message: message } };\n}\n\nexport function test<T>(name: string, test: (d: T) => boolean, message?: string): { [key: string]: TestAnnotation<T> } {\n return { test: { name: name, test: test, message: message } };\n}\n","import { Injectable } from '@angular/core';\nimport { object, SchemaOf } from 'yup';\nimport { ModelValidator } from './model-validator';\nimport { SCHEMA_METADATA_NAMESPACE } from './constants';\nimport { ObjectShape } from 'yup/lib/object';\nimport { BooleanTypeAnnotations, ConstraintAnnotations, ConstraintType, DateTypeAnnotations, ObjectTypeAnnotations, NumberTypeAnnotations, StringTypeAnnotations } from './type-annotations';\nimport * as Yup from 'yup';\n\n/*\nSchema rules need to be built in the order they need to be evaluated in.\nFor example,\n ```\n schema.required().max(...).matches(...);\n ```\nevaluates the 3 rules in this order\n - required\n - max\n - matches\n*/\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ModelSchemaFactory {\n constructor() {}\n\n build<T>(model: T): ModelValidator<T> {\n const schema = this.buildObjectSchema(model);\n return new ModelValidator(schema);\n }\n\n private buildObjectSchema<T>(model: T) {\n const metadata: Map<string, ConstraintAnnotations> = Reflect.getMetadata(SCHEMA_METADATA_NAMESPACE, model);\n let shape: ObjectShape = {};\n metadata.forEach((value, key) => {\n if (value.constraintType == ConstraintType.string) {\n shape[key] = this.buildStringSchema(value as StringTypeAnnotations);\n } else if (value.constraintType == ConstraintType.boolean) {\n shape[key] = this.buildBooleanSchema(value as BooleanTypeAnnotations);\n } else if (value.constraintType == ConstraintType.date) {\n shape[key] = this.buildDateSchema(value as DateTypeAnnotations);\n } else if(value.constraintType == ConstraintType.object) {\n shape[key] = this.buildNestedObjectSchema(value as ObjectTypeAnnotations);\n } else if (value.constraintType == ConstraintType.number) {\n shape[key] = this.buildNumberSchema(value as NumberTypeAnnotations);\n }\n });\n return object(shape) as SchemaOf<T>;\n }\n\n private buildStringSchema(options: StringTypeAnnotations) {\n let schema = Yup.string();\n if (options.required) {\n schema = schema.required(options.required.message);\n }\n if (options.length) {\n schema = schema.length(options.length.length, options.length.message);\n }\n\n if (options.maxLength) {\n schema = schema.max(options.maxLength.maxLength, options.maxLength.message);\n }\n\n if (options.minLength) {\n schema = schema.min(options.minLength.minLength, options.minLength.message);\n }\n\n if (options.pattern) {\n schema = schema.matches(options.pattern.pattern, { message: options.pattern.message, excludeEmptyString: true });\n }\n\n return schema;\n }\n\n private buildBooleanSchema(options: BooleanTypeAnnotations) {\n let schema = Yup.boolean();\n if (options.required) {\n schema = schema.required(options.required.message);\n }\n if (options.equals) {\n if (options.equals.equals) {\n schema = schema.isTrue(options.equals.message);\n } else {\n schema = schema.isFalse(options.equals.message);\n }\n }\n\n return schema;\n }\n\n private buildDateSchema(options: DateTypeAnnotations) {\n let schema = Yup.date()\n .transform((v, o) => (o === '' ? undefined : v))\n .typeError('Please enter a valid date');\n if (options.required) {\n schema = schema.required(options.required.message);\n }\n if (options.min) {\n schema = schema.min(options.min.min, options.min.message);\n }\n if (options.max) {\n schema = schema.max(options.max.max, options.max.message);\n }\n if (options.test) {\n schema = schema.test({\n name: options.test.name,\n message: options.test.message,\n test: (d?: Date, context?: any) => {\n return options.test!.test(d!);\n }});\n }\n\n return schema;\n }\n\n private buildNumberSchema(options: NumberTypeAnnotations) {\n let schema = Yup.number();\n if (options.required) {\n schema = schema.required(options.required.message);\n }\n\n return schema;\n }\n\n private buildNestedObjectSchema(options: ObjectTypeAnnotations) {\n\n let nestedSchema = this.buildObjectSchema(options.getInstance());\n if(options.required) {\n nestedSchema = nestedSchema.required();\n }\n\n return nestedSchema;\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { NgControl, ValidationErrors } from '@angular/forms';\n\n@Component({\n selector: 'mz-field-errors',\n templateUrl: './field-errors.component.html',\n styleUrls: ['./field-errors.component.css'],\n})\nexport class FieldErrorsComponent {\n @Input() field?: NgControl;\n\n get errorMessage(): string {\n const errorKeys = Object.keys(this.field?.errors || {});\n return errorKeys.length > 0 ? (this.field?.errors as ValidationErrors)[errorKeys[0]] : '';\n }\n}\n","<div class=\"field-error\" *ngIf=\"errorMessage\">{{ errorMessage }}</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FieldErrorsComponent } from './field-errors/field-errors.component';\n\n\n\n@NgModule({\n providers: [],\n declarations: [\n FieldErrorsComponent\n ],\n exports: [\n FieldErrorsComponent\n ],\n imports: [\n CommonModule // TODO: can remove once done with temp error displaying\n ]\n})\nexport class FormsModule { }\n","import { AbstractControl, FormArray, FormGroup, NgForm, NgModelGroup, ValidationErrors } from '@angular/forms';\nimport { BehaviorSubject, distinctUntilChanged, from, switchMap } from 'rxjs';\nimport { FieldError } from './field-error';\nimport { ModelStateOptions } from './model-state-options';\nimport { ModelStateResult } from './model-state-result';\nimport { ModelValidator } from './model-validator';\n\nexport class NgFormModelState<T> {\n private changesSubject = new BehaviorSubject<ModelStateResult<T> | undefined>(undefined);\n public readonly changes = this.changesSubject.asObservable();\n\n constructor(private form: NgForm, private modelValidator: ModelValidator<T>, private options?: ModelStateOptions) {\n this.form.form.valueChanges\n .pipe(\n switchMap(async (x) => {\n return from(this.validate());\n })\n )\n .subscribe();\n }\n\n getCurrent(): ModelStateResult<T> | undefined {\n return this.changesSubject.value;\n }\n\n setErrors(errors: FieldError[]) {\n //this.errors.next(errors);\n throw new Error('needs implementation');\n }\n\n async validate(): Promise<ModelStateResult<T>> {\n const model = this.form.value;\n const state = await this.runValidations(model, this.options?.onValidate);\n this.deleteFormErrors();\n\n const grouped = state.errors.reduce((grouped, v) => grouped.set(v.path, [...(grouped.get(v.path) || []), v]), new Map<string, FieldError[]>());\n grouped.forEach((value, path) => {\n let validationErrors = <ValidationErrors>{};\n value.forEach((v) => (validationErrors[v.type] = v.message));\n\n const control = this.form.form.get(path);\n if (!control) {\n // TODO: use actual logging service\n } else {\n control.setErrors(validationErrors);\n }\n });\n\n this.changesSubject.next(state);\n return state;\n }\n\n private deleteFormErrors() {\n this.deleteErrors(this.form.form);\n }\n\n private deleteErrors(rootFormGroup: FormGroup) {\n Object.keys(rootFormGroup.controls).forEach((key) => {\n const control = rootFormGroup.controls[key];\n\n if (!this.isParentControl(control)) {\n this.deleteErrorsFromControl(key, control);\n } else if (control instanceof FormGroup) {\n this.deleteErrors(control as FormGroup);\n } else if (control instanceof FormArray) {\n this.loopFormArray(control as FormArray);\n }\n });\n }\n\n private deleteErrorsFromControl(key: string | number, control: AbstractControl) {\n control.setErrors(null);\n }\n\n private isParentControl(control: AbstractControl) {\n return control instanceof FormGroup || control instanceof FormArray;\n }\n\n private loopFormArray(formArray: FormArray) {\n formArray.controls.forEach((control, index) => {\n if (!this.isParentControl(control)) {\n this.deleteErrorsFromControl(index, control);\n } else if (control instanceof FormGroup) {\n this.deleteErrors(control as FormGroup);\n } else if (control instanceof FormArray) {\n this.loopFormArray(control as FormArray);\n }\n });\n }\n\n private async runValidations<T>(model: T, callback?: (list: FieldError[]) => FieldError[]): Promise<ModelStateResult<T>> {\n const list = await this.modelValidator.validate(model);\n const final = callback?.(list) || list;\n return {\n valid: final.length === 0,\n errors: final,\n model: model,\n };\n }\n}\n","import { Injectable, NO_ERRORS_SCHEMA } from '@angular/core';\nimport { NgForm, ValidationErrors } from '@angular/forms';\nimport { BehaviorSubject, filter, from, switchMap } from 'rxjs';\nimport { FieldError } from './field-error';\nimport { ModelSchemaFactory } from './model-schema.factory';\nimport { ModelStateOptions } from './model-state-options';\nimport { ModelValidator } from './model-validator';\nimport { NgFormModelState } from './ngform-model-state';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NgFormModelStateFactory {\n constructor(private factory: ModelSchemaFactory) {}\n\n create<T>(form: NgForm, model: T, options?: ModelStateOptions) {\n const modelState = new NgFormModelState<T>(form, this.factory.build(model), options);\n return modelState;\n }\n}\n","/*\n * Public API Surface of forms\n */\nexport * from './lib/field-error';\nexport * from './lib/model-state-result';\nexport * from './lib/model-schema.factory';\nexport * from './lib/model-validator';\nexport * from './lib/type-annotations';\nexport * from './lib/forms.module';\nexport * from './lib/ng-form-model-state.service';\nexport * from './lib/ngform-model-state';\nexport * from './lib/field-errors/field-errors.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ModelSchemaFactory"],"mappings":"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"}
1
+ {"version":3,"file":"muziehdesign-forms.mjs","sources":["../../../../projects/muziehdesign/forms/src/lib/model-validator.ts","../../../../projects/muziehdesign/forms/src/lib/constants.ts","../../../../projects/muziehdesign/forms/src/lib/type-annotations.ts","../../../../projects/muziehdesign/forms/src/lib/model-schema.factory.ts","../../../../projects/muziehdesign/forms/src/lib/field-errors/field-errors.component.ts","../../../../projects/muziehdesign/forms/src/lib/field-errors/field-errors.component.html","../../../../projects/muziehdesign/forms/src/lib/forms.module.ts","../../../../projects/muziehdesign/forms/src/lib/ngform-model-state.ts","../../../../projects/muziehdesign/forms/src/lib/ng-form-model-state.service.ts","../../../../projects/muziehdesign/forms/src/lib/masks.ts","../../../../projects/muziehdesign/forms/src/public-api.ts","../../../../projects/muziehdesign/forms/src/muziehdesign-forms.ts"],"sourcesContent":["import { SchemaOf, ValidationError } from 'yup';\nimport { FieldError } from './field-error';\n\nexport class ModelValidator<T> {\n private schema: SchemaOf<T>;\n constructor(modelSchema: SchemaOf<T>) {\n this.schema = modelSchema;\n }\n\n validate<T>(model: T): Promise<FieldError[]> {\n return this.schema\n .validate(model, { abortEarly: false })\n .then(() => {\n return [];\n })\n .catch((e: ValidationError) => {\n return e.inner.map((error) => <FieldError>{ path: error.path, type: error.type, message: error.message });\n });\n }\n}\n","export const SCHEMA_METADATA_NAMESPACE = 'custom:muziehdesign:annotations';\n","import 'reflect-metadata';\n\nconst METADATA_KEY = 'custom:muziehdesign:annotations';\n\nexport enum ConstraintType {\n string,\n boolean,\n date,\n object,\n number,\n}\n\nexport interface ConstraintAnnotations {\n constraintType: ConstraintType;\n}\n\nexport interface StringTypeAnnotations extends ConstraintAnnotations {\n required?: RequiredAnnotation;\n length?: LengthAnnotation;\n pattern?: PatternAnnotation;\n maxLength?: MaxLengthAnnotation;\n minLength?: MinLengthAnnotation;\n}\n\nexport interface BooleanTypeAnnotations extends ConstraintAnnotations {\n required?: RequiredAnnotation;\n equals?: EqualsAnnotation<boolean>;\n}\n\nexport interface DateTypeAnnotations extends ConstraintAnnotations {\n required?: RequiredAnnotation;\n min?: MinimumAnnotation<Date>;\n max?: MaximumAnnotation<Date>;\n test?: TestAnnotation<Date>;\n}\n\nexport interface ObjectTypeAnnotations extends ConstraintAnnotations {\n required?: RequiredAnnotation;\n getInstance: () => any;\n}\n\nexport interface NumberTypeAnnotations extends ConstraintAnnotations {\n required?: RequiredAnnotation;\n}\n\nexport interface ValidationAnnotation {\n message?: string;\n}\n\nexport interface RequiredAnnotation extends ValidationAnnotation {\n required: boolean;\n}\n\nexport interface LengthAnnotation extends ValidationAnnotation {\n length: number;\n}\n\nexport interface PatternAnnotation extends ValidationAnnotation {\n pattern: RegExp;\n}\n\nexport interface OfValuesAnnotation extends ValidationAnnotation {\n values: [];\n}\n\nexport interface EqualsAnnotation<T> extends ValidationAnnotation {\n equals: T;\n}\n\nexport interface MinimumAnnotation<T> extends ValidationAnnotation {\n min: T;\n}\n\nexport interface MaximumAnnotation<T> extends ValidationAnnotation {\n max: T;\n}\n\nexport interface TestAnnotation<T> extends ValidationAnnotation {\n test: (d: T) => boolean;\n name: string;\n}\n\nexport interface MaxLengthAnnotation extends ValidationAnnotation {\n maxLength: number;\n}\n\nexport interface MinLengthAnnotation extends ValidationAnnotation {\n minLength: number;\n}\n\nconst registerMetadata = (target: Object, propertyKey: string, constraint: ConstraintAnnotations) => {\n const metadata: Map<string, any> = Reflect.getMetadata(METADATA_KEY, target) || new Map<string, any>();\n metadata.set(propertyKey, constraint);\n Reflect.defineMetadata(METADATA_KEY, metadata, target);\n};\n\nexport function StringType(...annotations: { [key: string]: ValidationAnnotation }[]) {\n return function (target: Object, propertyKey: string) {\n const o = Object.assign({}, ...annotations) as StringTypeAnnotations;\n o.constraintType = ConstraintType.string;\n registerMetadata(target, propertyKey, o);\n };\n}\n\nexport function BooleanType(...annotations: { [key: string]: ValidationAnnotation }[]) {\n return function (target: Object, propertyKey: string) {\n const o = Object.assign({}, ...annotations) as BooleanTypeAnnotations;\n o.constraintType = ConstraintType.boolean;\n registerMetadata(target, propertyKey, o);\n };\n}\n\nexport function DateType(...annotations: { [key: string]: ValidationAnnotation }[]) {\n return function (target: Object, propertyKey: string) {\n const o = Object.assign({}, ...annotations) as DateTypeAnnotations;\n o.constraintType = ConstraintType.date;\n registerMetadata(target, propertyKey, o);\n };\n}\n\nexport function NumberType(...annotations: { [key: string]: ValidationAnnotation }[]) {\n return function (target: Object, propertyKey: string) {\n const o = Object.assign({}, ...annotations) as NumberTypeAnnotations;\n o.constraintType = ConstraintType.number;\n registerMetadata(target, propertyKey, o);\n };\n}\n\nexport function ObjectType<T>(type: { new (): T }, ...annotations: { [key: string]: ValidationAnnotation }[]) {\n return function (target: Object, propertyKey: string) {\n const o = Object.assign({}, ...annotations, { getInstance: () => new type() } as Partial<ObjectTypeAnnotations>) as ObjectTypeAnnotations;\n o.constraintType = ConstraintType.object;\n registerMetadata(target, propertyKey, o);\n };\n}\n\nexport function required(message?: string): { [key: string]: RequiredAnnotation } {\n return { required: { required: true, message: message } };\n}\n\nexport function pattern(regex: RegExp, message?: string): { [key: string]: PatternAnnotation } {\n return { pattern: { pattern: regex, message: message } };\n}\n\nexport function length(length: number, message?: string): { [key: string]: LengthAnnotation } {\n return { length: { length: length, message: message } };\n}\n\nexport function maxLength(maxLength: number, message?: string): { [key: string]: MaxLengthAnnotation } {\n return { maxLength: { maxLength: maxLength, message: message } };\n}\n\nexport function minLength(minLength: number, message?: string): { [key: string]: MinLengthAnnotation } {\n return { minLength: { minLength: minLength, message: message } };\n}\n\nexport function ofValues(values: [], message?: string): { [key: string]: OfValuesAnnotation } {\n return { ofValues: { values: values, message: message } };\n}\n\nexport function equals<T>(value: T, message?: string): { [key: string]: EqualsAnnotation<T> } {\n return { equals: { equals: value, message: message } };\n}\n\nexport function min<T>(value: T, message?: string): { [key: string]: MinimumAnnotation<T> } {\n return { min: { min: value, message: message } };\n}\n\nexport function max<T>(value: T, message?: string): { [key: string]: MaximumAnnotation<T> } {\n return { max: { max: value, message: message } };\n}\n\nexport function test<T>(name: string, test: (d: T) => boolean, message?: string): { [key: string]: TestAnnotation<T> } {\n return { test: { name: name, test: test, message: message } };\n}\n","import { Injectable } from '@angular/core';\nimport { object, SchemaOf } from 'yup';\nimport { ModelValidator } from './model-validator';\nimport { SCHEMA_METADATA_NAMESPACE } from './constants';\nimport { ObjectShape } from 'yup/lib/object';\nimport { BooleanTypeAnnotations, ConstraintAnnotations, ConstraintType, DateTypeAnnotations, ObjectTypeAnnotations, NumberTypeAnnotations, StringTypeAnnotations } from './type-annotations';\nimport * as Yup from 'yup';\n\n/*\nSchema rules need to be built in the order they need to be evaluated in.\nFor example,\n ```\n schema.required().max(...).matches(...);\n ```\nevaluates the 3 rules in this order\n - required\n - max\n - matches\n*/\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ModelSchemaFactory {\n constructor() {}\n\n build<T>(model: T): ModelValidator<T> {\n const schema = this.buildObjectSchema(model);\n return new ModelValidator(schema);\n }\n\n private buildObjectSchema<T>(model: T) {\n const metadata: Map<string, ConstraintAnnotations> = Reflect.getMetadata(SCHEMA_METADATA_NAMESPACE, model);\n let shape: ObjectShape = {};\n metadata.forEach((value, key) => {\n if (value.constraintType == ConstraintType.string) {\n shape[key] = this.buildStringSchema(value as StringTypeAnnotations);\n } else if (value.constraintType == ConstraintType.boolean) {\n shape[key] = this.buildBooleanSchema(value as BooleanTypeAnnotations);\n } else if (value.constraintType == ConstraintType.date) {\n shape[key] = this.buildDateSchema(value as DateTypeAnnotations);\n } else if(value.constraintType == ConstraintType.object) {\n shape[key] = this.buildNestedObjectSchema(value as ObjectTypeAnnotations);\n } else if (value.constraintType == ConstraintType.number) {\n shape[key] = this.buildNumberSchema(value as NumberTypeAnnotations);\n }\n });\n return object(shape) as SchemaOf<T>;\n }\n\n private buildStringSchema(options: StringTypeAnnotations) {\n let schema = Yup.string();\n if (options.required) {\n schema = schema.required(options.required.message);\n }\n if (options.length) {\n schema = schema.length(options.length.length, options.length.message);\n }\n\n if (options.maxLength) {\n schema = schema.max(options.maxLength.maxLength, options.maxLength.message);\n }\n\n if (options.minLength) {\n schema = schema.min(options.minLength.minLength, options.minLength.message);\n }\n\n if (options.pattern) {\n schema = schema.matches(options.pattern.pattern, { message: options.pattern.message, excludeEmptyString: true });\n }\n\n return schema;\n }\n\n private buildBooleanSchema(options: BooleanTypeAnnotations) {\n let schema = Yup.boolean();\n if (options.required) {\n schema = schema.required(options.required.message);\n }\n if (options.equals) {\n if (options.equals.equals) {\n schema = schema.isTrue(options.equals.message);\n } else {\n schema = schema.isFalse(options.equals.message);\n }\n }\n\n return schema;\n }\n\n private buildDateSchema(options: DateTypeAnnotations) {\n let schema = Yup.date();\n \n if (options.required) {\n schema = schema.required(options.required.message);\n }\n if (options.min) {\n schema = schema.min(options.min.min, options.min.message);\n }\n if (options.max) {\n schema = schema.max(options.max.max, options.max.message);\n }\n if (options.test) {\n schema = schema.test({\n name: options.test.name,\n message: options.test.message,\n test: (d?: Date, context?: any) => {\n return options.test!.test(d!);\n }});\n }\n\n return schema;\n }\n\n private buildNumberSchema(options: NumberTypeAnnotations) {\n let schema = Yup.number();\n if (options.required) {\n schema = schema.required(options.required.message);\n }\n\n return schema;\n }\n\n private buildNestedObjectSchema(options: ObjectTypeAnnotations) {\n\n let nestedSchema = this.buildObjectSchema(options.getInstance());\n if(options.required) {\n nestedSchema = nestedSchema.required();\n }\n\n return nestedSchema;\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { NgControl, ValidationErrors } from '@angular/forms';\n\n@Component({\n selector: 'mz-field-errors',\n templateUrl: './field-errors.component.html',\n styleUrls: ['./field-errors.component.css'],\n})\nexport class FieldErrorsComponent {\n @Input() field?: NgControl;\n\n get errorMessage(): string {\n const errorKeys = Object.keys(this.field?.errors || {});\n return errorKeys.length > 0 ? (this.field?.errors as ValidationErrors)[errorKeys[0]] : '';\n }\n}\n","<div class=\"field-error\" *ngIf=\"errorMessage\">{{ errorMessage }}</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FieldErrorsComponent } from './field-errors/field-errors.component';\n\n\n\n@NgModule({\n providers: [],\n declarations: [\n FieldErrorsComponent\n ],\n exports: [\n FieldErrorsComponent\n ],\n imports: [\n CommonModule // TODO: can remove once done with temp error displaying\n ]\n})\nexport class FormsModule { }\n","import { AbstractControl, FormArray, FormGroup, NgForm, NgModelGroup, ValidationErrors } from '@angular/forms';\nimport { BehaviorSubject, distinctUntilChanged, from, switchMap } from 'rxjs';\nimport { FieldError } from './field-error';\nimport { ModelStateOptions } from './model-state-options';\nimport { ModelStateResult } from './model-state-result';\nimport { ModelValidator } from './model-validator';\n\nexport class NgFormModelState<T> {\n private changesSubject = new BehaviorSubject<ModelStateResult<T> | undefined>(undefined);\n public readonly changes = this.changesSubject.asObservable();\n\n constructor(private form: NgForm, private modelValidator: ModelValidator<T>, private options?: ModelStateOptions) {\n this.form.form.valueChanges\n .pipe(\n switchMap(async (x) => {\n return from(this.validate());\n })\n )\n .subscribe();\n }\n\n getCurrent(): ModelStateResult<T> | undefined {\n return this.changesSubject.value;\n }\n\n setErrors(errors: FieldError[]) {\n //this.errors.next(errors);\n throw new Error('needs implementation');\n }\n\n async validate(): Promise<ModelStateResult<T>> {\n const model = this.form.value;\n const state = await this.runValidations(model, this.options?.onValidate);\n this.deleteFormErrors();\n\n const grouped = state.errors.reduce((grouped, v) => grouped.set(v.path, [...(grouped.get(v.path) || []), v]), new Map<string, FieldError[]>());\n grouped.forEach((value, path) => {\n let validationErrors = <ValidationErrors>{};\n value.forEach((v) => (validationErrors[v.type] = v.message));\n\n const control = this.form.form.get(path);\n if (!control) {\n // TODO: use actual logging service\n } else {\n control.setErrors(validationErrors);\n }\n });\n\n this.changesSubject.next(state);\n return state;\n }\n\n private deleteFormErrors() {\n this.deleteErrors(this.form.form);\n }\n\n private deleteErrors(rootFormGroup: FormGroup) {\n Object.keys(rootFormGroup.controls).forEach((key) => {\n const control = rootFormGroup.controls[key];\n\n if (!this.isParentControl(control)) {\n this.deleteErrorsFromControl(key, control);\n } else if (control instanceof FormGroup) {\n this.deleteErrors(control as FormGroup);\n } else if (control instanceof FormArray) {\n this.loopFormArray(control as FormArray);\n }\n });\n }\n\n private deleteErrorsFromControl(key: string | number, control: AbstractControl) {\n control.setErrors(null);\n }\n\n private isParentControl(control: AbstractControl) {\n return control instanceof FormGroup || control instanceof FormArray;\n }\n\n private loopFormArray(formArray: FormArray) {\n formArray.controls.forEach((control, index) => {\n if (!this.isParentControl(control)) {\n this.deleteErrorsFromControl(index, control);\n } else if (control instanceof FormGroup) {\n this.deleteErrors(control as FormGroup);\n } else if (control instanceof FormArray) {\n this.loopFormArray(control as FormArray);\n }\n });\n }\n\n private async runValidations<T>(model: T, callback?: (list: FieldError[]) => FieldError[]): Promise<ModelStateResult<T>> {\n const list = await this.modelValidator.validate(model);\n const final = callback?.(list) || list;\n return {\n valid: final.length === 0,\n errors: final,\n model: model,\n };\n }\n}\n","import { Injectable, NO_ERRORS_SCHEMA } from '@angular/core';\nimport { NgForm, ValidationErrors } from '@angular/forms';\nimport { BehaviorSubject, filter, from, switchMap } from 'rxjs';\nimport { FieldError } from './field-error';\nimport { ModelSchemaFactory } from './model-schema.factory';\nimport { ModelStateOptions } from './model-state-options';\nimport { ModelValidator } from './model-validator';\nimport { NgFormModelState } from './ngform-model-state';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NgFormModelStateFactory {\n constructor(private factory: ModelSchemaFactory) {}\n\n create<T>(form: NgForm, model: T, options?: ModelStateOptions) {\n const modelState = new NgFormModelState<T>(form, this.factory.build(model), options);\n return modelState;\n }\n}\n","import { format, isValid, parse } from \"date-fns\";\nimport * as IMask from \"imask\";\n\nexport const dateMaskOptions = {\n mask: 'MM/dd/yyyy',\n format: (date: Date | undefined): string => {\n if (!date) {\n return '';\n }\n return format(date, 'MM/dd/yyyy');\n },\n parse: (str: string): Date | undefined => {\n const dateRegex = /(0[1-9]|1[0-2])\\/(0[1-9]|[12]\\d|3[01])\\/([12]\\d{3})/;\n if (!str.match(dateRegex)) {\n return undefined;\n }\n return parse(str, 'MM/dd/yyyy', new Date());\n },\n blocks: {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n MM: {\n mask: IMask.MaskedRange,\n from: 1,\n to: 12,\n },\n // eslint-disable-next-line @typescript-eslint/naming-convention\n dd: {\n mask: IMask.MaskedRange,\n from: 1,\n to: 31,\n },\n // eslint-disable-next-line @typescript-eslint/naming-convention\n yyyy: {\n mask: IMask.MaskedRange,\n from: 1000,\n to: 9999,\n }\n },\n };\n\n export const phoneNumberOptions = {}\n\n export const currencyOptions = {};","/*\n * Public API Surface of forms\n */\nexport * from './lib/field-error';\nexport * from './lib/model-state-result';\nexport * from './lib/model-schema.factory';\nexport * from './lib/model-validator';\nexport * from './lib/type-annotations';\nexport * from './lib/forms.module';\nexport * from './lib/ng-form-model-state.service';\nexport * from './lib/ngform-model-state';\nexport * from './lib/field-errors/field-errors.component';\nexport * from './lib/masks';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ModelSchemaFactory"],"mappings":"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"}
@@ -7,6 +7,8 @@ import * as i1 from '@angular/common';
7
7
  import { CommonModule } from '@angular/common';
8
8
  import { FormGroup, FormArray } from '@angular/forms';
9
9
  import { BehaviorSubject, switchMap, from } from 'rxjs';
10
+ import { format, parse } from 'date-fns';
11
+ import * as IMask from 'imask';
10
12
 
11
13
  class ModelValidator {
12
14
  constructor(modelSchema) {
@@ -180,9 +182,7 @@ class ModelSchemaFactory {
180
182
  return schema;
181
183
  }
182
184
  buildDateSchema(options) {
183
- let schema = Yup.date()
184
- .transform((v, o) => (o === '' ? undefined : v))
185
- .typeError('Please enter a valid date');
185
+ let schema = Yup.date();
186
186
  if (options.required) {
187
187
  schema = schema.required(options.required.message);
188
188
  }
@@ -369,6 +369,45 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImpor
369
369
  }]
370
370
  }], ctorParameters: function () { return [{ type: ModelSchemaFactory }]; } });
371
371
 
372
+ const dateMaskOptions = {
373
+ mask: 'MM/dd/yyyy',
374
+ format: (date) => {
375
+ if (!date) {
376
+ return '';
377
+ }
378
+ return format(date, 'MM/dd/yyyy');
379
+ },
380
+ parse: (str) => {
381
+ const dateRegex = /(0[1-9]|1[0-2])\/(0[1-9]|[12]\d|3[01])\/([12]\d{3})/;
382
+ if (!str.match(dateRegex)) {
383
+ return undefined;
384
+ }
385
+ return parse(str, 'MM/dd/yyyy', new Date());
386
+ },
387
+ blocks: {
388
+ // eslint-disable-next-line @typescript-eslint/naming-convention
389
+ MM: {
390
+ mask: IMask.MaskedRange,
391
+ from: 1,
392
+ to: 12,
393
+ },
394
+ // eslint-disable-next-line @typescript-eslint/naming-convention
395
+ dd: {
396
+ mask: IMask.MaskedRange,
397
+ from: 1,
398
+ to: 31,
399
+ },
400
+ // eslint-disable-next-line @typescript-eslint/naming-convention
401
+ yyyy: {
402
+ mask: IMask.MaskedRange,
403
+ from: 1000,
404
+ to: 9999,
405
+ }
406
+ },
407
+ };
408
+ const phoneNumberOptions = {};
409
+ const currencyOptions = {};
410
+
372
411
  /*
373
412
  * Public API Surface of forms
374
413
  */
@@ -377,5 +416,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImpor
377
416
  * Generated bundle index. Do not edit.
378
417
  */
379
418
 
380
- export { BooleanType, ConstraintType, DateType, FieldErrorsComponent, FormsModule, ModelSchemaFactory, ModelValidator, NgFormModelState, NgFormModelStateFactory, NumberType, ObjectType, StringType, equals, length, max, maxLength, min, minLength, ofValues, pattern, required, test };
419
+ export { BooleanType, ConstraintType, DateType, FieldErrorsComponent, FormsModule, ModelSchemaFactory, ModelValidator, NgFormModelState, NgFormModelStateFactory, NumberType, ObjectType, StringType, currencyOptions, dateMaskOptions, equals, length, max, maxLength, min, minLength, ofValues, pattern, phoneNumberOptions, required, test };
381
420
  //# sourceMappingURL=muziehdesign-forms.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"muziehdesign-forms.mjs","sources":["../../../../projects/muziehdesign/forms/src/lib/model-validator.ts","../../../../projects/muziehdesign/forms/src/lib/constants.ts","../../../../projects/muziehdesign/forms/src/lib/type-annotations.ts","../../../../projects/muziehdesign/forms/src/lib/model-schema.factory.ts","../../../../projects/muziehdesign/forms/src/lib/field-errors/field-errors.component.ts","../../../../projects/muziehdesign/forms/src/lib/field-errors/field-errors.component.html","../../../../projects/muziehdesign/forms/src/lib/forms.module.ts","../../../../projects/muziehdesign/forms/src/lib/ngform-model-state.ts","../../../../projects/muziehdesign/forms/src/lib/ng-form-model-state.service.ts","../../../../projects/muziehdesign/forms/src/public-api.ts","../../../../projects/muziehdesign/forms/src/muziehdesign-forms.ts"],"sourcesContent":["import { SchemaOf, ValidationError } from 'yup';\nimport { FieldError } from './field-error';\n\nexport class ModelValidator<T> {\n private schema: SchemaOf<T>;\n constructor(modelSchema: SchemaOf<T>) {\n this.schema = modelSchema;\n }\n\n validate<T>(model: T): Promise<FieldError[]> {\n return this.schema\n .validate(model, { abortEarly: false })\n .then(() => {\n return [];\n })\n .catch((e: ValidationError) => {\n return e.inner.map((error) => <FieldError>{ path: error.path, type: error.type, message: error.message });\n });\n }\n}\n","export const SCHEMA_METADATA_NAMESPACE = 'custom:muziehdesign:annotations';\n","import 'reflect-metadata';\n\nconst METADATA_KEY = 'custom:muziehdesign:annotations';\n\nexport enum ConstraintType {\n string,\n boolean,\n date,\n object,\n number,\n}\n\nexport interface ConstraintAnnotations {\n constraintType: ConstraintType;\n}\n\nexport interface StringTypeAnnotations extends ConstraintAnnotations {\n required?: RequiredAnnotation;\n length?: LengthAnnotation;\n pattern?: PatternAnnotation;\n maxLength?: MaxLengthAnnotation;\n minLength?: MinLengthAnnotation;\n}\n\nexport interface BooleanTypeAnnotations extends ConstraintAnnotations {\n required?: RequiredAnnotation;\n equals?: EqualsAnnotation<boolean>;\n}\n\nexport interface DateTypeAnnotations extends ConstraintAnnotations {\n required?: RequiredAnnotation;\n min?: MinimumAnnotation<Date>;\n max?: MaximumAnnotation<Date>;\n test?: TestAnnotation<Date>;\n}\n\nexport interface ObjectTypeAnnotations extends ConstraintAnnotations {\n required?: RequiredAnnotation;\n getInstance: () => any;\n}\n\nexport interface NumberTypeAnnotations extends ConstraintAnnotations {\n required?: RequiredAnnotation;\n}\n\nexport interface ValidationAnnotation {\n message?: string;\n}\n\nexport interface RequiredAnnotation extends ValidationAnnotation {\n required: boolean;\n}\n\nexport interface LengthAnnotation extends ValidationAnnotation {\n length: number;\n}\n\nexport interface PatternAnnotation extends ValidationAnnotation {\n pattern: RegExp;\n}\n\nexport interface OfValuesAnnotation extends ValidationAnnotation {\n values: [];\n}\n\nexport interface EqualsAnnotation<T> extends ValidationAnnotation {\n equals: T;\n}\n\nexport interface MinimumAnnotation<T> extends ValidationAnnotation {\n min: T;\n}\n\nexport interface MaximumAnnotation<T> extends ValidationAnnotation {\n max: T;\n}\n\nexport interface TestAnnotation<T> extends ValidationAnnotation {\n test: (d: T) => boolean;\n name: string;\n}\n\nexport interface MaxLengthAnnotation extends ValidationAnnotation {\n maxLength: number;\n}\n\nexport interface MinLengthAnnotation extends ValidationAnnotation {\n minLength: number;\n}\n\nconst registerMetadata = (target: Object, propertyKey: string, constraint: ConstraintAnnotations) => {\n const metadata: Map<string, any> = Reflect.getMetadata(METADATA_KEY, target) || new Map<string, any>();\n metadata.set(propertyKey, constraint);\n Reflect.defineMetadata(METADATA_KEY, metadata, target);\n};\n\nexport function StringType(...annotations: { [key: string]: ValidationAnnotation }[]) {\n return function (target: Object, propertyKey: string) {\n const o = Object.assign({}, ...annotations) as StringTypeAnnotations;\n o.constraintType = ConstraintType.string;\n registerMetadata(target, propertyKey, o);\n };\n}\n\nexport function BooleanType(...annotations: { [key: string]: ValidationAnnotation }[]) {\n return function (target: Object, propertyKey: string) {\n const o = Object.assign({}, ...annotations) as BooleanTypeAnnotations;\n o.constraintType = ConstraintType.boolean;\n registerMetadata(target, propertyKey, o);\n };\n}\n\nexport function DateType(...annotations: { [key: string]: ValidationAnnotation }[]) {\n return function (target: Object, propertyKey: string) {\n const o = Object.assign({}, ...annotations) as DateTypeAnnotations;\n o.constraintType = ConstraintType.date;\n registerMetadata(target, propertyKey, o);\n };\n}\n\nexport function NumberType(...annotations: { [key: string]: ValidationAnnotation }[]) {\n return function (target: Object, propertyKey: string) {\n const o = Object.assign({}, ...annotations) as NumberTypeAnnotations;\n o.constraintType = ConstraintType.number;\n registerMetadata(target, propertyKey, o);\n };\n}\n\nexport function ObjectType<T>(type: { new (): T }, ...annotations: { [key: string]: ValidationAnnotation }[]) {\n return function (target: Object, propertyKey: string) {\n const o = Object.assign({}, ...annotations, { getInstance: () => new type() } as Partial<ObjectTypeAnnotations>) as ObjectTypeAnnotations;\n o.constraintType = ConstraintType.object;\n registerMetadata(target, propertyKey, o);\n };\n}\n\nexport function required(message?: string): { [key: string]: RequiredAnnotation } {\n return { required: { required: true, message: message } };\n}\n\nexport function pattern(regex: RegExp, message?: string): { [key: string]: PatternAnnotation } {\n return { pattern: { pattern: regex, message: message } };\n}\n\nexport function length(length: number, message?: string): { [key: string]: LengthAnnotation } {\n return { length: { length: length, message: message } };\n}\n\nexport function maxLength(maxLength: number, message?: string): { [key: string]: MaxLengthAnnotation } {\n return { maxLength: { maxLength: maxLength, message: message } };\n}\n\nexport function minLength(minLength: number, message?: string): { [key: string]: MinLengthAnnotation } {\n return { minLength: { minLength: minLength, message: message } };\n}\n\nexport function ofValues(values: [], message?: string): { [key: string]: OfValuesAnnotation } {\n return { ofValues: { values: values, message: message } };\n}\n\nexport function equals<T>(value: T, message?: string): { [key: string]: EqualsAnnotation<T> } {\n return { equals: { equals: value, message: message } };\n}\n\nexport function min<T>(value: T, message?: string): { [key: string]: MinimumAnnotation<T> } {\n return { min: { min: value, message: message } };\n}\n\nexport function max<T>(value: T, message?: string): { [key: string]: MaximumAnnotation<T> } {\n return { max: { max: value, message: message } };\n}\n\nexport function test<T>(name: string, test: (d: T) => boolean, message?: string): { [key: string]: TestAnnotation<T> } {\n return { test: { name: name, test: test, message: message } };\n}\n","import { Injectable } from '@angular/core';\nimport { object, SchemaOf } from 'yup';\nimport { ModelValidator } from './model-validator';\nimport { SCHEMA_METADATA_NAMESPACE } from './constants';\nimport { ObjectShape } from 'yup/lib/object';\nimport { BooleanTypeAnnotations, ConstraintAnnotations, ConstraintType, DateTypeAnnotations, ObjectTypeAnnotations, NumberTypeAnnotations, StringTypeAnnotations } from './type-annotations';\nimport * as Yup from 'yup';\n\n/*\nSchema rules need to be built in the order they need to be evaluated in.\nFor example,\n ```\n schema.required().max(...).matches(...);\n ```\nevaluates the 3 rules in this order\n - required\n - max\n - matches\n*/\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ModelSchemaFactory {\n constructor() {}\n\n build<T>(model: T): ModelValidator<T> {\n const schema = this.buildObjectSchema(model);\n return new ModelValidator(schema);\n }\n\n private buildObjectSchema<T>(model: T) {\n const metadata: Map<string, ConstraintAnnotations> = Reflect.getMetadata(SCHEMA_METADATA_NAMESPACE, model);\n let shape: ObjectShape = {};\n metadata.forEach((value, key) => {\n if (value.constraintType == ConstraintType.string) {\n shape[key] = this.buildStringSchema(value as StringTypeAnnotations);\n } else if (value.constraintType == ConstraintType.boolean) {\n shape[key] = this.buildBooleanSchema(value as BooleanTypeAnnotations);\n } else if (value.constraintType == ConstraintType.date) {\n shape[key] = this.buildDateSchema(value as DateTypeAnnotations);\n } else if(value.constraintType == ConstraintType.object) {\n shape[key] = this.buildNestedObjectSchema(value as ObjectTypeAnnotations);\n } else if (value.constraintType == ConstraintType.number) {\n shape[key] = this.buildNumberSchema(value as NumberTypeAnnotations);\n }\n });\n return object(shape) as SchemaOf<T>;\n }\n\n private buildStringSchema(options: StringTypeAnnotations) {\n let schema = Yup.string();\n if (options.required) {\n schema = schema.required(options.required.message);\n }\n if (options.length) {\n schema = schema.length(options.length.length, options.length.message);\n }\n\n if (options.maxLength) {\n schema = schema.max(options.maxLength.maxLength, options.maxLength.message);\n }\n\n if (options.minLength) {\n schema = schema.min(options.minLength.minLength, options.minLength.message);\n }\n\n if (options.pattern) {\n schema = schema.matches(options.pattern.pattern, { message: options.pattern.message, excludeEmptyString: true });\n }\n\n return schema;\n }\n\n private buildBooleanSchema(options: BooleanTypeAnnotations) {\n let schema = Yup.boolean();\n if (options.required) {\n schema = schema.required(options.required.message);\n }\n if (options.equals) {\n if (options.equals.equals) {\n schema = schema.isTrue(options.equals.message);\n } else {\n schema = schema.isFalse(options.equals.message);\n }\n }\n\n return schema;\n }\n\n private buildDateSchema(options: DateTypeAnnotations) {\n let schema = Yup.date()\n .transform((v, o) => (o === '' ? undefined : v))\n .typeError('Please enter a valid date');\n if (options.required) {\n schema = schema.required(options.required.message);\n }\n if (options.min) {\n schema = schema.min(options.min.min, options.min.message);\n }\n if (options.max) {\n schema = schema.max(options.max.max, options.max.message);\n }\n if (options.test) {\n schema = schema.test({\n name: options.test.name,\n message: options.test.message,\n test: (d?: Date, context?: any) => {\n return options.test!.test(d!);\n }});\n }\n\n return schema;\n }\n\n private buildNumberSchema(options: NumberTypeAnnotations) {\n let schema = Yup.number();\n if (options.required) {\n schema = schema.required(options.required.message);\n }\n\n return schema;\n }\n\n private buildNestedObjectSchema(options: ObjectTypeAnnotations) {\n\n let nestedSchema = this.buildObjectSchema(options.getInstance());\n if(options.required) {\n nestedSchema = nestedSchema.required();\n }\n\n return nestedSchema;\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { NgControl, ValidationErrors } from '@angular/forms';\n\n@Component({\n selector: 'mz-field-errors',\n templateUrl: './field-errors.component.html',\n styleUrls: ['./field-errors.component.css'],\n})\nexport class FieldErrorsComponent {\n @Input() field?: NgControl;\n\n get errorMessage(): string {\n const errorKeys = Object.keys(this.field?.errors || {});\n return errorKeys.length > 0 ? (this.field?.errors as ValidationErrors)[errorKeys[0]] : '';\n }\n}\n","<div class=\"field-error\" *ngIf=\"errorMessage\">{{ errorMessage }}</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FieldErrorsComponent } from './field-errors/field-errors.component';\n\n\n\n@NgModule({\n providers: [],\n declarations: [\n FieldErrorsComponent\n ],\n exports: [\n FieldErrorsComponent\n ],\n imports: [\n CommonModule // TODO: can remove once done with temp error displaying\n ]\n})\nexport class FormsModule { }\n","import { AbstractControl, FormArray, FormGroup, NgForm, NgModelGroup, ValidationErrors } from '@angular/forms';\nimport { BehaviorSubject, distinctUntilChanged, from, switchMap } from 'rxjs';\nimport { FieldError } from './field-error';\nimport { ModelStateOptions } from './model-state-options';\nimport { ModelStateResult } from './model-state-result';\nimport { ModelValidator } from './model-validator';\n\nexport class NgFormModelState<T> {\n private changesSubject = new BehaviorSubject<ModelStateResult<T> | undefined>(undefined);\n public readonly changes = this.changesSubject.asObservable();\n\n constructor(private form: NgForm, private modelValidator: ModelValidator<T>, private options?: ModelStateOptions) {\n this.form.form.valueChanges\n .pipe(\n switchMap(async (x) => {\n return from(this.validate());\n })\n )\n .subscribe();\n }\n\n getCurrent(): ModelStateResult<T> | undefined {\n return this.changesSubject.value;\n }\n\n setErrors(errors: FieldError[]) {\n //this.errors.next(errors);\n throw new Error('needs implementation');\n }\n\n async validate(): Promise<ModelStateResult<T>> {\n const model = this.form.value;\n const state = await this.runValidations(model, this.options?.onValidate);\n this.deleteFormErrors();\n\n const grouped = state.errors.reduce((grouped, v) => grouped.set(v.path, [...(grouped.get(v.path) || []), v]), new Map<string, FieldError[]>());\n grouped.forEach((value, path) => {\n let validationErrors = <ValidationErrors>{};\n value.forEach((v) => (validationErrors[v.type] = v.message));\n\n const control = this.form.form.get(path);\n if (!control) {\n // TODO: use actual logging service\n } else {\n control.setErrors(validationErrors);\n }\n });\n\n this.changesSubject.next(state);\n return state;\n }\n\n private deleteFormErrors() {\n this.deleteErrors(this.form.form);\n }\n\n private deleteErrors(rootFormGroup: FormGroup) {\n Object.keys(rootFormGroup.controls).forEach((key) => {\n const control = rootFormGroup.controls[key];\n\n if (!this.isParentControl(control)) {\n this.deleteErrorsFromControl(key, control);\n } else if (control instanceof FormGroup) {\n this.deleteErrors(control as FormGroup);\n } else if (control instanceof FormArray) {\n this.loopFormArray(control as FormArray);\n }\n });\n }\n\n private deleteErrorsFromControl(key: string | number, control: AbstractControl) {\n control.setErrors(null);\n }\n\n private isParentControl(control: AbstractControl) {\n return control instanceof FormGroup || control instanceof FormArray;\n }\n\n private loopFormArray(formArray: FormArray) {\n formArray.controls.forEach((control, index) => {\n if (!this.isParentControl(control)) {\n this.deleteErrorsFromControl(index, control);\n } else if (control instanceof FormGroup) {\n this.deleteErrors(control as FormGroup);\n } else if (control instanceof FormArray) {\n this.loopFormArray(control as FormArray);\n }\n });\n }\n\n private async runValidations<T>(model: T, callback?: (list: FieldError[]) => FieldError[]): Promise<ModelStateResult<T>> {\n const list = await this.modelValidator.validate(model);\n const final = callback?.(list) || list;\n return {\n valid: final.length === 0,\n errors: final,\n model: model,\n };\n }\n}\n","import { Injectable, NO_ERRORS_SCHEMA } from '@angular/core';\nimport { NgForm, ValidationErrors } from '@angular/forms';\nimport { BehaviorSubject, filter, from, switchMap } from 'rxjs';\nimport { FieldError } from './field-error';\nimport { ModelSchemaFactory } from './model-schema.factory';\nimport { ModelStateOptions } from './model-state-options';\nimport { ModelValidator } from './model-validator';\nimport { NgFormModelState } from './ngform-model-state';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NgFormModelStateFactory {\n constructor(private factory: ModelSchemaFactory) {}\n\n create<T>(form: NgForm, model: T, options?: ModelStateOptions) {\n const modelState = new NgFormModelState<T>(form, this.factory.build(model), options);\n return modelState;\n }\n}\n","/*\n * Public API Surface of forms\n */\nexport * from './lib/field-error';\nexport * from './lib/model-state-result';\nexport * from './lib/model-schema.factory';\nexport * from './lib/model-validator';\nexport * from './lib/type-annotations';\nexport * from './lib/forms.module';\nexport * from './lib/ng-form-model-state.service';\nexport * from './lib/ngform-model-state';\nexport * from './lib/field-errors/field-errors.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ModelSchemaFactory"],"mappings":"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"}
1
+ {"version":3,"file":"muziehdesign-forms.mjs","sources":["../../../../projects/muziehdesign/forms/src/lib/model-validator.ts","../../../../projects/muziehdesign/forms/src/lib/constants.ts","../../../../projects/muziehdesign/forms/src/lib/type-annotations.ts","../../../../projects/muziehdesign/forms/src/lib/model-schema.factory.ts","../../../../projects/muziehdesign/forms/src/lib/field-errors/field-errors.component.ts","../../../../projects/muziehdesign/forms/src/lib/field-errors/field-errors.component.html","../../../../projects/muziehdesign/forms/src/lib/forms.module.ts","../../../../projects/muziehdesign/forms/src/lib/ngform-model-state.ts","../../../../projects/muziehdesign/forms/src/lib/ng-form-model-state.service.ts","../../../../projects/muziehdesign/forms/src/lib/masks.ts","../../../../projects/muziehdesign/forms/src/public-api.ts","../../../../projects/muziehdesign/forms/src/muziehdesign-forms.ts"],"sourcesContent":["import { SchemaOf, ValidationError } from 'yup';\nimport { FieldError } from './field-error';\n\nexport class ModelValidator<T> {\n private schema: SchemaOf<T>;\n constructor(modelSchema: SchemaOf<T>) {\n this.schema = modelSchema;\n }\n\n validate<T>(model: T): Promise<FieldError[]> {\n return this.schema\n .validate(model, { abortEarly: false })\n .then(() => {\n return [];\n })\n .catch((e: ValidationError) => {\n return e.inner.map((error) => <FieldError>{ path: error.path, type: error.type, message: error.message });\n });\n }\n}\n","export const SCHEMA_METADATA_NAMESPACE = 'custom:muziehdesign:annotations';\n","import 'reflect-metadata';\n\nconst METADATA_KEY = 'custom:muziehdesign:annotations';\n\nexport enum ConstraintType {\n string,\n boolean,\n date,\n object,\n number,\n}\n\nexport interface ConstraintAnnotations {\n constraintType: ConstraintType;\n}\n\nexport interface StringTypeAnnotations extends ConstraintAnnotations {\n required?: RequiredAnnotation;\n length?: LengthAnnotation;\n pattern?: PatternAnnotation;\n maxLength?: MaxLengthAnnotation;\n minLength?: MinLengthAnnotation;\n}\n\nexport interface BooleanTypeAnnotations extends ConstraintAnnotations {\n required?: RequiredAnnotation;\n equals?: EqualsAnnotation<boolean>;\n}\n\nexport interface DateTypeAnnotations extends ConstraintAnnotations {\n required?: RequiredAnnotation;\n min?: MinimumAnnotation<Date>;\n max?: MaximumAnnotation<Date>;\n test?: TestAnnotation<Date>;\n}\n\nexport interface ObjectTypeAnnotations extends ConstraintAnnotations {\n required?: RequiredAnnotation;\n getInstance: () => any;\n}\n\nexport interface NumberTypeAnnotations extends ConstraintAnnotations {\n required?: RequiredAnnotation;\n}\n\nexport interface ValidationAnnotation {\n message?: string;\n}\n\nexport interface RequiredAnnotation extends ValidationAnnotation {\n required: boolean;\n}\n\nexport interface LengthAnnotation extends ValidationAnnotation {\n length: number;\n}\n\nexport interface PatternAnnotation extends ValidationAnnotation {\n pattern: RegExp;\n}\n\nexport interface OfValuesAnnotation extends ValidationAnnotation {\n values: [];\n}\n\nexport interface EqualsAnnotation<T> extends ValidationAnnotation {\n equals: T;\n}\n\nexport interface MinimumAnnotation<T> extends ValidationAnnotation {\n min: T;\n}\n\nexport interface MaximumAnnotation<T> extends ValidationAnnotation {\n max: T;\n}\n\nexport interface TestAnnotation<T> extends ValidationAnnotation {\n test: (d: T) => boolean;\n name: string;\n}\n\nexport interface MaxLengthAnnotation extends ValidationAnnotation {\n maxLength: number;\n}\n\nexport interface MinLengthAnnotation extends ValidationAnnotation {\n minLength: number;\n}\n\nconst registerMetadata = (target: Object, propertyKey: string, constraint: ConstraintAnnotations) => {\n const metadata: Map<string, any> = Reflect.getMetadata(METADATA_KEY, target) || new Map<string, any>();\n metadata.set(propertyKey, constraint);\n Reflect.defineMetadata(METADATA_KEY, metadata, target);\n};\n\nexport function StringType(...annotations: { [key: string]: ValidationAnnotation }[]) {\n return function (target: Object, propertyKey: string) {\n const o = Object.assign({}, ...annotations) as StringTypeAnnotations;\n o.constraintType = ConstraintType.string;\n registerMetadata(target, propertyKey, o);\n };\n}\n\nexport function BooleanType(...annotations: { [key: string]: ValidationAnnotation }[]) {\n return function (target: Object, propertyKey: string) {\n const o = Object.assign({}, ...annotations) as BooleanTypeAnnotations;\n o.constraintType = ConstraintType.boolean;\n registerMetadata(target, propertyKey, o);\n };\n}\n\nexport function DateType(...annotations: { [key: string]: ValidationAnnotation }[]) {\n return function (target: Object, propertyKey: string) {\n const o = Object.assign({}, ...annotations) as DateTypeAnnotations;\n o.constraintType = ConstraintType.date;\n registerMetadata(target, propertyKey, o);\n };\n}\n\nexport function NumberType(...annotations: { [key: string]: ValidationAnnotation }[]) {\n return function (target: Object, propertyKey: string) {\n const o = Object.assign({}, ...annotations) as NumberTypeAnnotations;\n o.constraintType = ConstraintType.number;\n registerMetadata(target, propertyKey, o);\n };\n}\n\nexport function ObjectType<T>(type: { new (): T }, ...annotations: { [key: string]: ValidationAnnotation }[]) {\n return function (target: Object, propertyKey: string) {\n const o = Object.assign({}, ...annotations, { getInstance: () => new type() } as Partial<ObjectTypeAnnotations>) as ObjectTypeAnnotations;\n o.constraintType = ConstraintType.object;\n registerMetadata(target, propertyKey, o);\n };\n}\n\nexport function required(message?: string): { [key: string]: RequiredAnnotation } {\n return { required: { required: true, message: message } };\n}\n\nexport function pattern(regex: RegExp, message?: string): { [key: string]: PatternAnnotation } {\n return { pattern: { pattern: regex, message: message } };\n}\n\nexport function length(length: number, message?: string): { [key: string]: LengthAnnotation } {\n return { length: { length: length, message: message } };\n}\n\nexport function maxLength(maxLength: number, message?: string): { [key: string]: MaxLengthAnnotation } {\n return { maxLength: { maxLength: maxLength, message: message } };\n}\n\nexport function minLength(minLength: number, message?: string): { [key: string]: MinLengthAnnotation } {\n return { minLength: { minLength: minLength, message: message } };\n}\n\nexport function ofValues(values: [], message?: string): { [key: string]: OfValuesAnnotation } {\n return { ofValues: { values: values, message: message } };\n}\n\nexport function equals<T>(value: T, message?: string): { [key: string]: EqualsAnnotation<T> } {\n return { equals: { equals: value, message: message } };\n}\n\nexport function min<T>(value: T, message?: string): { [key: string]: MinimumAnnotation<T> } {\n return { min: { min: value, message: message } };\n}\n\nexport function max<T>(value: T, message?: string): { [key: string]: MaximumAnnotation<T> } {\n return { max: { max: value, message: message } };\n}\n\nexport function test<T>(name: string, test: (d: T) => boolean, message?: string): { [key: string]: TestAnnotation<T> } {\n return { test: { name: name, test: test, message: message } };\n}\n","import { Injectable } from '@angular/core';\nimport { object, SchemaOf } from 'yup';\nimport { ModelValidator } from './model-validator';\nimport { SCHEMA_METADATA_NAMESPACE } from './constants';\nimport { ObjectShape } from 'yup/lib/object';\nimport { BooleanTypeAnnotations, ConstraintAnnotations, ConstraintType, DateTypeAnnotations, ObjectTypeAnnotations, NumberTypeAnnotations, StringTypeAnnotations } from './type-annotations';\nimport * as Yup from 'yup';\n\n/*\nSchema rules need to be built in the order they need to be evaluated in.\nFor example,\n ```\n schema.required().max(...).matches(...);\n ```\nevaluates the 3 rules in this order\n - required\n - max\n - matches\n*/\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ModelSchemaFactory {\n constructor() {}\n\n build<T>(model: T): ModelValidator<T> {\n const schema = this.buildObjectSchema(model);\n return new ModelValidator(schema);\n }\n\n private buildObjectSchema<T>(model: T) {\n const metadata: Map<string, ConstraintAnnotations> = Reflect.getMetadata(SCHEMA_METADATA_NAMESPACE, model);\n let shape: ObjectShape = {};\n metadata.forEach((value, key) => {\n if (value.constraintType == ConstraintType.string) {\n shape[key] = this.buildStringSchema(value as StringTypeAnnotations);\n } else if (value.constraintType == ConstraintType.boolean) {\n shape[key] = this.buildBooleanSchema(value as BooleanTypeAnnotations);\n } else if (value.constraintType == ConstraintType.date) {\n shape[key] = this.buildDateSchema(value as DateTypeAnnotations);\n } else if(value.constraintType == ConstraintType.object) {\n shape[key] = this.buildNestedObjectSchema(value as ObjectTypeAnnotations);\n } else if (value.constraintType == ConstraintType.number) {\n shape[key] = this.buildNumberSchema(value as NumberTypeAnnotations);\n }\n });\n return object(shape) as SchemaOf<T>;\n }\n\n private buildStringSchema(options: StringTypeAnnotations) {\n let schema = Yup.string();\n if (options.required) {\n schema = schema.required(options.required.message);\n }\n if (options.length) {\n schema = schema.length(options.length.length, options.length.message);\n }\n\n if (options.maxLength) {\n schema = schema.max(options.maxLength.maxLength, options.maxLength.message);\n }\n\n if (options.minLength) {\n schema = schema.min(options.minLength.minLength, options.minLength.message);\n }\n\n if (options.pattern) {\n schema = schema.matches(options.pattern.pattern, { message: options.pattern.message, excludeEmptyString: true });\n }\n\n return schema;\n }\n\n private buildBooleanSchema(options: BooleanTypeAnnotations) {\n let schema = Yup.boolean();\n if (options.required) {\n schema = schema.required(options.required.message);\n }\n if (options.equals) {\n if (options.equals.equals) {\n schema = schema.isTrue(options.equals.message);\n } else {\n schema = schema.isFalse(options.equals.message);\n }\n }\n\n return schema;\n }\n\n private buildDateSchema(options: DateTypeAnnotations) {\n let schema = Yup.date();\n \n if (options.required) {\n schema = schema.required(options.required.message);\n }\n if (options.min) {\n schema = schema.min(options.min.min, options.min.message);\n }\n if (options.max) {\n schema = schema.max(options.max.max, options.max.message);\n }\n if (options.test) {\n schema = schema.test({\n name: options.test.name,\n message: options.test.message,\n test: (d?: Date, context?: any) => {\n return options.test!.test(d!);\n }});\n }\n\n return schema;\n }\n\n private buildNumberSchema(options: NumberTypeAnnotations) {\n let schema = Yup.number();\n if (options.required) {\n schema = schema.required(options.required.message);\n }\n\n return schema;\n }\n\n private buildNestedObjectSchema(options: ObjectTypeAnnotations) {\n\n let nestedSchema = this.buildObjectSchema(options.getInstance());\n if(options.required) {\n nestedSchema = nestedSchema.required();\n }\n\n return nestedSchema;\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { NgControl, ValidationErrors } from '@angular/forms';\n\n@Component({\n selector: 'mz-field-errors',\n templateUrl: './field-errors.component.html',\n styleUrls: ['./field-errors.component.css'],\n})\nexport class FieldErrorsComponent {\n @Input() field?: NgControl;\n\n get errorMessage(): string {\n const errorKeys = Object.keys(this.field?.errors || {});\n return errorKeys.length > 0 ? (this.field?.errors as ValidationErrors)[errorKeys[0]] : '';\n }\n}\n","<div class=\"field-error\" *ngIf=\"errorMessage\">{{ errorMessage }}</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FieldErrorsComponent } from './field-errors/field-errors.component';\n\n\n\n@NgModule({\n providers: [],\n declarations: [\n FieldErrorsComponent\n ],\n exports: [\n FieldErrorsComponent\n ],\n imports: [\n CommonModule // TODO: can remove once done with temp error displaying\n ]\n})\nexport class FormsModule { }\n","import { AbstractControl, FormArray, FormGroup, NgForm, NgModelGroup, ValidationErrors } from '@angular/forms';\nimport { BehaviorSubject, distinctUntilChanged, from, switchMap } from 'rxjs';\nimport { FieldError } from './field-error';\nimport { ModelStateOptions } from './model-state-options';\nimport { ModelStateResult } from './model-state-result';\nimport { ModelValidator } from './model-validator';\n\nexport class NgFormModelState<T> {\n private changesSubject = new BehaviorSubject<ModelStateResult<T> | undefined>(undefined);\n public readonly changes = this.changesSubject.asObservable();\n\n constructor(private form: NgForm, private modelValidator: ModelValidator<T>, private options?: ModelStateOptions) {\n this.form.form.valueChanges\n .pipe(\n switchMap(async (x) => {\n return from(this.validate());\n })\n )\n .subscribe();\n }\n\n getCurrent(): ModelStateResult<T> | undefined {\n return this.changesSubject.value;\n }\n\n setErrors(errors: FieldError[]) {\n //this.errors.next(errors);\n throw new Error('needs implementation');\n }\n\n async validate(): Promise<ModelStateResult<T>> {\n const model = this.form.value;\n const state = await this.runValidations(model, this.options?.onValidate);\n this.deleteFormErrors();\n\n const grouped = state.errors.reduce((grouped, v) => grouped.set(v.path, [...(grouped.get(v.path) || []), v]), new Map<string, FieldError[]>());\n grouped.forEach((value, path) => {\n let validationErrors = <ValidationErrors>{};\n value.forEach((v) => (validationErrors[v.type] = v.message));\n\n const control = this.form.form.get(path);\n if (!control) {\n // TODO: use actual logging service\n } else {\n control.setErrors(validationErrors);\n }\n });\n\n this.changesSubject.next(state);\n return state;\n }\n\n private deleteFormErrors() {\n this.deleteErrors(this.form.form);\n }\n\n private deleteErrors(rootFormGroup: FormGroup) {\n Object.keys(rootFormGroup.controls).forEach((key) => {\n const control = rootFormGroup.controls[key];\n\n if (!this.isParentControl(control)) {\n this.deleteErrorsFromControl(key, control);\n } else if (control instanceof FormGroup) {\n this.deleteErrors(control as FormGroup);\n } else if (control instanceof FormArray) {\n this.loopFormArray(control as FormArray);\n }\n });\n }\n\n private deleteErrorsFromControl(key: string | number, control: AbstractControl) {\n control.setErrors(null);\n }\n\n private isParentControl(control: AbstractControl) {\n return control instanceof FormGroup || control instanceof FormArray;\n }\n\n private loopFormArray(formArray: FormArray) {\n formArray.controls.forEach((control, index) => {\n if (!this.isParentControl(control)) {\n this.deleteErrorsFromControl(index, control);\n } else if (control instanceof FormGroup) {\n this.deleteErrors(control as FormGroup);\n } else if (control instanceof FormArray) {\n this.loopFormArray(control as FormArray);\n }\n });\n }\n\n private async runValidations<T>(model: T, callback?: (list: FieldError[]) => FieldError[]): Promise<ModelStateResult<T>> {\n const list = await this.modelValidator.validate(model);\n const final = callback?.(list) || list;\n return {\n valid: final.length === 0,\n errors: final,\n model: model,\n };\n }\n}\n","import { Injectable, NO_ERRORS_SCHEMA } from '@angular/core';\nimport { NgForm, ValidationErrors } from '@angular/forms';\nimport { BehaviorSubject, filter, from, switchMap } from 'rxjs';\nimport { FieldError } from './field-error';\nimport { ModelSchemaFactory } from './model-schema.factory';\nimport { ModelStateOptions } from './model-state-options';\nimport { ModelValidator } from './model-validator';\nimport { NgFormModelState } from './ngform-model-state';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NgFormModelStateFactory {\n constructor(private factory: ModelSchemaFactory) {}\n\n create<T>(form: NgForm, model: T, options?: ModelStateOptions) {\n const modelState = new NgFormModelState<T>(form, this.factory.build(model), options);\n return modelState;\n }\n}\n","import { format, isValid, parse } from \"date-fns\";\nimport * as IMask from \"imask\";\n\nexport const dateMaskOptions = {\n mask: 'MM/dd/yyyy',\n format: (date: Date | undefined): string => {\n if (!date) {\n return '';\n }\n return format(date, 'MM/dd/yyyy');\n },\n parse: (str: string): Date | undefined => {\n const dateRegex = /(0[1-9]|1[0-2])\\/(0[1-9]|[12]\\d|3[01])\\/([12]\\d{3})/;\n if (!str.match(dateRegex)) {\n return undefined;\n }\n return parse(str, 'MM/dd/yyyy', new Date());\n },\n blocks: {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n MM: {\n mask: IMask.MaskedRange,\n from: 1,\n to: 12,\n },\n // eslint-disable-next-line @typescript-eslint/naming-convention\n dd: {\n mask: IMask.MaskedRange,\n from: 1,\n to: 31,\n },\n // eslint-disable-next-line @typescript-eslint/naming-convention\n yyyy: {\n mask: IMask.MaskedRange,\n from: 1000,\n to: 9999,\n }\n },\n };\n\n export const phoneNumberOptions = {}\n\n export const currencyOptions = {};","/*\n * Public API Surface of forms\n */\nexport * from './lib/field-error';\nexport * from './lib/model-state-result';\nexport * from './lib/model-schema.factory';\nexport * from './lib/model-validator';\nexport * from './lib/type-annotations';\nexport * from './lib/forms.module';\nexport * from './lib/ng-form-model-state.service';\nexport * from './lib/ngform-model-state';\nexport * from './lib/field-errors/field-errors.component';\nexport * from './lib/masks';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ModelSchemaFactory"],"mappings":";;;;;;;;;;;;MAGa,cAAc,CAAA;AAEzB,IAAA,WAAA,CAAY,WAAwB,EAAA;AAClC,QAAA,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;KAC3B;AAED,IAAA,QAAQ,CAAI,KAAQ,EAAA;QAClB,OAAO,IAAI,CAAC,MAAM;aACf,QAAQ,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;aACtC,IAAI,CAAC,MAAK;AACT,YAAA,OAAO,EAAE,CAAC;AACZ,SAAC,CAAC;AACD,aAAA,KAAK,CAAC,CAAC,CAAkB,KAAI;AAC5B,YAAA,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,MAAiB,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAA,CAAC,CAAC;AAC5G,SAAC,CAAC,CAAC;KACN;AACF;;ACnBM,MAAM,yBAAyB,GAAG,iCAAiC;;ACE1E,MAAM,YAAY,GAAG,iCAAiC,CAAC;IAE3C,eAMX;AAND,CAAA,UAAY,cAAc,EAAA;AACxB,IAAA,cAAA,CAAA,cAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;AACN,IAAA,cAAA,CAAA,cAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;AACP,IAAA,cAAA,CAAA,cAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;AACJ,IAAA,cAAA,CAAA,cAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;AACN,IAAA,cAAA,CAAA,cAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;AACR,CAAC,EANW,cAAc,KAAd,cAAc,GAMzB,EAAA,CAAA,CAAA,CAAA;AAgFD,MAAM,gBAAgB,GAAG,CAAC,MAAc,EAAE,WAAmB,EAAE,UAAiC,KAAI;AAClG,IAAA,MAAM,QAAQ,GAAqB,OAAO,CAAC,WAAW,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,IAAI,GAAG,EAAe,CAAC;AACvG,IAAA,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACtC,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AACzD,CAAC,CAAC;AAEc,SAAA,UAAU,CAAC,GAAG,WAAsD,EAAA;IAClF,OAAO,UAAU,MAAc,EAAE,WAAmB,EAAA;QAClD,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,WAAW,CAA0B,CAAC;AACrE,QAAA,CAAC,CAAC,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC;AACzC,QAAA,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;AAC3C,KAAC,CAAC;AACJ,CAAC;AAEe,SAAA,WAAW,CAAC,GAAG,WAAsD,EAAA;IACnF,OAAO,UAAU,MAAc,EAAE,WAAmB,EAAA;QAClD,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,WAAW,CAA2B,CAAC;AACtE,QAAA,CAAC,CAAC,cAAc,GAAG,cAAc,CAAC,OAAO,CAAC;AAC1C,QAAA,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;AAC3C,KAAC,CAAC;AACJ,CAAC;AAEe,SAAA,QAAQ,CAAC,GAAG,WAAsD,EAAA;IAChF,OAAO,UAAU,MAAc,EAAE,WAAmB,EAAA;QAClD,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,WAAW,CAAwB,CAAC;AACnE,QAAA,CAAC,CAAC,cAAc,GAAG,cAAc,CAAC,IAAI,CAAC;AACvC,QAAA,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;AAC3C,KAAC,CAAC;AACJ,CAAC;AAEe,SAAA,UAAU,CAAC,GAAG,WAAsD,EAAA;IAClF,OAAO,UAAU,MAAc,EAAE,WAAmB,EAAA;QAClD,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,WAAW,CAA0B,CAAC;AACrE,QAAA,CAAC,CAAC,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC;AACzC,QAAA,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;AAC3C,KAAC,CAAC;AACJ,CAAC;SAEe,UAAU,CAAI,IAAmB,EAAE,GAAG,WAAsD,EAAA;IAC1G,OAAO,UAAU,MAAc,EAAE,WAAmB,EAAA;QAClD,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,WAAW,EAAE,EAAE,WAAW,EAAE,MAAM,IAAI,IAAI,EAAE,EAAoC,CAA0B,CAAC;AAC1I,QAAA,CAAC,CAAC,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC;AACzC,QAAA,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;AAC3C,KAAC,CAAC;AACJ,CAAC;AAEK,SAAU,QAAQ,CAAC,OAAgB,EAAA;AACvC,IAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC;AAC5D,CAAC;AAEe,SAAA,OAAO,CAAC,KAAa,EAAE,OAAgB,EAAA;AACrD,IAAA,OAAO,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC;AAC3D,CAAC;AAEe,SAAA,MAAM,CAAC,MAAc,EAAE,OAAgB,EAAA;AACrD,IAAA,OAAO,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC;AAC1D,CAAC;AAEe,SAAA,SAAS,CAAC,SAAiB,EAAE,OAAgB,EAAA;AAC3D,IAAA,OAAO,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC;AACnE,CAAC;AAEe,SAAA,SAAS,CAAC,SAAiB,EAAE,OAAgB,EAAA;AAC3D,IAAA,OAAO,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC;AACnE,CAAC;AAEe,SAAA,QAAQ,CAAC,MAAU,EAAE,OAAgB,EAAA;AACnD,IAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC;AAC5D,CAAC;AAEe,SAAA,MAAM,CAAI,KAAQ,EAAE,OAAgB,EAAA;AAClD,IAAA,OAAO,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC;AACzD,CAAC;AAEe,SAAA,GAAG,CAAI,KAAQ,EAAE,OAAgB,EAAA;AAC/C,IAAA,OAAO,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC;AACnD,CAAC;AAEe,SAAA,GAAG,CAAI,KAAQ,EAAE,OAAgB,EAAA;AAC/C,IAAA,OAAO,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC;AACnD,CAAC;SAEe,IAAI,CAAI,IAAY,EAAE,IAAuB,EAAE,OAAgB,EAAA;AAC7E,IAAA,OAAO,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC;AAChE;;ACtKA;;;;;;;;;;AAUE;MAKW,kBAAkB,CAAA;AAC7B,IAAA,WAAA,GAAA,GAAgB;AAEhB,IAAA,KAAK,CAAI,KAAQ,EAAA;QACf,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAC7C,QAAA,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;KACnC;AAEO,IAAA,iBAAiB,CAAI,KAAQ,EAAA;QACnC,MAAM,QAAQ,GAAuC,OAAO,CAAC,WAAW,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;QAC3G,IAAI,KAAK,GAAgB,EAAE,CAAC;QAC5B,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,KAAI;AAC9B,YAAA,IAAI,KAAK,CAAC,cAAc,IAAI,cAAc,CAAC,MAAM,EAAE;gBACjD,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAA8B,CAAC,CAAC;AACrE,aAAA;AAAM,iBAAA,IAAI,KAAK,CAAC,cAAc,IAAI,cAAc,CAAC,OAAO,EAAE;gBACzD,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAA+B,CAAC,CAAC;AACvE,aAAA;AAAM,iBAAA,IAAI,KAAK,CAAC,cAAc,IAAI,cAAc,CAAC,IAAI,EAAE;gBACtD,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,KAA4B,CAAC,CAAC;AACjE,aAAA;AAAM,iBAAA,IAAG,KAAK,CAAC,cAAc,IAAI,cAAc,CAAC,MAAM,EAAE;gBACvD,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAA8B,CAAC,CAAC;AAC3E,aAAA;AAAM,iBAAA,IAAI,KAAK,CAAC,cAAc,IAAI,cAAc,CAAC,MAAM,EAAE;gBACxD,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAA8B,CAAC,CAAC;AACrE,aAAA;AACH,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,MAAM,CAAC,KAAK,CAAgB,CAAC;KACrC;AAEO,IAAA,iBAAiB,CAAC,OAA8B,EAAA;AACtD,QAAA,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;QAC1B,IAAI,OAAO,CAAC,QAAQ,EAAE;YACpB,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACpD,SAAA;QACD,IAAI,OAAO,CAAC,MAAM,EAAE;AAClB,YAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACvE,SAAA;QAED,IAAI,OAAO,CAAC,SAAS,EAAE;AACrB,YAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AAC7E,SAAA;QAED,IAAI,OAAO,CAAC,SAAS,EAAE;AACrB,YAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AAC7E,SAAA;QAED,IAAI,OAAO,CAAC,OAAO,EAAE;YACnB,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAG,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC;AACnH,SAAA;AAED,QAAA,OAAO,MAAM,CAAC;KACf;AAEO,IAAA,kBAAkB,CAAC,OAA+B,EAAA;AACxD,QAAA,IAAI,MAAM,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;QAC3B,IAAI,OAAO,CAAC,QAAQ,EAAE;YACpB,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACpD,SAAA;QACD,IAAI,OAAO,CAAC,MAAM,EAAE;AAClB,YAAA,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;gBACzB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAChD,aAAA;AAAM,iBAAA;gBACL,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACjD,aAAA;AACF,SAAA;AAED,QAAA,OAAO,MAAM,CAAC;KACf;AAEO,IAAA,eAAe,CAAC,OAA4B,EAAA;AAClD,QAAA,IAAI,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QAExB,IAAI,OAAO,CAAC,QAAQ,EAAE;YACpB,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACpD,SAAA;QACD,IAAI,OAAO,CAAC,GAAG,EAAE;AACf,YAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC3D,SAAA;QACD,IAAI,OAAO,CAAC,GAAG,EAAE;AACf,YAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC3D,SAAA;QACD,IAAI,OAAO,CAAC,IAAI,EAAE;AAChB,YAAA,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC;AACnB,gBAAA,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI;AACvB,gBAAA,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO;AAC7B,gBAAA,IAAI,EAAE,CAAC,CAAQ,EAAE,OAAa,KAAI;oBAClC,OAAO,OAAO,CAAC,IAAK,CAAC,IAAI,CAAC,CAAE,CAAC,CAAC;iBAC/B;AAAC,aAAA,CAAC,CAAC;AACL,SAAA;AAED,QAAA,OAAO,MAAM,CAAC;KACf;AAEO,IAAA,iBAAiB,CAAC,OAA8B,EAAA;AACtD,QAAA,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;QAC1B,IAAI,OAAO,CAAC,QAAQ,EAAE;YACpB,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACpD,SAAA;AAED,QAAA,OAAO,MAAM,CAAC;KACf;AAEO,IAAA,uBAAuB,CAAC,OAA8B,EAAA;QAE5D,IAAI,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;QACjE,IAAG,OAAO,CAAC,QAAQ,EAAE;AACnB,YAAA,YAAY,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;AACxC,SAAA;AAED,QAAA,OAAO,YAAY,CAAC;KACrB;;+GA5GU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cAFjB,MAAM,EAAA,CAAA,CAAA;2FAEP,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCdY,oBAAoB,CAAA;AAG/B,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;QACxD,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,GAAI,IAAI,CAAC,KAAK,EAAE,MAA2B,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;KAC3F;;iHANU,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,mFCRjC,8EACA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDOa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;+BACE,iBAAiB,EAAA,QAAA,EAAA,8EAAA,EAAA,CAAA;8BAKlB,KAAK,EAAA,CAAA;sBAAb,KAAK;;;MESK,WAAW,CAAA;;wGAAX,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAX,WAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,EATpB,YAAA,EAAA,CAAA,oBAAoB,CAMpB,EAAA,OAAA,EAAA,CAAA,YAAY;iBAHZ,oBAAoB,CAAA,EAAA,CAAA,CAAA;yGAMX,WAAW,EAAA,OAAA,EAAA,CAHpB,YAAY;;2FAGH,WAAW,EAAA,UAAA,EAAA,CAAA;kBAZvB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,SAAS,EAAE,EAAE;AACb,oBAAA,YAAY,EAAE;wBACZ,oBAAoB;AACrB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,oBAAoB;AACrB,qBAAA;AACD,oBAAA,OAAO,EAAE;AACP,wBAAA,YAAY;AACb,qBAAA;AACF,iBAAA,CAAA;;;MCVY,gBAAgB,CAAA;AAI3B,IAAA,WAAA,CAAoB,IAAY,EAAU,cAAiC,EAAU,OAA2B,EAAA;QAA5F,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAQ;QAAU,IAAc,CAAA,cAAA,GAAd,cAAc,CAAmB;QAAU,IAAO,CAAA,OAAA,GAAP,OAAO,CAAoB;AAHxG,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,eAAe,CAAkC,SAAS,CAAC,CAAC;AACzE,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;AAG3D,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY;AACxB,aAAA,IAAI,CACH,SAAS,CAAC,OAAO,CAAC,KAAI;AACpB,YAAA,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC/B,SAAC,CAAC,CACH;AACA,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,UAAU,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;KAClC;AAED,IAAA,SAAS,CAAC,MAAoB,EAAA;;AAE5B,QAAA,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;KACzC;AAED,IAAA,MAAM,QAAQ,GAAA;AACZ,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AAC9B,QAAA,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACzE,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExB,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,EAAwB,CAAC,CAAC;QAC/I,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,IAAI,KAAI;YAC9B,IAAI,gBAAgB,GAAqB,EAAE,CAAC;YAC5C,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAE7D,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,CAAC,OAAO,EAAE;;AAEb,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;AACrC,aAAA;AACH,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChC,QAAA,OAAO,KAAK,CAAC;KACd;IAEO,gBAAgB,GAAA;QACtB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACnC;AAEO,IAAA,YAAY,CAAC,aAAwB,EAAA;AAC3C,QAAA,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;YAClD,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAE5C,YAAA,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE;AAClC,gBAAA,IAAI,CAAC,uBAAuB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AAC5C,aAAA;iBAAM,IAAI,OAAO,YAAY,SAAS,EAAE;AACvC,gBAAA,IAAI,CAAC,YAAY,CAAC,OAAoB,CAAC,CAAC;AACzC,aAAA;iBAAM,IAAI,OAAO,YAAY,SAAS,EAAE;AACvC,gBAAA,IAAI,CAAC,aAAa,CAAC,OAAoB,CAAC,CAAC;AAC1C,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;IAEO,uBAAuB,CAAC,GAAoB,EAAE,OAAwB,EAAA;AAC5E,QAAA,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;KACzB;AAEO,IAAA,eAAe,CAAC,OAAwB,EAAA;AAC9C,QAAA,OAAO,OAAO,YAAY,SAAS,IAAI,OAAO,YAAY,SAAS,CAAC;KACrE;AAEO,IAAA,aAAa,CAAC,SAAoB,EAAA;QACxC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,KAAI;AAC5C,YAAA,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE;AAClC,gBAAA,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAC9C,aAAA;iBAAM,IAAI,OAAO,YAAY,SAAS,EAAE;AACvC,gBAAA,IAAI,CAAC,YAAY,CAAC,OAAoB,CAAC,CAAC;AACzC,aAAA;iBAAM,IAAI,OAAO,YAAY,SAAS,EAAE;AACvC,gBAAA,IAAI,CAAC,aAAa,CAAC,OAAoB,CAAC,CAAC;AAC1C,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;AAEO,IAAA,MAAM,cAAc,CAAI,KAAQ,EAAE,QAA+C,EAAA;QACvF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACvD,MAAM,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC;QACvC,OAAO;AACL,YAAA,KAAK,EAAE,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,KAAK,EAAE,KAAK;SACb,CAAC;KACH;AACF;;MCvFY,uBAAuB,CAAA;AAClC,IAAA,WAAA,CAAoB,OAA2B,EAAA;QAA3B,IAAO,CAAA,OAAA,GAAP,OAAO,CAAoB;KAAI;AAEnD,IAAA,MAAM,CAAI,IAAY,EAAE,KAAQ,EAAE,OAA2B,EAAA;AAC3D,QAAA,MAAM,UAAU,GAAG,IAAI,gBAAgB,CAAI,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;AACrF,QAAA,OAAO,UAAU,CAAC;KACnB;;oHANU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAvB,uBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,cAFtB,MAAM,EAAA,CAAA,CAAA;2FAEP,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACRY,MAAA,eAAe,GAAI;AAC5B,IAAA,IAAI,EAAE,YAAY;AAClB,IAAA,MAAM,EAAE,CAAC,IAAsB,KAAY;QACzC,IAAI,CAAC,IAAI,EAAE;AACT,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;AACD,QAAA,OAAO,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;KACnC;AACD,IAAA,KAAK,EAAE,CAAC,GAAW,KAAsB;QACvC,MAAM,SAAS,GAAG,qDAAqD,CAAC;AACxE,QAAA,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;AACzB,YAAA,OAAO,SAAS,CAAC;AAClB,SAAA;QACD,OAAO,KAAK,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;KAC7C;AACD,IAAA,MAAM,EAAE;;AAEN,QAAA,EAAE,EAAE;YACF,IAAI,EAAE,KAAK,CAAC,WAAW;AACvB,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,EAAE,EAAE,EAAE;AACP,SAAA;;AAED,QAAA,EAAE,EAAE;YACF,IAAI,EAAE,KAAK,CAAC,WAAW;AACvB,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,EAAE,EAAE,EAAE;AACP,SAAA;;AAED,QAAA,IAAI,EAAE;YACJ,IAAI,EAAE,KAAK,CAAC,WAAW;AACvB,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,EAAE,EAAE,IAAI;AACT,SAAA;AACF,KAAA;EACD;AAEK,MAAM,kBAAkB,GAAG,GAAE;AAE7B,MAAM,eAAe,GAAG;;AC1CjC;;AAEG;;ACFH;;AAEG;;;;"}
package/lib/masks.d.ts ADDED
@@ -0,0 +1,25 @@
1
+ import * as IMask from "imask";
2
+ export declare const dateMaskOptions: {
3
+ mask: string;
4
+ format: (date: Date | undefined) => string;
5
+ parse: (str: string) => Date | undefined;
6
+ blocks: {
7
+ MM: {
8
+ mask: typeof IMask.MaskedRange;
9
+ from: number;
10
+ to: number;
11
+ };
12
+ dd: {
13
+ mask: typeof IMask.MaskedRange;
14
+ from: number;
15
+ to: number;
16
+ };
17
+ yyyy: {
18
+ mask: typeof IMask.MaskedRange;
19
+ from: number;
20
+ to: number;
21
+ };
22
+ };
23
+ };
24
+ export declare const phoneNumberOptions: {};
25
+ export declare const currencyOptions: {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@muziehdesign/forms",
3
- "version": "0.0.1-alpha.301",
3
+ "version": "0.0.1-alpha.313",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^14.0.0",
6
6
  "@angular/core": "^14.0.0"
package/public-api.d.ts CHANGED
@@ -7,3 +7,4 @@ export * from './lib/forms.module';
7
7
  export * from './lib/ng-form-model-state.service';
8
8
  export * from './lib/ngform-model-state';
9
9
  export * from './lib/field-errors/field-errors.component';
10
+ export * from './lib/masks';