novo-elements 10.8.0 → 10.8.1-next.1

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.
@@ -80,7 +80,7 @@ export class NovoDateRangeFormatDirective extends IMaskDirective {
80
80
  }
81
81
  normalize(value) {
82
82
  const pattern = this.labels.dateFormat.toUpperCase();
83
- return DateUtil.format(DateUtil.parse(value), pattern);
83
+ return DateUtil.format(value ? DateUtil.parse(value) : null, pattern);
84
84
  }
85
85
  formatAsIso(value) {
86
86
  if (!value)
@@ -108,6 +108,13 @@ export class NovoDateRangeFormatDirective extends IMaskDirective {
108
108
  return this.normalize(source);
109
109
  }
110
110
  writeValue(value) {
111
+ if (this['_initialValue'] && value === this['_initialValue']) {
112
+ // if this call is coming from the super class, skip through.
113
+ // If we ever wanted to reduce the need for this hack/workaround, we could refactor
114
+ // IMaskDirective to exist as a child portion of DateRangeFormatDirective.
115
+ super.writeValue(value);
116
+ return;
117
+ }
111
118
  const formattedValue = this.formatValue(value);
112
119
  if (formattedValue !== this.maskValue) {
113
120
  super.writeValue(this.formatValue(value));
@@ -160,4 +167,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
160
167
  }], ctorParameters: () => [{ type: i1.NovoLabelService }], propDecorators: { dateRangeFormat: [{
161
168
  type: Input
162
169
  }] } });
163
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1mb3JtYXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ub3ZvLWVsZW1lbnRzL3NyYy9lbGVtZW50cy9maWVsZC9mb3JtYXRzL2RhdGUtcmFuZ2UtZm9ybWF0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLFVBQVUsRUFBVSxLQUFLLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBQ3BILE9BQU8sRUFBMkIsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RSxPQUFPLEVBQUUsY0FBYyxFQUFnQixNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDcEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUVoRSxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRztJQUM1QyxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsNEJBQTRCLENBQUM7SUFDM0QsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBT0YsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHO0lBQ3ZCLElBQUksRUFBRSwyQkFBMkI7SUFDakMsU0FBUyxFQUFFLElBQUk7SUFDZixPQUFPLEVBQUUsSUFBSTtJQUNiLElBQUksRUFBRSxLQUFLO0lBQ1gsTUFBTSxFQUFFO1FBQ04sQ0FBQyxFQUFFO1lBQ0QsSUFBSSxFQUFFLFdBQVc7WUFDakIsZUFBZSxFQUFFLEdBQUc7WUFDcEIs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RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLDRCQUE0QixFQUFFLENBQUM7OzRGQUUzRyw0QkFBNEI7a0JBUHhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsSUFBSSxFQUFFO3dCQUNKLEtBQUssRUFBRSx3QkFBd0I7cUJBQ2hDO29CQUNELFNBQVMsRUFBRSxDQUFDLDhCQUE4QixFQUFFLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFdBQVcsOEJBQThCLEVBQUUsQ0FBQztpQkFDdkg7cUZBSVUsZUFBZTtzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBJbmplY3QsIElucHV0LCBPcHRpb25hbCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDT01QT1NJVElPTl9CVUZGRVJfTU9ERSwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJTWFza0RpcmVjdGl2ZSwgSU1hc2tGYWN0b3J5IH0gZnJvbSAnYW5ndWxhci1pbWFzayc7XG5pbXBvcnQgeyBpc1ZhbGlkIH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgTWFza2VkUmFuZ2UgfSBmcm9tICdpbWFzayc7XG5pbXBvcnQgeyBOb3ZvTGFiZWxTZXJ2aWNlIH0gZnJvbSAnbm92by1lbGVtZW50cy9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBEYXRlVXRpbCB9IGZyb20gJ25vdm8tZWxlbWVudHMvdXRpbHMnO1xuaW1wb3J0IHsgREFURV9GT1JNQVRTLCBOT1ZPX0lOUFVUX0ZPUk1BVCB9IGZyb20gJy4vYmFzZS1mb3JtYXQnO1xuXG5leHBvcnQgY29uc3QgREFURVJBTkdFRk9STUFUX1ZBTFVFX0FDQ0VTU09SID0ge1xuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTm92b0RhdGVSYW5nZUZvcm1hdERpcmVjdGl2ZSksXG4gIG11bHRpOiB0cnVlLFxufTtcblxudHlwZSBEYXRlUmFuZ2UgPSB7XG4gIHN0YXJ0RGF0ZTogRGF0ZTtcbiAgZW5kRGF0ZTogRGF0ZTtcbn07XG5cbmV4cG9ydCBjb25zdCBpbWFza0hhaGEgPSB7XG4gIG1hc2s6ICdtey99YGR7L31gWSAtIG17L31gZHsvfWBZJyxcbiAgb3ZlcndyaXRlOiB0cnVlLFxuICBhdXRvZml4OiB0cnVlLFxuICBsYXp5OiBmYWxzZSxcbiAgYmxvY2tzOiB7XG4gICAgZDoge1xuICAgICAgbWFzazogTWFza2VkUmFuZ2UsXG4gICAgICBwbGFjZWhvbGRlckNoYXI6ICdEJyxcbiAgICAgIGZyb206IDEsXG4gICAgICB0bzogMzEsXG4gICAgICBtYXhMZW5ndGg6IDIsXG4gICAgfSxcbiAgICBtOiB7XG4gICAgICBtYXNrOiBNYXNrZWRSYW5nZSxcbiAgICAgIHBsYWNlaG9sZGVyQ2hhcjogJ00nLFxuICAgICAgZnJvbTogMSxcbiAgICAgIHRvOiAxMixcbiAgICAgIG1heExlbmd0aDogMixcbiAgICB9LFxuICAgIFk6IHtcbiAgICAgIG1hc2s6IE1hc2tlZFJhbmdlLFxuICAgICAgcGxhY2Vob2xkZXJDaGFyOiAnWScsXG4gICAgICBmcm9tOiAxOTAwLFxuICAgICAgdG86IDk5OTksXG4gICAgfSxcbiAgfSxcbn07XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ2lucHV0W2RhdGVSYW5nZUZvcm1hdF0nLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdub3ZvLWRhdGUtcmFuZ2UtZm9ybWF0JyxcbiAgfSxcbiAgcHJvdmlkZXJzOiBbREFURVJBTkdFRk9STUFUX1ZBTFVFX0FDQ0VTU09SLCB7IHByb3ZpZGU6IE5PVk9fSU5QVVRfRk9STUFULCB1c2VFeGlzdGluZzogTm92b0RhdGVSYW5nZUZvcm1hdERpcmVjdGl2ZSB9XSxcbn0pXG5leHBvcnQgY2xhc3MgTm92b0RhdGVSYW5nZUZvcm1hdERpcmVjdGl2ZSBleHRlbmRzIElNYXNrRGlyZWN0aXZlPGFueT4ge1xuICB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQElucHV0KCkgZGF0ZVJhbmdlRm9ybWF0OiBEQVRFX0ZPUk1BVFMgPSBEQVRFX0ZPUk1BVFMuREFURTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGxhYmVsczogTm92b0xhYmVsU2VydmljZSkge1xuICAgIHN1cGVyKCk7XG4gICAgY29uc3QgZGF0ZVJhbmdlRm9ybWF0ID0gdGhpcy5sYWJlbHMuZGF0ZUZvcm1hdC50b1VwcGVyQ2FzZSgpO1xuICAgIHRoaXMudW5tYXNrID0gZmFsc2U7XG4gICAgdGhpcy5pbWFzayA9IHtcbiAgICAgIG1hc2s6ICdtey99YGR7L31gWSAtIG17L31gZHsvfWBZJyxcbiAgICAgIG92ZXJ3cml0ZTogdHJ1ZSxcbiAgICAgIGF1dG9maXg6IHRydWUsXG4gICAgICBsYXp5OiBmYWxzZSxcbiAgICAgIGJsb2Nrczoge1xuICAgICAgICBkOiB7XG4gICAgICAgICAgbWFzazogTWFza2VkUmFuZ2UsXG4gICAgICAgICAgcGxhY2Vob2xkZXJDaGFyOiAnRCcsXG4gICAgICAgICAgZnJvbTogMSxcbiAgICAgICAgICB0bzogMzEsXG4gICAgICAgICAgbWF4TGVuZ3RoOiAyLFxuICAgICAgICB9LFxuICAgICAgICBtOiB7XG4gICAgICAgICAgbWFzazogTWFza2VkUmFuZ2UsXG4gICAgICAgICAgcGxhY2Vob2xkZXJDaGFyOiAnTScsXG4gICAgICAgICAgZnJvbTogMSxcbiAgICAgICAgICB0bzogMTIsXG4gICAgICAgICAgbWF4TGVuZ3RoOiAyLFxuICAgICAgICB9LFxuICAgICAgICBZOiB7XG4gICAgICAgICAgbWFzazogTWFza2VkUmFuZ2UsXG4gICAgICAgICAgcGxhY2Vob2xkZXJDaGFyOiAnWScsXG4gICAgICAgICAgZnJvbTogMTkwMCxcbiAgICAgICAgICB0bzogOTk5OSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIG5vcm1hbGl6ZSh2YWx1ZTogc3RyaW5nIHwgRGF0ZSkge1xuICAgIGNvbnN0IHBhdHRlcm4gPSB0aGlzLmxhYmVscy5kYXRlRm9ybWF0LnRvVXBwZXJDYXNlKCk7XG4gICAgcmV0dXJuIERhdGVVdGlsLmZvcm1hdChEYXRlVXRpbC5wYXJzZSh2YWx1ZSksIHBhdHRlcm4pO1xuICB9XG5cbiAgZm9ybWF0QXNJc28odmFsdWU6IERhdGVSYW5nZSk6IHN0cmluZyB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuICcnO1xuICAgIGNvbnN0IHsgc3RhcnREYXRlLCBlbmREYXRlIH0gPSB2YWx1ZTtcbiAgICBpZiAoc3RhcnREYXRlICYmIGlzVmFsaWQoc3RhcnREYXRlKSAmJiBlbmREYXRlICYmIGlzVmFsaWQoZW5kRGF0ZSkpIHtcbiAgICAgIGNvbnN0IHN0YXJ0SXNvID0gc3RhcnREYXRlLnRvSVNPU3RyaW5nKCkuc2xpY2UoMCwgMTApO1xuICAgICAgY29uc3QgZW5kSXNvID0gZW5kRGF0ZS50b0lTT1N0cmluZygpLnNsaWNlKDAsIDEwKTtcbiAgICAgIHJldHVybiBgJHtzdGFydElzb30vJHtlbmRJc299YDtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBmb3JtYXRWYWx1ZSh2YWx1ZTogRGF0ZVJhbmdlKTogc3RyaW5nIHtcbiAgICBpZiAoIXZhbHVlKSByZXR1cm4gJyc7XG4gICAgY29uc3QgeyBzdGFydERhdGUsIGVuZERhdGUgfSA9IHZhbHVlO1xuICAgIHJldHVybiBgJHt0aGlzLmZvcm1hdERhdGUoc3RhcnREYXRlKX0gLSAke3RoaXMuZm9ybWF0RGF0ZShlbmREYXRlKX1gO1xuICB9XG5cbiAgZm9ybWF0RGF0ZShzb3VyY2U6IERhdGUgfCBzdHJpbmcpIHtcbiAgICBjb25zdCBkYXRlID0gRGF0ZVV0aWwucGFyc2Uoc291cmNlKTtcbiAgICBpZiAoaXNWYWxpZChkYXRlKSkge1xuICAgICAgY29uc3QgZGF0ZVJhbmdlRm9ybWF0ID0gdGhpcy5sYWJlbHMuZGF0ZUZvcm1hdC50b1VwcGVyQ2FzZSgpO1xuICAgICAgcmV0dXJuIERhdGVVdGlsLmZvcm1hdChkYXRlLCBkYXRlUmFuZ2VGb3JtYXQpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5ub3JtYWxpemUoc291cmNlKTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIGNvbnN0IGZvcm1hdHRlZFZhbHVlID0gdGhpcy5mb3JtYXRWYWx1ZSh2YWx1ZSk7XG4gICAgaWYgKGZvcm1hdHRlZFZhbHVlICE9PSB0aGlzLm1hc2tWYWx1ZSkge1xuICAgICAgc3VwZXIud3JpdGVWYWx1ZSh0aGlzLmZvcm1hdFZhbHVlKHZhbHVlKSk7XG4gICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuZm9ybWF0VmFsdWUodmFsdWUpKTtcbiAgICB9XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoXzogYW55KSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IChpbnB1dDogYW55KSA9PiB7XG4gICAgICBpZiAodGhpcy52YWxpZGF0ZShpbnB1dCkpIHtcbiAgICAgICAgY29uc3QgZGF0ZXMgPSB0aGlzLmV4dHJhY3REYXRlc0Zyb21JbnB1dChpbnB1dCk7XG4gICAgICAgIGxldCBmb3JtYXR0ZWQ6IERhdGVSYW5nZSB8IHN0cmluZyA9IGRhdGVzO1xuICAgICAgICBzd2l0Y2ggKHRoaXMuZGF0ZVJhbmdlRm9ybWF0KSB7XG4gICAgICAgICAgY2FzZSBEQVRFX0ZPUk1BVFMuSVNPODYwMTpcbiAgICAgICAgICAgIGZvcm1hdHRlZCA9IHRoaXMuZm9ybWF0QXNJc28oZGF0ZXMpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBEQVRFX0ZPUk1BVFMuU1RSSU5HOlxuICAgICAgICAgICAgZm9ybWF0dGVkID0gdGhpcy5mb3JtYXRWYWx1ZShkYXRlcyk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgZm9ybWF0dGVkID0gZGF0ZXM7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoZGF0ZXMpO1xuICAgICAgICBmbihmb3JtYXR0ZWQpO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICBleHRyYWN0RGF0ZXNGcm9tSW5wdXQodmFsdWUpIHtcbiAgICBjb25zdCBbc3RhcnRTdHIsIGVuZFN0cl0gPSB2YWx1ZS5zcGxpdCgnIC0gJyk7XG4gICAgY29uc3Qgc3RhcnREYXRlID0gRGF0ZVV0aWwucGFyc2Uoc3RhcnRTdHIpO1xuICAgIGNvbnN0IGVuZERhdGUgPSBEYXRlVXRpbC5wYXJzZShlbmRTdHIpO1xuICAgIHJldHVybiB7IHN0YXJ0RGF0ZSwgZW5kRGF0ZSB9O1xuICB9XG5cbiAgdmFsaWRhdGUoZGF0ZVN0cjogc3RyaW5nKSB7XG4gICAgY29uc3QgeyBzdGFydERhdGUsIGVuZERhdGUgfSA9IHRoaXMuZXh0cmFjdERhdGVzRnJvbUlucHV0KGRhdGVTdHIpO1xuICAgIHJldHVybiBpc1ZhbGlkKHN0YXJ0RGF0ZSkgJiYgaXNWYWxpZChlbmREYXRlKTtcbiAgfVxufVxuIl19
170
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1mb3JtYXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ub3ZvLWVsZW1lbnRzL3NyYy9lbGVtZW50cy9maWVsZC9mb3JtYXRzL2RhdGUtcmFuZ2UtZm9ybWF0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLFVBQVUsRUFBVSxLQUFLLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBQ3BILE9BQU8sRUFBMkIsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RSxPQUFPLEVBQUUsY0FBYyxFQUFnQixNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDcEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUVoRSxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRztJQUM1QyxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsNEJBQTRCLENBQUM7SUFDM0QsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBT0YsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHO0lBQ3ZCLElBQUksRUFBRSwyQkFBMkI7SUFDakMsU0FBUyxFQUFFLElBQUk7SUFDZixPQUFPLEVBQUUsSUFBSTtJQUNiLElBQUksRUFBRSxLQUFLO0lBQ1gsTUFBTSxFQUFFO1FBQ04sQ0FBQyxFQUFFO1lBQ0QsSUFBSSxFQUFFLFdBQVc7WUFDakIsZUFBZSxFQUFFLEdBQUc7WUFDcEIs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LENBQUMsT0FBZTtRQUN0QixNQUFNLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuRSxPQUFPLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEQsQ0FBQzsrR0FySFUsNEJBQTRCO21HQUE1Qiw0QkFBNEIscUpBRjVCLENBQUMsOEJBQThCLEVBQUUsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLDRCQUE0QixFQUFFLENBQUM7OzRGQUUzRyw0QkFBNEI7a0JBUHhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsSUFBSSxFQUFFO3dCQUNKLEtBQUssRUFBRSx3QkFBd0I7cUJBQ2hDO29CQUNELFNBQVMsRUFBRSxDQUFDLDhCQUE4QixFQUFFLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFdBQVcsOEJBQThCLEVBQUUsQ0FBQztpQkFDdkg7cUZBSVUsZUFBZTtzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBJbmplY3QsIElucHV0LCBPcHRpb25hbCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDT01QT1NJVElPTl9CVUZGRVJfTU9ERSwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJTWFza0RpcmVjdGl2ZSwgSU1hc2tGYWN0b3J5IH0gZnJvbSAnYW5ndWxhci1pbWFzayc7XG5pbXBvcnQgeyBpc1ZhbGlkIH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgTWFza2VkUmFuZ2UgfSBmcm9tICdpbWFzayc7XG5pbXBvcnQgeyBOb3ZvTGFiZWxTZXJ2aWNlIH0gZnJvbSAnbm92by1lbGVtZW50cy9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBEYXRlVXRpbCB9IGZyb20gJ25vdm8tZWxlbWVudHMvdXRpbHMnO1xuaW1wb3J0IHsgREFURV9GT1JNQVRTLCBOT1ZPX0lOUFVUX0ZPUk1BVCB9IGZyb20gJy4vYmFzZS1mb3JtYXQnO1xuXG5leHBvcnQgY29uc3QgREFURVJBTkdFRk9STUFUX1ZBTFVFX0FDQ0VTU09SID0ge1xuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTm92b0RhdGVSYW5nZUZvcm1hdERpcmVjdGl2ZSksXG4gIG11bHRpOiB0cnVlLFxufTtcblxudHlwZSBEYXRlUmFuZ2UgPSB7XG4gIHN0YXJ0RGF0ZTogRGF0ZTtcbiAgZW5kRGF0ZTogRGF0ZTtcbn07XG5cbmV4cG9ydCBjb25zdCBpbWFza0hhaGEgPSB7XG4gIG1hc2s6ICdtey99YGR7L31gWSAtIG17L31gZHsvfWBZJyxcbiAgb3ZlcndyaXRlOiB0cnVlLFxuICBhdXRvZml4OiB0cnVlLFxuICBsYXp5OiBmYWxzZSxcbiAgYmxvY2tzOiB7XG4gICAgZDoge1xuICAgICAgbWFzazogTWFza2VkUmFuZ2UsXG4gICAgICBwbGFjZWhvbGRlckNoYXI6ICdEJyxcbiAgICAgIGZyb206IDEsXG4gICAgICB0bzogMzEsXG4gICAgICBtYXhMZW5ndGg6IDIsXG4gICAgfSxcbiAgICBtOiB7XG4gICAgICBtYXNrOiBNYXNrZWRSYW5nZSxcbiAgICAgIHBsYWNlaG9sZGVyQ2hhcjogJ00nLFxuICAgICAgZnJvbTogMSxcbiAgICAgIHRvOiAxMixcbiAgICAgIG1heExlbmd0aDogMixcbiAgICB9LFxuICAgIFk6IHtcbiAgICAgIG1hc2s6IE1hc2tlZFJhbmdlLFxuICAgICAgcGxhY2Vob2xkZXJDaGFyOiAnWScsXG4gICAgICBmcm9tOiAxOTAwLFxuICAgICAgdG86IDk5OTksXG4gICAgfSxcbiAgfSxcbn07XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ2lucHV0W2RhdGVSYW5nZUZvcm1hdF0nLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdub3ZvLWRhdGUtcmFuZ2UtZm9ybWF0JyxcbiAgfSxcbiAgcHJvdmlkZXJzOiBbREFURVJBTkdFRk9STUFUX1ZBTFVFX0FDQ0VTU09SLCB7IHByb3ZpZGU6IE5PVk9fSU5QVVRfRk9STUFULCB1c2VFeGlzdGluZzogTm92b0RhdGVSYW5nZUZvcm1hdERpcmVjdGl2ZSB9XSxcbn0pXG5leHBvcnQgY2xhc3MgTm92b0RhdGVSYW5nZUZvcm1hdERpcmVjdGl2ZSBleHRlbmRzIElNYXNrRGlyZWN0aXZlPGFueT4ge1xuICB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQElucHV0KCkgZGF0ZVJhbmdlRm9ybWF0OiBEQVRFX0ZPUk1BVFMgPSBEQVRFX0ZPUk1BVFMuREFURTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGxhYmVsczogTm92b0xhYmVsU2VydmljZSkge1xuICAgIHN1cGVyKCk7XG4gICAgY29uc3QgZGF0ZVJhbmdlRm9ybWF0ID0gdGhpcy5sYWJlbHMuZGF0ZUZvcm1hdC50b1VwcGVyQ2FzZSgpO1xuICAgIHRoaXMudW5tYXNrID0gZmFsc2U7XG4gICAgdGhpcy5pbWFzayA9IHtcbiAgICAgIG1hc2s6ICdtey99YGR7L31gWSAtIG17L31gZHsvfWBZJyxcbiAgICAgIG92ZXJ3cml0ZTogdHJ1ZSxcbiAgICAgIGF1dG9maXg6IHRydWUsXG4gICAgICBsYXp5OiBmYWxzZSxcbiAgICAgIGJsb2Nrczoge1xuICAgICAgICBkOiB7XG4gICAgICAgICAgbWFzazogTWFza2VkUmFuZ2UsXG4gICAgICAgICAgcGxhY2Vob2xkZXJDaGFyOiAnRCcsXG4gICAgICAgICAgZnJvbTogMSxcbiAgICAgICAgICB0bzogMzEsXG4gICAgICAgICAgbWF4TGVuZ3RoOiAyLFxuICAgICAgICB9LFxuICAgICAgICBtOiB7XG4gICAgICAgICAgbWFzazogTWFza2VkUmFuZ2UsXG4gICAgICAgICAgcGxhY2Vob2xkZXJDaGFyOiAnTScsXG4gICAgICAgICAgZnJvbTogMSxcbiAgICAgICAgICB0bzogMTIsXG4gICAgICAgICAgbWF4TGVuZ3RoOiAyLFxuICAgICAgICB9LFxuICAgICAgICBZOiB7XG4gICAgICAgICAgbWFzazogTWFza2VkUmFuZ2UsXG4gICAgICAgICAgcGxhY2Vob2xkZXJDaGFyOiAnWScsXG4gICAgICAgICAgZnJvbTogMTkwMCxcbiAgICAgICAgICB0bzogOTk5OSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIG5vcm1hbGl6ZSh2YWx1ZTogc3RyaW5nIHwgRGF0ZSkge1xuICAgIGNvbnN0IHBhdHRlcm4gPSB0aGlzLmxhYmVscy5kYXRlRm9ybWF0LnRvVXBwZXJDYXNlKCk7XG4gICAgcmV0dXJuIERhdGVVdGlsLmZvcm1hdCh2YWx1ZSA/IERhdGVVdGlsLnBhcnNlKHZhbHVlKSA6IG51bGwsIHBhdHRlcm4pO1xuICB9XG5cbiAgZm9ybWF0QXNJc28odmFsdWU6IERhdGVSYW5nZSk6IHN0cmluZyB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuICcnO1xuICAgIGNvbnN0IHsgc3RhcnREYXRlLCBlbmREYXRlIH0gPSB2YWx1ZTtcbiAgICBpZiAoc3RhcnREYXRlICYmIGlzVmFsaWQoc3RhcnREYXRlKSAmJiBlbmREYXRlICYmIGlzVmFsaWQoZW5kRGF0ZSkpIHtcbiAgICAgIGNvbnN0IHN0YXJ0SXNvID0gc3RhcnREYXRlLnRvSVNPU3RyaW5nKCkuc2xpY2UoMCwgMTApO1xuICAgICAgY29uc3QgZW5kSXNvID0gZW5kRGF0ZS50b0lTT1N0cmluZygpLnNsaWNlKDAsIDEwKTtcbiAgICAgIHJldHVybiBgJHtzdGFydElzb30vJHtlbmRJc299YDtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBmb3JtYXRWYWx1ZSh2YWx1ZTogRGF0ZVJhbmdlKTogc3RyaW5nIHtcbiAgICBpZiAoIXZhbHVlKSByZXR1cm4gJyc7XG4gICAgY29uc3QgeyBzdGFydERhdGUsIGVuZERhdGUgfSA9IHZhbHVlO1xuICAgIHJldHVybiBgJHt0aGlzLmZvcm1hdERhdGUoc3RhcnREYXRlKX0gLSAke3RoaXMuZm9ybWF0RGF0ZShlbmREYXRlKX1gO1xuICB9XG5cbiAgZm9ybWF0RGF0ZShzb3VyY2U6IERhdGUgfCBzdHJpbmcpIHtcbiAgICBjb25zdCBkYXRlID0gRGF0ZVV0aWwucGFyc2Uoc291cmNlKTtcbiAgICBpZiAoaXNWYWxpZChkYXRlKSkge1xuICAgICAgY29uc3QgZGF0ZVJhbmdlRm9ybWF0ID0gdGhpcy5sYWJlbHMuZGF0ZUZvcm1hdC50b1VwcGVyQ2FzZSgpO1xuICAgICAgcmV0dXJuIERhdGVVdGlsLmZvcm1hdChkYXRlLCBkYXRlUmFuZ2VGb3JtYXQpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5ub3JtYWxpemUoc291cmNlKTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIGlmICh0aGlzWydfaW5pdGlhbFZhbHVlJ10gJiYgdmFsdWUgPT09IHRoaXNbJ19pbml0aWFsVmFsdWUnXSkge1xuICAgICAgLy8gaWYgdGhpcyBjYWxsIGlzIGNvbWluZyBmcm9tIHRoZSBzdXBlciBjbGFzcywgc2tpcCB0aHJvdWdoLlxuICAgICAgLy8gSWYgd2UgZXZlciB3YW50ZWQgdG8gcmVkdWNlIHRoZSBuZWVkIGZvciB0aGlzIGhhY2svd29ya2Fyb3VuZCwgd2UgY291bGQgcmVmYWN0b3JcbiAgICAgIC8vIElNYXNrRGlyZWN0aXZlIHRvIGV4aXN0IGFzIGEgY2hpbGQgcG9ydGlvbiBvZiBEYXRlUmFuZ2VGb3JtYXREaXJlY3RpdmUuXG4gICAgICBzdXBlci53cml0ZVZhbHVlKHZhbHVlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZm9ybWF0dGVkVmFsdWUgPSB0aGlzLmZvcm1hdFZhbHVlKHZhbHVlKTtcbiAgICBpZiAoZm9ybWF0dGVkVmFsdWUgIT09IHRoaXMubWFza1ZhbHVlKSB7XG4gICAgICBzdXBlci53cml0ZVZhbHVlKHRoaXMuZm9ybWF0VmFsdWUodmFsdWUpKTtcbiAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5mb3JtYXRWYWx1ZSh2YWx1ZSkpO1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IChfOiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gKGlucHV0OiBhbnkpID0+IHtcbiAgICAgIGlmICh0aGlzLnZhbGlkYXRlKGlucHV0KSkge1xuICAgICAgICBjb25zdCBkYXRlcyA9IHRoaXMuZXh0cmFjdERhdGVzRnJvbUlucHV0KGlucHV0KTtcbiAgICAgICAgbGV0IGZvcm1hdHRlZDogRGF0ZVJhbmdlIHwgc3RyaW5nID0gZGF0ZXM7XG4gICAgICAgIHN3aXRjaCAodGhpcy5kYXRlUmFuZ2VGb3JtYXQpIHtcbiAgICAgICAgICBjYXNlIERBVEVfRk9STUFUUy5JU084NjAxOlxuICAgICAgICAgICAgZm9ybWF0dGVkID0gdGhpcy5mb3JtYXRBc0lzbyhkYXRlcyk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIERBVEVfRk9STUFUUy5TVFJJTkc6XG4gICAgICAgICAgICBmb3JtYXR0ZWQgPSB0aGlzLmZvcm1hdFZhbHVlKGRhdGVzKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBmb3JtYXR0ZWQgPSBkYXRlcztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChkYXRlcyk7XG4gICAgICAgIGZuKGZvcm1hdHRlZCk7XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIGV4dHJhY3REYXRlc0Zyb21JbnB1dCh2YWx1ZSkge1xuICAgIGNvbnN0IFtzdGFydFN0ciwgZW5kU3RyXSA9IHZhbHVlLnNwbGl0KCcgLSAnKTtcbiAgICBjb25zdCBzdGFydERhdGUgPSBEYXRlVXRpbC5wYXJzZShzdGFydFN0cik7XG4gICAgY29uc3QgZW5kRGF0ZSA9IERhdGVVdGlsLnBhcnNlKGVuZFN0cik7XG4gICAgcmV0dXJuIHsgc3RhcnREYXRlLCBlbmREYXRlIH07XG4gIH1cblxuICB2YWxpZGF0ZShkYXRlU3RyOiBzdHJpbmcpIHtcbiAgICBjb25zdCB7IHN0YXJ0RGF0ZSwgZW5kRGF0ZSB9ID0gdGhpcy5leHRyYWN0RGF0ZXNGcm9tSW5wdXQoZGF0ZVN0cik7XG4gICAgcmV0dXJuIGlzVmFsaWQoc3RhcnREYXRlKSAmJiBpc1ZhbGlkKGVuZERhdGUpO1xuICB9XG59XG4iXX0=
@@ -158,7 +158,7 @@ export class NovoDateTimeFormatDirective extends IMaskDirective {
158
158
  }
159
159
  normalize(value) {
160
160
  const pattern = this.labels.dateFormat.toUpperCase();
161
- return DateUtil.format(DateUtil.parse(value), pattern);
161
+ return DateUtil.format(value ? DateUtil.parse(value) : null, pattern);
162
162
  }
163
163
  formatAsIso(date) {
164
164
  if (date && isValid(date)) {
@@ -240,4 +240,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
240
240
  }], dateTimeFormat: [{
241
241
  type: Input
242
242
  }] } });
