monkey-style-guide 2.0.98 → 2.0.99

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.
@@ -3,22 +3,20 @@
3
3
  * This style guide was developed by Monkey Exchange Team
4
4
  * MIT Licence
5
5
  **************************/
6
- import { CurrencyPipe } from '@angular/common';
7
- import { Component, ViewEncapsulation, Input, forwardRef, HostListener, Output, EventEmitter, Directive, } from '@angular/core';
8
- import { NG_VALUE_ACCESSOR, } from '@angular/forms';
6
+ import { Component, ViewEncapsulation, Input, HostListener, Output, EventEmitter, Directive, Self, Optional, } from '@angular/core';
9
7
  import { MonkeyUtils } from '../../core/utils';
10
8
  import * as i0 from "@angular/core";
11
- import * as i1 from "../icon/icon.component";
12
- import * as i2 from "../select/select.component";
13
- import * as i3 from "../option/option.component";
14
- import * as i4 from "@angular/common";
15
- import * as i5 from "@angular/forms";
9
+ import * as i1 from "@angular/forms";
10
+ import * as i2 from "../icon/icon.component";
11
+ import * as i3 from "../select/select.component";
12
+ import * as i4 from "../option/option.component";
13
+ import * as i5 from "@angular/common";
16
14
  export class PhoneNumberValidDirective {
17
15
  onValidate() {
18
- const { destroyed, phoneNumber, internationalNumber } = this;
19
- if (destroyed || !phoneNumber)
16
+ const { ctrl, destroyed, phoneNumber, internationalNumber } = this;
17
+ if (destroyed || !phoneNumber || !ctrl)
20
18
  return;
21
- let isValid = true;
19
+ let isValid = false;
22
20
  try {
23
21
  isValid = MonkeyUtils.isPhoneNumberValid(phoneNumber, internationalNumber);
24
22
  }
@@ -27,14 +25,16 @@ export class PhoneNumberValidDirective {
27
25
  }
28
26
  if (!isValid) {
29
27
  setTimeout(() => {
30
- this.ctrl.markAsDirty();
31
- this.ctrl.markAsTouched();
32
- this.ctrl.setErrors({ invalidNumber: true });
28
+ ctrl.markAsDirty();
29
+ ctrl.markAsTouched();
30
+ ctrl.setErrors({ phone: true });
33
31
  }, 0);
34
32
  }
35
33
  }
36
- ngOnChanges({ phoneNumber }) {
37
- if (phoneNumber && !phoneNumber.firstChange) {
34
+ ngOnChanges({ ctrl, phoneNumber, internationalNumber }) {
35
+ if ((phoneNumber && !phoneNumber.firstChange) ||
36
+ (internationalNumber && !internationalNumber.firstChange) ||
37
+ (ctrl && !ctrl.firstChange)) {
38
38
  this.onValidate();
39
39
  }
40
40
  }
@@ -58,7 +58,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImpo
58
58
  type: Input
59
59
  }] } });
