ecabs-components 1.1.15 → 1.1.16
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/README.md +1 -0
- package/esm2022/lib/base/consts/country-codes.mjs +559 -0
- package/esm2022/lib/base/models/phone.models.mjs +2 -0
- package/esm2022/lib/base/pipes/search.pipe.mjs +22 -0
- package/esm2022/lib/base/validators/phone-number.validator.mjs +23 -0
- package/esm2022/lib/ecabs-base-phone-input/ecabs-base-phone.component.mjs +415 -0
- package/esm2022/lib/ecabs-base-phone-input/ecabs-base-phone.module.mjs +58 -0
- package/esm2022/lib/ecabs-phone/ecabs-phone.component.mjs +4 -4
- package/esm2022/lib/ecabs-phone/ecabs-phone.module.mjs +7 -7
- package/esm2022/public-api.mjs +3 -1
- package/fesm2022/ecabs-components.mjs +1098 -53
- package/fesm2022/ecabs-components.mjs.map +1 -1
- package/lib/base/consts/country-codes.d.ts +7 -0
- package/lib/base/models/phone.models.d.ts +10 -0
- package/lib/base/pipes/search.pipe.d.ts +8 -0
- package/lib/base/validators/phone-number.validator.d.ts +4 -0
- package/lib/ecabs-base-phone-input/ecabs-base-phone.component.d.ts +96 -0
- package/lib/ecabs-base-phone-input/ecabs-base-phone.module.d.ts +17 -0
- package/lib/ecabs-phone/ecabs-phone.component.d.ts +2 -2
- package/lib/ecabs-phone/ecabs-phone.module.d.ts +2 -2
- package/package.json +1 -2
- package/public-api.d.ts +2 -0
- package/src/assets/styles/material/overrides/_phone.scss +5 -5
- package/src/assets/styles/scss/modules/_phone.scss +3 -3
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUubW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2Jhc2UvbW9kZWxzL3Bob25lLm1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgUGhvbmVOdW1iZXJGb3JtYXQgPSAnZGVmYXVsdCcgfCAnbmF0aW9uYWwnIHwgJ2ludGVybmF0aW9uYWwnO1xyXG5cclxuZXhwb3J0IHR5cGUgQ291bnRyeSA9IHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgaXNvMjogc3RyaW5nO1xyXG4gIGRpYWxDb2RlOiBzdHJpbmc7XHJcbiAgcHJpb3JpdHk6IG51bWJlcjtcclxuICBhcmVhQ29kZXM/OiBzdHJpbmdbXTtcclxuICBmbGFnQ2xhc3M6IHN0cmluZztcclxuICBwbGFjZUhvbGRlcj86IHN0cmluZztcclxufTtcclxuIl19
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class SearchPipe {
|
|
4
|
+
transform(country, searchCriteria) {
|
|
5
|
+
if (!searchCriteria || searchCriteria === '') {
|
|
6
|
+
return true;
|
|
7
|
+
}
|
|
8
|
+
return `${country.name}+${country.dialCode}`
|
|
9
|
+
.toLowerCase()
|
|
10
|
+
.includes(searchCriteria.toLowerCase());
|
|
11
|
+
}
|
|
12
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SearchPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
13
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: SearchPipe, isStandalone: true, name: "search" });
|
|
14
|
+
}
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SearchPipe, decorators: [{
|
|
16
|
+
type: Pipe,
|
|
17
|
+
args: [{
|
|
18
|
+
name: 'search',
|
|
19
|
+
standalone: true,
|
|
20
|
+
}]
|
|
21
|
+
}] });
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lY2Ficy1jb21wb25lbnRzL3NyYy9saWIvYmFzZS9waXBlcy9zZWFyY2gucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFPcEQsTUFBTSxPQUFPLFVBQVU7SUFDckIsU0FBUyxDQUFDLE9BQWdCLEVBQUUsY0FBdUI7UUFDakQsSUFBSSxDQUFDLGNBQWMsSUFBSSxjQUFjLEtBQUssRUFBRSxFQUFFO1lBQzVDLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxPQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFO2FBQ3pDLFdBQVcsRUFBRTthQUNiLFFBQVEsQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUM1QyxDQUFDO3dHQVRVLFVBQVU7c0dBQVYsVUFBVTs7NEZBQVYsVUFBVTtrQkFKdEIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsUUFBUTtvQkFDZCxVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvdW50cnkgfSBmcm9tICcuLi9tb2RlbHMvcGhvbmUubW9kZWxzJztcclxuXHJcbkBQaXBlKHtcclxuICBuYW1lOiAnc2VhcmNoJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VhcmNoUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gIHRyYW5zZm9ybShjb3VudHJ5OiBDb3VudHJ5LCBzZWFyY2hDcml0ZXJpYT86IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCFzZWFyY2hDcml0ZXJpYSB8fCBzZWFyY2hDcml0ZXJpYSA9PT0gJycpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGAke2NvdW50cnkubmFtZX0rJHtjb3VudHJ5LmRpYWxDb2RlfWBcclxuICAgICAgLnRvTG93ZXJDYXNlKClcclxuICAgICAgLmluY2x1ZGVzKHNlYXJjaENyaXRlcmlhLnRvTG93ZXJDYXNlKCkpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { parsePhoneNumber } from 'libphonenumber-js';
|
|
2
|
+
export const phoneNumberValidator = (control) => {
|
|
3
|
+
const error = { validatePhoneNumber: true };
|
|
4
|
+
let numberInstance;
|
|
5
|
+
if (control.value) {
|
|
6
|
+
try {
|
|
7
|
+
numberInstance = parsePhoneNumber(control.value);
|
|
8
|
+
}
|
|
9
|
+
catch (e) {
|
|
10
|
+
control.setValue(null);
|
|
11
|
+
return error;
|
|
12
|
+
}
|
|
13
|
+
if (numberInstance && !numberInstance.isValid()) {
|
|
14
|
+
control.setValue(null);
|
|
15
|
+
if (!control.touched) {
|
|
16
|
+
control.markAsTouched();
|
|
17
|
+
}
|
|
18
|
+
return error;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return null;
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtbnVtYmVyLnZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9iYXNlL3ZhbGlkYXRvcnMvcGhvbmUtbnVtYmVyLnZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQWUsTUFBTSxtQkFBbUIsQ0FBQztBQUVsRSxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLE9BQTJCLEVBQUUsRUFBRTtJQUNsRSxNQUFNLEtBQUssR0FBRyxFQUFFLG1CQUFtQixFQUFFLElBQUksRUFBRSxDQUFDO0lBQzVDLElBQUksY0FBMkIsQ0FBQztJQUNoQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUU7UUFDakIsSUFBSTtZQUNGLGNBQWMsR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDbEQ7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFdkIsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUVELElBQUksY0FBYyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQy9DLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUU7Z0JBQ3BCLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQzthQUN6QjtZQUVELE9BQU8sS0FBSyxDQUFDO1NBQ2Q7S0FDRjtJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVW50eXBlZEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBwYXJzZVBob25lTnVtYmVyLCBQaG9uZU51bWJlciB9IGZyb20gJ2xpYnBob25lbnVtYmVyLWpzJztcclxuXHJcbmV4cG9ydCBjb25zdCBwaG9uZU51bWJlclZhbGlkYXRvciA9IChjb250cm9sOiBVbnR5cGVkRm9ybUNvbnRyb2wpID0+IHtcclxuICBjb25zdCBlcnJvciA9IHsgdmFsaWRhdGVQaG9uZU51bWJlcjogdHJ1ZSB9O1xyXG4gIGxldCBudW1iZXJJbnN0YW5jZTogUGhvbmVOdW1iZXI7XHJcbiAgaWYgKGNvbnRyb2wudmFsdWUpIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIG51bWJlckluc3RhbmNlID0gcGFyc2VQaG9uZU51bWJlcihjb250cm9sLnZhbHVlKTtcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgY29udHJvbC5zZXRWYWx1ZShudWxsKTtcclxuXHJcbiAgICAgIHJldHVybiBlcnJvcjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAobnVtYmVySW5zdGFuY2UgJiYgIW51bWJlckluc3RhbmNlLmlzVmFsaWQoKSkge1xyXG4gICAgICBjb250cm9sLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICBpZiAoIWNvbnRyb2wudG91Y2hlZCkge1xyXG4gICAgICAgIGNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gZXJyb3I7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXR1cm4gbnVsbDtcclxufTtcclxuIl19
|
|
@@ -0,0 +1,415 @@
|
|
|
1
|
+
// eslint-disable @typescript-eslint/no-explicit-any
|
|
2
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Input, Optional, Output, Self, ViewChild, } from '@angular/core';
|
|
3
|
+
import { MatFormFieldControl } from '@angular/material/form-field';
|
|
4
|
+
import { NG_VALIDATORS, } from '@angular/forms';
|
|
5
|
+
import { AsYouType, getExampleNumber, parsePhoneNumberFromString, } from 'libphonenumber-js';
|
|
6
|
+
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
7
|
+
import { ErrorStateMatcher, mixinErrorState, } from '@angular/material/core';
|
|
8
|
+
import { MatMenu } from '@angular/material/menu';
|
|
9
|
+
import { debounceTime, Subject } from 'rxjs';
|
|
10
|
+
import { CountryCode, Examples } from '../base/consts/country-codes';
|
|
11
|
+
import { phoneNumberValidator } from '../base/validators/phone-number.validator';
|
|
12
|
+
import * as i0 from "@angular/core";
|
|
13
|
+
import * as i1 from "../base/consts/country-codes";
|
|
14
|
+
import * as i2 from "@angular/cdk/a11y";
|
|
15
|
+
import * as i3 from "@angular/forms";
|
|
16
|
+
import * as i4 from "@angular/material/core";
|
|
17
|
+
import * as i5 from "@angular/common";
|
|
18
|
+
import * as i6 from "@angular/material/input";
|
|
19
|
+
import * as i7 from "@angular/material/menu";
|
|
20
|
+
import * as i8 from "@angular/material/button";
|
|
21
|
+
import * as i9 from "@angular/material/divider";
|
|
22
|
+
import * as i10 from "../base/pipes/search.pipe";
|
|
23
|
+
class NgxMatIntlTelInputBase {
|
|
24
|
+
_defaultErrorStateMatcher;
|
|
25
|
+
_parentForm;
|
|
26
|
+
_parentFormGroup;
|
|
27
|
+
ngControl;
|
|
28
|
+
stateChanges = new Subject();
|
|
29
|
+
constructor(_defaultErrorStateMatcher, _parentForm, _parentFormGroup, ngControl) {
|
|
30
|
+
this._defaultErrorStateMatcher = _defaultErrorStateMatcher;
|
|
31
|
+
this._parentForm = _parentForm;
|
|
32
|
+
this._parentFormGroup = _parentFormGroup;
|
|
33
|
+
this.ngControl = ngControl;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
const _NgxMatIntlTelInputMixinBase = mixinErrorState(NgxMatIntlTelInputBase);
|
|
37
|
+
export class EcabsBasePhoneComponent extends _NgxMatIntlTelInputMixinBase {
|
|
38
|
+
changeDetectorRef;
|
|
39
|
+
countryCodeData;
|
|
40
|
+
fm;
|
|
41
|
+
elRef;
|
|
42
|
+
ngControl;
|
|
43
|
+
preferredCountries = [];
|
|
44
|
+
enablePlaceholder = true;
|
|
45
|
+
inputPlaceholder;
|
|
46
|
+
cssClass;
|
|
47
|
+
name;
|
|
48
|
+
onlyCountries = [];
|
|
49
|
+
errorStateMatcher = new ErrorStateMatcher();
|
|
50
|
+
enableSearch = false;
|
|
51
|
+
searchPlaceholder;
|
|
52
|
+
describedBy = '';
|
|
53
|
+
debounceTimeMs = 500;
|
|
54
|
+
get format() {
|
|
55
|
+
return this._format;
|
|
56
|
+
}
|
|
57
|
+
get placeholder() {
|
|
58
|
+
return this._placeholder || '';
|
|
59
|
+
}
|
|
60
|
+
get required() {
|
|
61
|
+
return this._required;
|
|
62
|
+
}
|
|
63
|
+
get disabled() {
|
|
64
|
+
return this._disabled;
|
|
65
|
+
}
|
|
66
|
+
countryChanged = new EventEmitter();
|
|
67
|
+
matMenu;
|
|
68
|
+
searchInput;
|
|
69
|
+
id = `ecabs-intl-tel-input-${EcabsBasePhoneComponent.nextId++}`;
|
|
70
|
+
get shouldLabelFloat() {
|
|
71
|
+
return this.focused || !this.empty;
|
|
72
|
+
}
|
|
73
|
+
static nextId = 0;
|
|
74
|
+
_changeSubject = new Subject();
|
|
75
|
+
_placeholder;
|
|
76
|
+
_required = false;
|
|
77
|
+
_disabled = false;
|
|
78
|
+
_previousFormattedNumber;
|
|
79
|
+
_format = 'default';
|
|
80
|
+
stateChanges = new Subject();
|
|
81
|
+
focused = false;
|
|
82
|
+
phoneNumber;
|
|
83
|
+
allCountries = [];
|
|
84
|
+
preferredCountriesInDropDown = [];
|
|
85
|
+
selectedCountry;
|
|
86
|
+
numberInstance;
|
|
87
|
+
value;
|
|
88
|
+
searchCriteria;
|
|
89
|
+
get empty() {
|
|
90
|
+
return !this.phoneNumber;
|
|
91
|
+
}
|
|
92
|
+
set format(value) {
|
|
93
|
+
this._format = value;
|
|
94
|
+
this.phoneNumber = this.formattedPhoneNumber;
|
|
95
|
+
this.stateChanges.next(undefined);
|
|
96
|
+
}
|
|
97
|
+
set placeholder(value) {
|
|
98
|
+
this._placeholder = value;
|
|
99
|
+
this.stateChanges.next(undefined);
|
|
100
|
+
}
|
|
101
|
+
set required(value) {
|
|
102
|
+
this._required = coerceBooleanProperty(value);
|
|
103
|
+
this.stateChanges.next(undefined);
|
|
104
|
+
}
|
|
105
|
+
set disabled(value) {
|
|
106
|
+
this._disabled = coerceBooleanProperty(value);
|
|
107
|
+
this.stateChanges.next(undefined);
|
|
108
|
+
}
|
|
109
|
+
static getPhoneNumberPlaceHolder(countryISOCode) {
|
|
110
|
+
const result = getExampleNumber(countryISOCode, Examples);
|
|
111
|
+
// eslint-disable-next-line no-extra-boolean-cast
|
|
112
|
+
return !!result ? result.number.toString() : undefined;
|
|
113
|
+
}
|
|
114
|
+
onTouched = () => { };
|
|
115
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
116
|
+
propagateChange = (_) => { };
|
|
117
|
+
constructor(changeDetectorRef, countryCodeData, fm, elRef, ngControl, parentForm, parentFormGroup, defaultErrorStateMatcher) {
|
|
118
|
+
super(defaultErrorStateMatcher, parentForm, parentFormGroup, ngControl);
|
|
119
|
+
this.changeDetectorRef = changeDetectorRef;
|
|
120
|
+
this.countryCodeData = countryCodeData;
|
|
121
|
+
this.fm = fm;
|
|
122
|
+
this.elRef = elRef;
|
|
123
|
+
this.ngControl = ngControl;
|
|
124
|
+
fm.monitor(elRef, true).subscribe((origin) => {
|
|
125
|
+
if (this.focused && !origin) {
|
|
126
|
+
this.onTouched();
|
|
127
|
+
}
|
|
128
|
+
this.focused = !!origin;
|
|
129
|
+
this.stateChanges.next(undefined);
|
|
130
|
+
});
|
|
131
|
+
this.fetchCountryData();
|
|
132
|
+
if (this.ngControl != null) {
|
|
133
|
+
this.ngControl.valueAccessor = this;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
ngOnInit() {
|
|
137
|
+
if (!this.searchPlaceholder) {
|
|
138
|
+
this.searchPlaceholder = 'Search ...';
|
|
139
|
+
}
|
|
140
|
+
if (this.preferredCountries.length) {
|
|
141
|
+
this.preferredCountries.forEach((iso2) => {
|
|
142
|
+
const preferredCountry = this.allCountries
|
|
143
|
+
.filter((c) => c.iso2 === iso2)
|
|
144
|
+
.shift();
|
|
145
|
+
if (preferredCountry) {
|
|
146
|
+
this.preferredCountriesInDropDown.push(preferredCountry);
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
if (this.onlyCountries.length) {
|
|
151
|
+
this.allCountries = this.allCountries.filter((c) => this.onlyCountries.includes(c.iso2));
|
|
152
|
+
}
|
|
153
|
+
if (this.numberInstance && this.numberInstance.country) {
|
|
154
|
+
// If an existing number is present, we use it to determine selectedCountry
|
|
155
|
+
this.selectedCountry = this.getCountry(this.numberInstance.country);
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
if (this.preferredCountriesInDropDown.length) {
|
|
159
|
+
this.selectedCountry = this.preferredCountriesInDropDown[0];
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
this.selectedCountry = this.allCountries[0];
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
this._changeSubject
|
|
166
|
+
.pipe(debounceTime(this.debounceTimeMs))
|
|
167
|
+
.subscribe(() => {
|
|
168
|
+
this.onPhoneNumberChange();
|
|
169
|
+
});
|
|
170
|
+
this.countryChanged.emit(this.selectedCountry);
|
|
171
|
+
this.changeDetectorRef.markForCheck();
|
|
172
|
+
this.stateChanges.next(undefined);
|
|
173
|
+
}
|
|
174
|
+
ngDoCheck() {
|
|
175
|
+
if (this.ngControl) {
|
|
176
|
+
this.updateErrorState();
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
ngOnDestroy() {
|
|
180
|
+
this.stateChanges.complete();
|
|
181
|
+
this.fm.stopMonitoring(this.elRef);
|
|
182
|
+
this._changeSubject.complete();
|
|
183
|
+
}
|
|
184
|
+
onPhoneNumberChangeDebounce() {
|
|
185
|
+
this._changeSubject.next(undefined);
|
|
186
|
+
}
|
|
187
|
+
onPhoneNumberChange() {
|
|
188
|
+
try {
|
|
189
|
+
this.numberInstance = parsePhoneNumberFromString(this.phoneNumber?.toString() || '', this.selectedCountry?.iso2.toUpperCase());
|
|
190
|
+
this.formatAsYouTypeIfEnabled();
|
|
191
|
+
this.value = this.numberInstance?.number;
|
|
192
|
+
if (this.numberInstance && this.numberInstance.isValid()) {
|
|
193
|
+
if (this.phoneNumber !== this.formattedPhoneNumber) {
|
|
194
|
+
this.phoneNumber = this.formattedPhoneNumber;
|
|
195
|
+
}
|
|
196
|
+
if (this.selectedCountry?.iso2 !== this.numberInstance.country &&
|
|
197
|
+
!!this.numberInstance.country) {
|
|
198
|
+
this.selectedCountry = this.getCountry(this.numberInstance.country);
|
|
199
|
+
this.countryChanged.emit(this.selectedCountry);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
catch {
|
|
204
|
+
// if no possible numbers are there,
|
|
205
|
+
// then the full number is passed so that validator could be triggered and proper error could be shown
|
|
206
|
+
this.value = this.phoneNumber?.toString();
|
|
207
|
+
}
|
|
208
|
+
this.propagateChange(this.value);
|
|
209
|
+
this.changeDetectorRef.markForCheck();
|
|
210
|
+
}
|
|
211
|
+
onCountrySelect(country) {
|
|
212
|
+
if (this.phoneNumber) {
|
|
213
|
+
this.phoneNumber = this.numberInstance?.nationalNumber;
|
|
214
|
+
}
|
|
215
|
+
this.selectedCountry = country;
|
|
216
|
+
this.countryChanged.emit(this.selectedCountry);
|
|
217
|
+
this.onPhoneNumberChange();
|
|
218
|
+
}
|
|
219
|
+
getCountry(code) {
|
|
220
|
+
return (this.allCountries.find((c) => c.iso2 === code.toLowerCase()) || {
|
|
221
|
+
name: 'UN',
|
|
222
|
+
iso2: 'UN',
|
|
223
|
+
dialCode: '',
|
|
224
|
+
priority: 0,
|
|
225
|
+
areaCodes: undefined,
|
|
226
|
+
flagClass: 'UN',
|
|
227
|
+
placeHolder: '',
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
onInputKeyPress(event) {
|
|
231
|
+
const pattern = /[0-9+\- ]/;
|
|
232
|
+
if (!pattern.test(event.key)) {
|
|
233
|
+
event.preventDefault();
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
flagClass(lang) {
|
|
237
|
+
return `fi fi-${lang?.slice(-2).toLowerCase()}`;
|
|
238
|
+
}
|
|
239
|
+
registerOnChange(fn) {
|
|
240
|
+
this.propagateChange = fn;
|
|
241
|
+
}
|
|
242
|
+
registerOnTouched(fn) {
|
|
243
|
+
this.onTouched = fn;
|
|
244
|
+
}
|
|
245
|
+
setDisabledState(isDisabled) {
|
|
246
|
+
this.disabled = isDisabled;
|
|
247
|
+
this.changeDetectorRef.markForCheck();
|
|
248
|
+
this.stateChanges.next(undefined);
|
|
249
|
+
}
|
|
250
|
+
writeValue(value) {
|
|
251
|
+
if (value) {
|
|
252
|
+
this.numberInstance = parsePhoneNumberFromString(value);
|
|
253
|
+
if (this.numberInstance) {
|
|
254
|
+
const countryCode = this.numberInstance.country;
|
|
255
|
+
this.phoneNumber = this.formattedPhoneNumber;
|
|
256
|
+
if (!countryCode) {
|
|
257
|
+
return;
|
|
258
|
+
}
|
|
259
|
+
setTimeout(() => {
|
|
260
|
+
this.selectedCountry = this.getCountry(countryCode);
|
|
261
|
+
if (this.selectedCountry.dialCode &&
|
|
262
|
+
!this.preferredCountries.includes(this.selectedCountry.iso2)) {
|
|
263
|
+
this.preferredCountriesInDropDown.push(this.selectedCountry);
|
|
264
|
+
}
|
|
265
|
+
this.countryChanged.emit(this.selectedCountry);
|
|
266
|
+
// Initial value is set
|
|
267
|
+
this.changeDetectorRef.markForCheck();
|
|
268
|
+
this.stateChanges.next(undefined);
|
|
269
|
+
}, 1);
|
|
270
|
+
}
|
|
271
|
+
else {
|
|
272
|
+
this.phoneNumber = value;
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
// Value is set from outside using setValue()
|
|
276
|
+
this.changeDetectorRef.markForCheck();
|
|
277
|
+
this.stateChanges.next(undefined);
|
|
278
|
+
}
|
|
279
|
+
setDescribedByIds(ids) {
|
|
280
|
+
this.describedBy = ids.join(' ');
|
|
281
|
+
}
|
|
282
|
+
onContainerClick(event) {
|
|
283
|
+
if (event.target.tagName.toLowerCase() !== 'input') {
|
|
284
|
+
this.elRef.nativeElement.querySelector('input').focus();
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
reset() {
|
|
288
|
+
this.phoneNumber = '';
|
|
289
|
+
this.propagateChange(null);
|
|
290
|
+
this.changeDetectorRef.markForCheck();
|
|
291
|
+
this.stateChanges.next(undefined);
|
|
292
|
+
}
|
|
293
|
+
onSearchInput() {
|
|
294
|
+
setTimeout(() => {
|
|
295
|
+
this.searchInput?.nativeElement?.focus();
|
|
296
|
+
}, 200);
|
|
297
|
+
}
|
|
298
|
+
fetchCountryData() {
|
|
299
|
+
this.countryCodeData.allCountries.forEach((c) => {
|
|
300
|
+
const country = {
|
|
301
|
+
name: c[0].toString(),
|
|
302
|
+
iso2: c[1].toString(),
|
|
303
|
+
dialCode: c[2].toString(),
|
|
304
|
+
priority: +c[3] || 0,
|
|
305
|
+
areaCodes: c[4] || undefined,
|
|
306
|
+
flagClass: c[1].toString().toUpperCase(),
|
|
307
|
+
placeHolder: '',
|
|
308
|
+
};
|
|
309
|
+
if (this.enablePlaceholder) {
|
|
310
|
+
country.placeHolder = EcabsBasePhoneComponent.getPhoneNumberPlaceHolder(country.iso2.toUpperCase());
|
|
311
|
+
}
|
|
312
|
+
this.allCountries.push(country);
|
|
313
|
+
});
|
|
314
|
+
}
|
|
315
|
+
get formattedPhoneNumber() {
|
|
316
|
+
if (!this.numberInstance) {
|
|
317
|
+
return this.phoneNumber?.toString() || '';
|
|
318
|
+
}
|
|
319
|
+
switch (this.format) {
|
|
320
|
+
case 'national':
|
|
321
|
+
return this.numberInstance.formatNational();
|
|
322
|
+
case 'international':
|
|
323
|
+
return this.numberInstance.formatInternational();
|
|
324
|
+
default:
|
|
325
|
+
return this.numberInstance.nationalNumber.toString();
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
formatAsYouTypeIfEnabled() {
|
|
329
|
+
if (this.format === 'default') {
|
|
330
|
+
return;
|
|
331
|
+
}
|
|
332
|
+
const asYouType = new AsYouType(this.selectedCountry?.iso2.toUpperCase());
|
|
333
|
+
// To avoid caret positioning we apply formatting only if the caret is at the end:
|
|
334
|
+
if (this.phoneNumber
|
|
335
|
+
?.toString()
|
|
336
|
+
.startsWith(this._previousFormattedNumber || '')) {
|
|
337
|
+
this.phoneNumber = asYouType.input(this.phoneNumber.toString());
|
|
338
|
+
}
|
|
339
|
+
this._previousFormattedNumber = this.phoneNumber?.toString();
|
|
340
|
+
}
|
|
341
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsBasePhoneComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.CountryCode }, { token: i2.FocusMonitor }, { token: i0.ElementRef }, { token: i3.NgControl, optional: true, self: true }, { token: i3.NgForm, optional: true }, { token: i3.FormGroupDirective, optional: true }, { token: i4.ErrorStateMatcher }], target: i0.ɵɵFactoryTarget.Component });
|
|
342
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsBasePhoneComponent, selector: "ecabs-base-phone", inputs: { preferredCountries: "preferredCountries", enablePlaceholder: "enablePlaceholder", inputPlaceholder: "inputPlaceholder", cssClass: "cssClass", name: "name", onlyCountries: "onlyCountries", errorStateMatcher: "errorStateMatcher", enableSearch: "enableSearch", searchPlaceholder: "searchPlaceholder", describedBy: "describedBy", debounceTimeMs: "debounceTimeMs", format: "format", placeholder: "placeholder", required: "required", disabled: "disabled" }, outputs: { countryChanged: "countryChanged" }, host: { properties: { "id": "this.id", "class.ngx-floating": "this.shouldLabelFloat" } }, providers: [
|
|
343
|
+
CountryCode,
|
|
344
|
+
{ provide: MatFormFieldControl, useExisting: EcabsBasePhoneComponent },
|
|
345
|
+
{
|
|
346
|
+
provide: NG_VALIDATORS,
|
|
347
|
+
useValue: phoneNumberValidator,
|
|
348
|
+
multi: true,
|
|
349
|
+
},
|
|
350
|
+
], viewQueries: [{ propertyName: "matMenu", first: true, predicate: MatMenu, descendants: true }, { propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ecabs-tel-input-container\">\r\n <button\r\n type=\"button\"\r\n mat-button\r\n [matMenuTriggerFor]=\"menu\"\r\n class=\"country-selector\"\r\n [disabled]=\"disabled\"\r\n >\r\n <span\r\n class=\"country-selector-flag flag\"\r\n [ngClass]=\"flagClass(selectedCountry?.flagClass)\"\r\n ></span>\r\n <span class=\"country-selector-code\" *ngIf=\"selectedCountry?.dialCode\"\r\n >+{{ selectedCountry.dialCode }}</span\r\n >\r\n </button>\r\n <mat-menu #menu=\"matMenu\"\r\n class=\"ecabs-tel-input-mat-menu-panel\"\r\n backdropClass=\"ecabs-tel-input-overlay-backdrop\"\r\n overlayPanelClass=\"ecabs-tel-input-overlay-pane\">\r\n <input\r\n #searchInput\r\n *ngIf=\"enableSearch\"\r\n class=\"country-search\"\r\n [(ngModel)]=\"searchCriteria\"\r\n (ngModelChange)=\"onSearchInput()\"\r\n type=\"text\"\r\n [placeholder]=\"searchPlaceholder\"\r\n (click)=\"$event.stopPropagation()\"\r\n />\r\n <ng-container *ngIf=\"!searchCriteria\">\r\n <button\r\n type=\"button\"\r\n mat-menu-item\r\n class=\"country-list-button\"\r\n *ngFor=\"let country of preferredCountriesInDropDown\"\r\n (click)=\"onCountrySelect(country)\"\r\n >\r\n <div class=\"icon-wrapper\">\r\n <div class=\"flag\" \r\n [ngClass]=\"flagClass(country.flagClass)\"></div>\r\n </div>\r\n <div class=\"label-wrapper\">\r\n {{ country.name }}\r\n <span *ngIf=\"country?.dialCode\">+{{ country.dialCode }}</span>\r\n </div>\r\n </button>\r\n <mat-divider *ngIf=\"preferredCountriesInDropDown?.length\"></mat-divider>\r\n </ng-container>\r\n <ng-container *ngFor=\"let country of allCountries\">\r\n <button\r\n type=\"button\"\r\n mat-menu-item\r\n class=\"country-list-button\"\r\n *ngIf=\"country | search: searchCriteria\"\r\n (click)=\"onCountrySelect(country)\"\r\n >\r\n <div class=\"icon-wrapper\">\r\n <div class=\"flag\" [ngClass]=\"flagClass(country.flagClass)\"></div>\r\n </div>\r\n <div class=\"label-wrapper\">\r\n {{ country.name }} +{{ country.dialCode }}\r\n </div>\r\n </button>\r\n </ng-container>\r\n </mat-menu>\r\n\r\n <input\r\n matInput\r\n type=\"tel\"\r\n autocomplete=\"tel\"\r\n [ngClass]=\"cssClass\"\r\n (blur)=\"onTouched()\"\r\n (keypress)=\"onInputKeyPress($event)\"\r\n [(ngModel)]=\"phoneNumber\"\r\n (ngModelChange)=\"onPhoneNumberChangeDebounce()\"\r\n [errorStateMatcher]=\"errorStateMatcher\"\r\n [placeholder]=\"inputPlaceholder\"\r\n [disabled]=\"disabled\"\r\n [aria-describedby]=\"describedBy\"\r\n />\r\n</div>", styles: ["input:not(.country-search){border:none;background:none;outline:none;font:inherit;width:100%;box-sizing:border-box;padding:0 6px 0 90px;position:relative;z-index:0;margin-top:0!important;margin-bottom:0!important;margin-right:0;margin-left:0}input.country-search{width:100%;height:34px;border:none;border-bottom:1px solid #ddd;font-size:14px;padding:20px 20px 24px;position:sticky;top:0;background-color:#fff;z-index:9}.icon-wrapper{padding-right:24px}.flag{background-size:100% auto;filter:drop-shadow(1px 1px 1px rgba(0,0,0,.54));height:14px;width:24px}.icon-wrapper,.label-wrapper{display:table-cell;vertical-align:middle}.country-selector{border-radius:0;color:#000000de;flex-shrink:0;height:initial;line-height:unset;width:90px;padding:1px;opacity:0;transition:opacity .2s;position:absolute;z-index:1;inset:0 auto 0 0;font-size:inherit;font-weight:inherit;background-position:right center;background-repeat:no-repeat;background-size:18px auto}.country-selector:disabled{color:#00000061}:host.ngx-floating .country-selector{opacity:1!important}.country-selector-flag{display:inline-block;margin-right:.5ex}.country-list-button{color:#000000de;direction:ltr;font-size:16px;font-weight:400;height:initial;line-height:normal;min-height:48px;padding:14px 24px;text-align:left;text-transform:none;width:100%}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i7.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i7.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i7.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i9.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "pipe", type: i10.SearchPipe, name: "search" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
351
|
+
}
|
|
352
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsBasePhoneComponent, decorators: [{
|
|
353
|
+
type: Component,
|
|
354
|
+
args: [{ selector: 'ecabs-base-phone', standalone: false, providers: [
|
|
355
|
+
CountryCode,
|
|
356
|
+
{ provide: MatFormFieldControl, useExisting: EcabsBasePhoneComponent },
|
|
357
|
+
{
|
|
358
|
+
provide: NG_VALIDATORS,
|
|
359
|
+
useValue: phoneNumberValidator,
|
|
360
|
+
multi: true,
|
|
361
|
+
},
|
|
362
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ecabs-tel-input-container\">\r\n <button\r\n type=\"button\"\r\n mat-button\r\n [matMenuTriggerFor]=\"menu\"\r\n class=\"country-selector\"\r\n [disabled]=\"disabled\"\r\n >\r\n <span\r\n class=\"country-selector-flag flag\"\r\n [ngClass]=\"flagClass(selectedCountry?.flagClass)\"\r\n ></span>\r\n <span class=\"country-selector-code\" *ngIf=\"selectedCountry?.dialCode\"\r\n >+{{ selectedCountry.dialCode }}</span\r\n >\r\n </button>\r\n <mat-menu #menu=\"matMenu\"\r\n class=\"ecabs-tel-input-mat-menu-panel\"\r\n backdropClass=\"ecabs-tel-input-overlay-backdrop\"\r\n overlayPanelClass=\"ecabs-tel-input-overlay-pane\">\r\n <input\r\n #searchInput\r\n *ngIf=\"enableSearch\"\r\n class=\"country-search\"\r\n [(ngModel)]=\"searchCriteria\"\r\n (ngModelChange)=\"onSearchInput()\"\r\n type=\"text\"\r\n [placeholder]=\"searchPlaceholder\"\r\n (click)=\"$event.stopPropagation()\"\r\n />\r\n <ng-container *ngIf=\"!searchCriteria\">\r\n <button\r\n type=\"button\"\r\n mat-menu-item\r\n class=\"country-list-button\"\r\n *ngFor=\"let country of preferredCountriesInDropDown\"\r\n (click)=\"onCountrySelect(country)\"\r\n >\r\n <div class=\"icon-wrapper\">\r\n <div class=\"flag\" \r\n [ngClass]=\"flagClass(country.flagClass)\"></div>\r\n </div>\r\n <div class=\"label-wrapper\">\r\n {{ country.name }}\r\n <span *ngIf=\"country?.dialCode\">+{{ country.dialCode }}</span>\r\n </div>\r\n </button>\r\n <mat-divider *ngIf=\"preferredCountriesInDropDown?.length\"></mat-divider>\r\n </ng-container>\r\n <ng-container *ngFor=\"let country of allCountries\">\r\n <button\r\n type=\"button\"\r\n mat-menu-item\r\n class=\"country-list-button\"\r\n *ngIf=\"country | search: searchCriteria\"\r\n (click)=\"onCountrySelect(country)\"\r\n >\r\n <div class=\"icon-wrapper\">\r\n <div class=\"flag\" [ngClass]=\"flagClass(country.flagClass)\"></div>\r\n </div>\r\n <div class=\"label-wrapper\">\r\n {{ country.name }} +{{ country.dialCode }}\r\n </div>\r\n </button>\r\n </ng-container>\r\n </mat-menu>\r\n\r\n <input\r\n matInput\r\n type=\"tel\"\r\n autocomplete=\"tel\"\r\n [ngClass]=\"cssClass\"\r\n (blur)=\"onTouched()\"\r\n (keypress)=\"onInputKeyPress($event)\"\r\n [(ngModel)]=\"phoneNumber\"\r\n (ngModelChange)=\"onPhoneNumberChangeDebounce()\"\r\n [errorStateMatcher]=\"errorStateMatcher\"\r\n [placeholder]=\"inputPlaceholder\"\r\n [disabled]=\"disabled\"\r\n [aria-describedby]=\"describedBy\"\r\n />\r\n</div>", styles: ["input:not(.country-search){border:none;background:none;outline:none;font:inherit;width:100%;box-sizing:border-box;padding:0 6px 0 90px;position:relative;z-index:0;margin-top:0!important;margin-bottom:0!important;margin-right:0;margin-left:0}input.country-search{width:100%;height:34px;border:none;border-bottom:1px solid #ddd;font-size:14px;padding:20px 20px 24px;position:sticky;top:0;background-color:#fff;z-index:9}.icon-wrapper{padding-right:24px}.flag{background-size:100% auto;filter:drop-shadow(1px 1px 1px rgba(0,0,0,.54));height:14px;width:24px}.icon-wrapper,.label-wrapper{display:table-cell;vertical-align:middle}.country-selector{border-radius:0;color:#000000de;flex-shrink:0;height:initial;line-height:unset;width:90px;padding:1px;opacity:0;transition:opacity .2s;position:absolute;z-index:1;inset:0 auto 0 0;font-size:inherit;font-weight:inherit;background-position:right center;background-repeat:no-repeat;background-size:18px auto}.country-selector:disabled{color:#00000061}:host.ngx-floating .country-selector{opacity:1!important}.country-selector-flag{display:inline-block;margin-right:.5ex}.country-list-button{color:#000000de;direction:ltr;font-size:16px;font-weight:400;height:initial;line-height:normal;min-height:48px;padding:14px 24px;text-align:left;text-transform:none;width:100%}\n"] }]
|
|
363
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.CountryCode }, { type: i2.FocusMonitor }, { type: i0.ElementRef }, { type: i3.NgControl, decorators: [{
|
|
364
|
+
type: Optional
|
|
365
|
+
}, {
|
|
366
|
+
type: Self
|
|
367
|
+
}] }, { type: i3.NgForm, decorators: [{
|
|
368
|
+
type: Optional
|
|
369
|
+
}] }, { type: i3.FormGroupDirective, decorators: [{
|
|
370
|
+
type: Optional
|
|
371
|
+
}] }, { type: i4.ErrorStateMatcher }]; }, propDecorators: { preferredCountries: [{
|
|
372
|
+
type: Input
|
|
373
|
+
}], enablePlaceholder: [{
|
|
374
|
+
type: Input
|
|
375
|
+
}], inputPlaceholder: [{
|
|
376
|
+
type: Input
|
|
377
|
+
}], cssClass: [{
|
|
378
|
+
type: Input
|
|
379
|
+
}], name: [{
|
|
380
|
+
type: Input
|
|
381
|
+
}], onlyCountries: [{
|
|
382
|
+
type: Input
|
|
383
|
+
}], errorStateMatcher: [{
|
|
384
|
+
type: Input
|
|
385
|
+
}], enableSearch: [{
|
|
386
|
+
type: Input
|
|
387
|
+
}], searchPlaceholder: [{
|
|
388
|
+
type: Input
|
|
389
|
+
}], describedBy: [{
|
|
390
|
+
type: Input
|
|
391
|
+
}], debounceTimeMs: [{
|
|
392
|
+
type: Input
|
|
393
|
+
}], format: [{
|
|
394
|
+
type: Input
|
|
395
|
+
}], placeholder: [{
|
|
396
|
+
type: Input
|
|
397
|
+
}], required: [{
|
|
398
|
+
type: Input
|
|
399
|
+
}], disabled: [{
|
|
400
|
+
type: Input
|
|
401
|
+
}], countryChanged: [{
|
|
402
|
+
type: Output
|
|
403
|
+
}], matMenu: [{
|
|
404
|
+
type: ViewChild,
|
|
405
|
+
args: [MatMenu]
|
|
406
|
+
}], searchInput: [{
|
|
407
|
+
type: ViewChild,
|
|
408
|
+
args: ['searchInput', { static: false }]
|
|
409
|
+
}], id: [{
|
|
410
|
+
type: HostBinding
|
|
411
|
+
}], shouldLabelFloat: [{
|
|
412
|
+
type: HostBinding,
|
|
413
|
+
args: ['class.ngx-floating']
|
|
414
|
+
}] } });
|
|
415
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtYmFzZS1waG9uZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lY2Ficy1jb21wb25lbnRzL3NyYy9saWIvZWNhYnMtYmFzZS1waG9uZS1pbnB1dC9lY2Ficy1iYXNlLXBob25lLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1iYXNlLXBob25lLWlucHV0L2VjYWJzLWJhc2UtcGhvbmUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0RBQW9EO0FBQ3BELE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUdULFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEVBQ04sSUFBSSxFQUNKLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUVuRSxPQUFPLEVBSUwsYUFBYSxHQUNkLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUNMLFNBQVMsRUFHVCxnQkFBZ0IsRUFFaEIsMEJBQTBCLEdBRTNCLE1BQU0sbUJBQW1CLENBQUM7QUFHM0IsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUVMLGlCQUFpQixFQUNqQixlQUFlLEdBR2hCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDckUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7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cmNlc0NvbnRlbnQiOlsiLy8gZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG5pbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBEb0NoZWNrLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3B0aW9uYWwsXHJcbiAgT3V0cHV0LFxyXG4gIFNlbGYsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcblxyXG5pbXBvcnQge1xyXG4gIEZvcm1Hcm91cERpcmVjdGl2ZSxcclxuICBOZ0NvbnRyb2wsXHJcbiAgTmdGb3JtLFxyXG4gIE5HX1ZBTElEQVRPUlMsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge1xyXG4gIEFzWW91VHlwZSxcclxuICBDb3VudHJ5Q29kZSBhcyBDQyxcclxuICBFMTY0TnVtYmVyLFxyXG4gIGdldEV4YW1wbGVOdW1iZXIsXHJcbiAgTmF0aW9uYWxOdW1iZXIsXHJcbiAgcGFyc2VQaG9uZU51bWJlckZyb21TdHJpbmcsXHJcbiAgUGhvbmVOdW1iZXIsXHJcbn0gZnJvbSAnbGlicGhvbmVudW1iZXItanMnO1xyXG5cclxuaW1wb3J0IHsgRm9jdXNNb25pdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xyXG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xyXG5pbXBvcnQge1xyXG4gIENhblVwZGF0ZUVycm9yU3RhdGUsXHJcbiAgRXJyb3JTdGF0ZU1hdGNoZXIsXHJcbiAgbWl4aW5FcnJvclN0YXRlLFxyXG4gIF9BYnN0cmFjdENvbnN0cnVjdG9yLFxyXG4gIF9Db25zdHJ1Y3RvcixcclxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcclxuaW1wb3J0IHsgTWF0TWVudSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ291bnRyeUNvZGUsIEV4YW1wbGVzIH0gZnJvbSAnLi4vYmFzZS9jb25zdHMvY291bnRyeS1jb2Rlcyc7XHJcbmltcG9ydCB7IHBob25lTnVtYmVyVmFsaWRhdG9yIH0gZnJvbSAnLi4vYmFzZS92YWxpZGF0b3JzL3Bob25lLW51bWJlci52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBDb3VudHJ5LCBQaG9uZU51bWJlckZvcm1hdCB9IGZyb20gJy4uL2Jhc2UvbW9kZWxzL3Bob25lLm1vZGVscyc7XHJcblxyXG5jbGFzcyBOZ3hNYXRJbnRsVGVsSW5wdXRCYXNlIHtcclxuICByZWFkb25seSBzdGF0ZUNoYW5nZXMgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBfZGVmYXVsdEVycm9yU3RhdGVNYXRjaGVyOiBFcnJvclN0YXRlTWF0Y2hlcixcclxuICAgIHB1YmxpYyBfcGFyZW50Rm9ybTogTmdGb3JtLFxyXG4gICAgcHVibGljIF9wYXJlbnRGb3JtR3JvdXA6IEZvcm1Hcm91cERpcmVjdGl2ZSxcclxuICAgIHB1YmxpYyBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcclxuICApIHt9XHJcbn1cclxuXHJcbmRlY2xhcmUgdHlwZSBDYW5VcGRhdGVFcnJvclN0YXRlQ3RvciA9IF9Db25zdHJ1Y3RvcjxDYW5VcGRhdGVFcnJvclN0YXRlPiAmXHJcbiAgX0Fic3RyYWN0Q29uc3RydWN0b3I8Q2FuVXBkYXRlRXJyb3JTdGF0ZT47XHJcblxyXG5jb25zdCBfTmd4TWF0SW50bFRlbElucHV0TWl4aW5CYXNlOiBDYW5VcGRhdGVFcnJvclN0YXRlQ3RvciAmXHJcbiAgdHlwZW9mIE5neE1hdEludGxUZWxJbnB1dEJhc2UgPSBtaXhpbkVycm9yU3RhdGUoTmd4TWF0SW50bFRlbElucHV0QmFzZSk7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VjYWJzLWJhc2UtcGhvbmUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9lY2Ficy1iYXNlLXBob25lLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9lY2Ficy1iYXNlLXBob25lLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgc3RhbmRhbG9uZTogZmFsc2UsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBDb3VudHJ5Q29kZSxcclxuICAgIHsgcHJvdmlkZTogTWF0Rm9ybUZpZWxkQ29udHJvbCwgdXNlRXhpc3Rpbmc6IEVjYWJzQmFzZVBob25lQ29tcG9uZW50IH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXHJcbiAgICAgIHVzZVZhbHVlOiBwaG9uZU51bWJlclZhbGlkYXRvcixcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gIF0sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgRWNhYnNCYXNlUGhvbmVDb21wb25lbnRcclxuICBleHRlbmRzIF9OZ3hNYXRJbnRsVGVsSW5wdXRNaXhpbkJhc2VcclxuICBpbXBsZW1lbnRzXHJcbiAgICBPbkluaXQsXHJcbiAgICBPbkRlc3Ryb3ksXHJcbiAgICBEb0NoZWNrLFxyXG4gICAgQ2FuVXBkYXRlRXJyb3JTdGF0ZSxcclxuICAgIE1hdEZvcm1GaWVsZENvbnRyb2w8YW55PlxyXG57XHJcbiAgQElucHV0KCkgcHJlZmVycmVkQ291bnRyaWVzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIEBJbnB1dCgpIGVuYWJsZVBsYWNlaG9sZGVyID0gdHJ1ZTtcclxuICBASW5wdXQoKSBpbnB1dFBsYWNlaG9sZGVyOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgY3NzQ2xhc3M6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBuYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgb25seUNvdW50cmllczogc3RyaW5nW10gPSBbXTtcclxuICBASW5wdXQoKSBvdmVycmlkZSBlcnJvclN0YXRlTWF0Y2hlcjogRXJyb3JTdGF0ZU1hdGNoZXIgPVxyXG4gICAgbmV3IEVycm9yU3RhdGVNYXRjaGVyKCk7XHJcbiAgQElucHV0KCkgZW5hYmxlU2VhcmNoID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2VhcmNoUGxhY2Vob2xkZXI6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBkZXNjcmliZWRCeSA9ICcnO1xyXG4gIEBJbnB1dCgpIGRlYm91bmNlVGltZU1zID0gNTAwO1xyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGZvcm1hdCgpOiBQaG9uZU51bWJlckZvcm1hdCB7XHJcbiAgICByZXR1cm4gdGhpcy5fZm9ybWF0O1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgcGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9wbGFjZWhvbGRlciB8fCAnJztcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3JlcXVpcmVkO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KCkgY291bnRyeUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPENvdW50cnk+KCk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoTWF0TWVudSkgbWF0TWVudTogTWF0TWVudSB8IHVuZGVmaW5lZDtcclxuICBAVmlld0NoaWxkKCdzZWFyY2hJbnB1dCcsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIHNlYXJjaElucHV0OiBFbGVtZW50UmVmO1xyXG5cclxuICBASG9zdEJpbmRpbmcoKVxyXG4gIGlkID0gYGVjYWJzLWludGwtdGVsLWlucHV0LSR7RWNhYnNCYXNlUGhvbmVDb21wb25lbnQubmV4dElkKyt9YDtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5uZ3gtZmxvYXRpbmcnKVxyXG4gIGdldCBzaG91bGRMYWJlbEZsb2F0KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9jdXNlZCB8fCAhdGhpcy5lbXB0eTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBuZXh0SWQgPSAwO1xyXG5cclxuICBwcml2YXRlIF9jaGFuZ2VTdWJqZWN0ID0gbmV3IFN1YmplY3QoKTtcclxuICBwcml2YXRlIF9wbGFjZWhvbGRlcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIHByaXZhdGUgX3JlcXVpcmVkID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfZGlzYWJsZWQgPSBmYWxzZTtcclxuICBwcml2YXRlIF9wcmV2aW91c0Zvcm1hdHRlZE51bWJlcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIHByaXZhdGUgX2Zvcm1hdDogUGhvbmVOdW1iZXJGb3JtYXQgPSAnZGVmYXVsdCc7XHJcbiAgb3ZlcnJpZGUgc3RhdGVDaGFuZ2VzID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgZm9jdXNlZCA9IGZhbHNlO1xyXG4gIHBob25lTnVtYmVyOiBOYXRpb25hbE51bWJlciB8IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBhbGxDb3VudHJpZXM6IENvdW50cnlbXSA9IFtdO1xyXG4gIHByZWZlcnJlZENvdW50cmllc0luRHJvcERvd246IENvdW50cnlbXSA9IFtdO1xyXG4gIHNlbGVjdGVkQ291bnRyeTogQ291bnRyeSB8IHVuZGVmaW5lZDtcclxuICBudW1iZXJJbnN0YW5jZTogUGhvbmVOdW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgdmFsdWU6IEUxNjROdW1iZXIgfCBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgc2VhcmNoQ3JpdGVyaWE6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuXHJcbiAgZ2V0IGVtcHR5KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICF0aGlzLnBob25lTnVtYmVyO1xyXG4gIH1cclxuXHJcbiAgc2V0IGZvcm1hdCh2YWx1ZTogUGhvbmVOdW1iZXJGb3JtYXQpIHtcclxuICAgIHRoaXMuX2Zvcm1hdCA9IHZhbHVlO1xyXG4gICAgdGhpcy5waG9uZU51bWJlciA9IHRoaXMuZm9ybWF0dGVkUGhvbmVOdW1iZXI7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KHVuZGVmaW5lZCk7XHJcbiAgfVxyXG5cclxuICBzZXQgcGxhY2Vob2xkZXIodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fcGxhY2Vob2xkZXIgPSB2YWx1ZTtcclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQodW5kZWZpbmVkKTtcclxuICB9XHJcblxyXG4gIHNldCByZXF1aXJlZCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fcmVxdWlyZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCh1bmRlZmluZWQpO1xyXG4gIH1cclxuXHJcbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KHVuZGVmaW5lZCk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZ2V0UGhvbmVOdW1iZXJQbGFjZUhvbGRlcihjb3VudHJ5SVNPQ29kZTogQ0MpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgY29uc3QgcmVzdWx0ID0gZ2V0RXhhbXBsZU51bWJlcihjb3VudHJ5SVNPQ29kZSwgRXhhbXBsZXMpO1xyXG5cclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1leHRyYS1ib29sZWFuLWNhc3RcclxuICAgIHJldHVybiAhIXJlc3VsdCA/IHJlc3VsdC5udW1iZXIudG9TdHJpbmcoKSA6IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIG9uVG91Y2hlZCA9ICgpID0+IHt9O1xyXG5cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXHJcbiAgcHJvcGFnYXRlQ2hhbmdlID0gKF86IHVua25vd24pID0+IHt9O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBjb3VudHJ5Q29kZURhdGE6IENvdW50cnlDb2RlLFxyXG4gICAgcHJpdmF0ZSBmbTogRm9jdXNNb25pdG9yLFxyXG4gICAgcHJpdmF0ZSBlbFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXHJcbiAgICBAT3B0aW9uYWwoKSBAU2VsZigpIHB1YmxpYyBvdmVycmlkZSBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcclxuICAgIEBPcHRpb25hbCgpIHBhcmVudEZvcm06IE5nRm9ybSxcclxuICAgIEBPcHRpb25hbCgpIHBhcmVudEZvcm1Hcm91cDogRm9ybUdyb3VwRGlyZWN0aXZlLFxyXG4gICAgZGVmYXVsdEVycm9yU3RhdGVNYXRjaGVyOiBFcnJvclN0YXRlTWF0Y2hlcixcclxuICApIHtcclxuICAgIHN1cGVyKGRlZmF1bHRFcnJvclN0YXRlTWF0Y2hlciwgcGFyZW50Rm9ybSwgcGFyZW50Rm9ybUdyb3VwLCBuZ0NvbnRyb2wpO1xyXG5cclxuICAgIGZtLm1vbml0b3IoZWxSZWYsIHRydWUpLnN1YnNjcmliZSgob3JpZ2luKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmZvY3VzZWQgJiYgIW9yaWdpbikge1xyXG4gICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5mb2N1c2VkID0gISFvcmlnaW47XHJcbiAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQodW5kZWZpbmVkKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5mZXRjaENvdW50cnlEYXRhKCk7XHJcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wgIT0gbnVsbCkge1xyXG4gICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLnNlYXJjaFBsYWNlaG9sZGVyKSB7XHJcbiAgICAgIHRoaXMuc2VhcmNoUGxhY2Vob2xkZXIgPSAnU2VhcmNoIC4uLic7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5wcmVmZXJyZWRDb3VudHJpZXMubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMucHJlZmVycmVkQ291bnRyaWVzLmZvckVhY2goKGlzbzIpID0+IHtcclxuICAgICAgICBjb25zdCBwcmVmZXJyZWRDb3VudHJ5ID0gdGhpcy5hbGxDb3VudHJpZXNcclxuICAgICAgICAgIC5maWx0ZXIoKGMpID0+IGMuaXNvMiA9PT0gaXNvMilcclxuICAgICAgICAgIC5zaGlmdCgpO1xyXG4gICAgICAgIGlmIChwcmVmZXJyZWRDb3VudHJ5KSB7XHJcbiAgICAgICAgICB0aGlzLnByZWZlcnJlZENvdW50cmllc0luRHJvcERvd24ucHVzaChwcmVmZXJyZWRDb3VudHJ5KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMub25seUNvdW50cmllcy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5hbGxDb3VudHJpZXMgPSB0aGlzLmFsbENvdW50cmllcy5maWx0ZXIoKGMpID0+XHJcbiAgICAgICAgdGhpcy5vbmx5Q291bnRyaWVzLmluY2x1ZGVzKGMuaXNvMiksXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5udW1iZXJJbnN0YW5jZSAmJiB0aGlzLm51bWJlckluc3RhbmNlLmNvdW50cnkpIHtcclxuICAgICAgLy8gSWYgYW4gZXhpc3RpbmcgbnVtYmVyIGlzIHByZXNlbnQsIHdlIHVzZSBpdCB0byBkZXRlcm1pbmUgc2VsZWN0ZWRDb3VudHJ5XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5ID0gdGhpcy5nZXRDb3VudHJ5KHRoaXMubnVtYmVySW5zdGFuY2UuY291bnRyeSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5wcmVmZXJyZWRDb3VudHJpZXNJbkRyb3BEb3duLmxlbmd0aCkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5ID0gdGhpcy5wcmVmZXJyZWRDb3VudHJpZXNJbkRyb3BEb3duWzBdO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5ID0gdGhpcy5hbGxDb3VudHJpZXNbMF07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuX2NoYW5nZVN1YmplY3RcclxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKHRoaXMuZGVib3VuY2VUaW1lTXMpKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLm9uUGhvbmVOdW1iZXJDaGFuZ2UoKTtcclxuICAgICAgfSk7XHJcbiAgICB0aGlzLmNvdW50cnlDaGFuZ2VkLmVtaXQodGhpcy5zZWxlY3RlZENvdW50cnkpO1xyXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQodW5kZWZpbmVkKTtcclxuICB9XHJcblxyXG4gIG5nRG9DaGVjaygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xyXG4gICAgICB0aGlzLnVwZGF0ZUVycm9yU3RhdGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMuY29tcGxldGUoKTtcclxuICAgIHRoaXMuZm0uc3RvcE1vbml0b3JpbmcodGhpcy5lbFJlZik7XHJcbiAgICB0aGlzLl9jaGFuZ2VTdWJqZWN0LmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBvblBob25lTnVtYmVyQ2hhbmdlRGVib3VuY2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9jaGFuZ2VTdWJqZWN0Lm5leHQodW5kZWZpbmVkKTtcclxuICB9XHJcblxyXG4gIG9uUGhvbmVOdW1iZXJDaGFuZ2UoKTogdm9pZCB7XHJcbiAgICB0cnkge1xyXG4gICAgICB0aGlzLm51bWJlckluc3RhbmNlID0gcGFyc2VQaG9uZU51bWJlckZyb21TdHJpbmcoXHJcbiAgICAgICAgdGhpcy5waG9uZU51bWJlcj8udG9TdHJpbmcoKSB8fCAnJyxcclxuICAgICAgICB0aGlzLnNlbGVjdGVkQ291bnRyeT8uaXNvMi50b1VwcGVyQ2FzZSgpIGFzIENDLFxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLmZvcm1hdEFzWW91VHlwZUlmRW5hYmxlZCgpO1xyXG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5udW1iZXJJbnN0YW5jZT8ubnVtYmVyO1xyXG4gICAgICBpZiAodGhpcy5udW1iZXJJbnN0YW5jZSAmJiB0aGlzLm51bWJlckluc3RhbmNlLmlzVmFsaWQoKSkge1xyXG4gICAgICAgIGlmICh0aGlzLnBob25lTnVtYmVyICE9PSB0aGlzLmZvcm1hdHRlZFBob25lTnVtYmVyKSB7XHJcbiAgICAgICAgICB0aGlzLnBob25lTnVtYmVyID0gdGhpcy5mb3JtYXR0ZWRQaG9uZU51bWJlcjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZENvdW50cnk/LmlzbzIgIT09IHRoaXMubnVtYmVySW5zdGFuY2UuY291bnRyeSAmJlxyXG4gICAgICAgICAgISF0aGlzLm51bWJlckluc3RhbmNlLmNvdW50cnlcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5ID0gdGhpcy5nZXRDb3VudHJ5KHRoaXMubnVtYmVySW5zdGFuY2UuY291bnRyeSk7XHJcbiAgICAgICAgICB0aGlzLmNvdW50cnlDaGFuZ2VkLmVtaXQodGhpcy5zZWxlY3RlZENvdW50cnkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBjYXRjaCB7XHJcbiAgICAgIC8vIGlmIG5vIHBvc3NpYmxlIG51bWJlcnMgYXJlIHRoZXJlLFxyXG4gICAgICAvLyB0aGVuIHRoZSBmdWxsIG51bWJlciBpcyBwYXNzZWQgc28gdGhhdCB2YWxpZGF0b3IgY291bGQgYmUgdHJpZ2dlcmVkIGFuZCBwcm9wZXIgZXJyb3IgY291bGQgYmUgc2hvd25cclxuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMucGhvbmVOdW1iZXI/LnRvU3RyaW5nKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICBvbkNvdW50cnlTZWxlY3QoY291bnRyeTogQ291bnRyeSk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucGhvbmVOdW1iZXIpIHtcclxuICAgICAgdGhpcy5waG9uZU51bWJlciA9IHRoaXMubnVtYmVySW5zdGFuY2U/Lm5hdGlvbmFsTnVtYmVyO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZWxlY3RlZENvdW50cnkgPSBjb3VudHJ5O1xyXG4gICAgdGhpcy5jb3VudHJ5Q2hhbmdlZC5lbWl0KHRoaXMuc2VsZWN0ZWRDb3VudHJ5KTtcclxuICAgIHRoaXMub25QaG9uZU51bWJlckNoYW5nZSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q291bnRyeShjb2RlOiBzdHJpbmcpOiBDb3VudHJ5IHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIHRoaXMuYWxsQ291bnRyaWVzLmZpbmQoKGMpID0+IGMuaXNvMiA9PT0gY29kZS50b0xvd2VyQ2FzZSgpKSB8fCB7XHJcbiAgICAgICAgbmFtZTogJ1VOJyxcclxuICAgICAgICBpc28yOiAnVU4nLFxyXG4gICAgICAgIGRpYWxDb2RlOiAnJyxcclxuICAgICAgICBwcmlvcml0eTogMCxcclxuICAgICAgICBhcmVhQ29kZXM6IHVuZGVmaW5lZCxcclxuICAgICAgICBmbGFnQ2xhc3M6ICdVTicsXHJcbiAgICAgICAgcGxhY2VIb2xkZXI6ICcnLFxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgb25JbnB1dEtleVByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBjb25zdCBwYXR0ZXJuID0gL1swLTkrXFwtIF0vO1xyXG4gICAgaWYgKCFwYXR0ZXJuLnRlc3QoZXZlbnQua2V5KSkge1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZmxhZ0NsYXNzKGxhbmc6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYGZpIGZpLSR7bGFuZz8uc2xpY2UoLTIpLnRvTG93ZXJDYXNlKCl9YDtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG5cclxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQodW5kZWZpbmVkKTtcclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIHRoaXMubnVtYmVySW5zdGFuY2UgPSBwYXJzZVBob25lTnVtYmVyRnJvbVN0cmluZyh2YWx1ZSk7XHJcbiAgICAgIGlmICh0aGlzLm51bWJlckluc3RhbmNlKSB7XHJcbiAgICAgICAgY29uc3QgY291bnRyeUNvZGUgPSB0aGlzLm51bWJlckluc3RhbmNlLmNvdW50cnk7XHJcbiAgICAgICAgdGhpcy5waG9uZU51bWJlciA9IHRoaXMuZm9ybWF0dGVkUGhvbmVOdW1iZXI7XHJcbiAgICAgICAgaWYgKCFjb3VudHJ5Q29kZSkge1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5ID0gdGhpcy5nZXRDb3VudHJ5KGNvdW50cnlDb2RlKTtcclxuICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZENvdW50cnkuZGlhbENvZGUgJiZcclxuICAgICAgICAgICAgIXRoaXMucHJlZmVycmVkQ291bnRyaWVzLmluY2x1ZGVzKHRoaXMuc2VsZWN0ZWRDb3VudHJ5LmlzbzIpXHJcbiAgICAgICAgICApIHtcclxuICAgICAgICAgICAgdGhpcy5wcmVmZXJyZWRDb3VudHJpZXNJbkRyb3BEb3duLnB1c2godGhpcy5zZWxlY3RlZENvdW50cnkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5jb3VudHJ5Q2hhbmdlZC5lbWl0KHRoaXMuc2VsZWN0ZWRDb3VudHJ5KTtcclxuXHJcbiAgICAgICAgICAvLyBJbml0aWFsIHZhbHVlIGlzIHNldFxyXG4gICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQodW5kZWZpbmVkKTtcclxuICAgICAgICB9LCAxKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnBob25lTnVtYmVyID0gdmFsdWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBWYWx1ZSBpcyBzZXQgZnJvbSBvdXRzaWRlIHVzaW5nIHNldFZhbHVlKClcclxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KHVuZGVmaW5lZCk7XHJcbiAgfVxyXG5cclxuICBzZXREZXNjcmliZWRCeUlkcyhpZHM6IHN0cmluZ1tdKSB7XHJcbiAgICB0aGlzLmRlc2NyaWJlZEJ5ID0gaWRzLmpvaW4oJyAnKTtcclxuICB9XHJcblxyXG4gIG9uQ29udGFpbmVyQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICgoZXZlbnQudGFyZ2V0IGFzIEVsZW1lbnQpLnRhZ05hbWUudG9Mb3dlckNhc2UoKSAhPT0gJ2lucHV0Jykge1xyXG4gICAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXQnKSEuZm9jdXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlc2V0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5waG9uZU51bWJlciA9ICcnO1xyXG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UobnVsbCk7XHJcblxyXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQodW5kZWZpbmVkKTtcclxuICB9XHJcblxyXG4gIG9uU2VhcmNoSW5wdXQoKTogdm9pZCB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5zZWFyY2hJbnB1dD8ubmF0aXZlRWxlbWVudD8uZm9jdXMoKTtcclxuICAgIH0sIDIwMCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgZmV0Y2hDb3VudHJ5RGF0YSgpOiB2b2lkIHtcclxuICAgIHRoaXMuY291bnRyeUNvZGVEYXRhLmFsbENvdW50cmllcy5mb3JFYWNoKChjKSA9PiB7XHJcbiAgICAgIGNvbnN0IGNvdW50cnk6IENvdW50cnkgPSB7XHJcbiAgICAgICAgbmFtZTogY1swXS50b1N0cmluZygpLFxyXG4gICAgICAgIGlzbzI6IGNbMV0udG9TdHJpbmcoKSxcclxuICAgICAgICBkaWFsQ29kZTogY1syXS50b1N0cmluZygpLFxyXG4gICAgICAgIHByaW9yaXR5OiArY1szXSB8fCAwLFxyXG4gICAgICAgIGFyZWFDb2RlczogKGNbNF0gYXMgc3RyaW5nW10pIHx8IHVuZGVmaW5lZCxcclxuICAgICAgICBmbGFnQ2xhc3M6IGNbMV0udG9TdHJpbmcoKS50b1VwcGVyQ2FzZSgpLFxyXG4gICAgICAgIHBsYWNlSG9sZGVyOiAnJyxcclxuICAgICAgfTtcclxuXHJcbiAgICAgIGlmICh0aGlzLmVuYWJsZVBsYWNlaG9sZGVyKSB7XHJcbiAgICAgICAgY291bnRyeS5wbGFjZUhvbGRlciA9IEVjYWJzQmFzZVBob25lQ29tcG9uZW50LmdldFBob25lTnVtYmVyUGxhY2VIb2xkZXIoXHJcbiAgICAgICAgICBjb3VudHJ5LmlzbzIudG9VcHBlckNhc2UoKSBhcyBDQyxcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmFsbENvdW50cmllcy5wdXNoKGNvdW50cnkpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldCBmb3JtYXR0ZWRQaG9uZU51bWJlcigpOiBzdHJpbmcge1xyXG4gICAgaWYgKCF0aGlzLm51bWJlckluc3RhbmNlKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnBob25lTnVtYmVyPy50b1N0cmluZygpIHx8ICcnO1xyXG4gICAgfVxyXG4gICAgc3dpdGNoICh0aGlzLmZvcm1hdCkge1xyXG4gICAgICBjYXNlICduYXRpb25hbCc6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubnVtYmVySW5zdGFuY2UuZm9ybWF0TmF0aW9uYWwoKTtcclxuXHJcbiAgICAgIGNhc2UgJ2ludGVybmF0aW9uYWwnOlxyXG4gICAgICAgIHJldHVybiB0aGlzLm51bWJlckluc3RhbmNlLmZvcm1hdEludGVybmF0aW9uYWwoKTtcclxuXHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubnVtYmVySW5zdGFuY2UubmF0aW9uYWxOdW1iZXIudG9TdHJpbmcoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZm9ybWF0QXNZb3VUeXBlSWZFbmFibGVkKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZm9ybWF0ID09PSAnZGVmYXVsdCcpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgYXNZb3VUeXBlOiBBc1lvdVR5cGUgPSBuZXcgQXNZb3VUeXBlKFxyXG4gICAgICB0aGlzLnNlbGVjdGVkQ291bnRyeT8uaXNvMi50b1VwcGVyQ2FzZSgpIGFzIENDLFxyXG4gICAgKTtcclxuICAgIC8vIFRvIGF2b2lkIGNhcmV0IHBvc2l0aW9uaW5nIHdlIGFwcGx5IGZvcm1hdHRpbmcgb25seSBpZiB0aGUgY2FyZXQgaXMgYXQgdGhlIGVuZDpcclxuICAgIGlmIChcclxuICAgICAgdGhpcy5waG9uZU51bWJlclxyXG4gICAgICAgID8udG9TdHJpbmcoKVxyXG4gICAgICAgIC5zdGFydHNXaXRoKHRoaXMuX3ByZXZpb3VzRm9ybWF0dGVkTnVtYmVyIHx8ICcnKVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMucGhvbmVOdW1iZXIgPSBhc1lvdVR5cGUuaW5wdXQodGhpcy5waG9uZU51bWJlci50b1N0cmluZygpKTtcclxuICAgIH1cclxuICAgIHRoaXMuX3ByZXZpb3VzRm9ybWF0dGVkTnVtYmVyID0gdGhpcy5waG9uZU51bWJlcj8udG9TdHJpbmcoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImVjYWJzLXRlbC1pbnB1dC1jb250YWluZXJcIj5cclxuICA8YnV0dG9uXHJcbiAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgIG1hdC1idXR0b25cclxuICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCJcclxuICAgIGNsYXNzPVwiY291bnRyeS1zZWxlY3RvclwiXHJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gID5cclxuICAgIDxzcGFuXHJcbiAgICAgIGNsYXNzPVwiY291bnRyeS1zZWxlY3Rvci1mbGFnIGZsYWdcIlxyXG4gICAgICBbbmdDbGFzc109XCJmbGFnQ2xhc3Moc2VsZWN0ZWRDb3VudHJ5Py5mbGFnQ2xhc3MpXCJcclxuICAgID48L3NwYW4+XHJcbiAgICA8c3BhbiBjbGFzcz1cImNvdW50cnktc2VsZWN0b3ItY29kZVwiICpuZ0lmPVwic2VsZWN0ZWRDb3VudHJ5Py5kaWFsQ29kZVwiXHJcbiAgICA+K3t7IHNlbGVjdGVkQ291bnRyeS5kaWFsQ29kZSB9fTwvc3BhblxyXG4gICAgPlxyXG4gIDwvYnV0dG9uPlxyXG4gIDxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImVjYWJzLXRlbC1pbnB1dC1tYXQtbWVudS1wYW5lbFwiXHJcbiAgICAgICAgICAgIGJhY2tkcm9wQ2xhc3M9XCJlY2Ficy10ZWwtaW5wdXQtb3ZlcmxheS1iYWNrZHJvcFwiXHJcbiAgICAgICAgICAgIG92ZXJsYXlQYW5lbENsYXNzPVwiZWNhYnMtdGVsLWlucHV0LW92ZXJsYXktcGFuZVwiPlxyXG4gICAgPGlucHV0XHJcbiAgICAgICNzZWFyY2hJbnB1dFxyXG4gICAgICAqbmdJZj1cImVuYWJsZVNlYXJjaFwiXHJcbiAgICAgIGNsYXNzPVwiY291bnRyeS1zZWFyY2hcIlxyXG4gICAgICBbKG5nTW9kZWwpXT1cInNlYXJjaENyaXRlcmlhXCJcclxuICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25TZWFyY2hJbnB1dCgpXCJcclxuICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICBbcGxhY2Vob2xkZXJdPVwic2VhcmNoUGxhY2Vob2xkZXJcIlxyXG4gICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuICAgIC8+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXNlYXJjaENyaXRlcmlhXCI+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICBtYXQtbWVudS1pdGVtXHJcbiAgICAgICAgY2xhc3M9XCJjb3VudHJ5LWxpc3QtYnV0dG9uXCJcclxuICAgICAgICAqbmdGb3I9XCJsZXQgY291bnRyeSBvZiBwcmVmZXJyZWRDb3VudHJpZXNJbkRyb3BEb3duXCJcclxuICAgICAgICAoY2xpY2spPVwib25Db3VudHJ5U2VsZWN0KGNvdW50cnkpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpY29uLXdyYXBwZXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGFnXCIgICAgXHJcbiAgICAgICAgICBbbmdDbGFzc109XCJmbGFnQ2xhc3MoY291bnRyeS5mbGFnQ2xhc3MpXCI+PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsLXdyYXBwZXJcIj5cclxuICAgICAgICAgIHt7IGNvdW50cnkubmFtZSB9fVxyXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJjb3VudHJ5Py5kaWFsQ29kZVwiPit7eyBjb3VudHJ5LmRpYWxDb2RlIH19PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPG1hdC1kaXZpZGVyICpuZ0lmPVwicHJlZmVycmVkQ291bnRyaWVzSW5Ecm9wRG93bj8ubGVuZ3RoXCI+PC9tYXQtZGl2aWRlcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY291bnRyeSBvZiBhbGxDb3VudHJpZXNcIj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgIG1hdC1tZW51LWl0ZW1cclxuICAgICAgICBjbGFzcz1cImNvdW50cnktbGlzdC1idXR0b25cIlxyXG4gICAgICAgICpuZ0lmPVwiY291bnRyeSB8IHNlYXJjaDogc2VhcmNoQ3JpdGVyaWFcIlxyXG4gICAgICAgIChjbGljayk9XCJvbkNvdW50cnlTZWxlY3QoY291bnRyeSlcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImljb24td3JhcHBlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsYWdcIiBbbmdDbGFzc109XCJmbGFnQ2xhc3MoY291bnRyeS5mbGFnQ2xhc3MpXCI+PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsLXdyYXBwZXJcIj5cclxuICAgICAgICAgIHt7IGNvdW50cnkubmFtZSB9fSAre3sgY291bnRyeS5kaWFsQ29kZSB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvbWF0LW1lbnU+XHJcblxyXG4gIDxpbnB1dFxyXG4gICAgbWF0SW5wdXRcclxuICAgIHR5cGU9XCJ0ZWxcIlxyXG4gICAgYXV0b2NvbXBsZXRlPVwidGVsXCJcclxuICAgIFtuZ0NsYXNzXT1cImNzc0NsYXNzXCJcclxuICAgIChibHVyKT1cIm9uVG91Y2hlZCgpXCJcclxuICAgIChrZXlwcmVzcyk9XCJvbklucHV0S2V5UHJlc3MoJGV2ZW50KVwiXHJcbiAgICBbKG5nTW9kZWwpXT1cInBob25lTnVtYmVyXCJcclxuICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uUGhvbmVOdW1iZXJDaGFuZ2VEZWJvdW5jZSgpXCJcclxuICAgIFtlcnJvclN0YXRlTWF0Y2hlcl09XCJlcnJvclN0YXRlTWF0Y2hlclwiXHJcbiAgICBbcGxhY2Vob2xkZXJdPVwiaW5wdXRQbGFjZWhvbGRlclwiXHJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgW2FyaWEtZGVzY3JpYmVkYnldPVwiZGVzY3JpYmVkQnlcIlxyXG4gIC8+XHJcbjwvZGl2PiJdfQ==
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
4
|
+
import { RouterModule } from '@angular/router';
|
|
5
|
+
import { EcabsBasePhoneComponent } from './ecabs-base-phone.component';
|
|
6
|
+
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
7
|
+
import { MatInputModule } from '@angular/material/input';
|
|
8
|
+
import { MatMenuModule } from '@angular/material/menu';
|
|
9
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
10
|
+
import { MatDividerModule } from '@angular/material/divider';
|
|
11
|
+
import { SearchPipe } from '../base/pipes/search.pipe';
|
|
12
|
+
import { ElementWrapperModule } from '../base/element-wrapper/element-wrapper.module';
|
|
13
|
+
import * as i0 from "@angular/core";
|
|
14
|
+
export class EcabsBasePhoneModule {
|
|
15
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsBasePhoneModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
16
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: EcabsBasePhoneModule, declarations: [EcabsBasePhoneComponent], imports: [CommonModule,
|
|
17
|
+
MatIconModule,
|
|
18
|
+
RouterModule,
|
|
19
|
+
FormsModule,
|
|
20
|
+
MatInputModule,
|
|
21
|
+
MatMenuModule,
|
|
22
|
+
MatButtonModule,
|
|
23
|
+
MatDividerModule,
|
|
24
|
+
ReactiveFormsModule,
|
|
25
|
+
SearchPipe,
|
|
26
|
+
ElementWrapperModule], exports: [EcabsBasePhoneComponent] });
|
|
27
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsBasePhoneModule, imports: [CommonModule,
|
|
28
|
+
MatIconModule,
|
|
29
|
+
RouterModule,
|
|
30
|
+
FormsModule,
|
|
31
|
+
MatInputModule,
|
|
32
|
+
MatMenuModule,
|
|
33
|
+
MatButtonModule,
|
|
34
|
+
MatDividerModule,
|
|
35
|
+
ReactiveFormsModule,
|
|
36
|
+
ElementWrapperModule] });
|
|
37
|
+
}
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsBasePhoneModule, decorators: [{
|
|
39
|
+
type: NgModule,
|
|
40
|
+
args: [{
|
|
41
|
+
declarations: [EcabsBasePhoneComponent],
|
|
42
|
+
imports: [
|
|
43
|
+
CommonModule,
|
|
44
|
+
MatIconModule,
|
|
45
|
+
RouterModule,
|
|
46
|
+
FormsModule,
|
|
47
|
+
MatInputModule,
|
|
48
|
+
MatMenuModule,
|
|
49
|
+
MatButtonModule,
|
|
50
|
+
MatDividerModule,
|
|
51
|
+
ReactiveFormsModule,
|
|
52
|
+
SearchPipe,
|
|
53
|
+
ElementWrapperModule,
|
|
54
|
+
],
|
|
55
|
+
exports: [EcabsBasePhoneComponent],
|
|
56
|
+
}]
|
|
57
|
+
}] });
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtYmFzZS1waG9uZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lY2Ficy1jb21wb25lbnRzL3NyYy9saWIvZWNhYnMtYmFzZS1waG9uZS1pbnB1dC9lY2Ficy1iYXNlLXBob25lLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7O0FBbUJ0RixNQUFNLE9BQU8sb0JBQW9CO3dHQUFwQixvQkFBb0I7eUdBQXBCLG9CQUFvQixpQkFoQmhCLHVCQUF1QixhQUVwQyxZQUFZO1lBQ1osYUFBYTtZQUNiLFlBQVk7WUFDWixXQUFXO1lBQ1gsY0FBYztZQUNkLGFBQWE7WUFDYixlQUFlO1lBQ2YsZ0JBQWdCO1lBQ2hCLG1CQUFtQjtZQUNuQixVQUFVO1lBQ1Ysb0JBQW9CLGFBRVosdUJBQXVCO3lHQUV0QixvQkFBb0IsWUFkN0IsWUFBWTtZQUNaLGFBQWE7WUFDYixZQUFZO1lBQ1osV0FBVztZQUNYLGNBQWM7WUFDZCxhQUFhO1lBQ2IsZUFBZTtZQUNmLGdCQUFnQjtZQUNoQixtQkFBbUI7WUFFbkIsb0JBQW9COzs0RkFJWCxvQkFBb0I7a0JBakJoQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLHVCQUF1QixDQUFDO29CQUN2QyxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixhQUFhO3dCQUNiLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLG1CQUFtQjt3QkFDbkIsVUFBVTt3QkFDVixvQkFBb0I7cUJBQ3JCO29CQUNELE9BQU8sRUFBRSxDQUFDLHVCQUF1QixDQUFDO2lCQUNuQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgRWNhYnNCYXNlUGhvbmVDb21wb25lbnQgfSBmcm9tICcuL2VjYWJzLWJhc2UtcGhvbmUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IE1hdERpdmlkZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaXZpZGVyJztcclxuaW1wb3J0IHsgU2VhcmNoUGlwZSB9IGZyb20gJy4uL2Jhc2UvcGlwZXMvc2VhcmNoLnBpcGUnO1xyXG5pbXBvcnQgeyBFbGVtZW50V3JhcHBlck1vZHVsZSB9IGZyb20gJy4uL2Jhc2UvZWxlbWVudC13cmFwcGVyL2VsZW1lbnQtd3JhcHBlci5tb2R1bGUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtFY2Fic0Jhc2VQaG9uZUNvbXBvbmVudF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgTWF0SWNvbk1vZHVsZSxcclxuICAgIFJvdXRlck1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgTWF0SW5wdXRNb2R1bGUsXHJcbiAgICBNYXRNZW51TW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgTWF0RGl2aWRlck1vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBTZWFyY2hQaXBlLFxyXG4gICAgRWxlbWVudFdyYXBwZXJNb2R1bGUsXHJcbiAgXSxcclxuICBleHBvcnRzOiBbRWNhYnNCYXNlUGhvbmVDb21wb25lbnRdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRWNhYnNCYXNlUGhvbmVNb2R1bGUge31cclxuIl19
|