243
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLWZvcm1hdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25vdm8tZWxlbWVudHMvc3JjL2VsZW1lbnRzL2ZpZWxkL2Zvcm1hdHMvZGF0ZS10aW1lLWZvcm1hdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBVSxLQUFLLEVBQWlELFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5SSxPQUFPLEVBQTJCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUUsT0FBTyxFQUFFLGNBQWMsRUFBZ0IsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNuQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNoRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsUUFBUSxFQUFPLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBbUIsTUFBTSxlQUFlLENBQUM7OztBQUVqRixNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRztJQUMzQyxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsMkJBQTJCLENBQUM7SUFDMUQsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBWUYsTUFBTSxPQUFPLDJCQUE0QixTQUFRLGNBQW1CO0lBTWxFLFlBQW9CLE1BQXdCO1FBQzFDLEtBQUssRUFBRSxDQUFDO1FBRFUsV0FBTSxHQUFOLE1BQU0sQ0FBa0I7UUFMNUMsZ0JBQVcsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUUzQyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLG1CQUFjLEdBQWlCLFlBQVksQ0FBQyxJQUFJLENBQUM7UUFJeEQsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELGlCQUFpQjtRQUNmLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3hELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3hELElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBMkIsQ0FBQyxDQUFDLDZDQUE2QztRQUN4RixJQUFJLENBQUMsS0FBSyxHQUFHO1lBQ1gsSUFBSSxFQUFFLElBQUk7WUFDVixPQUFPLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLHVCQUF1QjtZQUN2RSxTQUFTLEVBQUUsSUFBSTtZQUNmLE9BQU8sRUFBRSxJQUFJO1lBQ2IsSUFBSSxFQUFFLEtBQUs7WUFDWCxHQUFHLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDekIsR0FBRyxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3pCLE9BQU8sRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRTtZQUNuQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1lBQ3hDLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7WUFDbkMsTUFBTSxFQUFFO2dCQUNOLENBQUMsRUFBRTtvQkFDRCxJQUFJLEVBQUUsV0FBVztvQkFDakIsZUFBZSxFQUFFLEdBQUc7b0JBQ3BCLElBQUksRUFBRSxDQUFDO29CQUNQLEVBQUUsRUFBRSxFQUFFO29CQUNOLFNBQVMsRUFBRSxDQUFDO2lCQUNiO2dCQUNELENBQUMsRUFBRTtvQkFDRCxJQUFJLEVBQUUsV0FBVztvQkFDakIsZUFBZSxFQUFFLEdBQUc7b0JBQ3BCLElBQUksRUFBRSxDQUFDO29CQUNQLEVBQUUsRUFBRSxFQUFFO29CQUNOLFNBQVMsRUFBRSxDQUFDO2lCQUNiO2dCQUNELENBQUMsRUFBRTtvQkFDRCxJQUFJLEVBQUUsV0FBVztvQkFDakIsZUFBZSxFQUFFLEdBQUc7b0JBQ3BCLElBQUksRUFBRSxJQUFJO29CQUNWLEVBQUUsRUFBRSxJQUFJO2lCQUNUO2dCQUNELEVBQUUsRUFBRTtvQkFDRixJQUFJLEVBQUUsV0FBVztvQkFDakIsZUFBZSxFQUFFLEdBQUc7b0JBQ3BCLFNBQVMsRUFBRSxDQUFDO29CQUNaLElBQUksRUFBRSxDQUFDO29CQUNQLEVBQUUsRUFBRSxFQUFFO2lCQUNQO2dCQUNELEVBQUUsRUFBRTtvQkFDRixJQUFJLEVBQUUsV0FBVztvQkFDakIsZUFBZSxFQUFFLEdBQUc7b0JBQ3BCLFNBQVMsRUFBRSxDQUFDO29CQUNaLElBQUksRUFBRSxDQUFDO29CQUNQLEVBQUUsRUFBRSxFQUFFO2lCQUNQO2dCQUNELEVBQUUsRUFBRTtvQkFDRixJQUFJLEVBQUUsV0FBVztvQkFDakIsZUFBZSxFQUFFLEdBQUc7b0JBQ3BCLFNBQVMsRUFBRSxDQUFDO29CQUNaLElBQUksRUFBRSxDQUFDO29CQUNQLEVBQUUsRUFBRSxFQUFFO2lCQUNQO2dCQUNELEVBQUUsRUFBRTtvQkFDRixJQUFJLEVBQUUsV0FBVztvQkFDakIsZUFBZSxFQUFFLEdBQUc7b0JBQ3BCLFNBQVMsRUFBRSxDQUFDO29CQUNaLElBQUksRUFBRSxDQUFDO29CQUNQLEVBQUUsRUFBRSxFQUFFO2lCQUNQO2dCQUNELEVBQUUsRUFBRTtvQkFDRixJQUFJLEVBQUUsVUFBVTtvQkFDaEIsZUFBZSxFQUFFLEdBQUc7b0JBQ3BCLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDO2lC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QUEyQixDQUFDLEtBQUssQ0FBQztRQUN0RCxNQUFNLFFBQVEsR0FBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLE1BQU0sSUFBSSxHQUFXLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbkIsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzdFLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUUsSUFBSSxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDcEMsS0FBSyxDQUFDLE1BQTJCLENBQUMsS0FBSyxHQUFHLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQzlHLENBQUM7WUFDRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ2YsS0FBSyxDQUFDLE1BQTJCLENBQUMsS0FBSyxHQUFHLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxL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LEVBQUUsdUJBQXVCO3dCQUM5QixTQUFTLEVBQUUscUJBQXFCO3dCQUNoQyxRQUFRLEVBQUUscUJBQXFCO3dCQUMvQixXQUFXLEVBQUUsd0JBQXdCO3FCQUN0QztvQkFDRCxTQUFTLEVBQUUsQ0FBQyw2QkFBNkIsRUFBRSxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLDZCQUE2QixFQUFFLENBQUM7aUJBQ3JIO3FGQUlVLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIElucHV0LCBPbkNoYW5nZXMsIE9wdGlvbmFsLCBSZW5kZXJlcjIsIFNpbXBsZUNoYW5nZXMsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENPTVBPU0lUSU9OX0JVRkZFUl9NT0RFLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElNYXNrRGlyZWN0aXZlLCBJTWFza0ZhY3RvcnkgfSBmcm9tICdhbmd1bGFyLWltYXNrJztcbmltcG9ydCB7IGlzVmFsaWQgfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgeyBNYXNrZWRFbnVtLCBNYXNrZWRSYW5nZSB9IGZyb20gJ2ltYXNrJztcbmltcG9ydCB7IE5vdm9MYWJlbFNlcnZpY2UgfSBmcm9tICdub3ZvLWVsZW1lbnRzL3NlcnZpY2VzJztcbmltcG9ydCB7IERhdGVVdGlsLCBLZXkgfSBmcm9tICdub3ZvLWVsZW1lbnRzL3V0aWxzJztcbmltcG9ydCB7IERBVEVfRk9STUFUUywgTk9WT19JTlBVVF9GT1JNQVQsIE5vdm9JbnB1dEZvcm1hdCB9IGZyb20gJy4vYmFzZS1mb3JtYXQnO1xuXG5leHBvcnQgY29uc3QgREFURVRJTUVGT1JNQVRfVkFMVUVfQUNDRVNTT1IgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBOb3ZvRGF0ZVRpbWVGb3JtYXREaXJlY3RpdmUpLFxuICBtdWx0aTogdHJ1ZSxcbn07XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ2lucHV0W2RhdGVUaW1lRm9ybWF0XScsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ25vdm8tZGF0ZS10aW1lLWZvcm1hdCcsXG4gICAgJyhpbnB1dCknOiAnX2NoZWNrSW5wdXQoJGV2ZW50KScsXG4gICAgJyhibHVyKSc6ICdfaGFuZGxlQmx1cigkZXZlbnQpJyxcbiAgICAnKGtleWRvd24pJzogJ19oYW5kbGVLZXlkb3duKCRldmVudCknLFxuICB9LFxuICBwcm92aWRlcnM6IFtEQVRFVElNRUZPUk1BVF9WQUxVRV9BQ0NFU1NPUiwgeyBwcm92aWRlOiBOT1ZPX0lOUFVUX0ZPUk1BVCwgdXNlRXhpc3Rpbmc6IE5vdm9EYXRlVGltZUZvcm1hdERpcmVjdGl2ZSB9XSxcbn0pXG5leHBvcnQgY2xhc3MgTm92b0RhdGVUaW1lRm9ybWF0RGlyZWN0aXZlIGV4dGVuZHMgSU1hc2tEaXJlY3RpdmU8YW55PiBpbXBsZW1lbnRzIE5vdm9JbnB1dEZvcm1hdCwgT25DaGFuZ2VzIHtcbiAgdmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBJbnB1dCgpIG1pbGl0YXJ5OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRhdGVUaW1lRm9ybWF0OiBEQVRFX0ZPUk1BVFMgPSBEQVRFX0ZPUk1BVFMuREFURTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGxhYmVsczogTm92b0xhYmVsU2VydmljZSkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5pbml0Rm9ybWF0T3B0aW9ucygpO1xuICB9XG5cbiAgaW5pdEZvcm1hdE9wdGlvbnMoKSB7XG4gICAgY29uc3QgYW1Gb3JtYXQgPSB0aGlzLmxhYmVscy50aW1lRm9ybWF0QU0udG9VcHBlckNhc2UoKTtcbiAgICBjb25zdCBwbUZvcm1hdCA9IHRoaXMubGFiZWxzLnRpbWVGb3JtYXRQTS50b1VwcGVyQ2FzZSgpO1xuICAgIHRoaXMudW5tYXNrID0gJ3R5cGVkJyBhcyB1bmtub3duIGFzIGZhbHNlOyAvLyB0eXBpbmcgaXMgdG8gd29yayBhcm91bmQgYW5ndWxhci1pbWFzayBidWdcbiAgICB0aGlzLmltYXNrID0ge1xuICAgICAgbWFzazogRGF0ZSxcbiAgICAgIHBhdHRlcm46IHRoaXMubWlsaXRhcnkgPyAnbXsvfWBkey99YFksIEhIOm1tJyA6ICdtey99YGR7L31gWSwgSEg6bW0gYWEnLFxuICAgICAgb3ZlcndyaXRlOiB0cnVlLFxuICAgICAgYXV0b2ZpeDogdHJ1ZSxcbiAgICAgIGxhenk6IGZhbHNlLFxuICAgICAgbWluOiBuZXcgRGF0ZSgxOTAwLCAwLCAxKSxcbiAgICAgIG1heDogbmV3IERhdGUoMjEwMCwgMCwgMSksXG4gICAgICBwcmVwYXJlOiAoc3RyKSA9PiBzdHIudG9VcHBlckNhc2UoKSxcbiAgICAgIGZvcm1hdDogKGRhdGUpID0+IHRoaXMuZm9ybWF0VmFsdWUoZGF0ZSksXG4gICAgICBwYXJzZTogKHN0cikgPT4gRGF0ZVV0aWwucGFyc2Uoc3RyKSxcbiAgICAgIGJsb2Nrczoge1xuICAgICAgICBkOiB7XG4gICAgICAgICAgbWFzazogTWFza2VkUmFuZ2UsXG4gICAgICAgICAgcGxhY2Vob2xkZXJDaGFyOiAnRCcsXG4gICAgICAgICAgZnJvbTogMSxcbiAgICAgICAgICB0bzogMzEsXG4gICAgICAgICAgbWF4TGVuZ3RoOiAyLFxuICAgICAgICB9LFxuICAgICAgICBtOiB7XG4gICAgICAgICAgbWFzazogTWFza2VkUmFuZ2UsXG4gICAgICAgICAgcGxhY2Vob2xkZXJDaGFyOiAnTScsXG4gICAgICAgICAgZnJvbTogMSxcbiAgICAgICAgICB0bzogMTIsXG4gICAgICAgICAgbWF4TGVuZ3RoOiAyLFxuICAgICAgICB9LFxuICAgICAgICBZOiB7XG4gICAgICAgICAgbWFzazogTWFza2VkUmFuZ2UsXG4gICAgICAgICAgcGxhY2Vob2xkZXJDaGFyOiAnWScsXG4gICAgICAgICAgZnJvbTogMTkwMCxcbiAgICAgICAgICB0bzogOTk5OSxcbiAgICAgICAgfSxcbiAgICAgICAgSEg6IHtcbiAgICAgICAgICBtYXNrOiBNYXNrZWRSYW5nZSxcbiAgICAgICAgICBwbGFjZWhvbGRlckNoYXI6ICctJyxcbiAgICAgICAgICBtYXhMZW5ndGg6IDIsXG4gICAgICAgICAgZnJvbTogMCxcbiAgICAgICAgICB0bzogMjMsXG4gICAgICAgIH0sXG4gICAgICAgIGhoOiB7XG4gICAgICAgICAgbWFzazogTWFza2VkUmFuZ2UsXG4gICAgICAgICAgcGxhY2Vob2xkZXJDaGFyOiAnLScsXG4gICAgICAgICAgbWF4TGVuZ3RoOiAyLFxuICAgICAgICAgIGZyb206IDEsXG4gICAgICAgICAgdG86IDEyLFxuICAgICAgICB9LFxuICAgICAgICBtbToge1xuICAgICAgICAgIG1hc2s6IE1hc2tlZFJhbmdlLFxuICAgICAgICAgIHBsYWNlaG9sZGVyQ2hhcjogJy0nLFxuICAgICAgICAgIG1heExlbmd0aDogMixcbiAgICAgICAgICBmcm9tOiAwLFxuICAgICAgICAgIHRvOiA1OSxcbiAgICAgICAgfSxcbiAgICAgICAgc3M6IHtcbiAgICAgICAgICBtYXNrOiBNYXNrZWRSYW5nZSxcbiAgICAgICAgICBwbGFjZWhvbGRlckNoYXI6ICctJyxcbiAgICAgICAgICBtYXhMZW5ndGg6IDIsXG4gICAgICAgICAgZnJvbTogMCxcbiAgICAgICAgICB0bzogNTksXG4gICAgICAgIH0sXG4gICAgICAgIGFhOiB7XG4gICAgICAgICAgbWFzazogTWFza2VkRW51bSxcbiAgICAgICAgICBwbGFjZWhvbGRlckNoYXI6ICctJyxcbiAgICAgICAgICBlbnVtOiBbJ0FNJywgJ1BNJywgJ2FtJywgJ3BtJywgYW1Gb3JtYXQsIHBtRm9ybWF0XSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuICBcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChPYmplY3Qua2V5cyhjaGFuZ2VzKS5zb21lKChrZXkpID0+IFsnbWlsaXRhcnknLCAnZGF0ZUZvcm1hdCddLmluY2x1ZGVzKGtleSkpKSB7XG4gICAgICB0aGlzLmluaXRGb3JtYXRPcHRpb25zKCk7XG4gICAgfVxuICB9XG5cbiAgX2NoZWNrSW5wdXQoZXZlbnQ6IElucHV0RXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gZXZlbnQudGFyZ2V0KSB7XG4gICAgICBjb25zdCB0ZXh0ID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZTtcbiAgICAgIGNvbnN0IGRhdGVUaW1lID0gIHRleHQuc3BsaXQoJywgJyk7XG4gICAgICBjb25zdCBob3VyID0gZGF0ZVRpbWVbMV0uc2xpY2UoMCwgMik7XG4gICAgICBpZiAoKHRoaXMubWlsaXRhcnkgJiYgTnVtYmVyKGRhdGVUaW1lWzFdWzBdKSA+IDIpIHx8ICghdGhpcy5taWxpdGFyeSAmJiBOdW1iZXIoZGF0ZVRpbWVbMV1bMF0pID4gMSkpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBgMCR7ZGF0ZVRpbWVbMV19YDtcbiAgICAgICAgKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZSA9IHZhbHVlO1xuICAgICAgICAvLyB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgICAgIH1cbiAgICAgIGlmICghdGhpcy5taWxpdGFyeSkge1xuICAgICAgICBjb25zdCBpbnB1dCA9IGRhdGVUaW1lWzFdLnN1YnN0cig1LCA0KS5yZXBsYWNlKC9cXC0vZywgJycpLnRyaW0oKS5zbGljZSgwLCAyKTtcbiAgICAgICAgY29uc3QgdGltZVBlcmlvZCA9IHRoaXMuaW1hc2suYmxvY2tzLmFhLmVudW0uZmluZCgoaXQpID0+IGl0WzBdID09PSBpbnB1dFswXSk7XG4gICAgICAgIGlmICh0aW1lUGVyaW9kKSB7XG4gICAgICAgICAgKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZSA9IGAke2RhdGVUaW1lWzBdfSwgJHtkYXRlVGltZVsxXS5zbGljZSgwLCA1KX0gJHt0aW1lUGVyaW9kfWA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkuc2VsZWN0aW9uU3RhcnQgPj0gMyAmJiB0aGlzLmhvdXJPbmVGb3JtYXRSZXF1aXJlZChob3VyKSkge1xuICAgICAgICAgIChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWUgPSBgJHtkYXRlVGltZVswXX0sIDAxOiR7KGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZS5zbGljZShcbiAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlLmxlbmd0aCxcbiAgICAgICAgICApfWA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBfaGFuZGxlQmx1cihldmVudDogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHRleHQgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlO1xuICAgIGNvbnN0IGRhdGVUaW1lID0gIHRleHQuc3BsaXQoJywgJyk7XG4gICAgY29uc3QgaG91cjogc3RyaW5nID0gZGF0ZVRpbWVbMV0uc2xpY2UoMCwgMik7XG4gICAgaWYgKCF0aGlzLm1pbGl0YXJ5KSB7XG4gICAgICBjb25zdCBpbnB1dCA9IGRhdGVUaW1lWzFdLnN1YnN0cig1LCA0KS5yZXBsYWNlKC9cXC0vZywgJycpLnRyaW0oKS5zbGljZSgwLCAyKTtcbiAgICAgIGNvbnN0IHRpbWVQZXJpb2QgPSB0aGlzLmltYXNrLmJsb2Nrcy5hYS5lbnVtLmZpbmQoKGl0KSA9PiBpdFswXSA9PT0gaW5wdXRbMF0pO1xuICAgICAgaWYgKHRoaXMuaG91ck9uZUZvcm1hdFJlcXVpcmVkKGhvdXIpKSB7XG4gICAgICAgIChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWUgPSBgJHtkYXRlVGltZVswXX0sIDAxOiR7ZGF0ZVRpbWVbMV0uc2xpY2UoMywgZGF0ZVRpbWVbMV0ubGVuZ3RoKX1gO1xuICAgICAgfVxuICAgICAgaWYgKCF0aW1lUGVyaW9kKSB7XG4gICAgICAgIChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWUgPSBgJHtkYXRlVGltZVswXX0sICR7ZGF0ZVRpbWVbMV0uc2xpY2UoMCwgNSl9IC0tYDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBfaGFuZGxlS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgY29uc3QgZGF0ZVRpbWUgPSAgaW5wdXQudmFsdWUuc3BsaXQoJywgJyk7XG4gICAgY29uc3QgaG91cjogc3RyaW5nID0gZGF0ZVRpbWVbMV0uc2xpY2UoMCwgMik7XG5cbiAgICBpZiAoZXZlbnQua2V5ID09PSBLZXkuQmFja3NwYWNlICYmIGlucHV0LnNlbGVjdGlvblN0YXJ0ID09PSBkYXRlVGltZVsxXS5sZW5ndGgpIHtcbiAgICAgIChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWUgPSBgJHtkYXRlVGltZVsxXS5zbGljZSgwLCA1KX0gLS1gO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSBLZXkuVGFiICYmIGlucHV0LnNlbGVjdGlvblN0YXJ0IDw9IDIgJiYgdGhpcy5ob3VyT25lRm9ybWF0UmVxdWlyZWQoaG91cikpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgaW5wdXQudmFsdWUgPSBgJHtkYXRlVGltZVswXX0sIDAxOiR7ZGF0ZVRpbWVbMV0uc2xpY2UoMywgZGF0ZVRpbWVbMV0ubGVuZ3RoKX1gO1xuICAgICAgaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2UoMTUsIDE1KTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gS2V5LkFycm93UmlnaHQgJiYgaW5wdXQuc2VsZWN0aW9uU3RhcnQgPj0gMiAmJiB0aGlzLmhvdXJPbmVGb3JtYXRSZXF1aXJlZChob3VyKSkge1xuICAgICAgaW5wdXQudmFsdWUgPSBgJHtkYXRlVGltZVswXX0sIDAxOiR7ZGF0ZVRpbWVbMV0uc2xpY2UoMywgZGF0ZVRpbWVbMV0ubGVuZ3RoKX1gO1xuICAgICAgaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2UoMTQsIDE0KTtcbiAgICB9XG4gIH1cblxuICBub3JtYWxpemUodmFsdWU6IHN0cmluZykge1xuICAgIGNvbnN0IHBhdHRlcm4gPSB0aGlzLmxhYmVscy5kYXRlRm9ybWF0LnRvVXBwZXJDYXNlKCk7XG4gICAgcmV0dXJuIERhdGVVdGlsLmZvcm1hdChEYXRlVXRpbC5wYXJzZSh2YWx1ZSksIHBhdHRlcm4pO1xuICB9XG5cbiAgZm9ybWF0QXNJc28oZGF0ZTogRGF0ZSk6IHN0cmluZyB7XG4gICAgaWYgKGRhdGUgJiYgaXNWYWxpZChkYXRlKSkge1xuICAgICAgcmV0dXJuIGRhdGUudG9JU09TdHJpbmcoKTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb252ZXJ0VGltZTEydG8yNCh0aW1lMTJoOiBzdHJpbmcpIHtcbiAgICBjb25zdCBwbUZvcm1hdCA9IHRoaXMubGFiZWxzLnRpbWVGb3JtYXRQTS50b1VwcGVyQ2FzZSgpO1xuICAgIGNvbnN0IFt0aW1lLCBtZXJpZGlhbl0gPSB0aW1lMTJoLnNwbGl0KCcgJyk7XG4gICAgbGV0IFtob3VycywgbWludXRlc10gPSB0aW1lLnNwbGl0KCc6Jyk7XG4gICAgaWYgKGhvdXJzID09PSAnMTInKSB7XG4gICAgICBob3VycyA9ICcwMCc7XG4gICAgfVxuICAgIGlmIChbJ1BNJywgcG1Gb3JtYXRdLmluY2x1ZGVzKG1lcmlkaWFuKSkge1xuICAgICAgaG91cnMgPSBgJHtwYXJzZUludChob3VycywgMTApICsgMTJ9YC5wYWRTdGFydCgyLCAnMCcpO1xuICAgIH1cbiAgICByZXR1cm4gYCR7aG91cnN9OiR7bWludXRlc31gO1xuICB9XG5cbiAgY29udmVydFRpbWUyNHRvMTIodGltZTI0aDogc3RyaW5nKSB7XG4gICAgaWYgKHRpbWUyNGgubGVuZ3RoID09PSA1KSB7XG4gICAgICBjb25zdCBkYXRlID0gRGF0ZVV0aWwucGFyc2UoYDIwMjAtMDEtMDFUJHt0aW1lMjRofWApO1xuICAgICAgcmV0dXJuIERhdGVVdGlsLmZvcm1hdChkYXRlLCAnaGg6bW0gQScpO1xuICAgIH1cbiAgICByZXR1cm4gdGltZTI0aDtcbiAgfVxuXG4gIGZvcm1hdFZhbHVlKHZhbHVlOiBhbnkpOiBzdHJpbmcge1xuICAgIGlmICh2YWx1ZSA9PSBudWxsKSByZXR1cm4gJyc7XG4gICAgLy8gVXNlIGBwYXJzZWAgYmVjYXVzZSBpdCBrZWVwcyBkYXRlcyBpbiBsb2NhbGVcbiAgICBjb25zdCBkYXRlID0gRGF0ZVV0aWwucGFyc2UodmFsdWUpO1xuICAgIGlmIChpc1ZhbGlkKGRhdGUpKSB7XG4gICAgICBjb25zdCBkYXRlRm9ybWF0ID0gYCR7dGhpcy5sYWJlbHMuZGF0ZUZvcm1hdC50b1VwcGVyQ2FzZSgpfSwgJHt0aGlzLm1pbGl0YXJ5ID8gJ0hIOm1tJyA6ICdoaDptbSBBJ31gO1xuICAgICAgcmV0dXJuIERhdGVVdGlsLmZvcm1hdChkYXRlLCBkYXRlRm9ybWF0KTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMubm9ybWFsaXplKHZhbHVlKTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIHN1cGVyLndyaXRlVmFsdWUodGhpcy5mb3JtYXRWYWx1ZSh2YWx1ZSkpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKF86IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSAoZGF0ZTogYW55KSA9PiB7XG4gICAgICBsZXQgZm9ybWF0dGVkID0gZGF0ZTtcbiAgICAgIHN3aXRjaCAodGhpcy5kYXRlVGltZUZvcm1hdCkge1xuICAgICAgICBjYXNlIERBVEVfRk9STUFUUy5JU084NjAxOlxuICAgICAgICAgIGZvcm1hdHRlZCA9IHRoaXMuZm9ybWF0QXNJc28oZGF0ZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgREFURV9GT1JNQVRTLlNUUklORzpcbiAgICAgICAgICBmb3JtYXR0ZWQgPSB0aGlzLmZvcm1hdFZhbHVlKGRhdGUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGZvcm1hdHRlZCA9IGRhdGU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoZGF0ZSk7XG4gICAgICBmbihmb3JtYXR0ZWQpO1xuICAgIH07XG4gIH1cblxuICBob3VyT25lRm9ybWF0UmVxdWlyZWQoaG91cklucHV0OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaG91cklucHV0ID09PSAnLTEnIHx8IGhvdXJJbnB1dCA9PT0gJzEtJztcbiAgfVxufVxuIl19
243
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLWZvcm1hdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25vdm8tZWxlbWVudHMvc3JjL2VsZW1lbnRzL2ZpZWxkL2Zvcm1hdHMvZGF0ZS10aW1lLWZvcm1hdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBVSxLQUFLLEVBQWlELFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5SSxPQUFPLEVBQTJCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUUsT0FBTyxFQUFFLGNBQWMsRUFBZ0IsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNuQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNoRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsUUFBUSxFQUFPLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBbUIsTUFBTSxlQUFlLENBQUM7OztBQUVqRixNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRztJQUMzQyxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsMkJBQTJCLENBQUM7SUFDMUQsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBWUYsTUFBTSxPQUFPLDJCQUE0QixTQUFRLGNBQW1CO0lBTWxFLFlBQW9CLE1BQXdCO1FBQzFDLEtBQUssRUFBRSxDQUFDO1FBRFUsV0FBTSxHQUFOLE1BQU0sQ0FBa0I7UUFMNUMsZ0JBQVcsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUUzQyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLG1CQUFjLEdBQWlCLFlBQVksQ0FBQyxJQUFJLENBQUM7UUFJeEQsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELGlCQUFpQjtRQUNmLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3hELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3hELElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBMkIsQ0FBQyxDQUFDLDZDQUE2QztRQUN4RixJQUFJLENBQUMsS0FBSyxHQUFHO1lBQ1gsSUFBSSxFQUFFLElBQUk7WUFDVixPQUFPLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLHVCQUF1QjtZQUN2RSxTQUFTLEVBQUUsSUFBSTtZQUNmLE9BQU8sRUFBRSxJQUFJO1lBQ2IsSUFBSSxFQUFFLEtBQUs7WUFDWCxHQUFHLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDekIsR0FBRyxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3pCLE9BQU8sRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRTtZQUNuQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1lBQ3hDLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7WUFDbkMsTUFBTSxFQUFFO2dCQUNOLENBQUMsRUFBRTtvQkFDRCxJQUFJLEVBQUUsV0FBVztvQkFDakIsZUFBZSxFQUFFLEdBQUc7b0JBQ3BCLElBQUksRUFBRSxDQUFDO29CQUNQLEVBQUUsRUFBRSxFQUFFO29CQUNOLFNBQVMsRUFBRSxDQUFDO2lCQUNiO2dCQUNELENBQUMsRUFBRTtvQkFDRCxJQUFJLEVBQUUsV0FBVztvQkFDakIsZUFBZSxFQUFFLEdBQUc7b0JBQ3BCLElBQUksRUFBRSxDQUFDO29CQUNQLEVBQUUsRUFBRSxFQUFFO29CQUNOLFNBQVMsRUFBRSxDQUFDO2lCQUNiO2dCQUNELENBQUMsRUFBRTtvQkFDRCxJQUFJLEVBQUUsV0FBVztvQkFDakIsZUFBZSxFQUFFLEdBQUc7b0JBQ3BCLElBQUksRUFBRSxJQUFJO29CQUNWLEVBQUUsRUFBRSxJQUFJO2lCQUNUO2dCQUNELEVBQUUsRUFBRTtvQkFDRixJQUFJLEVBQUUsV0FBVztvQkFDakIsZUFBZSxFQUFFLEdBQUc7b0JBQ3BCLFNBQVMsRUFBRSxDQUFDO29CQUNaLElBQUksRUFBRSxDQUFDO29CQUNQLEVBQUUsRUFBRSxFQUFFO2lCQUNQO2dCQUNELEVBQUUsRUFBRTtvQkFDRixJQUFJLEVBQUUsV0FBVztvQkFDakIsZUFBZSxFQUFFLEdBQUc7b0JBQ3BCLFNBQVMsRUFBRSxDQUFDO29CQUNaLElBQUksRUFBRSxDQUFDO29CQUNQLEVBQUUsRUFBRSxFQUFFO2lCQUNQO2dCQUNELEVBQUUsRUFBRTtvQkFDRixJQUFJLEVBQUUsV0FBVztvQkFDakIsZUFBZSxFQUFFLEdBQUc7b0JBQ3BCLFNBQVMsRUFBRSxDQUFDO29CQUNaLElBQUksRUFBRSxDQUFDO29CQUNQLEVBQUUsRUFBRSxFQUFFO2lCQUNQO2dCQUNELEVBQUUsRUFBRTtvQkFDRixJQUFJLEVBQUUsV0FBVztvQkFDakIsZUFBZSxFQUFFLEdBQUc7b0JBQ3BCLFNBQVMsRUFBRSxDQUFDO29CQUNaLElBQUksRUFBRSxDQUFDO29CQUNQLEVBQUUsRUFBRSxFQUFFO2lCQUNQO2dCQUNELEVBQUUsRUFBRTtvQkFDRixJQUFJLEVBQUUsVUFBVTtvQkFDaEIsZUFBZSxFQUFFLEdBQUc7b0JBQ3BCLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDO2lC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QUEyQixDQUFDLEtBQUssQ0FBQztRQUN0RCxNQUFNLFFBQVEsR0FBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLE1BQU0sSUFBSSxHQUFXLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbkIsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzdFLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUUsSUFBSSxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDcEMsS0FBSyxDQUFDLE1BQTJCLENBQUMsS0FBSyxHQUFHLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQzlHLENBQUM7WUFDRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ2YsS0FBSyxDQUFDLE1BQTJCLENBQUMsS0FBSyxHQUFHLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxL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LEVBQUUsdUJBQXVCO29CQUNqQyxJQUFJLEVBQUU7d0JBQ0osS0FBSyxFQUFFLHVCQUF1Qjt3QkFDOUIsU0FBUyxFQUFFLHFCQUFxQjt3QkFDaEMsUUFBUSxFQUFFLHFCQUFxQjt3QkFDL0IsV0FBVyxFQUFFLHdCQUF3QjtxQkFDdEM7b0JBQ0QsU0FBUyxFQUFFLENBQUMsNkJBQTZCLEVBQUUsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyw2QkFBNkIsRUFBRSxDQUFDO2lCQUNySDtxRkFJVSxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbnB1dCwgT25DaGFuZ2VzLCBPcHRpb25hbCwgUmVuZGVyZXIyLCBTaW1wbGVDaGFuZ2VzLCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDT01QT1NJVElPTl9CVUZGRVJfTU9ERSwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJTWFza0RpcmVjdGl2ZSwgSU1hc2tGYWN0b3J5IH0gZnJvbSAnYW5ndWxhci1pbWFzayc7XG5pbXBvcnQgeyBpc1ZhbGlkIH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgTWFza2VkRW51bSwgTWFza2VkUmFuZ2UgfSBmcm9tICdpbWFzayc7XG5pbXBvcnQgeyBOb3ZvTGFiZWxTZXJ2aWNlIH0gZnJvbSAnbm92by1lbGVtZW50cy9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBEYXRlVXRpbCwgS2V5IH0gZnJvbSAnbm92by1lbGVtZW50cy91dGlscyc7XG5pbXBvcnQgeyBEQVRFX0ZPUk1BVFMsIE5PVk9fSU5QVVRfRk9STUFULCBOb3ZvSW5wdXRGb3JtYXQgfSBmcm9tICcuL2Jhc2UtZm9ybWF0JztcblxuZXhwb3J0IGNvbnN0IERBVEVUSU1FRk9STUFUX1ZBTFVFX0FDQ0VTU09SID0ge1xuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTm92b0RhdGVUaW1lRm9ybWF0RGlyZWN0aXZlKSxcbiAgbXVsdGk6IHRydWUsXG59O1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdpbnB1dFtkYXRlVGltZUZvcm1hdF0nLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdub3ZvLWRhdGUtdGltZS1mb3JtYXQnLFxuICAgICcoaW5wdXQpJzogJ19jaGVja0lucHV0KCRldmVudCknLFxuICAgICcoYmx1ciknOiAnX2hhbmRsZUJsdXIoJGV2ZW50KScsXG4gICAgJyhrZXlkb3duKSc6ICdfaGFuZGxlS2V5ZG93bigkZXZlbnQpJyxcbiAgfSxcbiAgcHJvdmlkZXJzOiBbREFURVRJTUVGT1JNQVRfVkFMVUVfQUNDRVNTT1IsIHsgcHJvdmlkZTogTk9WT19JTlBVVF9GT1JNQVQsIHVzZUV4aXN0aW5nOiBOb3ZvRGF0ZVRpbWVGb3JtYXREaXJlY3RpdmUgfV0sXG59KVxuZXhwb3J0IGNsYXNzIE5vdm9EYXRlVGltZUZvcm1hdERpcmVjdGl2ZSBleHRlbmRzIElNYXNrRGlyZWN0aXZlPGFueT4gaW1wbGVtZW50cyBOb3ZvSW5wdXRGb3JtYXQsIE9uQ2hhbmdlcyB7XG4gIHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBASW5wdXQoKSBtaWxpdGFyeTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBkYXRlVGltZUZvcm1hdDogREFURV9GT1JNQVRTID0gREFURV9GT1JNQVRTLkRBVEU7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBsYWJlbHM6IE5vdm9MYWJlbFNlcnZpY2UpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuaW5pdEZvcm1hdE9wdGlvbnMoKTtcbiAgfVxuXG4gIGluaXRGb3JtYXRPcHRpb25zKCkge1xuICAgIGNvbnN0IGFtRm9ybWF0ID0gdGhpcy5sYWJlbHMudGltZUZvcm1hdEFNLnRvVXBwZXJDYXNlKCk7XG4gICAgY29uc3QgcG1Gb3JtYXQgPSB0aGlzLmxhYmVscy50aW1lRm9ybWF0UE0udG9VcHBlckNhc2UoKTtcbiAgICB0aGlzLnVubWFzayA9ICd0eXBlZCcgYXMgdW5rbm93biBhcyBmYWxzZTsgLy8gdHlwaW5nIGlzIHRvIHdvcmsgYXJvdW5kIGFuZ3VsYXItaW1hc2sgYnVnXG4gICAgdGhpcy5pbWFzayA9IHtcbiAgICAgIG1hc2s6IERhdGUsXG4gICAgICBwYXR0ZXJuOiB0aGlzLm1pbGl0YXJ5ID8gJ217L31gZHsvfWBZLCBISDptbScgOiAnbXsvfWBkey99YFksIEhIOm1tIGFhJyxcbiAgICAgIG92ZXJ3cml0ZTogdHJ1ZSxcbiAgICAgIGF1dG9maXg6IHRydWUsXG4gICAgICBsYXp5OiBmYWxzZSxcbiAgICAgIG1pbjogbmV3IERhdGUoMTkwMCwgMCwgMSksXG4gICAgICBtYXg6IG5ldyBEYXRlKDIxMDAsIDAsIDEpLFxuICAgICAgcHJlcGFyZTogKHN0cikgPT4gc3RyLnRvVXBwZXJDYXNlKCksXG4gICAgICBmb3JtYXQ6IChkYXRlKSA9PiB0aGlzLmZvcm1hdFZhbHVlKGRhdGUpLFxuICAgICAgcGFyc2U6IChzdHIpID0+IERhdGVVdGlsLnBhcnNlKHN0ciksXG4gICAgICBibG9ja3M6IHtcbiAgICAgICAgZDoge1xuICAgICAgICAgIG1hc2s6IE1hc2tlZFJhbmdlLFxuICAgICAgICAgIHBsYWNlaG9sZGVyQ2hhcjogJ0QnLFxuICAgICAgICAgIGZyb206IDEsXG4gICAgICAgICAgdG86IDMxLFxuICAgICAgICAgIG1heExlbmd0aDogMixcbiAgICAgICAgfSxcbiAgICAgICAgbToge1xuICAgICAgICAgIG1hc2s6IE1hc2tlZFJhbmdlLFxuICAgICAgICAgIHBsYWNlaG9sZGVyQ2hhcjogJ00nLFxuICAgICAgICAgIGZyb206IDEsXG4gICAgICAgICAgdG86IDEyLFxuICAgICAgICAgIG1heExlbmd0aDogMixcbiAgICAgICAgfSxcbiAgICAgICAgWToge1xuICAgICAgICAgIG1hc2s6IE1hc2tlZFJhbmdlLFxuICAgICAgICAgIHBsYWNlaG9sZGVyQ2hhcjogJ1knLFxuICAgICAgICAgIGZyb206IDE5MDAsXG4gICAgICAgICAgdG86IDk5OTksXG4gICAgICAgIH0sXG4gICAgICAgIEhIOiB7XG4gICAgICAgICAgbWFzazogTWFza2VkUmFuZ2UsXG4gICAgICAgICAgcGxhY2Vob2xkZXJDaGFyOiAnLScsXG4gICAgICAgICAgbWF4TGVuZ3RoOiAyLFxuICAgICAgICAgIGZyb206IDAsXG4gICAgICAgICAgdG86IDIzLFxuICAgICAgICB9LFxuICAgICAgICBoaDoge1xuICAgICAgICAgIG1hc2s6IE1hc2tlZFJhbmdlLFxuICAgICAgICAgIHBsYWNlaG9sZGVyQ2hhcjogJy0nLFxuICAgICAgICAgIG1heExlbmd0aDogMixcbiAgICAgICAgICBmcm9tOiAxLFxuICAgICAgICAgIHRvOiAxMixcbiAgICAgICAgfSxcbiAgICAgICAgbW06IHtcbiAgICAgICAgICBtYXNrOiBNYXNrZWRSYW5nZSxcbiAgICAgICAgICBwbGFjZWhvbGRlckNoYXI6ICctJyxcbiAgICAgICAgICBtYXhMZW5ndGg6IDIsXG4gICAgICAgICAgZnJvbTogMCxcbiAgICAgICAgICB0bzogNTksXG4gICAgICAgIH0sXG4gICAgICAgIHNzOiB7XG4gICAgICAgICAgbWFzazogTWFza2VkUmFuZ2UsXG4gICAgICAgICAgcGxhY2Vob2xkZXJDaGFyOiAnLScsXG4gICAgICAgICAgbWF4TGVuZ3RoOiAyLFxuICAgICAgICAgIGZyb206IDAsXG4gICAgICAgICAgdG86IDU5LFxuICAgICAgICB9LFxuICAgICAgICBhYToge1xuICAgICAgICAgIG1hc2s6IE1hc2tlZEVudW0sXG4gICAgICAgICAgcGxhY2Vob2xkZXJDaGFyOiAnLScsXG4gICAgICAgICAgZW51bTogWydBTScsICdQTScsICdhbScsICdwbScsIGFtRm9ybWF0LCBwbUZvcm1hdF0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gIH1cbiAgXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoT2JqZWN0LmtleXMoY2hhbmdlcykuc29tZSgoa2V5KSA9PiBbJ21pbGl0YXJ5JywgJ2RhdGVGb3JtYXQnXS5pbmNsdWRlcyhrZXkpKSkge1xuICAgICAgdGhpcy5pbml0Rm9ybWF0T3B0aW9ucygpO1xuICAgIH1cbiAgfVxuXG4gIF9jaGVja0lucHV0KGV2ZW50OiBJbnB1dEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGV2ZW50LnRhcmdldCkge1xuICAgICAgY29uc3QgdGV4dCA9IChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWU7XG4gICAgICBjb25zdCBkYXRlVGltZSA9ICB0ZXh0LnNwbGl0KCcsICcpO1xuICAgICAgY29uc3QgaG91ciA9IGRhdGVUaW1lWzFdLnNsaWNlKDAsIDIpO1xuICAgICAgaWYgKCh0aGlzLm1pbGl0YXJ5ICYmIE51bWJlcihkYXRlVGltZVsxXVswXSkgPiAyKSB8fCAoIXRoaXMubWlsaXRhcnkgJiYgTnVtYmVyKGRhdGVUaW1lWzFdWzBdKSA+IDEpKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gYDAke2RhdGVUaW1lWzFdfWA7XG4gICAgICAgIChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgLy8gdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gICAgICB9XG4gICAgICBpZiAoIXRoaXMubWlsaXRhcnkpIHtcbiAgICAgICAgY29uc3QgaW5wdXQgPSBkYXRlVGltZVsxXS5zdWJzdHIoNSwgNCkucmVwbGFjZSgvXFwtL2csICcnKS50cmltKCkuc2xpY2UoMCwgMik7XG4gICAgICAgIGNvbnN0IHRpbWVQZXJpb2QgPSB0aGlzLmltYXNrLmJsb2Nrcy5hYS5lbnVtLmZpbmQoKGl0KSA9PiBpdFswXSA9PT0gaW5wdXRbMF0pO1xuICAgICAgICBpZiAodGltZVBlcmlvZCkge1xuICAgICAgICAgIChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWUgPSBgJHtkYXRlVGltZVswXX0sICR7ZGF0ZVRpbWVbMV0uc2xpY2UoMCwgNSl9ICR7dGltZVBlcmlvZH1gO1xuICAgICAgICB9XG4gICAgICAgIGlmICgoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnNlbGVjdGlvblN0YXJ0ID49IDMgJiYgdGhpcy5ob3VyT25lRm9ybWF0UmVxdWlyZWQoaG91cikpIHtcbiAgICAgICAgICAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlID0gYCR7ZGF0ZVRpbWVbMF19LCAwMTokeyhldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWUuc2xpY2UoXG4gICAgICAgICAgICAzLFxuICAgICAgICAgICAgKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZS5sZW5ndGgsXG4gICAgICAgICAgKX1gO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgX2hhbmRsZUJsdXIoZXZlbnQ6IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCB0ZXh0ID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZTtcbiAgICBjb25zdCBkYXRlVGltZSA9ICB0ZXh0LnNwbGl0KCcsICcpO1xuICAgIGNvbnN0IGhvdXI6IHN0cmluZyA9IGRhdGVUaW1lWzFdLnNsaWNlKDAsIDIpO1xuICAgIGlmICghdGhpcy5taWxpdGFyeSkge1xuICAgICAgY29uc3QgaW5wdXQgPSBkYXRlVGltZVsxXS5zdWJzdHIoNSwgNCkucmVwbGFjZSgvXFwtL2csICcnKS50cmltKCkuc2xpY2UoMCwgMik7XG4gICAgICBjb25zdCB0aW1lUGVyaW9kID0gdGhpcy5pbWFzay5ibG9ja3MuYWEuZW51bS5maW5kKChpdCkgPT4gaXRbMF0gPT09IGlucHV0WzBdKTtcbiAgICAgIGlmICh0aGlzLmhvdXJPbmVGb3JtYXRSZXF1aXJlZChob3VyKSkge1xuICAgICAgICAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlID0gYCR7ZGF0ZVRpbWVbMF19LCAwMToke2RhdGVUaW1lWzFdLnNsaWNlKDMsIGRhdGVUaW1lWzFdLmxlbmd0aCl9YDtcbiAgICAgIH1cbiAgICAgIGlmICghdGltZVBlcmlvZCkge1xuICAgICAgICAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlID0gYCR7ZGF0ZVRpbWVbMF19LCAke2RhdGVUaW1lWzFdLnNsaWNlKDAsIDUpfSAtLWA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgX2hhbmRsZUtleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBpbnB1dCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgIGNvbnN0IGRhdGVUaW1lID0gIGlucHV0LnZhbHVlLnNwbGl0KCcsICcpO1xuICAgIGNvbnN0IGhvdXI6IHN0cmluZyA9IGRhdGVUaW1lWzFdLnNsaWNlKDAsIDIpO1xuXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gS2V5LkJhY2tzcGFjZSAmJiBpbnB1dC5zZWxlY3Rpb25TdGFydCA9PT0gZGF0ZVRpbWVbMV0ubGVuZ3RoKSB7XG4gICAgICAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlID0gYCR7ZGF0ZVRpbWVbMV0uc2xpY2UoMCwgNSl9IC0tYDtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gS2V5LlRhYiAmJiBpbnB1dC5zZWxlY3Rpb25TdGFydCA8PSAyICYmIHRoaXMuaG91ck9uZUZvcm1hdFJlcXVpcmVkKGhvdXIpKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgIGlucHV0LnZhbHVlID0gYCR7ZGF0ZVRpbWVbMF19LCAwMToke2RhdGVUaW1lWzFdLnNsaWNlKDMsIGRhdGVUaW1lWzFdLmxlbmd0aCl9YDtcbiAgICAgIGlucHV0LnNldFNlbGVjdGlvblJhbmdlKDE1LCAxNSk7XG4gICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09IEtleS5BcnJvd1JpZ2h0ICYmIGlucHV0LnNlbGVjdGlvblN0YXJ0ID49IDIgJiYgdGhpcy5ob3VyT25lRm9ybWF0UmVxdWlyZWQoaG91cikpIHtcbiAgICAgIGlucHV0LnZhbHVlID0gYCR7ZGF0ZVRpbWVbMF19LCAwMToke2RhdGVUaW1lWzFdLnNsaWNlKDMsIGRhdGVUaW1lWzFdLmxlbmd0aCl9YDtcbiAgICAgIGlucHV0LnNldFNlbGVjdGlvblJhbmdlKDE0LCAxNCk7XG4gICAgfVxuICB9XG5cbiAgbm9ybWFsaXplKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBwYXR0ZXJuID0gdGhpcy5sYWJlbHMuZGF0ZUZvcm1hdC50b1VwcGVyQ2FzZSgpO1xuICAgIHJldHVybiBEYXRlVXRpbC5mb3JtYXQodmFsdWUgPyBEYXRlVXRpbC5wYXJzZSh2YWx1ZSkgOiBudWxsLCBwYXR0ZXJuKTtcbiAgfVxuXG4gIGZvcm1hdEFzSXNvKGRhdGU6IERhdGUpOiBzdHJpbmcge1xuICAgIGlmIChkYXRlICYmIGlzVmFsaWQoZGF0ZSkpIHtcbiAgICAgIHJldHVybiBkYXRlLnRvSVNPU3RyaW5nKCk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29udmVydFRpbWUxMnRvMjQodGltZTEyaDogc3RyaW5nKSB7XG4gICAgY29uc3QgcG1Gb3JtYXQgPSB0aGlzLmxhYmVscy50aW1lRm9ybWF0UE0udG9VcHBlckNhc2UoKTtcbiAgICBjb25zdCBbdGltZSwgbWVyaWRpYW5dID0gdGltZTEyaC5zcGxpdCgnICcpO1xuICAgIGxldCBbaG91cnMsIG1pbnV0ZXNdID0gdGltZS5zcGxpdCgnOicpO1xuICAgIGlmIChob3VycyA9PT0gJzEyJykge1xuICAgICAgaG91cnMgPSAnMDAnO1xuICAgIH1cbiAgICBpZiAoWydQTScsIHBtRm9ybWF0XS5pbmNsdWRlcyhtZXJpZGlhbikpIHtcbiAgICAgIGhvdXJzID0gYCR7cGFyc2VJbnQoaG91cnMsIDEwKSArIDEyfWAucGFkU3RhcnQoMiwgJzAnKTtcbiAgICB9XG4gICAgcmV0dXJuIGAke2hvdXJzfToke21pbnV0ZXN9YDtcbiAgfVxuXG4gIGNvbnZlcnRUaW1lMjR0bzEyKHRpbWUyNGg6IHN0cmluZykge1xuICAgIGlmICh0aW1lMjRoLmxlbmd0aCA9PT0gNSkge1xuICAgICAgY29uc3QgZGF0ZSA9IERhdGVVdGlsLnBhcnNlKGAyMDIwLTAxLTAxVCR7dGltZTI0aH1gKTtcbiAgICAgIHJldHVybiBEYXRlVXRpbC5mb3JtYXQoZGF0ZSwgJ2hoOm1tIEEnKTtcbiAgICB9XG4gICAgcmV0dXJuIHRpbWUyNGg7XG4gIH1cblxuICBmb3JtYXRWYWx1ZSh2YWx1ZTogYW55KTogc3RyaW5nIHtcbiAgICBpZiAodmFsdWUgPT0gbnVsbCkgcmV0dXJuICcnO1xuICAgIC8vIFVzZSBgcGFyc2VgIGJlY2F1c2UgaXQga2VlcHMgZGF0ZXMgaW4gbG9jYWxlXG4gICAgY29uc3QgZGF0ZSA9IERhdGVVdGlsLnBhcnNlKHZhbHVlKTtcbiAgICBpZiAoaXNWYWxpZChkYXRlKSkge1xuICAgICAgY29uc3QgZGF0ZUZvcm1hdCA9IGAke3RoaXMubGFiZWxzLmRhdGVGb3JtYXQudG9VcHBlckNhc2UoKX0sICR7dGhpcy5taWxpdGFyeSA/ICdISDptbScgOiAnaGg6bW0gQSd9YDtcbiAgICAgIHJldHVybiBEYXRlVXRpbC5mb3JtYXQoZGF0ZSwgZGF0ZUZvcm1hdCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLm5vcm1hbGl6ZSh2YWx1ZSk7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICBzdXBlci53cml0ZVZhbHVlKHRoaXMuZm9ybWF0VmFsdWUodmFsdWUpKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IChfOiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gKGRhdGU6IGFueSkgPT4ge1xuICAgICAgbGV0IGZvcm1hdHRlZCA9IGRhdGU7XG4gICAgICBzd2l0Y2ggKHRoaXMuZGF0ZVRpbWVGb3JtYXQpIHtcbiAgICAgICAgY2FzZSBEQVRFX0ZPUk1BVFMuSVNPODYwMTpcbiAgICAgICAgICBmb3JtYXR0ZWQgPSB0aGlzLmZvcm1hdEFzSXNvKGRhdGUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIERBVEVfRk9STUFUUy5TVFJJTkc6XG4gICAgICAgICAgZm9ybWF0dGVkID0gdGhpcy5mb3JtYXRWYWx1ZShkYXRlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBmb3JtYXR0ZWQgPSBkYXRlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KGRhdGUpO1xuICAgICAgZm4oZm9ybWF0dGVkKTtcbiAgICB9O1xuICB9XG5cbiAgaG91ck9uZUZvcm1hdFJlcXVpcmVkKGhvdXJJbnB1dDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGhvdXJJbnB1dCA9PT0gJy0xJyB8fCBob3VySW5wdXQgPT09ICcxLSc7XG4gIH1cbn1cbiJdfQ==
@@ -110,7 +110,7 @@ export class NovoTilesElement {
110
110
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NovoTilesElement, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
111
111
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NovoTilesElement, selector: "novo-tiles", inputs: { name: "name", options: "options", required: "required", disabled: ["controlDisabled", "disabled"] }, outputs: { onChange: "onChange", onSelectedOptionClick: "onSelectedOptionClick", onDisabledOptionClick: "onDisabledOptionClick" }, providers: [TILES_VALUE_ACCESSOR], usesOnChanges: true, ngImport: i0, template: `
112
112
  <div class="tile-container" [class.active]="focused" [class.disabled]="disabled">
113
- <button class="tile"
113
+ <button class="tile" type="button"
114
114
  *ngFor="let option of _options; let i = index"
115
115
  [ngClass]="{ defaultColor: !option.color, active: option.checked, disabled: option.disabled }"
116
116
  [theme]="option.checked ? 'primary' : 'dialogue'"
@@ -141,7 +141,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
141
141
  type: Component,
142
142
  args: [{ selector: 'novo-tiles', providers: [TILES_VALUE_ACCESSOR], template: `
143
143
  <div class="tile-container" [class.active]="focused" [class.disabled]="disabled">
144
- <button class="tile"
144
+ <button class="tile" type="button"
145
145
  *ngFor="let option of _options; let i = index"
146
146
  [ngClass]="{ defaultColor: !option.color, active: option.checked, disabled: option.disabled }"
147
147
  [theme]="option.checked ? 'primary' : 'dialogue'"
@@ -183,4 +183,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
183
183
  }], onDisabledOptionClick: [{
184
184
  type: Output
185
185
  }] } });
