ecabs-components 1.1.77 → 1.1.79

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.
Files changed (24) hide show
  1. package/README.md +3 -1
  2. package/esm2022/lib/base/directives/digits-only.directive.mjs +131 -19
  3. package/esm2022/lib/base/models/phone.models.mjs +1 -1
  4. package/esm2022/lib/base/utils/phone-number.utils.mjs +1 -1
  5. package/esm2022/lib/ecabs-button-toggle/ecabs-button-toggle.component.mjs +1 -1
  6. package/esm2022/lib/ecabs-chip-group/ecabs-chip-group.component.mjs +10 -4
  7. package/esm2022/lib/ecabs-date-time-picker/ecabs-date-time-picker.component.mjs +1 -1
  8. package/esm2022/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.component.mjs +1 -1
  9. package/esm2022/lib/ecabs-dialog-confirm-deletion/ecabs-dialog-confirm-deletion.component.mjs +1 -1
  10. package/esm2022/lib/ecabs-increment/ecabs-increment.component.mjs +1 -1
  11. package/esm2022/lib/ecabs-input/ecabs-input.component.mjs +7 -4
  12. package/esm2022/lib/ecabs-input-range/ecabs-input-range.component.mjs +1 -1
  13. package/esm2022/lib/ecabs-place-autocomplete-v2/ecabs-place-autocomplete-v2.component.mjs +1 -1
  14. package/fesm2022/ecabs-components.mjs +151 -30
  15. package/fesm2022/ecabs-components.mjs.map +1 -1
  16. package/lib/base/directives/digits-only.directive.d.ts +13 -2
  17. package/lib/ecabs-chip-group/ecabs-chip-group.component.d.ts +3 -1
  18. package/lib/ecabs-input/ecabs-input.component.d.ts +2 -1
  19. package/package.json +1 -1
  20. package/src/assets/styles/scss/modules/_chip.scss +64 -64
  21. package/src/assets/styles/scss/modules/_form.scss +312 -312
  22. package/src/assets/styles/scss/modules/_statuses.scss +36 -36
  23. package/src/assets/styles/scss/utilities/_colors.scss +56 -56
  24. package/src/assets/styles/tailwind/index.scss +1 -1
