@acorex/components 20.3.33 → 20.3.35
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.
- package/fesm2022/acorex-components-media-viewer.mjs +105 -36
- package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
- package/fesm2022/acorex-components-phone-box.mjs +21 -20
- package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
- package/fesm2022/acorex-components-tree-view.mjs +6 -0
- package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
- package/media-viewer/index.d.ts +23 -7
- package/package.json +7 -7
- package/tree-view/index.d.ts +6 -0
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { MXInputBaseValueComponent, MXLookComponent, AXDataSource, AXComponent, AXFocusableComponent, AXClearableComponent, AXValuableComponent } from '@acorex/cdk/common';
|
|
2
2
|
import { AXDecoratorGenericComponent, AXDecoratorClearButtonComponent, AXDecoratorModule } from '@acorex/components/decorators';
|
|
3
|
-
import * as i2 from '@acorex/components/form';
|
|
4
3
|
import { AXFormModule } from '@acorex/components/form';
|
|
5
4
|
import { AXSearchBoxComponent, AXSearchBoxModule } from '@acorex/components/search-box';
|
|
6
5
|
import { AXSelectBoxComponent, AXSelectBoxModule } from '@acorex/components/select-box';
|
|
@@ -57,7 +56,7 @@ class AXPhoneBoxComponent extends classes((MXInputBaseValueComponent), MXLookCom
|
|
|
57
56
|
this.cdr.detectChanges();
|
|
58
57
|
this.selectBox().refresh();
|
|
59
58
|
}, ...(ngDevMode ? [{ debugName: "#countriesChanged" }] : []));
|
|
60
|
-
this.#
|
|
59
|
+
this.#init = afterNextRender(() => {
|
|
61
60
|
setTimeout(() => {
|
|
62
61
|
if (this.country() && !this.value) {
|
|
63
62
|
this.selectedCountry.set(this.countries().find((c) => c.code === this.country()));
|
|
@@ -66,7 +65,22 @@ class AXPhoneBoxComponent extends classes((MXInputBaseValueComponent), MXLookCom
|
|
|
66
65
|
this.selectedCountry.set(this.countries()[0]);
|
|
67
66
|
}
|
|
68
67
|
});
|
|
68
|
+
this.setCountries();
|
|
69
69
|
});
|
|
70
|
+
this.#eff = effect(async () => {
|
|
71
|
+
if (this.selectedCountry()?.regex) {
|
|
72
|
+
this.removeValidation();
|
|
73
|
+
const message = await this.messageError;
|
|
74
|
+
this.addValidationRule({
|
|
75
|
+
rule: 'regex',
|
|
76
|
+
options: {
|
|
77
|
+
message,
|
|
78
|
+
pattern: this.selectedCountry()?.regex,
|
|
79
|
+
},
|
|
80
|
+
disabled: false,
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
}, ...(ngDevMode ? [{ debugName: "#eff" }] : []));
|
|
70
84
|
/** @ignore */
|
|
71
85
|
this.dataSource = new AXDataSource({
|
|
72
86
|
pageSize: 10,
|
|
@@ -85,10 +99,6 @@ class AXPhoneBoxComponent extends classes((MXInputBaseValueComponent), MXLookCom
|
|
|
85
99
|
});
|
|
86
100
|
},
|
|
87
101
|
});
|
|
88
|
-
/** @ignore */
|
|
89
|
-
this.#init = afterNextRender(() => {
|
|
90
|
-
this.setCountries();
|
|
91
|
-
});
|
|
92
102
|
/**
|
|
93
103
|
* Determines if the keyboard event is a valid action based on allowed keys and key codes.
|
|
94
104
|
*
|
|
@@ -112,6 +122,7 @@ class AXPhoneBoxComponent extends classes((MXInputBaseValueComponent), MXLookCom
|
|
|
112
122
|
return await this.translationService.translateAsync('@acorex:validation.messages.phone');
|
|
113
123
|
}
|
|
114
124
|
#countriesChanged;
|
|
125
|
+
#init;
|
|
115
126
|
#eff;
|
|
116
127
|
/** @ignore */
|
|
117
128
|
_handleModelChange(e) {
|
|
@@ -119,7 +130,7 @@ class AXPhoneBoxComponent extends classes((MXInputBaseValueComponent), MXLookCom
|
|
|
119
130
|
if (this.disabled || this.readonly) {
|
|
120
131
|
return;
|
|
121
132
|
}
|
|
122
|
-
if (e.isUserInteraction)
|
|
133
|
+
if (e.isUserInteraction && e.value)
|
|
123
134
|
this.commitValue(e.value, true);
|
|
124
135
|
}
|
|
125
136
|
internalValueChanged(value) {
|
|
@@ -127,7 +138,6 @@ class AXPhoneBoxComponent extends classes((MXInputBaseValueComponent), MXLookCom
|
|
|
127
138
|
return;
|
|
128
139
|
const result = this.parsePhoneNumber(value);
|
|
129
140
|
if (result.country) {
|
|
130
|
-
this.removeValidation();
|
|
131
141
|
this.selectedCountry.set(result.country);
|
|
132
142
|
this.commitValue(result.nationalNumber);
|
|
133
143
|
}
|
|
@@ -138,8 +148,6 @@ class AXPhoneBoxComponent extends classes((MXInputBaseValueComponent), MXLookCom
|
|
|
138
148
|
this.textbox?.focus();
|
|
139
149
|
}, 300);
|
|
140
150
|
}
|
|
141
|
-
/** @ignore */
|
|
142
|
-
#init;
|
|
143
151
|
/**
|
|
144
152
|
* Updates the list of countries based on included or excluded codes.
|
|
145
153
|
*
|
|
@@ -247,18 +255,11 @@ class AXPhoneBoxComponent extends classes((MXInputBaseValueComponent), MXLookCom
|
|
|
247
255
|
}
|
|
248
256
|
//remove validation rule before add new one
|
|
249
257
|
if (event.isUserInteraction) {
|
|
250
|
-
this.removeValidation();
|
|
251
258
|
this.selectedCountry.set(event.component.selectedItems[0]);
|
|
252
259
|
}
|
|
253
260
|
}
|
|
254
261
|
removeValidation() {
|
|
255
|
-
this.
|
|
256
|
-
rule: 'regex',
|
|
257
|
-
disabled: false,
|
|
258
|
-
options: {
|
|
259
|
-
pattern: this.selectedCountry()?.regex,
|
|
260
|
-
},
|
|
261
|
-
});
|
|
262
|
+
this.removeValidationRuleByType('regex');
|
|
262
263
|
this.textbox.reset();
|
|
263
264
|
this.textbox.resetErrors();
|
|
264
265
|
}
|
|
@@ -276,7 +277,7 @@ class AXPhoneBoxComponent extends classes((MXInputBaseValueComponent), MXLookCom
|
|
|
276
277
|
useExisting: forwardRef(() => AXPhoneBoxComponent),
|
|
277
278
|
multi: true,
|
|
278
279
|
},
|
|
279
|
-
], viewQueries: [{ propertyName: "selectBox", first: true, predicate: ["s"], descendants: true, isSignal: true }, { propertyName: "textbox", first: true, predicate: AXTextBoxComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ax-text-box\n dir=\"ltr\"\n [look]=\"look\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [mask-options]=\"{ mask: selectedCountry()?.format }\"\n [placeholder]=\"selectedCountry()?.format\"\n [ngModel]=\"value\"\n (onValueChanged)=\"_handleModelChange($event)\"\n (onBlur)=\"emitOnBlurEvent($event.nativeEvent)\"\n (onFocus)=\"emitOnFocusEvent($event.nativeEvent)\"\n (onKeyDown)=\"handleKeyDown($event.nativeEvent)\"\n (onKeyPress)=\"emitOnKeypressEvent($event.nativeEvent)\"\n (onKeyUp)=\"emitOnKeyupEvent($event.nativeEvent)\"\n>\n <ng-content select=\"ax-validation-rule\"> </ng-content>\n\n
|
|
280
|
+
], viewQueries: [{ propertyName: "selectBox", first: true, predicate: ["s"], descendants: true, isSignal: true }, { propertyName: "textbox", first: true, predicate: AXTextBoxComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ax-text-box\n dir=\"ltr\"\n [look]=\"look\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [mask-options]=\"{ mask: selectedCountry()?.format }\"\n [placeholder]=\"selectedCountry()?.format\"\n [ngModel]=\"value\"\n (onValueChanged)=\"_handleModelChange($event)\"\n (onBlur)=\"emitOnBlurEvent($event.nativeEvent)\"\n (onFocus)=\"emitOnFocusEvent($event.nativeEvent)\"\n (onKeyDown)=\"handleKeyDown($event.nativeEvent)\"\n (onKeyPress)=\"emitOnKeypressEvent($event.nativeEvent)\"\n (onKeyUp)=\"emitOnKeyupEvent($event.nativeEvent)\"\n>\n <ng-content select=\"ax-validation-rule\"> </ng-content>\n\n <ax-prefix>\n @if (precode()) {\n <ax-text>{{ precode() }}</ax-text>\n } @else {\n <ax-select-box\n #s\n look=\"blank\"\n [disabled]=\"disabled || readonly\"\n [readonly]=\"readonly\"\n [dropdownWidth]=\"'320px'\"\n [dataSource]=\"dataSource\"\n [ngModel]=\"selectedCountry()\"\n [textField]=\"'iso2code'\"\n [multiple]=\"false\"\n [valueField]=\"'code'\"\n [itemTemplate]=\"customItemTemplate\"\n [selectedTemplate]=\"selectedTemplate\"\n (onValueChanged)=\"_handleCountryValueChanged($event)\"\n (onClosed)=\"handleCountryOnClosed()\"\n [tabIndex]=\"included().length === 1 ? '-1' : '1'\"\n >\n <ax-search-box class=\"ax-sm\" look=\"fill\">\n <ax-clear-button></ax-clear-button>\n </ax-search-box>\n <ng-template #customItemTemplate let-item>\n <div class=\"ax-country-item\">\n <div\n class=\"ax-country-flag\"\n [ngStyle]=\"{\n 'background-position': item.data.bkPosition?.x + ' ' + item.data.bkPosition?.y,\n 'background-image': 'url(' + flags() + ')',\n }\"\n ></div>\n <div>\n <span class=\"ax-country-name\">{{ item.data.name }}</span>\n <span class=\"ax-iso2code\">{{ item.data.iso2code }}</span>\n </div>\n </div>\n </ng-template>\n <ng-template #selectedTemplate let-item>\n <div class=\"ax-selected-country\">\n <span>{{ item.data.iso2code }}</span>\n </div>\n </ng-template>\n <ng-template #loading></ng-template>\n </ax-select-box>\n }\n </ax-prefix>\n</ax-text-box>\n\n<ng-content select=\"ax-clear-button \"></ng-content>\n<div class=\"ax-error-container\"></div>\n", styles: ["ax-phone-box .ax-editor-container{--ax-comp-editor-space-start-size: 0}ax-phone-box.ax-state-disabled ax-text-box{pointer-events:auto;opacity:.6;cursor:not-allowed}ax-phone-box.ax-state-disabled ax-text-box .ax-editor,ax-phone-box.ax-state-disabled ax-text-box .ax-input{pointer-events:auto;cursor:not-allowed;-webkit-user-select:none;user-select:none}ax-phone-box.ax-state-disabled ax-select-box{pointer-events:none;opacity:.6}ax-phone-box.ax-state-disabled ax-select-box ax-dropdown-box{--ax-comp-editor-bg-color: transparent;--ax-comp-editor-border-width: 0px !important;--ax-comp-editor-border-color: transparent !important;cursor:not-allowed}ax-phone-box.ax-state-disabled ax-select-box .ax-editor-button{pointer-events:none;cursor:not-allowed}ax-phone-box.ax-state-readonly ax-text-box .ax-editor,ax-phone-box.ax-state-readonly ax-text-box .ax-input{-webkit-user-select:text;user-select:text}ax-phone-box.ax-state-readonly ax-select-box{pointer-events:none}ax-phone-box.ax-state-readonly ax-select-box ax-dropdown-box{--ax-comp-editor-bg-color: transparent;--ax-comp-editor-border-width: 0px !important;--ax-comp-editor-border-color: transparent !important;cursor:default}ax-phone-box.ax-state-readonly ax-select-box .ax-editor-button{pointer-events:none;cursor:default}ax-phone-box ax-select-box ax-dropdown-box{--ax-comp-editor-bg-color: transparent;--ax-comp-editor-border-width: 0px !important;--ax-comp-editor-border-color: transparent !important}ax-phone-box ax-select-box ax-dropdown-box.ax-editor-container{--ax-comp-editor-box-outline-width: 0;--ax-comp-editor-space-start-size: 0;--ax-comp-editor-space-end-size: 0}ax-phone-box ax-select-box ax-dropdown-box .ax-editor,ax-phone-box ax-select-box ax-dropdown-box .ax-input{--ax-comp-editor-space-start-size: 0}ax-phone-box ax-select-box ax-dropdown-box .ax-content{padding-top:0!important}.ax-country-item{padding:.75rem .5rem;cursor:pointer;display:flex;gap:.5rem;align-items:center}.ax-country-item:hover{background-color:rgba(var(--ax-sys-color-ghost-lighter-surface))}.ax-country-item .ax-country-name{font-weight:500;margin-inline-end:.5rem}.ax-country-item .ax-iso2code{opacity:.7}.ax-country-flag{width:25px!important;height:20px!important;background-repeat:no-repeat}.ax-selected-country{display:flex;gap:.5rem;align-items:center;padding-inline-start:.5rem}\n"], dependencies: [{ kind: "component", type: AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "look", "mask-options", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "component", type: AXSelectBoxComponent, selector: "ax-select-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "multiple", "valueField", "textField", "disabledField", "textTemplate", "selectedItems", "isItemTruncated", "showItemTooltip", "itemHeight", "maxVisibleItems", "dataSource", "minRecordsForSearch", "caption", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "dropdownWidth", "searchBoxAutoFocus"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onOpened", "onClosed", "onItemSelected", "onItemClick"] }, { kind: "component", type: AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "class", "delayTime", "type", "autoSearch"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "component", type: AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: AXFormModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
280
281
|
}
|
|
281
282
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AXPhoneBoxComponent, decorators: [{
|
|
282
283
|
type: Component,
|
|
@@ -326,7 +327,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
326
327
|
AXDecoratorClearButtonComponent,
|
|
327
328
|
NgStyle,
|
|
328
329
|
AXFormModule,
|
|
329
|
-
], template: "<ax-text-box\n dir=\"ltr\"\n [look]=\"look\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [mask-options]=\"{ mask: selectedCountry()?.format }\"\n [placeholder]=\"selectedCountry()?.format\"\n [ngModel]=\"value\"\n (onValueChanged)=\"_handleModelChange($event)\"\n (onBlur)=\"emitOnBlurEvent($event.nativeEvent)\"\n (onFocus)=\"emitOnFocusEvent($event.nativeEvent)\"\n (onKeyDown)=\"handleKeyDown($event.nativeEvent)\"\n (onKeyPress)=\"emitOnKeypressEvent($event.nativeEvent)\"\n (onKeyUp)=\"emitOnKeyupEvent($event.nativeEvent)\"\n>\n <ng-content select=\"ax-validation-rule\"> </ng-content>\n\n
|
|
330
|
+
], template: "<ax-text-box\n dir=\"ltr\"\n [look]=\"look\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [mask-options]=\"{ mask: selectedCountry()?.format }\"\n [placeholder]=\"selectedCountry()?.format\"\n [ngModel]=\"value\"\n (onValueChanged)=\"_handleModelChange($event)\"\n (onBlur)=\"emitOnBlurEvent($event.nativeEvent)\"\n (onFocus)=\"emitOnFocusEvent($event.nativeEvent)\"\n (onKeyDown)=\"handleKeyDown($event.nativeEvent)\"\n (onKeyPress)=\"emitOnKeypressEvent($event.nativeEvent)\"\n (onKeyUp)=\"emitOnKeyupEvent($event.nativeEvent)\"\n>\n <ng-content select=\"ax-validation-rule\"> </ng-content>\n\n <ax-prefix>\n @if (precode()) {\n <ax-text>{{ precode() }}</ax-text>\n } @else {\n <ax-select-box\n #s\n look=\"blank\"\n [disabled]=\"disabled || readonly\"\n [readonly]=\"readonly\"\n [dropdownWidth]=\"'320px'\"\n [dataSource]=\"dataSource\"\n [ngModel]=\"selectedCountry()\"\n [textField]=\"'iso2code'\"\n [multiple]=\"false\"\n [valueField]=\"'code'\"\n [itemTemplate]=\"customItemTemplate\"\n [selectedTemplate]=\"selectedTemplate\"\n (onValueChanged)=\"_handleCountryValueChanged($event)\"\n (onClosed)=\"handleCountryOnClosed()\"\n [tabIndex]=\"included().length === 1 ? '-1' : '1'\"\n >\n <ax-search-box class=\"ax-sm\" look=\"fill\">\n <ax-clear-button></ax-clear-button>\n </ax-search-box>\n <ng-template #customItemTemplate let-item>\n <div class=\"ax-country-item\">\n <div\n class=\"ax-country-flag\"\n [ngStyle]=\"{\n 'background-position': item.data.bkPosition?.x + ' ' + item.data.bkPosition?.y,\n 'background-image': 'url(' + flags() + ')',\n }\"\n ></div>\n <div>\n <span class=\"ax-country-name\">{{ item.data.name }}</span>\n <span class=\"ax-iso2code\">{{ item.data.iso2code }}</span>\n </div>\n </div>\n </ng-template>\n <ng-template #selectedTemplate let-item>\n <div class=\"ax-selected-country\">\n <span>{{ item.data.iso2code }}</span>\n </div>\n </ng-template>\n <ng-template #loading></ng-template>\n </ax-select-box>\n }\n </ax-prefix>\n</ax-text-box>\n\n<ng-content select=\"ax-clear-button \"></ng-content>\n<div class=\"ax-error-container\"></div>\n", styles: ["ax-phone-box .ax-editor-container{--ax-comp-editor-space-start-size: 0}ax-phone-box.ax-state-disabled ax-text-box{pointer-events:auto;opacity:.6;cursor:not-allowed}ax-phone-box.ax-state-disabled ax-text-box .ax-editor,ax-phone-box.ax-state-disabled ax-text-box .ax-input{pointer-events:auto;cursor:not-allowed;-webkit-user-select:none;user-select:none}ax-phone-box.ax-state-disabled ax-select-box{pointer-events:none;opacity:.6}ax-phone-box.ax-state-disabled ax-select-box ax-dropdown-box{--ax-comp-editor-bg-color: transparent;--ax-comp-editor-border-width: 0px !important;--ax-comp-editor-border-color: transparent !important;cursor:not-allowed}ax-phone-box.ax-state-disabled ax-select-box .ax-editor-button{pointer-events:none;cursor:not-allowed}ax-phone-box.ax-state-readonly ax-text-box .ax-editor,ax-phone-box.ax-state-readonly ax-text-box .ax-input{-webkit-user-select:text;user-select:text}ax-phone-box.ax-state-readonly ax-select-box{pointer-events:none}ax-phone-box.ax-state-readonly ax-select-box ax-dropdown-box{--ax-comp-editor-bg-color: transparent;--ax-comp-editor-border-width: 0px !important;--ax-comp-editor-border-color: transparent !important;cursor:default}ax-phone-box.ax-state-readonly ax-select-box .ax-editor-button{pointer-events:none;cursor:default}ax-phone-box ax-select-box ax-dropdown-box{--ax-comp-editor-bg-color: transparent;--ax-comp-editor-border-width: 0px !important;--ax-comp-editor-border-color: transparent !important}ax-phone-box ax-select-box ax-dropdown-box.ax-editor-container{--ax-comp-editor-box-outline-width: 0;--ax-comp-editor-space-start-size: 0;--ax-comp-editor-space-end-size: 0}ax-phone-box ax-select-box ax-dropdown-box .ax-editor,ax-phone-box ax-select-box ax-dropdown-box .ax-input{--ax-comp-editor-space-start-size: 0}ax-phone-box ax-select-box ax-dropdown-box .ax-content{padding-top:0!important}.ax-country-item{padding:.75rem .5rem;cursor:pointer;display:flex;gap:.5rem;align-items:center}.ax-country-item:hover{background-color:rgba(var(--ax-sys-color-ghost-lighter-surface))}.ax-country-item .ax-country-name{font-weight:500;margin-inline-end:.5rem}.ax-country-item .ax-iso2code{opacity:.7}.ax-country-flag{width:25px!important;height:20px!important;background-repeat:no-repeat}.ax-selected-country{display:flex;gap:.5rem;align-items:center;padding-inline-start:.5rem}\n"] }]
|
|
330
331
|
}], propDecorators: { textbox: [{
|
|
331
332
|
type: ViewChild,
|
|
332
333
|
args: [AXTextBoxComponent, { static: true }]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-components-phone-box.mjs","sources":["../tmp-esm2022/phone-box/lib/phone-box.component.js","../tmp-esm2022/phone-box/lib/phone-box.module.js","../tmp-esm2022/phone-box/acorex-components-phone-box.js"],"sourcesContent":["import { AXClearableComponent, AXComponent, AXDataSource, AXFocusableComponent, AXValuableComponent, MXInputBaseValueComponent, MXLookComponent, } from '@acorex/cdk/common';\nimport { AXDecoratorClearButtonComponent, AXDecoratorGenericComponent } from '@acorex/components/decorators';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXSearchBoxComponent } from '@acorex/components/search-box';\nimport { AXSelectBoxComponent } from '@acorex/components/select-box';\nimport { AXTextBoxComponent } from '@acorex/components/text-box';\nimport { COUNTRIES, COUNTRIES_FLAG_BASE64 } from '@acorex/core/constants';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { NgStyle } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, HostBinding, Input, ViewChild, ViewEncapsulation, afterNextRender, effect, forwardRef, inject, input, model, signal, viewChild, } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { filter } from 'lodash-es';\nimport { classes } from 'polytype';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@acorex/components/form\";\n/**\n * @category\n * A component that handles phone number input with various configurations.\n */\nexport class AXPhoneBoxComponent extends classes((MXInputBaseValueComponent), MXLookComponent) {\n constructor() {\n super(...arguments);\n /** @ignore */\n this._updateOn = 'change';\n this.flags = signal(COUNTRIES_FLAG_BASE64, ...(ngDevMode ? [{ debugName: \"flags\" }] : []));\n this.translationService = inject(AXTranslationService);\n this.messageError = this.callTranslate();\n /**\n * static precode.\n */\n this.precode = input(...(ngDevMode ? [undefined, { debugName: \"precode\" }] : []));\n /**\n * The default country value for the component.\n */\n this.country = model('', ...(ngDevMode ? [{ debugName: \"country\" }] : []));\n /**\n * List of included values for the component.\n */\n this.included = input([], ...(ngDevMode ? [{ debugName: \"included\" }] : []));\n /**\n * List of excluded values for the component.\n */\n this.excluded = input([], ...(ngDevMode ? [{ debugName: \"excluded\" }] : []));\n this.selectBox = viewChild('s', ...(ngDevMode ? [{ debugName: \"selectBox\" }] : []));\n /** @ignore */\n this.countries = signal([], ...(ngDevMode ? [{ debugName: \"countries\" }] : []));\n /** @ignore */\n this.selectedCountry = signal(null, ...(ngDevMode ? [{ debugName: \"selectedCountry\" }] : []));\n this.#countriesChanged = effect(() => {\n this.included();\n this.excluded();\n this.setCountries();\n this.cdr.detectChanges();\n this.selectBox().refresh();\n }, ...(ngDevMode ? [{ debugName: \"#countriesChanged\" }] : []));\n this.#eff = afterNextRender(() => {\n setTimeout(() => {\n if (this.country() && !this.value) {\n this.selectedCountry.set(this.countries().find((c) => c.code === this.country()));\n }\n else if (!this.country() && !this.value) {\n this.selectedCountry.set(this.countries()[0]);\n }\n });\n });\n /** @ignore */\n this.dataSource = new AXDataSource({\n pageSize: 10,\n load: (e) => {\n return new Promise((resolve) => {\n const list = this.countries();\n const result = e.filter\n ? filter(list, (c) => c.name.toUpperCase().includes(e.filter.value.toUpperCase()) ||\n c.iso2code.toUpperCase().includes(e.filter.value.toUpperCase()) ||\n c.code.toUpperCase().includes(e.filter.value.toUpperCase()))\n : list;\n resolve({\n items: result.slice(e.skip, e.skip + e.take),\n total: result.length,\n });\n });\n },\n });\n /** @ignore */\n this.#init = afterNextRender(() => {\n this.setCountries();\n });\n /**\n * Determines if the keyboard event is a valid action based on allowed keys and key codes.\n *\n * @param event - The keyboard event to validate\n * @returns boolean - True if the key action is valid, false otherwise\n */\n this.isValidKeyboardAction = (event) => {\n const _code = parseInt(event.key);\n const ALLOWED_KEY = ['Backspace', 'ArrowUp', 'ArrowDown', 'ArrowRight', 'ArrowLeft', 'Tab'];\n const IS_CTRL_A = () => (event.ctrlKey && event.key === 'a') || (event.ctrlKey && event.key === 'A');\n // eslint-disable-next-line no-constant-condition\n if ((_code >= 0 && _code <= 9) || ALLOWED_KEY.includes(event.key) || IS_CTRL_A()) {\n return true;\n }\n else {\n return false;\n }\n };\n }\n async callTranslate() {\n return await this.translationService.translateAsync('@acorex:validation.messages.phone');\n }\n #countriesChanged;\n #eff;\n /** @ignore */\n _handleModelChange(e) {\n // Prevent value change if component is disabled or readonly\n if (this.disabled || this.readonly) {\n return;\n }\n if (e.isUserInteraction)\n this.commitValue(e.value, true);\n }\n internalValueChanged(value) {\n if (!value)\n return;\n const result = this.parsePhoneNumber(value);\n if (result.country) {\n this.removeValidation();\n this.selectedCountry.set(result.country);\n this.commitValue(result.nationalNumber);\n }\n }\n /** @ignore */\n handleCountryOnClosed() {\n setTimeout(() => {\n this.textbox?.focus();\n }, 300);\n }\n /** @ignore */\n #init;\n /**\n * Updates the list of countries based on included or excluded codes.\n *\n * @returns void - No return value. Updates the internal countries list.\n */\n setCountries() {\n if (this.included().length) {\n this.countries.set(COUNTRIES.filter((c) => this.included().includes(c.code)));\n }\n else if (this.excluded().length) {\n this.countries.set(COUNTRIES.filter((c) => !this.excluded().includes(c.code)));\n }\n else {\n this.countries.set(COUNTRIES);\n }\n this.flags.set(COUNTRIES_FLAG_BASE64);\n }\n handleKeyDown(e) {\n // Prevent all keyboard actions if component is disabled\n if (this.disabled) {\n e.preventDefault();\n e.stopImmediatePropagation();\n return;\n }\n // In readonly state, only allow copy operations (Ctrl+C, Ctrl+A)\n if (this.readonly) {\n const isCopyOperation = (e.ctrlKey && (e.key === 'c' || e.key === 'C')) || (e.ctrlKey && (e.key === 'a' || e.key === 'A'));\n if (!isCopyOperation) {\n e.preventDefault();\n e.stopImmediatePropagation();\n return;\n }\n }\n if (this.isValidKeyboardAction(e)) {\n this.emitOnKeydownEvent(e);\n }\n else {\n e.preventDefault();\n e.stopImmediatePropagation();\n }\n }\n parsePhoneNumber(fullNumber) {\n // 1) Normalize input\n let normalized = fullNumber.replace(/[^0-9+]/g, '');\n // convert 00... → +...\n if (normalized.startsWith('00')) {\n normalized = '+' + normalized.slice(2);\n }\n // 2) Sort countries by longest prefix first\n const sorted = [...COUNTRIES].sort((a, b) => b.iso2code.length - a.iso2code.length);\n // 3) Match the country code\n for (const country of sorted) {\n if (normalized.startsWith(country.iso2code)) {\n const countryCode = country.iso2code;\n const rawNationalNumber = normalized.slice(countryCode.length);\n const nationalNumber = this.formatNationalNumber(rawNationalNumber, country.format);\n return {\n country,\n countryCode,\n nationalNumber,\n };\n }\n }\n // 4) No match found\n return {\n country: null,\n countryCode: null,\n nationalNumber: normalized,\n };\n }\n /**\n * Formats a national phone number according to the country's format pattern.\n * The format pattern uses '0' as digit placeholders and preserves other characters (like spaces).\n *\n * @param number - The raw national number (digits only)\n * @param format - The country's phone number format pattern (e.g., '000 000 0000')\n * @returns The formatted national number with spaces according to the format\n */\n formatNationalNumber(number, format) {\n if (!format || !number) {\n return number;\n }\n let result = '';\n let numberIndex = 0;\n for (let i = 0; i < format.length && numberIndex < number.length; i++) {\n if (format[i] === '0') {\n result += number[numberIndex];\n numberIndex++;\n }\n else {\n result += format[i];\n }\n }\n // Append any remaining digits that exceed the format length\n if (numberIndex < number.length) {\n result += number.slice(numberIndex);\n }\n return result;\n }\n /** @ignore */\n _handleCountryValueChanged(event) {\n // Prevent value change if component is disabled or readonly\n if (this.disabled || this.readonly) {\n return;\n }\n //remove validation rule before add new one\n if (event.isUserInteraction) {\n this.removeValidation();\n this.selectedCountry.set(event.component.selectedItems[0]);\n }\n }\n removeValidation() {\n this.textbox.removeValidationRule({\n rule: 'regex',\n disabled: false,\n options: {\n pattern: this.selectedCountry()?.regex,\n },\n });\n this.textbox.reset();\n this.textbox.resetErrors();\n }\n get __hostName() {\n return this.name;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.16\", ngImport: i0, type: AXPhoneBoxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.16\", type: AXPhoneBoxComponent, isStandalone: true, selector: \"ax-phone-box\", inputs: { disabled: { classPropertyName: \"disabled\", publicName: \"disabled\", isSignal: false, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: \"tabIndex\", publicName: \"tabIndex\", isSignal: false, isRequired: false, transformFunction: null }, readonly: { classPropertyName: \"readonly\", publicName: \"readonly\", isSignal: false, isRequired: false, transformFunction: null }, value: { classPropertyName: \"value\", publicName: \"value\", isSignal: false, isRequired: false, transformFunction: null }, state: { classPropertyName: \"state\", publicName: \"state\", isSignal: false, isRequired: false, transformFunction: null }, name: { classPropertyName: \"name\", publicName: \"name\", isSignal: false, isRequired: false, transformFunction: null }, id: { classPropertyName: \"id\", publicName: \"id\", isSignal: false, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: \"placeholder\", publicName: \"placeholder\", isSignal: false, isRequired: false, transformFunction: null }, maxLength: { classPropertyName: \"maxLength\", publicName: \"maxLength\", isSignal: false, isRequired: false, transformFunction: null }, allowNull: { classPropertyName: \"allowNull\", publicName: \"allowNull\", isSignal: false, isRequired: false, transformFunction: null }, type: { classPropertyName: \"type\", publicName: \"type\", isSignal: false, isRequired: false, transformFunction: null }, autoComplete: { classPropertyName: \"autoComplete\", publicName: \"autoComplete\", isSignal: false, isRequired: false, transformFunction: null }, look: { classPropertyName: \"look\", publicName: \"look\", isSignal: false, isRequired: false, transformFunction: null }, classNames: { classPropertyName: \"classNames\", publicName: \"class\", isSignal: false, isRequired: false, transformFunction: null }, precode: { classPropertyName: \"precode\", publicName: \"precode\", isSignal: true, isRequired: false, transformFunction: null }, country: { classPropertyName: \"country\", publicName: \"country\", isSignal: true, isRequired: false, transformFunction: null }, included: { classPropertyName: \"included\", publicName: \"included\", isSignal: true, isRequired: false, transformFunction: null }, excluded: { classPropertyName: \"excluded\", publicName: \"excluded\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onBlur: \"onBlur\", onFocus: \"onFocus\", valueChange: \"valueChange\", stateChange: \"stateChange\", onValueChanged: \"onValueChanged\", readonlyChange: \"readonlyChange\", disabledChange: \"disabledChange\", onKeyDown: \"onKeyDown\", onKeyUp: \"onKeyUp\", onKeyPress: \"onKeyPress\", country: \"countryChange\" }, host: { attributes: { \"ngSkipHydration\": \"true\" }, properties: { \"attr.name\": \"this.__hostName\" } }, providers: [\n { provide: AXComponent, useExisting: AXPhoneBoxComponent },\n { provide: AXFocusableComponent, useExisting: AXPhoneBoxComponent },\n { provide: AXClearableComponent, useExisting: AXPhoneBoxComponent },\n { provide: AXValuableComponent, useExisting: AXPhoneBoxComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXPhoneBoxComponent),\n multi: true,\n },\n ], viewQueries: [{ propertyName: \"selectBox\", first: true, predicate: [\"s\"], descendants: true, isSignal: true }, { propertyName: \"textbox\", first: true, predicate: AXTextBoxComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: \"<ax-text-box\\n dir=\\\"ltr\\\"\\n [look]=\\\"look\\\"\\n [disabled]=\\\"disabled\\\"\\n [readonly]=\\\"readonly\\\"\\n [mask-options]=\\\"{ mask: selectedCountry()?.format }\\\"\\n [placeholder]=\\\"selectedCountry()?.format\\\"\\n [ngModel]=\\\"value\\\"\\n (onValueChanged)=\\\"_handleModelChange($event)\\\"\\n (onBlur)=\\\"emitOnBlurEvent($event.nativeEvent)\\\"\\n (onFocus)=\\\"emitOnFocusEvent($event.nativeEvent)\\\"\\n (onKeyDown)=\\\"handleKeyDown($event.nativeEvent)\\\"\\n (onKeyPress)=\\\"emitOnKeypressEvent($event.nativeEvent)\\\"\\n (onKeyUp)=\\\"emitOnKeyupEvent($event.nativeEvent)\\\"\\n>\\n <ng-content select=\\\"ax-validation-rule\\\"> </ng-content>\\n\\n @if (selectedCountry()?.regex && messageError) {\\n <ax-validation-rule\\n rule=\\\"regex\\\"\\n [options]=\\\"{\\n message: messageError,\\n pattern: selectedCountry()?.regex,\\n }\\\"\\n >\\n </ax-validation-rule>\\n }\\n\\n <ax-prefix>\\n @if (precode()) {\\n <ax-text>{{ precode() }}</ax-text>\\n } @else {\\n <ax-select-box\\n #s\\n look=\\\"blank\\\"\\n [disabled]=\\\"disabled || readonly\\\"\\n [readonly]=\\\"readonly\\\"\\n [dropdownWidth]=\\\"'320px'\\\"\\n [dataSource]=\\\"dataSource\\\"\\n [ngModel]=\\\"selectedCountry()\\\"\\n [textField]=\\\"'iso2code'\\\"\\n [multiple]=\\\"false\\\"\\n [valueField]=\\\"'code'\\\"\\n [itemTemplate]=\\\"customItemTemplate\\\"\\n [selectedTemplate]=\\\"selectedTemplate\\\"\\n (onValueChanged)=\\\"_handleCountryValueChanged($event)\\\"\\n (onClosed)=\\\"handleCountryOnClosed()\\\"\\n [tabIndex]=\\\"included().length === 1 ? '-1' : '1'\\\"\\n >\\n <ax-search-box class=\\\"ax-sm\\\" look=\\\"fill\\\">\\n <ax-clear-button></ax-clear-button>\\n </ax-search-box>\\n <ng-template #customItemTemplate let-item>\\n <div class=\\\"ax-country-item\\\">\\n <div\\n class=\\\"ax-country-flag\\\"\\n [ngStyle]=\\\"{\\n 'background-position': item.data.bkPosition?.x + ' ' + item.data.bkPosition?.y,\\n 'background-image': 'url(' + flags() + ')',\\n }\\\"\\n ></div>\\n <div>\\n <span class=\\\"ax-country-name\\\">{{ item.data.name }}</span>\\n <span class=\\\"ax-iso2code\\\">{{ item.data.iso2code }}</span>\\n </div>\\n </div>\\n </ng-template>\\n <ng-template #selectedTemplate let-item>\\n <div class=\\\"ax-selected-country\\\">\\n <span>{{ item.data.iso2code }}</span>\\n </div>\\n </ng-template>\\n <ng-template #loading></ng-template>\\n </ax-select-box>\\n }\\n </ax-prefix>\\n</ax-text-box>\\n\\n<ng-content select=\\\"ax-clear-button \\\"></ng-content>\\n<div class=\\\"ax-error-container\\\"></div>\\n\", styles: [\"ax-phone-box .ax-editor-container{--ax-comp-editor-space-start-size: 0}ax-phone-box.ax-state-disabled ax-text-box{pointer-events:auto;opacity:.6;cursor:not-allowed}ax-phone-box.ax-state-disabled ax-text-box .ax-editor,ax-phone-box.ax-state-disabled ax-text-box .ax-input{pointer-events:auto;cursor:not-allowed;-webkit-user-select:none;user-select:none}ax-phone-box.ax-state-disabled ax-select-box{pointer-events:none;opacity:.6}ax-phone-box.ax-state-disabled ax-select-box ax-dropdown-box{--ax-comp-editor-bg-color: transparent;--ax-comp-editor-border-width: 0px !important;--ax-comp-editor-border-color: transparent !important;cursor:not-allowed}ax-phone-box.ax-state-disabled ax-select-box .ax-editor-button{pointer-events:none;cursor:not-allowed}ax-phone-box.ax-state-readonly ax-text-box .ax-editor,ax-phone-box.ax-state-readonly ax-text-box .ax-input{-webkit-user-select:text;user-select:text}ax-phone-box.ax-state-readonly ax-select-box{pointer-events:none}ax-phone-box.ax-state-readonly ax-select-box ax-dropdown-box{--ax-comp-editor-bg-color: transparent;--ax-comp-editor-border-width: 0px !important;--ax-comp-editor-border-color: transparent !important;cursor:default}ax-phone-box.ax-state-readonly ax-select-box .ax-editor-button{pointer-events:none;cursor:default}ax-phone-box ax-select-box ax-dropdown-box{--ax-comp-editor-bg-color: transparent;--ax-comp-editor-border-width: 0px !important;--ax-comp-editor-border-color: transparent !important}ax-phone-box ax-select-box ax-dropdown-box.ax-editor-container{--ax-comp-editor-box-outline-width: 0;--ax-comp-editor-space-start-size: 0;--ax-comp-editor-space-end-size: 0}ax-phone-box ax-select-box ax-dropdown-box .ax-editor,ax-phone-box ax-select-box ax-dropdown-box .ax-input{--ax-comp-editor-space-start-size: 0}ax-phone-box ax-select-box ax-dropdown-box .ax-content{padding-top:0!important}.ax-country-item{padding:.75rem .5rem;cursor:pointer;display:flex;gap:.5rem;align-items:center}.ax-country-item:hover{background-color:rgba(var(--ax-sys-color-ghost-lighter-surface))}.ax-country-item .ax-country-name{font-weight:500;margin-inline-end:.5rem}.ax-country-item .ax-iso2code{opacity:.7}.ax-country-flag{width:25px!important;height:20px!important;background-repeat:no-repeat}.ax-selected-country{display:flex;gap:.5rem;align-items:center;padding-inline-start:.5rem}\\n\"], dependencies: [{ kind: \"component\", type: AXTextBoxComponent, selector: \"ax-text-box\", inputs: [\"disabled\", \"tabIndex\", \"readonly\", \"value\", \"state\", \"name\", \"id\", \"placeholder\", \"maxLength\", \"allowNull\", \"type\", \"autoComplete\", \"look\", \"mask-options\", \"class\"], outputs: [\"onBlur\", \"onFocus\", \"valueChange\", \"stateChange\", \"onValueChanged\", \"readonlyChange\", \"disabledChange\", \"onKeyDown\", \"onKeyUp\", \"onKeyPress\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"component\", type: AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"component\", type: AXSelectBoxComponent, selector: \"ax-select-box\", inputs: [\"disabled\", \"readonly\", \"tabIndex\", \"placeholder\", \"minValue\", \"maxValue\", \"value\", \"state\", \"name\", \"id\", \"type\", \"look\", \"multiple\", \"valueField\", \"textField\", \"disabledField\", \"textTemplate\", \"selectedItems\", \"isItemTruncated\", \"showItemTooltip\", \"itemHeight\", \"maxVisibleItems\", \"dataSource\", \"minRecordsForSearch\", \"caption\", \"itemTemplate\", \"selectedTemplate\", \"emptyTemplate\", \"loadingTemplate\", \"dropdownWidth\", \"searchBoxAutoFocus\"], outputs: [\"valueChange\", \"stateChange\", \"onValueChanged\", \"onBlur\", \"onFocus\", \"readonlyChange\", \"disabledChange\", \"onOpened\", \"onClosed\", \"onItemSelected\", \"onItemClick\"] }, { kind: \"component\", type: AXSearchBoxComponent, selector: \"ax-search-box\", inputs: [\"disabled\", \"readonly\", \"tabIndex\", \"placeholder\", \"value\", \"state\", \"name\", \"id\", \"look\", \"class\", \"delayTime\", \"type\", \"autoSearch\"], outputs: [\"valueChange\", \"stateChange\", \"onValueChanged\", \"onBlur\", \"onFocus\", \"readonlyChange\", \"disabledChange\", \"onKeyDown\", \"onKeyUp\", \"onKeyPress\"] }, { kind: \"component\", type: AXDecoratorClearButtonComponent, selector: \"ax-clear-button\", inputs: [\"icon\"] }, { kind: \"directive\", type: NgStyle, selector: \"[ngStyle]\", inputs: [\"ngStyle\"] }, { kind: \"ngmodule\", type: AXFormModule }, { kind: \"directive\", type: i2.AXValidationRuleDirective, selector: \"ax-validation-rule\", inputs: [\"rule\", \"options\", \"message\", \"disabled\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.16\", ngImport: i0, type: AXPhoneBoxComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-phone-box', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, inputs: [\n 'disabled',\n 'tabIndex',\n 'readonly',\n 'value',\n 'state',\n 'name',\n 'id',\n 'placeholder',\n 'maxLength',\n 'allowNull',\n 'type',\n 'autoComplete',\n 'look',\n ], outputs: [\n 'onBlur',\n 'onFocus',\n 'valueChange',\n 'stateChange',\n 'onValueChanged',\n 'readonlyChange',\n 'disabledChange',\n 'onKeyDown',\n 'onKeyUp',\n 'onKeyPress',\n ], providers: [\n { provide: AXComponent, useExisting: AXPhoneBoxComponent },\n { provide: AXFocusableComponent, useExisting: AXPhoneBoxComponent },\n { provide: AXClearableComponent, useExisting: AXPhoneBoxComponent },\n { provide: AXValuableComponent, useExisting: AXPhoneBoxComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXPhoneBoxComponent),\n multi: true,\n },\n ], host: {\n ngSkipHydration: 'true',\n }, imports: [\n AXTextBoxComponent,\n FormsModule,\n AXDecoratorGenericComponent,\n AXSelectBoxComponent,\n AXSearchBoxComponent,\n AXDecoratorClearButtonComponent,\n NgStyle,\n AXFormModule,\n ], template: \"<ax-text-box\\n dir=\\\"ltr\\\"\\n [look]=\\\"look\\\"\\n [disabled]=\\\"disabled\\\"\\n [readonly]=\\\"readonly\\\"\\n [mask-options]=\\\"{ mask: selectedCountry()?.format }\\\"\\n [placeholder]=\\\"selectedCountry()?.format\\\"\\n [ngModel]=\\\"value\\\"\\n (onValueChanged)=\\\"_handleModelChange($event)\\\"\\n (onBlur)=\\\"emitOnBlurEvent($event.nativeEvent)\\\"\\n (onFocus)=\\\"emitOnFocusEvent($event.nativeEvent)\\\"\\n (onKeyDown)=\\\"handleKeyDown($event.nativeEvent)\\\"\\n (onKeyPress)=\\\"emitOnKeypressEvent($event.nativeEvent)\\\"\\n (onKeyUp)=\\\"emitOnKeyupEvent($event.nativeEvent)\\\"\\n>\\n <ng-content select=\\\"ax-validation-rule\\\"> </ng-content>\\n\\n @if (selectedCountry()?.regex && messageError) {\\n <ax-validation-rule\\n rule=\\\"regex\\\"\\n [options]=\\\"{\\n message: messageError,\\n pattern: selectedCountry()?.regex,\\n }\\\"\\n >\\n </ax-validation-rule>\\n }\\n\\n <ax-prefix>\\n @if (precode()) {\\n <ax-text>{{ precode() }}</ax-text>\\n } @else {\\n <ax-select-box\\n #s\\n look=\\\"blank\\\"\\n [disabled]=\\\"disabled || readonly\\\"\\n [readonly]=\\\"readonly\\\"\\n [dropdownWidth]=\\\"'320px'\\\"\\n [dataSource]=\\\"dataSource\\\"\\n [ngModel]=\\\"selectedCountry()\\\"\\n [textField]=\\\"'iso2code'\\\"\\n [multiple]=\\\"false\\\"\\n [valueField]=\\\"'code'\\\"\\n [itemTemplate]=\\\"customItemTemplate\\\"\\n [selectedTemplate]=\\\"selectedTemplate\\\"\\n (onValueChanged)=\\\"_handleCountryValueChanged($event)\\\"\\n (onClosed)=\\\"handleCountryOnClosed()\\\"\\n [tabIndex]=\\\"included().length === 1 ? '-1' : '1'\\\"\\n >\\n <ax-search-box class=\\\"ax-sm\\\" look=\\\"fill\\\">\\n <ax-clear-button></ax-clear-button>\\n </ax-search-box>\\n <ng-template #customItemTemplate let-item>\\n <div class=\\\"ax-country-item\\\">\\n <div\\n class=\\\"ax-country-flag\\\"\\n [ngStyle]=\\\"{\\n 'background-position': item.data.bkPosition?.x + ' ' + item.data.bkPosition?.y,\\n 'background-image': 'url(' + flags() + ')',\\n }\\\"\\n ></div>\\n <div>\\n <span class=\\\"ax-country-name\\\">{{ item.data.name }}</span>\\n <span class=\\\"ax-iso2code\\\">{{ item.data.iso2code }}</span>\\n </div>\\n </div>\\n </ng-template>\\n <ng-template #selectedTemplate let-item>\\n <div class=\\\"ax-selected-country\\\">\\n <span>{{ item.data.iso2code }}</span>\\n </div>\\n </ng-template>\\n <ng-template #loading></ng-template>\\n </ax-select-box>\\n }\\n </ax-prefix>\\n</ax-text-box>\\n\\n<ng-content select=\\\"ax-clear-button \\\"></ng-content>\\n<div class=\\\"ax-error-container\\\"></div>\\n\", styles: [\"ax-phone-box .ax-editor-container{--ax-comp-editor-space-start-size: 0}ax-phone-box.ax-state-disabled ax-text-box{pointer-events:auto;opacity:.6;cursor:not-allowed}ax-phone-box.ax-state-disabled ax-text-box .ax-editor,ax-phone-box.ax-state-disabled ax-text-box .ax-input{pointer-events:auto;cursor:not-allowed;-webkit-user-select:none;user-select:none}ax-phone-box.ax-state-disabled ax-select-box{pointer-events:none;opacity:.6}ax-phone-box.ax-state-disabled ax-select-box ax-dropdown-box{--ax-comp-editor-bg-color: transparent;--ax-comp-editor-border-width: 0px !important;--ax-comp-editor-border-color: transparent !important;cursor:not-allowed}ax-phone-box.ax-state-disabled ax-select-box .ax-editor-button{pointer-events:none;cursor:not-allowed}ax-phone-box.ax-state-readonly ax-text-box .ax-editor,ax-phone-box.ax-state-readonly ax-text-box .ax-input{-webkit-user-select:text;user-select:text}ax-phone-box.ax-state-readonly ax-select-box{pointer-events:none}ax-phone-box.ax-state-readonly ax-select-box ax-dropdown-box{--ax-comp-editor-bg-color: transparent;--ax-comp-editor-border-width: 0px !important;--ax-comp-editor-border-color: transparent !important;cursor:default}ax-phone-box.ax-state-readonly ax-select-box .ax-editor-button{pointer-events:none;cursor:default}ax-phone-box ax-select-box ax-dropdown-box{--ax-comp-editor-bg-color: transparent;--ax-comp-editor-border-width: 0px !important;--ax-comp-editor-border-color: transparent !important}ax-phone-box ax-select-box ax-dropdown-box.ax-editor-container{--ax-comp-editor-box-outline-width: 0;--ax-comp-editor-space-start-size: 0;--ax-comp-editor-space-end-size: 0}ax-phone-box ax-select-box ax-dropdown-box .ax-editor,ax-phone-box ax-select-box ax-dropdown-box .ax-input{--ax-comp-editor-space-start-size: 0}ax-phone-box ax-select-box ax-dropdown-box .ax-content{padding-top:0!important}.ax-country-item{padding:.75rem .5rem;cursor:pointer;display:flex;gap:.5rem;align-items:center}.ax-country-item:hover{background-color:rgba(var(--ax-sys-color-ghost-lighter-surface))}.ax-country-item .ax-country-name{font-weight:500;margin-inline-end:.5rem}.ax-country-item .ax-iso2code{opacity:.7}.ax-country-flag{width:25px!important;height:20px!important;background-repeat:no-repeat}.ax-selected-country{display:flex;gap:.5rem;align-items:center;padding-inline-start:.5rem}\\n\"] }]\n }], propDecorators: { textbox: [{\n type: ViewChild,\n args: [AXTextBoxComponent, { static: true }]\n }], classNames: [{\n type: Input,\n args: ['class']\n }], precode: [{ type: i0.Input, args: [{ isSignal: true, alias: \"precode\", required: false }] }], country: [{ type: i0.Input, args: [{ isSignal: true, alias: \"country\", required: false }] }, { type: i0.Output, args: [\"countryChange\"] }], included: [{ type: i0.Input, args: [{ isSignal: true, alias: \"included\", required: false }] }], excluded: [{ type: i0.Input, args: [{ isSignal: true, alias: \"excluded\", required: false }] }], selectBox: [{ type: i0.ViewChild, args: ['s', { isSignal: true }] }], __hostName: [{\n type: HostBinding,\n args: ['attr.name']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvcGhvbmUtYm94L3NyYy9saWIvcGhvbmUtYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvcGhvbmUtYm94L3NyYy9saWIvcGhvbmUtYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsV0FBVyxFQUNYLFlBQVksRUFDWixvQkFBb0IsRUFDcEIsbUJBQW1CLEVBRW5CLHlCQUF5QixFQUN6QixlQUFlLEdBQ2hCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLCtCQUErQixFQUFFLDJCQUEyQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDN0csT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQWUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsV0FBVyxFQUNYLEtBQUssRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLGVBQWUsRUFDZixNQUFNLEVBQ04sVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsS0FBSyxFQUNMLE1BQU0s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QkFDUCxXQUNRO3dCQUNQLFFBQVE7d0JBQ1IsU0FBUzt3QkFDVCxhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLGdCQUFnQjt3QkFDaEIsV0FBVzt3QkFDWCxTQUFTO3dCQUNULFlBQVk7cUJBQ2IsYUFDVTt3QkFDVCxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxxQkFBcUIsRUFBRTt3QkFDMUQsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsV0FBVyxxQkFBcUIsRUFBRTt3QkFDbkUsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsV0FBVyxxQkFBcUIsRUFBRTt3QkFDbkUsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxxQkFBcUIsRUFBRTt3QkFDbEU7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsb0JBQW9CLENBQUM7NEJBQ2xELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGLFFBQ0s7d0JBQ0osZUFBZSxFQUFFLE1BQU07cUJBQ3hCLFdBQ1E7d0JBQ1Asa0JBQWtCO3dCQUNsQixXQUFXO3dCQUNYLDJCQUEyQjt3QkFDM0Isb0JBQW9CO3dCQUNwQixvQkFBb0I7d0JBQ3BCLCtCQUErQjt3QkFDL0IsT0FBTzt3QkFDUCxZQUFZO3FCQUNiOztzQkFPQSxTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTs7c0JBZ0I5QyxLQUFLO3VCQUFDLE9BQU87bWVBdUJzQyxHQUFHO3NCQWtQdEQsV0FBVzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQVhDbGVhcmFibGVDb21wb25lbnQsXG4gIEFYQ29tcG9uZW50LFxuICBBWERhdGFTb3VyY2UsXG4gIEFYRm9jdXNhYmxlQ29tcG9uZW50LFxuICBBWFZhbHVhYmxlQ29tcG9uZW50LFxuICBBWFZhbHVlQ2hhbmdlZEV2ZW50LFxuICBNWElucHV0QmFzZVZhbHVlQ29tcG9uZW50LFxuICBNWExvb2tDb21wb25lbnQsXG59IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBBWERlY29yYXRvckNsZWFyQnV0dG9uQ29tcG9uZW50LCBBWERlY29yYXRvckdlbmVyaWNDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWEZvcm1Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZm9ybSc7XG5pbXBvcnQgeyBBWFNlYXJjaEJveENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9zZWFyY2gtYm94JztcbmltcG9ydCB7IEFYU2VsZWN0Qm94Q29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3NlbGVjdC1ib3gnO1xuaW1wb3J0IHsgQVhUZXh0Qm94Q29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3RleHQtYm94JztcbmltcG9ydCB7IENPVU5UUklFUywgQ09VTlRSSUVTX0ZMQUdfQkFTRTY0LCBDb3VudHJ5SXRlbSB9IGZyb20gJ0BhY29yZXgvY29yZS9jb25zdGFudHMnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgTmdTdHlsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGFmdGVyTmV4dFJlbmRlcixcbiAgZWZmZWN0LFxuICBmb3J3YXJkUmVmLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBtb2RlbCxcbiAgc2lnbmFsLFxuICB2aWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IGNsYXNzZXMgfSBmcm9tICdwb2x5dHlwZSc7XG5cbi8qKlxuICogQGNhdGVnb3J5XG4gKiBBIGNvbXBvbmVudCB0aGF0IGhhbmRsZXMgcGhvbmUgbnVtYmVyIGlucHV0IHdpdGggdmFyaW91cyBjb25maWd1cmF0aW9ucy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtcGhvbmUtYm94JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Bob25lLWJveC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Bob25lLWJveC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW5wdXRzOiBbXG4gICAgJ2Rpc2FibGVkJyxcbiAgICAndGFiSW5kZXgnLFxuICAgICdyZWFkb25seScsXG4gICAgJ3ZhbHVlJyxcbiAgICAnc3RhdGUnLFxuICAgICduYW1lJyxcbiAgICAnaWQnLFxuICAgICdwbGFjZWhvbGRlcicsXG4gICAgJ21heExlbmd0aCcsXG4gICAgJ2FsbG93TnVsbCcsXG4gICAgJ3R5cGUnLFxuICAgICdhdXRvQ29tcGxldGUnLFxuICAgICdsb29rJyxcbiAgXSxcbiAgb3V0cHV0czogW1xuICAgICdvbkJsdXInLFxuICAgICdvbkZvY3VzJyxcbiAgICAndmFsdWVDaGFuZ2UnLFxuICAgICdzdGF0ZUNoYW5nZScsXG4gICAgJ29uVmFsdWVDaGFuZ2VkJyxcbiAgICAncmVhZG9ubHlDaGFuZ2UnLFxuICAgICdkaXNhYmxlZENoYW5nZScsXG4gICAgJ29uS2V5RG93bicsXG4gICAgJ29uS2V5VXAnLFxuICAgICdvbktleVByZXNzJyxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBBWENvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYUGhvbmVCb3hDb21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYRm9jdXNhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhQaG9uZUJveENvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhDbGVhcmFibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFBob25lQm94Q29tcG9uZW50IH0sXG4gICAgeyBwcm92aWRlOiBBWFZhbHVhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhQaG9uZUJveENvbXBvbmVudCB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQVhQaG9uZUJveENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxuICBob3N0OiB7XG4gICAgbmdTa2lwSHlkcmF0aW9uOiAndHJ1ZScsXG4gIH0sXG4gIGltcG9ydHM6IFtcbiAgICBBWFRleHRCb3hDb21wb25lbnQsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgQVhEZWNvcmF0b3JHZW5lcmljQ29tcG9uZW50LFxuICAgIEFYU2VsZWN0Qm94Q29tcG9uZW50LFxuICAgIEFYU2VhcmNoQm94Q29tcG9uZW50LFxuICAgIEFYRGVjb3JhdG9yQ2xlYXJCdXR0b25Db21wb25lbnQsXG4gICAgTmdTdHlsZSxcbiAgICBBWEZvcm1Nb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYUGhvbmVCb3hDb21wb25lbnQgZXh0ZW5kcyBjbGFzc2VzKE1YSW5wdXRCYXNlVmFsdWVDb21wb25lbnQ8c3RyaW5nPiwgTVhMb29rQ29tcG9uZW50KSB7XG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBfdXBkYXRlT246ICdjaGFuZ2UnIHwgJ2JsdXInIHwgJ3N1Ym1pdCcgPSAnY2hhbmdlJztcblxuICAvKiogQGlnbm9yZSAqL1xuICBAVmlld0NoaWxkKEFYVGV4dEJveENvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHJpdmF0ZSB0ZXh0Ym94OiBBWFRleHRCb3hDb21wb25lbnQ7XG5cbiAgcHJvdGVjdGVkIGZsYWdzID0gc2lnbmFsKENPVU5UUklFU19GTEFHX0JBU0U2NCk7XG5cbiAgcHJpdmF0ZSB0cmFuc2xhdGlvblNlcnZpY2U6IEFYVHJhbnNsYXRpb25TZXJ2aWNlID0gaW5qZWN0KEFYVHJhbnNsYXRpb25TZXJ2aWNlKTtcblxuICBwcm90ZWN0ZWQgbWVzc2FnZUVycm9yID0gdGhpcy5jYWxsVHJhbnNsYXRlKCk7XG5cbiAgYXN5bmMgY2FsbFRyYW5zbGF0ZSgpIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlQXN5bmMoJ0BhY29yZXg6dmFsaWRhdGlvbi5tZXNzYWdlcy5waG9uZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIENTUyBjbGFzc2VzIHRvIGFwcGx5IHRvIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICBASW5wdXQoJ2NsYXNzJylcbiAgY2xhc3NOYW1lczogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBzdGF0aWMgcHJlY29kZS5cbiAgICovXG4gIHByZWNvZGUgPSBpbnB1dCgpO1xuXG4gIC8qKlxuICAgKiBUaGUgZGVmYXVsdCBjb3VudHJ5IHZhbHVlIGZvciB0aGUgY29tcG9uZW50LlxuICAgKi9cbiAgY291bnRyeSA9IG1vZGVsPHN0cmluZz4oJycpO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIGluY2x1ZGVkIHZhbHVlcyBmb3IgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIGluY2x1ZGVkID0gaW5wdXQ8c3RyaW5nW10+KFtdKTtcblxuICAvKipcbiAgICogTGlzdCBvZiBleGNsdWRlZCB2YWx1ZXMgZm9yIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICBleGNsdWRlZCA9IGlucHV0PHN0cmluZ1tdPihbXSk7XG5cbiAgcHJpdmF0ZSBzZWxlY3RCb3ggPSB2aWV3Q2hpbGQ8QVhTZWxlY3RCb3hDb21wb25lbnQ+KCdzJyk7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIGNvdW50cmllcyA9IHNpZ25hbDxDb3VudHJ5SXRlbVtdPihbXSk7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIHNlbGVjdGVkQ291bnRyeSA9IHNpZ25hbDxDb3VudHJ5SXRlbT4obnVsbCk7XG5cbiAgI2NvdW50cmllc0NoYW5nZWQgPSBlZmZlY3QoKCkgPT4ge1xuICAgIHRoaXMuaW5jbHVkZWQoKTtcbiAgICB0aGlzLmV4Y2x1ZGVkKCk7XG4gICAgdGhpcy5zZXRDb3VudHJpZXMoKTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgdGhpcy5zZWxlY3RCb3goKS5yZWZyZXNoKCk7XG4gIH0pO1xuXG4gICNlZmYgPSBhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuY291bnRyeSgpICYmICF0aGlzLnZhbHVlKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5LnNldCh0aGlzLmNvdW50cmllcygpLmZpbmQoKGMpID0+IGMuY29kZSA9PT0gdGhpcy5jb3VudHJ5KCkpKTtcbiAgICAgIH0gZWxzZSBpZiAoIXRoaXMuY291bnRyeSgpICYmICF0aGlzLnZhbHVlKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5LnNldCh0aGlzLmNvdW50cmllcygpWzBdKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIF9oYW5kbGVNb2RlbENoYW5nZShlOiBBWFZhbHVlQ2hhbmdlZEV2ZW50PGFueT4pIHtcbiAgICAvLyBQcmV2ZW50IHZhbHVlIGNoYW5nZSBpZiBjb21wb25lbnQgaXMgZGlzYWJsZWQgb3IgcmVhZG9ubHlcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLnJlYWRvbmx5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChlLmlzVXNlckludGVyYWN0aW9uKSB0aGlzLmNvbW1pdFZhbHVlKGUudmFsdWUsIHRydWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGludGVybmFsVmFsdWVDaGFuZ2VkKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAoIXZhbHVlKSByZXR1cm47XG4gICAgY29uc3QgcmVzdWx0ID0gdGhpcy5wYXJzZVBob25lTnVtYmVyKHZhbHVlKTtcbiAgICBpZiAocmVzdWx0LmNvdW50cnkpIHtcbiAgICAgIHRoaXMucmVtb3ZlVmFsaWRhdGlvbigpO1xuICAgICAgdGhpcy5zZWxlY3RlZENvdW50cnkuc2V0KHJlc3VsdC5jb3VudHJ5KTtcbiAgICAgIHRoaXMuY29tbWl0VmFsdWUocmVzdWx0Lm5hdGlvbmFsTnVtYmVyKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgZGF0YVNvdXJjZSA9IG5ldyBBWERhdGFTb3VyY2U8Q291bnRyeUl0ZW0+KHtcbiAgICBwYWdlU2l6ZTogMTAsXG4gICAgbG9hZDogKGUpID0+IHtcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgICBjb25zdCBsaXN0ID0gdGhpcy5jb3VudHJpZXMoKTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gZS5maWx0ZXJcbiAgICAgICAgICA/IGZpbHRlcihcbiAgICAgICAgICAgICAgbGlzdCxcbiAgICAgICAgICAgICAgKGMpID0+XG4gICAgICAgICAgICAgICAgYy5uYW1lLnRvVXBwZXJDYXNlKCkuaW5jbHVkZXMoKGUuZmlsdGVyLnZhbHVlIGFzIHN0cmluZykudG9VcHBlckNhc2UoKSkgfHxcbiAgICAgICAgICAgICAgICBjLmlzbzJjb2RlLnRvVXBwZXJDYXNlKCkuaW5jbHVkZXMoKGUuZmlsdGVyLnZhbHVlIGFzIHN0cmluZykudG9VcHBlckNhc2UoKSkgfHxcbiAgICAgICAgICAgICAgICBjLmNvZGUudG9VcHBlckNhc2UoKS5pbmNsdWRlcygoZS5maWx0ZXIudmFsdWUgYXMgc3RyaW5nKS50b1VwcGVyQ2FzZSgpKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICA6IGxpc3Q7XG4gICAgICAgIHJlc29sdmUoe1xuICAgICAgICAgIGl0ZW1zOiByZXN1bHQuc2xpY2UoZS5za2lwLCBlLnNraXAgKyBlLnRha2UpLFxuICAgICAgICAgIHRvdGFsOiByZXN1bHQubGVuZ3RoLFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0sXG4gIH0pO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBoYW5kbGVDb3VudHJ5T25DbG9zZWQoKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnRleHRib3g/LmZvY3VzKCk7XG4gICAgfSwgMzAwKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gICNpbml0ID0gYWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcbiAgICB0aGlzLnNldENvdW50cmllcygpO1xuICB9KTtcblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyBpZiB0aGUga2V5Ym9hcmQgZXZlbnQgaXMgYSB2YWxpZCBhY3Rpb24gYmFzZWQgb24gYWxsb3dlZCBrZXlzIGFuZCBrZXkgY29kZXMuXG4gICAqXG4gICAqIEBwYXJhbSBldmVudCAtIFRoZSBrZXlib2FyZCBldmVudCB0byB2YWxpZGF0ZVxuICAgKiBAcmV0dXJucyBib29sZWFuIC0gVHJ1ZSBpZiB0aGUga2V5IGFjdGlvbiBpcyB2YWxpZCwgZmFsc2Ugb3RoZXJ3aXNlXG4gICAqL1xuICBpc1ZhbGlkS2V5Ym9hcmRBY3Rpb24gPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICBjb25zdCBfY29kZSA9IHBhcnNlSW50KGV2ZW50LmtleSk7XG5cbiAgICBjb25zdCBBTExPV0VEX0tFWSA9IFsnQmFja3NwYWNlJywgJ0Fycm93VXAnLCAnQXJyb3dEb3duJywgJ0Fycm93UmlnaHQnLCAnQXJyb3dMZWZ0JywgJ1RhYiddO1xuXG4gICAgY29uc3QgSVNfQ1RSTF9BID0gKCkgPT4gKGV2ZW50LmN0cmxLZXkgJiYgZXZlbnQua2V5ID09PSAnYScpIHx8IChldmVudC5jdHJsS2V5ICYmIGV2ZW50LmtleSA9PT0gJ0EnKTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc3RhbnQtY29uZGl0aW9uXG4gICAgaWYgKChfY29kZSA+PSAwICYmIF9jb2RlIDw9IDkpIHx8IEFMTE9XRURfS0VZLmluY2x1ZGVzKGV2ZW50LmtleSkgfHwgSVNfQ1RSTF9BKCkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9O1xuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBsaXN0IG9mIGNvdW50cmllcyBiYXNlZCBvbiBpbmNsdWRlZCBvciBleGNsdWRlZCBjb2Rlcy5cbiAgICpcbiAgICogQHJldHVybnMgdm9pZCAtIE5vIHJldHVybiB2YWx1ZS4gVXBkYXRlcyB0aGUgaW50ZXJuYWwgY291bnRyaWVzIGxpc3QuXG4gICAqL1xuICBzZXRDb3VudHJpZXMoKSB7XG4gICAgaWYgKHRoaXMuaW5jbHVkZWQoKS5sZW5ndGgpIHtcbiAgICAgIHRoaXMuY291bnRyaWVzLnNldChDT1VOVFJJRVMuZmlsdGVyKChjKSA9PiB0aGlzLmluY2x1ZGVkKCkuaW5jbHVkZXMoYy5jb2RlKSkpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5leGNsdWRlZCgpLmxlbmd0aCkge1xuICAgICAgdGhpcy5jb3VudHJpZXMuc2V0KENPVU5UUklFUy5maWx0ZXIoKGMpID0+ICF0aGlzLmV4Y2x1ZGVkKCkuaW5jbHVkZXMoYy5jb2RlKSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvdW50cmllcy5zZXQoQ09VTlRSSUVTKTtcbiAgICB9XG4gICAgdGhpcy5mbGFncy5zZXQoQ09VTlRSSUVTX0ZMQUdfQkFTRTY0KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVLZXlEb3duKGU6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAvLyBQcmV2ZW50IGFsbCBrZXlib2FyZCBhY3Rpb25zIGlmIGNvbXBvbmVudCBpcyBkaXNhYmxlZFxuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIEluIHJlYWRvbmx5IHN0YXRlLCBvbmx5IGFsbG93IGNvcHkgb3BlcmF0aW9ucyAoQ3RybCtDLCBDdHJsK0EpXG4gICAgaWYgKHRoaXMucmVhZG9ubHkpIHtcbiAgICAgIGNvbnN0IGlzQ29weU9wZXJhdGlvbiA9XG4gICAgICAgIChlLmN0cmxLZXkgJiYgKGUua2V5ID09PSAnYycgfHwgZS5rZXkgPT09ICdDJykpIHx8IChlLmN0cmxLZXkgJiYgKGUua2V5ID09PSAnYScgfHwgZS5rZXkgPT09ICdBJykpO1xuXG4gICAgICBpZiAoIWlzQ29weU9wZXJhdGlvbikge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc1ZhbGlkS2V5Ym9hcmRBY3Rpb24oZSkpIHtcbiAgICAgIHRoaXMuZW1pdE9uS2V5ZG93bkV2ZW50KGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VQaG9uZU51bWJlcihmdWxsTnVtYmVyOiBzdHJpbmcpOiB7XG4gICAgY291bnRyeTogQ291bnRyeUl0ZW0gfCBudWxsO1xuICAgIGNvdW50cnlDb2RlOiBzdHJpbmcgfCBudWxsO1xuICAgIG5hdGlvbmFsTnVtYmVyOiBzdHJpbmc7XG4gIH0ge1xuICAgIC8vIDEpIE5vcm1hbGl6ZSBpbnB1dFxuICAgIGxldCBub3JtYWxpemVkID0gZnVsbE51bWJlci5yZXBsYWNlKC9bXjAtOStdL2csICcnKTtcblxuICAgIC8vIGNvbnZlcnQgMDAuLi4g4oaSICsuLi5cbiAgICBpZiAobm9ybWFsaXplZC5zdGFydHNXaXRoKCcwMCcpKSB7XG4gICAgICBub3JtYWxpemVkID0gJysnICsgbm9ybWFsaXplZC5zbGljZSgyKTtcbiAgICB9XG5cbiAgICAvLyAyKSBTb3J0IGNvdW50cmllcyBieSBsb25nZXN0IHByZWZpeCBmaXJzdFxuICAgIGNvbnN0IHNvcnRlZCA9IFsuLi5DT1VOVFJJRVNdLnNvcnQoKGEsIGIpID0+IGIuaXNvMmNvZGUubGVuZ3RoIC0gYS5pc28yY29kZS5sZW5ndGgpO1xuXG4gICAgLy8gMykgTWF0Y2ggdGhlIGNvdW50cnkgY29kZVxuICAgIGZvciAoY29uc3QgY291bnRyeSBvZiBzb3J0ZWQpIHtcbiAgICAgIGlmIChub3JtYWxpemVkLnN0YXJ0c1dpdGgoY291bnRyeS5pc28yY29kZSkpIHtcbiAgICAgICAgY29uc3QgY291bnRyeUNvZGUgPSBjb3VudHJ5LmlzbzJjb2RlO1xuICAgICAgICBjb25zdCByYXdOYXRpb25hbE51bWJlciA9IG5vcm1hbGl6ZWQuc2xpY2UoY291bnRyeUNvZGUubGVuZ3RoKTtcbiAgICAgICAgY29uc3QgbmF0aW9uYWxOdW1iZXIgPSB0aGlzLmZvcm1hdE5hdGlvbmFsTnVtYmVyKHJhd05hdGlvbmFsTnVtYmVyLCBjb3VudHJ5LmZvcm1hdCk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb3VudHJ5LFxuICAgICAgICAgIGNvdW50cnlDb2RlLFxuICAgICAgICAgIG5hdGlvbmFsTnVtYmVyLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIDQpIE5vIG1hdGNoIGZvdW5kXG4gICAgcmV0dXJuIHtcbiAgICAgIGNvdW50cnk6IG51bGwsXG4gICAgICBjb3VudHJ5Q29kZTogbnVsbCxcbiAgICAgIG5hdGlvbmFsTnVtYmVyOiBub3JtYWxpemVkLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogRm9ybWF0cyBhIG5hdGlvbmFsIHBob25lIG51bWJlciBhY2NvcmRpbmcgdG8gdGhlIGNvdW50cnkncyBmb3JtYXQgcGF0dGVybi5cbiAgICogVGhlIGZvcm1hdCBwYXR0ZXJuIHVzZXMgJzAnIGFzIGRpZ2l0IHBsYWNlaG9sZGVycyBhbmQgcHJlc2VydmVzIG90aGVyIGNoYXJhY3RlcnMgKGxpa2Ugc3BhY2VzKS5cbiAgICpcbiAgICogQHBhcmFtIG51bWJlciAtIFRoZSByYXcgbmF0aW9uYWwgbnVtYmVyIChkaWdpdHMgb25seSlcbiAgICogQHBhcmFtIGZvcm1hdCAtIFRoZSBjb3VudHJ5J3MgcGhvbmUgbnVtYmVyIGZvcm1hdCBwYXR0ZXJuIChlLmcuLCAnMDAwIDAwMCAwMDAwJylcbiAgICogQHJldHVybnMgVGhlIGZvcm1hdHRlZCBuYXRpb25hbCBudW1iZXIgd2l0aCBzcGFjZXMgYWNjb3JkaW5nIHRvIHRoZSBmb3JtYXRcbiAgICovXG4gIHByaXZhdGUgZm9ybWF0TmF0aW9uYWxOdW1iZXIobnVtYmVyOiBzdHJpbmcsIGZvcm1hdDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIWZvcm1hdCB8fCAhbnVtYmVyKSB7XG4gICAgICByZXR1cm4gbnVtYmVyO1xuICAgIH1cblxuICAgIGxldCByZXN1bHQgPSAnJztcbiAgICBsZXQgbnVtYmVySW5kZXggPSAwO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmb3JtYXQubGVuZ3RoICYmIG51bWJlckluZGV4IDwgbnVtYmVyLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoZm9ybWF0W2ldID09PSAnMCcpIHtcbiAgICAgICAgcmVzdWx0ICs9IG51bWJlcltudW1iZXJJbmRleF07XG4gICAgICAgIG51bWJlckluZGV4Kys7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHQgKz0gZm9ybWF0W2ldO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFwcGVuZCBhbnkgcmVtYWluaW5nIGRpZ2l0cyB0aGF0IGV4Y2VlZCB0aGUgZm9ybWF0IGxlbmd0aFxuICAgIGlmIChudW1iZXJJbmRleCA8IG51bWJlci5sZW5ndGgpIHtcbiAgICAgIHJlc3VsdCArPSBudW1iZXIuc2xpY2UobnVtYmVySW5kZXgpO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBfaGFuZGxlQ291bnRyeVZhbHVlQ2hhbmdlZChldmVudDogQVhWYWx1ZUNoYW5nZWRFdmVudCkge1xuICAgIC8vIFByZXZlbnQgdmFsdWUgY2hhbmdlIGlmIGNvbXBvbmVudCBpcyBkaXNhYmxlZCBvciByZWFkb25seVxuICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMucmVhZG9ubHkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvL3JlbW92ZSB2YWxpZGF0aW9uIHJ1bGUgYmVmb3JlIGFkZCBuZXcgb25lXG4gICAgaWYgKGV2ZW50LmlzVXNlckludGVyYWN0aW9uKSB7XG4gICAgICB0aGlzLnJlbW92ZVZhbGlkYXRpb24oKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5LnNldChldmVudC5jb21wb25lbnQuc2VsZWN0ZWRJdGVtc1swXSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVWYWxpZGF0aW9uKCkge1xuICAgIHRoaXMudGV4dGJveC5yZW1vdmVWYWxpZGF0aW9uUnVsZSh7XG4gICAgICBydWxlOiAncmVnZXgnLFxuICAgICAgZGlzYWJsZWQ6IGZhbHNlLFxuICAgICAgb3B0aW9uczoge1xuICAgICAgICBwYXR0ZXJuOiB0aGlzLnNlbGVjdGVkQ291bnRyeSgpPy5yZWdleCxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgdGhpcy50ZXh0Ym94LnJlc2V0KCk7XG4gICAgdGhpcy50ZXh0Ym94LnJlc2V0RXJyb3JzKCk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2F0dHIubmFtZScpXG4gIHByaXZhdGUgZ2V0IF9faG9zdE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lO1xuICB9XG59XG4iLCI8YXgtdGV4dC1ib3hcbiAgZGlyPVwibHRyXCJcbiAgW2xvb2tdPVwibG9va1wiXG4gIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gIFttYXNrLW9wdGlvbnNdPVwieyBtYXNrOiBzZWxlY3RlZENvdW50cnkoKT8uZm9ybWF0IH1cIlxuICBbcGxhY2Vob2xkZXJdPVwic2VsZWN0ZWRDb3VudHJ5KCk/LmZvcm1hdFwiXG4gIFtuZ01vZGVsXT1cInZhbHVlXCJcbiAgKG9uVmFsdWVDaGFuZ2VkKT1cIl9oYW5kbGVNb2RlbENoYW5nZSgkZXZlbnQpXCJcbiAgKG9uQmx1cik9XCJlbWl0T25CbHVyRXZlbnQoJGV2ZW50Lm5hdGl2ZUV2ZW50KVwiXG4gIChvbkZvY3VzKT1cImVtaXRPbkZvY3VzRXZlbnQoJGV2ZW50Lm5hdGl2ZUV2ZW50KVwiXG4gIChvbktleURvd24pPVwiaGFuZGxlS2V5RG93bigkZXZlbnQubmF0aXZlRXZlbnQpXCJcbiAgKG9uS2V5UHJlc3MpPVwiZW1pdE9uS2V5cHJlc3NFdmVudCgkZXZlbnQubmF0aXZlRXZlbnQpXCJcbiAgKG9uS2V5VXApPVwiZW1pdE9uS2V5dXBFdmVudCgkZXZlbnQubmF0aXZlRXZlbnQpXCJcbj5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtdmFsaWRhdGlvbi1ydWxlXCI+IDwvbmctY29udGVudD5cblxuICBAaWYgKHNlbGVjdGVkQ291bnRyeSgpPy5yZWdleCAmJiBtZXNzYWdlRXJyb3IpIHtcbiAgICA8YXgtdmFsaWRhdGlvbi1ydWxlXG4gICAgICBydWxlPVwicmVnZXhcIlxuICAgICAgW29wdGlvbnNdPVwie1xuICAgICAgICBtZXNzYWdlOiBtZXNzYWdlRXJyb3IsXG4gICAgICAgIHBhdHRlcm46IHNlbGVjdGVkQ291bnRyeSgpPy5yZWdleCxcbiAgICAgIH1cIlxuICAgID5cbiAgICA8L2F4LXZhbGlkYXRpb24tcnVsZT5cbiAgfVxuXG4gIDxheC1wcmVmaXg+XG4gICAgQGlmIChwcmVjb2RlKCkpIHtcbiAgICAgIDxheC10ZXh0Pnt7IHByZWNvZGUoKSB9fTwvYXgtdGV4dD5cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxheC1zZWxlY3QtYm94XG4gICAgICAgICNzXG4gICAgICAgIGxvb2s9XCJibGFua1wiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCByZWFkb25seVwiXG4gICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICAgIFtkcm9wZG93bldpZHRoXT1cIiczMjBweCdcIlxuICAgICAgICBbZGF0YVNvdXJjZV09XCJkYXRhU291cmNlXCJcbiAgICAgICAgW25nTW9kZWxdPVwic2VsZWN0ZWRDb3VudHJ5KClcIlxuICAgICAgICBbdGV4dEZpZWxkXT1cIidpc28yY29kZSdcIlxuICAgICAgICBbbXVsdGlwbGVdPVwiZmFsc2VcIlxuICAgICAgICBbdmFsdWVGaWVsZF09XCInY29kZSdcIlxuICAgICAgICBbaXRlbVRlbXBsYXRlXT1cImN1c3RvbUl0ZW1UZW1wbGF0ZVwiXG4gICAgICAgIFtzZWxlY3RlZFRlbXBsYXRlXT1cInNlbGVjdGVkVGVtcGxhdGVcIlxuICAgICAgICAob25WYWx1ZUNoYW5nZWQpPVwiX2hhbmRsZUNvdW50cnlWYWx1ZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgIChvbkNsb3NlZCk9XCJoYW5kbGVDb3VudHJ5T25DbG9zZWQoKVwiXG4gICAgICAgIFt0YWJJbmRleF09XCJpbmNsdWRlZCgpLmxlbmd0aCA9PT0gMSA/ICctMScgOiAnMSdcIlxuICAgICAgPlxuICAgICAgICA8YXgtc2VhcmNoLWJveCBjbGFzcz1cImF4LXNtXCIgbG9vaz1cImZpbGxcIj5cbiAgICAgICAgICA8YXgtY2xlYXItYnV0dG9uPjwvYXgtY2xlYXItYnV0dG9uPlxuICAgICAgICA8L2F4LXNlYXJjaC1ib3g+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjY3VzdG9tSXRlbVRlbXBsYXRlIGxldC1pdGVtPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1jb3VudHJ5LWl0ZW1cIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJheC1jb3VudHJ5LWZsYWdcIlxuICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgICAgICAgJ2JhY2tncm91bmQtcG9zaXRpb24nOiBpdGVtLmRhdGEuYmtQb3NpdGlvbj8ueCArICcgJyArIGl0ZW0uZGF0YS5ia1Bvc2l0aW9uPy55LFxuICAgICAgICAgICAgICAgICdiYWNrZ3JvdW5kLWltYWdlJzogJ3VybCgnICsgZmxhZ3MoKSArICcpJyxcbiAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF4LWNvdW50cnktbmFtZVwiPnt7IGl0ZW0uZGF0YS5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF4LWlzbzJjb2RlXCI+e3sgaXRlbS5kYXRhLmlzbzJjb2RlIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjc2VsZWN0ZWRUZW1wbGF0ZSBsZXQtaXRlbT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtc2VsZWN0ZWQtY291bnRyeVwiPlxuICAgICAgICAgICAgPHNwYW4+e3sgaXRlbS5kYXRhLmlzbzJjb2RlIH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2xvYWRpbmc+PC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvYXgtc2VsZWN0LWJveD5cbiAgICB9XG4gIDwvYXgtcHJlZml4PlxuPC9heC10ZXh0LWJveD5cblxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtY2xlYXItYnV0dG9uIFwiPjwvbmctY29udGVudD5cbjxkaXYgY2xhc3M9XCJheC1lcnJvci1jb250YWluZXJcIj48L2Rpdj5cbiJdfQ==","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXSearchBoxModule } from '@acorex/components/search-box';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { IMaskModule } from 'angular-imask';\nimport { AXPhoneBoxComponent } from './phone-box.component';\nimport * as i0 from \"@angular/core\";\nconst COMPONENT = [AXPhoneBoxComponent];\nconst MODULES = [\n CommonModule,\n FormsModule,\n IMaskModule,\n AXSelectBoxModule,\n AXSearchBoxModule,\n AXDecoratorModule,\n AXButtonModule,\n AXTextBoxModule,\n];\nexport class AXPhoneBoxModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.16\", ngImport: i0, type: AXPhoneBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.16\", ngImport: i0, type: AXPhoneBoxModule, imports: [CommonModule,\n FormsModule,\n IMaskModule,\n AXSelectBoxModule,\n AXSearchBoxModule,\n AXDecoratorModule,\n AXButtonModule,\n AXTextBoxModule, AXPhoneBoxComponent], exports: [AXPhoneBoxComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.16\", ngImport: i0, type: AXPhoneBoxModule, imports: [MODULES, COMPONENT] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.16\", ngImport: i0, type: AXPhoneBoxModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtYm94Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvcGhvbmUtYm94L3NyYy9saWIvcGhvbmUtYm94Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQUU1RCxNQUFNLFNBQVMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUM7QUFDeEMsTUFBTSxPQUFPLEdBQUc7SUFDZCxZQUFZO0lBQ1osV0FBVztJQUNYLFdBQVc7SUFDWCxpQkFBaUI7SUFDakIsaUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUNqQixjQUFjO0lBQ2QsZUFBZTtDQUNoQixDQUFDO0FBT0YsTUFBTSxPQUFPLGdCQUFnQjsrR0FBaEIsZ0JBQWdCO2dIQUFoQixnQkFBZ0IsWUFmM0IsWUFBWTtZQUNaLFdBQVc7WUFDWCxXQUFXO1lBQ1gsaUJBQWlCO1lBQ2pCLGlCQUFpQjtZQUNqQixpQkFBaUI7WUFDakIsY0FBYztZQUNkLGVBQWUsRUFURSxtQkFBbUIsYUFBbkIsbUJBQW1CO2dIQWlCekIsZ0JBQWdCLFlBSmQsT0FBTyxFQUFLLFNBQVM7OzRGQUl2QixnQkFBZ0I7a0JBTDVCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsR0FBRyxPQUFPLEVBQUUsR0FBRyxTQUFTLENBQUM7b0JBQ25DLE9BQU8sRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDO29CQUN2QixTQUFTLEVBQUUsRUFBRTtpQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYU2VhcmNoQm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3NlYXJjaC1ib3gnO1xuaW1wb3J0IHsgQVhTZWxlY3RCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvc2VsZWN0LWJveCc7XG5pbXBvcnQgeyBBWFRleHRCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdGV4dC1ib3gnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElNYXNrTW9kdWxlIH0gZnJvbSAnYW5ndWxhci1pbWFzayc7XG5pbXBvcnQgeyBBWFBob25lQm94Q29tcG9uZW50IH0gZnJvbSAnLi9waG9uZS1ib3guY29tcG9uZW50JztcblxuY29uc3QgQ09NUE9ORU5UID0gW0FYUGhvbmVCb3hDb21wb25lbnRdO1xuY29uc3QgTU9EVUxFUyA9IFtcbiAgQ29tbW9uTW9kdWxlLFxuICBGb3Jtc01vZHVsZSxcbiAgSU1hc2tNb2R1bGUsXG4gIEFYU2VsZWN0Qm94TW9kdWxlLFxuICBBWFNlYXJjaEJveE1vZHVsZSxcbiAgQVhEZWNvcmF0b3JNb2R1bGUsXG4gIEFYQnV0dG9uTW9kdWxlLFxuICBBWFRleHRCb3hNb2R1bGUsXG5dO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbLi4uTU9EVUxFUywgLi4uQ09NUE9ORU5UXSxcbiAgZXhwb3J0czogWy4uLkNPTVBPTkVOVF0sXG4gIHByb3ZpZGVyczogW10sXG59KVxuZXhwb3J0IGNsYXNzIEFYUGhvbmVCb3hNb2R1bGUge31cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvbXBvbmVudHMtcGhvbmUtYm94LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9waG9uZS1ib3gvc3JjL2Fjb3JleC1jb21wb25lbnRzLXBob25lLWJveC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-components-phone-box.mjs","sources":["../tmp-esm2022/phone-box/lib/phone-box.component.js","../tmp-esm2022/phone-box/lib/phone-box.module.js","../tmp-esm2022/phone-box/acorex-components-phone-box.js"],"sourcesContent":["import { AXClearableComponent, AXComponent, AXDataSource, AXFocusableComponent, AXValuableComponent, MXInputBaseValueComponent, MXLookComponent, } from '@acorex/cdk/common';\nimport { AXDecoratorClearButtonComponent, AXDecoratorGenericComponent } from '@acorex/components/decorators';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXSearchBoxComponent } from '@acorex/components/search-box';\nimport { AXSelectBoxComponent } from '@acorex/components/select-box';\nimport { AXTextBoxComponent } from '@acorex/components/text-box';\nimport { COUNTRIES, COUNTRIES_FLAG_BASE64 } from '@acorex/core/constants';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { NgStyle } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, HostBinding, Input, ViewChild, ViewEncapsulation, afterNextRender, effect, forwardRef, inject, input, model, signal, viewChild, } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { filter } from 'lodash-es';\nimport { classes } from 'polytype';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\n/**\n * @category\n * A component that handles phone number input with various configurations.\n */\nexport class AXPhoneBoxComponent extends classes((MXInputBaseValueComponent), MXLookComponent) {\n constructor() {\n super(...arguments);\n /** @ignore */\n this._updateOn = 'change';\n this.flags = signal(COUNTRIES_FLAG_BASE64, ...(ngDevMode ? [{ debugName: \"flags\" }] : []));\n this.translationService = inject(AXTranslationService);\n this.messageError = this.callTranslate();\n /**\n * static precode.\n */\n this.precode = input(...(ngDevMode ? [undefined, { debugName: \"precode\" }] : []));\n /**\n * The default country value for the component.\n */\n this.country = model('', ...(ngDevMode ? [{ debugName: \"country\" }] : []));\n /**\n * List of included values for the component.\n */\n this.included = input([], ...(ngDevMode ? [{ debugName: \"included\" }] : []));\n /**\n * List of excluded values for the component.\n */\n this.excluded = input([], ...(ngDevMode ? [{ debugName: \"excluded\" }] : []));\n this.selectBox = viewChild('s', ...(ngDevMode ? [{ debugName: \"selectBox\" }] : []));\n /** @ignore */\n this.countries = signal([], ...(ngDevMode ? [{ debugName: \"countries\" }] : []));\n /** @ignore */\n this.selectedCountry = signal(null, ...(ngDevMode ? [{ debugName: \"selectedCountry\" }] : []));\n this.#countriesChanged = effect(() => {\n this.included();\n this.excluded();\n this.setCountries();\n this.cdr.detectChanges();\n this.selectBox().refresh();\n }, ...(ngDevMode ? [{ debugName: \"#countriesChanged\" }] : []));\n this.#init = afterNextRender(() => {\n setTimeout(() => {\n if (this.country() && !this.value) {\n this.selectedCountry.set(this.countries().find((c) => c.code === this.country()));\n }\n else if (!this.country() && !this.value) {\n this.selectedCountry.set(this.countries()[0]);\n }\n });\n this.setCountries();\n });\n this.#eff = effect(async () => {\n if (this.selectedCountry()?.regex) {\n this.removeValidation();\n const message = await this.messageError;\n this.addValidationRule({\n rule: 'regex',\n options: {\n message,\n pattern: this.selectedCountry()?.regex,\n },\n disabled: false,\n });\n }\n }, ...(ngDevMode ? [{ debugName: \"#eff\" }] : []));\n /** @ignore */\n this.dataSource = new AXDataSource({\n pageSize: 10,\n load: (e) => {\n return new Promise((resolve) => {\n const list = this.countries();\n const result = e.filter\n ? filter(list, (c) => c.name.toUpperCase().includes(e.filter.value.toUpperCase()) ||\n c.iso2code.toUpperCase().includes(e.filter.value.toUpperCase()) ||\n c.code.toUpperCase().includes(e.filter.value.toUpperCase()))\n : list;\n resolve({\n items: result.slice(e.skip, e.skip + e.take),\n total: result.length,\n });\n });\n },\n });\n /**\n * Determines if the keyboard event is a valid action based on allowed keys and key codes.\n *\n * @param event - The keyboard event to validate\n * @returns boolean - True if the key action is valid, false otherwise\n */\n this.isValidKeyboardAction = (event) => {\n const _code = parseInt(event.key);\n const ALLOWED_KEY = ['Backspace', 'ArrowUp', 'ArrowDown', 'ArrowRight', 'ArrowLeft', 'Tab'];\n const IS_CTRL_A = () => (event.ctrlKey && event.key === 'a') || (event.ctrlKey && event.key === 'A');\n // eslint-disable-next-line no-constant-condition\n if ((_code >= 0 && _code <= 9) || ALLOWED_KEY.includes(event.key) || IS_CTRL_A()) {\n return true;\n }\n else {\n return false;\n }\n };\n }\n async callTranslate() {\n return await this.translationService.translateAsync('@acorex:validation.messages.phone');\n }\n #countriesChanged;\n #init;\n #eff;\n /** @ignore */\n _handleModelChange(e) {\n // Prevent value change if component is disabled or readonly\n if (this.disabled || this.readonly) {\n return;\n }\n if (e.isUserInteraction && e.value)\n this.commitValue(e.value, true);\n }\n internalValueChanged(value) {\n if (!value)\n return;\n const result = this.parsePhoneNumber(value);\n if (result.country) {\n this.selectedCountry.set(result.country);\n this.commitValue(result.nationalNumber);\n }\n }\n /** @ignore */\n handleCountryOnClosed() {\n setTimeout(() => {\n this.textbox?.focus();\n }, 300);\n }\n /**\n * Updates the list of countries based on included or excluded codes.\n *\n * @returns void - No return value. Updates the internal countries list.\n */\n setCountries() {\n if (this.included().length) {\n this.countries.set(COUNTRIES.filter((c) => this.included().includes(c.code)));\n }\n else if (this.excluded().length) {\n this.countries.set(COUNTRIES.filter((c) => !this.excluded().includes(c.code)));\n }\n else {\n this.countries.set(COUNTRIES);\n }\n this.flags.set(COUNTRIES_FLAG_BASE64);\n }\n handleKeyDown(e) {\n // Prevent all keyboard actions if component is disabled\n if (this.disabled) {\n e.preventDefault();\n e.stopImmediatePropagation();\n return;\n }\n // In readonly state, only allow copy operations (Ctrl+C, Ctrl+A)\n if (this.readonly) {\n const isCopyOperation = (e.ctrlKey && (e.key === 'c' || e.key === 'C')) || (e.ctrlKey && (e.key === 'a' || e.key === 'A'));\n if (!isCopyOperation) {\n e.preventDefault();\n e.stopImmediatePropagation();\n return;\n }\n }\n if (this.isValidKeyboardAction(e)) {\n this.emitOnKeydownEvent(e);\n }\n else {\n e.preventDefault();\n e.stopImmediatePropagation();\n }\n }\n parsePhoneNumber(fullNumber) {\n // 1) Normalize input\n let normalized = fullNumber.replace(/[^0-9+]/g, '');\n // convert 00... → +...\n if (normalized.startsWith('00')) {\n normalized = '+' + normalized.slice(2);\n }\n // 2) Sort countries by longest prefix first\n const sorted = [...COUNTRIES].sort((a, b) => b.iso2code.length - a.iso2code.length);\n // 3) Match the country code\n for (const country of sorted) {\n if (normalized.startsWith(country.iso2code)) {\n const countryCode = country.iso2code;\n const rawNationalNumber = normalized.slice(countryCode.length);\n const nationalNumber = this.formatNationalNumber(rawNationalNumber, country.format);\n return {\n country,\n countryCode,\n nationalNumber,\n };\n }\n }\n // 4) No match found\n return {\n country: null,\n countryCode: null,\n nationalNumber: normalized,\n };\n }\n /**\n * Formats a national phone number according to the country's format pattern.\n * The format pattern uses '0' as digit placeholders and preserves other characters (like spaces).\n *\n * @param number - The raw national number (digits only)\n * @param format - The country's phone number format pattern (e.g., '000 000 0000')\n * @returns The formatted national number with spaces according to the format\n */\n formatNationalNumber(number, format) {\n if (!format || !number) {\n return number;\n }\n let result = '';\n let numberIndex = 0;\n for (let i = 0; i < format.length && numberIndex < number.length; i++) {\n if (format[i] === '0') {\n result += number[numberIndex];\n numberIndex++;\n }\n else {\n result += format[i];\n }\n }\n // Append any remaining digits that exceed the format length\n if (numberIndex < number.length) {\n result += number.slice(numberIndex);\n }\n return result;\n }\n /** @ignore */\n _handleCountryValueChanged(event) {\n // Prevent value change if component is disabled or readonly\n if (this.disabled || this.readonly) {\n return;\n }\n //remove validation rule before add new one\n if (event.isUserInteraction) {\n this.selectedCountry.set(event.component.selectedItems[0]);\n }\n }\n removeValidation() {\n this.removeValidationRuleByType('regex');\n this.textbox.reset();\n this.textbox.resetErrors();\n }\n get __hostName() {\n return this.name;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.16\", ngImport: i0, type: AXPhoneBoxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.16\", type: AXPhoneBoxComponent, isStandalone: true, selector: \"ax-phone-box\", inputs: { disabled: { classPropertyName: \"disabled\", publicName: \"disabled\", isSignal: false, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: \"tabIndex\", publicName: \"tabIndex\", isSignal: false, isRequired: false, transformFunction: null }, readonly: { classPropertyName: \"readonly\", publicName: \"readonly\", isSignal: false, isRequired: false, transformFunction: null }, value: { classPropertyName: \"value\", publicName: \"value\", isSignal: false, isRequired: false, transformFunction: null }, state: { classPropertyName: \"state\", publicName: \"state\", isSignal: false, isRequired: false, transformFunction: null }, name: { classPropertyName: \"name\", publicName: \"name\", isSignal: false, isRequired: false, transformFunction: null }, id: { classPropertyName: \"id\", publicName: \"id\", isSignal: false, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: \"placeholder\", publicName: \"placeholder\", isSignal: false, isRequired: false, transformFunction: null }, maxLength: { classPropertyName: \"maxLength\", publicName: \"maxLength\", isSignal: false, isRequired: false, transformFunction: null }, allowNull: { classPropertyName: \"allowNull\", publicName: \"allowNull\", isSignal: false, isRequired: false, transformFunction: null }, type: { classPropertyName: \"type\", publicName: \"type\", isSignal: false, isRequired: false, transformFunction: null }, autoComplete: { classPropertyName: \"autoComplete\", publicName: \"autoComplete\", isSignal: false, isRequired: false, transformFunction: null }, look: { classPropertyName: \"look\", publicName: \"look\", isSignal: false, isRequired: false, transformFunction: null }, classNames: { classPropertyName: \"classNames\", publicName: \"class\", isSignal: false, isRequired: false, transformFunction: null }, precode: { classPropertyName: \"precode\", publicName: \"precode\", isSignal: true, isRequired: false, transformFunction: null }, country: { classPropertyName: \"country\", publicName: \"country\", isSignal: true, isRequired: false, transformFunction: null }, included: { classPropertyName: \"included\", publicName: \"included\", isSignal: true, isRequired: false, transformFunction: null }, excluded: { classPropertyName: \"excluded\", publicName: \"excluded\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onBlur: \"onBlur\", onFocus: \"onFocus\", valueChange: \"valueChange\", stateChange: \"stateChange\", onValueChanged: \"onValueChanged\", readonlyChange: \"readonlyChange\", disabledChange: \"disabledChange\", onKeyDown: \"onKeyDown\", onKeyUp: \"onKeyUp\", onKeyPress: \"onKeyPress\", country: \"countryChange\" }, host: { attributes: { \"ngSkipHydration\": \"true\" }, properties: { \"attr.name\": \"this.__hostName\" } }, providers: [\n { provide: AXComponent, useExisting: AXPhoneBoxComponent },\n { provide: AXFocusableComponent, useExisting: AXPhoneBoxComponent },\n { provide: AXClearableComponent, useExisting: AXPhoneBoxComponent },\n { provide: AXValuableComponent, useExisting: AXPhoneBoxComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXPhoneBoxComponent),\n multi: true,\n },\n ], viewQueries: [{ propertyName: \"selectBox\", first: true, predicate: [\"s\"], descendants: true, isSignal: true }, { propertyName: \"textbox\", first: true, predicate: AXTextBoxComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: \"<ax-text-box\\n dir=\\\"ltr\\\"\\n [look]=\\\"look\\\"\\n [disabled]=\\\"disabled\\\"\\n [readonly]=\\\"readonly\\\"\\n [mask-options]=\\\"{ mask: selectedCountry()?.format }\\\"\\n [placeholder]=\\\"selectedCountry()?.format\\\"\\n [ngModel]=\\\"value\\\"\\n (onValueChanged)=\\\"_handleModelChange($event)\\\"\\n (onBlur)=\\\"emitOnBlurEvent($event.nativeEvent)\\\"\\n (onFocus)=\\\"emitOnFocusEvent($event.nativeEvent)\\\"\\n (onKeyDown)=\\\"handleKeyDown($event.nativeEvent)\\\"\\n (onKeyPress)=\\\"emitOnKeypressEvent($event.nativeEvent)\\\"\\n (onKeyUp)=\\\"emitOnKeyupEvent($event.nativeEvent)\\\"\\n>\\n <ng-content select=\\\"ax-validation-rule\\\"> </ng-content>\\n\\n <ax-prefix>\\n @if (precode()) {\\n <ax-text>{{ precode() }}</ax-text>\\n } @else {\\n <ax-select-box\\n #s\\n look=\\\"blank\\\"\\n [disabled]=\\\"disabled || readonly\\\"\\n [readonly]=\\\"readonly\\\"\\n [dropdownWidth]=\\\"'320px'\\\"\\n [dataSource]=\\\"dataSource\\\"\\n [ngModel]=\\\"selectedCountry()\\\"\\n [textField]=\\\"'iso2code'\\\"\\n [multiple]=\\\"false\\\"\\n [valueField]=\\\"'code'\\\"\\n [itemTemplate]=\\\"customItemTemplate\\\"\\n [selectedTemplate]=\\\"selectedTemplate\\\"\\n (onValueChanged)=\\\"_handleCountryValueChanged($event)\\\"\\n (onClosed)=\\\"handleCountryOnClosed()\\\"\\n [tabIndex]=\\\"included().length === 1 ? '-1' : '1'\\\"\\n >\\n <ax-search-box class=\\\"ax-sm\\\" look=\\\"fill\\\">\\n <ax-clear-button></ax-clear-button>\\n </ax-search-box>\\n <ng-template #customItemTemplate let-item>\\n <div class=\\\"ax-country-item\\\">\\n <div\\n class=\\\"ax-country-flag\\\"\\n [ngStyle]=\\\"{\\n 'background-position': item.data.bkPosition?.x + ' ' + item.data.bkPosition?.y,\\n 'background-image': 'url(' + flags() + ')',\\n }\\\"\\n ></div>\\n <div>\\n <span class=\\\"ax-country-name\\\">{{ item.data.name }}</span>\\n <span class=\\\"ax-iso2code\\\">{{ item.data.iso2code }}</span>\\n </div>\\n </div>\\n </ng-template>\\n <ng-template #selectedTemplate let-item>\\n <div class=\\\"ax-selected-country\\\">\\n <span>{{ item.data.iso2code }}</span>\\n </div>\\n </ng-template>\\n <ng-template #loading></ng-template>\\n </ax-select-box>\\n }\\n </ax-prefix>\\n</ax-text-box>\\n\\n<ng-content select=\\\"ax-clear-button \\\"></ng-content>\\n<div class=\\\"ax-error-container\\\"></div>\\n\", styles: [\"ax-phone-box .ax-editor-container{--ax-comp-editor-space-start-size: 0}ax-phone-box.ax-state-disabled ax-text-box{pointer-events:auto;opacity:.6;cursor:not-allowed}ax-phone-box.ax-state-disabled ax-text-box .ax-editor,ax-phone-box.ax-state-disabled ax-text-box .ax-input{pointer-events:auto;cursor:not-allowed;-webkit-user-select:none;user-select:none}ax-phone-box.ax-state-disabled ax-select-box{pointer-events:none;opacity:.6}ax-phone-box.ax-state-disabled ax-select-box ax-dropdown-box{--ax-comp-editor-bg-color: transparent;--ax-comp-editor-border-width: 0px !important;--ax-comp-editor-border-color: transparent !important;cursor:not-allowed}ax-phone-box.ax-state-disabled ax-select-box .ax-editor-button{pointer-events:none;cursor:not-allowed}ax-phone-box.ax-state-readonly ax-text-box .ax-editor,ax-phone-box.ax-state-readonly ax-text-box .ax-input{-webkit-user-select:text;user-select:text}ax-phone-box.ax-state-readonly ax-select-box{pointer-events:none}ax-phone-box.ax-state-readonly ax-select-box ax-dropdown-box{--ax-comp-editor-bg-color: transparent;--ax-comp-editor-border-width: 0px !important;--ax-comp-editor-border-color: transparent !important;cursor:default}ax-phone-box.ax-state-readonly ax-select-box .ax-editor-button{pointer-events:none;cursor:default}ax-phone-box ax-select-box ax-dropdown-box{--ax-comp-editor-bg-color: transparent;--ax-comp-editor-border-width: 0px !important;--ax-comp-editor-border-color: transparent !important}ax-phone-box ax-select-box ax-dropdown-box.ax-editor-container{--ax-comp-editor-box-outline-width: 0;--ax-comp-editor-space-start-size: 0;--ax-comp-editor-space-end-size: 0}ax-phone-box ax-select-box ax-dropdown-box .ax-editor,ax-phone-box ax-select-box ax-dropdown-box .ax-input{--ax-comp-editor-space-start-size: 0}ax-phone-box ax-select-box ax-dropdown-box .ax-content{padding-top:0!important}.ax-country-item{padding:.75rem .5rem;cursor:pointer;display:flex;gap:.5rem;align-items:center}.ax-country-item:hover{background-color:rgba(var(--ax-sys-color-ghost-lighter-surface))}.ax-country-item .ax-country-name{font-weight:500;margin-inline-end:.5rem}.ax-country-item .ax-iso2code{opacity:.7}.ax-country-flag{width:25px!important;height:20px!important;background-repeat:no-repeat}.ax-selected-country{display:flex;gap:.5rem;align-items:center;padding-inline-start:.5rem}\\n\"], dependencies: [{ kind: \"component\", type: AXTextBoxComponent, selector: \"ax-text-box\", inputs: [\"disabled\", \"tabIndex\", \"readonly\", \"value\", \"state\", \"name\", \"id\", \"placeholder\", \"maxLength\", \"allowNull\", \"type\", \"autoComplete\", \"look\", \"mask-options\", \"class\"], outputs: [\"onBlur\", \"onFocus\", \"valueChange\", \"stateChange\", \"onValueChanged\", \"readonlyChange\", \"disabledChange\", \"onKeyDown\", \"onKeyUp\", \"onKeyPress\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"component\", type: AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"component\", type: AXSelectBoxComponent, selector: \"ax-select-box\", inputs: [\"disabled\", \"readonly\", \"tabIndex\", \"placeholder\", \"minValue\", \"maxValue\", \"value\", \"state\", \"name\", \"id\", \"type\", \"look\", \"multiple\", \"valueField\", \"textField\", \"disabledField\", \"textTemplate\", \"selectedItems\", \"isItemTruncated\", \"showItemTooltip\", \"itemHeight\", \"maxVisibleItems\", \"dataSource\", \"minRecordsForSearch\", \"caption\", \"itemTemplate\", \"selectedTemplate\", \"emptyTemplate\", \"loadingTemplate\", \"dropdownWidth\", \"searchBoxAutoFocus\"], outputs: [\"valueChange\", \"stateChange\", \"onValueChanged\", \"onBlur\", \"onFocus\", \"readonlyChange\", \"disabledChange\", \"onOpened\", \"onClosed\", \"onItemSelected\", \"onItemClick\"] }, { kind: \"component\", type: AXSearchBoxComponent, selector: \"ax-search-box\", inputs: [\"disabled\", \"readonly\", \"tabIndex\", \"placeholder\", \"value\", \"state\", \"name\", \"id\", \"look\", \"class\", \"delayTime\", \"type\", \"autoSearch\"], outputs: [\"valueChange\", \"stateChange\", \"onValueChanged\", \"onBlur\", \"onFocus\", \"readonlyChange\", \"disabledChange\", \"onKeyDown\", \"onKeyUp\", \"onKeyPress\"] }, { kind: \"component\", type: AXDecoratorClearButtonComponent, selector: \"ax-clear-button\", inputs: [\"icon\"] }, { kind: \"directive\", type: NgStyle, selector: \"[ngStyle]\", inputs: [\"ngStyle\"] }, { kind: \"ngmodule\", type: AXFormModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.16\", ngImport: i0, type: AXPhoneBoxComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-phone-box', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, inputs: [\n 'disabled',\n 'tabIndex',\n 'readonly',\n 'value',\n 'state',\n 'name',\n 'id',\n 'placeholder',\n 'maxLength',\n 'allowNull',\n 'type',\n 'autoComplete',\n 'look',\n ], outputs: [\n 'onBlur',\n 'onFocus',\n 'valueChange',\n 'stateChange',\n 'onValueChanged',\n 'readonlyChange',\n 'disabledChange',\n 'onKeyDown',\n 'onKeyUp',\n 'onKeyPress',\n ], providers: [\n { provide: AXComponent, useExisting: AXPhoneBoxComponent },\n { provide: AXFocusableComponent, useExisting: AXPhoneBoxComponent },\n { provide: AXClearableComponent, useExisting: AXPhoneBoxComponent },\n { provide: AXValuableComponent, useExisting: AXPhoneBoxComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXPhoneBoxComponent),\n multi: true,\n },\n ], host: {\n ngSkipHydration: 'true',\n }, imports: [\n AXTextBoxComponent,\n FormsModule,\n AXDecoratorGenericComponent,\n AXSelectBoxComponent,\n AXSearchBoxComponent,\n AXDecoratorClearButtonComponent,\n NgStyle,\n AXFormModule,\n ], template: \"<ax-text-box\\n dir=\\\"ltr\\\"\\n [look]=\\\"look\\\"\\n [disabled]=\\\"disabled\\\"\\n [readonly]=\\\"readonly\\\"\\n [mask-options]=\\\"{ mask: selectedCountry()?.format }\\\"\\n [placeholder]=\\\"selectedCountry()?.format\\\"\\n [ngModel]=\\\"value\\\"\\n (onValueChanged)=\\\"_handleModelChange($event)\\\"\\n (onBlur)=\\\"emitOnBlurEvent($event.nativeEvent)\\\"\\n (onFocus)=\\\"emitOnFocusEvent($event.nativeEvent)\\\"\\n (onKeyDown)=\\\"handleKeyDown($event.nativeEvent)\\\"\\n (onKeyPress)=\\\"emitOnKeypressEvent($event.nativeEvent)\\\"\\n (onKeyUp)=\\\"emitOnKeyupEvent($event.nativeEvent)\\\"\\n>\\n <ng-content select=\\\"ax-validation-rule\\\"> </ng-content>\\n\\n <ax-prefix>\\n @if (precode()) {\\n <ax-text>{{ precode() }}</ax-text>\\n } @else {\\n <ax-select-box\\n #s\\n look=\\\"blank\\\"\\n [disabled]=\\\"disabled || readonly\\\"\\n [readonly]=\\\"readonly\\\"\\n [dropdownWidth]=\\\"'320px'\\\"\\n [dataSource]=\\\"dataSource\\\"\\n [ngModel]=\\\"selectedCountry()\\\"\\n [textField]=\\\"'iso2code'\\\"\\n [multiple]=\\\"false\\\"\\n [valueField]=\\\"'code'\\\"\\n [itemTemplate]=\\\"customItemTemplate\\\"\\n [selectedTemplate]=\\\"selectedTemplate\\\"\\n (onValueChanged)=\\\"_handleCountryValueChanged($event)\\\"\\n (onClosed)=\\\"handleCountryOnClosed()\\\"\\n [tabIndex]=\\\"included().length === 1 ? '-1' : '1'\\\"\\n >\\n <ax-search-box class=\\\"ax-sm\\\" look=\\\"fill\\\">\\n <ax-clear-button></ax-clear-button>\\n </ax-search-box>\\n <ng-template #customItemTemplate let-item>\\n <div class=\\\"ax-country-item\\\">\\n <div\\n class=\\\"ax-country-flag\\\"\\n [ngStyle]=\\\"{\\n 'background-position': item.data.bkPosition?.x + ' ' + item.data.bkPosition?.y,\\n 'background-image': 'url(' + flags() + ')',\\n }\\\"\\n ></div>\\n <div>\\n <span class=\\\"ax-country-name\\\">{{ item.data.name }}</span>\\n <span class=\\\"ax-iso2code\\\">{{ item.data.iso2code }}</span>\\n </div>\\n </div>\\n </ng-template>\\n <ng-template #selectedTemplate let-item>\\n <div class=\\\"ax-selected-country\\\">\\n <span>{{ item.data.iso2code }}</span>\\n </div>\\n </ng-template>\\n <ng-template #loading></ng-template>\\n </ax-select-box>\\n }\\n </ax-prefix>\\n</ax-text-box>\\n\\n<ng-content select=\\\"ax-clear-button \\\"></ng-content>\\n<div class=\\\"ax-error-container\\\"></div>\\n\", styles: [\"ax-phone-box .ax-editor-container{--ax-comp-editor-space-start-size: 0}ax-phone-box.ax-state-disabled ax-text-box{pointer-events:auto;opacity:.6;cursor:not-allowed}ax-phone-box.ax-state-disabled ax-text-box .ax-editor,ax-phone-box.ax-state-disabled ax-text-box .ax-input{pointer-events:auto;cursor:not-allowed;-webkit-user-select:none;user-select:none}ax-phone-box.ax-state-disabled ax-select-box{pointer-events:none;opacity:.6}ax-phone-box.ax-state-disabled ax-select-box ax-dropdown-box{--ax-comp-editor-bg-color: transparent;--ax-comp-editor-border-width: 0px !important;--ax-comp-editor-border-color: transparent !important;cursor:not-allowed}ax-phone-box.ax-state-disabled ax-select-box .ax-editor-button{pointer-events:none;cursor:not-allowed}ax-phone-box.ax-state-readonly ax-text-box .ax-editor,ax-phone-box.ax-state-readonly ax-text-box .ax-input{-webkit-user-select:text;user-select:text}ax-phone-box.ax-state-readonly ax-select-box{pointer-events:none}ax-phone-box.ax-state-readonly ax-select-box ax-dropdown-box{--ax-comp-editor-bg-color: transparent;--ax-comp-editor-border-width: 0px !important;--ax-comp-editor-border-color: transparent !important;cursor:default}ax-phone-box.ax-state-readonly ax-select-box .ax-editor-button{pointer-events:none;cursor:default}ax-phone-box ax-select-box ax-dropdown-box{--ax-comp-editor-bg-color: transparent;--ax-comp-editor-border-width: 0px !important;--ax-comp-editor-border-color: transparent !important}ax-phone-box ax-select-box ax-dropdown-box.ax-editor-container{--ax-comp-editor-box-outline-width: 0;--ax-comp-editor-space-start-size: 0;--ax-comp-editor-space-end-size: 0}ax-phone-box ax-select-box ax-dropdown-box .ax-editor,ax-phone-box ax-select-box ax-dropdown-box .ax-input{--ax-comp-editor-space-start-size: 0}ax-phone-box ax-select-box ax-dropdown-box .ax-content{padding-top:0!important}.ax-country-item{padding:.75rem .5rem;cursor:pointer;display:flex;gap:.5rem;align-items:center}.ax-country-item:hover{background-color:rgba(var(--ax-sys-color-ghost-lighter-surface))}.ax-country-item .ax-country-name{font-weight:500;margin-inline-end:.5rem}.ax-country-item .ax-iso2code{opacity:.7}.ax-country-flag{width:25px!important;height:20px!important;background-repeat:no-repeat}.ax-selected-country{display:flex;gap:.5rem;align-items:center;padding-inline-start:.5rem}\\n\"] }]\n }], propDecorators: { textbox: [{\n type: ViewChild,\n args: [AXTextBoxComponent, { static: true }]\n }], classNames: [{\n type: Input,\n args: ['class']\n }], precode: [{ type: i0.Input, args: [{ isSignal: true, alias: \"precode\", required: false }] }], country: [{ type: i0.Input, args: [{ isSignal: true, alias: \"country\", required: false }] }, { type: i0.Output, args: [\"countryChange\"] }], included: [{ type: i0.Input, args: [{ isSignal: true, alias: \"included\", required: false }] }], excluded: [{ type: i0.Input, args: [{ isSignal: true, alias: \"excluded\", required: false }] }], selectBox: [{ type: i0.ViewChild, args: ['s', { isSignal: true }] }], __hostName: [{\n type: HostBinding,\n args: ['attr.name']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvcGhvbmUtYm94L3NyYy9saWIvcGhvbmUtYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvcGhvbmUtYm94L3NyYy9saWIvcGhvbmUtYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsV0FBVyxFQUNYLFlBQVksRUFDWixvQkFBb0IsRUFDcEIsbUJBQW1CLEVBRW5CLHlCQUF5QixFQUN6QixlQUFlLEdBQ2hCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLCtCQUErQixFQUFFLDJCQUEyQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDN0csT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQWUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsV0FBVyxFQUNYLEtBQUssRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLGVBQWUsRUFDZixNQUFNLEVBQ04sVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsS0FBSyxFQUNMLE1BQU0s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ZW50LFxuICBBWENvbXBvbmVudCxcbiAgQVhEYXRhU291cmNlLFxuICBBWEZvY3VzYWJsZUNvbXBvbmVudCxcbiAgQVhWYWx1YWJsZUNvbXBvbmVudCxcbiAgQVhWYWx1ZUNoYW5nZWRFdmVudCxcbiAgTVhJbnB1dEJhc2VWYWx1ZUNvbXBvbmVudCxcbiAgTVhMb29rQ29tcG9uZW50LFxufSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JDbGVhckJ1dHRvbkNvbXBvbmVudCwgQVhEZWNvcmF0b3JHZW5lcmljQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhGb3JtTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Zvcm0nO1xuaW1wb3J0IHsgQVhTZWFyY2hCb3hDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvc2VhcmNoLWJveCc7XG5pbXBvcnQgeyBBWFNlbGVjdEJveENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9zZWxlY3QtYm94JztcbmltcG9ydCB7IEFYVGV4dEJveENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90ZXh0LWJveCc7XG5pbXBvcnQgeyBDT1VOVFJJRVMsIENPVU5UUklFU19GTEFHX0JBU0U2NCwgQ291bnRyeUl0ZW0gfSBmcm9tICdAYWNvcmV4L2NvcmUvY29uc3RhbnRzJztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IE5nU3R5bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBhZnRlck5leHRSZW5kZXIsXG4gIGVmZmVjdCxcbiAgZm9yd2FyZFJlZixcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgbW9kZWwsXG4gIHNpZ25hbCxcbiAgdmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBjbGFzc2VzIH0gZnJvbSAncG9seXR5cGUnO1xuXG4vKipcbiAqIEBjYXRlZ29yeVxuICogQSBjb21wb25lbnQgdGhhdCBoYW5kbGVzIHBob25lIG51bWJlciBpbnB1dCB3aXRoIHZhcmlvdXMgY29uZmlndXJhdGlvbnMuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LXBob25lLWJveCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9waG9uZS1ib3guY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9waG9uZS1ib3guY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGlucHV0czogW1xuICAgICdkaXNhYmxlZCcsXG4gICAgJ3RhYkluZGV4JyxcbiAgICAncmVhZG9ubHknLFxuICAgICd2YWx1ZScsXG4gICAgJ3N0YXRlJyxcbiAgICAnbmFtZScsXG4gICAgJ2lkJyxcbiAgICAncGxhY2Vob2xkZXInLFxuICAgICdtYXhMZW5ndGgnLFxuICAgICdhbGxvd051bGwnLFxuICAgICd0eXBlJyxcbiAgICAnYXV0b0NvbXBsZXRlJyxcbiAgICAnbG9vaycsXG4gIF0sXG4gIG91dHB1dHM6IFtcbiAgICAnb25CbHVyJyxcbiAgICAnb25Gb2N1cycsXG4gICAgJ3ZhbHVlQ2hhbmdlJyxcbiAgICAnc3RhdGVDaGFuZ2UnLFxuICAgICdvblZhbHVlQ2hhbmdlZCcsXG4gICAgJ3JlYWRvbmx5Q2hhbmdlJyxcbiAgICAnZGlzYWJsZWRDaGFuZ2UnLFxuICAgICdvbktleURvd24nLFxuICAgICdvbktleVVwJyxcbiAgICAnb25LZXlQcmVzcycsXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogQVhDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFBob25lQm94Q29tcG9uZW50IH0sXG4gICAgeyBwcm92aWRlOiBBWEZvY3VzYWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYUGhvbmVCb3hDb21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYQ2xlYXJhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhQaG9uZUJveENvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhWYWx1YWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYUGhvbmVCb3hDb21wb25lbnQgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEFYUGhvbmVCb3hDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbiAgaG9zdDoge1xuICAgIG5nU2tpcEh5ZHJhdGlvbjogJ3RydWUnLFxuICB9LFxuICBpbXBvcnRzOiBbXG4gICAgQVhUZXh0Qm94Q29tcG9uZW50LFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIEFYRGVjb3JhdG9yR2VuZXJpY0NvbXBvbmVudCxcbiAgICBBWFNlbGVjdEJveENvbXBvbmVudCxcbiAgICBBWFNlYXJjaEJveENvbXBvbmVudCxcbiAgICBBWERlY29yYXRvckNsZWFyQnV0dG9uQ29tcG9uZW50LFxuICAgIE5nU3R5bGUsXG4gICAgQVhGb3JtTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBob25lQm94Q29tcG9uZW50IGV4dGVuZHMgY2xhc3NlcyhNWElucHV0QmFzZVZhbHVlQ29tcG9uZW50PHN0cmluZz4sIE1YTG9va0NvbXBvbmVudCkge1xuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgX3VwZGF0ZU9uOiAnY2hhbmdlJyB8ICdibHVyJyB8ICdzdWJtaXQnID0gJ2NoYW5nZSc7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgQFZpZXdDaGlsZChBWFRleHRCb3hDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHByaXZhdGUgdGV4dGJveDogQVhUZXh0Qm94Q29tcG9uZW50O1xuXG4gIHByb3RlY3RlZCBmbGFncyA9IHNpZ25hbChDT1VOVFJJRVNfRkxBR19CQVNFNjQpO1xuXG4gIHByaXZhdGUgdHJhbnNsYXRpb25TZXJ2aWNlOiBBWFRyYW5zbGF0aW9uU2VydmljZSA9IGluamVjdChBWFRyYW5zbGF0aW9uU2VydmljZSk7XG5cbiAgcHJvdGVjdGVkIG1lc3NhZ2VFcnJvciA9IHRoaXMuY2FsbFRyYW5zbGF0ZSgpO1xuXG4gIGFzeW5jIGNhbGxUcmFuc2xhdGUoKSB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKCdAYWNvcmV4OnZhbGlkYXRpb24ubWVzc2FnZXMucGhvbmUnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDU1MgY2xhc3NlcyB0byBhcHBseSB0byB0aGUgY29tcG9uZW50LlxuICAgKi9cbiAgQElucHV0KCdjbGFzcycpXG4gIGNsYXNzTmFtZXM6IHN0cmluZztcblxuICAvKipcbiAgICogc3RhdGljIHByZWNvZGUuXG4gICAqL1xuICBwcmVjb2RlID0gaW5wdXQoKTtcblxuICAvKipcbiAgICogVGhlIGRlZmF1bHQgY291bnRyeSB2YWx1ZSBmb3IgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIGNvdW50cnkgPSBtb2RlbDxzdHJpbmc+KCcnKTtcblxuICAvKipcbiAgICogTGlzdCBvZiBpbmNsdWRlZCB2YWx1ZXMgZm9yIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICBpbmNsdWRlZCA9IGlucHV0PHN0cmluZ1tdPihbXSk7XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgZXhjbHVkZWQgdmFsdWVzIGZvciB0aGUgY29tcG9uZW50LlxuICAgKi9cbiAgZXhjbHVkZWQgPSBpbnB1dDxzdHJpbmdbXT4oW10pO1xuXG4gIHByaXZhdGUgc2VsZWN0Qm94ID0gdmlld0NoaWxkPEFYU2VsZWN0Qm94Q29tcG9uZW50PigncycpO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBjb3VudHJpZXMgPSBzaWduYWw8Q291bnRyeUl0ZW1bXT4oW10pO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBzZWxlY3RlZENvdW50cnkgPSBzaWduYWw8Q291bnRyeUl0ZW0+KG51bGwpO1xuXG4gICNjb3VudHJpZXNDaGFuZ2VkID0gZWZmZWN0KCgpID0+IHtcbiAgICB0aGlzLmluY2x1ZGVkKCk7XG4gICAgdGhpcy5leGNsdWRlZCgpO1xuICAgIHRoaXMuc2V0Q291bnRyaWVzKCk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIHRoaXMuc2VsZWN0Qm94KCkucmVmcmVzaCgpO1xuICB9KTtcblxuICAjaW5pdCA9IGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5jb3VudHJ5KCkgJiYgIXRoaXMudmFsdWUpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZENvdW50cnkuc2V0KHRoaXMuY291bnRyaWVzKCkuZmluZCgoYykgPT4gYy5jb2RlID09PSB0aGlzLmNvdW50cnkoKSkpO1xuICAgICAgfSBlbHNlIGlmICghdGhpcy5jb3VudHJ5KCkgJiYgIXRoaXMudmFsdWUpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZENvdW50cnkuc2V0KHRoaXMuY291bnRyaWVzKClbMF0pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5zZXRDb3VudHJpZXMoKTtcbiAgfSk7XG5cbiAgI2VmZiA9IGVmZmVjdChhc3luYyAoKSA9PiB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRDb3VudHJ5KCk/LnJlZ2V4KSB7XG4gICAgICB0aGlzLnJlbW92ZVZhbGlkYXRpb24oKTtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCB0aGlzLm1lc3NhZ2VFcnJvcjtcbiAgICAgIHRoaXMuYWRkVmFsaWRhdGlvblJ1bGUoe1xuICAgICAgICBydWxlOiAncmVnZXgnLFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgICBwYXR0ZXJuOiB0aGlzLnNlbGVjdGVkQ291bnRyeSgpPy5yZWdleCxcbiAgICAgICAgfSxcbiAgICAgICAgZGlzYWJsZWQ6IGZhbHNlLFxuICAgICAgfSk7XG4gICAgfVxuICB9KTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgX2hhbmRsZU1vZGVsQ2hhbmdlKGU6IEFYVmFsdWVDaGFuZ2VkRXZlbnQ8YW55Pikge1xuICAgIC8vIFByZXZlbnQgdmFsdWUgY2hhbmdlIGlmIGNvbXBvbmVudCBpcyBkaXNhYmxlZCBvciByZWFkb25seVxuICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMucmVhZG9ubHkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGUuaXNVc2VySW50ZXJhY3Rpb24gJiYgZS52YWx1ZSkgdGhpcy5jb21taXRWYWx1ZShlLnZhbHVlLCB0cnVlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBpbnRlcm5hbFZhbHVlQ2hhbmdlZCh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuO1xuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMucGFyc2VQaG9uZU51bWJlcih2YWx1ZSk7XG4gICAgaWYgKHJlc3VsdC5jb3VudHJ5KSB7XG4gICAgICB0aGlzLnNlbGVjdGVkQ291bnRyeS5zZXQocmVzdWx0LmNvdW50cnkpO1xuICAgICAgdGhpcy5jb21taXRWYWx1ZShyZXN1bHQubmF0aW9uYWxOdW1iZXIpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBkYXRhU291cmNlID0gbmV3IEFYRGF0YVNvdXJjZTxDb3VudHJ5SXRlbT4oe1xuICAgIHBhZ2VTaXplOiAxMCxcbiAgICBsb2FkOiAoZSkgPT4ge1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICAgIGNvbnN0IGxpc3QgPSB0aGlzLmNvdW50cmllcygpO1xuICAgICAgICBjb25zdCByZXN1bHQgPSBlLmZpbHRlclxuICAgICAgICAgID8gZmlsdGVyKFxuICAgICAgICAgICAgICBsaXN0LFxuICAgICAgICAgICAgICAoYykgPT5cbiAgICAgICAgICAgICAgICBjLm5hbWUudG9VcHBlckNhc2UoKS5pbmNsdWRlcygoZS5maWx0ZXIudmFsdWUgYXMgc3RyaW5nKS50b1VwcGVyQ2FzZSgpKSB8fFxuICAgICAgICAgICAgICAgIGMuaXNvMmNvZGUudG9VcHBlckNhc2UoKS5pbmNsdWRlcygoZS5maWx0ZXIudmFsdWUgYXMgc3RyaW5nKS50b1VwcGVyQ2FzZSgpKSB8fFxuICAgICAgICAgICAgICAgIGMuY29kZS50b1VwcGVyQ2FzZSgpLmluY2x1ZGVzKChlLmZpbHRlci52YWx1ZSBhcyBzdHJpbmcpLnRvVXBwZXJDYXNlKCkpLFxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogbGlzdDtcbiAgICAgICAgcmVzb2x2ZSh7XG4gICAgICAgICAgaXRlbXM6IHJlc3VsdC5zbGljZShlLnNraXAsIGUuc2tpcCArIGUudGFrZSksXG4gICAgICAgICAgdG90YWw6IHJlc3VsdC5sZW5ndGgsXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSxcbiAgfSk7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIGhhbmRsZUNvdW50cnlPbkNsb3NlZCgpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMudGV4dGJveD8uZm9jdXMoKTtcbiAgICB9LCAzMDApO1xuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgdGhlIGtleWJvYXJkIGV2ZW50IGlzIGEgdmFsaWQgYWN0aW9uIGJhc2VkIG9uIGFsbG93ZWQga2V5cyBhbmQga2V5IGNvZGVzLlxuICAgKlxuICAgKiBAcGFyYW0gZXZlbnQgLSBUaGUga2V5Ym9hcmQgZXZlbnQgdG8gdmFsaWRhdGVcbiAgICogQHJldHVybnMgYm9vbGVhbiAtIFRydWUgaWYgdGhlIGtleSBhY3Rpb24gaXMgdmFsaWQsIGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgaXNWYWxpZEtleWJvYXJkQWN0aW9uID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgY29uc3QgX2NvZGUgPSBwYXJzZUludChldmVudC5rZXkpO1xuXG4gICAgY29uc3QgQUxMT1dFRF9LRVkgPSBbJ0JhY2tzcGFjZScsICdBcnJvd1VwJywgJ0Fycm93RG93bicsICdBcnJvd1JpZ2h0JywgJ0Fycm93TGVmdCcsICdUYWInXTtcblxuICAgIGNvbnN0IElTX0NUUkxfQSA9ICgpID0+IChldmVudC5jdHJsS2V5ICYmIGV2ZW50LmtleSA9PT0gJ2EnKSB8fCAoZXZlbnQuY3RybEtleSAmJiBldmVudC5rZXkgPT09ICdBJyk7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnN0YW50LWNvbmRpdGlvblxuICAgIGlmICgoX2NvZGUgPj0gMCAmJiBfY29kZSA8PSA5KSB8fCBBTExPV0VEX0tFWS5pbmNsdWRlcyhldmVudC5rZXkpIHx8IElTX0NUUkxfQSgpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgbGlzdCBvZiBjb3VudHJpZXMgYmFzZWQgb24gaW5jbHVkZWQgb3IgZXhjbHVkZWQgY29kZXMuXG4gICAqXG4gICAqIEByZXR1cm5zIHZvaWQgLSBObyByZXR1cm4gdmFsdWUuIFVwZGF0ZXMgdGhlIGludGVybmFsIGNvdW50cmllcyBsaXN0LlxuICAgKi9cbiAgc2V0Q291bnRyaWVzKCkge1xuICAgIGlmICh0aGlzLmluY2x1ZGVkKCkubGVuZ3RoKSB7XG4gICAgICB0aGlzLmNvdW50cmllcy5zZXQoQ09VTlRSSUVTLmZpbHRlcigoYykgPT4gdGhpcy5pbmNsdWRlZCgpLmluY2x1ZGVzKGMuY29kZSkpKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuZXhjbHVkZWQoKS5sZW5ndGgpIHtcbiAgICAgIHRoaXMuY291bnRyaWVzLnNldChDT1VOVFJJRVMuZmlsdGVyKChjKSA9PiAhdGhpcy5leGNsdWRlZCgpLmluY2x1ZGVzKGMuY29kZSkpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb3VudHJpZXMuc2V0KENPVU5UUklFUyk7XG4gICAgfVxuICAgIHRoaXMuZmxhZ3Muc2V0KENPVU5UUklFU19GTEFHX0JBU0U2NCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlS2V5RG93bihlOiBLZXlib2FyZEV2ZW50KSB7XG4gICAgLy8gUHJldmVudCBhbGwga2V5Ym9hcmQgYWN0aW9ucyBpZiBjb21wb25lbnQgaXMgZGlzYWJsZWRcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBJbiByZWFkb25seSBzdGF0ZSwgb25seSBhbGxvdyBjb3B5IG9wZXJhdGlvbnMgKEN0cmwrQywgQ3RybCtBKVxuICAgIGlmICh0aGlzLnJlYWRvbmx5KSB7XG4gICAgICBjb25zdCBpc0NvcHlPcGVyYXRpb24gPVxuICAgICAgICAoZS5jdHJsS2V5ICYmIChlLmtleSA9PT0gJ2MnIHx8IGUua2V5ID09PSAnQycpKSB8fCAoZS5jdHJsS2V5ICYmIChlLmtleSA9PT0gJ2EnIHx8IGUua2V5ID09PSAnQScpKTtcblxuICAgICAgaWYgKCFpc0NvcHlPcGVyYXRpb24pIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNWYWxpZEtleWJvYXJkQWN0aW9uKGUpKSB7XG4gICAgICB0aGlzLmVtaXRPbktleWRvd25FdmVudChlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHBhcnNlUGhvbmVOdW1iZXIoZnVsbE51bWJlcjogc3RyaW5nKToge1xuICAgIGNvdW50cnk6IENvdW50cnlJdGVtIHwgbnVsbDtcbiAgICBjb3VudHJ5Q29kZTogc3RyaW5nIHwgbnVsbDtcbiAgICBuYXRpb25hbE51bWJlcjogc3RyaW5nO1xuICB9IHtcbiAgICAvLyAxKSBOb3JtYWxpemUgaW5wdXRcbiAgICBsZXQgbm9ybWFsaXplZCA9IGZ1bGxOdW1iZXIucmVwbGFjZSgvW14wLTkrXS9nLCAnJyk7XG5cbiAgICAvLyBjb252ZXJ0IDAwLi4uIOKGkiArLi4uXG4gICAgaWYgKG5vcm1hbGl6ZWQuc3RhcnRzV2l0aCgnMDAnKSkge1xuICAgICAgbm9ybWFsaXplZCA9ICcrJyArIG5vcm1hbGl6ZWQuc2xpY2UoMik7XG4gICAgfVxuXG4gICAgLy8gMikgU29ydCBjb3VudHJpZXMgYnkgbG9uZ2VzdCBwcmVmaXggZmlyc3RcbiAgICBjb25zdCBzb3J0ZWQgPSBbLi4uQ09VTlRSSUVTXS5zb3J0KChhLCBiKSA9PiBiLmlzbzJjb2RlLmxlbmd0aCAtIGEuaXNvMmNvZGUubGVuZ3RoKTtcblxuICAgIC8vIDMpIE1hdGNoIHRoZSBjb3VudHJ5IGNvZGVcbiAgICBmb3IgKGNvbnN0IGNvdW50cnkgb2Ygc29ydGVkKSB7XG4gICAgICBpZiAobm9ybWFsaXplZC5zdGFydHNXaXRoKGNvdW50cnkuaXNvMmNvZGUpKSB7XG4gICAgICAgIGNvbnN0IGNvdW50cnlDb2RlID0gY291bnRyeS5pc28yY29kZTtcbiAgICAgICAgY29uc3QgcmF3TmF0aW9uYWxOdW1iZXIgPSBub3JtYWxpemVkLnNsaWNlKGNvdW50cnlDb2RlLmxlbmd0aCk7XG4gICAgICAgIGNvbnN0IG5hdGlvbmFsTnVtYmVyID0gdGhpcy5mb3JtYXROYXRpb25hbE51bWJlcihyYXdOYXRpb25hbE51bWJlciwgY291bnRyeS5mb3JtYXQpO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY291bnRyeSxcbiAgICAgICAgICBjb3VudHJ5Q29kZSxcbiAgICAgICAgICBuYXRpb25hbE51bWJlcixcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyA0KSBObyBtYXRjaCBmb3VuZFxuICAgIHJldHVybiB7XG4gICAgICBjb3VudHJ5OiBudWxsLFxuICAgICAgY291bnRyeUNvZGU6IG51bGwsXG4gICAgICBuYXRpb25hbE51bWJlcjogbm9ybWFsaXplZCxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcm1hdHMgYSBuYXRpb25hbCBwaG9uZSBudW1iZXIgYWNjb3JkaW5nIHRvIHRoZSBjb3VudHJ5J3MgZm9ybWF0IHBhdHRlcm4uXG4gICAqIFRoZSBmb3JtYXQgcGF0dGVybiB1c2VzICcwJyBhcyBkaWdpdCBwbGFjZWhvbGRlcnMgYW5kIHByZXNlcnZlcyBvdGhlciBjaGFyYWN0ZXJzIChsaWtlIHNwYWNlcykuXG4gICAqXG4gICAqIEBwYXJhbSBudW1iZXIgLSBUaGUgcmF3IG5hdGlvbmFsIG51bWJlciAoZGlnaXRzIG9ubHkpXG4gICAqIEBwYXJhbSBmb3JtYXQgLSBUaGUgY291bnRyeSdzIHBob25lIG51bWJlciBmb3JtYXQgcGF0dGVybiAoZS5nLiwgJzAwMCAwMDAgMDAwMCcpXG4gICAqIEByZXR1cm5zIFRoZSBmb3JtYXR0ZWQgbmF0aW9uYWwgbnVtYmVyIHdpdGggc3BhY2VzIGFjY29yZGluZyB0byB0aGUgZm9ybWF0XG4gICAqL1xuICBwcml2YXRlIGZvcm1hdE5hdGlvbmFsTnVtYmVyKG51bWJlcjogc3RyaW5nLCBmb3JtYXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCFmb3JtYXQgfHwgIW51bWJlcikge1xuICAgICAgcmV0dXJuIG51bWJlcjtcbiAgICB9XG5cbiAgICBsZXQgcmVzdWx0ID0gJyc7XG4gICAgbGV0IG51bWJlckluZGV4ID0gMDtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZm9ybWF0Lmxlbmd0aCAmJiBudW1iZXJJbmRleCA8IG51bWJlci5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKGZvcm1hdFtpXSA9PT0gJzAnKSB7XG4gICAgICAgIHJlc3VsdCArPSBudW1iZXJbbnVtYmVySW5kZXhdO1xuICAgICAgICBudW1iZXJJbmRleCsrO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0ICs9IGZvcm1hdFtpXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBcHBlbmQgYW55IHJlbWFpbmluZyBkaWdpdHMgdGhhdCBleGNlZWQgdGhlIGZvcm1hdCBsZW5ndGhcbiAgICBpZiAobnVtYmVySW5kZXggPCBudW1iZXIubGVuZ3RoKSB7XG4gICAgICByZXN1bHQgKz0gbnVtYmVyLnNsaWNlKG51bWJlckluZGV4KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgX2hhbmRsZUNvdW50cnlWYWx1ZUNoYW5nZWQoZXZlbnQ6IEFYVmFsdWVDaGFuZ2VkRXZlbnQpIHtcbiAgICAvLyBQcmV2ZW50IHZhbHVlIGNoYW5nZSBpZiBjb21wb25lbnQgaXMgZGlzYWJsZWQgb3IgcmVhZG9ubHlcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLnJlYWRvbmx5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy9yZW1vdmUgdmFsaWRhdGlvbiBydWxlIGJlZm9yZSBhZGQgbmV3IG9uZVxuICAgIGlmIChldmVudC5pc1VzZXJJbnRlcmFjdGlvbikge1xuICAgICAgdGhpcy5zZWxlY3RlZENvdW50cnkuc2V0KGV2ZW50LmNvbXBvbmVudC5zZWxlY3RlZEl0ZW1zWzBdKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZVZhbGlkYXRpb24oKSB7XG4gICAgdGhpcy5yZW1vdmVWYWxpZGF0aW9uUnVsZUJ5VHlwZSgncmVnZXgnKTtcbiAgICB0aGlzLnRleHRib3gucmVzZXQoKTtcbiAgICB0aGlzLnRleHRib3gucmVzZXRFcnJvcnMoKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnYXR0ci5uYW1lJylcbiAgcHJpdmF0ZSBnZXQgX19ob3N0TmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm5hbWU7XG4gIH1cbn1cbiIsIjxheC10ZXh0LWJveFxuICBkaXI9XCJsdHJcIlxuICBbbG9va109XCJsb29rXCJcbiAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgW21hc2stb3B0aW9uc109XCJ7IG1hc2s6IHNlbGVjdGVkQ291bnRyeSgpPy5mb3JtYXQgfVwiXG4gIFtwbGFjZWhvbGRlcl09XCJzZWxlY3RlZENvdW50cnkoKT8uZm9ybWF0XCJcbiAgW25nTW9kZWxdPVwidmFsdWVcIlxuICAob25WYWx1ZUNoYW5nZWQpPVwiX2hhbmRsZU1vZGVsQ2hhbmdlKCRldmVudClcIlxuICAob25CbHVyKT1cImVtaXRPbkJsdXJFdmVudCgkZXZlbnQubmF0aXZlRXZlbnQpXCJcbiAgKG9uRm9jdXMpPVwiZW1pdE9uRm9jdXNFdmVudCgkZXZlbnQubmF0aXZlRXZlbnQpXCJcbiAgKG9uS2V5RG93bik9XCJoYW5kbGVLZXlEb3duKCRldmVudC5uYXRpdmVFdmVudClcIlxuICAob25LZXlQcmVzcyk9XCJlbWl0T25LZXlwcmVzc0V2ZW50KCRldmVudC5uYXRpdmVFdmVudClcIlxuICAob25LZXlVcCk9XCJlbWl0T25LZXl1cEV2ZW50KCRldmVudC5uYXRpdmVFdmVudClcIlxuPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJheC12YWxpZGF0aW9uLXJ1bGVcIj4gPC9uZy1jb250ZW50PlxuXG4gIDxheC1wcmVmaXg+XG4gICAgQGlmIChwcmVjb2RlKCkpIHtcbiAgICAgIDxheC10ZXh0Pnt7IHByZWNvZGUoKSB9fTwvYXgtdGV4dD5cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxheC1zZWxlY3QtYm94XG4gICAgICAgICNzXG4gICAgICAgIGxvb2s9XCJibGFua1wiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCByZWFkb25seVwiXG4gICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICAgIFtkcm9wZG93bldpZHRoXT1cIiczMjBweCdcIlxuICAgICAgICBbZGF0YVNvdXJjZV09XCJkYXRhU291cmNlXCJcbiAgICAgICAgW25nTW9kZWxdPVwic2VsZWN0ZWRDb3VudHJ5KClcIlxuICAgICAgICBbdGV4dEZpZWxkXT1cIidpc28yY29kZSdcIlxuICAgICAgICBbbXVsdGlwbGVdPVwiZmFsc2VcIlxuICAgICAgICBbdmFsdWVGaWVsZF09XCInY29kZSdcIlxuICAgICAgICBbaXRlbVRlbXBsYXRlXT1cImN1c3RvbUl0ZW1UZW1wbGF0ZVwiXG4gICAgICAgIFtzZWxlY3RlZFRlbXBsYXRlXT1cInNlbGVjdGVkVGVtcGxhdGVcIlxuICAgICAgICAob25WYWx1ZUNoYW5nZWQpPVwiX2hhbmRsZUNvdW50cnlWYWx1ZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgIChvbkNsb3NlZCk9XCJoYW5kbGVDb3VudHJ5T25DbG9zZWQoKVwiXG4gICAgICAgIFt0YWJJbmRleF09XCJpbmNsdWRlZCgpLmxlbmd0aCA9PT0gMSA/ICctMScgOiAnMSdcIlxuICAgICAgPlxuICAgICAgICA8YXgtc2VhcmNoLWJveCBjbGFzcz1cImF4LXNtXCIgbG9vaz1cImZpbGxcIj5cbiAgICAgICAgICA8YXgtY2xlYXItYnV0dG9uPjwvYXgtY2xlYXItYnV0dG9uPlxuICAgICAgICA8L2F4LXNlYXJjaC1ib3g+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjY3VzdG9tSXRlbVRlbXBsYXRlIGxldC1pdGVtPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1jb3VudHJ5LWl0ZW1cIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJheC1jb3VudHJ5LWZsYWdcIlxuICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgICAgICAgJ2JhY2tncm91bmQtcG9zaXRpb24nOiBpdGVtLmRhdGEuYmtQb3NpdGlvbj8ueCArICcgJyArIGl0ZW0uZGF0YS5ia1Bvc2l0aW9uPy55LFxuICAgICAgICAgICAgICAgICdiYWNrZ3JvdW5kLWltYWdlJzogJ3VybCgnICsgZmxhZ3MoKSArICcpJyxcbiAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF4LWNvdW50cnktbmFtZVwiPnt7IGl0ZW0uZGF0YS5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF4LWlzbzJjb2RlXCI+e3sgaXRlbS5kYXRhLmlzbzJjb2RlIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjc2VsZWN0ZWRUZW1wbGF0ZSBsZXQtaXRlbT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtc2VsZWN0ZWQtY291bnRyeVwiPlxuICAgICAgICAgICAgPHNwYW4+e3sgaXRlbS5kYXRhLmlzbzJjb2RlIH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2xvYWRpbmc+PC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvYXgtc2VsZWN0LWJveD5cbiAgICB9XG4gIDwvYXgtcHJlZml4PlxuPC9heC10ZXh0LWJveD5cblxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtY2xlYXItYnV0dG9uIFwiPjwvbmctY29udGVudD5cbjxkaXYgY2xhc3M9XCJheC1lcnJvci1jb250YWluZXJcIj48L2Rpdj5cbiJdfQ==","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXSearchBoxModule } from '@acorex/components/search-box';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { IMaskModule } from 'angular-imask';\nimport { AXPhoneBoxComponent } from './phone-box.component';\nimport * as i0 from \"@angular/core\";\nconst COMPONENT = [AXPhoneBoxComponent];\nconst MODULES = [\n CommonModule,\n FormsModule,\n IMaskModule,\n AXSelectBoxModule,\n AXSearchBoxModule,\n AXDecoratorModule,\n AXButtonModule,\n AXTextBoxModule,\n];\nexport class AXPhoneBoxModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.16\", ngImport: i0, type: AXPhoneBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.16\", ngImport: i0, type: AXPhoneBoxModule, imports: [CommonModule,\n FormsModule,\n IMaskModule,\n AXSelectBoxModule,\n AXSearchBoxModule,\n AXDecoratorModule,\n AXButtonModule,\n AXTextBoxModule, AXPhoneBoxComponent], exports: [AXPhoneBoxComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.16\", ngImport: i0, type: AXPhoneBoxModule, imports: [MODULES, COMPONENT] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.16\", ngImport: i0, type: AXPhoneBoxModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtYm94Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvcGhvbmUtYm94L3NyYy9saWIvcGhvbmUtYm94Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQUU1RCxNQUFNLFNBQVMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUM7QUFDeEMsTUFBTSxPQUFPLEdBQUc7SUFDZCxZQUFZO0lBQ1osV0FBVztJQUNYLFdBQVc7SUFDWCxpQkFBaUI7SUFDakIsaUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUNqQixjQUFjO0lBQ2QsZUFBZTtDQUNoQixDQUFDO0FBT0YsTUFBTSxPQUFPLGdCQUFnQjsrR0FBaEIsZ0JBQWdCO2dIQUFoQixnQkFBZ0IsWUFmM0IsWUFBWTtZQUNaLFdBQVc7WUFDWCxXQUFXO1lBQ1gsaUJBQWlCO1lBQ2pCLGlCQUFpQjtZQUNqQixpQkFBaUI7WUFDakIsY0FBYztZQUNkLGVBQWUsRUFURSxtQkFBbUIsYUFBbkIsbUJBQW1CO2dIQWlCekIsZ0JBQWdCLFlBSmQsT0FBTyxFQUFLLFNBQVM7OzRGQUl2QixnQkFBZ0I7a0JBTDVCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsR0FBRyxPQUFPLEVBQUUsR0FBRyxTQUFTLENBQUM7b0JBQ25DLE9BQU8sRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDO29CQUN2QixTQUFTLEVBQUUsRUFBRTtpQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYU2VhcmNoQm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3NlYXJjaC1ib3gnO1xuaW1wb3J0IHsgQVhTZWxlY3RCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvc2VsZWN0LWJveCc7XG5pbXBvcnQgeyBBWFRleHRCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdGV4dC1ib3gnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElNYXNrTW9kdWxlIH0gZnJvbSAnYW5ndWxhci1pbWFzayc7XG5pbXBvcnQgeyBBWFBob25lQm94Q29tcG9uZW50IH0gZnJvbSAnLi9waG9uZS1ib3guY29tcG9uZW50JztcblxuY29uc3QgQ09NUE9ORU5UID0gW0FYUGhvbmVCb3hDb21wb25lbnRdO1xuY29uc3QgTU9EVUxFUyA9IFtcbiAgQ29tbW9uTW9kdWxlLFxuICBGb3Jtc01vZHVsZSxcbiAgSU1hc2tNb2R1bGUsXG4gIEFYU2VsZWN0Qm94TW9kdWxlLFxuICBBWFNlYXJjaEJveE1vZHVsZSxcbiAgQVhEZWNvcmF0b3JNb2R1bGUsXG4gIEFYQnV0dG9uTW9kdWxlLFxuICBBWFRleHRCb3hNb2R1bGUsXG5dO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbLi4uTU9EVUxFUywgLi4uQ09NUE9ORU5UXSxcbiAgZXhwb3J0czogWy4uLkNPTVBPTkVOVF0sXG4gIHByb3ZpZGVyczogW10sXG59KVxuZXhwb3J0IGNsYXNzIEFYUGhvbmVCb3hNb2R1bGUge31cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvbXBvbmVudHMtcGhvbmUtYm94LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9waG9uZS1ib3gvc3JjL2Fjb3JleC1jb21wb25lbnRzLXBob25lLWJveC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
|