186
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGlsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ub3ZvLWVsZW1lbnRzL3NyYy9lbGVtZW50cy90aWxlcy9UaWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNO0FBQ04sT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFFTCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE1BQU07QUFDTixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFFOUMsc0RBQXNEO0FBQ3RELE1BQU0sb0JBQW9CLEdBQUc7SUFDM0IsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGdCQUFnQixDQUFDO0lBQy9DLEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQW9DRixNQUFNLE9BQU8sZ0JBQWdCO0lBd0IzQixZQUFvQixPQUFtQixFQUFVLEdBQXNCO1FBQW5ELFlBQU8sR0FBUCxPQUFPLENBQVk7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQXRCdkUsU0FBSSxHQUFXLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUM7UUFNL0MsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUUxQixhQUFRLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFakQsMEJBQXFCLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFOUQsMEJBQXFCLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFOUQsYUFBUSxHQUFlLEVBQUUsQ0FBQztRQUNuQixlQUFVLEdBQVEsSUFBSSxDQUFDO1FBQ3ZCLFlBQU8sR0FB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Q0FBQztJQUMzQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsUUFBaUI7UUFDaEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQzsrR0FuSFUsZ0JBQWdCO21HQUFoQixnQkFBZ0IsdVJBaENoQixDQUFDLG9CQUFvQixDQUFDLCtDQUN2Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkJUOzs0RkFJVSxnQkFBZ0I7a0JBbEM1QixTQUFTOytCQUNFLFlBQVksYUFDWCxDQUFDLG9CQUFvQixDQUFDLFlBQ3ZCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyQlQsbUJBRWdCLHVCQUF1QixDQUFDLE1BQU07K0dBSS9DLElBQUk7c0JBREgsS0FBSztnQkFHTixPQUFPO3NCQUROLEtBQUs7Z0JBR04sUUFBUTtzQkFEUCxLQUFLO2dCQUdOLFFBQVE7c0JBRFAsS0FBSzt1QkFBQyxpQkFBaUI7Z0JBR3hCLFFBQVE7c0JBRFAsTUFBTTtnQkFHUCxxQkFBcUI7c0JBRHBCLE1BQU07Z0JBR1AscUJBQXFCO3NCQURwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTkcyXG5pbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuLy8gQVBQXG5pbXBvcnQgeyBIZWxwZXJzIH0gZnJvbSAnbm92by1lbGVtZW50cy91dGlscyc7XG5cbi8vIFZhbHVlIGFjY2Vzc29yIGZvciB0aGUgY29tcG9uZW50IChzdXBwb3J0cyBuZ01vZGVsKVxuY29uc3QgVElMRVNfVkFMVUVfQUNDRVNTT1IgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBOb3ZvVGlsZXNFbGVtZW50KSxcbiAgbXVsdGk6IHRydWUsXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdub3ZvLXRpbGVzJyxcbiAgcHJvdmlkZXJzOiBbVElMRVNfVkFMVUVfQUNDRVNTT1JdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJ0aWxlLWNvbnRhaW5lclwiIFtjbGFzcy5hY3RpdmVdPVwiZm9jdXNlZFwiIFtjbGFzcy5kaXNhYmxlZF09XCJkaXNhYmxlZFwiPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cInRpbGVcIlxuICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIF9vcHRpb25zOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgW25nQ2xhc3NdPVwieyBkZWZhdWx0Q29sb3I6ICFvcHRpb24uY29sb3IsIGFjdGl2ZTogb3B0aW9uLmNoZWNrZWQsIGRpc2FibGVkOiBvcHRpb24uZGlzYWJsZWQgfVwiXG4gICAgICAgIFt0aGVtZV09XCJvcHRpb24uY2hlY2tlZCA/ICdwcmltYXJ5JyA6ICdkaWFsb2d1ZSdcIlxuICAgICAgICBbY29sb3JdPVwib3B0aW9uLmNoZWNrZWQgPyBvcHRpb24uY29sb3IgfHwgJ2Rhcmtlbigkb2NlYW4sIDIwJSknIDogJ2RhcmsnXCJcbiAgICAgICAgW2ljb25dPVwib3B0aW9uLmljb25cIlxuICAgICAgICBbc2lkZV09XCJvcHRpb24uaWNvblNpZGUgfHwgJ2xlZnQnXCJcbiAgICAgICAgKGNsaWNrKT1cInNlbGVjdCgkZXZlbnQsIG9wdGlvbilcIlxuICAgICAgICBbYXR0ci5kYXRhLWF1dG9tYXRpb24taWRdPVwib3B0aW9uLmxhYmVsIHx8IG9wdGlvblwiPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBjbGFzcz1cInRpbGVzLWlucHV0XCJcbiAgICAgICAgICBbbmFtZV09XCJuYW1lXCJcbiAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb24uY2hlY2tlZCB8fCBvcHRpb24udmFsdWUgfHwgb3B0aW9uXCJcbiAgICAgICAgICBbYXR0ci5pZF09XCJuYW1lICsgaVwiXG4gICAgICAgICAgKGNoYW5nZSk9XCJzZWxlY3QoJGV2ZW50LCBvcHRpb24pXCJcbiAgICAgICAgICAoZm9jdXMpPVwic2V0Rm9jdXModHJ1ZSlcIlxuICAgICAgICAgIChibHVyKT1cInNldEZvY3VzKGZhbHNlKVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgLz5cbiAgICAgICAgPGxhYmVsIFthdHRyLmZvcl09XCJuYW1lICsgaVwiIFthdHRyLmRhdGEtYXV0b21hdGlvbi1pZF09XCJvcHRpb24ubGFiZWwgfHwgb3B0aW9uXCI+XG4gICAgICAgICAge3sgb3B0aW9uLmxhYmVsIHx8IG9wdGlvbiB9fVxuICAgICAgICA8L2xhYmVsPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL1RpbGVzLnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5vdm9UaWxlc0VsZW1lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJDb250ZW50SW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KClcbiAgbmFtZTogc3RyaW5nID0gbmV3IERhdGUoKS5nZXRUaW1lKCkudG9TdHJpbmcoKTtcbiAgQElucHV0KClcbiAgb3B0aW9uczogYW55O1xuICBASW5wdXQoKVxuICByZXF1aXJlZDogYm9vbGVhbjtcbiAgQElucHV0KCdjb250cm9sRGlzYWJsZWQnKVxuICBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBAT3V0cHV0KClcbiAgb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KClcbiAgb25TZWxlY3RlZE9wdGlvbkNsaWNrOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpXG4gIG9uRGlzYWJsZWRPcHRpb25DbGljazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgX29wdGlvbnM6IEFycmF5PGFueT4gPSBbXTtcbiAgcHVibGljIGFjdGl2ZVRpbGU6IGFueSA9IG51bGw7XG4gIHB1YmxpYyBmb2N1c2VkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgbW9kZWw6IGFueTtcbiAgb25Nb2RlbENoYW5nZTogRnVuY3Rpb24gPSAoKSA9PiB7fTtcbiAgb25Nb2RlbFRvdWNoZWQ6IEZ1bmN0aW9uID0gKCkgPT4ge307XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmLCBwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgcHVibGljIHNldEZvY3VzKGZvY3VzOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5mb2N1c2VkID0gZm9jdXM7XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgdGhpcy5uYW1lID0gdGhpcy5uYW1lIHx8ICcnO1xuICAgIHRoaXMuc2V0dXBPcHRpb25zKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2U6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlLm9wdGlvbnMgJiYgY2hhbmdlLm9wdGlvbnMuY3VycmVudFZhbHVlICYmICFjaGFuZ2Uub3B0aW9ucy5maXJzdENoYW5nZSkge1xuICAgICAgdGhpcy5uYW1lID0gdGhpcy5uYW1lIHx8ICcnO1xuICAgICAgdGhpcy5fb3B0aW9ucyA9IFtdO1xuICAgICAgdGhpcy5zZXR1cE9wdGlvbnMoKTtcbiAgICB9XG4gIH1cblxuICBzZXR1cE9wdGlvbnMoKSB7XG4gICAgaWYgKHRoaXMub3B0aW9ucyAmJiB0aGlzLm9wdGlvbnMubGVuZ3RoICYmICh0aGlzLm9wdGlvbnNbMF0udmFsdWUgPT09IHVuZGVmaW5lZCB8fCB0aGlzLm9wdGlvbnNbMF0udmFsdWUgPT09IG51bGwpKSB7XG4gICAgICB0aGlzLl9vcHRpb25zID0gdGhpcy5vcHRpb25zLm1hcCgoeCkgPT4ge1xuICAgICAgICBjb25zdCBpdGVtID0geyB2YWx1ZTogeCwgbGFiZWw6IHgsIGNoZWNrZWQ6IHRoaXMubW9kZWwgPT09IHggfTtcbiAgICAgICAgaWYgKGl0ZW0uY2hlY2tlZCkge1xuICAgICAgICAgIHRoaXMuc2V0VGlsZShpdGVtKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9vcHRpb25zID0gdGhpcy5vcHRpb25zLm1hcCgoeCkgPT4ge1xuICAgICAgICB4LmNoZWNrZWQgPSB0aGlzLm1vZGVsID09PSB4LnZhbHVlIHx8ICh0aGlzLm1vZGVsICYmIHRoaXMubW9kZWwuaWQgPT09IHgudmFsdWUpO1xuICAgICAgICBpZiAoeC5jaGVja2VkKSB7XG4gICAgICAgICAgdGhpcy5zZXRUaWxlKHgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB4O1xuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgc2VsZWN0KGV2ZW50LCBpdGVtKSB7XG4gICAgaWYgKGV2ZW50KSB7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgaWYgKCFpdGVtLmRpc2FibGVkKSB7XG4gICAgICBpZiAoaXRlbS5jaGVja2VkKSB7XG4gICAgICAgIHRoaXMub25TZWxlY3RlZE9wdGlvbkNsaWNrLmVtaXQoaXRlbSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgZm9yIChjb25zdCBvcHRpb24gb2YgdGhpcy5fb3B0aW9ucykge1xuICAgICAgICBvcHRpb24uY2hlY2tlZCA9IGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBpdGVtLmNoZWNrZWQgPSAhaXRlbS5jaGVja2VkO1xuICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KGl0ZW0udmFsdWUpO1xuICAgICAgdGhpcy5vbk1vZGVsQ2hhbmdlKGl0ZW0udmFsdWUpO1xuICAgICAgdGhpcy5zZXRUaWxlKGl0ZW0pO1xuICAgICAgdGhpcy5tb2RlbCA9IGl0ZW0udmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub25EaXNhYmxlZE9wdGlvbkNsaWNrLmVtaXQoaXRlbSk7XG4gICAgfVxuICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgc2V0VGlsZShpdGVtKSB7XG4gICAgaWYgKGl0ZW0pIHtcbiAgICAgIHRoaXMuYWN0aXZlVGlsZSA9IGl0ZW0udmFsdWU7XG4gICAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICB3cml0ZVZhbHVlKG1vZGVsOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm1vZGVsID0gbW9kZWw7XG4gICAgaWYgKCFIZWxwZXJzLmlzQmxhbmsobW9kZWwpKSB7XG4gICAgICB0aGlzLnNldHVwT3B0aW9ucygpO1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IEZ1bmN0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5vbk1vZGVsQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogRnVuY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLm9uTW9kZWxUb3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGRpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGRpc2FibGVkO1xuICB9XG59XG4iXX0=
186
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGlsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ub3ZvLWVsZW1lbnRzL3NyYy9lbGVtZW50cy90aWxlcy9UaWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNO0FBQ04sT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFFTCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE1BQU07QUFDTixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFFOUMsc0RBQXNEO0FBQ3RELE1BQU0sb0JBQW9CLEdBQUc7SUFDM0IsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGdCQUFnQixDQUFDO0lBQy9DLEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQW9DRixNQUFNLE9BQU8sZ0JBQWdCO0lBd0IzQixZQUFvQixPQUFtQixFQUFVLEdBQXNCO1FBQW5ELFlBQU8sR0FBUCxPQUFPLENBQVk7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQXRCdkUsU0FBSSxHQUFXLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUM7UUFNL0MsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUUxQixhQUFRLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFakQsMEJBQXFCLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFOUQsMEJBQXFCLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFOUQsYUFBUSxHQUFlLEVBQUUsQ0FBQztRQUNuQixlQUFVLEdBQVEsSUFBSSxDQUFDO1FBQ3ZCLFlBQU8sR0FB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Q0FBQztJQUMzQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsUUFBaUI7UUFDaEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQzsrR0FuSFUsZ0JBQWdCO21HQUFoQixnQkFBZ0IsdVJBaENoQixDQUFDLG9CQUFvQixDQUFDLCtDQUN2Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkJUOzs0RkFJVSxnQkFBZ0I7a0JBbEM1QixTQUFTOytCQUNFLFlBQVksYUFDWCxDQUFDLG9CQUFvQixDQUFDLFlBQ3ZCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyQlQsbUJBRWdCLHVCQUF1QixDQUFDLE1BQU07K0dBSS9DLElBQUk7c0JBREgsS0FBSztnQkFHTixPQUFPO3NCQUROLEtBQUs7Z0JBR04sUUFBUTtzQkFEUCxLQUFLO2dCQUdOLFFBQVE7c0JBRFAsS0FBSzt1QkFBQyxpQkFBaUI7Z0JBR3hCLFFBQVE7c0JBRFAsTUFBTTtnQkFHUCxxQkFBcUI7c0JBRHBCLE1BQU07Z0JBR1AscUJBQXFCO3NCQURwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTkcyXG5pbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuLy8gQVBQXG5pbXBvcnQgeyBIZWxwZXJzIH0gZnJvbSAnbm92by1lbGVtZW50cy91dGlscyc7XG5cbi8vIFZhbHVlIGFjY2Vzc29yIGZvciB0aGUgY29tcG9uZW50IChzdXBwb3J0cyBuZ01vZGVsKVxuY29uc3QgVElMRVNfVkFMVUVfQUNDRVNTT1IgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBOb3ZvVGlsZXNFbGVtZW50KSxcbiAgbXVsdGk6IHRydWUsXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdub3ZvLXRpbGVzJyxcbiAgcHJvdmlkZXJzOiBbVElMRVNfVkFMVUVfQUNDRVNTT1JdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJ0aWxlLWNvbnRhaW5lclwiIFtjbGFzcy5hY3RpdmVdPVwiZm9jdXNlZFwiIFtjbGFzcy5kaXNhYmxlZF09XCJkaXNhYmxlZFwiPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cInRpbGVcIiB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBfb3B0aW9uczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgZGVmYXVsdENvbG9yOiAhb3B0aW9uLmNvbG9yLCBhY3RpdmU6IG9wdGlvbi5jaGVja2VkLCBkaXNhYmxlZDogb3B0aW9uLmRpc2FibGVkIH1cIlxuICAgICAgICBbdGhlbWVdPVwib3B0aW9uLmNoZWNrZWQgPyAncHJpbWFyeScgOiAnZGlhbG9ndWUnXCJcbiAgICAgICAgW2NvbG9yXT1cIm9wdGlvbi5jaGVja2VkID8gb3B0aW9uLmNvbG9yIHx8ICdkYXJrZW4oJG9jZWFuLCAyMCUpJyA6ICdkYXJrJ1wiXG4gICAgICAgIFtpY29uXT1cIm9wdGlvbi5pY29uXCJcbiAgICAgICAgW3NpZGVdPVwib3B0aW9uLmljb25TaWRlIHx8ICdsZWZ0J1wiXG4gICAgICAgIChjbGljayk9XCJzZWxlY3QoJGV2ZW50LCBvcHRpb24pXCJcbiAgICAgICAgW2F0dHIuZGF0YS1hdXRvbWF0aW9uLWlkXT1cIm9wdGlvbi5sYWJlbCB8fCBvcHRpb25cIj5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgY2xhc3M9XCJ0aWxlcy1pbnB1dFwiXG4gICAgICAgICAgW25hbWVdPVwibmFtZVwiXG4gICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICBbdmFsdWVdPVwib3B0aW9uLmNoZWNrZWQgfHwgb3B0aW9uLnZhbHVlIHx8IG9wdGlvblwiXG4gICAgICAgICAgW2F0dHIuaWRdPVwibmFtZSArIGlcIlxuICAgICAgICAgIChjaGFuZ2UpPVwic2VsZWN0KCRldmVudCwgb3B0aW9uKVwiXG4gICAgICAgICAgKGZvY3VzKT1cInNldEZvY3VzKHRydWUpXCJcbiAgICAgICAgICAoYmx1cik9XCJzZXRGb2N1cyhmYWxzZSlcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIC8+XG4gICAgICAgIDxsYWJlbCBbYXR0ci5mb3JdPVwibmFtZSArIGlcIiBbYXR0ci5kYXRhLWF1dG9tYXRpb24taWRdPVwib3B0aW9uLmxhYmVsIHx8IG9wdGlvblwiPlxuICAgICAgICAgIHt7IG9wdGlvbi5sYWJlbCB8fCBvcHRpb24gfX1cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9UaWxlcy5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOb3ZvVGlsZXNFbGVtZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEFmdGVyQ29udGVudEluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpXG4gIG5hbWU6IHN0cmluZyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpLnRvU3RyaW5nKCk7XG4gIEBJbnB1dCgpXG4gIG9wdGlvbnM6IGFueTtcbiAgQElucHV0KClcbiAgcmVxdWlyZWQ6IGJvb2xlYW47XG4gIEBJbnB1dCgnY29udHJvbERpc2FibGVkJylcbiAgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQE91dHB1dCgpXG4gIG9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpXG4gIG9uU2VsZWN0ZWRPcHRpb25DbGljazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKVxuICBvbkRpc2FibGVkT3B0aW9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIF9vcHRpb25zOiBBcnJheTxhbnk+ID0gW107XG4gIHB1YmxpYyBhY3RpdmVUaWxlOiBhbnkgPSBudWxsO1xuICBwdWJsaWMgZm9jdXNlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIG1vZGVsOiBhbnk7XG4gIG9uTW9kZWxDaGFuZ2U6IEZ1bmN0aW9uID0gKCkgPT4ge307XG4gIG9uTW9kZWxUb3VjaGVkOiBGdW5jdGlvbiA9ICgpID0+IHt9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZiwgcHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIHB1YmxpYyBzZXRGb2N1cyhmb2N1czogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZm9jdXNlZCA9IGZvY3VzO1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIHRoaXMubmFtZSA9IHRoaXMubmFtZSB8fCAnJztcbiAgICB0aGlzLnNldHVwT3B0aW9ucygpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZS5vcHRpb25zICYmIGNoYW5nZS5vcHRpb25zLmN1cnJlbnRWYWx1ZSAmJiAhY2hhbmdlLm9wdGlvbnMuZmlyc3RDaGFuZ2UpIHtcbiAgICAgIHRoaXMubmFtZSA9IHRoaXMubmFtZSB8fCAnJztcbiAgICAgIHRoaXMuX29wdGlvbnMgPSBbXTtcbiAgICAgIHRoaXMuc2V0dXBPcHRpb25zKCk7XG4gICAgfVxuICB9XG5cbiAgc2V0dXBPcHRpb25zKCkge1xuICAgIGlmICh0aGlzLm9wdGlvbnMgJiYgdGhpcy5vcHRpb25zLmxlbmd0aCAmJiAodGhpcy5vcHRpb25zWzBdLnZhbHVlID09PSB1bmRlZmluZWQgfHwgdGhpcy5vcHRpb25zWzBdLnZhbHVlID09PSBudWxsKSkge1xuICAgICAgdGhpcy5fb3B0aW9ucyA9IHRoaXMub3B0aW9ucy5tYXAoKHgpID0+IHtcbiAgICAgICAgY29uc3QgaXRlbSA9IHsgdmFsdWU6IHgsIGxhYmVsOiB4LCBjaGVja2VkOiB0aGlzLm1vZGVsID09PSB4IH07XG4gICAgICAgIGlmIChpdGVtLmNoZWNrZWQpIHtcbiAgICAgICAgICB0aGlzLnNldFRpbGUoaXRlbSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fb3B0aW9ucyA9IHRoaXMub3B0aW9ucy5tYXAoKHgpID0+IHtcbiAgICAgICAgeC5jaGVja2VkID0gdGhpcy5tb2RlbCA9PT0geC52YWx1ZSB8fCAodGhpcy5tb2RlbCAmJiB0aGlzLm1vZGVsLmlkID09PSB4LnZhbHVlKTtcbiAgICAgICAgaWYgKHguY2hlY2tlZCkge1xuICAgICAgICAgIHRoaXMuc2V0VGlsZSh4KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geDtcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHNlbGVjdChldmVudCwgaXRlbSkge1xuICAgIGlmIChldmVudCkge1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIGlmICghaXRlbS5kaXNhYmxlZCkge1xuICAgICAgaWYgKGl0ZW0uY2hlY2tlZCkge1xuICAgICAgICB0aGlzLm9uU2VsZWN0ZWRPcHRpb25DbGljay5lbWl0KGl0ZW0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGZvciAoY29uc3Qgb3B0aW9uIG9mIHRoaXMuX29wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9uLmNoZWNrZWQgPSBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgaXRlbS5jaGVja2VkID0gIWl0ZW0uY2hlY2tlZDtcbiAgICAgIHRoaXMub25DaGFuZ2UuZW1pdChpdGVtLnZhbHVlKTtcbiAgICAgIHRoaXMub25Nb2RlbENoYW5nZShpdGVtLnZhbHVlKTtcbiAgICAgIHRoaXMuc2V0VGlsZShpdGVtKTtcbiAgICAgIHRoaXMubW9kZWwgPSBpdGVtLnZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9uRGlzYWJsZWRPcHRpb25DbGljay5lbWl0KGl0ZW0pO1xuICAgIH1cbiAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHNldFRpbGUoaXRlbSkge1xuICAgIGlmIChpdGVtKSB7XG4gICAgICB0aGlzLmFjdGl2ZVRpbGUgPSBpdGVtLnZhbHVlO1xuICAgICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgd3JpdGVWYWx1ZShtb2RlbDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5tb2RlbCA9IG1vZGVsO1xuICAgIGlmICghSGVscGVycy5pc0JsYW5rKG1vZGVsKSkge1xuICAgICAgdGhpcy5zZXR1cE9wdGlvbnMoKTtcbiAgICB9XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBGdW5jdGlvbik6IHZvaWQge1xuICAgIHRoaXMub25Nb2RlbENoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IEZ1bmN0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5vbk1vZGVsVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShkaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBkaXNhYmxlZDtcbiAgfVxufVxuIl19
@@ -528,7 +528,7 @@ class NovoDateRangeFormatDirective extends IMaskDirective {
528
528
  }
529
529
  normalize(value) {
530
530
  const pattern = this.labels.dateFormat.toUpperCase();
531
- return DateUtil.format(DateUtil.parse(value), pattern);
531
+ return DateUtil.format(value ? DateUtil.parse(value) : null, pattern);
532
532
  }