package/README.md CHANGED
@@ -25,8 +25,10 @@ To get more help on the Angular CLI use `ng help` or go check out the [Angular C
25
25
 
26
26
  ## Version History
27
27
 
28
+ - **v1.1.79** — Fix leading minus of ecabsDigitsOnly input with allowHyphen.
29
+ - **v1.1.78** — Add `compareFn` input bound to `[compareWith]` on `mat-chip-listbox` to programmatically set and correctly match values with different object identities.
28
30
  - **v1.1.77** — Notify change detection on `writeValue` and `setDisabledState` so the UI reflects programmatic form updates, via `markForCheck`.
29
- - **v1.1.76** — - Merge waypoint history with Google predictions (history first, clock-iconed).
31
+ - **v1.1.76** — Merge waypoint history with Google predictions (history first, clock-iconed).
30
32
  - Server-side history filtering on type; instant history on focus.
31
33
  - **v1.1.75** — Update table border color to use `--color-gray-200` in `bordered` style.
32
34
  - **v1.1.74** — Optimize `dateRangeValidator` logic to streamline error handling and remove redundant optional input properties `dateFromOptional` and `dateToOptional`.
@@ -4,6 +4,7 @@ export class EcabsDigitsOnlyDirective {
4
4
  el;
5
5
  digitsOnly = false;
6
6
  allowHyphen = false;
7
+ allowRange = false;
7
8
  decimal = false;
8
9
  decimalSeparator = '.';
9
10
  unit = 0;
@@ -11,6 +12,7 @@ export class EcabsDigitsOnlyDirective {
11
12
  minus = '-';
12
13
  minusCounter = 0;
13
14
  regex;
15
+ rangeRegex;
14
16
  decimalCounter = 0;
15
17
  navigationKeys = [
16
18
  'Backspace',
@@ -44,18 +46,19 @@ export class EcabsDigitsOnlyDirective {
44
46
  (this.decimal &&
45
47
  e.key === this.decimalSeparator &&
46
48
  this.decimalCounter <= 1) || // Allow: only one decimal point
47
- (this.decimal && e.key === this.minus && this.minusCounter < 1) // Allow: only one minus
49
+ (e.key === this.minus && this.isMinusAllowed()) // Allow: leading minus and/or range separator
48
50
  ) {
49
51
  return;
50
52
  }
51
- // Ensure that it is a number and stop the keypress
52
- if (e.key === ' ' || !this.regex.test(e.key)) {
53
+ if (e.key === ' ' || e.key === this.minus || !this.regex.test(e.key)) {
53
54
  e.preventDefault();
54
55
  }
55
56
  }
56
57
  }
57
58
  onKeyUp() {
58
59
  if (this.digitsOnly) {
60
+ this.minusCounter =
61
+ this.el.nativeElement.value.split(this.minus).length - 1;
59
62
  if (!this.decimal) {
60
63
  const regex = /[.,]/g;
61
64
  this.inputElement.value = this.inputElement.value.replace(regex, '');
@@ -63,9 +66,9 @@ export class EcabsDigitsOnlyDirective {
63
66
  }
64
67
  this.decimalCounter =
65
68
  this.el.nativeElement.value.split(this.decimalSeparator).length - 1;
66
- this.minusCounter =
67
- this.el.nativeElement.value.split(this.minus).length - 1;
68
- if (isNaN(+this.inputElement.value)) {
69
+ if (isNaN(+this.inputElement.value) &&
70
+ !this.isPartialNegative(this.inputElement.value) &&
71
+ !this.isPartialRange(this.inputElement.value)) {
69
72
  this.inputElement.value = this.sanitizeInput(this.inputElement.value);
70
73
  }
71
74
  }
@@ -81,7 +84,16 @@ export class EcabsDigitsOnlyDirective {
81
84
  event.preventDefault();
82
85
  }
83
86
  ngOnInit() {
84
- this.regex = new RegExp(this.allowHyphen ? '^[\\d -]+$' : '\\d');
87
+ this.regex = new RegExp(this.allowHyphen || this.allowRange ? '^[\\d -]+$' : '\\d');
88
+ if (this.allowRange) {
89
+ const sep = this.escapeRegExp(this.decimalSeparator);
90
+ const head = this.decimal ? `\\d+(${sep}\\d*)?` : '\\d+';
91
+ const tail = this.decimal ? `\\d*(${sep}\\d*)?` : '\\d*';
92
+ // When combined with `allowHyphen`, a leading minus (negative lower
93
+ // bound) is allowed, e.g. "-5-20".
94
+ const lead = this.allowHyphen ? `${this.minus}?` : '';
95
+ this.rangeRegex = new RegExp(`^${lead}${head}(${this.minus}${tail})?$`);
96
+ }
85
97
  }
86
98
  pasteData(pastedContent) {
87
99
  const sanitizedContent = isNaN(+pastedContent)
@@ -94,28 +106,126 @@ export class EcabsDigitsOnlyDirective {
94
106
  }
95
107
  }
96
108
  sanitizeInput(input) {
97
- let result = '';
98
- if (this.decimal && this.isValidDecimal(input)) {
99
- //eslint-disable-next-line
100
- const regex = new RegExp(`^[\d -${this.decimalSeparator}]+$`, 'g');
101
- result = input.replace(regex, '');
109
+ if (this.allowRange) {
110
+ return this.sanitizeRange(input);
111
+ }
112
+ const separator = this.decimalSeparator;
113
+ // Drop every character that isn't allowed, then keep only a single leading
114
+ // hyphen and a single decimal separator.
115
+ const allowed = ['\\d'];
116
+ if (this.allowHyphen) {
117
+ allowed.push('\\-');
118
+ }
119
+ if (this.decimal) {
120
+ allowed.push(this.escapeRegExp(separator));
102
121
  }
103
- else {
104
- result = input.replace(`/${this.regex}/g`, '');
122
+ let result = input.replace(new RegExp(`[^${allowed.join('')}]`, 'g'), '');
123
+ if (this.allowHyphen) {
124
+ const isNegative = result.startsWith(this.minus);
125
+ result = (isNegative ? this.minus : '') + result.split(this.minus).join('');
126
+ }
127
+ if (this.decimal) {
128
+ result = this.keepFirstSeparator(result, separator);
129
+ }
130
+ return this.applyMaxLength(result);
131
+ }
132
+ sanitizeRange(input) {
133
+ const separator = this.decimalSeparator;
134
+ const allowed = ['\\d', '\\-'];
135
+ if (this.decimal) {
136
+ allowed.push(this.escapeRegExp(separator));
137
+ }
138
+ let result = input.replace(new RegExp(`[^${allowed.join('')}]`, 'g'), '');
139
+ const hasLeadingMinus = this.allowHyphen && result.startsWith(this.minus);
140
+ let body = hasLeadingMinus ? result.slice(1) : result;
141
+ body = body.replace(/^-+/, '');
142
+ const firstHyphen = body.indexOf(this.minus);
143
+ if (firstHyphen !== -1) {
144
+ body =
145
+ body.slice(0, firstHyphen + 1) +
146
+ body.slice(firstHyphen + 1).split(this.minus).join('');
147
+ }
148
+ if (this.decimal) {
149
+ body = body
150
+ .split(this.minus)
151
+ .map((segment) => this.keepFirstSeparator(segment, separator))
152
+ .join(this.minus);
153
+ }
154
+ result = (hasLeadingMinus ? this.minus : '') + body;
155
+ return this.applyMaxLength(result);
156
+ }
157
+ keepFirstSeparator(value, separator) {
158
+ const firstSeparator = value.indexOf(separator);
159
+ if (firstSeparator === -1) {
160
+ return value;
105
161
  }
162
+ return (value.slice(0, firstSeparator + 1) +
163
+ value.slice(firstSeparator + 1).split(separator).join(''));
164
+ }
165
+ applyMaxLength(result) {
106
166
  const maxLength = this.inputElement.maxLength;
107
167
  if (maxLength > 0) {
108
168
  // the input element has maxLength limit
109
169
  const allowedLength = maxLength - this.inputElement.value.length;
110
- result = allowedLength > 0 ? result.substring(0, allowedLength) : '';
170
+ return allowedLength > 0 ? result.substring(0, allowedLength) : '';
111
171
  }
112
172
  return result;
113
173
  }
114
- isValidDecimal(inputString) {
115
- return inputString.split(this.decimalSeparator).length <= 2;
174
+ escapeRegExp(value) {
175
+ return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
176
+ }
177
+ isMinusAllowed() {
178
+ const value = this.inputElement.value;
179
+ // Combined mode: a single leading minus (negative lower bound) plus one
180
+ // range separator, e.g. "-5-20".
181
+ if (this.allowHyphen && this.allowRange) {
182
+ if (this.isCaretAtStart()) {
183
+ return !value.startsWith(this.minus);
184
+ }
185
+ return this.hasDigitBeforeCaret() && !this.hasRangeSeparator();
186
+ }
187
+ // Hyphen only: a single leading minus.
188
+ if (this.allowHyphen) {
189
+ return this.minusCounter < 1 && this.isCaretAtStart();
190
+ }
191
+ // Range only: a single separator, never leading.
192
+ if (this.allowRange) {
193
+ return this.minusCounter < 1 && this.hasDigitBeforeCaret();
194
+ }
195
+ return false;
196
+ }
197
+ hasRangeSeparator() {
198
+ const value = this.inputElement.value;
199
+ const body = value.startsWith(this.minus) ? value.slice(1) : value;
200
+ return body.includes(this.minus);
201
+ }
202
+ isCaretAtStart() {
203
+ const caret = this.inputElement.selectionStart;
204
+ return caret === null || caret === 0;
205
+ }
206
+ hasDigitBeforeCaret() {
207
+ const caret = this.inputElement.selectionStart;
208
+ const value = this.inputElement.value;
209
+ const before = caret === null ? value : value.slice(0, caret);
210
+ return /\d/.test(before);
211
+ }
212
+ isPartialRange(value) {
213
+ return !!this.allowRange && !!this.rangeRegex && this.rangeRegex.test(value);
214
+ }
215
+ isPartialNegative(value) {
216
+ if (!this.allowHyphen || !value.startsWith(this.minus)) {
217
+ return false;
218
+ }
219
+ const remainder = value.slice(1);
220
+ if (remainder.includes(this.minus)) {
221
+ return false;
222
+ }
223
+ return (remainder === '' ||
224
+ remainder === this.decimalSeparator ||
225
+ !isNaN(+remainder));
116
226
  }
117
227
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsDigitsOnlyDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
118
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: EcabsDigitsOnlyDirective, selector: "[ecabsDigitsOnly]", inputs: { digitsOnly: "digitsOnly", allowHyphen: "allowHyphen", decimal: "decimal", decimalSeparator: "decimalSeparator", unit: "unit" }, host: { listeners: { "keydown": "onKeyDown($event)", "keyup": "onKeyUp($event)", "paste": "onPaste($event)", "wheel": "onWheel($event)" } }, ngImport: i0 });
228
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: EcabsDigitsOnlyDirective, selector: "[ecabsDigitsOnly]", inputs: { digitsOnly: "digitsOnly", allowHyphen: "allowHyphen", allowRange: "allowRange", decimal: "decimal", decimalSeparator: "decimalSeparator", unit: "unit" }, host: { listeners: { "keydown": "onKeyDown($event)", "keyup": "onKeyUp($event)", "paste": "onPaste($event)", "wheel": "onWheel($event)" } }, ngImport: i0 });
119
229
  }
120
230
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsDigitsOnlyDirective, decorators: [{
121
231
  type: Directive,
@@ -126,6 +236,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
126
236
  type: Input
127
237
  }], allowHyphen: [{
128
238
  type: Input
239
+ }], allowRange: [{
240
+ type: Input
129
241
  }], decimal: [{
130
242
  type: Input
131
243
  }], decimalSeparator: [{
@@ -145,4 +257,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
145
257
  type: HostListener,
146
258
  args: ['wheel', ['$event']]
147
259
  }] } });
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlnaXRzLW9ubHkuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2Jhc2UvZGlyZWN0aXZlcy9kaWdpdHMtb25seS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxHQUVOLE1BQU0sZUFBZSxDQUFDOztBQUt2QixNQUFNLE9BQU8sd0JBQXdCO0lBZ0NoQjtJQTlCbkIsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUduQixXQUFXLEdBQUcsS0FBSyxDQUFDO0lBRVgsT0FBTyxHQUFJLEtBQUssQ0FBQztJQUNqQixnQkFBZ0IsR0FBSSxHQUFHLENBQUM7SUFDeEIsSUFBSSxHQUFJLENBQUMsQ0FBQztJQUVuQixZQUFZLENBQW1CO0lBQy9CLEtBQUssR0FBRyxHQUFHLENBQUM7SUFDWixZQUFZLEdBQUcsQ0FBQyxDQUFDO0lBQ2pCLEtBQUssQ0FBVTtJQUVQLGNBQWMsR0FBRyxDQUFDLENBQUM7SUFDVixjQUFjLEdBQUc7UUFDaEMsV0FBVztRQUNYLFFBQVE7UUFDUixLQUFLO1FBQ0wsUUFBUTtRQUNSLE9BQU87UUFDUCxNQUFNO1FBQ04sS0FBSztRQUNMLFdBQVc7UUFDWCxZQUFZO1FBQ1osT0FBTztRQUNQLE1BQU07UUFDTixPQUFPO0tBQ1IsQ0FBQztJQUVGLFlBQW1CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQy9CLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQztJQUN2QyxDQUFDO0lBR0QsU0FBUyxDQUFDLENBQWdCO1FBQ3hCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixJQUNFLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSx5REFBeUQ7Z0JBQ3BHLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLGdCQUFnQjtnQkFDaEQsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksZ0JBQWdCO2dCQUNoRCxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxnQkFBZ0I7Z0JBQ2hELENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLGdCQUFnQjtnQkFDaEQsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUkscUJBQXFCO2dCQUNyRCxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxxQkFBcUI7Z0JBQ3JELENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLHFCQUFxQjtnQkFDckQsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUkscUJBQXFCO2dCQUNyRCxDQUFDLElBQUksQ0FBQyxPQUFPO29CQUNYLENBQUMsQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLGdCQUFnQjtvQkFDL0IsSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFDLENBQUMsSUFBSSxnQ0FBZ0M7Z0JBQy9ELENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQyx3QkFBd0I7Y0FDeEY7Z0JBQ0EsT0FBTzthQUNSO1lBRUQsbURBQW1EO1lBQ25ELElBQUksQ0FBQyxDQUFDLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQzVDLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQzthQUNwQjtTQUNGO0lBQ0gsQ0FBQztJQUdELE9BQU87UUFDTCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQ2pCLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQztnQkFDdEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFFckUsT0FBTzthQUNSO1lBRUQsSUFBSSxDQUFDLGNBQWM7Z0JBQ2pCLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUN0RSxJQUFJLENBQUMsWUFBWTtnQkFDZixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBRTNELElBQUksS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDbkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3ZFO1NBQ0Y7SUFDSCxDQUFDO0lBR0QsT0FBTyxDQUFDLEtBQXFCO1FBQzNCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxZQUFZLENBQVcsQ0FBQztZQUN6RSxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzVCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUN4QjtJQUNILENBQUM7SUFHRCxPQUFPLENBQUMsS0FBWTtRQUNsQixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVPLFNBQVMsQ0FBQyxhQUFxQjtRQUNyQyxNQUFNLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxDQUFDLGFBQWEsQ0FBQztZQUM1QyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUM7WUFDbkMsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUNsQixNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUMzRSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1gsTUFBTSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7WUFDdkUsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQzVCLGdCQUFnQixFQUNoQixLQUFlLEVBQ2YsR0FBYSxFQUNiLEtBQUssQ0FDTixDQUFDO1NBQ0g7SUFDSCxDQUFDO0lBRU8sYUFBYSxDQUFDLEtBQWE7UUFDakMsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzlDLDBCQUEwQjtZQUMxQixNQUFNLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxTQUFTLElBQUksQ0FBQyxnQkFBZ0IsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ25FLE1BQU0sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztTQUNuQzthQUFNO1lBQ0wsTUFBTSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDaEQ7UUFFRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQztRQUU5QyxJQUFJLFNBQVMsR0FBRyxDQUFDLEVBQUU7WUFDakIsd0NBQXdDO1lBQ3hDLE1BQU0sYUFBYSxHQUFHLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDakUsTUFBTSxHQUFHLGFBQWEsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7U0FDdEU7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU8sY0FBYyxDQUFDLFdBQW1CO1FBQ3hDLE9BQU8sV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsZ0JBQTBCLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDO0lBQ3hFLENBQUM7d0dBOUlVLHdCQUF3Qjs0RkFBeEIsd0JBQXdCOzs0RkFBeEIsd0JBQXdCO2tCQUhwQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7aUJBQzlCO2lHQUdDLFVBQVU7c0JBRFQsS0FBSztnQkFJTixXQUFXO3NCQURWLEtBQUs7Z0JBR0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBNEJOLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBNkJuQyxPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQXNCakMsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFVakMsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2VjYWJzRGlnaXRzT25seV0nLFxufSlcbmV4cG9ydCBjbGFzcyBFY2Fic0RpZ2l0c09ubHlEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKVxuICBkaWdpdHNPbmx5ID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgYWxsb3dIeXBoZW4gPSBmYWxzZTtcblxuICBASW5wdXQoKSBkZWNpbWFsPyA9IGZhbHNlO1xuICBASW5wdXQoKSBkZWNpbWFsU2VwYXJhdG9yPyA9ICcuJztcbiAgQElucHV0KCkgdW5pdD8gPSAwO1xuXG4gIGlucHV0RWxlbWVudDogSFRNTElucHV0RWxlbWVudDtcbiAgbWludXMgPSAnLSc7XG4gIG1pbnVzQ291bnRlciA9IDA7XG4gIHJlZ2V4ITogUmVnRXhwO1xuXG4gIHByaXZhdGUgZGVjaW1hbENvdW50ZXIgPSAwO1xuICBwcml2YXRlIHJlYWRvbmx5IG5hdmlnYXRpb25LZXlzID0gW1xuICAgICdCYWNrc3BhY2UnLFxuICAgICdEZWxldGUnLFxuICAgICdUYWInLFxuICAgICdFc2NhcGUnLFxuICAgICdFbnRlcicsXG4gICAgJ0hvbWUnLFxuICAgICdFbmQnLFxuICAgICdBcnJvd0xlZnQnLFxuICAgICdBcnJvd1JpZ2h0JyxcbiAgICAnQ2xlYXInLFxuICAgICdDb3B5JyxcbiAgICAnUGFzdGUnLFxuICBdO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBlbDogRWxlbWVudFJlZikge1xuICAgIHRoaXMuaW5wdXRFbGVtZW50ID0gZWwubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICBvbktleURvd24oZTogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRpZ2l0c09ubHkpIHtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5uYXZpZ2F0aW9uS2V5cy5pbmRleE9mKGUua2V5KSA+IC0xIHx8IC8vIEFsbG93OiBuYXZpZ2F0aW9uIGtleXM6IGJhY2tzcGFjZSwgZGVsZXRlLCBhcnJvd3MgZXRjLlxuICAgICAgICAoZS5rZXkgPT09ICdhJyAmJiBlLmN0cmxLZXkpIHx8IC8vIEFsbG93OiBDdHJsK0FcbiAgICAgICAgKGUua2V5ID09PSAnYycgJiYgZS5jdHJsS2V5KSB8fCAvLyBBbGxvdzogQ3RybCtDXG4gICAgICAgIChlLmtleSA9PT0gJ3YnICYmIGUuY3RybEtleSkgfHwgLy8gQWxsb3c6IEN0cmwrVlxuICAgICAgICAoZS5rZXkgPT09ICd4JyAmJiBlLmN0cmxLZXkpIHx8IC8vIEFsbG93OiBDdHJsK1hcbiAgICAgICAgKGUua2V5ID09PSAnYScgJiYgZS5tZXRhS2V5KSB8fCAvLyBBbGxvdzogQ21kK0EgKE1hYylcbiAgICAgICAgKGUua2V5ID09PSAnYycgJiYgZS5tZXRhS2V5KSB8fCAvLyBBbGxvdzogQ21kK0MgKE1hYylcbiAgICAgICAgKGUua2V5ID09PSAndicgJiYgZS5tZXRhS2V5KSB8fCAvLyBBbGxvdzogQ21kK1YgKE1hYylcbiAgICAgICAgKGUua2V5ID09PSAneCcgJiYgZS5tZXRhS2V5KSB8fCAvLyBBbGxvdzogQ21kK1ggKE1hYylcbiAgICAgICAgKHRoaXMuZGVjaW1hbCAmJlxuICAgICAgICAgIGUua2V5ID09PSB0aGlzLmRlY2ltYWxTZXBhcmF0b3IgJiZcbiAgICAgICAgICB0aGlzLmRlY2ltYWxDb3VudGVyIDw9IDEpIHx8IC8vIEFsbG93OiBvbmx5IG9uZSBkZWNpbWFsIHBvaW50XG4gICAgICAgICh0aGlzLmRlY2ltYWwgJiYgZS5rZXkgPT09IHRoaXMubWludXMgJiYgdGhpcy5taW51c0NvdW50ZXIgPCAxKSAvLyBBbGxvdzogb25seSBvbmUgbWludXNcbiAgICAgICkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIEVuc3VyZSB0aGF0IGl0IGlzIGEgbnVtYmVyIGFuZCBzdG9wIHRoZSBrZXlwcmVzc1xuICAgICAgaWYgKGUua2V5ID09PSAnICcgfHwgIXRoaXMucmVnZXgudGVzdChlLmtleSkpIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleXVwJywgWyckZXZlbnQnXSlcbiAgb25LZXlVcCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaWdpdHNPbmx5KSB7XG4gICAgICBpZiAoIXRoaXMuZGVjaW1hbCkge1xuICAgICAgICBjb25zdCByZWdleCA9IC9bLixdL2c7XG4gICAgICAgIHRoaXMuaW5wdXRFbGVtZW50LnZhbHVlID0gdGhpcy5pbnB1dEVsZW1lbnQudmFsdWUucmVwbGFjZShyZWdleCwgJycpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5kZWNpbWFsQ291bnRlciA9XG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC52YWx1ZS5zcGxpdCh0aGlzLmRlY2ltYWxTZXBhcmF0b3IpLmxlbmd0aCAtIDE7XG4gICAgICB0aGlzLm1pbnVzQ291bnRlciA9XG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC52YWx1ZS5zcGxpdCh0aGlzLm1pbnVzKS5sZW5ndGggLSAxO1xuXG4gICAgICBpZiAoaXNOYU4oK3RoaXMuaW5wdXRFbGVtZW50LnZhbHVlKSkge1xuICAgICAgICB0aGlzLmlucHV0RWxlbWVudC52YWx1ZSA9IHRoaXMuc2FuaXRpemVJbnB1dCh0aGlzLmlucHV0RWxlbWVudC52YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigncGFzdGUnLCBbJyRldmVudCddKVxuICBvblBhc3RlKGV2ZW50OiBDbGlwYm9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRpZ2l0c09ubHkpIHtcbiAgICAgIGNvbnN0IHBhc3RlZElucHV0ID0gZXZlbnQuY2xpcGJvYXJkRGF0YT8uZ2V0RGF0YSgndGV4dC9wbGFpbicpIGFzIHN0cmluZztcbiAgICAgIHRoaXMucGFzdGVEYXRhKHBhc3RlZElucHV0KTtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2hlZWwnLCBbJyRldmVudCddKVxuICBvbldoZWVsKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlZ2V4ID0gbmV3IFJlZ0V4cCh0aGlzLmFsbG93SHlwaGVuID8gJ15bXFxcXGQgLV0rJCcgOiAnXFxcXGQnKTtcbiAgfVxuXG4gIHByaXZhdGUgcGFzdGVEYXRhKHBhc3RlZENvbnRlbnQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHNhbml0aXplZENvbnRlbnQgPSBpc05hTigrcGFzdGVkQ29udGVudClcbiAgICAgID8gdGhpcy5zYW5pdGl6ZUlucHV0KHBhc3RlZENvbnRlbnQpXG4gICAgICA6IHBhc3RlZENvbnRlbnQ7XG4gICAgY29uc3QgcGFzdGVkID0gZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2luc2VydFRleHQnLCBmYWxzZSwgc2FuaXRpemVkQ29udGVudCk7XG4gICAgaWYgKCFwYXN0ZWQpIHtcbiAgICAgIGNvbnN0IHsgc2VsZWN0aW9uU3RhcnQ6IHN0YXJ0LCBzZWxlY3Rpb25FbmQ6IGVuZCB9ID0gdGhpcy5pbnB1dEVsZW1lbnQ7XG4gICAgICB0aGlzLmlucHV0RWxlbWVudC5zZXRSYW5nZVRleHQoXG4gICAgICAgIHNhbml0aXplZENvbnRlbnQsXG4gICAgICAgIHN0YXJ0IGFzIG51bWJlcixcbiAgICAgICAgZW5kIGFzIG51bWJlcixcbiAgICAgICAgJ2VuZCcsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2FuaXRpemVJbnB1dChpbnB1dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBsZXQgcmVzdWx0ID0gJyc7XG4gICAgaWYgKHRoaXMuZGVjaW1hbCAmJiB0aGlzLmlzVmFsaWREZWNpbWFsKGlucHV0KSkge1xuICAgICAgLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICAgIGNvbnN0IHJlZ2V4ID0gbmV3IFJlZ0V4cChgXltcXGQgLSR7dGhpcy5kZWNpbWFsU2VwYXJhdG9yfV0rJGAsICdnJyk7XG4gICAgICByZXN1bHQgPSBpbnB1dC5yZXBsYWNlKHJlZ2V4LCAnJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdCA9IGlucHV0LnJlcGxhY2UoYC8ke3RoaXMucmVnZXh9L2dgLCAnJyk7XG4gICAgfVxuXG4gICAgY29uc3QgbWF4TGVuZ3RoID0gdGhpcy5pbnB1dEVsZW1lbnQubWF4TGVuZ3RoO1xuXG4gICAgaWYgKG1heExlbmd0aCA+IDApIHtcbiAgICAgIC8vIHRoZSBpbnB1dCBlbGVtZW50IGhhcyBtYXhMZW5ndGggbGltaXRcbiAgICAgIGNvbnN0IGFsbG93ZWRMZW5ndGggPSBtYXhMZW5ndGggLSB0aGlzLmlucHV0RWxlbWVudC52YWx1ZS5sZW5ndGg7XG4gICAgICByZXN1bHQgPSBhbGxvd2VkTGVuZ3RoID4gMCA/IHJlc3VsdC5zdWJzdHJpbmcoMCwgYWxsb3dlZExlbmd0aCkgOiAnJztcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBpc1ZhbGlkRGVjaW1hbChpbnB1dFN0cmluZzogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlucHV0U3RyaW5nLnNwbGl0KHRoaXMuZGVjaW1hbFNlcGFyYXRvciBhcyBzdHJpbmcpLmxlbmd0aCA8PSAyO1xuICB9XG59XG4iXX0=
260
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlnaXRzLW9ubHkuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2Jhc2UvZGlyZWN0aXZlcy9kaWdpdHMtb25seS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxHQUVOLE1BQU0sZUFBZSxDQUFDOztBQUt2QixNQUFNLE9BQU8sd0JBQXdCO0lBb0NoQjtJQWxDbkIsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUduQixXQUFXLEdBQUcsS0FBSyxDQUFDO0lBR3BCLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFFVixPQUFPLEdBQUksS0FBSyxDQUFDO0lBQ2pCLGdCQUFnQixHQUFJLEdBQUcsQ0FBQztJQUN4QixJQUFJLEdBQUksQ0FBQyxDQUFDO0lBRW5CLFlBQVksQ0FBbUI7SUFDL0IsS0FBSyxHQUFHLEdBQUcsQ0FBQztJQUNaLFlBQVksR0FBRyxDQUFDLENBQUM7SUFDakIsS0FBSyxDQUFVO0lBQ2YsVUFBVSxDQUFVO0lBRVosY0FBYyxHQUFHLENBQUMsQ0FBQztJQUNWLGNBQWMsR0FBRztRQUNoQyxXQUFXO1FBQ1gsUUFBUTtRQUNSLEtBQUs7UUFDTCxRQUFRO1FBQ1IsT0FBTztRQUNQLE1BQU07UUFDTixLQUFLO1FBQ0wsV0FBVztRQUNYLFlBQVk7UUFDWixPQUFPO1FBQ1AsTUFBTTtRQUNOLE9BQU87S0FDUixDQUFDO0lBRUYsWUFBbUIsRUFBYztRQUFkLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDL0IsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDO0lBQ3ZDLENBQUM7SUFHRCxTQUFTLENBQUMsQ0FBZ0I7UUFDeEIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLElBQ0UsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENB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QUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBNkJOLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBNEJuQyxPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQTJCakMsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFVakMsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgRGlyZWN0aXZlLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2VjYWJzRGlnaXRzT25seV0nLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRWNhYnNEaWdpdHNPbmx5RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKVxyXG4gIGRpZ2l0c09ubHkgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBhbGxvd0h5cGhlbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGFsbG93UmFuZ2UgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgZGVjaW1hbD8gPSBmYWxzZTtcclxuICBASW5wdXQoKSBkZWNpbWFsU2VwYXJhdG9yPyA9ICcuJztcclxuICBASW5wdXQoKSB1bml0PyA9IDA7XHJcblxyXG4gIGlucHV0RWxlbWVudDogSFRNTElucHV0RWxlbWVudDtcclxuICBtaW51cyA9ICctJztcclxuICBtaW51c0NvdW50ZXIgPSAwO1xyXG4gIHJlZ2V4ITogUmVnRXhwO1xyXG4gIHJhbmdlUmVnZXg/OiBSZWdFeHA7XHJcblxyXG4gIHByaXZhdGUgZGVjaW1hbENvdW50ZXIgPSAwO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgbmF2aWdhdGlvbktleXMgPSBbXHJcbiAgICAnQmFja3NwYWNlJyxcclxuICAgICdEZWxldGUnLFxyXG4gICAgJ1RhYicsXHJcbiAgICAnRXNjYXBlJyxcclxuICAgICdFbnRlcicsXHJcbiAgICAnSG9tZScsXHJcbiAgICAnRW5kJyxcclxuICAgICdBcnJvd0xlZnQnLFxyXG4gICAgJ0Fycm93UmlnaHQnLFxyXG4gICAgJ0NsZWFyJyxcclxuICAgICdDb3B5JyxcclxuICAgICdQYXN0ZScsXHJcbiAgXTtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGVsOiBFbGVtZW50UmVmKSB7XHJcbiAgICB0aGlzLmlucHV0RWxlbWVudCA9IGVsLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcclxuICBvbktleURvd24oZTogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZGlnaXRzT25seSkge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdGhpcy5uYXZpZ2F0aW9uS2V5cy5pbmRleE9mKGUua2V5KSA+IC0xIHx8IC8vIEFsbG93OiBuYXZpZ2F0aW9uIGtleXM6IGJhY2tzcGFjZSwgZGVsZXRlLCBhcnJvd3MgZXRjLlxyXG4gICAgICAgIChlLmtleSA9PT0gJ2EnICYmIGUuY3RybEtleSkgfHwgLy8gQWxsb3c6IEN0cmwrQVxyXG4gICAgICAgIChlLmtleSA9PT0gJ2MnICYmIGUuY3RybEtleSkgfHwgLy8gQWxsb3c6IEN0cmwrQ1xyXG4gICAgICAgIChlLmtleSA9PT0gJ3YnICYmIGUuY3RybEtleSkgfHwgLy8gQWxsb3c6IEN0cmwrVlxyXG4gICAgICAgIChlLmtleSA9PT0gJ3gnICYmIGUuY3RybEtleSkgfHwgLy8gQWxsb3c6IEN0cmwrWFxyXG4gICAgICAgIChlLmtleSA9PT0gJ2EnICYmIGUubWV0YUtleSkgfHwgLy8gQWxsb3c6IENtZCtBIChNYWMpXHJcbiAgICAgICAgKGUua2V5ID09PSAnYycgJiYgZS5tZXRhS2V5KSB8fCAvLyBBbGxvdzogQ21kK0MgKE1hYylcclxuICAgICAgICAoZS5rZXkgPT09ICd2JyAmJiBlLm1ldGFLZXkpIHx8IC8vIEFsbG93OiBDbWQrViAoTWFjKVxyXG4gICAgICAgIChlLmtleSA9PT0gJ3gnICYmIGUubWV0YUtleSkgfHwgLy8gQWxsb3c6IENtZCtYIChNYWMpXHJcbiAgICAgICAgKHRoaXMuZGVjaW1hbCAmJlxyXG4gICAgICAgICAgZS5rZXkgPT09IHRoaXMuZGVjaW1hbFNlcGFyYXRvciAmJlxyXG4gICAgICAgICAgdGhpcy5kZWNpbWFsQ291bnRlciA8PSAxKSB8fCAvLyBBbGxvdzogb25seSBvbmUgZGVjaW1hbCBwb2ludFxyXG4gICAgICAgIChlLmtleSA9PT0gdGhpcy5taW51cyAmJiB0aGlzLmlzTWludXNBbGxvd2VkKCkpIC8vIEFsbG93OiBsZWFkaW5nIG1pbnVzIGFuZC9vciByYW5nZSBzZXBhcmF0b3JcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoZS5rZXkgPT09ICcgJyB8fCBlLmtleSA9PT0gdGhpcy5taW51cyB8fCAhdGhpcy5yZWdleC50ZXN0KGUua2V5KSkge1xyXG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcigna2V5dXAnLCBbJyRldmVudCddKVxyXG4gIG9uS2V5VXAoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5kaWdpdHNPbmx5KSB7XHJcbiAgICAgIHRoaXMubWludXNDb3VudGVyID1cclxuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWUuc3BsaXQodGhpcy5taW51cykubGVuZ3RoIC0gMTtcclxuXHJcbiAgICAgIGlmICghdGhpcy5kZWNpbWFsKSB7XHJcbiAgICAgICAgY29uc3QgcmVnZXggPSAvWy4sXS9nO1xyXG4gICAgICAgIHRoaXMuaW5wdXRFbGVtZW50LnZhbHVlID0gdGhpcy5pbnB1dEVsZW1lbnQudmFsdWUucmVwbGFjZShyZWdleCwgJycpO1xyXG5cclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuZGVjaW1hbENvdW50ZXIgPVxyXG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC52YWx1ZS5zcGxpdCh0aGlzLmRlY2ltYWxTZXBhcmF0b3IpLmxlbmd0aCAtIDE7XHJcblxyXG4gICAgICBpZiAoXHJcbiAgICAgICAgaXNOYU4oK3RoaXMuaW5wdXRFbGVtZW50LnZhbHVlKSAmJlxyXG4gICAgICAgICF0aGlzLmlzUGFydGlhbE5lZ2F0aXZlKHRoaXMuaW5wdXRFbGVtZW50LnZhbHVlKSAmJlxyXG4gICAgICAgICF0aGlzLmlzUGFydGlhbFJhbmdlKHRoaXMuaW5wdXRFbGVtZW50LnZhbHVlKVxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLmlucHV0RWxlbWVudC52YWx1ZSA9IHRoaXMuc2FuaXRpemVJbnB1dCh0aGlzLmlucHV0RWxlbWVudC52YWx1ZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3Bhc3RlJywgWyckZXZlbnQnXSlcclxuICBvblBhc3RlKGV2ZW50OiBDbGlwYm9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZGlnaXRzT25seSkge1xyXG4gICAgICBjb25zdCBwYXN0ZWRJbnB1dCA9IGV2ZW50LmNsaXBib2FyZERhdGE/LmdldERhdGEoJ3RleHQvcGxhaW4nKSBhcyBzdHJpbmc7XHJcbiAgICAgIHRoaXMucGFzdGVEYXRhKHBhc3RlZElucHV0KTtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3doZWVsJywgWyckZXZlbnQnXSlcclxuICBvbldoZWVsKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZWdleCA9IG5ldyBSZWdFeHAoXHJcbiAgICAgIHRoaXMuYWxsb3dIeXBoZW4gfHwgdGhpcy5hbGxvd1JhbmdlID8gJ15bXFxcXGQgLV0rJCcgOiAnXFxcXGQnLFxyXG4gICAgKTtcclxuXHJcbiAgICBpZiAodGhpcy5hbGxvd1JhbmdlKSB7XHJcbiAgICAgIGNvbnN0IHNlcCA9IHRoaXMuZXNjYXBlUmVnRXhwKHRoaXMuZGVjaW1hbFNlcGFyYXRvciBhcyBzdHJpbmcpO1xyXG4gICAgICBjb25zdCBoZWFkID0gdGhpcy5kZWNpbWFsID8gYFxcXFxkKygke3NlcH1cXFxcZCopP2AgOiAnXFxcXGQrJztcclxuICAgICAgY29uc3QgdGFpbCA9IHRoaXMuZGVjaW1hbCA/IGBcXFxcZCooJHtzZXB9XFxcXGQqKT9gIDogJ1xcXFxkKic7XHJcbiAgICAgIC8vIFdoZW4gY29tYmluZWQgd2l0aCBgYWxsb3dIeXBoZW5gLCBhIGxlYWRpbmcgbWludXMgKG5lZ2F0aXZlIGxvd2VyXHJcbiAgICAgIC8vIGJvdW5kKSBpcyBhbGxvd2VkLCBlLmcuIFwiLTUtMjBcIi5cclxuICAgICAgY29uc3QgbGVhZCA9IHRoaXMuYWxsb3dIeXBoZW4gPyBgJHt0aGlzLm1pbnVzfT9gIDogJyc7XHJcbiAgICAgIHRoaXMucmFuZ2VSZWdleCA9IG5ldyBSZWdFeHAoYF4ke2xlYWR9JHtoZWFkfSgke3RoaXMubWludXN9JHt0YWlsfSk/JGApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwYXN0ZURhdGEocGFzdGVkQ29udGVudDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBzYW5pdGl6ZWRDb250ZW50ID0gaXNOYU4oK3Bhc3RlZENvbnRlbnQpXHJcbiAgICAgID8gdGhpcy5zYW5pdGl6ZUlucHV0KHBhc3RlZENvbnRlbnQpXHJcbiAgICAgIDogcGFzdGVkQ29udGVudDtcclxuICAgIGNvbnN0IHBhc3RlZCA9IGRvY3VtZW50LmV4ZWNDb21tYW5kKCdpbnNlcnRUZXh0JywgZmFsc2UsIHNhbml0aXplZENvbnRlbnQpO1xyXG4gICAgaWYgKCFwYXN0ZWQpIHtcclxuICAgICAgY29uc3QgeyBzZWxlY3Rpb25TdGFydDogc3RhcnQsIHNlbGVjdGlvbkVuZDogZW5kIH0gPSB0aGlzLmlucHV0RWxlbWVudDtcclxuICAgICAgdGhpcy5pbnB1dEVsZW1lbnQuc2V0UmFuZ2VUZXh0KFxyXG4gICAgICAgIHNhbml0aXplZENvbnRlbnQsXHJcbiAgICAgICAgc3RhcnQgYXMgbnVtYmVyLFxyXG4gICAgICAgIGVuZCBhcyBudW1iZXIsXHJcbiAgICAgICAgJ2VuZCcsXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNhbml0aXplSW5wdXQoaW5wdXQ6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBpZiAodGhpcy5hbGxvd1JhbmdlKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnNhbml0aXplUmFuZ2UoaW5wdXQpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHNlcGFyYXRvciA9IHRoaXMuZGVjaW1hbFNlcGFyYXRvciBhcyBzdHJpbmc7XHJcblxyXG4gICAgLy8gRHJvcCBldmVyeSBjaGFyYWN0ZXIgdGhhdCBpc24ndCBhbGxvd2VkLCB0aGVuIGtlZXAgb25seSBhIHNpbmdsZSBsZWFkaW5nXHJcbiAgICAvLyBoeXBoZW4gYW5kIGEgc2luZ2xlIGRlY2ltYWwgc2VwYXJhdG9yLlxyXG4gICAgY29uc3QgYWxsb3dlZCA9IFsnXFxcXGQnXTtcclxuICAgIGlmICh0aGlzLmFsbG93SHlwaGVuKSB7XHJcbiAgICAgIGFsbG93ZWQucHVzaCgnXFxcXC0nKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmRlY2ltYWwpIHtcclxuICAgICAgYWxsb3dlZC5wdXNoKHRoaXMuZXNjYXBlUmVnRXhwKHNlcGFyYXRvcikpO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCByZXN1bHQgPSBpbnB1dC5yZXBsYWNlKG5ldyBSZWdFeHAoYFteJHthbGxvd2VkLmpvaW4oJycpfV1gLCAnZycpLCAnJyk7XHJcblxyXG4gICAgaWYgKHRoaXMuYWxsb3dIeXBoZW4pIHtcclxuICAgICAgY29uc3QgaXNOZWdhdGl2ZSA9IHJlc3VsdC5zdGFydHNXaXRoKHRoaXMubWludXMpO1xyXG4gICAgICByZXN1bHQgPSAoaXNOZWdhdGl2ZSA/IHRoaXMubWludXMgOiAnJykgKyByZXN1bHQuc3BsaXQodGhpcy5taW51cykuam9pbignJyk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuZGVjaW1hbCkge1xyXG4gICAgICByZXN1bHQgPSB0aGlzLmtlZXBGaXJzdFNlcGFyYXRvcihyZXN1bHQsIHNlcGFyYXRvcik7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuYXBwbHlNYXhMZW5ndGgocmVzdWx0KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2FuaXRpemVSYW5nZShpbnB1dDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHNlcGFyYXRvciA9IHRoaXMuZGVjaW1hbFNlcGFyYXRvciBhcyBzdHJpbmc7XHJcblxyXG4gICAgY29uc3QgYWxsb3dlZCA9IFsnXFxcXGQnLCAnXFxcXC0nXTtcclxuICAgIGlmICh0aGlzLmRlY2ltYWwpIHtcclxuICAgICAgYWxsb3dlZC5wdXNoKHRoaXMuZXNjYXBlUmVnRXhwKHNlcGFyYXRvcikpO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCByZXN1bHQgPSBpbnB1dC5yZXBsYWNlKG5ldyBSZWdFeHAoYFteJHthbGxvd2VkLmpvaW4oJycpfV1gLCAnZycpLCAnJyk7XHJcblxyXG4gICAgY29uc3QgaGFzTGVhZGluZ01pbnVzID0gdGhpcy5hbGxvd0h5cGhlbiAmJiByZXN1bHQuc3RhcnRzV2l0aCh0aGlzLm1pbnVzKTtcclxuICAgIGxldCBib2R5ID0gaGFzTGVhZGluZ01pbnVzID8gcmVzdWx0LnNsaWNlKDEpIDogcmVzdWx0O1xyXG5cclxuICAgIGJvZHkgPSBib2R5LnJlcGxhY2UoL14tKy8sICcnKTtcclxuICAgIGNvbnN0IGZpcnN0SHlwaGVuID0gYm9keS5pbmRleE9mKHRoaXMubWludXMpO1xyXG4gICAgaWYgKGZpcnN0SHlwaGVuICE9PSAtMSkge1xyXG4gICAgICBib2R5ID1cclxuICAgICAgICBib2R5LnNsaWNlKDAsIGZpcnN0SHlwaGVuICsgMSkgK1xyXG4gICAgICAgIGJvZHkuc2xpY2UoZmlyc3RIeXBoZW4gKyAxKS5zcGxpdCh0aGlzLm1pbnVzKS5qb2luKCcnKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5kZWNpbWFsKSB7XHJcbiAgICAgIGJvZHkgPSBib2R5XHJcbiAgICAgICAgLnNwbGl0KHRoaXMubWludXMpXHJcbiAgICAgICAgLm1hcCgoc2VnbWVudCkgPT4gdGhpcy5rZWVwRmlyc3RTZXBhcmF0b3Ioc2VnbWVudCwgc2VwYXJhdG9yKSlcclxuICAgICAgICAuam9pbih0aGlzLm1pbnVzKTtcclxuICAgIH1cclxuXHJcbiAgICByZXN1bHQgPSAoaGFzTGVhZGluZ01pbnVzID8gdGhpcy5taW51cyA6ICcnKSArIGJvZHk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuYXBwbHlNYXhMZW5ndGgocmVzdWx0KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUga2VlcEZpcnN0U2VwYXJhdG9yKHZhbHVlOiBzdHJpbmcsIHNlcGFyYXRvcjogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGZpcnN0U2VwYXJhdG9yID0gdmFsdWUuaW5kZXhPZihzZXBhcmF0b3IpO1xyXG4gICAgaWYgKGZpcnN0U2VwYXJhdG9yID09PSAtMSkge1xyXG4gICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIChcclxuICAgICAgdmFsdWUuc2xpY2UoMCwgZmlyc3RTZXBhcmF0b3IgKyAxKSArXHJcbiAgICAgIHZhbHVlLnNsaWNlKGZpcnN0U2VwYXJhdG9yICsgMSkuc3BsaXQoc2VwYXJhdG9yKS5qb2luKCcnKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXBwbHlNYXhMZW5ndGgocmVzdWx0OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgbWF4TGVuZ3RoID0gdGhpcy5pbnB1dEVsZW1lbnQubWF4TGVuZ3RoO1xyXG5cclxuICAgIGlmIChtYXhMZW5ndGggPiAwKSB7XHJcbiAgICAgIC8vIHRoZSBpbnB1dCBlbGVtZW50IGhhcyBtYXhMZW5ndGggbGltaXRcclxuICAgICAgY29uc3QgYWxsb3dlZExlbmd0aCA9IG1heExlbmd0aCAtIHRoaXMuaW5wdXRFbGVtZW50LnZhbHVlLmxlbmd0aDtcclxuXHJcbiAgICAgIHJldHVybiBhbGxvd2VkTGVuZ3RoID4gMCA/IHJlc3VsdC5zdWJzdHJpbmcoMCwgYWxsb3dlZExlbmd0aCkgOiAnJztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBlc2NhcGVSZWdFeHAodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdmFsdWUucmVwbGFjZSgvWy4qKz9eJHt9KCl8W1xcXVxcXFxdL2csICdcXFxcJCYnKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNNaW51c0FsbG93ZWQoKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuaW5wdXRFbGVtZW50LnZhbHVlO1xyXG5cclxuICAgIC8vIENvbWJpbmVkIG1vZGU6IGEgc2luZ2xlIGxlYWRpbmcgbWludXMgKG5lZ2F0aXZlIGxvd2VyIGJvdW5kKSBwbHVzIG9uZVxyXG4gICAgLy8gcmFuZ2Ugc2VwYXJhdG9yLCBlLmcuIFwiLTUtMjBcIi5cclxuICAgIGlmICh0aGlzLmFsbG93SHlwaGVuICYmIHRoaXMuYWxsb3dSYW5nZSkge1xyXG4gICAgICBpZiAodGhpcy5pc0NhcmV0QXRTdGFydCgpKSB7XHJcbiAgICAgICAgcmV0dXJuICF2YWx1ZS5zdGFydHNXaXRoKHRoaXMubWludXMpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gdGhpcy5oYXNEaWdpdEJlZm9yZUNhcmV0KCkgJiYgIXRoaXMuaGFzUmFuZ2VTZXBhcmF0b3IoKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBIeXBoZW4gb25seTogYSBzaW5nbGUgbGVhZGluZyBtaW51cy5cclxuICAgIGlmICh0aGlzLmFsbG93SHlwaGVuKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLm1pbnVzQ291bnRlciA8IDEgJiYgdGhpcy5pc0NhcmV0QXRTdGFydCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFJhbmdlIG9ubHk6IGEgc2luZ2xlIHNlcGFyYXRvciwgbmV2ZXIgbGVhZGluZy5cclxuICAgIGlmICh0aGlzLmFsbG93UmFuZ2UpIHtcclxuICAgICAgcmV0dXJuIHRoaXMubWludXNDb3VudGVyIDwgMSAmJiB0aGlzLmhhc0RpZ2l0QmVmb3JlQ2FyZXQoKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhc1JhbmdlU2VwYXJhdG9yKCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmlucHV0RWxlbWVudC52YWx1ZTtcclxuICAgIGNvbnN0IGJvZHkgPSB2YWx1ZS5zdGFydHNXaXRoKHRoaXMubWludXMpID8gdmFsdWUuc2xpY2UoMSkgOiB2YWx1ZTtcclxuXHJcbiAgICByZXR1cm4gYm9keS5pbmNsdWRlcyh0aGlzLm1pbnVzKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNDYXJldEF0U3RhcnQoKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBjYXJldCA9IHRoaXMuaW5wdXRFbGVtZW50LnNlbGVjdGlvblN0YXJ0O1xyXG5cclxuICAgIHJldHVybiBjYXJldCA9PT0gbnVsbCB8fCBjYXJldCA9PT0gMDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFzRGlnaXRCZWZvcmVDYXJldCgpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGNhcmV0ID0gdGhpcy5pbnB1dEVsZW1lbnQuc2VsZWN0aW9uU3RhcnQ7XHJcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuaW5wdXRFbGVtZW50LnZhbHVlO1xyXG4gICAgY29uc3QgYmVmb3JlID0gY2FyZXQgPT09IG51bGwgPyB2YWx1ZSA6IHZhbHVlLnNsaWNlKDAsIGNhcmV0KTtcclxuXHJcbiAgICByZXR1cm4gL1xcZC8udGVzdChiZWZvcmUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc1BhcnRpYWxSYW5nZSh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gISF0aGlzLmFsbG93UmFuZ2UgJiYgISF0aGlzLnJhbmdlUmVnZXggJiYgdGhpcy5yYW5nZVJlZ2V4LnRlc3QodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc1BhcnRpYWxOZWdhdGl2ZSh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXRoaXMuYWxsb3dIeXBoZW4gfHwgIXZhbHVlLnN0YXJ0c1dpdGgodGhpcy5taW51cykpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHJlbWFpbmRlciA9IHZhbHVlLnNsaWNlKDEpO1xyXG5cclxuICAgIGlmIChyZW1haW5kZXIuaW5jbHVkZXModGhpcy5taW51cykpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiAoXHJcbiAgICAgIHJlbWFpbmRlciA9PT0gJycgfHxcclxuICAgICAgcmVtYWluZGVyID09PSB0aGlzLmRlY2ltYWxTZXBhcmF0b3IgfHxcclxuICAgICAgIWlzTmFOKCtyZW1haW5kZXIpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUubW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2Jhc2UvbW9kZWxzL3Bob25lLm1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBDb3VudHJ5UHJlZml4IHtcclxuICBkaWFsaW5nX2NvZGU6IHN0cmluZztcclxuICBpc286IHN0cmluZztcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgcGhvbmVfbnVtYmVyPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBDb3VudHJ5ID0ge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBpc28yOiBzdHJpbmc7XHJcbiAgZGlhbENvZGU6IHN0cmluZztcclxuICBwcmlvcml0eTogbnVtYmVyO1xyXG4gIGFyZWFDb2Rlcz86IHN0cmluZ1tdO1xyXG4gIGZsYWdDbGFzczogc3RyaW5nO1xyXG4gIHBsYWNlSG9sZGVyPzogc3RyaW5nO1xyXG59O1xyXG5cclxuZXhwb3J0IHR5cGUgUGhvbmVOdW1iZXJDb2RlVHlwZSA9ICdpc28nIHwgJ2NhbGxpbmcnO1xyXG5leHBvcnQgdHlwZSBQaG9uZU51bWJlckZvcm1hdCA9ICdkZWZhdWx0JyB8ICduYXRpb25hbCcgfCAnaW50ZXJuYXRpb25hbCc7XHJcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUubW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2Jhc2UvbW9kZWxzL3Bob25lLm1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBDb3VudHJ5UHJlZml4IHtcbiAgZGlhbGluZ19jb2RlOiBzdHJpbmc7XG4gIGlzbzogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHBob25lX251bWJlcj86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgQ291bnRyeSA9IHtcbiAgbmFtZTogc3RyaW5nO1xuICBpc28yOiBzdHJpbmc7XG4gIGRpYWxDb2RlOiBzdHJpbmc7XG4gIHByaW9yaXR5OiBudW1iZXI7XG4gIGFyZWFDb2Rlcz86IHN0cmluZ1tdO1xuICBmbGFnQ2xhc3M6IHN0cmluZztcbiAgcGxhY2VIb2xkZXI/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBQaG9uZU51bWJlckNvZGVUeXBlID0gJ2lzbycgfCAnY2FsbGluZyc7XG5leHBvcnQgdHlwZSBQaG9uZU51bWJlckZvcm1hdCA9ICdkZWZhdWx0JyB8ICduYXRpb25hbCcgfCAnaW50ZXJuYXRpb25hbCc7XG4iXX0=
@@ -53,4 +53,4 @@ export function extractCountryPrefixFromNumber(phone_number, regions) {
53
53
  phone_number,
54
54
  };
55
55
  }
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtbnVtYmVyLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2Jhc2UvdXRpbHMvcGhvbmUtbnVtYmVyLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCxZQUFZLEVBQ1oscUJBQXFCLEVBQ3JCLDBCQUEwQixHQUMzQixNQUFNLG1CQUFtQixDQUFDO0FBRTNCLE1BQU0sVUFBVSxzQkFBc0IsQ0FDcEMsV0FBMEIsRUFDMUIsT0FBNEIsS0FBSyxFQUNqQyxhQUFhLEdBQUcsS0FBSztJQUVyQixJQUFJLENBQUMsV0FBVyxFQUFFO1FBQ2hCLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFFRCxNQUFNLGlCQUFpQixHQUFHLDBCQUEwQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRWxFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUNqQyxPQUFPLElBQUksQ0FBQztLQUNiO0lBRUQsTUFBTSxLQUFLLEdBQ1QsSUFBSSxLQUFLLFNBQVM7UUFDaEIsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLGtCQUFrQjtRQUN0QyxDQUFDLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxDQUFDO0lBRS9DLElBQUksQ0FBQyxLQUFLLEVBQUU7UUFDVixPQUFPLElBQUksQ0FBQztLQUNiO0lBRUQsT0FBTyxhQUFhLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUNsRCxDQUFDO0FBRUQsTUFBTSxVQUFVLGtCQUFrQixDQUFDLFdBQTBCO0lBQzNELE1BQU0sSUFBSSxHQUFHLHNCQUFzQixDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUU1RCxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ2xDLENBQUM7QUFFRCxNQUFNLFVBQVUscUJBQXFCLENBQ25DLE9BQXNCLEVBQ3RCLE1BQU0sR0FBRyxDQUFDLE9BQU8sQ0FBQztJQUVsQixNQUFNLFlBQVksR0FBRyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFFdkUsT0FBTyxZQUFZLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsSUFBSSxPQUFPLENBQUMsQ0FBQztBQUMzRCxDQUFDO0FBRUQsTUFBTSxVQUFVLHlCQUF5QixDQUN2QyxPQUFzQjtJQUV0QixJQUFJLENBQUMsT0FBTyxFQUFFO1FBQ1osT0FBTyxJQUFJLENBQUM7S0FDYjtJQUVELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN6QyxNQUFNLEtBQUssR0FBRyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxVQUFVLENBQUMsQ0FBQztJQUV2RSxJQUFJLENBQUMsS0FBSyxFQUFFO1FBQ1YsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUVELE9BQU8sSUFBSSxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO0FBQzVDLENBQUM7QUFFRCxNQUFNLFVBQVUsMkJBQTJCO0lBQ3pDLE9BQU8sWUFBWSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztBQUN4RCxDQUFDO0FBRUQsTUFBTSxVQUFVLDhCQUE4QixDQUM1QyxZQUFvQixFQUNwQixPQUFpQjtJQUVqQixJQUFJLENBQUMsWUFBWSxFQUFFO1FBQ2pCLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFFRCxNQUFNLFlBQVksR0FBRyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN0RCxNQUFNLEdBQUcsR0FBRyxzQkFBc0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUVqRCxJQUFJLENBQUMsR0FBRyxFQUFFO1FBQ1IsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUVELE9BQU87UUFDTCxZQUFZO1FBQ1osR0FBRztRQUNILElBQUksRUFBRSxxQkFBcUIsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDO1FBQ3pDLFlBQVk7S0FDYixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvdW50cnlQcmVmaXgsIFBob25lTnVtYmVyQ29kZVR5cGUgfSBmcm9tICcuLi9tb2RlbHMvcGhvbmUubW9kZWxzJztcclxuaW1wb3J0IHtcclxuICBnZXRDb3VudHJpZXMsXHJcbiAgZ2V0Q291bnRyeUNhbGxpbmdDb2RlLFxyXG4gIHBhcnNlUGhvbmVOdW1iZXJGcm9tU3RyaW5nLFxyXG59IGZyb20gJ2xpYnBob25lbnVtYmVyLWpzJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0UGhvbmVOdW1iZXJDb2RlKFxyXG4gIHBob25lTnVtYmVyOiBzdHJpbmcgfCBudWxsLFxyXG4gIHR5cGU6IFBob25lTnVtYmVyQ29kZVR5cGUgPSAnaXNvJyxcclxuICB3aXRoRmxhZ0NsYXNzID0gZmFsc2UsXHJcbik6IHN0cmluZyB8IG51bGwge1xyXG4gIGlmICghcGhvbmVOdW1iZXIpIHtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgcGFyc2VkUGhvbmVOdW1iZXIgPSBwYXJzZVBob25lTnVtYmVyRnJvbVN0cmluZyhwaG9uZU51bWJlcik7XHJcblxyXG4gIGlmICghcGFyc2VkUGhvbmVOdW1iZXI/LmlzVmFsaWQoKSkge1xyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICBjb25zdCB2YWx1ZSA9XHJcbiAgICB0eXBlID09PSAnY2FsbGluZydcclxuICAgICAgPyBwYXJzZWRQaG9uZU51bWJlci5jb3VudHJ5Q2FsbGluZ0NvZGVcclxuICAgICAgOiBwYXJzZWRQaG9uZU51bWJlci5jb3VudHJ5Py50b0xvd2VyQ2FzZSgpO1xyXG5cclxuICBpZiAoIXZhbHVlKSB7XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIHJldHVybiB3aXRoRmxhZ0NsYXNzID8gYGZpIGZpLSR7dmFsdWV9YCA6IHZhbHVlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdERpYWxpbmdDb2RlKHBob25lTnVtYmVyOiBzdHJpbmcgfCBudWxsKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgY29uc3QgY29kZSA9IGV4dHJhY3RQaG9uZU51bWJlckNvZGUocGhvbmVOdW1iZXIsICdjYWxsaW5nJyk7XHJcblxyXG4gIHJldHVybiBjb2RlID8gYCske2NvZGV9YCA6IG51bGw7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0Q291bnRyeUZyb21Jc28oXHJcbiAgaXNvQ29kZTogc3RyaW5nIHwgbnVsbCxcclxuICByZWdpb24gPSBbJ2VuLUdCJ10sXHJcbik6IHN0cmluZyB8IG51bGwge1xyXG4gIGNvbnN0IGRpc3BsYXlOYW1lcyA9IG5ldyBJbnRsLkRpc3BsYXlOYW1lcyhyZWdpb24sIHsgdHlwZTogJ3JlZ2lvbicgfSk7XHJcblxyXG4gIHJldHVybiBkaXNwbGF5TmFtZXMub2YoaXNvQ29kZS50b1VwcGVyQ2FzZSgpID8/IGlzb0NvZGUpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdENhbGxpbmdDb2RlRnJvbUlzbyhcclxuICBpc29Db2RlOiBzdHJpbmcgfCBudWxsLFxyXG4pOiBzdHJpbmcgfCBudWxsIHtcclxuICBpZiAoIWlzb0NvZGUpIHtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgY29uc3Qgbm9ybWFsaXplZCA9IGlzb0NvZGUudG9VcHBlckNhc2UoKTtcclxuICBjb25zdCBtYXRjaCA9IGdldENvdW50cmllcygpLmZpbmQoKGNvdW50cnkpID0+IGNvdW50cnkgPT09IG5vcm1hbGl6ZWQpO1xyXG5cclxuICBpZiAoIW1hdGNoKSB7XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIHJldHVybiBgKyR7Z2V0Q291bnRyeUNhbGxpbmdDb2RlKG1hdGNoKX1gO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3VwcG9ydGVkQ291bnRyeUlzb0NvZGVzKCk6IHN0cmluZ1tdIHtcclxuICByZXR1cm4gZ2V0Q291bnRyaWVzKCkubWFwKChpc28pID0+IGlzby50b0xvd2VyQ2FzZSgpKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RDb3VudHJ5UHJlZml4RnJvbU51bWJlcihcclxuICBwaG9uZV9udW1iZXI6IHN0cmluZyxcclxuICByZWdpb25zOiBzdHJpbmdbXSxcclxuKTogQ291bnRyeVByZWZpeCB8IG51bGwge1xyXG4gIGlmICghcGhvbmVfbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIGNvbnN0IGRpYWxpbmdfY29kZSA9IGV4dHJhY3REaWFsaW5nQ29kZShwaG9uZV9udW1iZXIpO1xyXG4gIGNvbnN0IGlzbyA9IGV4dHJhY3RQaG9uZU51bWJlckNvZGUocGhvbmVfbnVtYmVyKTtcclxuXHJcbiAgaWYgKCFpc28pIHtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHtcclxuICAgIGRpYWxpbmdfY29kZSxcclxuICAgIGlzbyxcclxuICAgIG5hbWU6IGV4dHJhY3RDb3VudHJ5RnJvbUlzbyhpc28sIHJlZ2lvbnMpLFxyXG4gICAgcGhvbmVfbnVtYmVyLFxyXG4gIH07XHJcbn1cclxuIl19
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtbnVtYmVyLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2Jhc2UvdXRpbHMvcGhvbmUtbnVtYmVyLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCxZQUFZLEVBQ1oscUJBQXFCLEVBQ3JCLDBCQUEwQixHQUMzQixNQUFNLG1CQUFtQixDQUFDO0FBRTNCLE1BQU0sVUFBVSxzQkFBc0IsQ0FDcEMsV0FBMEIsRUFDMUIsT0FBNEIsS0FBSyxFQUNqQyxhQUFhLEdBQUcsS0FBSztJQUVyQixJQUFJLENBQUMsV0FBVyxFQUFFO1FBQ2hCLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFFRCxNQUFNLGlCQUFpQixHQUFHLDBCQUEwQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRWxFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUNqQyxPQUFPLElBQUksQ0FBQztLQUNiO0lBRUQsTUFBTSxLQUFLLEdBQ1QsSUFBSSxLQUFLLFNBQVM7UUFDaEIsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLGtCQUFrQjtRQUN0QyxDQUFDLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxDQUFDO0lBRS9DLElBQUksQ0FBQyxLQUFLLEVBQUU7UUFDVixPQUFPLElBQUksQ0FBQztLQUNiO0lBRUQsT0FBTyxhQUFhLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUNsRCxDQUFDO0FBRUQsTUFBTSxVQUFVLGtCQUFrQixDQUFDLFdBQTBCO0lBQzNELE1BQU0sSUFBSSxHQUFHLHNCQUFzQixDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUU1RCxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ2xDLENBQUM7QUFFRCxNQUFNLFVBQVUscUJBQXFCLENBQ25DLE9BQXNCLEVBQ3RCLE1BQU0sR0FBRyxDQUFDLE9BQU8sQ0FBQztJQUVsQixNQUFNLFlBQVksR0FBRyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFFdkUsT0FBTyxZQUFZLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsSUFBSSxPQUFPLENBQUMsQ0FBQztBQUMzRCxDQUFDO0FBRUQsTUFBTSxVQUFVLHlCQUF5QixDQUN2QyxPQUFzQjtJQUV0QixJQUFJLENBQUMsT0FBTyxFQUFFO1FBQ1osT0FBTyxJQUFJLENBQUM7S0FDYjtJQUVELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN6QyxNQUFNLEtBQUssR0FBRyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxVQUFVLENBQUMsQ0FBQztJQUV2RSxJQUFJLENBQUMsS0FBSyxFQUFFO1FBQ1YsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUVELE9BQU8sSUFBSSxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO0FBQzVDLENBQUM7QUFFRCxNQUFNLFVBQVUsMkJBQTJCO0lBQ3pDLE9BQU8sWUFBWSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztBQUN4RCxDQUFDO0FBRUQsTUFBTSxVQUFVLDhCQUE4QixDQUM1QyxZQUFvQixFQUNwQixPQUFpQjtJQUVqQixJQUFJLENBQUMsWUFBWSxFQUFFO1FBQ2pCLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFFRCxNQUFNLFlBQVksR0FBRyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN0RCxNQUFNLEdBQUcsR0FBRyxzQkFBc0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUVqRCxJQUFJLENBQUMsR0FBRyxFQUFFO1FBQ1IsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUVELE9BQU87UUFDTCxZQUFZO1FBQ1osR0FBRztRQUNILElBQUksRUFBRSxxQkFBcUIsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDO1FBQ3pDLFlBQVk7S0FDYixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvdW50cnlQcmVmaXgsIFBob25lTnVtYmVyQ29kZVR5cGUgfSBmcm9tICcuLi9tb2RlbHMvcGhvbmUubW9kZWxzJztcbmltcG9ydCB7XG4gIGdldENvdW50cmllcyxcbiAgZ2V0Q291bnRyeUNhbGxpbmdDb2RlLFxuICBwYXJzZVBob25lTnVtYmVyRnJvbVN0cmluZyxcbn0gZnJvbSAnbGlicGhvbmVudW1iZXItanMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdFBob25lTnVtYmVyQ29kZShcbiAgcGhvbmVOdW1iZXI6IHN0cmluZyB8IG51bGwsXG4gIHR5cGU6IFBob25lTnVtYmVyQ29kZVR5cGUgPSAnaXNvJyxcbiAgd2l0aEZsYWdDbGFzcyA9IGZhbHNlLFxuKTogc3RyaW5nIHwgbnVsbCB7XG4gIGlmICghcGhvbmVOdW1iZXIpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IHBhcnNlZFBob25lTnVtYmVyID0gcGFyc2VQaG9uZU51bWJlckZyb21TdHJpbmcocGhvbmVOdW1iZXIpO1xuXG4gIGlmICghcGFyc2VkUGhvbmVOdW1iZXI/LmlzVmFsaWQoKSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgdmFsdWUgPVxuICAgIHR5cGUgPT09ICdjYWxsaW5nJ1xuICAgICAgPyBwYXJzZWRQaG9uZU51bWJlci5jb3VudHJ5Q2FsbGluZ0NvZGVcbiAgICAgIDogcGFyc2VkUGhvbmVOdW1iZXIuY291bnRyeT8udG9Mb3dlckNhc2UoKTtcblxuICBpZiAoIXZhbHVlKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4gd2l0aEZsYWdDbGFzcyA/IGBmaSBmaS0ke3ZhbHVlfWAgOiB2YWx1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3REaWFsaW5nQ29kZShwaG9uZU51bWJlcjogc3RyaW5nIHwgbnVsbCk6IHN0cmluZyB8IG51bGwge1xuICBjb25zdCBjb2RlID0gZXh0cmFjdFBob25lTnVtYmVyQ29kZShwaG9uZU51bWJlciwgJ2NhbGxpbmcnKTtcblxuICByZXR1cm4gY29kZSA/IGArJHtjb2RlfWAgOiBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdENvdW50cnlGcm9tSXNvKFxuICBpc29Db2RlOiBzdHJpbmcgfCBudWxsLFxuICByZWdpb24gPSBbJ2VuLUdCJ10sXG4pOiBzdHJpbmcgfCBudWxsIHtcbiAgY29uc3QgZGlzcGxheU5hbWVzID0gbmV3IEludGwuRGlzcGxheU5hbWVzKHJlZ2lvbiwgeyB0eXBlOiAncmVnaW9uJyB9KTtcblxuICByZXR1cm4gZGlzcGxheU5hbWVzLm9mKGlzb0NvZGUudG9VcHBlckNhc2UoKSA/PyBpc29Db2RlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RDYWxsaW5nQ29kZUZyb21Jc28oXG4gIGlzb0NvZGU6IHN0cmluZyB8IG51bGwsXG4pOiBzdHJpbmcgfCBudWxsIHtcbiAgaWYgKCFpc29Db2RlKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBub3JtYWxpemVkID0gaXNvQ29kZS50b1VwcGVyQ2FzZSgpO1xuICBjb25zdCBtYXRjaCA9IGdldENvdW50cmllcygpLmZpbmQoKGNvdW50cnkpID0+IGNvdW50cnkgPT09IG5vcm1hbGl6ZWQpO1xuXG4gIGlmICghbWF0Y2gpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiBgKyR7Z2V0Q291bnRyeUNhbGxpbmdDb2RlKG1hdGNoKX1gO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3VwcG9ydGVkQ291bnRyeUlzb0NvZGVzKCk6IHN0cmluZ1tdIHtcbiAgcmV0dXJuIGdldENvdW50cmllcygpLm1hcCgoaXNvKSA9PiBpc28udG9Mb3dlckNhc2UoKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0Q291bnRyeVByZWZpeEZyb21OdW1iZXIoXG4gIHBob25lX251bWJlcjogc3RyaW5nLFxuICByZWdpb25zOiBzdHJpbmdbXSxcbik6IENvdW50cnlQcmVmaXggfCBudWxsIHtcbiAgaWYgKCFwaG9uZV9udW1iZXIpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IGRpYWxpbmdfY29kZSA9IGV4dHJhY3REaWFsaW5nQ29kZShwaG9uZV9udW1iZXIpO1xuICBjb25zdCBpc28gPSBleHRyYWN0UGhvbmVOdW1iZXJDb2RlKHBob25lX251bWJlcik7XG5cbiAgaWYgKCFpc28pIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZGlhbGluZ19jb2RlLFxuICAgIGlzbyxcbiAgICBuYW1lOiBleHRyYWN0Q291bnRyeUZyb21Jc28oaXNvLCByZWdpb25zKSxcbiAgICBwaG9uZV9udW1iZXIsXG4gIH07XG59XG4iXX0=
@@ -68,4 +68,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
68
68
  }], valueChange: [{
69
69
  type: Output
70
70
  }] } });
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtYnV0dG9uLXRvZ2dsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lY2Ficy1jb21wb25lbnRzL3NyYy9saWIvZWNhYnMtYnV0dG9uLXRvZ2dsZS9lY2Ficy1idXR0b24tdG9nZ2xlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1idXR0b24tdG9nZ2xlL2VjYWJzLWJ1dHRvbi10b2dnbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQW9CekUsTUFBTSxPQUFPLDBCQUEwQjtJQUc1QixPQUFPLEdBQXNCLEVBQUUsQ0FBQztJQUNoQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ2pCLElBQUksR0FBcUIsT0FBTyxDQUFDO0lBRWpDLEtBQUssR0FBWSxJQUFJLENBQUM7SUFDckIsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7SUFFcEQsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUVYLFFBQVEsR0FBNkIsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBQzlDLFNBQVMsR0FBZSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFFeEIsR0FBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRWpELGFBQWEsQ0FBQyxLQUE0QjtRQUN4QyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFFekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsa0JBQWtCLENBQUMsS0FBYSxFQUFFLE1BQXVCO1FBQ3ZELE9BQU8sTUFBTSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUM7SUFDL0IsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFjO1FBQ3ZCLDBFQUEwRTtRQUMxRSw2RUFBNkU7UUFDN0Usb0ZBQW9GO1FBQ3BGLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQTRCO1FBQzNDLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFjO1FBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUNsQyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFCLENBQUM7d0dBaERVLDBCQUEwQjs0RkFBMUIsMEJBQTBCLDJLQVIxQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsMEJBQTBCLENBQUM7Z0JBQ3pELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRiwwQkM3QkgsNGNBYzBCOzs0RkRpQmIsMEJBQTBCO2tCQWR0QyxTQUFTOytCQUNFLHFCQUFxQixtQkFHZCx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLGFBQzFCO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDJCQUEyQixDQUFDOzRCQUN6RCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjs4QkFLUSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgZm9yd2FyZFJlZixcclxuICBpbmplY3QsXHJcbiAgSW5wdXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvblRvZ2dsZUNoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbi10b2dnbGUnO1xyXG5pbXBvcnQgeyBTZWxlY3RPcHRpb24gfSBmcm9tICcuLi9iYXNlL21vZGVscy9zZWxlY3QubW9kZWxzJztcclxuXHJcbmV4cG9ydCB0eXBlIEJ1dHRvblRvZ2dsZVNpemUgPSAnc21hbGwnIHwgJ21lZGl1bScgfCAnbGFyZ2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdlY2Ficy1idXR0b24tdG9nZ2xlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZWNhYnMtYnV0dG9uLXRvZ2dsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZWNhYnMtYnV0dG9uLXRvZ2dsZS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBFY2Fic0J1dHRvblRvZ2dsZUNvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRWNhYnNCdXR0b25Ub2dnbGVDb21wb25lbnQ8XHJcbiAgVCA9IHVua25vd24sXHJcbj4gaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgQElucHV0KCkgb3B0aW9uczogU2VsZWN0T3B0aW9uPFQ+W10gPSBbXTtcclxuICBASW5wdXQoKSBtdWx0aXBsZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNpemU6IEJ1dHRvblRvZ2dsZVNpemUgPSAnc21hbGwnO1xyXG5cclxuICBASW5wdXQoKSB2YWx1ZTogVCB8IFRbXSA9IG51bGw7XHJcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUIHwgVFtdPigpO1xyXG5cclxuICBpc0Rpc2FibGVkID0gZmFsc2U7XHJcblxyXG4gIHByaXZhdGUgb25DaGFuZ2U6ICh2YWx1ZTogVCB8IFRbXSkgPT4gdm9pZCA9ICgpID0+IHt9O1xyXG4gIHByaXZhdGUgb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4ge307XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcclxuXHJcbiAgb25Hcm91cENoYW5nZShldmVudDogTWF0QnV0dG9uVG9nZ2xlQ2hhbmdlKTogdm9pZCB7XHJcbiAgICB0aGlzLnZhbHVlID0gZXZlbnQudmFsdWU7XHJcblxyXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcclxuICAgIHRoaXMub25Ub3VjaGVkKCk7XHJcbiAgfVxyXG5cclxuICB0cmFja0J5T3B0aW9uVmFsdWUoaW5kZXg6IG51bWJlciwgb3B0aW9uOiBTZWxlY3RPcHRpb248VD4pOiBUIHwgbnVtYmVyIHtcclxuICAgIHJldHVybiBvcHRpb24udmFsdWUgPz8gaW5kZXg7XHJcbiAgfVxyXG5cclxuICB3cml0ZVZhbHVlKHZhbHVlOiBUIHwgVFtdKTogdm9pZCB7XHJcbiAgICAvLyBPblB1c2ggKyBDb250cm9sVmFsdWVBY2Nlc3Nvcjogd3JpdGVWYWx1ZSBpcyBpbnZva2VkIGJ5IEFuZ3VsYXIgb3V0c2lkZVxyXG4gICAgLy8gdGhlIGNvbXBvbmVudCdzIGlucHV0L2V2ZW50IHBhdGhzLCBzbyBtYXJrIGZvciBjaGVjayB0byB0cmlnZ2VyIHJlLXJlbmRlci5cclxuICAgIC8vIFRoaXMgY2FuIHBvdGVudGlhbGx5IGJlIHJlcGxhY2VkIHdpdGggYSBzaWduYWwtYmFja2VkIHZhbHVlIGluIHRoZSB2MTkrIHJlZmFjdG9yLlxyXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IFQgfCBUW10pID0+IHZvaWQpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzRGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxtYXQtYnV0dG9uLXRvZ2dsZS1ncm91cFxuICBjbGFzcz1cImVjYWJzLWJ1dHRvbi10b2dnbGVcIlxuICBbbmdDbGFzc109XCInZWNhYnMtYnV0dG9uLXRvZ2dsZS0tJyArIHNpemVcIlxuICBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIlxuICBbdmFsdWVdPVwidmFsdWVcIiBcbiAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIlxuICAoY2hhbmdlKT1cIm9uR3JvdXBDaGFuZ2UoJGV2ZW50KVwiXG4+ICBcbiAgPG1hdC1idXR0b24tdG9nZ2xlXG4gICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zOyB0cmFja0J5OiB0cmFja0J5T3B0aW9uVmFsdWVcIlxuICAgIFt2YWx1ZV09XCJvcHRpb24udmFsdWVcIlxuICAgIFtkaXNhYmxlZF09XCJvcHRpb24uZGlzYWJsZWRcIj5cbiAgICB7eyBvcHRpb24ubGFiZWwgfX1cbiAgPC9tYXQtYnV0dG9uLXRvZ2dsZT5cbjwvbWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXA+Il19
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtYnV0dG9uLXRvZ2dsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lY2Ficy1jb21wb25lbnRzL3NyYy9saWIvZWNhYnMtYnV0dG9uLXRvZ2dsZS9lY2Ficy1idXR0b24tdG9nZ2xlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1idXR0b24tdG9nZ2xlL2VjYWJzLWJ1dHRvbi10b2dnbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQW9CekUsTUFBTSxPQUFPLDBCQUEwQjtJQUc1QixPQUFPLEdBQXNCLEVBQUUsQ0FBQztJQUNoQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ2pCLElBQUksR0FBcUIsT0FBTyxDQUFDO0lBRWpDLEtBQUssR0FBWSxJQUFJLENBQUM7SUFDckIsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7SUFFcEQsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUVYLFFBQVEsR0FBNkIsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBQzlDLFNBQVMsR0FBZSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFFeEIsR0FBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRWpELGFBQWEsQ0FBQyxLQUE0QjtRQUN4QyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFFekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsa0JBQWtCLENBQUMsS0FBYSxFQUFFLE1BQXVCO1FBQ3ZELE9BQU8sTUFBTSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUM7SUFDL0IsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFjO1FBQ3ZCLDBFQUEwRTtRQUMxRSw2RUFBNkU7UUFDN0Usb0ZBQW9GO1FBQ3BGLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQTRCO1FBQzNDLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFjO1FBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUNsQyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFCLENBQUM7d0dBaERVLDBCQUEwQjs0RkFBMUIsMEJBQTBCLDJLQVIxQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsMEJBQTBCLENBQUM7Z0JBQ3pELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRiwwQkM3QkgsNGNBYzBCOzs0RkRpQmIsMEJBQTBCO2tCQWR0QyxTQUFTOytCQUNFLHFCQUFxQixtQkFHZCx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLGFBQzFCO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDJCQUEyQixDQUFDOzRCQUN6RCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjs4QkFLUSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBpbmplY3QsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEJ1dHRvblRvZ2dsZUNoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbi10b2dnbGUnO1xuaW1wb3J0IHsgU2VsZWN0T3B0aW9uIH0gZnJvbSAnLi4vYmFzZS9tb2RlbHMvc2VsZWN0Lm1vZGVscyc7XG5cbmV4cG9ydCB0eXBlIEJ1dHRvblRvZ2dsZVNpemUgPSAnc21hbGwnIHwgJ21lZGl1bScgfCAnbGFyZ2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlY2Ficy1idXR0b24tdG9nZ2xlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VjYWJzLWJ1dHRvbi10b2dnbGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lY2Ficy1idXR0b24tdG9nZ2xlLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEVjYWJzQnV0dG9uVG9nZ2xlQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEVjYWJzQnV0dG9uVG9nZ2xlQ29tcG9uZW50PFxuICBUID0gdW5rbm93bixcbj4gaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIEBJbnB1dCgpIG9wdGlvbnM6IFNlbGVjdE9wdGlvbjxUPltdID0gW107XG4gIEBJbnB1dCgpIG11bHRpcGxlID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNpemU6IEJ1dHRvblRvZ2dsZVNpemUgPSAnc21hbGwnO1xuXG4gIEBJbnB1dCgpIHZhbHVlOiBUIHwgVFtdID0gbnVsbDtcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUIHwgVFtdPigpO1xuXG4gIGlzRGlzYWJsZWQgPSBmYWxzZTtcblxuICBwcml2YXRlIG9uQ2hhbmdlOiAodmFsdWU6IFQgfCBUW10pID0+IHZvaWQgPSAoKSA9PiB7fTtcbiAgcHJpdmF0ZSBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgb25Hcm91cENoYW5nZShldmVudDogTWF0QnV0dG9uVG9nZ2xlQ2hhbmdlKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IGV2ZW50LnZhbHVlO1xuXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgfVxuXG4gIHRyYWNrQnlPcHRpb25WYWx1ZShpbmRleDogbnVtYmVyLCBvcHRpb246IFNlbGVjdE9wdGlvbjxUPik6IFQgfCBudW1iZXIge1xuICAgIHJldHVybiBvcHRpb24udmFsdWUgPz8gaW5kZXg7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBUIHwgVFtdKTogdm9pZCB7XG4gICAgLy8gT25QdXNoICsgQ29udHJvbFZhbHVlQWNjZXNzb3I6IHdyaXRlVmFsdWUgaXMgaW52b2tlZCBieSBBbmd1bGFyIG91dHNpZGVcbiAgICAvLyB0aGUgY29tcG9uZW50J3MgaW5wdXQvZXZlbnQgcGF0aHMsIHNvIG1hcmsgZm9yIGNoZWNrIHRvIHRyaWdnZXIgcmUtcmVuZGVyLlxuICAgIC8vIFRoaXMgY2FuIHBvdGVudGlhbGx5IGJlIHJlcGxhY2VkIHdpdGggYSBzaWduYWwtYmFja2VkIHZhbHVlIGluIHRoZSB2MTkrIHJlZmFjdG9yLlxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogVCB8IFRbXSkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuaXNEaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cbn1cbiIsIjxtYXQtYnV0dG9uLXRvZ2dsZS1ncm91cFxuICBjbGFzcz1cImVjYWJzLWJ1dHRvbi10b2dnbGVcIlxuICBbbmdDbGFzc109XCInZWNhYnMtYnV0dG9uLXRvZ2dsZS0tJyArIHNpemVcIlxuICBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIlxuICBbdmFsdWVdPVwidmFsdWVcIiBcbiAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIlxuICAoY2hhbmdlKT1cIm9uR3JvdXBDaGFuZ2UoJGV2ZW50KVwiXG4+ICBcbiAgPG1hdC1idXR0b24tdG9nZ2xlXG4gICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zOyB0cmFja0J5OiB0cmFja0J5T3B0aW9uVmFsdWVcIlxuICAgIFt2YWx1ZV09XCJvcHRpb24udmFsdWVcIlxuICAgIFtkaXNhYmxlZF09XCJvcHRpb24uZGlzYWJsZWRcIj5cbiAgICB7eyBvcHRpb24ubGFiZWwgfX1cbiAgPC9tYXQtYnV0dG9uLXRvZ2dsZT5cbjwvbWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXA+Il19
@@ -11,6 +11,8 @@ export class EcabsChipGroupComponent {
11
11
  multiple = true;
12
12
  disableRipple = true;
13
13
  truncateAt = 18;
14
+ compareFn = Object.is;
15
+ trackByFn = (_, option) => option;
14
16
  selectedChange = new EventEmitter();
15
17
  _value = signal(null);
16
18
  isDisabled = signal(false);
@@ -35,13 +37,13 @@ export class EcabsChipGroupComponent {
35
37
  onChange = () => { };
36
38
  onTouched = () => { };
37
39
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsChipGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
38
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsChipGroupComponent, selector: "ecabs-chip-group", inputs: { options: "options", multiple: "multiple", disableRipple: "disableRipple", truncateAt: "truncateAt" }, outputs: { selectedChange: "selectedChange" }, providers: [
40
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsChipGroupComponent, selector: "ecabs-chip-group", inputs: { options: "options", multiple: "multiple", disableRipple: "disableRipple", truncateAt: "truncateAt", compareFn: "compareFn", trackByFn: "trackByFn" }, outputs: { selectedChange: "selectedChange" }, providers: [
39
41
  {
40
42
  provide: NG_VALUE_ACCESSOR,
41
43
  useExisting: forwardRef(() => EcabsChipGroupComponent),
42
44
  multi: true,
43
45
  },
44
- ], ngImport: i0, template: "<mat-chip-listbox [multiple]=\"multiple\"\n [disabled]=\"isDisabled()\"\n [ngModel]=\"_value()\"\n (ngModelChange)=\"chipValueChange($event)\">\n <mat-chip-option *ngFor=\"let option of options\"\n [value]=\"option.value\"\n [disabled]=\"option.disabled\"\n [disableRipple]=\"disableRipple\">\n <ng-container *ngIf=\"option?.label as label\">\n <span [matTooltip]=\"label\"\n [matTooltipDisabled]=\"label.length <= truncateAt\">\n {{ label | truncate: truncateAt }}\n </span>\n </ng-container>\n </mat-chip-option>\n</mat-chip-listbox>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatChipListbox, selector: "mat-chip-listbox", inputs: ["tabIndex", "multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "component", type: i2.MatChipOption, selector: "mat-basic-chip-option, [mat-basic-chip-option], mat-chip-option, [mat-chip-option]", inputs: ["color", "disabled", "disableRipple", "tabIndex", "selectable", "selected"], outputs: ["selectionChange"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "pipe", type: i5.EcabsTruncatePipe, name: "truncate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
46
+ ], ngImport: i0, template: "<mat-chip-listbox [multiple]=\"multiple\"\n [compareWith]=\"compareFn\"\n [disabled]=\"isDisabled()\"\n [ngModel]=\"_value()\"\n (ngModelChange)=\"chipValueChange($event)\">\n <mat-chip-option *ngFor=\"let option of options; trackBy: trackByFn\"\n [value]=\"option.value\"\n [disabled]=\"option.disabled\"\n [disableRipple]=\"disableRipple\">\n <ng-container *ngIf=\"option?.label as label\">\n <span [matTooltip]=\"label\"\n [matTooltipDisabled]=\"label.length <= truncateAt\">\n {{ label | truncate: truncateAt }}\n </span>\n </ng-container>\n </mat-chip-option>\n</mat-chip-listbox>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatChipListbox, selector: "mat-chip-listbox", inputs: ["tabIndex", "multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "component", type: i2.MatChipOption, selector: "mat-basic-chip-option, [mat-basic-chip-option], mat-chip-option, [mat-chip-option]", inputs: ["color", "disabled", "disableRipple", "tabIndex", "selectable", "selected"], outputs: ["selectionChange"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "pipe", type: i5.EcabsTruncatePipe, name: "truncate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
45
47
  }
46
48
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsChipGroupComponent, decorators: [{
47
49
  type: Component,
@@ -51,7 +53,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
51
53
  useExisting: forwardRef(() => EcabsChipGroupComponent),
52
54
  multi: true,
53
55
  },
54
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-chip-listbox [multiple]=\"multiple\"\n [disabled]=\"isDisabled()\"\n [ngModel]=\"_value()\"\n (ngModelChange)=\"chipValueChange($event)\">\n <mat-chip-option *ngFor=\"let option of options\"\n [value]=\"option.value\"\n [disabled]=\"option.disabled\"\n [disableRipple]=\"disableRipple\">\n <ng-container *ngIf=\"option?.label as label\">\n <span [matTooltip]=\"label\"\n [matTooltipDisabled]=\"label.length <= truncateAt\">\n {{ label | truncate: truncateAt }}\n </span>\n </ng-container>\n </mat-chip-option>\n</mat-chip-listbox>\n" }]
56
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-chip-listbox [multiple]=\"multiple\"\n [compareWith]=\"compareFn\"\n [disabled]=\"isDisabled()\"\n [ngModel]=\"_value()\"\n (ngModelChange)=\"chipValueChange($event)\">\n <mat-chip-option *ngFor=\"let option of options; trackBy: trackByFn\"\n [value]=\"option.value\"\n [disabled]=\"option.disabled\"\n [disableRipple]=\"disableRipple\">\n <ng-container *ngIf=\"option?.label as label\">\n <span [matTooltip]=\"label\"\n [matTooltipDisabled]=\"label.length <= truncateAt\">\n {{ label | truncate: truncateAt }}\n </span>\n </ng-container>\n </mat-chip-option>\n</mat-chip-listbox>\n" }]
55
57
  }], propDecorators: { options: [{
56
58
  type: Input
57
59
  }], multiple: [{
@@ -60,7 +62,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
60
62
  type: Input
61
63
  }], truncateAt: [{
62
64
  type: Input
65
+ }], compareFn: [{
66
+ type: Input
67
+ }], trackByFn: [{
68
+ type: Input
63
69
  }], selectedChange: [{
64
70
  type: Output
65
71
  }] } });
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtY2hpcC1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lY2Ficy1jb21wb25lbnRzL3NyYy9saWIvZWNhYnMtY2hpcC1ncm91cC9lY2Ficy1jaGlwLWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1jaGlwLWdyb3VwL2VjYWJzLWNoaXAtZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7QUFnQnpFLE1BQU0sT0FBTyx1QkFBdUI7SUFJbEMsT0FBTyxHQUFzQixFQUFFLENBQUM7SUFHaEMsUUFBUSxHQUFHLElBQUksQ0FBQztJQUdoQixhQUFhLEdBQUcsSUFBSSxDQUFDO0lBR3JCLFVBQVUsR0FBRyxFQUFFLENBQUM7SUFHaEIsY0FBYyxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7SUFFMUIsTUFBTSxHQUFHLE1BQU0sQ0FBaUIsSUFBSSxDQUFDLENBQUM7SUFDdEMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUU5QyxlQUFlLENBQUMsS0FBYztRQUM1QixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQXFCO1FBQzlCLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUF3QjtRQUN2QyxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBYztRQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsVUFBbUI7UUFDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVPLFFBQVEsR0FBNkIsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBRTlDLFNBQVMsR0FBZSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7d0dBOUM5Qix1QkFBdUI7NEZBQXZCLHVCQUF1QiwwTUFUdkI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHVCQUF1QixDQUFDO2dCQUN0RCxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsMEJDdEJILHdxQkFnQkE7OzRGRFNhLHVCQUF1QjtrQkFibkMsU0FBUzsrQkFDRSxrQkFBa0IsYUFHakI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsd0JBQXdCLENBQUM7NEJBQ3RELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNOzhCQU0vQyxPQUFPO3NCQUROLEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxLQUFLO2dCQUlOLGFBQWE7c0JBRFosS0FBSztnQkFJTixVQUFVO3NCQURULEtBQUs7Z0JBSU4sY0FBYztzQkFEYixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2VsZWN0T3B0aW9uIH0gZnJvbSAnLi4vYmFzZS9tb2RlbHMvc2VsZWN0Lm1vZGVscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VjYWJzLWNoaXAtZ3JvdXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vZWNhYnMtY2hpcC1ncm91cC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VjYWJzLWNoaXAtZ3JvdXAuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBFY2Fic0NoaXBHcm91cENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRWNhYnNDaGlwR3JvdXBDb21wb25lbnQ8XG4gIFQgPSB1bmtub3duLFxuPiBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgQElucHV0KClcbiAgb3B0aW9uczogU2VsZWN0T3B0aW9uPFQ+W10gPSBbXTtcblxuICBASW5wdXQoKVxuICBtdWx0aXBsZSA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgZGlzYWJsZVJpcHBsZSA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgdHJ1bmNhdGVBdCA9IDE4O1xuXG4gIEBPdXRwdXQoKVxuICBzZWxlY3RlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VCB8IFRbXT4oKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX3ZhbHVlID0gc2lnbmFsPFQgfCBUW10gfCBudWxsPihudWxsKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzRGlzYWJsZWQgPSBzaWduYWwoZmFsc2UpO1xuXG4gIGNoaXBWYWx1ZUNoYW5nZSh2YWx1ZTogVCB8IFRbXSk6IHZvaWQge1xuICAgIHRoaXMuX3ZhbHVlLnNldCh2YWx1ZSk7XG4gICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICB0aGlzLnNlbGVjdGVkQ2hhbmdlLmVtaXQodmFsdWUpO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogVCB8IFRbXSB8IG51bGwpOiB2b2lkIHtcbiAgICB0aGlzLl92YWx1ZS5zZXQodmFsdWUpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogdHlwZW9mIHRoaXMub25DaGFuZ2UpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmlzRGlzYWJsZWQuc2V0KGlzRGlzYWJsZWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBvbkNoYW5nZTogKHZhbHVlOiBUIHwgVFtdKSA9PiB2b2lkID0gKCkgPT4ge307XG5cbiAgcHJpdmF0ZSBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB7fTtcbn1cbiIsIjxtYXQtY2hpcC1saXN0Ym94IFttdWx0aXBsZV09XCJtdWx0aXBsZVwiXG4gICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZCgpXCJcbiAgICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cIl92YWx1ZSgpXCJcbiAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImNoaXBWYWx1ZUNoYW5nZSgkZXZlbnQpXCI+XG4gIDxtYXQtY2hpcC1vcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zXCJcbiAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwib3B0aW9uLnZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwib3B0aW9uLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICBbZGlzYWJsZVJpcHBsZV09XCJkaXNhYmxlUmlwcGxlXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm9wdGlvbj8ubGFiZWwgYXMgbGFiZWxcIj5cbiAgICAgIDxzcGFuIFttYXRUb29sdGlwXT1cImxhYmVsXCJcbiAgICAgICAgICAgIFttYXRUb29sdGlwRGlzYWJsZWRdPVwibGFiZWwubGVuZ3RoIDw9IHRydW5jYXRlQXRcIj5cbiAgICAgICAge3sgbGFiZWwgfCB0cnVuY2F0ZTogdHJ1bmNhdGVBdCB9fVxuICAgICAgPC9zcGFuPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L21hdC1jaGlwLW9wdGlvbj5cbjwvbWF0LWNoaXAtbGlzdGJveD5cbiJdfQ==
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtY2hpcC1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lY2Ficy1jb21wb25lbnRzL3NyYy9saWIvZWNhYnMtY2hpcC1ncm91cC9lY2Ficy1jaGlwLWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1jaGlwLWdyb3VwL2VjYWJzLWNoaXAtZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7QUFnQnpFLE1BQU0sT0FBTyx1QkFBdUI7SUFJbEMsT0FBTyxHQUFzQixFQUFFLENBQUM7SUFHaEMsUUFBUSxHQUFHLElBQUksQ0FBQztJQUdoQixhQUFhLEdBQUcsSUFBSSxDQUFDO0lBR3JCLFVBQVUsR0FBRyxFQUFFLENBQUM7SUFHaEIsU0FBUyxHQUE0QixNQUFNLENBQUMsRUFBRSxDQUFDO0lBRy9DLFNBQVMsR0FBd0QsQ0FDL0QsQ0FBQyxFQUNELE1BQU0sRUFDTixFQUFFLENBQUMsTUFBTSxDQUFDO0lBR1osY0FBYyxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7SUFFMUIsTUFBTSxHQUFHLE1BQU0sQ0FBaUIsSUFBSSxDQUFDLENBQUM7SUFDdEMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUU5QyxlQUFlLENBQUMsS0FBYztRQUM1QixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQXFCO1FBQzlCLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUF3QjtRQUN2QyxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBYztRQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsVUFBbUI7UUFDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVPLFFBQVEsR0FBNkIsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBRTlDLFNBQVMsR0FBZSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7d0dBdkQ5Qix1QkFBdUI7NEZBQXZCLHVCQUF1QiwwUEFUdkI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHVCQUF1QixDQUFDO2dCQUN0RCxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsMEJDdEJILDJ1QkFpQkE7OzRGRFFhLHVCQUF1QjtrQkFibkMsU0FBUzsrQkFDRSxrQkFBa0IsYUFHakI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsd0JBQXdCLENBQUM7NEJBQ3RELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNOzhCQU0vQyxPQUFPO3NCQUROLEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxLQUFLO2dCQUlOLGFBQWE7c0JBRFosS0FBSztnQkFJTixVQUFVO3NCQURULEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQUlOLFNBQVM7c0JBRFIsS0FBSztnQkFPTixjQUFjO3NCQURiLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTZWxlY3RPcHRpb24gfSBmcm9tICcuLi9iYXNlL21vZGVscy9zZWxlY3QubW9kZWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZWNhYnMtY2hpcC1ncm91cCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9lY2Ficy1jaGlwLWdyb3VwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZWNhYnMtY2hpcC1ncm91cC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEVjYWJzQ2hpcEdyb3VwQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBFY2Fic0NoaXBHcm91cENvbXBvbmVudDxcbiAgVCA9IHVua25vd24sXG4+IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBASW5wdXQoKVxuICBvcHRpb25zOiBTZWxlY3RPcHRpb248VD5bXSA9IFtdO1xuXG4gIEBJbnB1dCgpXG4gIG11bHRpcGxlID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBkaXNhYmxlUmlwcGxlID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICB0cnVuY2F0ZUF0ID0gMTg7XG5cbiAgQElucHV0KClcbiAgY29tcGFyZUZuOiAoYTogVCwgYjogVCkgPT4gYm9vbGVhbiA9IE9iamVjdC5pcztcblxuICBASW5wdXQoKVxuICB0cmFja0J5Rm46IChpbmRleDogbnVtYmVyLCBvcHRpb246IFNlbGVjdE9wdGlvbjxUPikgPT4gdW5rbm93biA9IChcbiAgICBfLFxuICAgIG9wdGlvbixcbiAgKSA9PiBvcHRpb247XG5cbiAgQE91dHB1dCgpXG4gIHNlbGVjdGVkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUIHwgVFtdPigpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBfdmFsdWUgPSBzaWduYWw8VCB8IFRbXSB8IG51bGw+KG51bGwpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNEaXNhYmxlZCA9IHNpZ25hbChmYWxzZSk7XG5cbiAgY2hpcFZhbHVlQ2hhbmdlKHZhbHVlOiBUIHwgVFtdKTogdm9pZCB7XG4gICAgdGhpcy5fdmFsdWUuc2V0KHZhbHVlKTtcbiAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIHRoaXMuc2VsZWN0ZWRDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBUIHwgVFtdIHwgbnVsbCk6IHZvaWQge1xuICAgIHRoaXMuX3ZhbHVlLnNldCh2YWx1ZSk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiB0eXBlb2YgdGhpcy5vbkNoYW5nZSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuaXNEaXNhYmxlZC5zZXQoaXNEaXNhYmxlZCk7XG4gIH1cblxuICBwcml2YXRlIG9uQ2hhbmdlOiAodmFsdWU6IFQgfCBUW10pID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICBwcml2YXRlIG9uVG91Y2hlZDogKCkgPT4gdm9pZCA9ICgpID0+IHt9O1xufVxuIiwiPG1hdC1jaGlwLWxpc3Rib3ggW211bHRpcGxlXT1cIm11bHRpcGxlXCJcbiAgICAgICAgICAgICAgICAgIFtjb21wYXJlV2l0aF09XCJjb21wYXJlRm5cIlxuICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWQoKVwiXG4gICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJfdmFsdWUoKVwiXG4gICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJjaGlwVmFsdWVDaGFuZ2UoJGV2ZW50KVwiPlxuICA8bWF0LWNoaXAtb3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uczsgdHJhY2tCeTogdHJhY2tCeUZuXCJcbiAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwib3B0aW9uLnZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwib3B0aW9uLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICBbZGlzYWJsZVJpcHBsZV09XCJkaXNhYmxlUmlwcGxlXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm9wdGlvbj8ubGFiZWwgYXMgbGFiZWxcIj5cbiAgICAgIDxzcGFuIFttYXRUb29sdGlwXT1cImxhYmVsXCJcbiAgICAgICAgICAgIFttYXRUb29sdGlwRGlzYWJsZWRdPVwibGFiZWwubGVuZ3RoIDw9IHRydW5jYXRlQXRcIj5cbiAgICAgICAge3sgbGFiZWwgfCB0cnVuY2F0ZTogdHJ1bmNhdGVBdCB9fVxuICAgICAgPC9zcGFuPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L21hdC1jaGlwLW9wdGlvbj5cbjwvbWF0LWNoaXAtbGlzdGJveD5cbiJdfQ==
@@ -231,7 +231,7 @@ export class EcabsDateTimePickerComponent extends EcabsElementBaseComponent {
231
231
  },