60
60
  export class MonkeyInputPhoneComponent {
61
- constructor(cdr) {
61
+ constructor(ngControl, cdr) {
62
+ this.ngControl = ngControl;
62
63
  this.cdr = cdr;
63
64
  this.name = `mecx-input-phone-${MonkeyUtils.getRandomString(10)}`;
64
65
  this.helperMessage = '';
@@ -72,6 +73,10 @@ export class MonkeyInputPhoneComponent {
72
73
  this._regionCodes = [];
73
74
  this._countryCodes = [];
74
75
  this._internationalNumber = 55;
76
+ this._formControl = null;
77
+ if (this.ngControl != null) {
78
+ this.ngControl.valueAccessor = this;
79
+ }
75
80
  }
76
81
  handleValue(value) {
77
82
  return MonkeyUtils.handleOnlyNumbers(`${value}`);
@@ -90,12 +95,7 @@ export class MonkeyInputPhoneComponent {
90
95
  this._countryCodes = MonkeyUtils.getPhoneRegions();
91
96
  this.onHandleInternationalNumber();
92
97
  this.onHandleCountryCode(this._internationalNumber);
93
- }
94
- ngOnChanges(sc) {
95
- const { formControl: { firstChange, currentValue: { value }, }, } = sc;
96
- if (sc && firstChange) {
97
- this.onHandleInternationalNumber(value);
98
- }
98
+ this._formControl = this.ngControl && this.ngControl.form;
99
99
  }
100
100
  onHandleInternationalNumber(value) {
101
101
  this._internationalNumber =
@@ -161,15 +161,8 @@ export class MonkeyInputPhoneComponent {
161
161
  }
162
162
  }
163
163
  }
164
- MonkeyInputPhoneComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MonkeyInputPhoneComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
165
- MonkeyInputPhoneComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.14", type: MonkeyInputPhoneComponent, selector: "monkey-input-phone", inputs: { name: "name", label: "label", helperMessage: "helperMessage", placeholder: "placeholder", icon: "icon", infoMessage: "infoMessage", errorMessage: "errorMessage", maxLength: "maxLength", formControl: "formControl", value: "value" }, outputs: { onChange: "onChange" }, host: { listeners: { "click": "onClick()" } }, providers: [
166
- {
167
- provide: NG_VALUE_ACCESSOR,
168
- useExisting: forwardRef(() => MonkeyInputPhoneComponent),
169
- multi: true,
170
- },
171
- CurrencyPipe,
172
- ], usesOnChanges: true, ngImport: i0, template: `
164
+ MonkeyInputPhoneComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MonkeyInputPhoneComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
165
+ MonkeyInputPhoneComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.14", type: MonkeyInputPhoneComponent, selector: "monkey-input-phone", inputs: { name: "name", label: "label", helperMessage: "helperMessage", placeholder: "placeholder", icon: "icon", infoMessage: "infoMessage", errorMessage: "errorMessage", maxLength: "maxLength", value: "value" }, outputs: { onChange: "onChange" }, host: { listeners: { "click": "onClick()" } }, ngImport: i0, template: `
173
166
  <mecx-form-field [ngClass]="{ disabled: _disabled }" [id]="_id">
174
167
  <mecx-form-field-header>
175
168
  <label>
@@ -204,11 +197,15 @@ MonkeyInputPhoneComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
204
197
  [disabled]="_disabled"
205
198
  [maxLength]="maxLength"
206
199
  phoneNumberValidate
207
- [ctrl]="formControl"
200
+ [ctrl]="_formControl"
208
201
  [phoneNumber]="_handledValue"
209
202
  [internationalNumber]="_internationalNumber"
210
203
  #monkeyInput
211
204
  />
205
+ <!--phoneNumberValidate
206
+ [ctrl]="formControl"
207
+ [phoneNumber]="_handledValue"
208
+ [internationalNumber]="_internationalNumber"-->
212
209
  </mecx-form-field-body>
213
210
  <mecx-form-field-footer>
214
211
  <info>
@@ -219,7 +216,7 @@ MonkeyInputPhoneComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
219
216
  </error>
220
217
  </mecx-form-field-footer>
221
218
  </mecx-form-field>
222
- `, isInline: true, components: [{ type: i1.MonkeyIconComponent, selector: "monkey-icon", inputs: ["icon", "color", "contrast", "disabled"] }, { type: i2.MonkeySelectComponent, selector: "monkey-select", inputs: ["label", "helperMessage", "placeholder", "icon", "infoMessage", "errorMessage", "labelSelect", "onHandleOptions", "value"], outputs: ["onChange"] }, { type: i3.MonkeyOptionComponent, selector: "monkey-option", inputs: ["type", "label", "value", "selectAll", "selected", "enableClick"], outputs: ["onSelectOption"] }], directives: [{ type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: PhoneNumberValidDirective, selector: "[phoneNumberValidate]", inputs: ["phoneNumber", "internationalNumber", "ctrl"] }], encapsulation: i0.ViewEncapsulation.None });
219
+ `, isInline: true, components: [{ type: i2.MonkeyIconComponent, selector: "monkey-icon", inputs: ["icon", "color", "contrast", "disabled"] }, { type: i3.MonkeySelectComponent, selector: "monkey-select", inputs: ["label", "helperMessage", "placeholder", "icon", "infoMessage", "errorMessage", "labelSelect", "onHandleOptions", "value"], outputs: ["onChange"] }, { type: i4.MonkeyOptionComponent, selector: "monkey-option", inputs: ["type", "label", "value", "selectAll", "selected", "enableClick"], outputs: ["onSelectOption"] }], directives: [{ type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: PhoneNumberValidDirective, selector: "[phoneNumberValidate]", inputs: ["phoneNumber", "internationalNumber", "ctrl"] }], encapsulation: i0.ViewEncapsulation.None });
223
220
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MonkeyInputPhoneComponent, decorators: [{
224
221
  type: Component,
225
222
  args: [{
@@ -259,11 +256,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImpo
259
256
  [disabled]="_disabled"
260
257
  [maxLength]="maxLength"
261
258
  phoneNumberValidate
262
- [ctrl]="formControl"
259
+ [ctrl]="_formControl"
263
260
  [phoneNumber]="_handledValue"
264
261
  [internationalNumber]="_internationalNumber"
265
262
  #monkeyInput
266
263
  />
264
+ <!--phoneNumberValidate
265
+ [ctrl]="formControl"
266
+ [phoneNumber]="_handledValue"
267
+ [internationalNumber]="_internationalNumber"-->
267
268
  </mecx-form-field-body>
268
269
  <mecx-form-field-footer>
269
270
  <info>
@@ -276,16 +277,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImpo
276
277
  </mecx-form-field>
277
278
  `,
278
279
  encapsulation: ViewEncapsulation.None,
279
- providers: [
280
- {
281
- provide: NG_VALUE_ACCESSOR,
282
- useExisting: forwardRef(() => MonkeyInputPhoneComponent),
283
- multi: true,
284
- },
285
- CurrencyPipe,
286
- ],
287
280
  }]
288
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { name: [{
281
+ }], ctorParameters: function () { return [{ type: i1.NgControl, decorators: [{
282
+ type: Optional
283
+ }, {
284
+ type: Self
285
+ }] }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { name: [{
289
286
  type: Input
290
287
  }], label: [{
291
288
  type: Input
@@ -301,8 +298,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImpo
301
298
  type: Input
302
299
  }], maxLength: [{
303
300
  type: Input
304
- }], formControl: [{
305
- type: Input
306
301
  }], onChange: [{
307
302
  type: Output
308
303
  }], value: [{
@@ -311,4 +306,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImpo
311
306
  type: HostListener,
312
307
  args: ['click']
313
308
  }] } });
314
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtcGhvbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LXN0eWxlLWd1aWRlL3NyYy9saWIvY29tcG9uZW50cy9pbnB1dC1waG9uZS9pbnB1dC1waG9uZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7NEJBSTRCO0FBQzVCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQixLQUFLLEVBQ0wsVUFBVSxFQUNWLFlBQVksRUFFWixNQUFNLEVBQ04sWUFBWSxFQUVaLFNBQVMsR0FJVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBSUwsaUJBQWlCLEdBR2xCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7O0FBSy9DLE1BQU0sT0FBTyx5QkFBeUI7SUFPNUIsVUFBVTtRQUNoQixNQUFNLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxHQUFHLElBQUksQ0FBQztRQUM3RCxJQUFJLFNBQVMsSUFBSSxDQUFDLFdBQVc7WUFBRSxPQUFPO1FBQ3RDLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQztRQUNuQixJQUFJO1lBQ0YsT0FBTyxHQUFHLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztTQUM1RTtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsV0FBVztTQUNaO1FBQ0QsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNaLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDMUIsSUFBSSxD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QkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0ksUUFBUTtzQkFBakIsTUFBTTtnQkFpRkgsS0FBSztzQkFEUixLQUFLO2dCQTJCTixPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gKiBDb3B5cmlnaHQgTW9ua2V5IEV4Y2hhbmdlLiBBbGwgUmlnaHRzIFJlc2VydmVkXHJcbiAqIFRoaXMgc3R5bGUgZ3VpZGUgd2FzIGRldmVsb3BlZCBieSBNb25rZXkgRXhjaGFuZ2UgVGVhbVxyXG4gKiBNSVQgTGljZW5jZVxyXG4gKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbmltcG9ydCB7IEN1cnJlbmN5UGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIElucHV0LFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIERpcmVjdGl2ZSxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXHJcbiAgRm9ybUNvbnRyb2wsXHJcbiAgTkdfVkFMSURBVE9SUyxcclxuICBOR19WQUxVRV9BQ0NFU1NPUixcclxuICBWYWxpZGF0aW9uRXJyb3JzLFxyXG4gIFZhbGlkYXRvcixcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1vbmtleVV0aWxzIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscyc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1twaG9uZU51bWJlclZhbGlkYXRlXScsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQaG9uZU51bWJlclZhbGlkRGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgpIHBob25lTnVtYmVyOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaW50ZXJuYXRpb25hbE51bWJlcjogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIGN0cmw6IEZvcm1Db250cm9sO1xyXG5cclxuICBwcml2YXRlIGRlc3Ryb3llZDogYm9vbGVhbjtcclxuXHJcbiAgcHJpdmF0ZSBvblZhbGlkYXRlKCkge1xyXG4gICAgY29uc3QgeyBkZXN0cm95ZWQsIHBob25lTnVtYmVyLCBpbnRlcm5hdGlvbmFsTnVtYmVyIH0gPSB0aGlzO1xyXG4gICAgaWYgKGRlc3Ryb3llZCB8fCAhcGhvbmVOdW1iZXIpIHJldHVybjtcclxuICAgIGxldCBpc1ZhbGlkID0gdHJ1ZTtcclxuICAgIHRyeSB7XHJcbiAgICAgIGlzVmFsaWQgPSBNb25rZXlVdGlscy5pc1Bob25lTnVtYmVyVmFsaWQocGhvbmVOdW1iZXIsIGludGVybmF0aW9uYWxOdW1iZXIpO1xyXG4gICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAvL25vdCB0byBkb1xyXG4gICAgfVxyXG4gICAgaWYgKCFpc1ZhbGlkKSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuY3RybC5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICAgIHRoaXMuY3RybC5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICAgICAgdGhpcy5jdHJsLnNldEVycm9ycyh7IGludmFsaWROdW1iZXI6IHRydWUgfSk7XHJcbiAgICAgIH0sIDApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoeyBwaG9uZU51bWJlciB9OiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAocGhvbmVOdW1iZXIgJiYgIXBob25lTnVtYmVyLmZpcnN0Q2hhbmdlKSB7XHJcbiAgICAgIHRoaXMub25WYWxpZGF0ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3llZCA9IHRydWU7XHJcbiAgICB0aGlzLm9uVmFsaWRhdGUoKTtcclxuICB9XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbW9ua2V5LWlucHV0LXBob25lJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPG1lY3gtZm9ybS1maWVsZCBbbmdDbGFzc109XCJ7IGRpc2FibGVkOiBfZGlzYWJsZWQgfVwiIFtpZF09XCJfaWRcIj5cclxuICAgICAgPG1lY3gtZm9ybS1maWVsZC1oZWFkZXI+XHJcbiAgICAgICAgPGxhYmVsPlxyXG4gICAgICAgICAge3sgbGFiZWwgfX1cclxuICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgIDxoZWxwZXI+XHJcbiAgICAgICAgICB7eyBoZWxwZXJNZXNzYWdlIH19XHJcbiAgICAgICAgPC9oZWxwZXI+XHJcbiAgICAgIDwvbWVjeC1mb3JtLWZpZWxkLWhlYWRlcj5cclxuICAgICAgPG1lY3gtZm9ybS1maWVsZC1ib2R5IFtjbGFzcy5lcnJvcl09XCJlcnJvck1lc3NhZ2U/LnRyaW0oKVwiPlxyXG4gICAgICAgIDxtb25rZXktaWNvblxyXG4gICAgICAgICAgW2ljb25dPVwiaWNvblwiXHJcbiAgICAgICAgICBbY29sb3JdPVwiZXJyb3JNZXNzYWdlPy50cmltKCkgPyAnI2ZhMzgzOCcgOiAnIzRCNEE1MydcIlxyXG4gICAgICAgICAgKm5nSWY9XCJpY29uXCJcclxuICAgICAgICA+PC9tb25rZXktaWNvbj5cclxuICAgICAgICA8bW9ua2V5LXNlbGVjdFxyXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJfaW50ZXJuYXRpb25hbE51bWJlclwiXHJcbiAgICAgICAgICBbbGFiZWxTZWxlY3RdPVwib25IYW5kbGVJbnRlcm5hdGlvbmFsTnVtYmVyRm9ybWF0ZWQoKVwiXHJcbiAgICAgICAgICAob25DaGFuZ2UpPVwib25IYW5kbGVDb3VudHJ5Q29kZSgkZXZlbnQpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bW9ua2V5LW9wdGlvbiAqbmdGb3I9XCJsZXQgY2Mgb2YgX2NvdW50cnlDb2Rlc1wiIFtsYWJlbF09XCInKycgKyBjY1wiIFt2YWx1ZV09XCJjY1wiPlxyXG4gICAgICAgICAgPC9tb25rZXktb3B0aW9uPlxyXG4gICAgICAgIDwvbW9ua2V5LXNlbGVjdD5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIFtuYW1lXT1cIm5hbWVcIlxyXG4gICAgICAgICAgdHlwZT1cInN0cmluZ1wiXHJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgICAgICAgKGlucHV0KT1cIm9uQ2hhbmdlVmFsdWUoJGV2ZW50KVwiXHJcbiAgICAgICAgICBbaWRdPVwibmFtZVwiXHJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cIl9mb3JtYXRlZFZhbHVlXCJcclxuICAgICAgICAgIChrZXlwcmVzcyk9XCJvbktleVByZXNzKCRldmVudClcIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIl9kaXNhYmxlZFwiXHJcbiAgICAgICAgICBbbWF4TGVuZ3RoXT1cIm1heExlbmd0aFwiXHJcbiAgICAgICAgICBwaG9uZU51bWJlclZhbGlkYXRlXHJcbiAgICAgICAgICBbY3RybF09XCJmb3JtQ29udHJvbFwiXHJcbiAgICAgICAgICBbcGhvbmVOdW1iZXJdPVwiX2hhbmRsZWRWYWx1ZVwiXHJcbiAgICAgICAgICBbaW50ZXJuYXRpb25hbE51bWJlcl09XCJfaW50ZXJuYXRpb25hbE51bWJlclwiXHJcbiAgICAgICAgICAjbW9ua2V5SW5wdXRcclxuICAgICAgICAvPlxyXG4gICAgICA8L21lY3gtZm9ybS1maWVsZC1ib2R5PlxyXG4gICAgICA8bWVjeC1mb3JtLWZpZWxkLWZvb3Rlcj5cclxuICAgICAgICA8aW5mbz5cclxuICAgICAgICAgIHt7IGluZm9NZXNzYWdlIH19XHJcbiAgICAgICAgPC9pbmZvPlxyXG4gICAgICAgIDxlcnJvcj5cclxuICAgICAgICAgIHt7IGVycm9yTWVzc2FnZSB9fVxyXG4gICAgICAgIDwvZXJyb3I+XHJcbiAgICAgIDwvbWVjeC1mb3JtLWZpZWxkLWZvb3Rlcj5cclxuICAgIDwvbWVjeC1mb3JtLWZpZWxkPlxyXG4gIGAsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE1vbmtleUlucHV0UGhvbmVDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICBDdXJyZW5jeVBpcGUsXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE1vbmtleUlucHV0UGhvbmVDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LCBPbkNoYW5nZXMge1xyXG4gIEBJbnB1dCgpIG5hbWU6IHN0cmluZyA9IGBtZWN4LWlucHV0LXBob25lLSR7TW9ua2V5VXRpbHMuZ2V0UmFuZG9tU3RyaW5nKDEwKX1gO1xyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaGVscGVyTWVzc2FnZTogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIGljb246IHN0cmluZztcclxuICBASW5wdXQoKSBpbmZvTWVzc2FnZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGVycm9yTWVzc2FnZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIG1heExlbmd0aDogbnVtYmVyID0gMjU1O1xyXG4gIEBJbnB1dCgpIGZvcm1Db250cm9sOiBGb3JtQ29udHJvbDtcclxuICBAT3V0cHV0KCkgb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgcHJpdmF0ZSBvbk1vZGVsQ2hhbmdlID0gKHZhbHVlOiBhbnkpID0+IHt9O1xyXG4gIHByaXZhdGUgb25Nb2RlbFRvdWNoZWQgPSAodmFsdWU6IGFueSkgPT4ge307XHJcblxyXG4gIHB1YmxpYyBfaGFuZGxlZFZhbHVlOiBhbnk7XHJcbiAgcHVibGljIF9pZDogc3RyaW5nID0gYG1lY3gtaW5wdXQtcGhvbmUtJHtNb25rZXlVdGlscy5nZXRSYW5kb21TdHJpbmcoMTApfWA7XHJcbiAgcHVibGljIF9kaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBfZm9ybWF0ZWRWYWx1ZTogYW55O1xyXG4gIHB1YmxpYyBfcmVnaW9uQ29kZXMgPSBbXTtcclxuICBwdWJsaWMgX2NvdW50cnlDb2RlcyA9IFtdO1xyXG4gIHB1YmxpYyBfaW50ZXJuYXRpb25hbE51bWJlciA9IDU1O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlVmFsdWUodmFsdWU6IGFueSk6IGFueSB7XHJcbiAgICByZXR1cm4gTW9ua2V5VXRpbHMuaGFuZGxlT25seU51bWJlcnMoYCR7dmFsdWV9YCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlcGxhY2VaZXJvKHZhbHVlOiBhbnkpIHtcclxuICAgIHJldHVybiBgJHt2YWx1ZX1gLnJlcGxhY2UobmV3IFJlZ0V4cCgvMC8sICdnJyksICcnKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZm9ybWF0VmFsdWUodmFsdWU6IGFueSk6IGFueSB7XHJcbiAgICByZXR1cm4gTW9ua2V5VXRpbHMuZ2V0UGhvbmVOdW1iZXJGb3JtYXRlZCh2YWx1ZSwgdGhpcy5faW50ZXJuYXRpb25hbE51bWJlcik7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFZhbHVlKCkge1xyXG4gICAgY29uc3QgeyBfaW50ZXJuYXRpb25hbE51bWJlciwgX2hhbmRsZWRWYWx1ZSB9ID0gdGhpcztcclxuICAgIHJldHVybiBgKyR7X2ludGVybmF0aW9uYWxOdW1iZXJ9JHtfaGFuZGxlZFZhbHVlfWA7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuX2NvdW50cnlDb2RlcyA9IE1vbmtleVV0aWxzLmdldFBob25lUmVnaW9ucygpO1xyXG4gICAgdGhpcy5vbkhhbmRsZUludGVybmF0aW9uYWxOdW1iZXIoKTtcclxuICAgIHRoaXMub25IYW5kbGVDb3VudHJ5Q29kZSh0aGlzLl9pbnRlcm5hdGlvbmFsTnVtYmVyKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKHNjOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIGZvcm1Db250cm9sOiB7XHJcbiAgICAgICAgZmlyc3RDaGFuZ2UsXHJcbiAgICAgICAgY3VycmVudFZhbHVlOiB7IHZhbHVlIH0sXHJcbiAgICAgIH0sXHJcbiAgICB9ID0gc2M7XHJcbiAgICBpZiAoc2MgJiYgZmlyc3RDaGFuZ2UpIHtcclxuICAgICAgdGhpcy5vbkhhbmRsZUludGVybmF0aW9uYWxOdW1iZXIodmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25IYW5kbGVJbnRlcm5hdGlvbmFsTnVtYmVyKHZhbHVlPzogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9pbnRlcm5hdGlvbmFsTnVtYmVyID1cclxuICAgICAgTW9ua2V5VXRpbHMuZ2V0UGhvbmVDb3VudHJ5Q29kZSh2YWx1ZSB8fCB0aGlzLl9oYW5kbGVkVmFsdWUpIHx8IHRoaXMuX2ludGVybmF0aW9uYWxOdW1iZXI7XHJcbiAgfVxyXG5cclxuICBvbkhhbmRsZUludGVybmF0aW9uYWxOdW1iZXJGb3JtYXRlZCgpIHtcclxuICAgIGNvbnN0IHsgX2ludGVybmF0aW9uYWxOdW1iZXIgfSA9IHRoaXM7XHJcbiAgICByZXR1cm4gYCske19pbnRlcm5hdGlvbmFsTnVtYmVyfWA7XHJcbiAgfVxyXG5cclxuICBvbkhhbmRsZUNvdW50cnlDb2RlKGV2ZW50OiBudW1iZXIpIHtcclxuICAgIGNvbnN0IHsgbWF4TGVuZ3RoIH0gPSBNb25rZXlVdGlscy5nZXRQaG9uZUhhbmRsZShldmVudCk7XHJcbiAgICBpZiAobWF4TGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMubWF4TGVuZ3RoID0gbWF4TGVuZ3RoO1xyXG4gICAgICB0aGlzLm9uQ2hhbmdlVmFsdWUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vbk1vZGVsQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uTW9kZWxUb3VjaGVkID0gZm47XHJcbiAgfVxyXG5cclxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCB2YWx1ZSh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLl9oYW5kbGVkVmFsdWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuX2Zvcm1hdGVkVmFsdWUgPSB0aGlzLmZvcm1hdFZhbHVlKHZhbHVlKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIHRoaXMub25Nb2RlbENoYW5nZSh0aGlzLmdldFZhbHVlKCkpO1xyXG4gICAgdGhpcy5vbk1vZGVsVG91Y2hlZCh0aGlzLmdldFZhbHVlKCkpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHZhbHVlKCk6IGFueSB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZVZhbHVlKGV2ZW50PzogYW55KSB7XHJcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuX2Zvcm1hdGVkVmFsdWU7XHJcbiAgICBldmVudD8ucHJldmVudERlZmF1bHQoKTtcclxuICAgIGV2ZW50Py5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGNvbnN0IGhhbmRsZWQgPSB0aGlzLmhhbmRsZVZhbHVlKHZhbHVlKTtcclxuICAgIHRoaXMud3JpdGVWYWx1ZShoYW5kbGVkKTtcclxuICAgIHRoaXMub25DaGFuZ2UubmV4dChoYW5kbGVkKTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcclxuICBvbkNsaWNrKCkge1xyXG4gICAgZG9jdW1lbnQ/LmdldEVsZW1lbnRCeUlkKHRoaXMuX2lkKT8uZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2lucHV0Jyk/LlswXT8uZm9jdXMoKTtcclxuICB9XHJcblxyXG4gIG9uS2V5UHJlc3MoZXZlbnQ6IGFueSkge1xyXG4gICAgbGV0IHBhdHRlcm4gPSBudWxsO1xyXG4gICAgY29uc3QgY21wID0gZXZlbnQ/LnRhcmdldD8udmFsdWU7XHJcbiAgICBjb25zdCBpbnB1dENoYXIgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGV2ZW50LmNoYXJDb2RlKTtcclxuXHJcbiAgICBwYXR0ZXJuID0gL1swLTldLztcclxuICAgIGlmIChpbnB1dENoYXIgPT09ICcwJyAmJiAhdGhpcy5yZXBsYWNlWmVybyhjbXApKSB7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAocGF0dGVybiAmJiAhcGF0dGVybi50ZXN0KGlucHV0Q2hhcikpIHtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
309
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtcGhvbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LXN0eWxlLWd1aWRlL3NyYy9saWIvY29tcG9uZW50cy9pbnB1dC1waG9uZS9pbnB1dC1waG9uZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7NEJBSTRCO0FBQzVCLE9BQU8sRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLEtBQUssRUFDTCxZQUFZLEVBRVosTUFBTSxFQUNOLFlBQVksRUFFWixTQUFTLEVBSVQsSUFBSSxFQUNKLFFBQVEsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7Ozs7QUFLL0MsTUFBTSxPQUFPLHlCQUF5QjtJQU81QixVQUFVO1FBQ2hCLE1BQU0sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxHQUFHLElBQUksQ0FBQztRQUNuRSxJQUFJLFNBQVMsSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPO1FBQy9DLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJO1lBQ0YsT0FBTyxHQUFHLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztTQUM1RTtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsV0FBVztTQUNaO1FBQ0QsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNaLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNuQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUNsQyxDQUFDLEVBQUUsQ0FBQyxDQUFD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b3B5cmlnaHQgTW9ua2V5IEV4Y2hhbmdlLiBBbGwgUmlnaHRzIFJlc2VydmVkXHJcbiAqIFRoaXMgc3R5bGUgZ3VpZGUgd2FzIGRldmVsb3BlZCBieSBNb25rZXkgRXhjaGFuZ2UgVGVhbVxyXG4gKiBNSVQgTGljZW5jZVxyXG4gKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIElucHV0LFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBEaXJlY3RpdmUsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9uRGVzdHJveSxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFNlbGYsXHJcbiAgT3B0aW9uYWwsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQ29udHJvbCwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNb25rZXlVdGlscyB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbcGhvbmVOdW1iZXJWYWxpZGF0ZV0nLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGhvbmVOdW1iZXJWYWxpZERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcclxuICBASW5wdXQoKSBwaG9uZU51bWJlcjogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGludGVybmF0aW9uYWxOdW1iZXI6IG51bWJlcjtcclxuICBASW5wdXQoKSBjdHJsOiBGb3JtQ29udHJvbDtcclxuXHJcbiAgcHJpdmF0ZSBkZXN0cm95ZWQ6IGJvb2xlYW47XHJcblxyXG4gIHByaXZhdGUgb25WYWxpZGF0ZSgpIHtcclxuICAgIGNvbnN0IHsgY3RybCwgZGVzdHJveWVkLCBwaG9uZU51bWJlciwgaW50ZXJuYXRpb25hbE51bWJlciB9ID0gdGhpcztcclxuICAgIGlmIChkZXN0cm95ZWQgfHwgIXBob25lTnVtYmVyIHx8ICFjdHJsKSByZXR1cm47XHJcbiAgICBsZXQgaXNWYWxpZCA9IGZhbHNlO1xyXG4gICAgdHJ5IHtcclxuICAgICAgaXNWYWxpZCA9IE1vbmtleVV0aWxzLmlzUGhvbmVOdW1iZXJWYWxpZChwaG9uZU51bWJlciwgaW50ZXJuYXRpb25hbE51bWJlcik7XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIC8vbm90IHRvIGRvXHJcbiAgICB9XHJcbiAgICBpZiAoIWlzVmFsaWQpIHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgY3RybC5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICAgIGN0cmwubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgICAgIGN0cmwuc2V0RXJyb3JzKHsgcGhvbmU6IHRydWUgfSk7XHJcbiAgICAgIH0sIDApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoeyBjdHJsLCBwaG9uZU51bWJlciwgaW50ZXJuYXRpb25hbE51bWJlciB9OiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoXHJcbiAgICAgIChwaG9uZU51bWJlciAmJiAhcGhvbmVOdW1iZXIuZmlyc3RDaGFuZ2UpIHx8XHJcbiAgICAgIChpbnRlcm5hdGlvbmFsTnVtYmVyICYmICFpbnRlcm5hdGlvbmFsTnVtYmVyLmZpcnN0Q2hhbmdlKSB8fFxyXG4gICAgICAoY3RybCAmJiAhY3RybC5maXJzdENoYW5nZSlcclxuICAgICkge1xyXG4gICAgICB0aGlzLm9uVmFsaWRhdGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95ZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5vblZhbGlkYXRlKCk7XHJcbiAgfVxyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ21vbmtleS1pbnB1dC1waG9uZScsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxtZWN4LWZvcm0tZmllbGQgW25nQ2xhc3NdPVwieyBkaXNhYmxlZDogX2Rpc2FibGVkIH1cIiBbaWRdPVwiX2lkXCI+XHJcbiAgICAgIDxtZWN4LWZvcm0tZmllbGQtaGVhZGVyPlxyXG4gICAgICAgIDxsYWJlbD5cclxuICAgICAgICAgIHt7IGxhYmVsIH19XHJcbiAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICA8aGVscGVyPlxyXG4gICAgICAgICAge3sgaGVscGVyTWVzc2FnZSB9fVxyXG4gICAgICAgIDwvaGVscGVyPlxyXG4gICAgICA8L21lY3gtZm9ybS1maWVsZC1oZWFkZXI+XHJcbiAgICAgIDxtZWN4LWZvcm0tZmllbGQtYm9keSBbY2xhc3MuZXJyb3JdPVwiZXJyb3JNZXNzYWdlPy50cmltKClcIj5cclxuICAgICAgICA8bW9ua2V5LWljb25cclxuICAgICAgICAgIFtpY29uXT1cImljb25cIlxyXG4gICAgICAgICAgW2NvbG9yXT1cImVycm9yTWVzc2FnZT8udHJpbSgpID8gJyNmYTM4MzgnIDogJyM0QjRBNTMnXCJcclxuICAgICAgICAgICpuZ0lmPVwiaWNvblwiXHJcbiAgICAgICAgPjwvbW9ua2V5LWljb24+XHJcbiAgICAgICAgPG1vbmtleS1zZWxlY3RcclxuICAgICAgICAgIFsobmdNb2RlbCldPVwiX2ludGVybmF0aW9uYWxOdW1iZXJcIlxyXG4gICAgICAgICAgW2xhYmVsU2VsZWN0XT1cIm9uSGFuZGxlSW50ZXJuYXRpb25hbE51bWJlckZvcm1hdGVkKClcIlxyXG4gICAgICAgICAgKG9uQ2hhbmdlKT1cIm9uSGFuZGxlQ291bnRyeUNvZGUoJGV2ZW50KVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG1vbmtleS1vcHRpb24gKm5nRm9yPVwibGV0IGNjIG9mIF9jb3VudHJ5Q29kZXNcIiBbbGFiZWxdPVwiJysnICsgY2NcIiBbdmFsdWVdPVwiY2NcIj5cclxuICAgICAgICAgIDwvbW9ua2V5LW9wdGlvbj5cclxuICAgICAgICA8L21vbmtleS1zZWxlY3Q+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICBbbmFtZV09XCJuYW1lXCJcclxuICAgICAgICAgIHR5cGU9XCJzdHJpbmdcIlxyXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgIChpbnB1dCk9XCJvbkNoYW5nZVZhbHVlKCRldmVudClcIlxyXG4gICAgICAgICAgW2lkXT1cIm5hbWVcIlxyXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJfZm9ybWF0ZWRWYWx1ZVwiXHJcbiAgICAgICAgICAoa2V5cHJlc3MpPVwib25LZXlQcmVzcygkZXZlbnQpXCJcclxuICAgICAgICAgIFtkaXNhYmxlZF09XCJfZGlzYWJsZWRcIlxyXG4gICAgICAgICAgW21heExlbmd0aF09XCJtYXhMZW5ndGhcIlxyXG4gICAgICAgICAgcGhvbmVOdW1iZXJWYWxpZGF0ZVxyXG4gICAgICAgICAgW2N0cmxdPVwiX2Zvcm1Db250cm9sXCJcclxuICAgICAgICAgIFtwaG9uZU51bWJlcl09XCJfaGFuZGxlZFZhbHVlXCJcclxuICAgICAgICAgIFtpbnRlcm5hdGlvbmFsTnVtYmVyXT1cIl9pbnRlcm5hdGlvbmFsTnVtYmVyXCJcclxuICAgICAgICAgICNtb25rZXlJbnB1dFxyXG4gICAgICAgIC8+XHJcbiAgICAgICAgPCEtLXBob25lTnVtYmVyVmFsaWRhdGVcclxuICAgICAgICAgIFtjdHJsXT1cImZvcm1Db250cm9sXCJcclxuICAgICAgICAgIFtwaG9uZU51bWJlcl09XCJfaGFuZGxlZFZhbHVlXCJcclxuICAgICAgICAgIFtpbnRlcm5hdGlvbmFsTnVtYmVyXT1cIl9pbnRlcm5hdGlvbmFsTnVtYmVyXCItLT5cclxuICAgICAgPC9tZWN4LWZvcm0tZmllbGQtYm9keT5cclxuICAgICAgPG1lY3gtZm9ybS1maWVsZC1mb290ZXI+XHJcbiAgICAgICAgPGluZm8+XHJcbiAgICAgICAgICB7eyBpbmZvTWVzc2FnZSB9fVxyXG4gICAgICAgIDwvaW5mbz5cclxuICAgICAgICA8ZXJyb3I+XHJcbiAgICAgICAgICB7eyBlcnJvck1lc3NhZ2UgfX1cclxuICAgICAgICA8L2Vycm9yPlxyXG4gICAgICA8L21lY3gtZm9ybS1maWVsZC1mb290ZXI+XHJcbiAgICA8L21lY3gtZm9ybS1maWVsZD5cclxuICBgLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNb25rZXlJbnB1dFBob25lQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgbmFtZTogc3RyaW5nID0gYG1lY3gtaW5wdXQtcGhvbmUtJHtNb25rZXlVdGlscy5nZXRSYW5kb21TdHJpbmcoMTApfWA7XHJcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcclxuICBASW5wdXQoKSBoZWxwZXJNZXNzYWdlOiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgaWNvbjogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGluZm9NZXNzYWdlOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgbWF4TGVuZ3RoOiBudW1iZXIgPSAyNTU7XHJcbiAgQE91dHB1dCgpIG9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIHByaXZhdGUgb25Nb2RlbENoYW5nZSA9ICh2YWx1ZTogYW55KSA9PiB7fTtcclxuICBwcml2YXRlIG9uTW9kZWxUb3VjaGVkID0gKHZhbHVlOiBhbnkpID0+IHt9O1xyXG5cclxuICBwdWJsaWMgX2hhbmRsZWRWYWx1ZTogYW55O1xyXG4gIHB1YmxpYyBfaWQ6IHN0cmluZyA9IGBtZWN4LWlucHV0LXBob25lLSR7TW9ua2V5VXRpbHMuZ2V0UmFuZG9tU3RyaW5nKDEwKX1gO1xyXG4gIHB1YmxpYyBfZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgX2Zvcm1hdGVkVmFsdWU6IGFueTtcclxuICBwdWJsaWMgX3JlZ2lvbkNvZGVzID0gW107XHJcbiAgcHVibGljIF9jb3VudHJ5Q29kZXMgPSBbXTtcclxuICBwdWJsaWMgX2ludGVybmF0aW9uYWxOdW1iZXIgPSA1NTtcclxuICBwdWJsaWMgX2Zvcm1Db250cm9sID0gbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQFNlbGYoKSBwdWJsaWMgbmdDb250cm9sOiBOZ0NvbnRyb2wsIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gICAgaWYgKHRoaXMubmdDb250cm9sICE9IG51bGwpIHtcclxuICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZVZhbHVlKHZhbHVlOiBhbnkpOiBhbnkge1xyXG4gICAgcmV0dXJuIE1vbmtleVV0aWxzLmhhbmRsZU9ubHlOdW1iZXJzKGAke3ZhbHVlfWApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZXBsYWNlWmVybyh2YWx1ZTogYW55KSB7XHJcbiAgICByZXR1cm4gYCR7dmFsdWV9YC5yZXBsYWNlKG5ldyBSZWdFeHAoLzAvLCAnZycpLCAnJyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZvcm1hdFZhbHVlKHZhbHVlOiBhbnkpOiBhbnkge1xyXG4gICAgcmV0dXJuIE1vbmtleVV0aWxzLmdldFBob25lTnVtYmVyRm9ybWF0ZWQodmFsdWUsIHRoaXMuX2ludGVybmF0aW9uYWxOdW1iZXIpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRWYWx1ZSgpIHtcclxuICAgIGNvbnN0IHsgX2ludGVybmF0aW9uYWxOdW1iZXIsIF9oYW5kbGVkVmFsdWUgfSA9IHRoaXM7XHJcbiAgICByZXR1cm4gYCske19pbnRlcm5hdGlvbmFsTnVtYmVyfSR7X2hhbmRsZWRWYWx1ZX1gO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLl9jb3VudHJ5Q29kZXMgPSBNb25rZXlVdGlscy5nZXRQaG9uZVJlZ2lvbnMoKTtcclxuICAgIHRoaXMub25IYW5kbGVJbnRlcm5hdGlvbmFsTnVtYmVyKCk7XHJcbiAgICB0aGlzLm9uSGFuZGxlQ291bnRyeUNvZGUodGhpcy5faW50ZXJuYXRpb25hbE51bWJlcik7XHJcbiAgICB0aGlzLl9mb3JtQ29udHJvbCA9IHRoaXMubmdDb250cm9sICYmICh0aGlzLm5nQ29udHJvbCBhcyBhbnkpLmZvcm07XHJcbiAgfVxyXG5cclxuICBvbkhhbmRsZUludGVybmF0aW9uYWxOdW1iZXIodmFsdWU/OiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX2ludGVybmF0aW9uYWxOdW1iZXIgPVxyXG4gICAgICBNb25rZXlVdGlscy5nZXRQaG9uZUNvdW50cnlDb2RlKHZhbHVlIHx8IHRoaXMuX2hhbmRsZWRWYWx1ZSkgfHwgdGhpcy5faW50ZXJuYXRpb25hbE51bWJlcjtcclxuICB9XHJcblxyXG4gIG9uSGFuZGxlSW50ZXJuYXRpb25hbE51bWJlckZvcm1hdGVkKCkge1xyXG4gICAgY29uc3QgeyBfaW50ZXJuYXRpb25hbE51bWJlciB9ID0gdGhpcztcclxuICAgIHJldHVybiBgKyR7X2ludGVybmF0aW9uYWxOdW1iZXJ9YDtcclxuICB9XHJcblxyXG4gIG9uSGFuZGxlQ291bnRyeUNvZGUoZXZlbnQ6IG51bWJlcikge1xyXG4gICAgY29uc3QgeyBtYXhMZW5ndGggfSA9IE1vbmtleVV0aWxzLmdldFBob25lSGFuZGxlKGV2ZW50KTtcclxuICAgIGlmIChtYXhMZW5ndGgpIHtcclxuICAgICAgdGhpcy5tYXhMZW5ndGggPSBtYXhMZW5ndGg7XHJcbiAgICAgIHRoaXMub25DaGFuZ2VWYWx1ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uTW9kZWxDaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Nb2RlbFRvdWNoZWQgPSBmbjtcclxuICB9XHJcblxyXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuX2Rpc2FibGVkID0gaXNEaXNhYmxlZDtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHZhbHVlKHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMuX2hhbmRsZWRWYWx1ZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5fZm9ybWF0ZWRWYWx1ZSA9IHRoaXMuZm9ybWF0VmFsdWUodmFsdWUpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgdGhpcy5vbk1vZGVsQ2hhbmdlKHRoaXMuZ2V0VmFsdWUoKSk7XHJcbiAgICB0aGlzLm9uTW9kZWxUb3VjaGVkKHRoaXMuZ2V0VmFsdWUoKSk7XHJcbiAgfVxyXG5cclxuICBnZXQgdmFsdWUoKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLmdldFZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlVmFsdWUoZXZlbnQ/OiBhbnkpIHtcclxuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5fZm9ybWF0ZWRWYWx1ZTtcclxuICAgIGV2ZW50Py5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZXZlbnQ/LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgY29uc3QgaGFuZGxlZCA9IHRoaXMuaGFuZGxlVmFsdWUodmFsdWUpO1xyXG4gICAgdGhpcy53cml0ZVZhbHVlKGhhbmRsZWQpO1xyXG4gICAgdGhpcy5vbkNoYW5nZS5uZXh0KGhhbmRsZWQpO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxyXG4gIG9uQ2xpY2soKSB7XHJcbiAgICBkb2N1bWVudD8uZ2V0RWxlbWVudEJ5SWQodGhpcy5faWQpPy5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaW5wdXQnKT8uWzBdPy5mb2N1cygpO1xyXG4gIH1cclxuXHJcbiAgb25LZXlQcmVzcyhldmVudDogYW55KSB7XHJcbiAgICBsZXQgcGF0dGVybiA9IG51bGw7XHJcbiAgICBjb25zdCBjbXAgPSBldmVudD8udGFyZ2V0Py52YWx1ZTtcclxuICAgIGNvbnN0IGlucHV0Q2hhciA9IFN0cmluZy5mcm9tQ2hhckNvZGUoZXZlbnQuY2hhckNvZGUpO1xyXG5cclxuICAgIHBhdHRlcm4gPSAvWzAtOV0vO1xyXG4gICAgaWYgKGlucHV0Q2hhciA9PT0gJzAnICYmICF0aGlzLnJlcGxhY2VaZXJvKGNtcCkpIHtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChwYXR0ZXJuICYmICFwYXR0ZXJuLnRlc3QoaW5wdXRDaGFyKSkge1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, Inject, Component, ViewEncapsulation, Input, NgModule, NO_ERRORS_SCHEMA, HostListener, EventEmitter, forwardRef, Output, ViewChild, ContentChildren, Directive } from '@angular/core';
2
+ import { Injectable, Inject, Component, ViewEncapsulation, Input, NgModule, NO_ERRORS_SCHEMA, HostListener, EventEmitter, forwardRef, Output, ViewChild, ContentChildren, Directive, Optional, Self } from '@angular/core';
3
3
  import { BehaviorSubject, throwError, Subject } from 'rxjs';
4
4
  import * as i1 from '@angular/common/http';
5
5
  import { HttpClientModule } from '@angular/common/http';
@@ -7,12 +7,12 @@ import * as i1$1 from '@angular/common';
7
7
  import { DOCUMENT, CommonModule, CurrencyPipe } from '@angular/common';
8
8
  import { PhoneNumberUtil } from 'google-libphonenumber';
9
9
  import { takeUntil } from 'rxjs/operators';
10
- import * as i4 from '@angular/forms';
10
+ import * as i1$2 from '@angular/forms';
11
11
  import { FormsModule, ReactiveFormsModule, Validators, NG_VALUE_ACCESSOR } from '@angular/forms';
12
12
  import * as moment_ from 'moment';
13
- import * as i1$2 from 'ngx-mask';
13
+ import * as i1$3 from 'ngx-mask';
14
14
  import { NgxMaskModule } from 'ngx-mask';
15
- import * as i1$3 from '@angular/platform-browser';
15
+ import * as i1$4 from '@angular/platform-browser';
16
16
 
17
17
  class MonkeyStyleGuideService {
18
18
  constructor(http) {
@@ -3381,7 +3381,7 @@ class MonkeyDateRangePickerComponent {
3381
3381
  this.writeValue(_dateForm.value);
3382
3382
  }
3383
3383
  }
3384
- MonkeyDateRangePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MonkeyDateRangePickerComponent, deps: [{ token: i4.FormBuilder }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
3384
+ MonkeyDateRangePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MonkeyDateRangePickerComponent, deps: [{ token: i1$2.FormBuilder }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
3385
3385
  MonkeyDateRangePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.14", type: MonkeyDateRangePickerComponent, selector: "monkey-date-range-picker", inputs: { i18n: "i18n", infoMessage: "infoMessage", errorMessage: "errorMessage", value: "value" }, outputs: { onChange: "onChange" }, providers: [
3386
3386
  {
3387
3387
  provide: NG_VALUE_ACCESSOR,
@@ -3699,7 +3699,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImpo
3699
3699
  CurrencyPipe,
3700
3700
  ],
3701
3701
  }]
3702
- }], ctorParameters: function () { return [{ type: i4.FormBuilder }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { i18n: [{
3702
+ }], ctorParameters: function () { return [{ type: i1$2.FormBuilder }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { i18n: [{
3703
3703
  type: Input
3704
3704
  }], infoMessage: [{
3705
3705
  type: Input
@@ -3950,7 +3950,7 @@ MonkeyInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
3950
3950
  </error>
3951
3951
  </mecx-form-field-footer>
3952
3952
  </mecx-form-field>
3953
- `, isInline: true, components: [{ type: MonkeyIconComponent, selector: "monkey-icon", inputs: ["icon", "color", "contrast", "disabled"] }], directives: [{ type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1$2.MaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], encapsulation: i0.ViewEncapsulation.None });
3953
+ `, isInline: true, components: [{ type: MonkeyIconComponent, selector: "monkey-icon", inputs: ["icon", "color", "contrast", "disabled"] }], directives: [{ type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1$3.MaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers"] }, { type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], encapsulation: i0.ViewEncapsulation.None });
3954
3954
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MonkeyInputComponent, decorators: [{
3955
3955
  type: Component,
3956
3956
  args: [{
@@ -4244,7 +4244,7 @@ MonkeyInputFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
4244
4244
  ></monkey-icon>
4245
4245
  </mecx-form-field-body>
4246
4246
  </mecx-form-field-filter>
4247
- `, isInline: true, components: [{ type: MonkeyIconComponent, selector: "monkey-icon", inputs: ["icon", "color", "contrast", "disabled"] }], directives: [{ type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1$2.MaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], encapsulation: i0.ViewEncapsulation.None });
4247
+ `, isInline: true, components: [{ type: MonkeyIconComponent, selector: "monkey-icon", inputs: ["icon", "color", "contrast", "disabled"] }], directives: [{ type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1$3.MaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers"] }, { type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], encapsulation: i0.ViewEncapsulation.None });
4248
4248
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MonkeyInputFilterComponent, decorators: [{
4249
4249
  type: Component,
4250
4250
  args: [{
@@ -4357,7 +4357,7 @@ class MonkeyInputModule {
4357
4357
  MonkeyInputModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MonkeyInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4358
4358
  MonkeyInputModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MonkeyInputModule, declarations: [MonkeyInputComponent, MonkeyInputFilterComponent], imports: [CommonModule,
4359
4359
  FormsModule,
4360
- ReactiveFormsModule, i1$2.NgxMaskModule, MonkeyIconModule], exports: [MonkeyInputComponent, MonkeyInputFilterComponent] });
4360
+ ReactiveFormsModule, i1$3.NgxMaskModule, MonkeyIconModule], exports: [MonkeyInputComponent, MonkeyInputFilterComponent] });
4361
4361
  MonkeyInputModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MonkeyInputModule, imports: [[
4362
4362
  CommonModule,
4363
4363
  FormsModule,
@@ -4777,10 +4777,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImpo
4777
4777
  **************************/
4778
4778
  class PhoneNumberValidDirective {
4779
4779
  onValidate() {
4780
- const { destroyed, phoneNumber, internationalNumber } = this;
4781
- if (destroyed || !phoneNumber)
4780
+ const { ctrl, destroyed, phoneNumber, internationalNumber } = this;
4781
+ if (destroyed || !phoneNumber || !ctrl)
4782
4782
  return;
4783
- let isValid = true;
4783
+ let isValid = false;
4784
4784
  try {
4785
4785
  isValid = MonkeyUtils.isPhoneNumberValid(phoneNumber, internationalNumber);
4786
4786
  }
@@ -4789,14 +4789,16 @@ class PhoneNumberValidDirective {
4789
4789
  }
4790
4790
  if (!isValid) {
4791
4791
  setTimeout(() => {
4792
- this.ctrl.markAsDirty();
4793
- this.ctrl.markAsTouched();
4794
- this.ctrl.setErrors({ invalidNumber: true });
4792
+ ctrl.markAsDirty();
4793
+ ctrl.markAsTouched();
4794
+ ctrl.setErrors({ phone: true });
4795
4795
  }, 0);
4796
4796
  }
4797
4797
  }
4798
- ngOnChanges({ phoneNumber }) {
4799
- if (phoneNumber && !phoneNumber.firstChange) {
4798
+ ngOnChanges({ ctrl, phoneNumber, internationalNumber }) {
4799
+ if ((phoneNumber && !phoneNumber.firstChange) ||
4800
+ (internationalNumber && !internationalNumber.firstChange) ||
4801
+ (ctrl && !ctrl.firstChange)) {
4800
4802
  this.onValidate();
4801
4803
  }
4802
4804
  }
@@ -4820,7 +4822,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImpo
4820
4822
  type: Input
4821
4823
  }] } });
4822
4824
  class MonkeyInputPhoneComponent {
4823
- constructor(cdr) {
4825
+ constructor(ngControl, cdr) {
4826
+ this.ngControl = ngControl;
4824
4827
  this.cdr = cdr;
4825
4828
  this.name = `mecx-input-phone-${MonkeyUtils.getRandomString(10)}`;
4826
4829
  this.helperMessage = '';
@@ -4834,6 +4837,10 @@ class MonkeyInputPhoneComponent {
4834
4837
  this._regionCodes = [];
4835
4838
  this._countryCodes = [];
4836
4839
  this._internationalNumber = 55;
4840
+ this._formControl = null;
4841
+ if (this.ngControl != null) {
4842
+ this.ngControl.valueAccessor = this;
4843
+ }
4837
4844
  }
4838
4845
  handleValue(value) {
4839
4846
  return MonkeyUtils.handleOnlyNumbers(`${value}`);
@@ -4852,12 +4859,7 @@ class MonkeyInputPhoneComponent {
4852
4859
  this._countryCodes = MonkeyUtils.getPhoneRegions();
4853
4860
  this.onHandleInternationalNumber();
4854
4861
  this.onHandleCountryCode(this._internationalNumber);
4855
- }
4856
- ngOnChanges(sc) {
4857
- const { formControl: { firstChange, currentValue: { value }, }, } = sc;
4858
- if (sc && firstChange) {
4859
- this.onHandleInternationalNumber(value);
4860
- }
4862
+ this._formControl = this.ngControl && this.ngControl.form;
4861
4863
  }
4862
4864
  onHandleInternationalNumber(value) {
4863
4865
  this._internationalNumber =
@@ -4923,15 +4925,8 @@ class MonkeyInputPhoneComponent {
4923
4925
  }
4924
4926
  }
4925
4927
  }
4926
- MonkeyInputPhoneComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MonkeyInputPhoneComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
4927
- MonkeyInputPhoneComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.14", type: MonkeyInputPhoneComponent, selector: "monkey-input-phone", inputs: { name: "name", label: "label", helperMessage: "helperMessage", placeholder: "placeholder", icon: "icon", infoMessage: "infoMessage", errorMessage: "errorMessage", maxLength: "maxLength", formControl: "formControl", value: "value" }, outputs: { onChange: "onChange" }, host: { listeners: { "click": "onClick()" } }, providers: [
4928
- {
4929
- provide: NG_VALUE_ACCESSOR,
4930
- useExisting: forwardRef(() => MonkeyInputPhoneComponent),
4931
- multi: true,
4932
- },
4933
- CurrencyPipe,
4934
- ], usesOnChanges: true, ngImport: i0, template: `
4928
+ MonkeyInputPhoneComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MonkeyInputPhoneComponent, deps: [{ token: i1$2.NgControl, optional: true, self: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
4929
+ MonkeyInputPhoneComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.14", type: MonkeyInputPhoneComponent, selector: "monkey-input-phone", inputs: { name: "name", label: "label", helperMessage: "helperMessage", placeholder: "placeholder", icon: "icon", infoMessage: "infoMessage", errorMessage: "errorMessage", maxLength: "maxLength", value: "value" }, outputs: { onChange: "onChange" }, host: { listeners: { "click": "onClick()" } }, ngImport: i0, template: `
4935
4930
  <mecx-form-field [ngClass]="{ disabled: _disabled }" [id]="_id">
4936
4931
  <mecx-form-field-header>
4937
4932
  <label>
@@ -4966,11 +4961,15 @@ MonkeyInputPhoneComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
4966
4961
  [disabled]="_disabled"
4967
4962
  [maxLength]="maxLength"
4968
4963
  phoneNumberValidate
4969
- [ctrl]="formControl"
4964
+ [ctrl]="_formControl"
4970
4965
  [phoneNumber]="_handledValue"
4971
4966
  [internationalNumber]="_internationalNumber"
4972
4967
  #monkeyInput
4973
4968
  />
4969
+ <!--phoneNumberValidate
4970
+ [ctrl]="formControl"
4971
+ [phoneNumber]="_handledValue"
4972
+ [internationalNumber]="_internationalNumber"-->
4974
4973
  </mecx-form-field-body>
4975
4974
  <mecx-form-field-footer>
4976
4975
  <info>
@@ -4981,7 +4980,7 @@ MonkeyInputPhoneComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
4981
4980
  </error>
4982
4981
  </mecx-form-field-footer>
4983
4982
  </mecx-form-field>
4984
- `, isInline: true, components: [{ type: MonkeyIconComponent, selector: "monkey-icon", inputs: ["icon", "color", "contrast", "disabled"] }, { type: MonkeySelectComponent, selector: "monkey-select", inputs: ["label", "helperMessage", "placeholder", "icon", "infoMessage", "errorMessage", "labelSelect", "onHandleOptions", "value"], outputs: ["onChange"] }, { type: MonkeyOptionComponent, selector: "monkey-option", inputs: ["type", "label", "value", "selectAll", "selected", "enableClick"], outputs: ["onSelectOption"] }], directives: [{ type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: PhoneNumberValidDirective, selector: "[phoneNumberValidate]", inputs: ["phoneNumber", "internationalNumber", "ctrl"] }], encapsulation: i0.ViewEncapsulation.None });
4983
+ `, isInline: true, components: [{ type: MonkeyIconComponent, selector: "monkey-icon", inputs: ["icon", "color", "contrast", "disabled"] }, { type: MonkeySelectComponent, selector: "monkey-select", inputs: ["label", "helperMessage", "placeholder", "icon", "infoMessage", "errorMessage", "labelSelect", "onHandleOptions", "value"], outputs: ["onChange"] }, { type: MonkeyOptionComponent, selector: "monkey-option", inputs: ["type", "label", "value", "selectAll", "selected", "enableClick"], outputs: ["onSelectOption"] }], directives: [{ type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: PhoneNumberValidDirective, selector: "[phoneNumberValidate]", inputs: ["phoneNumber", "internationalNumber", "ctrl"] }], encapsulation: i0.ViewEncapsulation.None });
4985
4984
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MonkeyInputPhoneComponent, decorators: [{
4986
4985
  type: Component,
4987
4986
  args: [{
@@ -5021,11 +5020,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImpo
5021
5020
  [disabled]="_disabled"
5022
5021
  [maxLength]="maxLength"
5023
5022
  phoneNumberValidate
5024
- [ctrl]="formControl"
5023
+ [ctrl]="_formControl"
5025
5024
  [phoneNumber]="_handledValue"
5026
5025
  [internationalNumber]="_internationalNumber"
5027
5026
  #monkeyInput
5028
5027
  />
5028
+ <!--phoneNumberValidate
5029
+ [ctrl]="formControl"
5030
+ [phoneNumber]="_handledValue"
5031
+ [internationalNumber]="_internationalNumber"-->
5029
5032
  </mecx-form-field-body>
5030
5033
  <mecx-form-field-footer>
5031
5034
  <info>
@@ -5038,16 +5041,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImpo
5038
5041
  </mecx-form-field>
5039
5042
  `,
5040
5043
  encapsulation: ViewEncapsulation.None,
5041
- providers: [
5042
- {
5043
- provide: NG_VALUE_ACCESSOR,
5044
- useExisting: forwardRef(() => MonkeyInputPhoneComponent),
5045
- multi: true,
5046
- },
5047
- CurrencyPipe,
5048
- ],
5049
5044
  }]
5050
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { name: [{
5045
+ }], ctorParameters: function () { return [{ type: i1$2.NgControl, decorators: [{
5046
+ type: Optional
5047
+ }, {
5048
+ type: Self
5049
+ }] }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { name: [{
5051
5050
  type: Input
5052
5051
  }], label: [{
5053
5052
  type: Input
@@ -5063,8 +5062,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImpo
5063
5062
  type: Input
5064
5063
  }], maxLength: [{
5065
5064
  type: Input
5066
- }], formControl: [{
5067
- type: Input
5068
5065
  }], onChange: [{
5069
5066
  type: Output
5070
5067
  }], value: [{
@@ -5581,7 +5578,7 @@ MonkeySelectSearchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.
5581
5578
  </error>
5582
5579
  </mecx-form-field-footer>
5583
5580
  </mecx-form-field>
5584
- `, isInline: true, components: [{ type: MonkeyIconComponent, selector: "monkey-icon", inputs: ["icon", "color", "contrast", "disabled"] }], directives: [{ type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], encapsulation: i0.ViewEncapsulation.None });
5581
+ `, isInline: true, components: [{ type: MonkeyIconComponent, selector: "monkey-icon", inputs: ["icon", "color", "contrast", "disabled"] }], directives: [{ type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], encapsulation: i0.ViewEncapsulation.None });
5585
5582
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MonkeySelectSearchComponent, decorators: [{
5586
5583
  type: Component,
5587
5584
  args: [{
@@ -5920,7 +5917,7 @@ class MonkeyInputPhoneModule {
5920
5917
  MonkeyInputPhoneModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MonkeyInputPhoneModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5921
5918
  MonkeyInputPhoneModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MonkeyInputPhoneModule, declarations: [MonkeyInputPhoneComponent, PhoneNumberValidDirective], imports: [CommonModule,
5922
5919
  FormsModule,
5923
- ReactiveFormsModule, i1$2.NgxMaskModule, MonkeyIconModule,
5920
+ ReactiveFormsModule, i1$3.NgxMaskModule, MonkeyIconModule,
5924
5921
  MonkeySelectModule,
5925
5922
  MonkeyOptionModule], exports: [MonkeyInputPhoneComponent] });
5926
5923
  MonkeyInputPhoneModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MonkeyInputPhoneModule, imports: [[
@@ -6038,7 +6035,7 @@ MonkeyCheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
6038
6035
  </mecx-form-field-body>
6039
6036
  </mecx-form-field>
6040
6037
  </ng-template>
6041
- `, isInline: true, directives: [{ type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], encapsulation: i0.ViewEncapsulation.None });
6038
+ `, isInline: true, directives: [{ type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1$2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], encapsulation: i0.ViewEncapsulation.None });
6042
6039
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MonkeyCheckboxComponent, decorators: [{
6043
6040
  type: Component,
6044
6041
  args: [{
@@ -6693,7 +6690,7 @@ class MonkeyFileUploadModule {
6693
6690
  MonkeyFileUploadModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MonkeyFileUploadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
6694
6691
  MonkeyFileUploadModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MonkeyFileUploadModule, declarations: [MonkeyFileUploadComponent], imports: [CommonModule,
6695
6692
  FormsModule,
6696
- ReactiveFormsModule, i1$2.NgxMaskModule, MonkeyIconModule], exports: [MonkeyFileUploadComponent] });
6693
+ ReactiveFormsModule, i1$3.NgxMaskModule, MonkeyIconModule], exports: [MonkeyFileUploadComponent] });
6697
6694
  MonkeyFileUploadModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MonkeyFileUploadModule, imports: [[
6698
6695
  CommonModule,
6699
6696
  FormsModule,
@@ -6950,7 +6947,7 @@ class MonkeyImageCropComponent {
6950
6947
  this.onHandlePreviewReady.next(file);
6951
6948
  }
6952
6949
  }
6953
- MonkeyImageCropComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MonkeyImageCropComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1$3.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
6950
+ MonkeyImageCropComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MonkeyImageCropComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1$4.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
6954
6951
  MonkeyImageCropComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.14", type: MonkeyImageCropComponent, selector: "monkey-image-crop", inputs: { label: "label", cropTitle: "cropTitle", labelChangeImage: "labelChangeImage", labelPreviewImage: "labelPreviewImage", helperMessage: "helperMessage", placeholder: "placeholder", maxSize: "maxSize", maxSizeErrorMessage: "maxSizeErrorMessage", allowedExtensionErrorMessage: "allowedExtensionErrorMessage", fileUpload: "fileUpload", onHandleGetFilesReady: "onHandleGetFilesReady" }, outputs: { onHandleFilesReady: "onHandleFilesReady", onHandlePreviewReady: "onHandlePreviewReady" }, host: { listeners: { "mousemove": "moveImg($event)", "touchmove": "moveImg($event)", "document:mouseup": "moveStop()", "document:touchend": "moveStop()" } }, ngImport: i0, template: `
6955
6952
  <monkey-file-upload
6956
6953
  [label]="label"
@@ -7179,7 +7176,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImpo
7179
7176
  `,
7180
7177
  encapsulation: ViewEncapsulation.None,
7181
7178
  }]
7182
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1$3.DomSanitizer }]; }, propDecorators: { label: [{
7179
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1$4.DomSanitizer }]; }, propDecorators: { label: [{
7183
7180
  type: Input
7184
7181
  }], cropTitle: [{
7185
7182
  type: Input
@@ -7224,7 +7221,7 @@ class MonkeyImageCropModule {
7224
7221
  MonkeyImageCropModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MonkeyImageCropModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7225
7222
  MonkeyImageCropModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MonkeyImageCropModule, declarations: [MonkeyImageCropComponent], imports: [CommonModule,
7226
7223
  FormsModule,
7227
- ReactiveFormsModule, i1$2.NgxMaskModule, MonkeyButtonModule,
7224
+ ReactiveFormsModule, i1$3.NgxMaskModule, MonkeyButtonModule,
7228
7225
  MonkeyFileUploadModule], exports: [MonkeyImageCropComponent] });
7229
7226
  MonkeyImageCropModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MonkeyImageCropModule, imports: [[
7230
7227
  CommonModule,