533
533
  formatAsIso(value) {
534
534
  if (!value)
@@ -556,6 +556,13 @@ class NovoDateRangeFormatDirective extends IMaskDirective {
556
556
  return this.normalize(source);
557
557
  }
558
558
  writeValue(value) {
559
+ if (this['_initialValue'] && value === this['_initialValue']) {
560
+ // if this call is coming from the super class, skip through.
561
+ // If we ever wanted to reduce the need for this hack/workaround, we could refactor
562
+ // IMaskDirective to exist as a child portion of DateRangeFormatDirective.
563
+ super.writeValue(value);
564
+ return;
565
+ }
559
566
  const formattedValue = this.formatValue(value);
560
567
  if (formattedValue !== this.maskValue) {
561
568
  super.writeValue(this.formatValue(value));
@@ -759,7 +766,7 @@ class NovoDateTimeFormatDirective extends IMaskDirective {
759
766
  }
760
767
  normalize(value) {
761
768
  const pattern = this.labels.dateFormat.toUpperCase();
762
- return DateUtil.format(DateUtil.parse(value), pattern);
769
+ return DateUtil.format(value ? DateUtil.parse(value) : null, pattern);
763
770
  }
764
771
  formatAsIso(date) {
765
772
  if (date && isValid(date)) {
@@ -1 +1 @@
1
- {"version":3,"file":"novo-elements-elements-field.mjs","sources":["../../../projects/novo-elements/src/elements/field/error/error.ts","../../../projects/novo-elements/src/elements/field/error/error.html","../../../projects/novo-elements/src/elements/field/field-control.ts","../../../projects/novo-elements/src/elements/field/hint/hint.ts","../../../projects/novo-elements/src/elements/field/hint/hint.html","../../../projects/novo-elements/src/elements/field/field.ts","../../../projects/novo-elements/src/elements/field/field.html","../../../projects/novo-elements/src/elements/field/fieldset.ts","../../../projects/novo-elements/src/elements/field/fieldset.html","../../../projects/novo-elements/src/elements/field/formats/base-format.ts","../../../projects/novo-elements/src/elements/field/formats/date-format.ts","../../../projects/novo-elements/src/elements/field/formats/date-range-format.ts","../../../projects/novo-elements/src/elements/field/formats/date-time-format.ts","../../../projects/novo-elements/src/elements/field/formats/time-format.ts","../../../projects/novo-elements/src/elements/field/input.ts","../../../projects/novo-elements/src/elements/field/picker.directive.ts","../../../projects/novo-elements/src/elements/field/toggle/picker-toggle.component.ts","../../../projects/novo-elements/src/elements/field/toggle/picker-toggle.component.html","../../../projects/novo-elements/src/elements/field/field.module.ts","../../../projects/novo-elements/src/elements/field/novo-elements-elements-field.ts"],"sourcesContent":["// NG2\nimport { Component, OnInit } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Component({\n selector: 'novo-error',\n templateUrl: './error.html',\n styleUrls: ['./error.scss'],\n})\nexport class NovoErrorElement implements OnInit {\n constructor(private sanitizer: DomSanitizer) {}\n\n ngOnInit(): any {}\n}\n","<ng-content></ng-content>","import { Directive } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { Observable } from 'rxjs';\n\n/** An interface which allows a control to work inside of a `NovoField`. */\n@Directive()\nexport abstract class NovoFieldControl<T> {\n /** The value of the control. */\n value: T | null;\n\n /** The last key pressed. */\n lastKeyValue: string | null;\n\n /** The last cursor position. */\n lastCaretPosition: number | null;\n\n /**\n * Stream that emits whenever the state of the control changes such that the parent `NovoField`\n * needs to run change detection.\n */\n readonly stateChanges: Observable<void>;\n\n /** The element ID for this control. */\n readonly id: string;\n\n /** The placeholder for this control. */\n readonly placeholder: string;\n\n /** Gets the NgControl for this control. */\n readonly ngControl: NgControl | null;\n\n /** Whether the control is focused. */\n readonly focused: boolean;\n\n /** Whether the control is empty. */\n readonly empty: boolean;\n\n /** Whether the `NovoField` label should try to float. */\n // readonly shouldLabelFloat: boolean;\n // readonly shouldFieldHaveUnderline: boolean;\n\n /** Whether the control is required. */\n readonly required: boolean;\n\n /** Whether the control is disabled. */\n readonly disabled: boolean;\n\n /** Whether the control is in an error state. */\n readonly errorState: boolean;\n\n /** Whether the control can have multiple values. */\n readonly multiple?: boolean;\n /**\n * An optional name for the control type that can be used to distinguish `novo-form-field` elements\n * based on their control type. The form field will add a class,\n * `novo-form-field-type-{{controlType}}` to its root element.\n */\n readonly controlType?: string;\n\n /**\n * Whether the input is currently in an autofilled state. If property is not present on the\n * control it is assumed to be false.\n */\n readonly autofilled?: boolean;\n\n /** Sets the list of element IDs that currently describe this control. */\n abstract setDescribedByIds(ids: string[]): void;\n\n /** Handles a click on the control's container. */\n abstract onContainerClick(event: MouseEvent): void;\n\n abstract focus(options?: FocusOptions): void;\n}\n","// NG2\nimport { Component, Input, OnInit } from '@angular/core';\n\nlet nextUniqueId = 0;\n@Component({\n selector: 'novo-hint',\n templateUrl: './hint.html',\n styleUrls: ['./hint.scss'],\n host: {\n class: 'novo-hint',\n '[class.novo-field-hint-end]': 'align === \"end\"',\n '[attr.id]': 'id',\n // Remove align attribute to prevent it from interfering with layout.\n '[attr.align]': 'null',\n },\n})\nexport class NovoHintElement implements OnInit {\n /** Whether to align the hint label at the start or end of the line. */\n @Input() align: 'start' | 'end' = 'start';\n\n /** Unique ID for the hint. Used for the aria-describedby on the form field control. */\n @Input() id: string = `novo-hint-${nextUniqueId++}`;\n\n ngOnInit(): any {}\n}\n","<ng-content></ng-content>","// NG2\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n InjectionToken,\n Input,\n OnDestroy,\n Output,\n QueryList,\n ViewChild,\n} from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { fromEvent, Subject, Subscription } from 'rxjs';\nimport { startWith, takeUntil } from 'rxjs/operators';\nimport { NovoLabel, HasOverlay, NOVO_OVERLAY_CONTAINER } from 'novo-elements/elements/common';\nimport { NovoErrorElement } from './error/error';\nimport { NovoFieldControl } from './field-control';\nimport { NovoHintElement } from './hint/hint';\n\n@Directive({ selector: '[novoPrefix]' })\nexport class NovoFieldPrefixDirective {}\n@Directive({ selector: '[novoSuffix]' })\nexport class NovoFieldSuffixDirective {}\n\nconst NOVO_INPUT_UNDERLINED_TYPES = [\n 'text',\n 'date',\n 'time',\n 'datetime-local',\n 'password',\n 'email',\n 'tel',\n 'select',\n 'textarea',\n 'number',\n 'novo-chip-list',\n 'chip-list',\n];\nexport const NOVO_FORM_FIELD = new InjectionToken<NovoFieldElement>('NovoFormField');\n\n@Component({\n selector: 'novo-field',\n templateUrl: './field.html',\n styleUrls: ['./field.scss', './field-standard.scss', './field-fill.scss', './field-outline.scss', './field-list.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'novo-field',\n '[class.novo-field-layout-horizontal]': 'layout==\"horizontal\"',\n '[class.novo-field-layout-vertical]': 'layout==\"vertical\"',\n '[class.novo-field-appearance-standard]': 'appearance == \"standard\"',\n '[class.novo-field-appearance-fill]': 'appearance == \"fill\"',\n '[class.novo-field-appearance-outline]': 'appearance == \"outline\"',\n '[class.novo-field-appearance-list]': 'appearance == \"list\"',\n '[class.novo-field-appearance-underlined]': '_isUnderlinedInput()',\n '[class.novo-field-invalid]': '_control.errorState',\n '[class.novo-field-has-label]': '_hasLabel()',\n '[class.novo-field-no-label]': '!_hasLabel()',\n // '[class.novo-field-hide-placeholder]': '_hideControlPlaceholder()',\n '[class.novo-field-disabled]': '_control.disabled',\n '[class.novo-field-autofilled]': '_control.autofilled',\n '[class.novo-focused]': '_control.focused',\n // '[class.novo-accent]': 'color == \"accent\"',\n // '[class.novo-warn]': 'color == \"warn\"',\n '[class.ng-untouched]': '_shouldForward(\"untouched\")',\n '[class.ng-touched]': '_shouldForward(\"touched\")',\n '[class.ng-pristine]': '_shouldForward(\"pristine\")',\n '[class.ng-dirty]': '_shouldForward(\"dirty\")',\n '[class.ng-valid]': '_shouldForward(\"valid\")',\n '[class.ng-invalid]': '_shouldForward(\"invalid\")',\n '[class.ng-pending]': '_shouldForward(\"pending\")',\n },\n providers: [{ provide: NOVO_FORM_FIELD, useExisting: NovoFieldElement }],\n})\nexport class NovoFieldElement implements AfterContentInit, OnDestroy {\n private _labelClicks = Subscription.EMPTY;\n\n // @ViewChild('connectionContainer') _connectionContainerRef: ElementRef;\n @ViewChild('inputContainer') _inputContainerRef: ElementRef;\n // @ViewChild('label') private _label: ElementRef<HTMLElement>;\n\n @ContentChild(NovoLabel) _labelElement: NovoLabel;\n @ContentChildren(NovoHintElement) _hintElements: QueryList<NovoHintElement>;\n @ContentChildren(NovoErrorElement) _errorElements: QueryList<NovoErrorElement>;\n @ContentChildren(NovoFieldPrefixDirective) _prefixElements: QueryList<NovoFieldPrefixDirective>;\n @ContentChildren(NovoFieldSuffixDirective) _suffixElements: QueryList<NovoFieldSuffixDirective>;\n @ContentChildren(NOVO_OVERLAY_CONTAINER) _overlayElements: QueryList<HasOverlay>;\n\n @ContentChild(NovoFieldControl) _control: NovoFieldControl<any>;\n\n @Input() layout: 'horizontal' | 'vertical' = 'vertical';\n @Input() appearance: 'standard' | 'outline' | 'fill' | 'list' = 'standard';\n /**\n * When this field has a picker element, express which element it should be parented to\n */\n @Input() customOverlayOrigin: ElementRef;\n\n @Input()\n width: string;\n\n private _destroyed = new Subject<void>();\n\n @Output() valueChanges: EventEmitter<any> = new EventEmitter();\n @Output() stateChanges: EventEmitter<void> = new EventEmitter();\n\n constructor(public _elementRef: ElementRef, private _changeDetectorRef: ChangeDetectorRef) {}\n /**\n * Gets an ElementRef for the element that a overlay attached to the form-field should be\n * positioned relative to.\n */\n getConnectedOverlayOrigin(): ElementRef {\n return this.customOverlayOrigin || this._inputContainerRef || this._elementRef;\n }\n\n ngAfterContentInit(): any {\n this._validateControlChild();\n\n const control = this._control;\n if (control.controlType) {\n this._elementRef.nativeElement.classList.add(`novo-field-type-${control.controlType}`);\n this._elementRef.nativeElement.setAttribute('data-control-type', control.controlType);\n }\n\n if (control.id) {\n this._elementRef.nativeElement.setAttribute('data-control-id', control.id);\n }\n\n if (control.ngControl?.name) {\n this._elementRef.nativeElement.setAttribute('data-control-key', control.ngControl.name);\n }\n\n // Subscribe to changes in the child control state in order to update the form field UI.\n // tslint:disable-next-line:deprecation\n control.stateChanges.pipe(startWith(null)).subscribe(() => {\n this.stateChanges.next();\n this._changeDetectorRef.markForCheck();\n });\n\n // Run change detection if the value changes.\n if (control.ngControl && control.ngControl.valueChanges) {\n control.ngControl.valueChanges.pipe(takeUntil(this._destroyed)).subscribe((v) => {\n this.valueChanges.next(v);\n this._changeDetectorRef.markForCheck();\n });\n }\n\n if (this._hasLabel()) {\n this._labelClicks = fromEvent(this._labelElement.nativeElement, 'click').subscribe(() => this._control.focus());\n }\n }\n\n ngOnDestroy() {\n this._destroyed.next();\n this._destroyed.complete();\n this._labelClicks.unsubscribe();\n }\n\n /** Throws an error if the form field's control is missing. */\n protected _validateControlChild() {\n if (!this._control) {\n throw new Error('Missing Novo Control');\n }\n }\n\n public blurEventIsInField(blurEvt: FocusEvent): boolean {\n return this._elementRef.nativeElement.contains(blurEvt.relatedTarget) || this._overlayElements.some(hasOverlay => hasOverlay.overlay?.isBlurRecipient(blurEvt));\n }\n\n @HostListener('click', ['$event'])\n _handleContainerClick(evt: MouseEvent) {\n this._control.onContainerClick(evt);\n }\n\n _isUnderlinedInput(): boolean {\n return NOVO_INPUT_UNDERLINED_TYPES.includes(this._control.controlType);\n }\n\n /** Determines whether to display hints or errors. */\n _getDisplayedMessages(): 'error' | 'hint' {\n return this._errorElements && this._errorElements.length > 0 && this._control.errorState ? 'error' : 'hint';\n }\n\n /** Determines whether a class from the NgControl should be forwarded to the host element. */\n _shouldForward(prop: keyof NgControl): boolean {\n const ngControl = this._control ? this._control.ngControl : null;\n return ngControl && ngControl[prop];\n }\n\n _hasLabel() {\n return !!this._labelElement;\n }\n}\n","<div class=\"novo-field-label\">\n <ng-content select=\"novo-label\"></ng-content>\n</div>\n<div class=\"novo-field-input\" [style.width]=\"width\" #inputContainer>\n <div class=\"novo-field-prefix\">\n <ng-content select=\"[novoPrefix]\"></ng-content>\n </div>\n <div class=\"novo-field-infix\">\n <ng-content></ng-content>\n </div>\n <div class=\"novo-field-suffix\">\n <ng-content select=\"[novoSuffix]\"></ng-content>\n </div>\n</div>\n<div class=\"novo-field-messages\" [ngSwitch]=\"_getDisplayedMessages()\">\n <div class=\"novo-field-hint-wrapper\" *ngSwitchCase=\"'error'\">\n <ng-content select=\"novo-error\"></ng-content>\n </div>\n <div class=\"novo-field-hint-wrapper\" *ngSwitchCase=\"'hint'\">\n <ng-content select=\"novo-hint\"></ng-content>\n <ng-content select=\"novo-hint[align=end]\"></ng-content>\n </div>\n</div>","// NG2\nimport { AfterContentInit, ChangeDetectionStrategy, Component, ContentChildren, HostBinding, Input, QueryList } from '@angular/core';\nimport { BooleanInput } from 'novo-elements/utils';\nimport { NovoFieldElement } from './field';\n\n@Component({\n selector: 'novo-fields',\n templateUrl: './fieldset.html',\n styleUrls: ['./fieldset.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'novo-field',\n '[class.novo-fieldset-appearance-standard]': 'appearance == \"standard\"',\n '[class.novo-fieldset-appearance-fill]': 'appearance == \"fill\"',\n '[class.novo-fieldset-appearance-outline]': 'appearance == \"outline\"',\n '[class.novo-fieldset-appearance-list]': 'appearance == \"list\"',\n // '[class.novo-field-layout-horizontal]': 'layout==\"horizontal\"',\n // '[class.novo-field-layout-vertical]': 'layout==\"vertical\"',\n },\n})\nexport class NovoFieldsElement implements AfterContentInit {\n @ContentChildren(NovoFieldElement)\n _fields: QueryList<NovoFieldElement>;\n\n _layout: 'horizontal' | 'vertical' = 'horizontal';\n @Input() get layout(): any {\n return this._layout;\n }\n set layout(value) {\n if (this._layout !== value) {\n this._layout = value;\n this._updateFieldLayout();\n }\n }\n\n _appearance: 'standard' | 'outline' | 'fill' | 'list' = 'standard';\n @Input() get appearance(): any {\n return this._appearance;\n }\n set appearance(value) {\n if (this._appearance !== value) {\n this._appearance = value;\n this._updateFieldAppearance();\n }\n }\n\n @HostBinding('class.full-width')\n @Input()\n @BooleanInput()\n fullWidth: boolean = false;\n\n ngAfterContentInit(): any {\n this._updateFieldLayout();\n this._updateFieldAppearance();\n }\n\n private _updateFieldLayout(): void {\n if (this._fields) {\n this._fields.forEach((field) => {\n field.layout = this.layout;\n });\n }\n }\n\n private _updateFieldAppearance(): void {\n if (this._fields) {\n this._fields.forEach((field) => {\n field.appearance = this.appearance;\n });\n }\n }\n}\n","<ng-content></ng-content>","import { EventEmitter, InjectionToken } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\n\nexport const NOVO_INPUT_FORMAT = new InjectionToken<NovoInputFormat>('NovoInputFormat');\n\nexport interface NovoInputFormat<T = any> extends ControlValueAccessor {\n valueChange: EventEmitter<any>;\n formatValue(value: T): string;\n}\n\nexport enum DATE_FORMATS {\n DATE = 'date',\n ISO8601 = 'iso8601',\n STRING = 'string',\n}\n","import { Directive, ElementRef, EventEmitter, forwardRef, Inject, Input, Optional, Renderer2 } from '@angular/core';\nimport { COMPOSITION_BUFFER_MODE, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IMaskDirective, IMaskFactory } from 'angular-imask';\nimport { isValid } from 'date-fns';\nimport { MaskedRange } from 'imask';\nimport { NovoLabelService } from 'novo-elements/services';\nimport { DateUtil } from 'novo-elements/utils';\nimport { DATE_FORMATS, NOVO_INPUT_FORMAT } from './base-format';\n\nexport const DATEFORMAT_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NovoDateFormatDirective),\n multi: true,\n};\n\n@Directive({\n selector: 'input[dateFormat]',\n host: {\n class: 'novo-date-format',\n },\n providers: [DATEFORMAT_VALUE_ACCESSOR, { provide: NOVO_INPUT_FORMAT, useExisting: NovoDateFormatDirective }],\n})\nexport class NovoDateFormatDirective extends IMaskDirective<any> {\n valueChange: EventEmitter<any> = new EventEmitter();\n\n @Input() dateFormat: DATE_FORMATS = DATE_FORMATS.DATE;\n\n constructor(private labels: NovoLabelService) {\n super();\n const dateFormat = this.labels.dateFormat.toUpperCase();\n this.unmask = 'typed' as unknown as false; // typing is to work around angular-imask bug\n this.imask = {\n mask: Date,\n pattern: 'm{/}`d{/}`Y',\n overwrite: true,\n autofix: true,\n lazy: false,\n min: new Date(1900, 0, 1),\n max: new Date(2100, 0, 1),\n prepare: (str) => str.toUpperCase(),\n format: (date) => this.formatValue(date),\n parse: (str) => DateUtil.parse(str),\n blocks: {\n d: {\n mask: MaskedRange,\n placeholderChar: 'D',\n from: 1,\n to: 31,\n maxLength: 2,\n },\n m: {\n mask: MaskedRange,\n placeholderChar: 'M',\n from: 1,\n to: 12,\n maxLength: 2,\n },\n Y: {\n mask: MaskedRange,\n placeholderChar: 'Y',\n from: 1900,\n to: 9999,\n },\n },\n };\n }\n\n normalize(value: string) {\n const pattern = this.labels.dateFormat.toUpperCase();\n if (!value) {\n return \"\";\n }\n return DateUtil.format(DateUtil.parse(value), pattern);\n }\n\n formatAsIso(date: Date): string {\n if (date && isValid(date)) {\n return date.toISOString().slice(0, 10);\n }\n return null;\n }\n\n formatValue(value: any): string {\n if (value == null) return '';\n // Use `parse` because it keeps dates in locale\n const date = DateUtil.parse(value);\n if (isValid(date)) {\n const dateFormat = this.labels.dateFormat.toUpperCase();\n return DateUtil.format(date, dateFormat);\n }\n return this.normalize(value);\n }\n\n writeValue(value: any) {\n super.writeValue(this.formatValue(value));\n }\n\n registerOnChange(fn: (_: any) => void): void {\n this.onChange = (date: any) => {\n let formatted = date;\n switch (this.dateFormat) {\n case DATE_FORMATS.ISO8601:\n formatted = this.formatAsIso(date);\n break;\n case DATE_FORMATS.STRING:\n formatted = this.formatValue(date);\n break;\n default:\n formatted = date;\n break;\n }\n this.valueChange.emit(date);\n fn(formatted);\n };\n }\n}\n","import { Directive, ElementRef, EventEmitter, forwardRef, Inject, Input, Optional, Renderer2 } from '@angular/core';\nimport { COMPOSITION_BUFFER_MODE, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IMaskDirective, IMaskFactory } from 'angular-imask';\nimport { isValid } from 'date-fns';\nimport { MaskedRange } from 'imask';\nimport { NovoLabelService } from 'novo-elements/services';\nimport { DateUtil } from 'novo-elements/utils';\nimport { DATE_FORMATS, NOVO_INPUT_FORMAT } from './base-format';\n\nexport const DATERANGEFORMAT_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NovoDateRangeFormatDirective),\n multi: true,\n};\n\ntype DateRange = {\n startDate: Date;\n endDate: Date;\n};\n\nexport const imaskHaha = {\n mask: 'm{/}`d{/}`Y - m{/}`d{/}`Y',\n overwrite: true,\n autofix: true,\n lazy: false,\n blocks: {\n d: {\n mask: MaskedRange,\n placeholderChar: 'D',\n from: 1,\n to: 31,\n maxLength: 2,\n },\n m: {\n mask: MaskedRange,\n placeholderChar: 'M',\n from: 1,\n to: 12,\n maxLength: 2,\n },\n Y: {\n mask: MaskedRange,\n placeholderChar: 'Y',\n from: 1900,\n to: 9999,\n },\n },\n};\n\n@Directive({\n selector: 'input[dateRangeFormat]',\n host: {\n class: 'novo-date-range-format',\n },\n providers: [DATERANGEFORMAT_VALUE_ACCESSOR, { provide: NOVO_INPUT_FORMAT, useExisting: NovoDateRangeFormatDirective }],\n})\nexport class NovoDateRangeFormatDirective extends IMaskDirective<any> {\n valueChange: EventEmitter<any> = new EventEmitter();\n\n @Input() dateRangeFormat: DATE_FORMATS = DATE_FORMATS.DATE;\n\n constructor(private labels: NovoLabelService) {\n super();\n const dateRangeFormat = this.labels.dateFormat.toUpperCase();\n this.unmask = false;\n this.imask = {\n mask: 'm{/}`d{/}`Y - m{/}`d{/}`Y',\n overwrite: true,\n autofix: true,\n lazy: false,\n blocks: {\n d: {\n mask: MaskedRange,\n placeholderChar: 'D',\n from: 1,\n to: 31,\n maxLength: 2,\n },\n m: {\n mask: MaskedRange,\n placeholderChar: 'M',\n from: 1,\n to: 12,\n maxLength: 2,\n },\n Y: {\n mask: MaskedRange,\n placeholderChar: 'Y',\n from: 1900,\n to: 9999,\n },\n },\n };\n }\n\n normalize(value: string | Date) {\n const pattern = this.labels.dateFormat.toUpperCase();\n return DateUtil.format(DateUtil.parse(value), pattern);\n }\n\n formatAsIso(value: DateRange): string {\n if (!value) return '';\n const { startDate, endDate } = value;\n if (startDate && isValid(startDate) && endDate && isValid(endDate)) {\n const startIso = startDate.toISOString().slice(0, 10);\n const endIso = endDate.toISOString().slice(0, 10);\n return `${startIso}/${endIso}`;\n }\n return null;\n }\n\n formatValue(value: DateRange): string {\n if (!value) return '';\n const { startDate, endDate } = value;\n return `${this.formatDate(startDate)} - ${this.formatDate(endDate)}`;\n }\n\n formatDate(source: Date | string) {\n const date = DateUtil.parse(source);\n if (isValid(date)) {\n const dateRangeFormat = this.labels.dateFormat.toUpperCase();\n return DateUtil.format(date, dateRangeFormat);\n }\n return this.normalize(source);\n }\n\n writeValue(value: any) {\n const formattedValue = this.formatValue(value);\n if (formattedValue !== this.maskValue) {\n super.writeValue(this.formatValue(value));\n this.onChange(this.formatValue(value));\n }\n }\n\n registerOnChange(fn: (_: any) => void): void {\n this.onChange = (input: any) => {\n if (this.validate(input)) {\n const dates = this.extractDatesFromInput(input);\n let formatted: DateRange | string = dates;\n switch (this.dateRangeFormat) {\n case DATE_FORMATS.ISO8601:\n formatted = this.formatAsIso(dates);\n break;\n case DATE_FORMATS.STRING:\n formatted = this.formatValue(dates);\n break;\n default:\n formatted = dates;\n break;\n }\n this.valueChange.emit(dates);\n fn(formatted);\n }\n };\n }\n\n extractDatesFromInput(value) {\n const [startStr, endStr] = value.split(' - ');\n const startDate = DateUtil.parse(startStr);\n const endDate = DateUtil.parse(endStr);\n return { startDate, endDate };\n }\n\n validate(dateStr: string) {\n const { startDate, endDate } = this.extractDatesFromInput(dateStr);\n return isValid(startDate) && isValid(endDate);\n }\n}\n","import { Directive, ElementRef, EventEmitter, Inject, Input, OnChanges, Optional, Renderer2, SimpleChanges, forwardRef } from '@angular/core';\nimport { COMPOSITION_BUFFER_MODE, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IMaskDirective, IMaskFactory } from 'angular-imask';\nimport { isValid } from 'date-fns';\nimport { MaskedEnum, MaskedRange } from 'imask';\nimport { NovoLabelService } from 'novo-elements/services';\nimport { DateUtil, Key } from 'novo-elements/utils';\nimport { DATE_FORMATS, NOVO_INPUT_FORMAT, NovoInputFormat } from './base-format';\n\nexport const DATETIMEFORMAT_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NovoDateTimeFormatDirective),\n multi: true,\n};\n\n@Directive({\n selector: 'input[dateTimeFormat]',\n host: {\n class: 'novo-date-time-format',\n '(input)': '_checkInput($event)',\n '(blur)': '_handleBlur($event)',\n '(keydown)': '_handleKeydown($event)',\n },\n providers: [DATETIMEFORMAT_VALUE_ACCESSOR, { provide: NOVO_INPUT_FORMAT, useExisting: NovoDateTimeFormatDirective }],\n})\nexport class NovoDateTimeFormatDirective extends IMaskDirective<any> implements NovoInputFormat, OnChanges {\n valueChange: EventEmitter<any> = new EventEmitter();\n\n @Input() military: boolean = false;\n @Input() dateTimeFormat: DATE_FORMATS = DATE_FORMATS.DATE;\n\n constructor(private labels: NovoLabelService) {\n super();\n this.initFormatOptions();\n }\n\n initFormatOptions() {\n const amFormat = this.labels.timeFormatAM.toUpperCase();\n const pmFormat = this.labels.timeFormatPM.toUpperCase();\n this.unmask = 'typed' as unknown as false; // typing is to work around angular-imask bug\n this.imask = {\n mask: Date,\n pattern: this.military ? 'm{/}`d{/}`Y, HH:mm' : 'm{/}`d{/}`Y, HH:mm aa',\n overwrite: true,\n autofix: true,\n lazy: false,\n min: new Date(1900, 0, 1),\n max: new Date(2100, 0, 1),\n prepare: (str) => str.toUpperCase(),\n format: (date) => this.formatValue(date),\n parse: (str) => DateUtil.parse(str),\n blocks: {\n d: {\n mask: MaskedRange,\n placeholderChar: 'D',\n from: 1,\n to: 31,\n maxLength: 2,\n },\n m: {\n mask: MaskedRange,\n placeholderChar: 'M',\n from: 1,\n to: 12,\n maxLength: 2,\n },\n Y: {\n mask: MaskedRange,\n placeholderChar: 'Y',\n from: 1900,\n to: 9999,\n },\n HH: {\n mask: MaskedRange,\n placeholderChar: '-',\n maxLength: 2,\n from: 0,\n to: 23,\n },\n hh: {\n mask: MaskedRange,\n placeholderChar: '-',\n maxLength: 2,\n from: 1,\n to: 12,\n },\n mm: {\n mask: MaskedRange,\n placeholderChar: '-',\n maxLength: 2,\n from: 0,\n to: 59,\n },\n ss: {\n mask: MaskedRange,\n placeholderChar: '-',\n maxLength: 2,\n from: 0,\n to: 59,\n },\n aa: {\n mask: MaskedEnum,\n placeholderChar: '-',\n enum: ['AM', 'PM', 'am', 'pm', amFormat, pmFormat],\n },\n },\n };\n }\n \n ngOnChanges(changes: SimpleChanges): void {\n if (Object.keys(changes).some((key) => ['military', 'dateFormat'].includes(key))) {\n this.initFormatOptions();\n }\n }\n\n _checkInput(event: InputEvent): void {\n if (document.activeElement === event.target) {\n const text = (event.target as HTMLInputElement).value;\n const dateTime = text.split(', ');\n const hour = dateTime[1].slice(0, 2);\n if ((this.military && Number(dateTime[1][0]) > 2) || (!this.military && Number(dateTime[1][0]) > 1)) {\n event.preventDefault();\n const value = `0${dateTime[1]}`;\n (event.target as HTMLInputElement).value = value;\n // this.onChange(value);\n }\n if (!this.military) {\n const input = dateTime[1].substr(5, 4).replace(/\\-/g, '').trim().slice(0, 2);\n const timePeriod = this.imask.blocks.aa.enum.find((it) => it[0] === input[0]);\n if (timePeriod) {\n (event.target as HTMLInputElement).value = `${dateTime[0]}, ${dateTime[1].slice(0, 5)} ${timePeriod}`;\n }\n if ((event.target as HTMLInputElement).selectionStart >= 3 && this.hourOneFormatRequired(hour)) {\n (event.target as HTMLInputElement).value = `${dateTime[0]}, 01:${(event.target as HTMLInputElement).value.slice(\n 3,\n (event.target as HTMLInputElement).value.length,\n )}`;\n }\n }\n }\n }\n\n _handleBlur(event: FocusEvent): void {\n const text = (event.target as HTMLInputElement).value;\n const dateTime = text.split(', ');\n const hour: string = dateTime[1].slice(0, 2);\n if (!this.military) {\n const input = dateTime[1].substr(5, 4).replace(/\\-/g, '').trim().slice(0, 2);\n const timePeriod = this.imask.blocks.aa.enum.find((it) => it[0] === input[0]);\n if (this.hourOneFormatRequired(hour)) {\n (event.target as HTMLInputElement).value = `${dateTime[0]}, 01:${dateTime[1].slice(3, dateTime[1].length)}`;\n }\n if (!timePeriod) {\n (event.target as HTMLInputElement).value = `${dateTime[0]}, ${dateTime[1].slice(0, 5)} --`;\n }\n }\n }\n\n _handleKeydown(event: KeyboardEvent): void {\n const input = event.target as HTMLInputElement;\n const dateTime = input.value.split(', ');\n const hour: string = dateTime[1].slice(0, 2);\n\n if (event.key === Key.Backspace && input.selectionStart === dateTime[1].length) {\n (event.target as HTMLInputElement).value = `${dateTime[1].slice(0, 5)} --`;\n } else if (event.key === Key.Tab && input.selectionStart <= 2 && this.hourOneFormatRequired(hour)) {\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n input.value = `${dateTime[0]}, 01:${dateTime[1].slice(3, dateTime[1].length)}`;\n input.setSelectionRange(15, 15);\n } else if (event.key === Key.ArrowRight && input.selectionStart >= 2 && this.hourOneFormatRequired(hour)) {\n input.value = `${dateTime[0]}, 01:${dateTime[1].slice(3, dateTime[1].length)}`;\n input.setSelectionRange(14, 14);\n }\n }\n\n normalize(value: string) {\n const pattern = this.labels.dateFormat.toUpperCase();\n return DateUtil.format(DateUtil.parse(value), pattern);\n }\n\n formatAsIso(date: Date): string {\n if (date && isValid(date)) {\n return date.toISOString();\n }\n return null;\n }\n\n convertTime12to24(time12h: string) {\n const pmFormat = this.labels.timeFormatPM.toUpperCase();\n const [time, meridian] = time12h.split(' ');\n let [hours, minutes] = time.split(':');\n if (hours === '12') {\n hours = '00';\n }\n if (['PM', pmFormat].includes(meridian)) {\n hours = `${parseInt(hours, 10) + 12}`.padStart(2, '0');\n }\n return `${hours}:${minutes}`;\n }\n\n convertTime24to12(time24h: string) {\n if (time24h.length === 5) {\n const date = DateUtil.parse(`2020-01-01T${time24h}`);\n return DateUtil.format(date, 'hh:mm A');\n }\n return time24h;\n }\n\n formatValue(value: any): string {\n if (value == null) return '';\n // Use `parse` because it keeps dates in locale\n const date = DateUtil.parse(value);\n if (isValid(date)) {\n const dateFormat = `${this.labels.dateFormat.toUpperCase()}, ${this.military ? 'HH:mm' : 'hh:mm A'}`;\n return DateUtil.format(date, dateFormat);\n }\n return this.normalize(value);\n }\n\n writeValue(value: any) {\n super.writeValue(this.formatValue(value));\n }\n\n registerOnChange(fn: (_: any) => void): void {\n this.onChange = (date: any) => {\n let formatted = date;\n switch (this.dateTimeFormat) {\n case DATE_FORMATS.ISO8601:\n formatted = this.formatAsIso(date);\n break;\n case DATE_FORMATS.STRING:\n formatted = this.formatValue(date);\n break;\n default:\n formatted = date;\n break;\n }\n this.valueChange.emit(date);\n fn(formatted);\n };\n }\n\n hourOneFormatRequired(hourInput: string): boolean {\n return hourInput === '-1' || hourInput === '1-';\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n OnChanges,\n Optional,\n Renderer2,\n SimpleChanges,\n} from '@angular/core';\nimport { COMPOSITION_BUFFER_MODE, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IMaskDirective, IMaskFactory } from 'angular-imask';\nimport { isValid } from 'date-fns';\nimport { MaskedEnum, MaskedRange } from 'imask';\nimport { NovoLabelService } from 'novo-elements/services';\nimport { DateUtil, Key } from 'novo-elements/utils';\nimport { NOVO_INPUT_FORMAT, NovoInputFormat } from './base-format';\n\nexport const TIMEFORMAT_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NovoTimeFormatDirective),\n multi: true,\n};\n\nexport enum TIME_FORMATS {\n DATE = 'date',\n ISO8601 = 'iso8601',\n STRING = 'string',\n}\n\n@Directive({\n selector: 'input[timeFormat]',\n host: {\n class: 'novo-time-format',\n '(input)': '_checkInput($event)',\n '(blur)': '_handleBlur($event)',\n '(keydown)': '_handleKeydown($event)',\n },\n providers: [TIMEFORMAT_VALUE_ACCESSOR, { provide: NOVO_INPUT_FORMAT, useExisting: NovoTimeFormatDirective }],\n})\nexport class NovoTimeFormatDirective extends IMaskDirective<any> implements NovoInputFormat, AfterViewInit, OnChanges {\n valueChange: EventEmitter<any> = new EventEmitter();\n\n @Input() military: boolean = false;\n @Input() timeFormat: TIME_FORMATS = TIME_FORMATS.DATE;\n\n constructor(private labels: NovoLabelService, private cdr: ChangeDetectorRef) {\n super();\n this.initFormatOptions();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (Object.keys(changes).some((key) => ['military', 'timeFormat'].includes(key))) {\n this.initFormatOptions();\n }\n }\n\n initFormatOptions() {\n // const pattern = this.military ? 'HH:mm' : 'hh:mm A';\n const amFormat = this.labels.timeFormatAM.toUpperCase();\n const pmFormat = this.labels.timeFormatPM.toUpperCase();\n this.unmask = 'typed' as unknown as false; // typing is to work around angular-imask bug\n this.imask = {\n mask: Date,\n pattern: this.military ? 'HH:mm' : 'hh:mm aa',\n overwrite: true,\n autofix: true,\n lazy: false,\n min: new Date(1970, 0, 1),\n max: new Date(2100, 0, 1),\n prepare: (str) => str.toUpperCase(),\n format: (value) => this.formatValue(value),\n parse: (str) => {\n const time = this.convertTime12to24(str);\n return DateUtil.parse(`${DateUtil.format(Date.now(), 'YYYY-MM-DD')}T${time}`);\n },\n blocks: {\n HH: {\n mask: MaskedRange,\n placeholderChar: '-',\n maxLength: 2,\n from: 0,\n to: 23,\n },\n hh: {\n mask: MaskedRange,\n placeholderChar: '-',\n maxLength: 2,\n from: 1,\n to: 12,\n },\n mm: {\n mask: MaskedRange,\n placeholderChar: '-',\n maxLength: 2,\n from: 0,\n to: 59,\n },\n aa: {\n mask: MaskedEnum,\n placeholderChar: '-',\n enum: ['AM', 'PM', 'am', 'pm', amFormat, pmFormat],\n },\n },\n };\n }\n\n _checkInput(event: InputEvent): void {\n if (document.activeElement === event.target) {\n const text = (event.target as HTMLInputElement).value;\n const hour = text.slice(0, 2);\n if ((this.military && Number(text[0]) > 2) || (!this.military && Number(text[0]) > 1)) {\n event.preventDefault();\n const value = `0${text}`;\n (event.target as HTMLInputElement).value = value;\n // this.onChange(value);\n }\n if (!this.military) {\n const input = text.substr(5, 4).replace(/\\-/g, '').trim().slice(0, 2);\n const timePeriod = this.imask.blocks.aa.enum.find((it) => it[0] === input[0]);\n if (timePeriod) {\n (event.target as HTMLInputElement).value = `${text.slice(0, 5)} ${timePeriod}`;\n }\n if ((event.target as HTMLInputElement).selectionStart >= 3 && this.hourOneFormatRequired(hour)) {\n (event.target as HTMLInputElement).value = `01:${(event.target as HTMLInputElement).value.slice(\n 3,\n (event.target as HTMLInputElement).value.length,\n )}`;\n }\n }\n }\n }\n\n _handleBlur(event: FocusEvent): void {\n const text = (event.target as HTMLInputElement).value;\n const hour: string = text.slice(0, 2);\n if (!this.military) {\n const input = text.substr(5, 4).replace(/\\-/g, '').trim().slice(0, 2);\n const timePeriod = this.imask.blocks.aa.enum.find((it) => it[0] === input[0]);\n if (this.hourOneFormatRequired(hour)) {\n (event.target as HTMLInputElement).value = `01:${text.slice(3, text.length)}`;\n }\n if (!timePeriod) {\n (event.target as HTMLInputElement).value = `${text.slice(0, 5)} --`;\n }\n }\n }\n\n _handleKeydown(event: KeyboardEvent): void {\n const input = event.target as HTMLInputElement;\n const hour: string = input.value.slice(0, 2);\n\n if (event.key === Key.Backspace && input.selectionStart === input.value.length) {\n (event.target as HTMLInputElement).value = `${input.value.slice(0, 5)} --`;\n } else if (event.key === Key.Tab && input.selectionStart <= 2 && this.hourOneFormatRequired(hour)) {\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n input.value = `01:${input.value.slice(3, input.value.length)}`;\n input.setSelectionRange(3, 3);\n } else if (event.key === Key.ArrowRight && input.selectionStart >= 2 && this.hourOneFormatRequired(hour)) {\n input.value = `01:${input.value.slice(3, input.value.length)}`;\n input.setSelectionRange(2, 2);\n }\n }\n\n normalize(value: string) {\n if (this.military) {\n return this.convertTime12to24(value);\n }\n return this.convertTime24to12(value);\n }\n\n formatValue(value: any): string {\n const date = DateUtil.parse(value);\n if (isValid(date)) {\n const pattern = this.military ? 'HH:mm' : 'hh:mm A';\n return DateUtil.format(date, pattern);\n }\n return this.normalize(value);\n }\n\n formatAsIso(date: Date): string {\n if (date && isValid(date)) {\n return DateUtil.format(date, 'HH:mm');\n }\n return null;\n }\n\n convertTime12to24(time12h: string) {\n const pmFormat = this.labels.timeFormatPM.toUpperCase();\n const [time, meridian] = time12h.split(' ');\n let [hours, minutes] = time.split(':');\n if (hours === '12') {\n hours = '00';\n }\n if (['PM', pmFormat].includes(meridian)) {\n hours = `${parseInt(hours, 10) + 12}`.padStart(2, '0');\n }\n return `${hours}:${minutes}`;\n }\n\n convertTime24to12(time24h: string) {\n if (time24h.length === 5) {\n const date = DateUtil.parse(`2020-01-01T${time24h}`);\n return DateUtil.format(date, 'hh:mm A');\n }\n return time24h;\n }\n\n writeValue(value: any) {\n super.writeValue(this.formatValue(value));\n }\n\n registerOnChange(fn: (date: any) => void): void {\n this.onChange = (date: any) => {\n let formatted = date;\n switch (this.timeFormat) {\n case TIME_FORMATS.ISO8601:\n formatted = this.formatAsIso(date);\n break;\n case TIME_FORMATS.STRING:\n formatted = this.formatValue(date);\n break;\n default:\n formatted = date;\n break;\n }\n this.valueChange.emit(date);\n fn(formatted);\n };\n }\n\n hourOneFormatRequired(hourInput: string): boolean {\n return hourInput === '-1' || hourInput === '1-';\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { getSupportedInputTypes, Platform } from '@angular/cdk/platform';\nimport { AutofillMonitor } from '@angular/cdk/text-field';\nimport {\n AfterViewInit,\n Directive,\n DoCheck,\n ElementRef,\n HostBinding,\n HostListener,\n Inject,\n InjectionToken,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n Optional,\n Self,\n} from '@angular/core';\nimport { FormGroupDirective, NgControl, NgForm } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { NovoFieldControl } from './field-control';\n\n/**\n * This token is used to inject the object whose value should be set into `NovoInput`. If none is\n * provided, the native `HTMLInputElement` is used. Directives like `MatDatepickerInput` can provide\n * themselves for this token, in order to make `NovoInput` delegate the getting and setting of the\n * value to them.\n */\nexport const NOVO_INPUT_VALUE_ACCESSOR = new InjectionToken<{ value: any }>('NOVO_INPUT_VALUE_ACCESSOR');\n\n// Invalid input type. Using one of these will throw an NovoInputUnsupportedTypeError.\nconst NOVO_INPUT_INVALID_TYPES = ['button', 'checkbox', 'file', 'hidden', 'image', 'radio', 'reset', 'submit'];\n\nlet nextUniqueId = 0;\n\n// Boilerplate for applying mixins to NovoInput.\nclass NovoInputBase {\n constructor(\n public _parentForm: NgForm,\n public _parentFormGroup: FormGroupDirective,\n /** @docs-private */\n public ngControl: NgControl,\n ) {}\n}\n\n/** Directive that allows a native input to work inside a `NovoField`. */\n// tslint:disable: no-conflicting-lifecycle member-ordering\n@Directive({\n selector: `input[novoInput], textarea[novoInput], select[novoInput]`,\n host: {\n class: 'novo-input-element',\n '[attr.id]': 'id',\n '[attr.placeholder]': 'placeholder',\n '[disabled]': 'disabled',\n '[required]': 'required',\n '[attr.readonly]': 'readonly && !_isNativeSelect || null',\n '[attr.aria-invalid]': 'errorState',\n '[attr.aria-required]': 'required.toString()',\n '[attr.autocomplete]': \"'off'\",\n },\n providers: [{ provide: NovoFieldControl, useExisting: NovoInput }],\n})\nexport class NovoInput extends NovoInputBase implements NovoFieldControl<any>, OnChanges, OnDestroy, AfterViewInit, DoCheck {\n protected _uid = `novo-input-${nextUniqueId++}`;\n protected _previousNativeValue: any;\n private _inputValueAccessor: { value: any };\n /** The aria-describedby attribute on the input for improved a11y. */\n @HostBinding('attr.aria-describedby') _ariaDescribedby: string;\n\n /** Whether the component is being rendered on the server. */\n readonly _isServer: boolean;\n\n /** Whether the component is a native html select. */\n readonly _isNativeSelect: boolean;\n\n /** Whether the component is a textarea. */\n readonly _isTextarea: boolean;\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n focused: boolean = false;\n\n errorState: boolean = false;\n\n /** @docs-private Implemented as part of NovoFieldControl. */\n lastKeyValue: string = null;\n /** @docs-private Implemented as part of NovoFieldControl.*/\n lastCaretPosition: number | null;\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n readonly stateChanges: Subject<void> = new Subject<void>();\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n controlType: string = 'novo-input';\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n autofilled = false;\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n @Input()\n get disabled(): boolean {\n if (this.ngControl && this.ngControl.disabled !== null) {\n return this.ngControl.disabled;\n }\n return this._disabled;\n }\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n\n // Browsers may not fire the blur event if the input is disabled too quickly.\n // Reset from here to ensure that the element doesn't become stuck.\n if (this.focused) {\n this.focused = false;\n this.stateChanges.next();\n }\n }\n protected _disabled = false;\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n @Input()\n get id(): string {\n return this._id;\n }\n set id(value: string) {\n this._id = value || this._uid;\n }\n protected _id: string;\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n @Input() placeholder: string;\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n @Input()\n get required(): boolean {\n return this._required;\n }\n set required(value: boolean) {\n this._required = coerceBooleanProperty(value);\n }\n protected _required = false;\n\n /** Input type of the element. */\n @Input()\n get type(): string {\n return this._type;\n }\n set type(value: string) {\n this._type = value || 'text';\n this._validateType();\n\n // When using Angular inputs, developers are no longer able to set the properties on the native\n // input element. To ensure that bindings for `type` work, we need to sync the setter\n // with the native property. Textarea elements don't support the type property or attribute.\n if (!this._isTextarea && getSupportedInputTypes().has(this._type)) {\n (this._elementRef.nativeElement as HTMLInputElement).type = this._type;\n }\n }\n protected _type = 'text';\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n @Input()\n get value(): string {\n return this._inputValueAccessor.value;\n }\n set value(value: string) {\n if (value !== this.value) {\n this._inputValueAccessor.value = value;\n this.stateChanges.next();\n }\n }\n\n /** Whether the element is readonly. */\n @Input()\n get readonly(): boolean {\n return this._readonly;\n }\n set readonly(value: boolean) {\n this._readonly = coerceBooleanProperty(value);\n }\n private _readonly = false;\n\n protected _neverEmptyInputTypes = ['date', 'datetime', 'datetime-local', 'month', 'time', 'week'].filter((t) =>\n getSupportedInputTypes().has(t),\n );\n\n constructor(\n protected _elementRef: ElementRef<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>,\n protected _platform: Platform,\n /** @docs-private */\n @Optional() @Self() public ngControl: NgControl,\n @Optional() _parentForm: NgForm,\n @Optional() _parentFormGroup: FormGroupDirective,\n @Optional() @Self() @Inject(NOVO_INPUT_VALUE_ACCESSOR) inputValueAccessor: any,\n private _autofillMonitor: AutofillMonitor,\n ngZone: NgZone,\n ) {\n super(_parentForm, _parentFormGroup, ngControl);\n\n const element = this._elementRef.nativeElement;\n const nodeName = element.nodeName.toLowerCase();\n\n // If no input value accessor was explicitly specified, use the element as the input value\n // accessor.\n this._inputValueAccessor = inputValueAccessor || element;\n\n this._previousNativeValue = this.value;\n\n // Force setter to be called in case id was not specified.\n this.id = this.id;\n\n // On some versions of iOS the caret gets stuck in the wrong place when holding down the delete\n // key. In order to get around this we need to \"jiggle\" the caret loose. Since this bug only\n // exists on iOS, we only bother to install the listener on iOS.\n if (_platform.IOS) {\n ngZone.runOutsideAngular(() => {\n _elementRef.nativeElement.addEventListener('keyup', (event: Event) => {\n const el = event.target as HTMLInputElement;\n if (!el.value && !el.selectionStart && !el.selectionEnd) {\n // Note: Just setting `0, 0` doesn't fix the issue. Setting\n // `1, 1` fixes it for the first time that you type text and\n // then hold delete. Toggling to `1, 1` and then back to\n // `0, 0` seems to completely fix it.\n el.setSelectionRange(1, 1);\n el.setSelectionRange(0, 0);\n }\n });\n });\n }\n\n this._isServer = !this._platform.isBrowser;\n this._isNativeSelect = nodeName === 'select';\n this._isTextarea = nodeName === 'textarea';\n\n this.controlType = (this._elementRef.nativeElement as HTMLInputElement).type;\n if (this._isNativeSelect) {\n this.controlType = (element as HTMLSelectElement).multiple ? 'select-multiple' : 'select';\n } else if (this._isTextarea) {\n this.controlType = 'textarea';\n }\n }\n\n ngAfterViewInit() {\n if (this._platform.isBrowser) {\n this._autofillMonitor.monitor(this._elementRef.nativeElement).subscribe((event) => {\n this.autofilled = event.isAutofilled;\n this.stateChanges.next();\n });\n }\n }\n\n ngOnChanges() {\n this.stateChanges.next();\n }\n\n ngOnDestroy() {\n this.stateChanges.complete();\n\n if (this._platform.isBrowser) {\n this._autofillMonitor.stopMonitoring(this._elementRef.nativeElement);\n }\n }\n\n ngDoCheck() {\n if (this.ngControl) {\n // We need to re-evaluate this on every change detection cycle, because there are some\n // error triggers that we can't subscribe to (e.g. parent form submissions). This means\n // that whatever logic is in here has to be super lean or we risk destroying the performance.\n // this.updateErrorState();\n }\n\n // We need to dirty-check the native element's value, because there are some cases where\n // we won't be notified when it changes (e.g. the consumer isn't using forms or they're\n // updating the value using `emitEvent: false`).\n this._dirtyCheckNativeValue();\n }\n\n /** Focuses the input. */\n focus(options?: FocusOptions): void {\n this._elementRef.nativeElement.focus(options);\n }\n\n // We have to use a `HostListener` here in order to support both Ivy and ViewEngine.\n // In Ivy the `host` bindings will be merged when this class is extended, whereas in\n // ViewEngine they're overwritten.\n @HostListener('focus', ['true'])\n @HostListener('blur', ['false'])\n _focusChanged(isFocused: boolean) {\n if (isFocused !== this.focused && (!this.readonly || !isFocused)) {\n this.focused = isFocused;\n this.stateChanges.next();\n }\n }\n\n // We have to use a `HostListener` here in order to support both Ivy and ViewEngine.\n // In Ivy the `host` bindings will be merged when this class is extended, whereas in\n // ViewEngine they're overwritten.\n @HostListener('input', ['$event'])\n _onInput(event: InputEvent) {\n // Listening to the input event wouldn't be necessary when the input is using the\n // FormsModule or ReactiveFormsModule, because Angular forms also listens to input events.\n this.lastKeyValue = event.data;\n if (this._isTextarea) {\n this.lastCaretPosition = (this._elementRef.nativeElement as HTMLTextAreaElement).selectionStart;\n }\n }\n\n /** Does some manual dirty checking on the native input `value` property. */\n protected _dirtyCheckNativeValue() {\n const newValue = this._elementRef.nativeElement.value;\n\n if (this._previousNativeValue !== newValue) {\n this._previousNativeValue = newValue;\n this.stateChanges.next();\n }\n }\n\n /** Make sure the input is a supported type. */\n protected _validateType() {\n if (NOVO_INPUT_INVALID_TYPES.indexOf(this._type) > -1) {\n throw new Error(`Invalid Input Type: ${this._type}`);\n }\n }\n\n /** Checks whether the input type is one of the types that are never empty. */\n protected _isNeverEmpty() {\n return this._neverEmptyInputTypes.indexOf(this._type) > -1;\n }\n\n /** Checks whether the input is invalid based on the native validation. */\n protected _isBadInput() {\n // The `validity` property won't be present on platform-server.\n const validity = (this._elementRef.nativeElement as HTMLInputElement).validity;\n return validity && validity.badInput;\n }\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n get empty(): boolean {\n return !this._isNeverEmpty() && !this._elementRef.nativeElement.value && !this._isBadInput() && !this.autofilled;\n }\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n get shouldLabelFloat(): boolean {\n if (this._isNativeSelect) {\n // For a single-selection `<select>`, the label should float when the selected option has\n // a non-empty display value. For a `<select multiple>`, the label *always* floats to avoid\n // overlapping the label with the options.\n const selectElement = this._elementRef.nativeElement as HTMLSelectElement;\n const firstOption: HTMLOptionElement | undefined = selectElement.options[0];\n\n // On most browsers the `selectedIndex` will always be 0, however on IE and Edge it'll be\n // -1 if the `value` is set to something, that isn't in the list of options, at a later point.\n return (\n this.focused || selectElement.multiple || !this.empty || !!(selectElement.selectedIndex > -1 && firstOption && firstOption.label)\n );\n } else {\n return this.focused || !this.empty;\n }\n }\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n setDescribedByIds(ids: string[]) {\n this._ariaDescribedby = ids.join(' ');\n }\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n onContainerClick() {\n // Do not re-focus the input element if the element is already focused. Otherwise it can happen\n // that someone clicks on a time input and the cursor resets to the \"hours\" field while the\n // \"minutes\" field was actually clicked. See: https://github.com/angular/components/issues/12849\n if (!this.focused) {\n this.focus();\n }\n }\n\n static ngAcceptInputType_disabled: BooleanInput;\n static ngAcceptInputType_readonly: BooleanInput;\n static ngAcceptInputType_required: BooleanInput;\n\n // Accept `any` to avoid conflicts with other directives on `<input>` that may\n // accept different types.\n static ngAcceptInputType_value: any;\n}\n","import { Directive, ElementRef, Inject, Input, Optional, Self } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { NovoInputFormat, NOVO_INPUT_FORMAT } from './formats/base-format';\n\n/** Directive used to connect an input to a MatDatepicker. */\n@Directive({\n selector: 'input[picker]',\n host: {\n class: 'novo-has-picker',\n '[attr.autocomplete]': 'autocompleteAttribute',\n },\n})\nexport class NovoPickerDirective {\n /** The datepicker that this input is associated with. */\n @Input()\n set picker(picker: ControlValueAccessor) {\n if (picker) {\n this._picker = picker;\n picker.registerOnChange((value) => this.updateValue(value));\n }\n }\n _picker: ControlValueAccessor;\n /**\n * `autocomplete` attribute to be set on the input element.\n * @docs-private\n */\n @Input('autocomplete') autocompleteAttribute: string = 'off';\n\n constructor(\n private _elementRef: ElementRef<HTMLInputElement>,\n @Optional() @Self() @Inject(NOVO_INPUT_FORMAT) private formatter: NovoInputFormat<any>,\n ) {\n if (!this.formatter) {\n console.warn('Picker directive is missing required formatter');\n }\n this.formatter?.valueChange.subscribe((value) => {\n this.updatePicker(value);\n });\n }\n\n updateValue(value: any) {\n this.formatter.writeValue(value);\n }\n\n updatePicker(value: any) {\n if (this._picker) {\n this._picker.writeValue(value);\n }\n }\n}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n AfterContentInit,\n AfterViewInit,\n Attribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n Optional,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { Subject, Subscription } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { BooleanInput } from 'novo-elements/utils';\nimport { NovoButtonElement } from 'novo-elements/elements/button';\nimport { NovoOverlayTemplateComponent } from 'novo-elements/elements/common';\nimport { NovoFieldElement, NOVO_FORM_FIELD } from '../field';\n\n@Component({\n selector: 'novo-picker-toggle',\n templateUrl: 'picker-toggle.component.html',\n styleUrls: ['picker-toggle.component.scss'],\n host: {\n class: 'novo-picker-toggle',\n // Always set the tabindex to -1 so that it doesn't overlap with any custom tabindex the\n // consumer may have provided, while still being able to receive focus.\n '[attr.tabindex]': 'disabled ? null : -1',\n '[class.novo-toggle-active]': 'picker && picker.opened',\n '[class.novo-accent]': 'picker && picker.color === \"accent\"',\n '[class.novo-warn]': 'picker && picker.color === \"warn\"',\n '(focus)': '_button.focus()',\n },\n exportAs: 'novoPickerToggle',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NovoPickerToggleElement<T = any> implements AfterContentInit, AfterViewInit, OnChanges, OnDestroy {\n private _stateChanges = Subscription.EMPTY;\n private _onDestroy = new Subject<void>();\n\n /** Datepicker instance that the button will toggle. */\n @Input('for') picker: T;\n\n @Input() icon: string;\n\n /** Tabindex for the toggle. */\n @Input() tabIndex: number | null;\n\n /** Screenreader label for the button. */\n @Input('aria-label') ariaLabel: string;\n\n /** Determines whether the overlay is triggered on input focus or solely button click. */\n @Input()\n @BooleanInput()\n triggerOnFocus: boolean = false;\n\n /** An id to select the correct overlay.*/\n @Input() overlayId: string;\n\n /** Width to pass to overlay.*/\n @Input() width: string;\n\n /** Whether the toggle button is disabled. */\n @Input()\n get disabled(): boolean {\n if (this._disabled === undefined && this.picker) {\n return (this.picker as any).disabled;\n }\n\n return !!this._disabled;\n }\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n }\n private _disabled: boolean;\n\n /** Underlying button element. */\n @ViewChild('button') _button: NovoButtonElement;\n\n /** Element for the panel containing the autocomplete options. */\n @ViewChild(NovoOverlayTemplateComponent)\n overlay: NovoOverlayTemplateComponent;\n\n element: ElementRef;\n\n constructor(\n private _elementRef: ElementRef,\n private cdr: ChangeDetectorRef,\n @Attribute('tabindex') defaultTabIndex: string,\n @Optional() @Inject(NOVO_FORM_FIELD) private _formField: NovoFieldElement,\n ) {\n const parsedTabIndex = Number(defaultTabIndex);\n this.tabIndex = parsedTabIndex || parsedTabIndex === 0 ? parsedTabIndex : null;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.picker) {\n this._watchStateChanges();\n }\n }\n\n ngOnDestroy() {\n this._stateChanges.unsubscribe();\n this._onDestroy.next();\n this._onDestroy.complete();\n }\n\n ngAfterContentInit() {\n this._watchStateChanges();\n }\n\n ngAfterViewInit() {\n this.element = this._formField.getConnectedOverlayOrigin() || this._elementRef;\n }\n\n checkPanel() {\n if (this.triggerOnFocus && this._formField._control.focused) {\n this.openPanel();\n }\n }\n\n togglePanel(event?: Event) {\n this.cdr.detectChanges();\n this.overlay.parent = this.element;\n if (!this.overlay.panelOpen) {\n this.openPanel(event);\n } else {\n this.closePanel(event);\n }\n }\n\n /** BEGIN: Convenient Panel Methods. */\n openPanel(event?: Event): void {\n if (!this.overlay.panelOpen) {\n this.overlay.parent = this.element;\n this.overlay.openPanel();\n }\n }\n\n closePanel(event?: Event): void {\n this.overlay.closePanel();\n }\n\n get panelOpen(): boolean {\n return this.overlay && this.overlay.panelOpen;\n }\n\n private _watchStateChanges() {\n this._formField._control?.stateChanges.pipe(takeUntil(this._onDestroy)).subscribe(() => {\n this.checkPanel();\n });\n }\n}\n","<novo-button\n #button\n theme=\"icon\"\n [icon]=\"icon\"\n [attr.aria-haspopup]=\"'dialog'\"\n [attr.tabindex]=\"disabled ? -1 : tabIndex\"\n [disabled]=\"disabled\"\n (click)=\"togglePanel($event)\"></novo-button>\n\n<novo-overlay-template [width]=\"width\" [parent]=\"element\" position=\"above-below\">\n <ng-content></ng-content>\n</novo-overlay-template>","// NG2\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n// APP\nimport { NovoButtonModule } from 'novo-elements/elements/button';\nimport { NovoCommonModule, NovoOptionModule, NovoOverlayModule } from 'novo-elements/elements/common';\nimport { NovoErrorElement } from './error/error';\nimport { NovoFieldElement, NovoFieldPrefixDirective, NovoFieldSuffixDirective } from './field';\nimport { NovoFieldsElement } from './fieldset';\nimport { NovoDateFormatDirective } from './formats/date-format';\nimport { NovoDateRangeFormatDirective } from './formats/date-range-format';\nimport { NovoDateTimeFormatDirective } from './formats/date-time-format';\nimport { NovoTimeFormatDirective } from './formats/time-format';\nimport { NovoHintElement } from './hint/hint';\nimport { NovoInput } from './input';\nimport { NovoPickerDirective } from './picker.directive';\nimport { NovoPickerToggleElement } from './toggle/picker-toggle.component';\n\n@NgModule({\n imports: [CommonModule, NovoButtonModule, NovoOverlayModule, NovoOptionModule, NovoCommonModule],\n declarations: [\n NovoFieldElement,\n NovoHintElement,\n NovoErrorElement,\n NovoInput,\n NovoFieldPrefixDirective,\n NovoFieldSuffixDirective,\n NovoFieldsElement,\n NovoTimeFormatDirective,\n NovoDateFormatDirective,\n NovoDateTimeFormatDirective,\n NovoDateRangeFormatDirective,\n NovoPickerToggleElement,\n NovoPickerDirective,\n ],\n exports: [\n NovoFieldElement,\n NovoHintElement,\n NovoErrorElement,\n NovoInput,\n NovoFieldPrefixDirective,\n NovoFieldSuffixDirective,\n NovoFieldsElement,\n NovoTimeFormatDirective,\n NovoDateFormatDirective,\n NovoDateRangeFormatDirective,\n NovoDateTimeFormatDirective,\n NovoPickerToggleElement,\n NovoPickerDirective,\n ],\n})\nexport class NovoFieldModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["nextUniqueId","i1","__decorate","i2"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;MASa,gBAAgB,CAAA;AAC3B,IAAA,WAAA,CAAoB,SAAuB,EAAA;QAAvB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAc;KAAI;AAE/C,IAAA,QAAQ,MAAU;+GAHP,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,kDCT7B,2BAAyB,EAAA,MAAA,EAAA,CAAA,8EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDSZ,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,SAAS;+BACE,YAAY,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,8EAAA,CAAA,EAAA,CAAA;;;AEDxB;MAEsB,gBAAgB,CAAA;+GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAhB,gBAAgB,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBADrC,SAAS;;;ACLV;AAGA,IAAIA,cAAY,GAAG,CAAC,CAAC;MAaR,eAAe,CAAA;AAZ5B,IAAA,WAAA,GAAA;;QAcW,IAAK,CAAA,KAAA,GAAoB,OAAO,CAAC;;AAGjC,QAAA,IAAA,CAAA,EAAE,GAAW,CAAA,UAAA,EAAaA,cAAY,EAAE,EAAE,CAAC;AAGrD,KAAA;AADC,IAAA,QAAQ,MAAU;+GAPP,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,uOChB5B,2BAAyB,EAAA,MAAA,EAAA,CAAA,61IAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDgBZ,eAAe,EAAA,UAAA,EAAA,CAAA;kBAZ3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,EAGf,IAAA,EAAA;AACJ,wBAAA,KAAK,EAAE,WAAW;AAClB,wBAAA,6BAA6B,EAAE,iBAAiB;AAChD,wBAAA,WAAW,EAAE,IAAI;;AAEjB,wBAAA,cAAc,EAAE,MAAM;AACvB,qBAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,61IAAA,CAAA,EAAA,CAAA;8BAIQ,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAGG,EAAE,EAAA,CAAA;sBAAV,KAAK;;;AErBR;MA4Ba,wBAAwB,CAAA;+GAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAxB,wBAAwB,EAAA,QAAA,EAAA,cAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBADpC,SAAS;mBAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAA;;MAG1B,wBAAwB,CAAA;+GAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAxB,wBAAwB,EAAA,QAAA,EAAA,cAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBADpC,SAAS;mBAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAA;;AAGvC,MAAM,2BAA2B,GAAG;IAClC,MAAM;IACN,MAAM;IACN,MAAM;IACN,gBAAgB;IAChB,UAAU;IACV,OAAO;IACP,KAAK;IACL,QAAQ;IACR,UAAU;IACV,QAAQ;IACR,gBAAgB;IAChB,WAAW;CACZ,CAAC;MACW,eAAe,GAAG,IAAI,cAAc,CAAmB,eAAe,EAAE;MAmCxE,gBAAgB,CAAA;IA+B3B,WAAmB,CAAA,WAAuB,EAAU,kBAAqC,EAAA;QAAtE,IAAW,CAAA,WAAA,GAAX,WAAW,CAAY;QAAU,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAmB;AA9BjF,QAAA,IAAA,CAAA,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC;QAejC,IAAM,CAAA,MAAA,GAA8B,UAAU,CAAC;QAC/C,IAAU,CAAA,UAAA,GAA6C,UAAU,CAAC;AASnE,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,OAAO,EAAQ,CAAC;AAE/B,QAAA,IAAA,CAAA,YAAY,GAAsB,IAAI,YAAY,EAAE,CAAC;AACrD,QAAA,IAAA,CAAA,YAAY,GAAuB,IAAI,YAAY,EAAE,CAAC;KAE6B;AAC7F;;;AAGG;IACH,yBAAyB,GAAA;QACvB,OAAO,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,WAAW,CAAC;KAChF;IAED,kBAAkB,GAAA;QAChB,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAE7B,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;AAC9B,QAAA,IAAI,OAAO,CAAC,WAAW,EAAE;AACvB,YAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,OAAO,CAAC,WAAW,CAAA,CAAE,CAAC,CAAC;AACvF,YAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,YAAY,CAAC,mBAAmB,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;SACvF;AAED,QAAA,IAAI,OAAO,CAAC,EAAE,EAAE;AACd,YAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,YAAY,CAAC,iBAAiB,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;SAC5E;AAED,QAAA,IAAI,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE;AAC3B,YAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,YAAY,CAAC,kBAAkB,EAAE,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;SACzF;;;AAID,QAAA,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;AACxD,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;AACzB,YAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;AACzC,SAAC,CAAC,CAAC;;QAGH,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,YAAY,EAAE;YACvD,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAI;AAC9E,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC1B,gBAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;AACzC,aAAC,CAAC,CAAC;SACJ;AAED,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;YACpB,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;SACjH;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;AAC3B,QAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;KACjC;;IAGS,qBAAqB,GAAA;AAC7B,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;SACzC;KACF;AAEM,IAAA,kBAAkB,CAAC,OAAmB,EAAA;AAC3C,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;KACjK;AAGD,IAAA,qBAAqB,CAAC,GAAe,EAAA;AACnC,QAAA,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;KACrC;IAED,kBAAkB,GAAA;QAChB,OAAO,2BAA2B,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;KACxE;;IAGD,qBAAqB,GAAA;QACnB,OAAO,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,OAAO,GAAG,MAAM,CAAC;KAC7G;;AAGD,IAAA,cAAc,CAAC,IAAqB,EAAA;AAClC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC;AACjE,QAAA,OAAO,SAAS,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;KACrC;IAED,SAAS,GAAA;AACP,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;KAC7B;+GApHU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAhB,gBAAgB,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,+BAAA,EAAA,EAAA,UAAA,EAAA,EAAA,oCAAA,EAAA,wBAAA,EAAA,kCAAA,EAAA,sBAAA,EAAA,sCAAA,EAAA,4BAAA,EAAA,kCAAA,EAAA,wBAAA,EAAA,qCAAA,EAAA,2BAAA,EAAA,kCAAA,EAAA,wBAAA,EAAA,wCAAA,EAAA,sBAAA,EAAA,0BAAA,EAAA,qBAAA,EAAA,4BAAA,EAAA,aAAA,EAAA,2BAAA,EAAA,cAAA,EAAA,2BAAA,EAAA,mBAAA,EAAA,6BAAA,EAAA,qBAAA,EAAA,oBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,+BAAA,EAAA,kBAAA,EAAA,6BAAA,EAAA,mBAAA,EAAA,8BAAA,EAAA,gBAAA,EAAA,2BAAA,EAAA,gBAAA,EAAA,2BAAA,EAAA,kBAAA,EAAA,6BAAA,EAAA,kBAAA,EAAA,6BAAA,EAAA,EAAA,cAAA,EAAA,YAAA,EAAA,EAAA,SAAA,EAFhB,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAS1D,SAAS,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAOT,gBAAgB,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,eAAA,EAAA,SAAA,EANb,eAAe,EAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,SAAA,EACf,gBAAgB,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EAChB,wBAAwB,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EACxB,wBAAwB,EAAA,EAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,SAAA,EACxB,sBAAsB,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC7FzC,i2BAsBM,EAAA,MAAA,EAAA,CAAA,gjVAAA,EAAA,qkBAAA,EAAA,+lCAAA,EAAA,iiBAAA,EAAA,61BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FD2DO,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAjC5B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EAGL,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACJ,wBAAA,KAAK,EAAE,YAAY;AACnB,wBAAA,sCAAsC,EAAE,sBAAsB;AAC9D,wBAAA,oCAAoC,EAAE,oBAAoB;AAC1D,wBAAA,wCAAwC,EAAE,0BAA0B;AACpE,wBAAA,oCAAoC,EAAE,sBAAsB;AAC5D,wBAAA,uCAAuC,EAAE,yBAAyB;AAClE,wBAAA,oCAAoC,EAAE,sBAAsB;AAC5D,wBAAA,0CAA0C,EAAE,sBAAsB;AAClE,wBAAA,4BAA4B,EAAE,qBAAqB;AACnD,wBAAA,8BAA8B,EAAE,aAAa;AAC7C,wBAAA,6BAA6B,EAAE,cAAc;;AAE7C,wBAAA,6BAA6B,EAAE,mBAAmB;AAClD,wBAAA,+BAA+B,EAAE,qBAAqB;AACtD,wBAAA,sBAAsB,EAAE,kBAAkB;;;AAG1C,wBAAA,sBAAsB,EAAE,6BAA6B;AACrD,wBAAA,oBAAoB,EAAE,2BAA2B;AACjD,wBAAA,qBAAqB,EAAE,4BAA4B;AACnD,wBAAA,kBAAkB,EAAE,yBAAyB;AAC7C,wBAAA,kBAAkB,EAAE,yBAAyB;AAC7C,wBAAA,oBAAoB,EAAE,2BAA2B;AACjD,wBAAA,oBAAoB,EAAE,2BAA2B;qBAClD,EACU,SAAA,EAAA,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAkB,gBAAA,EAAE,CAAC,EAAA,QAAA,EAAA,i2BAAA,EAAA,MAAA,EAAA,CAAA,gjVAAA,EAAA,qkBAAA,EAAA,+lCAAA,EAAA,iiBAAA,EAAA,61BAAA,CAAA,EAAA,CAAA;+GAM3C,kBAAkB,EAAA,CAAA;sBAA9C,SAAS;uBAAC,gBAAgB,CAAA;gBAGF,aAAa,EAAA,CAAA;sBAArC,YAAY;uBAAC,SAAS,CAAA;gBACW,aAAa,EAAA,CAAA;sBAA9C,eAAe;uBAAC,eAAe,CAAA;gBACG,cAAc,EAAA,CAAA;sBAAhD,eAAe;uBAAC,gBAAgB,CAAA;gBACU,eAAe,EAAA,CAAA;sBAAzD,eAAe;uBAAC,wBAAwB,CAAA;gBACE,eAAe,EAAA,CAAA;sBAAzD,eAAe;uBAAC,wBAAwB,CAAA;gBACA,gBAAgB,EAAA,CAAA;sBAAxD,eAAe;uBAAC,sBAAsB,CAAA;gBAEP,QAAQ,EAAA,CAAA;sBAAvC,YAAY;uBAAC,gBAAgB,CAAA;gBAErB,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAIG,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBAGN,KAAK,EAAA,CAAA;sBADJ,KAAK;gBAKI,YAAY,EAAA,CAAA;sBAArB,MAAM;gBACG,YAAY,EAAA,CAAA;sBAArB,MAAM;gBAkEP,qBAAqB,EAAA,CAAA;sBADpB,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;;;;;;;;;;;;ME3JtB,iBAAiB,CAAA;AAf9B,IAAA,WAAA,GAAA;QAmBE,IAAO,CAAA,OAAA,GAA8B,YAAY,CAAC;QAWlD,IAAW,CAAA,WAAA,GAA6C,UAAU,CAAC;QAcnE,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;AAsB5B,KAAA;AA9CC,IAAA,IAAa,MAAM,GAAA;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC;KACrB;IACD,IAAI,MAAM,CAAC,KAAK,EAAA;AACd,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE;AAC1B,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAC3B;KACF;AAGD,IAAA,IAAa,UAAU,GAAA;QACrB,OAAO,IAAI,CAAC,WAAW,CAAC;KACzB;IACD,IAAI,UAAU,CAAC,KAAK,EAAA;AAClB,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,EAAE;AAC9B,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,IAAI,CAAC,sBAAsB,EAAE,CAAC;SAC/B;KACF;IAOD,kBAAkB,GAAA;QAChB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;IAEO,kBAAkB,GAAA;AACxB,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;AAC7B,gBAAA,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAC7B,aAAC,CAAC,CAAC;SACJ;KACF;IAEO,sBAAsB,GAAA;AAC5B,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;AAC7B,gBAAA,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;AACrC,aAAC,CAAC,CAAC;SACJ;KACF;+GAlDU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAjB,iBAAiB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,yCAAA,EAAA,4BAAA,EAAA,qCAAA,EAAA,wBAAA,EAAA,wCAAA,EAAA,2BAAA,EAAA,qCAAA,EAAA,wBAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,EAAA,cAAA,EAAA,YAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,SAAA,EACX,gBAAgB,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECrBnC,2BAAyB,EAAA,MAAA,EAAA,CAAA,mhBAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;ADiDvBC,YAAA,CAAA;AADC,IAAA,YAAY,EAAE;;AACY,CAAA,EAAA,iBAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA,CAAA;4FA7BhB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAf7B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,EAGN,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACJ,wBAAA,KAAK,EAAE,YAAY;AACnB,wBAAA,2CAA2C,EAAE,0BAA0B;AACvE,wBAAA,uCAAuC,EAAE,sBAAsB;AAC/D,wBAAA,0CAA0C,EAAE,yBAAyB;AACrE,wBAAA,uCAAuC,EAAE,sBAAsB;;;AAGhE,qBAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,mhBAAA,CAAA,EAAA,CAAA;8BAID,OAAO,EAAA,CAAA;sBADN,eAAe;uBAAC,gBAAgB,CAAA;gBAIpB,MAAM,EAAA,CAAA;sBAAlB,KAAK;gBAWO,UAAU,EAAA,CAAA;sBAAtB,KAAK;gBAaN,SAAS,EAAA,CAAA;sBAHR,WAAW;uBAAC,kBAAkB,CAAA;;sBAC9B,KAAK;;;ME5CK,iBAAiB,GAAG,IAAI,cAAc,CAAkB,iBAAiB,EAAE;IAO5E,aAIX;AAJD,CAAA,UAAY,YAAY,EAAA;AACtB,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,YAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACnB,CAAC,EAJW,YAAY,KAAZ,YAAY,GAIvB,EAAA,CAAA,CAAA;;ACLY,MAAA,yBAAyB,GAAG;AACvC,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,uBAAuB,CAAC;AACtD,IAAA,KAAK,EAAE,IAAI;EACX;AASI,MAAO,uBAAwB,SAAQ,cAAmB,CAAA;AAK9D,IAAA,WAAA,CAAoB,MAAwB,EAAA;AAC1C,QAAA,KAAK,EAAE,CAAC;QADU,IAAM,CAAA,MAAA,GAAN,MAAM,CAAkB;AAJ5C,QAAA,IAAA,CAAA,WAAW,GAAsB,IAAI,YAAY,EAAE,CAAC;AAE3C,QAAA,IAAA,CAAA,UAAU,GAAiB,YAAY,CAAC,IAAI,CAAC;QAIpD,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;AACxD,QAAA,IAAI,CAAC,MAAM,GAAG,OAA2B,CAAC;QAC1C,IAAI,CAAC,KAAK,GAAG;AACX,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,OAAO,EAAE,aAAa;AACtB,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,IAAI,EAAE,KAAK;YACX,GAAG,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;YACzB,GAAG,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;YACzB,OAAO,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,WAAW,EAAE;YACnC,MAAM,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YACxC,KAAK,EAAE,CAAC,GAAG,KAAK,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;AACnC,YAAA,MAAM,EAAE;AACN,gBAAA,CAAC,EAAE;AACD,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,eAAe,EAAE,GAAG;AACpB,oBAAA,IAAI,EAAE,CAAC;AACP,oBAAA,EAAE,EAAE,EAAE;AACN,oBAAA,SAAS,EAAE,CAAC;AACb,iBAAA;AACD,gBAAA,CAAC,EAAE;AACD,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,eAAe,EAAE,GAAG;AACpB,oBAAA,IAAI,EAAE,CAAC;AACP,oBAAA,EAAE,EAAE,EAAE;AACN,oBAAA,SAAS,EAAE,CAAC;AACb,iBAAA;AACD,gBAAA,CAAC,EAAE;AACD,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,eAAe,EAAE,GAAG;AACpB,oBAAA,IAAI,EAAE,IAAI;AACV,oBAAA,EAAE,EAAE,IAAI;AACT,iBAAA;AACF,aAAA;SACF,CAAC;KACH;AAED,IAAA,SAAS,CAAC,KAAa,EAAA;QACrB,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;QACrD,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,OAAO,EAAE,CAAC;SACX;AACD,QAAA,OAAO,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;KACxD;AAED,IAAA,WAAW,CAAC,IAAU,EAAA;AACpB,QAAA,IAAI,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE;YACzB,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;SACxC;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AAED,IAAA,WAAW,CAAC,KAAU,EAAA;QACpB,IAAI,KAAK,IAAI,IAAI;AAAE,YAAA,OAAO,EAAE,CAAC;;QAE7B,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACnC,QAAA,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE;YACjB,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;YACxD,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;SAC1C;AACD,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;KAC9B;AAED,IAAA,UAAU,CAAC,KAAU,EAAA;QACnB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;KAC3C;AAED,IAAA,gBAAgB,CAAC,EAAoB,EAAA;AACnC,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAS,KAAI;YAC5B,IAAI,SAAS,GAAG,IAAI,CAAC;AACrB,YAAA,QAAQ,IAAI,CAAC,UAAU;gBACrB,KAAK,YAAY,CAAC,OAAO;AACvB,oBAAA,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;oBACnC,MAAM;gBACR,KAAK,YAAY,CAAC,MAAM;AACtB,oBAAA,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;oBACnC,MAAM;AACR,gBAAA;oBACE,SAAS,GAAG,IAAI,CAAC;oBACjB,MAAM;aACT;AACD,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,EAAE,CAAC,SAAS,CAAC,CAAC;AAChB,SAAC,CAAC;KACH;+GA5FU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,EAFvB,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,EAAA,SAAA,EAAA,CAAC,yBAAyB,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,uBAAuB,EAAE,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAEjG,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAPnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,kBAAkB;AAC1B,qBAAA;AACD,oBAAA,SAAS,EAAE,CAAC,yBAAyB,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAyB,uBAAA,EAAE,CAAC;AAC7G,iBAAA,CAAA;uFAIU,UAAU,EAAA,CAAA;sBAAlB,KAAK;;;AChBK,MAAA,8BAA8B,GAAG;AAC5C,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,4BAA4B,CAAC;AAC3D,IAAA,KAAK,EAAE,IAAI;EACX;AAOW,MAAA,SAAS,GAAG;AACvB,IAAA,IAAI,EAAE,2BAA2B;AACjC,IAAA,SAAS,EAAE,IAAI;AACf,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,MAAM,EAAE;AACN,QAAA,CAAC,EAAE;AACD,YAAA,IAAI,EAAE,WAAW;AACjB,YAAA,eAAe,EAAE,GAAG;AACpB,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,SAAS,EAAE,CAAC;AACb,SAAA;AACD,QAAA,CAAC,EAAE;AACD,YAAA,IAAI,EAAE,WAAW;AACjB,YAAA,eAAe,EAAE,GAAG;AACpB,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,SAAS,EAAE,CAAC;AACb,SAAA;AACD,QAAA,CAAC,EAAE;AACD,YAAA,IAAI,EAAE,WAAW;AACjB,YAAA,eAAe,EAAE,GAAG;AACpB,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,EAAE,EAAE,IAAI;AACT,SAAA;AACF,KAAA;EACD;AASI,MAAO,4BAA6B,SAAQ,cAAmB,CAAA;AAKnE,IAAA,WAAA,CAAoB,MAAwB,EAAA;AAC1C,QAAA,KAAK,EAAE,CAAC;QADU,IAAM,CAAA,MAAA,GAAN,MAAM,CAAkB;AAJ5C,QAAA,IAAA,CAAA,WAAW,GAAsB,IAAI,YAAY,EAAE,CAAC;AAE3C,QAAA,IAAA,CAAA,eAAe,GAAiB,YAAY,CAAC,IAAI,CAAC;QAIzD,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;AAC7D,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,KAAK,GAAG;AACX,YAAA,IAAI,EAAE,2BAA2B;AACjC,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,IAAI,EAAE,KAAK;AACX,YAAA,MAAM,EAAE;AACN,gBAAA,CAAC,EAAE;AACD,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,eAAe,EAAE,GAAG;AACpB,oBAAA,IAAI,EAAE,CAAC;AACP,oBAAA,EAAE,EAAE,EAAE;AACN,oBAAA,SAAS,EAAE,CAAC;AACb,iBAAA;AACD,gBAAA,CAAC,EAAE;AACD,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,eAAe,EAAE,GAAG;AACpB,oBAAA,IAAI,EAAE,CAAC;AACP,oBAAA,EAAE,EAAE,EAAE;AACN,oBAAA,SAAS,EAAE,CAAC;AACb,iBAAA;AACD,gBAAA,CAAC,EAAE;AACD,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,eAAe,EAAE,GAAG;AACpB,oBAAA,IAAI,EAAE,IAAI;AACV,oBAAA,EAAE,EAAE,IAAI;AACT,iBAAA;AACF,aAAA;SACF,CAAC;KACH;AAED,IAAA,SAAS,CAAC,KAAoB,EAAA;QAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;AACrD,QAAA,OAAO,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;KACxD;AAED,IAAA,WAAW,CAAC,KAAgB,EAAA;AAC1B,QAAA,IAAI,CAAC,KAAK;AAAE,YAAA,OAAO,EAAE,CAAC;AACtB,QAAA,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;AACrC,QAAA,IAAI,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;AAClE,YAAA,MAAM,QAAQ,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACtD,YAAA,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAClD,YAAA,OAAO,CAAG,EAAA,QAAQ,CAAI,CAAA,EAAA,MAAM,EAAE,CAAC;SAChC;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AAED,IAAA,WAAW,CAAC,KAAgB,EAAA;AAC1B,QAAA,IAAI,CAAC,KAAK;AAAE,YAAA,OAAO,EAAE,CAAC;AACtB,QAAA,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;AACrC,QAAA,OAAO,CAAG,EAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAM,GAAA,EAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;KACtE;AAED,IAAA,UAAU,CAAC,MAAqB,EAAA;QAC9B,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACpC,QAAA,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE;YACjB,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;YAC7D,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;SAC/C;AACD,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;KAC/B;AAED,IAAA,UAAU,CAAC,KAAU,EAAA;QACnB,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC/C,QAAA,IAAI,cAAc,KAAK,IAAI,CAAC,SAAS,EAAE;YACrC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;YAC1C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;SACxC;KACF;AAED,IAAA,gBAAgB,CAAC,EAAoB,EAAA;AACnC,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,KAAU,KAAI;AAC7B,YAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gBACxB,MAAM,KAAK,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;gBAChD,IAAI,SAAS,GAAuB,KAAK,CAAC;AAC1C,gBAAA,QAAQ,IAAI,CAAC,eAAe;oBAC1B,KAAK,YAAY,CAAC,OAAO;AACvB,wBAAA,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;wBACpC,MAAM;oBACR,KAAK,YAAY,CAAC,MAAM;AACtB,wBAAA,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;wBACpC,MAAM;AACR,oBAAA;wBACE,SAAS,GAAG,KAAK,CAAC;wBAClB,MAAM;iBACT;AACD,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC7B,EAAE,CAAC,SAAS,CAAC,CAAC;aACf;AACH,SAAC,CAAC;KACH;AAED,IAAA,qBAAqB,CAAC,KAAK,EAAA;AACzB,QAAA,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACvC,QAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;KAC/B;AAED,IAAA,QAAQ,CAAC,OAAe,EAAA;AACtB,QAAA,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QACnE,OAAO,OAAO,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;KAC/C;+GA9GU,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,EAF5B,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,wBAAA,EAAA,EAAA,SAAA,EAAA,CAAC,8BAA8B,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,4BAA4B,EAAE,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAE3G,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAPxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,wBAAwB;AAChC,qBAAA;AACD,oBAAA,SAAS,EAAE,CAAC,8BAA8B,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAA8B,4BAAA,EAAE,CAAC;AACvH,iBAAA,CAAA;uFAIU,eAAe,EAAA,CAAA;sBAAvB,KAAK;;;AClDK,MAAA,6BAA6B,GAAG;AAC3C,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,2BAA2B,CAAC;AAC1D,IAAA,KAAK,EAAE,IAAI;EACX;AAYI,MAAO,2BAA4B,SAAQ,cAAmB,CAAA;AAMlE,IAAA,WAAA,CAAoB,MAAwB,EAAA;AAC1C,QAAA,KAAK,EAAE,CAAC;QADU,IAAM,CAAA,MAAA,GAAN,MAAM,CAAkB;AAL5C,QAAA,IAAA,CAAA,WAAW,GAAsB,IAAI,YAAY,EAAE,CAAC;QAE3C,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;AAC1B,QAAA,IAAA,CAAA,cAAc,GAAiB,YAAY,CAAC,IAAI,CAAC;QAIxD,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC1B;IAED,iBAAiB,GAAA;QACf,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;QACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;AACxD,QAAA,IAAI,CAAC,MAAM,GAAG,OAA2B,CAAC;QAC1C,IAAI,CAAC,KAAK,GAAG;AACX,YAAA,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,IAAI,CAAC,QAAQ,GAAG,oBAAoB,GAAG,uBAAuB;AACvE,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,IAAI,EAAE,KAAK;YACX,GAAG,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;YACzB,GAAG,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;YACzB,OAAO,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,WAAW,EAAE;YACnC,MAAM,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YACxC,KAAK,EAAE,CAAC,GAAG,KAAK,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;AACnC,YAAA,MAAM,EAAE;AACN,gBAAA,CAAC,EAAE;AACD,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,eAAe,EAAE,GAAG;AACpB,oBAAA,IAAI,EAAE,CAAC;AACP,oBAAA,EAAE,EAAE,EAAE;AACN,oBAAA,SAAS,EAAE,CAAC;AACb,iBAAA;AACD,gBAAA,CAAC,EAAE;AACD,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,eAAe,EAAE,GAAG;AACpB,oBAAA,IAAI,EAAE,CAAC;AACP,oBAAA,EAAE,EAAE,EAAE;AACN,oBAAA,SAAS,EAAE,CAAC;AACb,iBAAA;AACD,gBAAA,CAAC,EAAE;AACD,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,eAAe,EAAE,GAAG;AACpB,oBAAA,IAAI,EAAE,IAAI;AACV,oBAAA,EAAE,EAAE,IAAI;AACT,iBAAA;AACD,gBAAA,EAAE,EAAE;AACF,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,eAAe,EAAE,GAAG;AACpB,oBAAA,SAAS,EAAE,CAAC;AACZ,oBAAA,IAAI,EAAE,CAAC;AACP,oBAAA,EAAE,EAAE,EAAE;AACP,iBAAA;AACD,gBAAA,EAAE,EAAE;AACF,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,eAAe,EAAE,GAAG;AACpB,oBAAA,SAAS,EAAE,CAAC;AACZ,oBAAA,IAAI,EAAE,CAAC;AACP,oBAAA,EAAE,EAAE,EAAE;AACP,iBAAA;AACD,gBAAA,EAAE,EAAE;AACF,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,eAAe,EAAE,GAAG;AACpB,oBAAA,SAAS,EAAE,CAAC;AACZ,oBAAA,IAAI,EAAE,CAAC;AACP,oBAAA,EAAE,EAAE,EAAE;AACP,iBAAA;AACD,gBAAA,EAAE,EAAE;AACF,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,eAAe,EAAE,GAAG;AACpB,oBAAA,SAAS,EAAE,CAAC;AACZ,oBAAA,IAAI,EAAE,CAAC;AACP,oBAAA,EAAE,EAAE,EAAE;AACP,iBAAA;AACD,gBAAA,EAAE,EAAE;AACF,oBAAA,IAAI,EAAE,UAAU;AAChB,oBAAA,eAAe,EAAE,GAAG;AACpB,oBAAA,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC;AACnD,iBAAA;AACF,aAAA;SACF,CAAC;KACH;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE;YAChF,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC1B;KACF;AAED,IAAA,WAAW,CAAC,KAAiB,EAAA;QAC3B,IAAI,QAAQ,CAAC,aAAa,KAAK,KAAK,CAAC,MAAM,EAAE;AAC3C,YAAA,MAAM,IAAI,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YACtD,MAAM,QAAQ,GAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACnC,YAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrC,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;gBACnG,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,MAAM,KAAK,GAAG,CAAI,CAAA,EAAA,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/B,gBAAA,KAAK,CAAC,MAA2B,CAAC,KAAK,GAAG,KAAK,CAAC;;aAElD;AACD,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,gBAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7E,gBAAA,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC9E,IAAI,UAAU,EAAE;oBACb,KAAK,CAAC,MAA2B,CAAC,KAAK,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAK,EAAA,EAAA,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA,CAAA,EAAI,UAAU,CAAA,CAAE,CAAC;iBACvG;AACD,gBAAA,IAAK,KAAK,CAAC,MAA2B,CAAC,cAAc,IAAI,CAAC,IAAI,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE;AAC7F,oBAAA,KAAK,CAAC,MAA2B,CAAC,KAAK,GAAG,CAAA,EAAG,QAAQ,CAAC,CAAC,CAAC,CAAS,KAAA,EAAA,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC,KAAK,CAC7G,CAAC,EACA,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC,MAAM,CAChD,EAAE,CAAC;iBACL;aACF;SACF;KACF;AAED,IAAA,WAAW,CAAC,KAAiB,EAAA;AAC3B,QAAA,MAAM,IAAI,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;QACtD,MAAM,QAAQ,GAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACnC,QAAA,MAAM,IAAI,GAAW,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7C,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7E,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9E,YAAA,IAAI,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE;AACnC,gBAAA,KAAK,CAAC,MAA2B,CAAC,KAAK,GAAG,CAAA,EAAG,QAAQ,CAAC,CAAC,CAAC,CAAQ,KAAA,EAAA,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA,CAAE,CAAC;aAC7G;YACD,IAAI,CAAC,UAAU,EAAE;gBACd,KAAK,CAAC,MAA2B,CAAC,KAAK,GAAG,CAAG,EAAA,QAAQ,CAAC,CAAC,CAAC,CAAA,EAAA,EAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA,GAAA,CAAK,CAAC;aAC5F;SACF;KACF;AAED,IAAA,cAAc,CAAC,KAAoB,EAAA;AACjC,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,MAA0B,CAAC;QAC/C,MAAM,QAAQ,GAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC1C,QAAA,MAAM,IAAI,GAAW,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAE7C,QAAA,IAAI,KAAK,CAAC,GAAG,KAAkB,WAAA,wBAAI,KAAK,CAAC,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;AAC7E,YAAA,KAAK,CAAC,MAA2B,CAAC,KAAK,GAAG,CAAA,EAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;SAC5E;AAAM,aAAA,IAAI,KAAK,CAAC,GAAG,4BAAgB,KAAK,CAAC,cAAc,IAAI,CAAC,IAAI,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE;YACjG,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,KAAK,CAAC,wBAAwB,EAAE,CAAC;YACjC,KAAK,CAAC,KAAK,GAAG,CAAG,EAAA,QAAQ,CAAC,CAAC,CAAC,CAAA,KAAA,EAAQ,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA,CAAE,CAAC;AAC/E,YAAA,KAAK,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;SACjC;AAAM,aAAA,IAAI,KAAK,CAAC,GAAG,0CAAuB,KAAK,CAAC,cAAc,IAAI,CAAC,IAAI,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE;YACxG,KAAK,CAAC,KAAK,GAAG,CAAG,EAAA,QAAQ,CAAC,CAAC,CAAC,CAAA,KAAA,EAAQ,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA,CAAE,CAAC;AAC/E,YAAA,KAAK,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;SACjC;KACF;AAED,IAAA,SAAS,CAAC,KAAa,EAAA;QACrB,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;AACrD,QAAA,OAAO,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;KACxD;AAED,IAAA,WAAW,CAAC,IAAU,EAAA;AACpB,QAAA,IAAI,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE;AACzB,YAAA,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;SAC3B;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AAED,IAAA,iBAAiB,CAAC,OAAe,EAAA;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;AACxD,QAAA,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC5C,QAAA,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACvC,QAAA,IAAI,KAAK,KAAK,IAAI,EAAE;YAClB,KAAK,GAAG,IAAI,CAAC;SACd;QACD,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;AACvC,YAAA,KAAK,GAAG,CAAG,EAAA,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,CAAA,CAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SACxD;AACD,QAAA,OAAO,CAAG,EAAA,KAAK,CAAI,CAAA,EAAA,OAAO,EAAE,CAAC;KAC9B;AAED,IAAA,iBAAiB,CAAC,OAAe,EAAA;AAC/B,QAAA,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YACxB,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAc,WAAA,EAAA,OAAO,CAAE,CAAA,CAAC,CAAC;YACrD,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;SACzC;AACD,QAAA,OAAO,OAAO,CAAC;KAChB;AAED,IAAA,WAAW,CAAC,KAAU,EAAA;QACpB,IAAI,KAAK,IAAI,IAAI;AAAE,YAAA,OAAO,EAAE,CAAC;;QAE7B,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACnC,QAAA,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE;YACjB,MAAM,UAAU,GAAG,CAAA,EAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,CAAA,EAAA,EAAK,IAAI,CAAC,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAA,CAAE,CAAC;YACrG,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;SAC1C;AACD,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;KAC9B;AAED,IAAA,UAAU,CAAC,KAAU,EAAA;QACnB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;KAC3C;AAED,IAAA,gBAAgB,CAAC,EAAoB,EAAA;AACnC,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAS,KAAI;YAC5B,IAAI,SAAS,GAAG,IAAI,CAAC;AACrB,YAAA,QAAQ,IAAI,CAAC,cAAc;gBACzB,KAAK,YAAY,CAAC,OAAO;AACvB,oBAAA,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;oBACnC,MAAM;gBACR,KAAK,YAAY,CAAC,MAAM;AACtB,oBAAA,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;oBACnC,MAAM;AACR,gBAAA;oBACE,SAAS,GAAG,IAAI,CAAC;oBACjB,MAAM;aACT;AACD,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,EAAE,CAAC,SAAS,CAAC,CAAC;AAChB,SAAC,CAAC;KACH;AAED,IAAA,qBAAqB,CAAC,SAAiB,EAAA;AACrC,QAAA,OAAO,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,IAAI,CAAC;KACjD;+GA7NU,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,EAF3B,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,wBAAA,EAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,EAAA,SAAA,EAAA,CAAC,6BAA6B,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,2BAA2B,EAAE,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAEzG,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAVvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,uBAAuB;AAC9B,wBAAA,SAAS,EAAE,qBAAqB;AAChC,wBAAA,QAAQ,EAAE,qBAAqB;AAC/B,wBAAA,WAAW,EAAE,wBAAwB;AACtC,qBAAA;AACD,oBAAA,SAAS,EAAE,CAAC,6BAA6B,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAA6B,2BAAA,EAAE,CAAC;AACrH,iBAAA,CAAA;uFAIU,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;;;ACPK,MAAA,yBAAyB,GAAG;AACvC,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,uBAAuB,CAAC;AACtD,IAAA,KAAK,EAAE,IAAI;EACX;IAEU,aAIX;AAJD,CAAA,UAAY,YAAY,EAAA;AACtB,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,YAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACnB,CAAC,EAJW,YAAY,KAAZ,YAAY,GAIvB,EAAA,CAAA,CAAA,CAAA;AAYK,MAAO,uBAAwB,SAAQ,cAAmB,CAAA;IAM9D,WAAoB,CAAA,MAAwB,EAAU,GAAsB,EAAA;AAC1E,QAAA,KAAK,EAAE,CAAC;QADU,IAAM,CAAA,MAAA,GAAN,MAAM,CAAkB;QAAU,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;AAL5E,QAAA,IAAA,CAAA,WAAW,GAAsB,IAAI,YAAY,EAAE,CAAC;QAE3C,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;AAC1B,QAAA,IAAA,CAAA,UAAU,GAAiB,YAAY,CAAC,IAAI,CAAC;QAIpD,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC1B;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE;YAChF,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC1B;KACF;IAED,iBAAiB,GAAA;;QAEf,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;QACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;AACxD,QAAA,IAAI,CAAC,MAAM,GAAG,OAA2B,CAAC;QAC1C,IAAI,CAAC,KAAK,GAAG;AACX,YAAA,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,IAAI,CAAC,QAAQ,GAAG,OAAO,GAAG,UAAU;AAC7C,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,IAAI,EAAE,KAAK;YACX,GAAG,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;YACzB,GAAG,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;YACzB,OAAO,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,WAAW,EAAE;YACnC,MAAM,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAC1C,YAAA,KAAK,EAAE,CAAC,GAAG,KAAI;gBACb,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;gBACzC,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,IAAI,IAAI,CAAA,CAAE,CAAC,CAAC;aAC/E;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,EAAE,EAAE;AACF,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,eAAe,EAAE,GAAG;AACpB,oBAAA,SAAS,EAAE,CAAC;AACZ,oBAAA,IAAI,EAAE,CAAC;AACP,oBAAA,EAAE,EAAE,EAAE;AACP,iBAAA;AACD,gBAAA,EAAE,EAAE;AACF,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,eAAe,EAAE,GAAG;AACpB,oBAAA,SAAS,EAAE,CAAC;AACZ,oBAAA,IAAI,EAAE,CAAC;AACP,oBAAA,EAAE,EAAE,EAAE;AACP,iBAAA;AACD,gBAAA,EAAE,EAAE;AACF,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,eAAe,EAAE,GAAG;AACpB,oBAAA,SAAS,EAAE,CAAC;AACZ,oBAAA,IAAI,EAAE,CAAC;AACP,oBAAA,EAAE,EAAE,EAAE;AACP,iBAAA;AACD,gBAAA,EAAE,EAAE;AACF,oBAAA,IAAI,EAAE,UAAU;AAChB,oBAAA,eAAe,EAAE,GAAG;AACpB,oBAAA,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC;AACnD,iBAAA;AACF,aAAA;SACF,CAAC;KACH;AAED,IAAA,WAAW,CAAC,KAAiB,EAAA;QAC3B,IAAI,QAAQ,CAAC,aAAa,KAAK,KAAK,CAAC,MAAM,EAAE;AAC3C,YAAA,MAAM,IAAI,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;YACtD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9B,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;gBACrF,KAAK,CAAC,cAAc,EAAE,CAAC;AACvB,gBAAA,MAAM,KAAK,GAAG,CAAI,CAAA,EAAA,IAAI,EAAE,CAAC;AACxB,gBAAA,KAAK,CAAC,MAA2B,CAAC,KAAK,GAAG,KAAK,CAAC;;aAElD;AACD,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAClB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtE,gBAAA,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC9E,IAAI,UAAU,EAAE;AACb,oBAAA,KAAK,CAAC,MAA2B,CAAC,KAAK,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAI,CAAA,EAAA,UAAU,EAAE,CAAC;iBAChF;AACD,gBAAA,IAAK,KAAK,CAAC,MAA2B,CAAC,cAAc,IAAI,CAAC,IAAI,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE;oBAC7F,KAAK,CAAC,MAA2B,CAAC,KAAK,GAAG,MAAO,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC,KAAK,CAC7F,CAAC,EACA,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC,MAAM,CAChD,CAAA,CAAE,CAAC;iBACL;aACF;SACF;KACF;AAED,IAAA,WAAW,CAAC,KAAiB,EAAA;AAC3B,QAAA,MAAM,IAAI,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;QACtD,MAAM,IAAI,GAAW,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtC,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtE,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9E,YAAA,IAAI,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE;AACnC,gBAAA,KAAK,CAAC,MAA2B,CAAC,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;aAC/E;YACD,IAAI,CAAC,UAAU,EAAE;AACd,gBAAA,KAAK,CAAC,MAA2B,CAAC,KAAK,GAAG,CAAG,EAAA,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;aACrE;SACF;KACF;AAED,IAAA,cAAc,CAAC,KAAoB,EAAA;AACjC,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,MAA0B,CAAC;AAC/C,QAAA,MAAM,IAAI,GAAW,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAE7C,QAAA,IAAI,KAAK,CAAC,GAAG,KAAA,WAAA,wBAAsB,KAAK,CAAC,cAAc,KAAK,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE;AAC7E,YAAA,KAAK,CAAC,MAA2B,CAAC,KAAK,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;SAC5E;AAAM,aAAA,IAAI,KAAK,CAAC,GAAG,4BAAgB,KAAK,CAAC,cAAc,IAAI,CAAC,IAAI,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE;YACjG,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,KAAK,CAAC,wBAAwB,EAAE,CAAC;AACjC,YAAA,KAAK,CAAC,KAAK,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;AAC/D,YAAA,KAAK,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SAC/B;AAAM,aAAA,IAAI,KAAK,CAAC,GAAG,0CAAuB,KAAK,CAAC,cAAc,IAAI,CAAC,IAAI,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE;AACxG,YAAA,KAAK,CAAC,KAAK,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;AAC/D,YAAA,KAAK,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SAC/B;KACF;AAED,IAAA,SAAS,CAAC,KAAa,EAAA;AACrB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;SACtC;AACD,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;KACtC;AAED,IAAA,WAAW,CAAC,KAAU,EAAA;QACpB,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACnC,QAAA,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE;AACjB,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;YACpD,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;SACvC;AACD,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;KAC9B;AAED,IAAA,WAAW,CAAC,IAAU,EAAA;AACpB,QAAA,IAAI,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE;YACzB,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;SACvC;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AAED,IAAA,iBAAiB,CAAC,OAAe,EAAA;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;AACxD,QAAA,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC5C,QAAA,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACvC,QAAA,IAAI,KAAK,KAAK,IAAI,EAAE;YAClB,KAAK,GAAG,IAAI,CAAC;SACd;QACD,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;AACvC,YAAA,KAAK,GAAG,CAAG,EAAA,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,CAAA,CAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SACxD;AACD,QAAA,OAAO,CAAG,EAAA,KAAK,CAAI,CAAA,EAAA,OAAO,EAAE,CAAC;KAC9B;AAED,IAAA,iBAAiB,CAAC,OAAe,EAAA;AAC/B,QAAA,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YACxB,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAc,WAAA,EAAA,OAAO,CAAE,CAAA,CAAC,CAAC;YACrD,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;SACzC;AACD,QAAA,OAAO,OAAO,CAAC;KAChB;AAED,IAAA,UAAU,CAAC,KAAU,EAAA;QACnB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;KAC3C;AAED,IAAA,gBAAgB,CAAC,EAAuB,EAAA;AACtC,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAS,KAAI;YAC5B,IAAI,SAAS,GAAG,IAAI,CAAC;AACrB,YAAA,QAAQ,IAAI,CAAC,UAAU;gBACrB,KAAK,YAAY,CAAC,OAAO;AACvB,oBAAA,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;oBACnC,MAAM;gBACR,KAAK,YAAY,CAAC,MAAM;AACtB,oBAAA,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;oBACnC,MAAM;AACR,gBAAA;oBACE,SAAS,GAAG,IAAI,CAAC;oBACjB,MAAM;aACT;AACD,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,EAAE,CAAC,SAAS,CAAC,CAAC;AAChB,SAAC,CAAC;KACH;AAED,IAAA,qBAAqB,CAAC,SAAiB,EAAA;AACrC,QAAA,OAAO,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,IAAI,CAAC;KACjD;+GAnMU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,EAFvB,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,wBAAA,EAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,EAAA,SAAA,EAAA,CAAC,yBAAyB,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,uBAAuB,EAAE,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAEjG,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAVnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,kBAAkB;AACzB,wBAAA,SAAS,EAAE,qBAAqB;AAChC,wBAAA,QAAQ,EAAE,qBAAqB;AAC/B,wBAAA,WAAW,EAAE,wBAAwB;AACtC,qBAAA;AACD,oBAAA,SAAS,EAAE,CAAC,yBAAyB,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAyB,uBAAA,EAAE,CAAC;AAC7G,iBAAA,CAAA;uHAIU,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;;;AChDR;;;;;;AAMG;AAyBH;;;;;AAKG;MACU,yBAAyB,GAAG,IAAI,cAAc,CAAiB,2BAA2B,EAAE;AAEzG;AACA,MAAM,wBAAwB,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AAE/G,IAAI,YAAY,GAAG,CAAC,CAAC;AAErB;AACA,MAAM,aAAa,CAAA;IACjB,WACS,CAAA,WAAmB,EACnB,gBAAoC;;IAEpC,SAAoB,EAAA;QAHpB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAQ;QACnB,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAoB;QAEpC,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;KACzB;AACL,CAAA;AAED;AACA;AAgBM,MAAO,SAAU,SAAQ,aAAa,CAAA;AA+C1C;;;AAGG;AACH,IAAA,IACI,QAAQ,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,KAAK,IAAI,EAAE;AACtD,YAAA,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;SAChC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;IACD,IAAI,QAAQ,CAAC,KAAc,EAAA;AACzB,QAAA,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;;;AAI9C,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACrB,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;SAC1B;KACF;AAGD;;;AAGG;AACH,IAAA,IACI,EAAE,GAAA;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC;KACjB;IACD,IAAI,EAAE,CAAC,KAAa,EAAA;QAClB,IAAI,CAAC,GAAG,GAAG,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC;KAC/B;AASD;;;AAGG;AACH,IAAA,IACI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;IACD,IAAI,QAAQ,CAAC,KAAc,EAAA;AACzB,QAAA,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KAC/C;;AAID,IAAA,IACI,IAAI,GAAA;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;KACnB;IACD,IAAI,IAAI,CAAC,KAAa,EAAA;AACpB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,MAAM,CAAC;QAC7B,IAAI,CAAC,aAAa,EAAE,CAAC;;;;AAKrB,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,sBAAsB,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAChE,IAAI,CAAC,WAAW,CAAC,aAAkC,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;SACxE;KACF;AAGD;;;AAGG;AACH,IAAA,IACI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;KACvC;IACD,IAAI,KAAK,CAAC,KAAa,EAAA;AACrB,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE;AACxB,YAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,GAAG,KAAK,CAAC;AACvC,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;SAC1B;KACF;;AAGD,IAAA,IACI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;IACD,IAAI,QAAQ,CAAC,KAAc,EAAA;AACzB,QAAA,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KAC/C;IAOD,WACY,CAAA,WAAmF,EACnF,SAAmB;;IAEF,SAAoB,EACnC,WAAmB,EACnB,gBAAoC,EACO,kBAAuB,EACtE,gBAAiC,EACzC,MAAc,EAAA;AAEd,QAAA,KAAK,CAAC,WAAW,EAAE,gBAAgB,EAAE,SAAS,CAAC,CAAC;QAVtC,IAAW,CAAA,WAAA,GAAX,WAAW,CAAwE;QACnF,IAAS,CAAA,SAAA,GAAT,SAAS,CAAU;QAEF,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;QAIvC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAiB;AA5JjC,QAAA,IAAA,CAAA,IAAI,GAAG,CAAA,WAAA,EAAc,YAAY,EAAE,EAAE,CAAC;AAehD;;;AAGG;QACH,IAAO,CAAA,OAAA,GAAY,KAAK,CAAC;QAEzB,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;;QAG5B,IAAY,CAAA,YAAA,GAAW,IAAI,CAAC;AAI5B;;;AAGG;AACM,QAAA,IAAA,CAAA,YAAY,GAAkB,IAAI,OAAO,EAAQ,CAAC;AAE3D;;;AAGG;QACH,IAAW,CAAA,WAAA,GAAW,YAAY,CAAC;AAEnC;;;AAGG;QACH,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QAuBT,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAgClB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAkBlB,IAAK,CAAA,KAAA,GAAG,MAAM,CAAC;QAyBjB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AAEhB,QAAA,IAAA,CAAA,qBAAqB,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KACzG,sBAAsB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAChC,CAAC;AAeA,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;QAC/C,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;;;AAIhD,QAAA,IAAI,CAAC,mBAAmB,GAAG,kBAAkB,IAAI,OAAO,CAAC;AAEzD,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC;;AAGvC,QAAA,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;;;;AAKlB,QAAA,IAAI,SAAS,CAAC,GAAG,EAAE;AACjB,YAAA,MAAM,CAAC,iBAAiB,CAAC,MAAK;gBAC5B,WAAW,CAAC,aAAa,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,KAAY,KAAI;AACnE,oBAAA,MAAM,EAAE,GAAG,KAAK,CAAC,MAA0B,CAAC;AAC5C,oBAAA,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,cAAc,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE;;;;;AAKvD,wBAAA,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3B,wBAAA,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;qBAC5B;AACH,iBAAC,CAAC,CAAC;AACL,aAAC,CAAC,CAAC;SACJ;QAED,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;AAC3C,QAAA,IAAI,CAAC,eAAe,GAAG,QAAQ,KAAK,QAAQ,CAAC;AAC7C,QAAA,IAAI,CAAC,WAAW,GAAG,QAAQ,KAAK,UAAU,CAAC;QAE3C,IAAI,CAAC,WAAW,GAAI,IAAI,CAAC,WAAW,CAAC,aAAkC,CAAC,IAAI,CAAC;AAC7E,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,YAAA,IAAI,CAAC,WAAW,GAAI,OAA6B,CAAC,QAAQ,GAAG,iBAAiB,GAAG,QAAQ,CAAC;SAC3F;AAAM,aAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AAC3B,YAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;SAC/B;KACF;IAED,eAAe,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE;AAC5B,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AAChF,gBAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,YAAY,CAAC;AACrC,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;AAC3B,aAAC,CAAC,CAAC;SACJ;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;KAC1B;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;AAE7B,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE;YAC5B,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;SACtE;KACF;IAED,SAAS,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;;;;;SAKnB;;;;QAKD,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;;AAGD,IAAA,KAAK,CAAC,OAAsB,EAAA;QAC1B,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;KAC/C;;;;AAOD,IAAA,aAAa,CAAC,SAAkB,EAAA;AAC9B,QAAA,IAAI,SAAS,KAAK,IAAI,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,EAAE;AAChE,YAAA,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;AACzB,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;SAC1B;KACF;;;;AAMD,IAAA,QAAQ,CAAC,KAAiB,EAAA;;;AAGxB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC;AAC/B,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,CAAC,iBAAiB,GAAI,IAAI,CAAC,WAAW,CAAC,aAAqC,CAAC,cAAc,CAAC;SACjG;KACF;;IAGS,sBAAsB,GAAA;QAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC;AAEtD,QAAA,IAAI,IAAI,CAAC,oBAAoB,KAAK,QAAQ,EAAE;AAC1C,YAAA,IAAI,CAAC,oBAAoB,GAAG,QAAQ,CAAC;AACrC,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;SAC1B;KACF;;IAGS,aAAa,GAAA;AACrB,QAAA,IAAI,wBAAwB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE;YACrD,MAAM,IAAI,KAAK,CAAC,CAAA,oBAAA,EAAuB,IAAI,CAAC,KAAK,CAAE,CAAA,CAAC,CAAC;SACtD;KACF;;IAGS,aAAa,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;KAC5D;;IAGS,WAAW,GAAA;;QAEnB,MAAM,QAAQ,GAAI,IAAI,CAAC,WAAW,CAAC,aAAkC,CAAC,QAAQ,CAAC;AAC/E,QAAA,OAAO,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC;KACtC;AAED;;;AAGG;AACH,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;KAClH;AAED;;;AAGG;AACH,IAAA,IAAI,gBAAgB,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;;;;AAIxB,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,aAAkC,CAAC;YAC1E,MAAM,WAAW,GAAkC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;;;AAI5E,YAAA,QACE,IAAI,CAAC,OAAO,IAAI,aAAa,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE,aAAa,CAAC,aAAa,GAAG,CAAC,CAAC,IAAI,WAAW,IAAI,WAAW,CAAC,KAAK,CAAC,EACjI;SACH;aAAM;YACL,OAAO,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;SACpC;KACF;AAED;;;AAGG;AACH,IAAA,iBAAiB,CAAC,GAAa,EAAA;QAC7B,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACvC;AAED;;;AAGG;IACH,gBAAgB,GAAA;;;;AAId,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,KAAK,EAAE,CAAC;SACd;KACF;AA5VU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,SAAS,mNA4JU,yBAAyB,EAAA,QAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGA5J5C,SAAS,EAAA,QAAA,EAAA,0DAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,sBAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,eAAA,EAAA,sCAAA,EAAA,mBAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,mBAAA,EAAA,OAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,EAAA,SAAA,EAFT,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAEvD,SAAS,EAAA,UAAA,EAAA,CAAA;kBAfrB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,CAA0D,wDAAA,CAAA;AACpE,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,oBAAoB;AAC3B,wBAAA,WAAW,EAAE,IAAI;AACjB,wBAAA,oBAAoB,EAAE,aAAa;AACnC,wBAAA,YAAY,EAAE,UAAU;AACxB,wBAAA,YAAY,EAAE,UAAU;AACxB,wBAAA,iBAAiB,EAAE,sCAAsC;AACzD,wBAAA,qBAAqB,EAAE,YAAY;AACnC,wBAAA,sBAAsB,EAAE,qBAAqB;AAC7C,wBAAA,qBAAqB,EAAE,OAAO;AAC/B,qBAAA;oBACD,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAW,SAAA,EAAE,CAAC;AACnE,iBAAA,CAAA;;0BA0JI,QAAQ;;0BAAI,IAAI;;0BAChB,QAAQ;;0BACR,QAAQ;;0BACR,QAAQ;;0BAAI,IAAI;;0BAAI,MAAM;2BAAC,yBAAyB,CAAA;4FAvJjB,gBAAgB,EAAA,CAAA;sBAArD,WAAW;uBAAC,uBAAuB,CAAA;gBA+ChC,QAAQ,EAAA,CAAA;sBADX,KAAK;gBAwBF,EAAE,EAAA,CAAA;sBADL,KAAK;gBAaG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAOF,QAAQ,EAAA,CAAA;sBADX,KAAK;gBAWF,IAAI,EAAA,CAAA;sBADP,KAAK;gBAsBF,KAAK,EAAA,CAAA;sBADR,KAAK;gBAaF,QAAQ,EAAA,CAAA;sBADX,KAAK;gBAkHN,aAAa,EAAA,CAAA;sBAFZ,YAAY;uBAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAA;;sBAC9B,YAAY;uBAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAA;gBAY/B,QAAQ,EAAA,CAAA;sBADP,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;;;ACvUnC;MAQa,mBAAmB,CAAA;;IAE9B,IACI,MAAM,CAAC,MAA4B,EAAA;QACrC,IAAI,MAAM,EAAE;AACV,YAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;AACtB,YAAA,MAAM,CAAC,gBAAgB,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;SAC7D;KACF;IAQD,WACU,CAAA,WAAyC,EACM,SAA+B,EAAA;QAD9E,IAAW,CAAA,WAAA,GAAX,WAAW,CAA8B;QACM,IAAS,CAAA,SAAA,GAAT,SAAS,CAAsB;AARxF;;;AAGG;QACoB,IAAqB,CAAA,qBAAA,GAAW,KAAK,CAAC;AAM3D,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACnB,YAAA,OAAO,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;SAChE;QACD,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AAC9C,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC3B,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,WAAW,CAAC,KAAU,EAAA;AACpB,QAAA,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;KAClC;AAED,IAAA,YAAY,CAAC,KAAU,EAAA;AACrB,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,YAAA,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;SAChC;KACF;AApCU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,4CAkBA,iBAAiB,EAAA,QAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAlBpC,mBAAmB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,CAAA,cAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,mBAAA,EAAA,uBAAA,EAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAP/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,iBAAiB;AACxB,wBAAA,qBAAqB,EAAE,uBAAuB;AAC/C,qBAAA;AACF,iBAAA,CAAA;;0BAmBI,QAAQ;;0BAAI,IAAI;;0BAAI,MAAM;2BAAC,iBAAiB,CAAA;yCAf3C,MAAM,EAAA,CAAA;sBADT,KAAK;gBAYiB,qBAAqB,EAAA,CAAA;sBAA3C,KAAK;uBAAC,cAAc,CAAA;;;;;;;;;;;;MCiBV,uBAAuB,CAAA;;AA2BlC,IAAA,IACI,QAAQ,GAAA;QACV,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,EAAE;AAC/C,YAAA,OAAQ,IAAI,CAAC,MAAc,CAAC,QAAQ,CAAC;SACtC;AAED,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;KACzB;IACD,IAAI,QAAQ,CAAC,KAAc,EAAA;AACzB,QAAA,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KAC/C;AAYD,IAAA,WAAA,CACU,WAAuB,EACvB,GAAsB,EACP,eAAuB,EACD,UAA4B,EAAA;QAHjE,IAAW,CAAA,WAAA,GAAX,WAAW,CAAY;QACvB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;QAEe,IAAU,CAAA,UAAA,GAAV,UAAU,CAAkB;AApDnE,QAAA,IAAA,CAAA,aAAa,GAAG,YAAY,CAAC,KAAK,CAAC;AACnC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,OAAO,EAAQ,CAAC;;QAgBzC,IAAc,CAAA,cAAA,GAAY,KAAK,CAAC;AAqC9B,QAAA,MAAM,cAAc,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;AAC/C,QAAA,IAAI,CAAC,QAAQ,GAAG,cAAc,IAAI,cAAc,KAAK,CAAC,GAAG,cAAc,GAAG,IAAI,CAAC;KAChF;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,MAAM,EAAE;YAClB,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAC3B;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;AACjC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;KAC5B;IAED,kBAAkB,GAAA;QAChB,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;IAED,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,yBAAyB,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC;KAChF;IAED,UAAU,GAAA;AACR,QAAA,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,EAAE;YAC3D,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB;KACF;AAED,IAAA,WAAW,CAAC,KAAa,EAAA;AACvB,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QACzB,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;AACnC,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;AAC3B,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SACvB;aAAM;AACL,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;SACxB;KACF;;AAGD,IAAA,SAAS,CAAC,KAAa,EAAA;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;YAC3B,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;AACnC,YAAA,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;SAC1B;KACF;AAED,IAAA,UAAU,CAAC,KAAa,EAAA;AACtB,QAAA,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;KAC3B;AAED,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;KAC/C;IAEO,kBAAkB,GAAA;QACxB,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;YACrF,IAAI,CAAC,UAAU,EAAE,CAAC;AACpB,SAAC,CAAC,CAAC;KACJ;+GAnHU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAoDrB,UAAU,EAAA,SAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EACD,eAAe,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGArD1B,uBAAuB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,QAAA,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,CAAA,YAAA,EAAA,WAAA,CAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,sBAAA,EAAA,0BAAA,EAAA,yBAAA,EAAA,mBAAA,EAAA,uCAAA,EAAA,iBAAA,EAAA,qCAAA,EAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EA4CvB,4BAA4B,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECvFzC,kXAWwB,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,QAAA,EAAA,eAAA,EAAA,aAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;ADkDtB,UAAA,CAAA;AADC,IAAA,YAAY,EAAE;;AACiB,CAAA,EAAA,uBAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,KAAA,CAAA,CAAA,CAAA;4FAlBrB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAlBnC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EAGxB,IAAA,EAAA;AACJ,wBAAA,KAAK,EAAE,oBAAoB;;;AAG3B,wBAAA,iBAAiB,EAAE,sBAAsB;AACzC,wBAAA,4BAA4B,EAAE,yBAAyB;AACvD,wBAAA,qBAAqB,EAAE,qCAAqC;AAC5D,wBAAA,mBAAmB,EAAE,mCAAmC;AACxD,wBAAA,SAAS,EAAE,iBAAiB;qBAC7B,EACS,QAAA,EAAA,kBAAkB,iBACb,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,kXAAA,EAAA,CAAA;;0BAsD5C,SAAS;2BAAC,UAAU,CAAA;;0BACpB,QAAQ;;0BAAI,MAAM;2BAAC,eAAe,CAAA;yCAhDvB,MAAM,EAAA,CAAA;sBAAnB,KAAK;uBAAC,KAAK,CAAA;gBAEH,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAGG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAGe,SAAS,EAAA,CAAA;sBAA7B,KAAK;uBAAC,YAAY,CAAA;gBAKnB,cAAc,EAAA,CAAA;sBAFb,KAAK;gBAKG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAGG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAIF,QAAQ,EAAA,CAAA;sBADX,KAAK;gBAce,OAAO,EAAA,CAAA;sBAA3B,SAAS;uBAAC,QAAQ,CAAA;gBAInB,OAAO,EAAA,CAAA;sBADN,SAAS;uBAAC,4BAA4B,CAAA;;;AEvFzC;MAmDa,eAAe,CAAA;+GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,iBA9BxB,gBAAgB;YAChB,eAAe;YACf,gBAAgB;YAChB,SAAS;YACT,wBAAwB;YACxB,wBAAwB;YACxB,iBAAiB;YACjB,uBAAuB;YACvB,uBAAuB;YACvB,2BAA2B;YAC3B,4BAA4B;YAC5B,uBAAuB;YACvB,mBAAmB,CAAA,EAAA,OAAA,EAAA,CAdX,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,gBAAgB,CAAA,EAAA,OAAA,EAAA,CAiB7F,gBAAgB;YAChB,eAAe;YACf,gBAAgB;YAChB,SAAS;YACT,wBAAwB;YACxB,wBAAwB;YACxB,iBAAiB;YACjB,uBAAuB;YACvB,uBAAuB;YACvB,4BAA4B;YAC5B,2BAA2B;YAC3B,uBAAuB;YACvB,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA;gHAGV,eAAe,EAAA,OAAA,EAAA,CAhChB,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,gBAAgB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAgCpF,eAAe,EAAA,UAAA,EAAA,CAAA;kBAjC3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,gBAAgB,CAAC;AAChG,oBAAA,YAAY,EAAE;wBACZ,gBAAgB;wBAChB,eAAe;wBACf,gBAAgB;wBAChB,SAAS;wBACT,wBAAwB;wBACxB,wBAAwB;wBACxB,iBAAiB;wBACjB,uBAAuB;wBACvB,uBAAuB;wBACvB,2BAA2B;wBAC3B,4BAA4B;wBAC5B,uBAAuB;wBACvB,mBAAmB;AACpB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,gBAAgB;wBAChB,eAAe;wBACf,gBAAgB;wBAChB,SAAS;wBACT,wBAAwB;wBACxB,wBAAwB;wBACxB,iBAAiB;wBACjB,uBAAuB;wBACvB,uBAAuB;wBACvB,4BAA4B;wBAC5B,2BAA2B;wBAC3B,uBAAuB;wBACvB,mBAAmB;AACpB,qBAAA;AACF,iBAAA,CAAA;;;AClDD;;AAEG;;;;"}
1
+ {"version":3,"file":"novo-elements-elements-field.mjs","sources":["../../../projects/novo-elements/src/elements/field/error/error.ts","../../../projects/novo-elements/src/elements/field/error/error.html","../../../projects/novo-elements/src/elements/field/field-control.ts","../../../projects/novo-elements/src/elements/field/hint/hint.ts","../../../projects/novo-elements/src/elements/field/hint/hint.html","../../../projects/novo-elements/src/elements/field/field.ts","../../../projects/novo-elements/src/elements/field/field.html","../../../projects/novo-elements/src/elements/field/fieldset.ts","../../../projects/novo-elements/src/elements/field/fieldset.html","../../../projects/novo-elements/src/elements/field/formats/base-format.ts","../../../projects/novo-elements/src/elements/field/formats/date-format.ts","../../../projects/novo-elements/src/elements/field/formats/date-range-format.ts","../../../projects/novo-elements/src/elements/field/formats/date-time-format.ts","../../../projects/novo-elements/src/elements/field/formats/time-format.ts","../../../projects/novo-elements/src/elements/field/input.ts","../../../projects/novo-elements/src/elements/field/picker.directive.ts","../../../projects/novo-elements/src/elements/field/toggle/picker-toggle.component.ts","../../../projects/novo-elements/src/elements/field/toggle/picker-toggle.component.html","../../../projects/novo-elements/src/elements/field/field.module.ts","../../../projects/novo-elements/src/elements/field/novo-elements-elements-field.ts"],"sourcesContent":["// NG2\nimport { Component, OnInit } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Component({\n selector: 'novo-error',\n templateUrl: './error.html',\n styleUrls: ['./error.scss'],\n})\nexport class NovoErrorElement implements OnInit {\n constructor(private sanitizer: DomSanitizer) {}\n\n ngOnInit(): any {}\n}\n","<ng-content></ng-content>","import { Directive } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { Observable } from 'rxjs';\n\n/** An interface which allows a control to work inside of a `NovoField`. */\n@Directive()\nexport abstract class NovoFieldControl<T> {\n /** The value of the control. */\n value: T | null;\n\n /** The last key pressed. */\n lastKeyValue: string | null;\n\n /** The last cursor position. */\n lastCaretPosition: number | null;\n\n /**\n * Stream that emits whenever the state of the control changes such that the parent `NovoField`\n * needs to run change detection.\n */\n readonly stateChanges: Observable<void>;\n\n /** The element ID for this control. */\n readonly id: string;\n\n /** The placeholder for this control. */\n readonly placeholder: string;\n\n /** Gets the NgControl for this control. */\n readonly ngControl: NgControl | null;\n\n /** Whether the control is focused. */\n readonly focused: boolean;\n\n /** Whether the control is empty. */\n readonly empty: boolean;\n\n /** Whether the `NovoField` label should try to float. */\n // readonly shouldLabelFloat: boolean;\n // readonly shouldFieldHaveUnderline: boolean;\n\n /** Whether the control is required. */\n readonly required: boolean;\n\n /** Whether the control is disabled. */\n readonly disabled: boolean;\n\n /** Whether the control is in an error state. */\n readonly errorState: boolean;\n\n /** Whether the control can have multiple values. */\n readonly multiple?: boolean;\n /**\n * An optional name for the control type that can be used to distinguish `novo-form-field` elements\n * based on their control type. The form field will add a class,\n * `novo-form-field-type-{{controlType}}` to its root element.\n */\n readonly controlType?: string;\n\n /**\n * Whether the input is currently in an autofilled state. If property is not present on the\n * control it is assumed to be false.\n */\n readonly autofilled?: boolean;\n\n /** Sets the list of element IDs that currently describe this control. */\n abstract setDescribedByIds(ids: string[]): void;\n\n /** Handles a click on the control's container. */\n abstract onContainerClick(event: MouseEvent): void;\n\n abstract focus(options?: FocusOptions): void;\n}\n","// NG2\nimport { Component, Input, OnInit } from '@angular/core';\n\nlet nextUniqueId = 0;\n@Component({\n selector: 'novo-hint',\n templateUrl: './hint.html',\n styleUrls: ['./hint.scss'],\n host: {\n class: 'novo-hint',\n '[class.novo-field-hint-end]': 'align === \"end\"',\n '[attr.id]': 'id',\n // Remove align attribute to prevent it from interfering with layout.\n '[attr.align]': 'null',\n },\n})\nexport class NovoHintElement implements OnInit {\n /** Whether to align the hint label at the start or end of the line. */\n @Input() align: 'start' | 'end' = 'start';\n\n /** Unique ID for the hint. Used for the aria-describedby on the form field control. */\n @Input() id: string = `novo-hint-${nextUniqueId++}`;\n\n ngOnInit(): any {}\n}\n","<ng-content></ng-content>","// NG2\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n InjectionToken,\n Input,\n OnDestroy,\n Output,\n QueryList,\n ViewChild,\n} from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { fromEvent, Subject, Subscription } from 'rxjs';\nimport { startWith, takeUntil } from 'rxjs/operators';\nimport { NovoLabel, HasOverlay, NOVO_OVERLAY_CONTAINER } from 'novo-elements/elements/common';\nimport { NovoErrorElement } from './error/error';\nimport { NovoFieldControl } from './field-control';\nimport { NovoHintElement } from './hint/hint';\n\n@Directive({ selector: '[novoPrefix]' })\nexport class NovoFieldPrefixDirective {}\n@Directive({ selector: '[novoSuffix]' })\nexport class NovoFieldSuffixDirective {}\n\nconst NOVO_INPUT_UNDERLINED_TYPES = [\n 'text',\n 'date',\n 'time',\n 'datetime-local',\n 'password',\n 'email',\n 'tel',\n 'select',\n 'textarea',\n 'number',\n 'novo-chip-list',\n 'chip-list',\n];\nexport const NOVO_FORM_FIELD = new InjectionToken<NovoFieldElement>('NovoFormField');\n\n@Component({\n selector: 'novo-field',\n templateUrl: './field.html',\n styleUrls: ['./field.scss', './field-standard.scss', './field-fill.scss', './field-outline.scss', './field-list.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'novo-field',\n '[class.novo-field-layout-horizontal]': 'layout==\"horizontal\"',\n '[class.novo-field-layout-vertical]': 'layout==\"vertical\"',\n '[class.novo-field-appearance-standard]': 'appearance == \"standard\"',\n '[class.novo-field-appearance-fill]': 'appearance == \"fill\"',\n '[class.novo-field-appearance-outline]': 'appearance == \"outline\"',\n '[class.novo-field-appearance-list]': 'appearance == \"list\"',\n '[class.novo-field-appearance-underlined]': '_isUnderlinedInput()',\n '[class.novo-field-invalid]': '_control.errorState',\n '[class.novo-field-has-label]': '_hasLabel()',\n '[class.novo-field-no-label]': '!_hasLabel()',\n // '[class.novo-field-hide-placeholder]': '_hideControlPlaceholder()',\n '[class.novo-field-disabled]': '_control.disabled',\n '[class.novo-field-autofilled]': '_control.autofilled',\n '[class.novo-focused]': '_control.focused',\n // '[class.novo-accent]': 'color == \"accent\"',\n // '[class.novo-warn]': 'color == \"warn\"',\n '[class.ng-untouched]': '_shouldForward(\"untouched\")',\n '[class.ng-touched]': '_shouldForward(\"touched\")',\n '[class.ng-pristine]': '_shouldForward(\"pristine\")',\n '[class.ng-dirty]': '_shouldForward(\"dirty\")',\n '[class.ng-valid]': '_shouldForward(\"valid\")',\n '[class.ng-invalid]': '_shouldForward(\"invalid\")',\n '[class.ng-pending]': '_shouldForward(\"pending\")',\n },\n providers: [{ provide: NOVO_FORM_FIELD, useExisting: NovoFieldElement }],\n})\nexport class NovoFieldElement implements AfterContentInit, OnDestroy {\n private _labelClicks = Subscription.EMPTY;\n\n // @ViewChild('connectionContainer') _connectionContainerRef: ElementRef;\n @ViewChild('inputContainer') _inputContainerRef: ElementRef;\n // @ViewChild('label') private _label: ElementRef<HTMLElement>;\n\n @ContentChild(NovoLabel) _labelElement: NovoLabel;\n @ContentChildren(NovoHintElement) _hintElements: QueryList<NovoHintElement>;\n @ContentChildren(NovoErrorElement) _errorElements: QueryList<NovoErrorElement>;\n @ContentChildren(NovoFieldPrefixDirective) _prefixElements: QueryList<NovoFieldPrefixDirective>;\n @ContentChildren(NovoFieldSuffixDirective) _suffixElements: QueryList<NovoFieldSuffixDirective>;\n @ContentChildren(NOVO_OVERLAY_CONTAINER) _overlayElements: QueryList<HasOverlay>;\n\n @ContentChild(NovoFieldControl) _control: NovoFieldControl<any>;\n\n @Input() layout: 'horizontal' | 'vertical' = 'vertical';\n @Input() appearance: 'standard' | 'outline' | 'fill' | 'list' = 'standard';\n /**\n * When this field has a picker element, express which element it should be parented to\n */\n @Input() customOverlayOrigin: ElementRef;\n\n @Input()\n width: string;\n\n private _destroyed = new Subject<void>();\n\n @Output() valueChanges: EventEmitter<any> = new EventEmitter();\n @Output() stateChanges: EventEmitter<void> = new EventEmitter();\n\n constructor(public _elementRef: ElementRef, private _changeDetectorRef: ChangeDetectorRef) {}\n /**\n * Gets an ElementRef for the element that a overlay attached to the form-field should be\n * positioned relative to.\n */\n getConnectedOverlayOrigin(): ElementRef {\n return this.customOverlayOrigin || this._inputContainerRef || this._elementRef;\n }\n\n ngAfterContentInit(): any {\n this._validateControlChild();\n\n const control = this._control;\n if (control.controlType) {\n this._elementRef.nativeElement.classList.add(`novo-field-type-${control.controlType}`);\n this._elementRef.nativeElement.setAttribute('data-control-type', control.controlType);\n }\n\n if (control.id) {\n this._elementRef.nativeElement.setAttribute('data-control-id', control.id);\n }\n\n if (control.ngControl?.name) {\n this._elementRef.nativeElement.setAttribute('data-control-key', control.ngControl.name);\n }\n\n // Subscribe to changes in the child control state in order to update the form field UI.\n // tslint:disable-next-line:deprecation\n control.stateChanges.pipe(startWith(null)).subscribe(() => {\n this.stateChanges.next();\n this._changeDetectorRef.markForCheck();\n });\n\n // Run change detection if the value changes.\n if (control.ngControl && control.ngControl.valueChanges) {\n control.ngControl.valueChanges.pipe(takeUntil(this._destroyed)).subscribe((v) => {\n this.valueChanges.next(v);\n this._changeDetectorRef.markForCheck();\n });\n }\n\n if (this._hasLabel()) {\n this._labelClicks = fromEvent(this._labelElement.nativeElement, 'click').subscribe(() => this._control.focus());\n }\n }\n\n ngOnDestroy() {\n this._destroyed.next();\n this._destroyed.complete();\n this._labelClicks.unsubscribe();\n }\n\n /** Throws an error if the form field's control is missing. */\n protected _validateControlChild() {\n if (!this._control) {\n throw new Error('Missing Novo Control');\n }\n }\n\n public blurEventIsInField(blurEvt: FocusEvent): boolean {\n return this._elementRef.nativeElement.contains(blurEvt.relatedTarget) || this._overlayElements.some(hasOverlay => hasOverlay.overlay?.isBlurRecipient(blurEvt));\n }\n\n @HostListener('click', ['$event'])\n _handleContainerClick(evt: MouseEvent) {\n this._control.onContainerClick(evt);\n }\n\n _isUnderlinedInput(): boolean {\n return NOVO_INPUT_UNDERLINED_TYPES.includes(this._control.controlType);\n }\n\n /** Determines whether to display hints or errors. */\n _getDisplayedMessages(): 'error' | 'hint' {\n return this._errorElements && this._errorElements.length > 0 && this._control.errorState ? 'error' : 'hint';\n }\n\n /** Determines whether a class from the NgControl should be forwarded to the host element. */\n _shouldForward(prop: keyof NgControl): boolean {\n const ngControl = this._control ? this._control.ngControl : null;\n return ngControl && ngControl[prop];\n }\n\n _hasLabel() {\n return !!this._labelElement;\n }\n}\n","<div class=\"novo-field-label\">\n <ng-content select=\"novo-label\"></ng-content>\n</div>\n<div class=\"novo-field-input\" [style.width]=\"width\" #inputContainer>\n <div class=\"novo-field-prefix\">\n <ng-content select=\"[novoPrefix]\"></ng-content>\n </div>\n <div class=\"novo-field-infix\">\n <ng-content></ng-content>\n </div>\n <div class=\"novo-field-suffix\">\n <ng-content select=\"[novoSuffix]\"></ng-content>\n </div>\n</div>\n<div class=\"novo-field-messages\" [ngSwitch]=\"_getDisplayedMessages()\">\n <div class=\"novo-field-hint-wrapper\" *ngSwitchCase=\"'error'\">\n <ng-content select=\"novo-error\"></ng-content>\n </div>\n <div class=\"novo-field-hint-wrapper\" *ngSwitchCase=\"'hint'\">\n <ng-content select=\"novo-hint\"></ng-content>\n <ng-content select=\"novo-hint[align=end]\"></ng-content>\n </div>\n</div>","// NG2\nimport { AfterContentInit, ChangeDetectionStrategy, Component, ContentChildren, HostBinding, Input, QueryList } from '@angular/core';\nimport { BooleanInput } from 'novo-elements/utils';\nimport { NovoFieldElement } from './field';\n\n@Component({\n selector: 'novo-fields',\n templateUrl: './fieldset.html',\n styleUrls: ['./fieldset.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'novo-field',\n '[class.novo-fieldset-appearance-standard]': 'appearance == \"standard\"',\n '[class.novo-fieldset-appearance-fill]': 'appearance == \"fill\"',\n '[class.novo-fieldset-appearance-outline]': 'appearance == \"outline\"',\n '[class.novo-fieldset-appearance-list]': 'appearance == \"list\"',\n // '[class.novo-field-layout-horizontal]': 'layout==\"horizontal\"',\n // '[class.novo-field-layout-vertical]': 'layout==\"vertical\"',\n },\n})\nexport class NovoFieldsElement implements AfterContentInit {\n @ContentChildren(NovoFieldElement)\n _fields: QueryList<NovoFieldElement>;\n\n _layout: 'horizontal' | 'vertical' = 'horizontal';\n @Input() get layout(): any {\n return this._layout;\n }\n set layout(value) {\n if (this._layout !== value) {\n this._layout = value;\n this._updateFieldLayout();\n }\n }\n\n _appearance: 'standard' | 'outline' | 'fill' | 'list' = 'standard';\n @Input() get appearance(): any {\n return this._appearance;\n }\n set appearance(value) {\n if (this._appearance !== value) {\n this._appearance = value;\n this._updateFieldAppearance();\n }\n }\n\n @HostBinding('class.full-width')\n @Input()\n @BooleanInput()\n fullWidth: boolean = false;\n\n ngAfterContentInit(): any {\n this._updateFieldLayout();\n this._updateFieldAppearance();\n }\n\n private _updateFieldLayout(): void {\n if (this._fields) {\n this._fields.forEach((field) => {\n field.layout = this.layout;\n });\n }\n }\n\n private _updateFieldAppearance(): void {\n if (this._fields) {\n this._fields.forEach((field) => {\n field.appearance = this.appearance;\n });\n }\n }\n}\n","<ng-content></ng-content>","import { EventEmitter, InjectionToken } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\n\nexport const NOVO_INPUT_FORMAT = new InjectionToken<NovoInputFormat>('NovoInputFormat');\n\nexport interface NovoInputFormat<T = any> extends ControlValueAccessor {\n valueChange: EventEmitter<any>;\n formatValue(value: T): string;\n}\n\nexport enum DATE_FORMATS {\n DATE = 'date',\n ISO8601 = 'iso8601',\n STRING = 'string',\n}\n","import { Directive, ElementRef, EventEmitter, forwardRef, Inject, Input, Optional, Renderer2 } from '@angular/core';\nimport { COMPOSITION_BUFFER_MODE, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IMaskDirective, IMaskFactory } from 'angular-imask';\nimport { isValid } from 'date-fns';\nimport { MaskedRange } from 'imask';\nimport { NovoLabelService } from 'novo-elements/services';\nimport { DateUtil } from 'novo-elements/utils';\nimport { DATE_FORMATS, NOVO_INPUT_FORMAT } from './base-format';\n\nexport const DATEFORMAT_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NovoDateFormatDirective),\n multi: true,\n};\n\n@Directive({\n selector: 'input[dateFormat]',\n host: {\n class: 'novo-date-format',\n },\n providers: [DATEFORMAT_VALUE_ACCESSOR, { provide: NOVO_INPUT_FORMAT, useExisting: NovoDateFormatDirective }],\n})\nexport class NovoDateFormatDirective extends IMaskDirective<any> {\n valueChange: EventEmitter<any> = new EventEmitter();\n\n @Input() dateFormat: DATE_FORMATS = DATE_FORMATS.DATE;\n\n constructor(private labels: NovoLabelService) {\n super();\n const dateFormat = this.labels.dateFormat.toUpperCase();\n this.unmask = 'typed' as unknown as false; // typing is to work around angular-imask bug\n this.imask = {\n mask: Date,\n pattern: 'm{/}`d{/}`Y',\n overwrite: true,\n autofix: true,\n lazy: false,\n min: new Date(1900, 0, 1),\n max: new Date(2100, 0, 1),\n prepare: (str) => str.toUpperCase(),\n format: (date) => this.formatValue(date),\n parse: (str) => DateUtil.parse(str),\n blocks: {\n d: {\n mask: MaskedRange,\n placeholderChar: 'D',\n from: 1,\n to: 31,\n maxLength: 2,\n },\n m: {\n mask: MaskedRange,\n placeholderChar: 'M',\n from: 1,\n to: 12,\n maxLength: 2,\n },\n Y: {\n mask: MaskedRange,\n placeholderChar: 'Y',\n from: 1900,\n to: 9999,\n },\n },\n };\n }\n\n normalize(value: string) {\n const pattern = this.labels.dateFormat.toUpperCase();\n if (!value) {\n return \"\";\n }\n return DateUtil.format(DateUtil.parse(value), pattern);\n }\n\n formatAsIso(date: Date): string {\n if (date && isValid(date)) {\n return date.toISOString().slice(0, 10);\n }\n return null;\n }\n\n formatValue(value: any): string {\n if (value == null) return '';\n // Use `parse` because it keeps dates in locale\n const date = DateUtil.parse(value);\n if (isValid(date)) {\n const dateFormat = this.labels.dateFormat.toUpperCase();\n return DateUtil.format(date, dateFormat);\n }\n return this.normalize(value);\n }\n\n writeValue(value: any) {\n super.writeValue(this.formatValue(value));\n }\n\n registerOnChange(fn: (_: any) => void): void {\n this.onChange = (date: any) => {\n let formatted = date;\n switch (this.dateFormat) {\n case DATE_FORMATS.ISO8601:\n formatted = this.formatAsIso(date);\n break;\n case DATE_FORMATS.STRING:\n formatted = this.formatValue(date);\n break;\n default:\n formatted = date;\n break;\n }\n this.valueChange.emit(date);\n fn(formatted);\n };\n }\n}\n","import { Directive, ElementRef, EventEmitter, forwardRef, Inject, Input, Optional, Renderer2 } from '@angular/core';\nimport { COMPOSITION_BUFFER_MODE, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IMaskDirective, IMaskFactory } from 'angular-imask';\nimport { isValid } from 'date-fns';\nimport { MaskedRange } from 'imask';\nimport { NovoLabelService } from 'novo-elements/services';\nimport { DateUtil } from 'novo-elements/utils';\nimport { DATE_FORMATS, NOVO_INPUT_FORMAT } from './base-format';\n\nexport const DATERANGEFORMAT_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NovoDateRangeFormatDirective),\n multi: true,\n};\n\ntype DateRange = {\n startDate: Date;\n endDate: Date;\n};\n\nexport const imaskHaha = {\n mask: 'm{/}`d{/}`Y - m{/}`d{/}`Y',\n overwrite: true,\n autofix: true,\n lazy: false,\n blocks: {\n d: {\n mask: MaskedRange,\n placeholderChar: 'D',\n from: 1,\n to: 31,\n maxLength: 2,\n },\n m: {\n mask: MaskedRange,\n placeholderChar: 'M',\n from: 1,\n to: 12,\n maxLength: 2,\n },\n Y: {\n mask: MaskedRange,\n placeholderChar: 'Y',\n from: 1900,\n to: 9999,\n },\n },\n};\n\n@Directive({\n selector: 'input[dateRangeFormat]',\n host: {\n class: 'novo-date-range-format',\n },\n providers: [DATERANGEFORMAT_VALUE_ACCESSOR, { provide: NOVO_INPUT_FORMAT, useExisting: NovoDateRangeFormatDirective }],\n})\nexport class NovoDateRangeFormatDirective extends IMaskDirective<any> {\n valueChange: EventEmitter<any> = new EventEmitter();\n\n @Input() dateRangeFormat: DATE_FORMATS = DATE_FORMATS.DATE;\n\n constructor(private labels: NovoLabelService) {\n super();\n const dateRangeFormat = this.labels.dateFormat.toUpperCase();\n this.unmask = false;\n this.imask = {\n mask: 'm{/}`d{/}`Y - m{/}`d{/}`Y',\n overwrite: true,\n autofix: true,\n lazy: false,\n blocks: {\n d: {\n mask: MaskedRange,\n placeholderChar: 'D',\n from: 1,\n to: 31,\n maxLength: 2,\n },\n m: {\n mask: MaskedRange,\n placeholderChar: 'M',\n from: 1,\n to: 12,\n maxLength: 2,\n },\n Y: {\n mask: MaskedRange,\n placeholderChar: 'Y',\n from: 1900,\n to: 9999,\n },\n },\n };\n }\n\n normalize(value: string | Date) {\n const pattern = this.labels.dateFormat.toUpperCase();\n return DateUtil.format(value ? DateUtil.parse(value) : null, pattern);\n }\n\n formatAsIso(value: DateRange): string {\n if (!value) return '';\n const { startDate, endDate } = value;\n if (startDate && isValid(startDate) && endDate && isValid(endDate)) {\n const startIso = startDate.toISOString().slice(0, 10);\n const endIso = endDate.toISOString().slice(0, 10);\n return `${startIso}/${endIso}`;\n }\n return null;\n }\n\n formatValue(value: DateRange): string {\n if (!value) return '';\n const { startDate, endDate } = value;\n return `${this.formatDate(startDate)} - ${this.formatDate(endDate)}`;\n }\n\n formatDate(source: Date | string) {\n const date = DateUtil.parse(source);\n if (isValid(date)) {\n const dateRangeFormat = this.labels.dateFormat.toUpperCase();\n return DateUtil.format(date, dateRangeFormat);\n }\n return this.normalize(source);\n }\n\n writeValue(value: any) {\n if (this['_initialValue'] && value === this['_initialValue']) {\n // if this call is coming from the super class, skip through.\n // If we ever wanted to reduce the need for this hack/workaround, we could refactor\n // IMaskDirective to exist as a child portion of DateRangeFormatDirective.\n super.writeValue(value);\n return;\n }\n const formattedValue = this.formatValue(value);\n if (formattedValue !== this.maskValue) {\n super.writeValue(this.formatValue(value));\n this.onChange(this.formatValue(value));\n }\n }\n\n registerOnChange(fn: (_: any) => void): void {\n this.onChange = (input: any) => {\n if (this.validate(input)) {\n const dates = this.extractDatesFromInput(input);\n let formatted: DateRange | string = dates;\n switch (this.dateRangeFormat) {\n case DATE_FORMATS.ISO8601:\n formatted = this.formatAsIso(dates);\n break;\n case DATE_FORMATS.STRING:\n formatted = this.formatValue(dates);\n break;\n default:\n formatted = dates;\n break;\n }\n this.valueChange.emit(dates);\n fn(formatted);\n }\n };\n }\n\n extractDatesFromInput(value) {\n const [startStr, endStr] = value.split(' - ');\n const startDate = DateUtil.parse(startStr);\n const endDate = DateUtil.parse(endStr);\n return { startDate, endDate };\n }\n\n validate(dateStr: string) {\n const { startDate, endDate } = this.extractDatesFromInput(dateStr);\n return isValid(startDate) && isValid(endDate);\n }\n}\n","import { Directive, ElementRef, EventEmitter, Inject, Input, OnChanges, Optional, Renderer2, SimpleChanges, forwardRef } from '@angular/core';\nimport { COMPOSITION_BUFFER_MODE, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IMaskDirective, IMaskFactory } from 'angular-imask';\nimport { isValid } from 'date-fns';\nimport { MaskedEnum, MaskedRange } from 'imask';\nimport { NovoLabelService } from 'novo-elements/services';\nimport { DateUtil, Key } from 'novo-elements/utils';\nimport { DATE_FORMATS, NOVO_INPUT_FORMAT, NovoInputFormat } from './base-format';\n\nexport const DATETIMEFORMAT_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NovoDateTimeFormatDirective),\n multi: true,\n};\n\n@Directive({\n selector: 'input[dateTimeFormat]',\n host: {\n class: 'novo-date-time-format',\n '(input)': '_checkInput($event)',\n '(blur)': '_handleBlur($event)',\n '(keydown)': '_handleKeydown($event)',\n },\n providers: [DATETIMEFORMAT_VALUE_ACCESSOR, { provide: NOVO_INPUT_FORMAT, useExisting: NovoDateTimeFormatDirective }],\n})\nexport class NovoDateTimeFormatDirective extends IMaskDirective<any> implements NovoInputFormat, OnChanges {\n valueChange: EventEmitter<any> = new EventEmitter();\n\n @Input() military: boolean = false;\n @Input() dateTimeFormat: DATE_FORMATS = DATE_FORMATS.DATE;\n\n constructor(private labels: NovoLabelService) {\n super();\n this.initFormatOptions();\n }\n\n initFormatOptions() {\n const amFormat = this.labels.timeFormatAM.toUpperCase();\n const pmFormat = this.labels.timeFormatPM.toUpperCase();\n this.unmask = 'typed' as unknown as false; // typing is to work around angular-imask bug\n this.imask = {\n mask: Date,\n pattern: this.military ? 'm{/}`d{/}`Y, HH:mm' : 'm{/}`d{/}`Y, HH:mm aa',\n overwrite: true,\n autofix: true,\n lazy: false,\n min: new Date(1900, 0, 1),\n max: new Date(2100, 0, 1),\n prepare: (str) => str.toUpperCase(),\n format: (date) => this.formatValue(date),\n parse: (str) => DateUtil.parse(str),\n blocks: {\n d: {\n mask: MaskedRange,\n placeholderChar: 'D',\n from: 1,\n to: 31,\n maxLength: 2,\n },\n m: {\n mask: MaskedRange,\n placeholderChar: 'M',\n from: 1,\n to: 12,\n maxLength: 2,\n },\n Y: {\n mask: MaskedRange,\n placeholderChar: 'Y',\n from: 1900,\n to: 9999,\n },\n HH: {\n mask: MaskedRange,\n placeholderChar: '-',\n maxLength: 2,\n from: 0,\n to: 23,\n },\n hh: {\n mask: MaskedRange,\n placeholderChar: '-',\n maxLength: 2,\n from: 1,\n to: 12,\n },\n mm: {\n mask: MaskedRange,\n placeholderChar: '-',\n maxLength: 2,\n from: 0,\n to: 59,\n },\n ss: {\n mask: MaskedRange,\n placeholderChar: '-',\n maxLength: 2,\n from: 0,\n to: 59,\n },\n aa: {\n mask: MaskedEnum,\n placeholderChar: '-',\n enum: ['AM', 'PM', 'am', 'pm', amFormat, pmFormat],\n },\n },\n };\n }\n \n ngOnChanges(changes: SimpleChanges): void {\n if (Object.keys(changes).some((key) => ['military', 'dateFormat'].includes(key))) {\n this.initFormatOptions();\n }\n }\n\n _checkInput(event: InputEvent): void {\n if (document.activeElement === event.target) {\n const text = (event.target as HTMLInputElement).value;\n const dateTime = text.split(', ');\n const hour = dateTime[1].slice(0, 2);\n if ((this.military && Number(dateTime[1][0]) > 2) || (!this.military && Number(dateTime[1][0]) > 1)) {\n event.preventDefault();\n const value = `0${dateTime[1]}`;\n (event.target as HTMLInputElement).value = value;\n // this.onChange(value);\n }\n if (!this.military) {\n const input = dateTime[1].substr(5, 4).replace(/\\-/g, '').trim().slice(0, 2);\n const timePeriod = this.imask.blocks.aa.enum.find((it) => it[0] === input[0]);\n if (timePeriod) {\n (event.target as HTMLInputElement).value = `${dateTime[0]}, ${dateTime[1].slice(0, 5)} ${timePeriod}`;\n }\n if ((event.target as HTMLInputElement).selectionStart >= 3 && this.hourOneFormatRequired(hour)) {\n (event.target as HTMLInputElement).value = `${dateTime[0]}, 01:${(event.target as HTMLInputElement).value.slice(\n 3,\n (event.target as HTMLInputElement).value.length,\n )}`;\n }\n }\n }\n }\n\n _handleBlur(event: FocusEvent): void {\n const text = (event.target as HTMLInputElement).value;\n const dateTime = text.split(', ');\n const hour: string = dateTime[1].slice(0, 2);\n if (!this.military) {\n const input = dateTime[1].substr(5, 4).replace(/\\-/g, '').trim().slice(0, 2);\n const timePeriod = this.imask.blocks.aa.enum.find((it) => it[0] === input[0]);\n if (this.hourOneFormatRequired(hour)) {\n (event.target as HTMLInputElement).value = `${dateTime[0]}, 01:${dateTime[1].slice(3, dateTime[1].length)}`;\n }\n if (!timePeriod) {\n (event.target as HTMLInputElement).value = `${dateTime[0]}, ${dateTime[1].slice(0, 5)} --`;\n }\n }\n }\n\n _handleKeydown(event: KeyboardEvent): void {\n const input = event.target as HTMLInputElement;\n const dateTime = input.value.split(', ');\n const hour: string = dateTime[1].slice(0, 2);\n\n if (event.key === Key.Backspace && input.selectionStart === dateTime[1].length) {\n (event.target as HTMLInputElement).value = `${dateTime[1].slice(0, 5)} --`;\n } else if (event.key === Key.Tab && input.selectionStart <= 2 && this.hourOneFormatRequired(hour)) {\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n input.value = `${dateTime[0]}, 01:${dateTime[1].slice(3, dateTime[1].length)}`;\n input.setSelectionRange(15, 15);\n } else if (event.key === Key.ArrowRight && input.selectionStart >= 2 && this.hourOneFormatRequired(hour)) {\n input.value = `${dateTime[0]}, 01:${dateTime[1].slice(3, dateTime[1].length)}`;\n input.setSelectionRange(14, 14);\n }\n }\n\n normalize(value: string) {\n const pattern = this.labels.dateFormat.toUpperCase();\n return DateUtil.format(value ? DateUtil.parse(value) : null, pattern);\n }\n\n formatAsIso(date: Date): string {\n if (date && isValid(date)) {\n return date.toISOString();\n }\n return null;\n }\n\n convertTime12to24(time12h: string) {\n const pmFormat = this.labels.timeFormatPM.toUpperCase();\n const [time, meridian] = time12h.split(' ');\n let [hours, minutes] = time.split(':');\n if (hours === '12') {\n hours = '00';\n }\n if (['PM', pmFormat].includes(meridian)) {\n hours = `${parseInt(hours, 10) + 12}`.padStart(2, '0');\n }\n return `${hours}:${minutes}`;\n }\n\n convertTime24to12(time24h: string) {\n if (time24h.length === 5) {\n const date = DateUtil.parse(`2020-01-01T${time24h}`);\n return DateUtil.format(date, 'hh:mm A');\n }\n return time24h;\n }\n\n formatValue(value: any): string {\n if (value == null) return '';\n // Use `parse` because it keeps dates in locale\n const date = DateUtil.parse(value);\n if (isValid(date)) {\n const dateFormat = `${this.labels.dateFormat.toUpperCase()}, ${this.military ? 'HH:mm' : 'hh:mm A'}`;\n return DateUtil.format(date, dateFormat);\n }\n return this.normalize(value);\n }\n\n writeValue(value: any) {\n super.writeValue(this.formatValue(value));\n }\n\n registerOnChange(fn: (_: any) => void): void {\n this.onChange = (date: any) => {\n let formatted = date;\n switch (this.dateTimeFormat) {\n case DATE_FORMATS.ISO8601:\n formatted = this.formatAsIso(date);\n break;\n case DATE_FORMATS.STRING:\n formatted = this.formatValue(date);\n break;\n default:\n formatted = date;\n break;\n }\n this.valueChange.emit(date);\n fn(formatted);\n };\n }\n\n hourOneFormatRequired(hourInput: string): boolean {\n return hourInput === '-1' || hourInput === '1-';\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n OnChanges,\n Optional,\n Renderer2,\n SimpleChanges,\n} from '@angular/core';\nimport { COMPOSITION_BUFFER_MODE, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IMaskDirective, IMaskFactory } from 'angular-imask';\nimport { isValid } from 'date-fns';\nimport { MaskedEnum, MaskedRange } from 'imask';\nimport { NovoLabelService } from 'novo-elements/services';\nimport { DateUtil, Key } from 'novo-elements/utils';\nimport { NOVO_INPUT_FORMAT, NovoInputFormat } from './base-format';\n\nexport const TIMEFORMAT_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NovoTimeFormatDirective),\n multi: true,\n};\n\nexport enum TIME_FORMATS {\n DATE = 'date',\n ISO8601 = 'iso8601',\n STRING = 'string',\n}\n\n@Directive({\n selector: 'input[timeFormat]',\n host: {\n class: 'novo-time-format',\n '(input)': '_checkInput($event)',\n '(blur)': '_handleBlur($event)',\n '(keydown)': '_handleKeydown($event)',\n },\n providers: [TIMEFORMAT_VALUE_ACCESSOR, { provide: NOVO_INPUT_FORMAT, useExisting: NovoTimeFormatDirective }],\n})\nexport class NovoTimeFormatDirective extends IMaskDirective<any> implements NovoInputFormat, AfterViewInit, OnChanges {\n valueChange: EventEmitter<any> = new EventEmitter();\n\n @Input() military: boolean = false;\n @Input() timeFormat: TIME_FORMATS = TIME_FORMATS.DATE;\n\n constructor(private labels: NovoLabelService, private cdr: ChangeDetectorRef) {\n super();\n this.initFormatOptions();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (Object.keys(changes).some((key) => ['military', 'timeFormat'].includes(key))) {\n this.initFormatOptions();\n }\n }\n\n initFormatOptions() {\n // const pattern = this.military ? 'HH:mm' : 'hh:mm A';\n const amFormat = this.labels.timeFormatAM.toUpperCase();\n const pmFormat = this.labels.timeFormatPM.toUpperCase();\n this.unmask = 'typed' as unknown as false; // typing is to work around angular-imask bug\n this.imask = {\n mask: Date,\n pattern: this.military ? 'HH:mm' : 'hh:mm aa',\n overwrite: true,\n autofix: true,\n lazy: false,\n min: new Date(1970, 0, 1),\n max: new Date(2100, 0, 1),\n prepare: (str) => str.toUpperCase(),\n format: (value) => this.formatValue(value),\n parse: (str) => {\n const time = this.convertTime12to24(str);\n return DateUtil.parse(`${DateUtil.format(Date.now(), 'YYYY-MM-DD')}T${time}`);\n },\n blocks: {\n HH: {\n mask: MaskedRange,\n placeholderChar: '-',\n maxLength: 2,\n from: 0,\n to: 23,\n },\n hh: {\n mask: MaskedRange,\n placeholderChar: '-',\n maxLength: 2,\n from: 1,\n to: 12,\n },\n mm: {\n mask: MaskedRange,\n placeholderChar: '-',\n maxLength: 2,\n from: 0,\n to: 59,\n },\n aa: {\n mask: MaskedEnum,\n placeholderChar: '-',\n enum: ['AM', 'PM', 'am', 'pm', amFormat, pmFormat],\n },\n },\n };\n }\n\n _checkInput(event: InputEvent): void {\n if (document.activeElement === event.target) {\n const text = (event.target as HTMLInputElement).value;\n const hour = text.slice(0, 2);\n if ((this.military && Number(text[0]) > 2) || (!this.military && Number(text[0]) > 1)) {\n event.preventDefault();\n const value = `0${text}`;\n (event.target as HTMLInputElement).value = value;\n // this.onChange(value);\n }\n if (!this.military) {\n const input = text.substr(5, 4).replace(/\\-/g, '').trim().slice(0, 2);\n const timePeriod = this.imask.blocks.aa.enum.find((it) => it[0] === input[0]);\n if (timePeriod) {\n (event.target as HTMLInputElement).value = `${text.slice(0, 5)} ${timePeriod}`;\n }\n if ((event.target as HTMLInputElement).selectionStart >= 3 && this.hourOneFormatRequired(hour)) {\n (event.target as HTMLInputElement).value = `01:${(event.target as HTMLInputElement).value.slice(\n 3,\n (event.target as HTMLInputElement).value.length,\n )}`;\n }\n }\n }\n }\n\n _handleBlur(event: FocusEvent): void {\n const text = (event.target as HTMLInputElement).value;\n const hour: string = text.slice(0, 2);\n if (!this.military) {\n const input = text.substr(5, 4).replace(/\\-/g, '').trim().slice(0, 2);\n const timePeriod = this.imask.blocks.aa.enum.find((it) => it[0] === input[0]);\n if (this.hourOneFormatRequired(hour)) {\n (event.target as HTMLInputElement).value = `01:${text.slice(3, text.length)}`;\n }\n if (!timePeriod) {\n (event.target as HTMLInputElement).value = `${text.slice(0, 5)} --`;\n }\n }\n }\n\n _handleKeydown(event: KeyboardEvent): void {\n const input = event.target as HTMLInputElement;\n const hour: string = input.value.slice(0, 2);\n\n if (event.key === Key.Backspace && input.selectionStart === input.value.length) {\n (event.target as HTMLInputElement).value = `${input.value.slice(0, 5)} --`;\n } else if (event.key === Key.Tab && input.selectionStart <= 2 && this.hourOneFormatRequired(hour)) {\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n input.value = `01:${input.value.slice(3, input.value.length)}`;\n input.setSelectionRange(3, 3);\n } else if (event.key === Key.ArrowRight && input.selectionStart >= 2 && this.hourOneFormatRequired(hour)) {\n input.value = `01:${input.value.slice(3, input.value.length)}`;\n input.setSelectionRange(2, 2);\n }\n }\n\n normalize(value: string) {\n if (this.military) {\n return this.convertTime12to24(value);\n }\n return this.convertTime24to12(value);\n }\n\n formatValue(value: any): string {\n const date = DateUtil.parse(value);\n if (isValid(date)) {\n const pattern = this.military ? 'HH:mm' : 'hh:mm A';\n return DateUtil.format(date, pattern);\n }\n return this.normalize(value);\n }\n\n formatAsIso(date: Date): string {\n if (date && isValid(date)) {\n return DateUtil.format(date, 'HH:mm');\n }\n return null;\n }\n\n convertTime12to24(time12h: string) {\n const pmFormat = this.labels.timeFormatPM.toUpperCase();\n const [time, meridian] = time12h.split(' ');\n let [hours, minutes] = time.split(':');\n if (hours === '12') {\n hours = '00';\n }\n if (['PM', pmFormat].includes(meridian)) {\n hours = `${parseInt(hours, 10) + 12}`.padStart(2, '0');\n }\n return `${hours}:${minutes}`;\n }\n\n convertTime24to12(time24h: string) {\n if (time24h.length === 5) {\n const date = DateUtil.parse(`2020-01-01T${time24h}`);\n return DateUtil.format(date, 'hh:mm A');\n }\n return time24h;\n }\n\n writeValue(value: any) {\n super.writeValue(this.formatValue(value));\n }\n\n registerOnChange(fn: (date: any) => void): void {\n this.onChange = (date: any) => {\n let formatted = date;\n switch (this.timeFormat) {\n case TIME_FORMATS.ISO8601:\n formatted = this.formatAsIso(date);\n break;\n case TIME_FORMATS.STRING:\n formatted = this.formatValue(date);\n break;\n default:\n formatted = date;\n break;\n }\n this.valueChange.emit(date);\n fn(formatted);\n };\n }\n\n hourOneFormatRequired(hourInput: string): boolean {\n return hourInput === '-1' || hourInput === '1-';\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { getSupportedInputTypes, Platform } from '@angular/cdk/platform';\nimport { AutofillMonitor } from '@angular/cdk/text-field';\nimport {\n AfterViewInit,\n Directive,\n DoCheck,\n ElementRef,\n HostBinding,\n HostListener,\n Inject,\n InjectionToken,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n Optional,\n Self,\n} from '@angular/core';\nimport { FormGroupDirective, NgControl, NgForm } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { NovoFieldControl } from './field-control';\n\n/**\n * This token is used to inject the object whose value should be set into `NovoInput`. If none is\n * provided, the native `HTMLInputElement` is used. Directives like `MatDatepickerInput` can provide\n * themselves for this token, in order to make `NovoInput` delegate the getting and setting of the\n * value to them.\n */\nexport const NOVO_INPUT_VALUE_ACCESSOR = new InjectionToken<{ value: any }>('NOVO_INPUT_VALUE_ACCESSOR');\n\n// Invalid input type. Using one of these will throw an NovoInputUnsupportedTypeError.\nconst NOVO_INPUT_INVALID_TYPES = ['button', 'checkbox', 'file', 'hidden', 'image', 'radio', 'reset', 'submit'];\n\nlet nextUniqueId = 0;\n\n// Boilerplate for applying mixins to NovoInput.\nclass NovoInputBase {\n constructor(\n public _parentForm: NgForm,\n public _parentFormGroup: FormGroupDirective,\n /** @docs-private */\n public ngControl: NgControl,\n ) {}\n}\n\n/** Directive that allows a native input to work inside a `NovoField`. */\n// tslint:disable: no-conflicting-lifecycle member-ordering\n@Directive({\n selector: `input[novoInput], textarea[novoInput], select[novoInput]`,\n host: {\n class: 'novo-input-element',\n '[attr.id]': 'id',\n '[attr.placeholder]': 'placeholder',\n '[disabled]': 'disabled',\n '[required]': 'required',\n '[attr.readonly]': 'readonly && !_isNativeSelect || null',\n '[attr.aria-invalid]': 'errorState',\n '[attr.aria-required]': 'required.toString()',\n '[attr.autocomplete]': \"'off'\",\n },\n providers: [{ provide: NovoFieldControl, useExisting: NovoInput }],\n})\nexport class NovoInput extends NovoInputBase implements NovoFieldControl<any>, OnChanges, OnDestroy, AfterViewInit, DoCheck {\n protected _uid = `novo-input-${nextUniqueId++}`;\n protected _previousNativeValue: any;\n private _inputValueAccessor: { value: any };\n /** The aria-describedby attribute on the input for improved a11y. */\n @HostBinding('attr.aria-describedby') _ariaDescribedby: string;\n\n /** Whether the component is being rendered on the server. */\n readonly _isServer: boolean;\n\n /** Whether the component is a native html select. */\n readonly _isNativeSelect: boolean;\n\n /** Whether the component is a textarea. */\n readonly _isTextarea: boolean;\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n focused: boolean = false;\n\n errorState: boolean = false;\n\n /** @docs-private Implemented as part of NovoFieldControl. */\n lastKeyValue: string = null;\n /** @docs-private Implemented as part of NovoFieldControl.*/\n lastCaretPosition: number | null;\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n readonly stateChanges: Subject<void> = new Subject<void>();\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n controlType: string = 'novo-input';\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n autofilled = false;\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n @Input()\n get disabled(): boolean {\n if (this.ngControl && this.ngControl.disabled !== null) {\n return this.ngControl.disabled;\n }\n return this._disabled;\n }\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n\n // Browsers may not fire the blur event if the input is disabled too quickly.\n // Reset from here to ensure that the element doesn't become stuck.\n if (this.focused) {\n this.focused = false;\n this.stateChanges.next();\n }\n }\n protected _disabled = false;\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n @Input()\n get id(): string {\n return this._id;\n }\n set id(value: string) {\n this._id = value || this._uid;\n }\n protected _id: string;\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n @Input() placeholder: string;\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n @Input()\n get required(): boolean {\n return this._required;\n }\n set required(value: boolean) {\n this._required = coerceBooleanProperty(value);\n }\n protected _required = false;\n\n /** Input type of the element. */\n @Input()\n get type(): string {\n return this._type;\n }\n set type(value: string) {\n this._type = value || 'text';\n this._validateType();\n\n // When using Angular inputs, developers are no longer able to set the properties on the native\n // input element. To ensure that bindings for `type` work, we need to sync the setter\n // with the native property. Textarea elements don't support the type property or attribute.\n if (!this._isTextarea && getSupportedInputTypes().has(this._type)) {\n (this._elementRef.nativeElement as HTMLInputElement).type = this._type;\n }\n }\n protected _type = 'text';\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n @Input()\n get value(): string {\n return this._inputValueAccessor.value;\n }\n set value(value: string) {\n if (value !== this.value) {\n this._inputValueAccessor.value = value;\n this.stateChanges.next();\n }\n }\n\n /** Whether the element is readonly. */\n @Input()\n get readonly(): boolean {\n return this._readonly;\n }\n set readonly(value: boolean) {\n this._readonly = coerceBooleanProperty(value);\n }\n private _readonly = false;\n\n protected _neverEmptyInputTypes = ['date', 'datetime', 'datetime-local', 'month', 'time', 'week'].filter((t) =>\n getSupportedInputTypes().has(t),\n );\n\n constructor(\n protected _elementRef: ElementRef<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>,\n protected _platform: Platform,\n /** @docs-private */\n @Optional() @Self() public ngControl: NgControl,\n @Optional() _parentForm: NgForm,\n @Optional() _parentFormGroup: FormGroupDirective,\n @Optional() @Self() @Inject(NOVO_INPUT_VALUE_ACCESSOR) inputValueAccessor: any,\n private _autofillMonitor: AutofillMonitor,\n ngZone: NgZone,\n ) {\n super(_parentForm, _parentFormGroup, ngControl);\n\n const element = this._elementRef.nativeElement;\n const nodeName = element.nodeName.toLowerCase();\n\n // If no input value accessor was explicitly specified, use the element as the input value\n // accessor.\n this._inputValueAccessor = inputValueAccessor || element;\n\n this._previousNativeValue = this.value;\n\n // Force setter to be called in case id was not specified.\n this.id = this.id;\n\n // On some versions of iOS the caret gets stuck in the wrong place when holding down the delete\n // key. In order to get around this we need to \"jiggle\" the caret loose. Since this bug only\n // exists on iOS, we only bother to install the listener on iOS.\n if (_platform.IOS) {\n ngZone.runOutsideAngular(() => {\n _elementRef.nativeElement.addEventListener('keyup', (event: Event) => {\n const el = event.target as HTMLInputElement;\n if (!el.value && !el.selectionStart && !el.selectionEnd) {\n // Note: Just setting `0, 0` doesn't fix the issue. Setting\n // `1, 1` fixes it for the first time that you type text and\n // then hold delete. Toggling to `1, 1` and then back to\n // `0, 0` seems to completely fix it.\n el.setSelectionRange(1, 1);\n el.setSelectionRange(0, 0);\n }\n });\n });\n }\n\n this._isServer = !this._platform.isBrowser;\n this._isNativeSelect = nodeName === 'select';\n this._isTextarea = nodeName === 'textarea';\n\n this.controlType = (this._elementRef.nativeElement as HTMLInputElement).type;\n if (this._isNativeSelect) {\n this.controlType = (element as HTMLSelectElement).multiple ? 'select-multiple' : 'select';\n } else if (this._isTextarea) {\n this.controlType = 'textarea';\n }\n }\n\n ngAfterViewInit() {\n if (this._platform.isBrowser) {\n this._autofillMonitor.monitor(this._elementRef.nativeElement).subscribe((event) => {\n this.autofilled = event.isAutofilled;\n this.stateChanges.next();\n });\n }\n }\n\n ngOnChanges() {\n this.stateChanges.next();\n }\n\n ngOnDestroy() {\n this.stateChanges.complete();\n\n if (this._platform.isBrowser) {\n this._autofillMonitor.stopMonitoring(this._elementRef.nativeElement);\n }\n }\n\n ngDoCheck() {\n if (this.ngControl) {\n // We need to re-evaluate this on every change detection cycle, because there are some\n // error triggers that we can't subscribe to (e.g. parent form submissions). This means\n // that whatever logic is in here has to be super lean or we risk destroying the performance.\n // this.updateErrorState();\n }\n\n // We need to dirty-check the native element's value, because there are some cases where\n // we won't be notified when it changes (e.g. the consumer isn't using forms or they're\n // updating the value using `emitEvent: false`).\n this._dirtyCheckNativeValue();\n }\n\n /** Focuses the input. */\n focus(options?: FocusOptions): void {\n this._elementRef.nativeElement.focus(options);\n }\n\n // We have to use a `HostListener` here in order to support both Ivy and ViewEngine.\n // In Ivy the `host` bindings will be merged when this class is extended, whereas in\n // ViewEngine they're overwritten.\n @HostListener('focus', ['true'])\n @HostListener('blur', ['false'])\n _focusChanged(isFocused: boolean) {\n if (isFocused !== this.focused && (!this.readonly || !isFocused)) {\n this.focused = isFocused;\n this.stateChanges.next();\n }\n }\n\n // We have to use a `HostListener` here in order to support both Ivy and ViewEngine.\n // In Ivy the `host` bindings will be merged when this class is extended, whereas in\n // ViewEngine they're overwritten.\n @HostListener('input', ['$event'])\n _onInput(event: InputEvent) {\n // Listening to the input event wouldn't be necessary when the input is using the\n // FormsModule or ReactiveFormsModule, because Angular forms also listens to input events.\n this.lastKeyValue = event.data;\n if (this._isTextarea) {\n this.lastCaretPosition = (this._elementRef.nativeElement as HTMLTextAreaElement).selectionStart;\n }\n }\n\n /** Does some manual dirty checking on the native input `value` property. */\n protected _dirtyCheckNativeValue() {\n const newValue = this._elementRef.nativeElement.value;\n\n if (this._previousNativeValue !== newValue) {\n this._previousNativeValue = newValue;\n this.stateChanges.next();\n }\n }\n\n /** Make sure the input is a supported type. */\n protected _validateType() {\n if (NOVO_INPUT_INVALID_TYPES.indexOf(this._type) > -1) {\n throw new Error(`Invalid Input Type: ${this._type}`);\n }\n }\n\n /** Checks whether the input type is one of the types that are never empty. */\n protected _isNeverEmpty() {\n return this._neverEmptyInputTypes.indexOf(this._type) > -1;\n }\n\n /** Checks whether the input is invalid based on the native validation. */\n protected _isBadInput() {\n // The `validity` property won't be present on platform-server.\n const validity = (this._elementRef.nativeElement as HTMLInputElement).validity;\n return validity && validity.badInput;\n }\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n get empty(): boolean {\n return !this._isNeverEmpty() && !this._elementRef.nativeElement.value && !this._isBadInput() && !this.autofilled;\n }\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n get shouldLabelFloat(): boolean {\n if (this._isNativeSelect) {\n // For a single-selection `<select>`, the label should float when the selected option has\n // a non-empty display value. For a `<select multiple>`, the label *always* floats to avoid\n // overlapping the label with the options.\n const selectElement = this._elementRef.nativeElement as HTMLSelectElement;\n const firstOption: HTMLOptionElement | undefined = selectElement.options[0];\n\n // On most browsers the `selectedIndex` will always be 0, however on IE and Edge it'll be\n // -1 if the `value` is set to something, that isn't in the list of options, at a later point.\n return (\n this.focused || selectElement.multiple || !this.empty || !!(selectElement.selectedIndex > -1 && firstOption && firstOption.label)\n );\n } else {\n return this.focused || !this.empty;\n }\n }\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n setDescribedByIds(ids: string[]) {\n this._ariaDescribedby = ids.join(' ');\n }\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n onContainerClick() {\n // Do not re-focus the input element if the element is already focused. Otherwise it can happen\n // that someone clicks on a time input and the cursor resets to the \"hours\" field while the\n // \"minutes\" field was actually clicked. See: https://github.com/angular/components/issues/12849\n if (!this.focused) {\n this.focus();\n }\n }\n\n static ngAcceptInputType_disabled: BooleanInput;\n static ngAcceptInputType_readonly: BooleanInput;\n static ngAcceptInputType_required: BooleanInput;\n\n // Accept `any` to avoid conflicts with other directives on `<input>` that may\n // accept different types.\n static ngAcceptInputType_value: any;\n}\n","import { Directive, ElementRef, Inject, Input, Optional, Self } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { NovoInputFormat, NOVO_INPUT_FORMAT } from './formats/base-format';\n\n/** Directive used to connect an input to a MatDatepicker. */\n@Directive({\n selector: 'input[picker]',\n host: {\n class: 'novo-has-picker',\n '[attr.autocomplete]': 'autocompleteAttribute',\n },\n})\nexport class NovoPickerDirective {\n /** The datepicker that this input is associated with. */\n @Input()\n set picker(picker: ControlValueAccessor) {\n if (picker) {\n this._picker = picker;\n picker.registerOnChange((value) => this.updateValue(value));\n }\n }\n _picker: ControlValueAccessor;\n /**\n * `autocomplete` attribute to be set on the input element.\n * @docs-private\n */\n @Input('autocomplete') autocompleteAttribute: string = 'off';\n\n constructor(\n private _elementRef: ElementRef<HTMLInputElement>,\n @Optional() @Self() @Inject(NOVO_INPUT_FORMAT) private formatter: NovoInputFormat<any>,\n ) {\n if (!this.formatter) {\n console.warn('Picker directive is missing required formatter');\n }\n this.formatter?.valueChange.subscribe((value) => {\n this.updatePicker(value);\n });\n }\n\n updateValue(value: any) {\n this.formatter.writeValue(value);\n }\n\n updatePicker(value: any) {\n if (this._picker) {\n this._picker.writeValue(value);\n }\n }\n}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n AfterContentInit,\n AfterViewInit,\n Attribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n Optional,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { Subject, Subscription } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { BooleanInput } from 'novo-elements/utils';\nimport { NovoButtonElement } from 'novo-elements/elements/button';\nimport { NovoOverlayTemplateComponent } from 'novo-elements/elements/common';\nimport { NovoFieldElement, NOVO_FORM_FIELD } from '../field';\n\n@Component({\n selector: 'novo-picker-toggle',\n templateUrl: 'picker-toggle.component.html',\n styleUrls: ['picker-toggle.component.scss'],\n host: {\n class: 'novo-picker-toggle',\n // Always set the tabindex to -1 so that it doesn't overlap with any custom tabindex the\n // consumer may have provided, while still being able to receive focus.\n '[attr.tabindex]': 'disabled ? null : -1',\n '[class.novo-toggle-active]': 'picker && picker.opened',\n '[class.novo-accent]': 'picker && picker.color === \"accent\"',\n '[class.novo-warn]': 'picker && picker.color === \"warn\"',\n '(focus)': '_button.focus()',\n },\n exportAs: 'novoPickerToggle',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NovoPickerToggleElement<T = any> implements AfterContentInit, AfterViewInit, OnChanges, OnDestroy {\n private _stateChanges = Subscription.EMPTY;\n private _onDestroy = new Subject<void>();\n\n /** Datepicker instance that the button will toggle. */\n @Input('for') picker: T;\n\n @Input() icon: string;\n\n /** Tabindex for the toggle. */\n @Input() tabIndex: number | null;\n\n /** Screenreader label for the button. */\n @Input('aria-label') ariaLabel: string;\n\n /** Determines whether the overlay is triggered on input focus or solely button click. */\n @Input()\n @BooleanInput()\n triggerOnFocus: boolean = false;\n\n /** An id to select the correct overlay.*/\n @Input() overlayId: string;\n\n /** Width to pass to overlay.*/\n @Input() width: string;\n\n /** Whether the toggle button is disabled. */\n @Input()\n get disabled(): boolean {\n if (this._disabled === undefined && this.picker) {\n return (this.picker as any).disabled;\n }\n\n return !!this._disabled;\n }\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n }\n private _disabled: boolean;\n\n /** Underlying button element. */\n @ViewChild('button') _button: NovoButtonElement;\n\n /** Element for the panel containing the autocomplete options. */\n @ViewChild(NovoOverlayTemplateComponent)\n overlay: NovoOverlayTemplateComponent;\n\n element: ElementRef;\n\n constructor(\n private _elementRef: ElementRef,\n private cdr: ChangeDetectorRef,\n @Attribute('tabindex') defaultTabIndex: string,\n @Optional() @Inject(NOVO_FORM_FIELD) private _formField: NovoFieldElement,\n ) {\n const parsedTabIndex = Number(defaultTabIndex);\n this.tabIndex = parsedTabIndex || parsedTabIndex === 0 ? parsedTabIndex : null;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.picker) {\n this._watchStateChanges();\n }\n }\n\n ngOnDestroy() {\n this._stateChanges.unsubscribe();\n this._onDestroy.next();\n this._onDestroy.complete();\n }\n\n ngAfterContentInit() {\n this._watchStateChanges();\n }\n\n ngAfterViewInit() {\n this.element = this._formField.getConnectedOverlayOrigin() || this._elementRef;\n }\n\n checkPanel() {\n if (this.triggerOnFocus && this._formField._control.focused) {\n this.openPanel();\n }\n }\n\n togglePanel(event?: Event) {\n this.cdr.detectChanges();\n this.overlay.parent = this.element;\n if (!this.overlay.panelOpen) {\n this.openPanel(event);\n } else {\n this.closePanel(event);\n }\n }\n\n /** BEGIN: Convenient Panel Methods. */\n openPanel(event?: Event): void {\n if (!this.overlay.panelOpen) {\n this.overlay.parent = this.element;\n this.overlay.openPanel();\n }\n }\n\n closePanel(event?: Event): void {\n this.overlay.closePanel();\n }\n\n get panelOpen(): boolean {\n return this.overlay && this.overlay.panelOpen;\n }\n\n private _watchStateChanges() {\n this._formField._control?.stateChanges.pipe(takeUntil(this._onDestroy)).subscribe(() => {\n this.checkPanel();\n });\n }\n}\n","<novo-button\n #button\n theme=\"icon\"\n [icon]=\"icon\"\n [attr.aria-haspopup]=\"'dialog'\"\n [attr.tabindex]=\"disabled ? -1 : tabIndex\"\n [disabled]=\"disabled\"\n (click)=\"togglePanel($event)\"></novo-button>\n\n<novo-overlay-template [width]=\"width\" [parent]=\"element\" position=\"above-below\">\n <ng-content></ng-content>\n</novo-overlay-template>","// NG2\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n// APP\nimport { NovoButtonModule } from 'novo-elements/elements/button';\nimport { NovoCommonModule, NovoOptionModule, NovoOverlayModule } from 'novo-elements/elements/common';\nimport { NovoErrorElement } from './error/error';\nimport { NovoFieldElement, NovoFieldPrefixDirective, NovoFieldSuffixDirective } from './field';\nimport { NovoFieldsElement } from './fieldset';\nimport { NovoDateFormatDirective } from './formats/date-format';\nimport { NovoDateRangeFormatDirective } from './formats/date-range-format';\nimport { NovoDateTimeFormatDirective } from './formats/date-time-format';\nimport { NovoTimeFormatDirective } from './formats/time-format';\nimport { NovoHintElement } from './hint/hint';\nimport { NovoInput } from './input';\nimport { NovoPickerDirective } from './picker.directive';\nimport { NovoPickerToggleElement } from './toggle/picker-toggle.component';\n\n@NgModule({\n imports: [CommonModule, NovoButtonModule, NovoOverlayModule, NovoOptionModule, NovoCommonModule],\n declarations: [\n NovoFieldElement,\n NovoHintElement,\n NovoErrorElement,\n NovoInput,\n NovoFieldPrefixDirective,\n NovoFieldSuffixDirective,\n NovoFieldsElement,\n NovoTimeFormatDirective,\n NovoDateFormatDirective,\n NovoDateTimeFormatDirective,\n NovoDateRangeFormatDirective,\n NovoPickerToggleElement,\n NovoPickerDirective,\n ],\n exports: [\n NovoFieldElement,\n NovoHintElement,\n NovoErrorElement,\n NovoInput,\n NovoFieldPrefixDirective,\n NovoFieldSuffixDirective,\n NovoFieldsElement,\n NovoTimeFormatDirective,\n NovoDateFormatDirective,\n NovoDateRangeFormatDirective,\n NovoDateTimeFormatDirective,\n NovoPickerToggleElement,\n NovoPickerDirective,\n ],\n})\nexport class NovoFieldModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["nextUniqueId","i1","__decorate","i2"],"mappings":"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"}
@@ -112,7 +112,7 @@ class NovoTilesElement {
112
112
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NovoTilesElement, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
113
113
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NovoTilesElement, selector: "novo-tiles", inputs: { name: "name", options: "options", required: "required", disabled: ["controlDisabled", "disabled"] }, outputs: { onChange: "onChange", onSelectedOptionClick: "onSelectedOptionClick", onDisabledOptionClick: "onDisabledOptionClick" }, providers: [TILES_VALUE_ACCESSOR], usesOnChanges: true, ngImport: i0, template: `
114
114
  <div class="tile-container" [class.active]="focused" [class.disabled]="disabled">
115
- <button class="tile"
115
+ <button class="tile" type="button"
116
116
  *ngFor="let option of _options; let i = index"
117
117
  [ngClass]="{ defaultColor: !option.color, active: option.checked, disabled: option.disabled }"
118
118
  [theme]="option.checked ? 'primary' : 'dialogue'"
@@ -143,7 +143,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
143
143
  type: Component,
144
144
  args: [{ selector: 'novo-tiles', providers: [TILES_VALUE_ACCESSOR], template: `
145
145
  <div class="tile-container" [class.active]="focused" [class.disabled]="disabled">
146
- <button class="tile"
146
+ <button class="tile" type="button"
147
147
  *ngFor="let option of _options; let i = index"
148
148
  [ngClass]="{ defaultColor: !option.color, active: option.checked, disabled: option.disabled }"
149
149
  [theme]="option.checked ? 'primary' : 'dialogue'"
@@ -1 +1 @@
1
- {"version":3,"file":"novo-elements-elements-tiles.mjs","sources":["../../../projects/novo-elements/src/elements/tiles/Tiles.ts","../../../projects/novo-elements/src/elements/tiles/Tiles.module.ts","../../../projects/novo-elements/src/elements/tiles/novo-elements-elements-tiles.ts"],"sourcesContent":["// NG2\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n// APP\nimport { Helpers } from 'novo-elements/utils';\n\n// Value accessor for the component (supports ngModel)\nconst TILES_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NovoTilesElement),\n multi: true,\n};\n\n@Component({\n selector: 'novo-tiles',\n providers: [TILES_VALUE_ACCESSOR],\n template: `\n <div class=\"tile-container\" [class.active]=\"focused\" [class.disabled]=\"disabled\">\n <button class=\"tile\"\n *ngFor=\"let option of _options; let i = index\"\n [ngClass]=\"{ defaultColor: !option.color, active: option.checked, disabled: option.disabled }\"\n [theme]=\"option.checked ? 'primary' : 'dialogue'\"\n [color]=\"option.checked ? option.color || 'darken($ocean, 20%)' : 'dark'\"\n [icon]=\"option.icon\"\n [side]=\"option.iconSide || 'left'\"\n (click)=\"select($event, option)\"\n [attr.data-automation-id]=\"option.label || option\">\n <input\n class=\"tiles-input\"\n [name]=\"name\"\n type=\"radio\"\n [value]=\"option.checked || option.value || option\"\n [attr.id]=\"name + i\"\n (change)=\"select($event, option)\"\n (focus)=\"setFocus(true)\"\n (blur)=\"setFocus(false)\"\n [disabled]=\"disabled\"\n />\n <label [attr.for]=\"name + i\" [attr.data-automation-id]=\"option.label || option\">\n {{ option.label || option }}\n </label>\n </button>\n </div>\n `,\n styleUrls: ['./Tiles.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NovoTilesElement implements ControlValueAccessor, AfterContentInit, OnChanges {\n @Input()\n name: string = new Date().getTime().toString();\n @Input()\n options: any;\n @Input()\n required: boolean;\n @Input('controlDisabled')\n disabled: boolean = false;\n @Output()\n onChange: EventEmitter<any> = new EventEmitter();\n @Output()\n onSelectedOptionClick: EventEmitter<any> = new EventEmitter();\n @Output()\n onDisabledOptionClick: EventEmitter<any> = new EventEmitter();\n\n _options: Array<any> = [];\n public activeTile: any = null;\n public focused: boolean = false;\n\n model: any;\n onModelChange: Function = () => {};\n onModelTouched: Function = () => {};\n\n constructor(private element: ElementRef, private ref: ChangeDetectorRef) {}\n\n public setFocus(focus: boolean): void {\n this.focused = focus;\n }\n\n ngAfterContentInit() {\n this.name = this.name || '';\n this.setupOptions();\n }\n\n ngOnChanges(change: SimpleChanges) {\n if (change.options && change.options.currentValue && !change.options.firstChange) {\n this.name = this.name || '';\n this._options = [];\n this.setupOptions();\n }\n }\n\n setupOptions() {\n if (this.options && this.options.length && (this.options[0].value === undefined || this.options[0].value === null)) {\n this._options = this.options.map((x) => {\n const item = { value: x, label: x, checked: this.model === x };\n if (item.checked) {\n this.setTile(item);\n }\n return item;\n });\n } else {\n this._options = this.options.map((x) => {\n x.checked = this.model === x.value || (this.model && this.model.id === x.value);\n if (x.checked) {\n this.setTile(x);\n }\n return x;\n });\n }\n this.ref.markForCheck();\n }\n\n select(event, item) {\n if (event) {\n event.stopPropagation();\n event.preventDefault();\n }\n\n if (!item.disabled) {\n if (item.checked) {\n this.onSelectedOptionClick.emit(item);\n return;\n }\n\n for (const option of this._options) {\n option.checked = false;\n }\n\n item.checked = !item.checked;\n this.onChange.emit(item.value);\n this.onModelChange(item.value);\n this.setTile(item);\n this.model = item.value;\n } else {\n this.onDisabledOptionClick.emit(item);\n }\n this.ref.markForCheck();\n }\n\n setTile(item) {\n if (item) {\n this.activeTile = item.value;\n this.ref.markForCheck();\n }\n }\n\n writeValue(model: any): void {\n this.model = model;\n if (!Helpers.isBlank(model)) {\n this.setupOptions();\n }\n }\n\n registerOnChange(fn: Function): void {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: Function): void {\n this.onModelTouched = fn;\n }\n\n setDisabledState(disabled: boolean): void {\n this.disabled = disabled;\n }\n}\n","// NG2\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { NovoButtonModule } from 'novo-elements/elements/button';\nimport { NovoTilesElement } from './Tiles';\n\n@NgModule({\n imports: [CommonModule, NovoButtonModule, ReactiveFormsModule],\n declarations: [NovoTilesElement],\n exports: [NovoTilesElement],\n})\nexport class NovoTilesModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;AAAA;AAkBA;AACA,MAAM,oBAAoB,GAAG;AAC3B,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,gBAAgB,CAAC;AAC/C,IAAA,KAAK,EAAE,IAAI;CACZ,CAAC;MAoCW,gBAAgB,CAAA;IAwB3B,WAAoB,CAAA,OAAmB,EAAU,GAAsB,EAAA;QAAnD,IAAO,CAAA,OAAA,GAAP,OAAO,CAAY;QAAU,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;QAtBvE,IAAI,CAAA,IAAA,GAAW,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC;QAM/C,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;AAE1B,QAAA,IAAA,CAAA,QAAQ,GAAsB,IAAI,YAAY,EAAE,CAAC;AAEjD,QAAA,IAAA,CAAA,qBAAqB,GAAsB,IAAI,YAAY,EAAE,CAAC;AAE9D,QAAA,IAAA,CAAA,qBAAqB,GAAsB,IAAI,YAAY,EAAE,CAAC;QAE9D,IAAQ,CAAA,QAAA,GAAe,EAAE,CAAC;QACnB,IAAU,CAAA,UAAA,GAAQ,IAAI,CAAC;QACvB,IAAO,CAAA,OAAA,GAAY,KAAK,CAAC;AAGhC,QAAA,IAAA,CAAA,aAAa,GAAa,MAAK,GAAG,CAAC;AACnC,QAAA,IAAA,CAAA,cAAc,GAAa,MAAK,GAAG,CAAC;KAEuC;AAEpE,IAAA,QAAQ,CAAC,KAAc,EAAA;AAC5B,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;KACtB;IAED,kBAAkB,GAAA;QAChB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;AAED,IAAA,WAAW,CAAC,MAAqB,EAAA;AAC/B,QAAA,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE;YAChF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;AAC5B,YAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;YACnB,IAAI,CAAC,YAAY,EAAE,CAAC;SACrB;KACF;IAED,YAAY,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE;AAClH,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAI;AACrC,gBAAA,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;AAC/D,gBAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,oBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;iBACpB;AACD,gBAAA,OAAO,IAAI,CAAC;AACd,aAAC,CAAC,CAAC;SACJ;aAAM;AACL,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAI;gBACrC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;AAChF,gBAAA,IAAI,CAAC,CAAC,OAAO,EAAE;AACb,oBAAA,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;iBACjB;AACD,gBAAA,OAAO,CAAC,CAAC;AACX,aAAC,CAAC,CAAC;SACJ;AACD,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KACzB;IAED,MAAM,CAAC,KAAK,EAAE,IAAI,EAAA;QAChB,IAAI,KAAK,EAAE;YACT,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,KAAK,CAAC,cAAc,EAAE,CAAC;SACxB;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,gBAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtC,OAAO;aACR;AAED,YAAA,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;AAClC,gBAAA,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;aACxB;AAED,YAAA,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;YAC7B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/B,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/B,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACnB,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;SACzB;aAAM;AACL,YAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACvC;AACD,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KACzB;AAED,IAAA,OAAO,CAAC,IAAI,EAAA;QACV,IAAI,IAAI,EAAE;AACR,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;AAC7B,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SACzB;KACF;AAED,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC3B,IAAI,CAAC,YAAY,EAAE,CAAC;SACrB;KACF;AAED,IAAA,gBAAgB,CAAC,EAAY,EAAA;AAC3B,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;KACzB;AAED,IAAA,iBAAiB,CAAC,EAAY,EAAA;AAC5B,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;KAC1B;AAED,IAAA,gBAAgB,CAAC,QAAiB,EAAA;AAChC,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;KAC1B;+GAnHU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,EAhChB,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,EAAA,SAAA,EAAA,CAAC,oBAAoB,CAAC,EACvB,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,4vBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAIU,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAlC5B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EACX,SAAA,EAAA,CAAC,oBAAoB,CAAC,EACvB,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BT,EAEgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,MAAA,EAAA,CAAA,4vBAAA,CAAA,EAAA,CAAA;+GAI/C,IAAI,EAAA,CAAA;sBADH,KAAK;gBAGN,OAAO,EAAA,CAAA;sBADN,KAAK;gBAGN,QAAQ,EAAA,CAAA;sBADP,KAAK;gBAGN,QAAQ,EAAA,CAAA;sBADP,KAAK;uBAAC,iBAAiB,CAAA;gBAGxB,QAAQ,EAAA,CAAA;sBADP,MAAM;gBAGP,qBAAqB,EAAA,CAAA;sBADpB,MAAM;gBAGP,qBAAqB,EAAA,CAAA;sBADpB,MAAM;;;ACxET;MAYa,eAAe,CAAA;+GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAAf,eAAe,EAAA,YAAA,EAAA,CAHX,gBAAgB,CADrB,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,CAAA,EAAA,OAAA,EAAA,CAEnD,gBAAgB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,EAJhB,OAAA,EAAA,CAAA,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIlD,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,CAAC;oBAC9D,YAAY,EAAE,CAAC,gBAAgB,CAAC;oBAChC,OAAO,EAAE,CAAC,gBAAgB,CAAC;AAC5B,iBAAA,CAAA;;;ACXD;;AAEG;;;;"}
1
+ {"version":3,"file":"novo-elements-elements-tiles.mjs","sources":["../../../projects/novo-elements/src/elements/tiles/Tiles.ts","../../../projects/novo-elements/src/elements/tiles/Tiles.module.ts","../../../projects/novo-elements/src/elements/tiles/novo-elements-elements-tiles.ts"],"sourcesContent":["// NG2\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n// APP\nimport { Helpers } from 'novo-elements/utils';\n\n// Value accessor for the component (supports ngModel)\nconst TILES_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NovoTilesElement),\n multi: true,\n};\n\n@Component({\n selector: 'novo-tiles',\n providers: [TILES_VALUE_ACCESSOR],\n template: `\n <div class=\"tile-container\" [class.active]=\"focused\" [class.disabled]=\"disabled\">\n <button class=\"tile\" type=\"button\"\n *ngFor=\"let option of _options; let i = index\"\n [ngClass]=\"{ defaultColor: !option.color, active: option.checked, disabled: option.disabled }\"\n [theme]=\"option.checked ? 'primary' : 'dialogue'\"\n [color]=\"option.checked ? option.color || 'darken($ocean, 20%)' : 'dark'\"\n [icon]=\"option.icon\"\n [side]=\"option.iconSide || 'left'\"\n (click)=\"select($event, option)\"\n [attr.data-automation-id]=\"option.label || option\">\n <input\n class=\"tiles-input\"\n [name]=\"name\"\n type=\"radio\"\n [value]=\"option.checked || option.value || option\"\n [attr.id]=\"name + i\"\n (change)=\"select($event, option)\"\n (focus)=\"setFocus(true)\"\n (blur)=\"setFocus(false)\"\n [disabled]=\"disabled\"\n />\n <label [attr.for]=\"name + i\" [attr.data-automation-id]=\"option.label || option\">\n {{ option.label || option }}\n </label>\n </button>\n </div>\n `,\n styleUrls: ['./Tiles.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NovoTilesElement implements ControlValueAccessor, AfterContentInit, OnChanges {\n @Input()\n name: string = new Date().getTime().toString();\n @Input()\n options: any;\n @Input()\n required: boolean;\n @Input('controlDisabled')\n disabled: boolean = false;\n @Output()\n onChange: EventEmitter<any> = new EventEmitter();\n @Output()\n onSelectedOptionClick: EventEmitter<any> = new EventEmitter();\n @Output()\n onDisabledOptionClick: EventEmitter<any> = new EventEmitter();\n\n _options: Array<any> = [];\n public activeTile: any = null;\n public focused: boolean = false;\n\n model: any;\n onModelChange: Function = () => {};\n onModelTouched: Function = () => {};\n\n constructor(private element: ElementRef, private ref: ChangeDetectorRef) {}\n\n public setFocus(focus: boolean): void {\n this.focused = focus;\n }\n\n ngAfterContentInit() {\n this.name = this.name || '';\n this.setupOptions();\n }\n\n ngOnChanges(change: SimpleChanges) {\n if (change.options && change.options.currentValue && !change.options.firstChange) {\n this.name = this.name || '';\n this._options = [];\n this.setupOptions();\n }\n }\n\n setupOptions() {\n if (this.options && this.options.length && (this.options[0].value === undefined || this.options[0].value === null)) {\n this._options = this.options.map((x) => {\n const item = { value: x, label: x, checked: this.model === x };\n if (item.checked) {\n this.setTile(item);\n }\n return item;\n });\n } else {\n this._options = this.options.map((x) => {\n x.checked = this.model === x.value || (this.model && this.model.id === x.value);\n if (x.checked) {\n this.setTile(x);\n }\n return x;\n });\n }\n this.ref.markForCheck();\n }\n\n select(event, item) {\n if (event) {\n event.stopPropagation();\n event.preventDefault();\n }\n\n if (!item.disabled) {\n if (item.checked) {\n this.onSelectedOptionClick.emit(item);\n return;\n }\n\n for (const option of this._options) {\n option.checked = false;\n }\n\n item.checked = !item.checked;\n this.onChange.emit(item.value);\n this.onModelChange(item.value);\n this.setTile(item);\n this.model = item.value;\n } else {\n this.onDisabledOptionClick.emit(item);\n }\n this.ref.markForCheck();\n }\n\n setTile(item) {\n if (item) {\n this.activeTile = item.value;\n this.ref.markForCheck();\n }\n }\n\n writeValue(model: any): void {\n this.model = model;\n if (!Helpers.isBlank(model)) {\n this.setupOptions();\n }\n }\n\n registerOnChange(fn: Function): void {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: Function): void {\n this.onModelTouched = fn;\n }\n\n setDisabledState(disabled: boolean): void {\n this.disabled = disabled;\n }\n}\n","// NG2\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { NovoButtonModule } from 'novo-elements/elements/button';\nimport { NovoTilesElement } from './Tiles';\n\n@NgModule({\n imports: [CommonModule, NovoButtonModule, ReactiveFormsModule],\n declarations: [NovoTilesElement],\n exports: [NovoTilesElement],\n})\nexport class NovoTilesModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "novo-elements",
3
- "version": "10.8.0",
3
+ "version": "10.8.1-next.1",
4
4
  "sideEffects": true,
5
5
  "peerDependencies": {
6
6
  "@angular/animations": ">=10",
@@ -206,12 +206,6 @@
206
206
  "esm": "./esm2022/elements/expansion/novo-elements-elements-expansion.mjs",
207
207
  "default": "./fesm2022/novo-elements-elements-expansion.mjs"
208
208
  },
209
- "./elements/field": {
210
- "types": "./elements/field/index.d.ts",
211
- "esm2022": "./esm2022/elements/field/novo-elements-elements-field.mjs",
212
- "esm": "./esm2022/elements/field/novo-elements-elements-field.mjs",
213
- "default": "./fesm2022/novo-elements-elements-field.mjs"
214
- },
215
209
  "./elements/flex": {
216
210
  "types": "./elements/flex/index.d.ts",
217
211
  "esm2022": "./esm2022/elements/flex/novo-elements-elements-flex.mjs",
@@ -224,6 +218,12 @@
224
218
  "esm": "./esm2022/elements/form/novo-elements-elements-form.mjs",
225
219
  "default": "./fesm2022/novo-elements-elements-form.mjs"
226
220
  },
221
+ "./elements/field": {
222
+ "types": "./elements/field/index.d.ts",
223
+ "esm2022": "./esm2022/elements/field/novo-elements-elements-field.mjs",
224
+ "esm": "./esm2022/elements/field/novo-elements-elements-field.mjs",
225
+ "default": "./fesm2022/novo-elements-elements-field.mjs"
226
+ },
227
227
  "./elements/header": {
228
228
  "types": "./elements/header/index.d.ts",
229
229
  "esm2022": "./esm2022/elements/header/novo-elements-elements-header.mjs",