232
232
  DecimalPipe,
233
233
  UnsubscribeService,
234
- ], viewQueries: [{ propertyName: "matCustomInput", first: true, predicate: ["matCustomInput"], descendants: true }, { propertyName: "matCustomPicker", first: true, predicate: ["picker"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ecabs-element-wrapper [data]=\"getData()\">\n <div class=\"form-field__input--wrapper w-full\">\n <input\n class=\"fake-input\"\n [id]=\"_date\"\n [(ngModel)]=\"_date\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [matDatepicker]=\"picker\"\n [min]=\"minDate\"\n [max]=\"maxDate\"\n (blur)=\"onTouch()\"\n />\n <mat-datepicker #picker [calendarHeaderComponent]=\"header\" [touchUi]=\"touchUi\" class=\"datepicker-ui\">\n <mat-datepicker-actions>\n <div class=\"actions\">\n <div class=\"time--inputs\">\n <input\n class=\"form-field__input time\"\n ecabsDigitsOnly\n ecabsNumberBorder\n [digitsOnly]=\"true\"\n [id]=\"hours\"\n [value]=\"_hours\"\n [maxValue]=\"maxValueHours\"\n [(ngModel)]=\"hours\"\n />\n <span class=\"font-bold\">:</span>\n <input\n class=\"form-field__input time\"\n [id]=\"minutes\"\n [(ngModel)]=\"minutes\"\n ecabsDigitsOnly\n ecabsNumberBorder\n [digitsOnly]=\"true\"\n [maxValue]=\"maxValueMinutesSeconds\"\n />\n\n <ng-container *ngIf=\"!hideSeconds\">\n <span class=\"font-bold\">:</span>\n <input\n class=\"form-field__input time\"\n [id]=\"seconds\"\n [(ngModel)]=\"seconds\"\n ecabsDigitsOnly\n ecabsNumberBorder\n [digitsOnly]=\"true\"\n [maxValue]=\"maxValueMinutesSeconds\"\n />\n </ng-container>\n </div>\n\n <ecabs-date-picker-actions [applyLabel]=\"applyLabel ?? translationConfig?.applyLabel\"\n [cancelLabel]=\"cancelLabel ?? translationConfig?.cancelLabel\"\n (apply)=\"onApply()\">\n </ecabs-date-picker-actions>\n </div>\n </mat-datepicker-actions>\n </mat-datepicker>\n <input #matCustomInput\n class=\"form-field__input w-full date-input\"\n [id]=\"name\"\n [(ngModel)]=\"pickerValue\"\n placeholder=\"dd/MM/yyyy, HH:mm\"\n [disabled]=\"disabled\"\n ecabsMaskDate\n [isDateTimeMask]=\"true\"\n [considerSeconds]=\"!hideSeconds\"\n (blur)=\"onTouch()\"\n />\n\n <mat-datepicker-toggle matSuffix [for]=\"picker\">\n <mat-icon matDatepickerToggleIcon\n class=\"text-gray-500\">\n calendar_today\n </mat-icon>\n </mat-datepicker-toggle>\n </div>\n</ecabs-element-wrapper>\n", styles: [".time--inputs:before,.time--inputs:after{position:absolute;content:\"\"}.time{width:3.375rem}.fake-input{visibility:hidden;width:0;padding:0;margin:0}.time--inputs{position:relative;display:flex;gap:.5rem;justify-content:center;align-items:center;margin-top:2.4rem;margin-bottom:2.4rem}.time--inputs:before,.time--inputs:after{height:1px;right:0;left:0;background-color:var(--color-gray-300)}.time--inputs:before{top:-1.6rem}.time--inputs:after{bottom:-1.6rem}.font-bold{font-weight:700}.actions{display:flex;flex-direction:column;width:100%!important;row-gap:1rem}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.EcabsElementWrapperComponent, selector: "ecabs-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i6.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i6.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "directive", type: i6.MatDatepickerToggleIcon, selector: "[matDatepickerToggleIcon]" }, { kind: "component", type: i6.MatDatepickerActions, selector: "mat-datepicker-actions, mat-date-range-picker-actions" }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i8.EcabsDigitsOnlyDirective, selector: "[ecabsDigitsOnly]", inputs: ["digitsOnly", "allowHyphen", "decimal", "decimalSeparator", "unit"] }, { kind: "directive", type: i9.EcabsNumberBorderDirective, selector: "[ecabsNumberBorder]", inputs: ["maxValue", "minValue"] }, { kind: "directive", type: i10.EcabsMaskDateDirective, selector: "[ecabsMaskDate]", inputs: ["isDateTimeMask", "considerSeconds"] }, { kind: "component", type: i11.EcabsDatePickerActionsComponent, selector: "ecabs-date-picker-actions", inputs: ["cancelLabel", "applyLabel", "isDateRange", "disabledApplyButton"], outputs: ["apply"] }, { kind: "directive", type: i12.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }] });
234
+ ], viewQueries: [{ propertyName: "matCustomInput", first: true, predicate: ["matCustomInput"], descendants: true }, { propertyName: "matCustomPicker", first: true, predicate: ["picker"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ecabs-element-wrapper [data]=\"getData()\">\n <div class=\"form-field__input--wrapper w-full\">\n <input\n class=\"fake-input\"\n [id]=\"_date\"\n [(ngModel)]=\"_date\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [matDatepicker]=\"picker\"\n [min]=\"minDate\"\n [max]=\"maxDate\"\n (blur)=\"onTouch()\"\n />\n <mat-datepicker #picker [calendarHeaderComponent]=\"header\" [touchUi]=\"touchUi\" class=\"datepicker-ui\">\n <mat-datepicker-actions>\n <div class=\"actions\">\n <div class=\"time--inputs\">\n <input\n class=\"form-field__input time\"\n ecabsDigitsOnly\n ecabsNumberBorder\n [digitsOnly]=\"true\"\n [id]=\"hours\"\n [value]=\"_hours\"\n [maxValue]=\"maxValueHours\"\n [(ngModel)]=\"hours\"\n />\n <span class=\"font-bold\">:</span>\n <input\n class=\"form-field__input time\"\n [id]=\"minutes\"\n [(ngModel)]=\"minutes\"\n ecabsDigitsOnly\n ecabsNumberBorder\n [digitsOnly]=\"true\"\n [maxValue]=\"maxValueMinutesSeconds\"\n />\n\n <ng-container *ngIf=\"!hideSeconds\">\n <span class=\"font-bold\">:</span>\n <input\n class=\"form-field__input time\"\n [id]=\"seconds\"\n [(ngModel)]=\"seconds\"\n ecabsDigitsOnly\n ecabsNumberBorder\n [digitsOnly]=\"true\"\n [maxValue]=\"maxValueMinutesSeconds\"\n />\n </ng-container>\n </div>\n\n <ecabs-date-picker-actions [applyLabel]=\"applyLabel ?? translationConfig?.applyLabel\"\n [cancelLabel]=\"cancelLabel ?? translationConfig?.cancelLabel\"\n (apply)=\"onApply()\">\n </ecabs-date-picker-actions>\n </div>\n </mat-datepicker-actions>\n </mat-datepicker>\n <input #matCustomInput\n class=\"form-field__input w-full date-input\"\n [id]=\"name\"\n [(ngModel)]=\"pickerValue\"\n placeholder=\"dd/MM/yyyy, HH:mm\"\n [disabled]=\"disabled\"\n ecabsMaskDate\n [isDateTimeMask]=\"true\"\n [considerSeconds]=\"!hideSeconds\"\n (blur)=\"onTouch()\"\n />\n\n <mat-datepicker-toggle matSuffix [for]=\"picker\">\n <mat-icon matDatepickerToggleIcon\n class=\"text-gray-500\">\n calendar_today\n </mat-icon>\n </mat-datepicker-toggle>\n </div>\n</ecabs-element-wrapper>\n", styles: [".time--inputs:before,.time--inputs:after{position:absolute;content:\"\"}.time{width:3.375rem}.fake-input{visibility:hidden;width:0;padding:0;margin:0}.time--inputs{position:relative;display:flex;gap:.5rem;justify-content:center;align-items:center;margin-top:2.4rem;margin-bottom:2.4rem}.time--inputs:before,.time--inputs:after{height:1px;right:0;left:0;background-color:var(--color-gray-300)}.time--inputs:before{top:-1.6rem}.time--inputs:after{bottom:-1.6rem}.font-bold{font-weight:700}.actions{display:flex;flex-direction:column;width:100%!important;row-gap:1rem}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.EcabsElementWrapperComponent, selector: "ecabs-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i6.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i6.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "directive", type: i6.MatDatepickerToggleIcon, selector: "[matDatepickerToggleIcon]" }, { kind: "component", type: i6.MatDatepickerActions, selector: "mat-datepicker-actions, mat-date-range-picker-actions" }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i8.EcabsDigitsOnlyDirective, selector: "[ecabsDigitsOnly]", inputs: ["digitsOnly", "allowHyphen", "allowRange", "decimal", "decimalSeparator", "unit"] }, { kind: "directive", type: i9.EcabsNumberBorderDirective, selector: "[ecabsNumberBorder]", inputs: ["maxValue", "minValue"] }, { kind: "directive", type: i10.EcabsMaskDateDirective, selector: "[ecabsMaskDate]", inputs: ["isDateTimeMask", "considerSeconds"] }, { kind: "component", type: i11.EcabsDatePickerActionsComponent, selector: "ecabs-date-picker-actions", inputs: ["cancelLabel", "applyLabel", "isDateRange", "disabledApplyButton"], outputs: ["apply"] }, { kind: "directive", type: i12.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }] });
235
235
  }
236
236
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsDateTimePickerComponent, decorators: [{
237
237
  type: Component,
@@ -219,7 +219,7 @@ export class EcabsDateTimeRangePickerComponent extends EcabsElementBaseComponent
219
219
  },
220
220
  DecimalPipe,
221
221
  UnsubscribeService,
222
- ], usesInheritance: true, ngImport: i0, template: "<ecabs-element-wrapper [data]=\"getData()\">\n <div class=\"form-field__input--wrapper w-full\">\n <input\n class=\"fake-input\"\n [id]=\"_date\"\n [(ngModel)]=\"_date\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled || controlDate?.disabled\"\n [matDatepicker]=\"picker\"\n (blur)=\"onTouch()\"\n />\n <mat-datepicker\n (opened)=\"opened()\"\n #picker\n [calendarHeaderComponent]=\"header\"\n [touchUi]=\"touchUi\"\n >\n <mat-datepicker-actions>\n <div class=\"flex flex-col w-full gap-y-4\">\n <div class=\"flex gap-2 justify-center items-center\">\n <div class=\"flex flex-col justify-center\">\n <div class=\"text-center\">{{ from ?? translationConfig?.from }}</div>\n <div class=\"flex gap-2 justify-center items-center\">\n <input\n class=\"block form-field__input time\"\n ecabsDigitsOnly\n ecabsNumberBorder\n [digitsOnly]=\"true\"\n [id]=\"hoursFrom\"\n [maxValue]=\"maxValueHours\"\n [(ngModel)]=\"hoursFrom\"\n />\n\n <span class=\"font-bold\">:</span>\n <input\n class=\"form-field__input time\"\n [id]=\"minutesFrom\"\n [(ngModel)]=\"minutesFrom\"\n ecabsDigitsOnly\n ecabsNumberBorder\n [digitsOnly]=\"true\"\n [maxValue]=\"maxValueMinutesSeconds\"\n />\n </div>\n </div>\n </div>\n <div class=\"time--inputs\"></div>\n <div class=\"flex gap-2 justify-center items-center mb-5\">\n <div class=\"flex flex-col justify-center\">\n <div class=\"text-center\">{{ to ?? translationConfig?.to }}</div>\n <div class=\"flex gap-2 justify-center items-center\">\n <input\n class=\"form-field__input time\"\n ecabsDigitsOnly\n ecabsNumberBorder\n [digitsOnly]=\"true\"\n [id]=\"hoursTo\"\n [maxValue]=\"maxValueHours\"\n [(ngModel)]=\"hoursTo\"\n />\n <span class=\"font-bold\">:</span>\n <input\n class=\"form-field__input time\"\n [id]=\"minutesTo\"\n [(ngModel)]=\"minutesTo\"\n ecabsDigitsOnly\n ecabsNumberBorder\n [digitsOnly]=\"true\"\n [maxValue]=\"maxValueMinutesSeconds\"\n />\n </div>\n </div>\n </div>\n <ecabs-date-picker-actions [applyLabel]=\"applyLabel ?? translationConfig?.applyLabel\"\n [cancelLabel]=\"cancelLabel ?? translationConfig?.cancelLabel\"\n (apply)=\"onApply()\">\n </ecabs-date-picker-actions>\n </div>\n </mat-datepicker-actions>\n </mat-datepicker>\n <input\n class=\"form-field__input w-full date-input\"\n [id]=\"name\"\n [(ngModel)]=\"pickerValue\"\n placeholder=\"00:00 - 00:00\"\n [disabled]=\"disabled || controlDate?.disabled\"\n ecabsTime\n [all]=\"allLabel\"\n [timeRange]=\"true\"\n (blur)=\"onTouch()\"\n (blur)=\"blurChange($event)\"\n (keyup)=\"blurChange($event)\"\n (keydown)=\"keydownChange($event)\"\n />\n <button type=\"button\" class=\"text-gray-500 -translate-x-9\" (click)=\"picker.open()\">\n <mat-icon>access_time</mat-icon>\n </button>\n </div>\n</ecabs-element-wrapper>\n", styles: [".time--inputs:after{position:absolute;content:\"\"}.time{width:3.375rem}.fake-input{visibility:hidden;width:0;padding:0}.time--inputs{position:relative;margin-bottom:2.4rem}.time--inputs:after{height:1px;right:0;left:0;background-color:var(--color-gray-300);bottom:-1.6rem}:host ::ng-deep .form-field{margin-right:-1.25rem;margin-left:-.125rem}\n"], dependencies: [{ kind: "component", type: i4.EcabsElementWrapperComponent, selector: "ecabs-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i6.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i6.MatDatepickerActions, selector: "mat-datepicker-actions, mat-date-range-picker-actions" }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i8.EcabsDigitsOnlyDirective, selector: "[ecabsDigitsOnly]", inputs: ["digitsOnly", "allowHyphen", "decimal", "decimalSeparator", "unit"] }, { kind: "directive", type: i9.EcabsNumberBorderDirective, selector: "[ecabsNumberBorder]", inputs: ["maxValue", "minValue"] }, { kind: "component", type: i10.EcabsDatePickerActionsComponent, selector: "ecabs-date-picker-actions", inputs: ["cancelLabel", "applyLabel", "isDateRange", "disabledApplyButton"], outputs: ["apply"] }, { kind: "directive", type: i11.EcabsMaskTimeDirective, selector: "[ecabsTime]", inputs: ["timeRange", "all"] }] });
222
+ ], usesInheritance: true, ngImport: i0, template: "<ecabs-element-wrapper [data]=\"getData()\">\n <div class=\"form-field__input--wrapper w-full\">\n <input\n class=\"fake-input\"\n [id]=\"_date\"\n [(ngModel)]=\"_date\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled || controlDate?.disabled\"\n [matDatepicker]=\"picker\"\n (blur)=\"onTouch()\"\n />\n <mat-datepicker\n (opened)=\"opened()\"\n #picker\n [calendarHeaderComponent]=\"header\"\n [touchUi]=\"touchUi\"\n >\n <mat-datepicker-actions>\n <div class=\"flex flex-col w-full gap-y-4\">\n <div class=\"flex gap-2 justify-center items-center\">\n <div class=\"flex flex-col justify-center\">\n <div class=\"text-center\">{{ from ?? translationConfig?.from }}</div>\n <div class=\"flex gap-2 justify-center items-center\">\n <input\n class=\"block form-field__input time\"\n ecabsDigitsOnly\n ecabsNumberBorder\n [digitsOnly]=\"true\"\n [id]=\"hoursFrom\"\n [maxValue]=\"maxValueHours\"\n [(ngModel)]=\"hoursFrom\"\n />\n\n <span class=\"font-bold\">:</span>\n <input\n class=\"form-field__input time\"\n [id]=\"minutesFrom\"\n [(ngModel)]=\"minutesFrom\"\n ecabsDigitsOnly\n ecabsNumberBorder\n [digitsOnly]=\"true\"\n [maxValue]=\"maxValueMinutesSeconds\"\n />\n </div>\n </div>\n </div>\n <div class=\"time--inputs\"></div>\n <div class=\"flex gap-2 justify-center items-center mb-5\">\n <div class=\"flex flex-col justify-center\">\n <div class=\"text-center\">{{ to ?? translationConfig?.to }}</div>\n <div class=\"flex gap-2 justify-center items-center\">\n <input\n class=\"form-field__input time\"\n ecabsDigitsOnly\n ecabsNumberBorder\n [digitsOnly]=\"true\"\n [id]=\"hoursTo\"\n [maxValue]=\"maxValueHours\"\n [(ngModel)]=\"hoursTo\"\n />\n <span class=\"font-bold\">:</span>\n <input\n class=\"form-field__input time\"\n [id]=\"minutesTo\"\n [(ngModel)]=\"minutesTo\"\n ecabsDigitsOnly\n ecabsNumberBorder\n [digitsOnly]=\"true\"\n [maxValue]=\"maxValueMinutesSeconds\"\n />\n </div>\n </div>\n </div>\n <ecabs-date-picker-actions [applyLabel]=\"applyLabel ?? translationConfig?.applyLabel\"\n [cancelLabel]=\"cancelLabel ?? translationConfig?.cancelLabel\"\n (apply)=\"onApply()\">\n </ecabs-date-picker-actions>\n </div>\n </mat-datepicker-actions>\n </mat-datepicker>\n <input\n class=\"form-field__input w-full date-input\"\n [id]=\"name\"\n [(ngModel)]=\"pickerValue\"\n placeholder=\"00:00 - 00:00\"\n [disabled]=\"disabled || controlDate?.disabled\"\n ecabsTime\n [all]=\"allLabel\"\n [timeRange]=\"true\"\n (blur)=\"onTouch()\"\n (blur)=\"blurChange($event)\"\n (keyup)=\"blurChange($event)\"\n (keydown)=\"keydownChange($event)\"\n />\n <button type=\"button\" class=\"text-gray-500 -translate-x-9\" (click)=\"picker.open()\">\n <mat-icon>access_time</mat-icon>\n </button>\n </div>\n</ecabs-element-wrapper>\n", styles: [".time--inputs:after{position:absolute;content:\"\"}.time{width:3.375rem}.fake-input{visibility:hidden;width:0;padding:0}.time--inputs{position:relative;margin-bottom:2.4rem}.time--inputs:after{height:1px;right:0;left:0;background-color:var(--color-gray-300);bottom:-1.6rem}:host ::ng-deep .form-field{margin-right:-1.25rem;margin-left:-.125rem}\n"], dependencies: [{ kind: "component", type: i4.EcabsElementWrapperComponent, selector: "ecabs-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i6.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i6.MatDatepickerActions, selector: "mat-datepicker-actions, mat-date-range-picker-actions" }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i8.EcabsDigitsOnlyDirective, selector: "[ecabsDigitsOnly]", inputs: ["digitsOnly", "allowHyphen", "allowRange", "decimal", "decimalSeparator", "unit"] }, { kind: "directive", type: i9.EcabsNumberBorderDirective, selector: "[ecabsNumberBorder]", inputs: ["maxValue", "minValue"] }, { kind: "component", type: i10.EcabsDatePickerActionsComponent, selector: "ecabs-date-picker-actions", inputs: ["cancelLabel", "applyLabel", "isDateRange", "disabledApplyButton"], outputs: ["apply"] }, { kind: "directive", type: i11.EcabsMaskTimeDirective, selector: "[ecabsTime]", inputs: ["timeRange", "all"] }] });
223
223
  }
224
224
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsDateTimeRangePickerComponent, decorators: [{
225
225
  type: Component,
@@ -47,7 +47,7 @@ export class EcabsDialogConfirmationDeletionComponent {
47
47
  this.dialogRef.close(false);
48
48
  }
49
49
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsDialogConfirmationDeletionComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i2.UntypedFormBuilder }, { token: i3.EcabsComponentsService }, { token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Component });
50
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsDialogConfirmationDeletionComponent, selector: "ecabs-dialog-confirm-deletion", ngImport: i0, template: "<div class=\"p-6\">\n <h3 class=\"modal-title font-semibold\" [ngClass]=\"(data?.color || color) === 'primary' ? 'primary' : 'warn'\">\n {{ data.actionName }} {{ data.showEntityNameInHeader ? (data.entityName | lowercase) : '' }}\n </h3>\n <div class=\"mt-1\">\n <div class=\"alert-item\" *ngIf=\"data.alertText && data.alertText.length > 0\">\n <span class=\"alert-text\">\n {{ data.alertText }}\n </span>\n </div>\n\n <form [formGroup]=\"form\" class=\"mt-1\">\n <ecabs-input\n [placeholder]=\"data.entityNamePlaceholder\"\n [label]=\"data.entityNameLabel\"\n name=\"name\"\n formControlName=\"name\"\n ></ecabs-input>\n </form>\n </div>\n\n <div class=\"btn__group flex flex-row gap-x-4 justify-end\">\n <ecabs-buttons class=\"grow\" [style]=\"'stroked'\" (click)=\"onCancel()\">\n {{ data?.cancelLabel }}\n </ecabs-buttons>\n\n <ecabs-buttons\n class=\"grow\"\n [color]=\"data?.color || color\"\n (click)=\"onConfirm()\"\n [disabled]=\"form.value.name !== data.comparisonText\"\n >\n {{ data?.confirmLabel }}\n </ecabs-buttons>\n </div>\n</div>\n", styles: [".modal-title{font-size:22px}:host ::ng-deep button{width:100%!important}.primary{color:var(--color-brand-dark)}.warn{color:var(--color-error)}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.ButtonsComponent, selector: "ecabs-buttons", inputs: ["disabled", "loading", "size", "type", "style", "full", "color"] }, { kind: "component", type: i6.EcabsInputComponent, selector: "ecabs-input", inputs: ["digitsOnly", "allowDecimal", "allowHyphen", "max", "mini", "maxi", "step"], outputs: ["onblur"] }, { kind: "pipe", type: i4.LowerCasePipe, name: "lowercase" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
50
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsDialogConfirmationDeletionComponent, selector: "ecabs-dialog-confirm-deletion", ngImport: i0, template: "<div class=\"p-6\">\n <h3 class=\"modal-title font-semibold\" [ngClass]=\"(data?.color || color) === 'primary' ? 'primary' : 'warn'\">\n {{ data.actionName }} {{ data.showEntityNameInHeader ? (data.entityName | lowercase) : '' }}\n </h3>\n <div class=\"mt-1\">\n <div class=\"alert-item\" *ngIf=\"data.alertText && data.alertText.length > 0\">\n <span class=\"alert-text\">\n {{ data.alertText }}\n </span>\n </div>\n\n <form [formGroup]=\"form\" class=\"mt-1\">\n <ecabs-input\n [placeholder]=\"data.entityNamePlaceholder\"\n [label]=\"data.entityNameLabel\"\n name=\"name\"\n formControlName=\"name\"\n ></ecabs-input>\n </form>\n </div>\n\n <div class=\"btn__group flex flex-row gap-x-4 justify-end\">\n <ecabs-buttons class=\"grow\" [style]=\"'stroked'\" (click)=\"onCancel()\">\n {{ data?.cancelLabel }}\n </ecabs-buttons>\n\n <ecabs-buttons\n class=\"grow\"\n [color]=\"data?.color || color\"\n (click)=\"onConfirm()\"\n [disabled]=\"form.value.name !== data.comparisonText\"\n >\n {{ data?.confirmLabel }}\n </ecabs-buttons>\n </div>\n</div>\n", styles: [".modal-title{font-size:22px}:host ::ng-deep button{width:100%!important}.primary{color:var(--color-brand-dark)}.warn{color:var(--color-error)}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.ButtonsComponent, selector: "ecabs-buttons", inputs: ["disabled", "loading", "size", "type", "style", "full", "color"] }, { kind: "component", type: i6.EcabsInputComponent, selector: "ecabs-input", inputs: ["digitsOnly", "allowDecimal", "allowHyphen", "allowRange", "max", "mini", "maxi", "step"], outputs: ["onblur"] }, { kind: "pipe", type: i4.LowerCasePipe, name: "lowercase" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
51
51
  }
52
52
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsDialogConfirmationDeletionComponent, decorators: [{
53
53
  type: Component,