asksuite-citrus 3.17.28-beta.6 → 3.17.30-beta.0

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.
@@ -51,7 +51,6 @@ export class PhoneDdiComponent extends OverlayComponent {
51
51
  this.inferCountryCodeByNumber = true;
52
52
  this.valueChange = new EventEmitter();
53
53
  this.onChangeFlag = new EventEmitter();
54
- this.initialValue = '';
55
54
  this.formControl = new FormControl();
56
55
  this.countryItems = [];
57
56
  this.closed = true;
@@ -136,16 +135,28 @@ export class PhoneDdiComponent extends OverlayComponent {
136
135
  this.close();
137
136
  }
138
137
  onChangePhoneNumber(number) {
139
- const onlyDigits = number?.replace(NON_DIGIT_REGEX, '') || '';
138
+ const normalizedNumber = this.normalizePhoneInput(number);
139
+ const onlyDigits = normalizedNumber?.replace(NON_DIGIT_REGEX, '') || '';
140
140
  if (!this.selectedFlag) {
141
141
  this.value = onlyDigits;
142
142
  this.onChange(this.value);
143
143
  return;
144
144
  }
145
145
  const countryCode = this.selectedFlag.code.substring(1);
146
- this.value = onlyDigits ? countryCode + onlyDigits : '';
146
+ const phoneWithoutDdi = this.removeDdiFromNumber(onlyDigits, countryCode);
147
+ this.value = phoneWithoutDdi ? countryCode + phoneWithoutDdi : '';
147
148
  this.onChange(this.value);
148
149
  }
150
+ normalizePhoneInput(number) {
151
+ if (!number)
152
+ return '';
153
+ return number.startsWith('+') ? number.substring(1) : number;
154
+ }
155
+ removeDdiFromNumber(number, countryCode) {
156
+ if (!number || !countryCode)
157
+ return number;
158
+ return number.startsWith(countryCode) ? number.substring(countryCode.length) : number;
159
+ }
149
160
  registerOnChange(fn) {
150
161
  this.onChange = fn;
151
162
  }
@@ -153,7 +164,6 @@ export class PhoneDdiComponent extends OverlayComponent {
153
164
  this.onTouch = fn;
154
165
  }
155
166
  writeValue(value) {
156
- this.initialValue = value;
157
167
  this.value = value;
158
168
  if (this.countryItems.length && this.value) {
159
169
  this.initSelectedFlag(this.countryItems);
@@ -241,4 +251,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImpor
241
251
  type: ViewChildren,
242
252
  args: [AskDropdownDirective]
243
253
  }] } });
244
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtZGRpLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fza3N1aXRlLWNpdHJ1cy9zcmMvbGliL2NvbXBvbmVudHMvcGhvbmUtZGRpL3Bob25lLWRkaS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc2tzdWl0ZS1jaXRydXMvc3JjL2xpYi9jb21wb25lbnRzL3Bob25lLWRkaS9waG9uZS1kZGkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBRVYsWUFBWSxFQUNaLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFJTixTQUFTLEVBQ1QsWUFBWSxHQUViLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBdUIsV0FBVyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEYsT0FBTyxFQUFDLFlBQVksRUFBRSxHQUFHLEVBQWUsTUFBTSxNQUFNLENBQUM7QUFDckQsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDdEQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxrQkFBa0IsTUFBTSwrQ0FBK0MsQ0FBQztBQUUvRSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7Ozs7O0FBRWpFLE1BQU0sYUFBYSxHQUFhO0lBQzlCLE9BQU8sRUFBRSxpQkFBaUI7SUFDMUIsS0FBSyxFQUFFLElBQUk7SUFDWCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixDQUFDO0NBQ2pELENBQUM7QUFRRixNQUFNLE9BQU8saUJBQWtCLFNBQVEsZ0JBQWdCO0lBMEJyRCxJQUFJLFlBQVksQ0FBQyxJQUE2QjtRQUM1QyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDVixJQUFJLENBQUMsYUFBYSxHQUFHLFNBQVMsQ0FBQztZQUMvQixPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sUUFBUSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQztRQUU3QixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQixRQUFRLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUM7UUFDbkUsQ0FBQzthQUFJLENBQUM7WUFDSixRQUFRLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDbEMsQ0FBQztRQUVELElBQUksQ0FBQyxhQUFhLEdBQUcsUUFBUSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQWFELFlBQ0UsT0FBZ0IsRUFDaEIsZ0JBQWtDLEVBQzFCLGtCQUFzQyxFQUN0QyxVQUFzQjtRQUU5QixLQUFLLENBQUMsT0FBTyxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFIekIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBN0R2QixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLFVBQUssR0FBRyxFQUFFLENBQUM7UUFFWCxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQiw2QkFBd0IsR0FBRyxJQUFJLENBQUM7UUFFL0IsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ3pDLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQWUsQ0FBQztRQUV6RCxpQkFBWSxHQUFHLEVBQUUsQ0FBQztRQUNYLGdCQUFXLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQXFDdkMsaUJBQVksR0FBa0IsRUFBRSxDQUFBO1FBR3RCLFdBQU0sR0FBRyxJQUFJLENBQUM7UUFDZCxlQUFVLEdBQUcsRUFBRSxDQUFBO1FBQ2YsdUJBQWtCLEdBQUcsSUFBSSxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDeEMsb0JBQWUsR0FBVSxFQUFFLENBQUE7UUFDN0IsYUFBUSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQThIbEIsY0FBUyxHQUFHLENBQUMsV0FBZ0IsRUFBRSxFQUFFLENBQUMsR0FBRyxXQUFXLENBQUMsV0FBVyxLQUFLLFdBQVcsQ0FBQyxJQUFJLEdBQUcsQ0FBQztRQUVyRixhQUFRLEdBQUcsQ0FBQyxNQUFjLEVBQUUsRUFBRSxDQUMvQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBdkh6RSxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO1FBQzNFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBRXpCLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWTthQUMxQixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ3pDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ25CLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQTtZQUMvQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxPQUFPLENBQUMsS0FBVTtRQUNoQixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUE7UUFDdEIsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFBO1FBQzdELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6RCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQztRQUM1QyxJQUFJLFdBQVcsSUFBSSxXQUFXLElBQUksVUFBVSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsSUFBSSxVQUFVLENBQUMsTUFBTSxLQUFLLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNqSCxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN4RCxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQztZQUN6QixJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDakMsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFdkMsQ0FBQztJQUVELG9CQUFvQixDQUFDLElBQVM7UUFDNUIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzFDLElBQUcsSUFBSSxDQUFDLFdBQVcsRUFBQyxDQUFDO1lBQ25CLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNsQixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNyQyxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxPQUFPLENBQUMsTUFBVztRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDL0IsQ0FBQztJQUVRLFdBQVcsQ0FBQyxLQUFpQjtRQUNwQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU07ZUFDZCxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO2VBQ25ELENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNoRSxDQUFDO0lBRVEsV0FBVztRQUNsQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNuQixJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQ3BDLElBQUksQ0FBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFhO1FBQzNCLEtBQUssRUFBRSxlQUFlLEVBQUUsQ0FBQTtRQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxNQUFNO2dCQUNULENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUNwQixDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFBO1FBQ3hCLENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFBO1FBQ25CLElBQUksSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDL0MsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUU7Z0JBQ2xELGFBQWEsRUFBRSxrQ0FBa0M7Z0JBQ2pELFdBQVcsRUFBRSxJQUFJO2dCQUNqQixTQUFTLEVBQUUsR0FBRzthQUNmLENBQUMsQ0FBQTtRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxNQUFjO1FBQ2hDLE1BQU0sVUFBVSxHQUFHLE1BQU0sRUFBRSxPQUFPLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUU5RCxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzFCLE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDeEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFVO1FBQ25CLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzNDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDM0MsQ0FBQztJQUNILENBQUM7SUFPTyxpQkFBaUIsQ0FBQyxJQUFtQjtRQUMzQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDekMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxJQUFtQjtRQUMxQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2hCLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFDRCxNQUFNLE9BQU8sR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2IsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUMsQ0FBQztRQUNELElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFFdkIsSUFBRyxJQUFJLENBQUMsd0JBQXdCLEVBQUMsQ0FBQztZQUNoQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsS0FBSyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQTtZQUM5RixLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQTtRQUNoRixDQUFDO1FBRUQsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM1QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxxQkFBcUIsQ0FBQyxJQUFtQjtRQUMvQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzdGLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUN2QyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQ2pDLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFDakIsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsQ0FDekMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDbEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUE7UUFDOUIsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsaUJBQWlCLENBQUMsS0FBVTtRQUMxQixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNsRCxDQUFDO0lBR0Qsc0JBQXNCLENBQUMsS0FBYTtRQUNsQyxNQUFNLGVBQWUsR0FBRyxLQUFLLENBQUM7UUFDOUIsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdEQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNoRSxJQUFJLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFFbkIsTUFBTSxZQUFZLEdBQUcsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVqRCxJQUFJLFlBQVksSUFBSSxVQUFVLENBQUMsTUFBTSxHQUFHLEVBQUUsSUFBSSxXQUFXLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDbkUsTUFBTSxHQUFHLFdBQVcsR0FBRyxVQUFVLENBQUE7UUFDbkMsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFBO0lBQ2YsQ0FBQzs4R0FyUFUsaUJBQWlCLHlFQWxCdkIsa0JBQWtCO2tHQWtCWixpQkFBaUIscVJBRmpCLENBQUMsYUFBYSxDQUFDLHViQXVCWixvQkFBb0IsdUVDN0RwQyx5bEVBb0VBOzsyRkQ1QmEsaUJBQWlCO2tCQU43QixTQUFTOytCQUNFLGVBQWUsYUFHZCxDQUFDLGFBQWEsQ0FBQztnR0FoQnJCLGtCQUFrQixnREFtQmQsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLHdCQUF3QjtzQkFBaEMsS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBS3NCLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCO2dCQUVMLE9BQU87c0JBQTVCLFNBQVM7dUJBQUMsU0FBUztnQkFFUSxhQUFhO3NCQUF4QyxTQUFTO3VCQUFDLGVBQWU7Z0JBRUcsY0FBYztzQkFBMUMsU0FBUzt1QkFBQyxnQkFBZ0I7Z0JBRzNCLFlBQVk7c0JBRFgsWUFBWTt1QkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIERlc3Ryb3lSZWYsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgaW5qZWN0LFxuICBJbnB1dCwgT25Jbml0LFxuICBPdXRwdXQsXG4gIFByb3ZpZGVyLFxuICBRdWVyeUxpc3QsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDaGlsZHJlbixcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQ29udHJvbCwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7T3ZlcmxheX0gZnJvbSBcIkBhbmd1bGFyL2Nkay9vdmVybGF5XCI7XG5pbXBvcnQge2RlYm91bmNlVGltZSwgbWFwLCBTdWJzY3JpcHRpb259IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge0Fza0Ryb3Bkb3duRGlyZWN0aXZlfSBmcm9tIFwiLi4vLi4vZGlyZWN0aXZlc1wiO1xuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWR9IGZyb20gXCJAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcFwiO1xuaW1wb3J0IHtmaWx0ZXJTZWxlY3RlZExpc3R9IGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvaGVscGVycy9maWx0ZXIuaGVscGVyXCI7XG5pbXBvcnQgQ291bnRyeUZsYWdTZXJ2aWNlIGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvc2VydmljZXMvY291bnRyeS1mbGFnLnNlcnZpY2VcIjtcbmltcG9ydCB7Q291bnRyeURhdGF9IGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvcHJvdmlkZXJzL2ZsYWcucHJvdmlkZXJcIjtcbmltcG9ydCB7Tk9OX0RJR0lUX1JFR0VYfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL3V0aWxzL3JlZ2V4XCI7XG5pbXBvcnQge2dldENvdW50cnlGcm9tUGhvbmV9IGZyb20gXCIuLi8uLi9oZWxwZXJzL3Bob25lLmhlbHBlclwiO1xuaW1wb3J0IHtPdmVybGF5Q29tcG9uZW50fSBmcm9tIFwiLi4vLi4vY2xhc3Nlcy9vdmVybGF5LmNvbXBvbmVudFwiO1xuXG5jb25zdCB2YWx1ZUFjY2Vzc29yOiBQcm92aWRlciA9IHtcbiAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gIG11bHRpOiB0cnVlLFxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBQaG9uZURkaUNvbXBvbmVudCksXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhc2stcGhvbmUtZGRpJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Bob25lLWRkaS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Bob25lLWRkaS5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFt2YWx1ZUFjY2Vzc29yXSxcbn0pXG5leHBvcnQgY2xhc3MgUGhvbmVEZGlDb21wb25lbnQgZXh0ZW5kcyBPdmVybGF5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIHZhbHVlID0gJyc7XG4gIEBJbnB1dCgpIHVzZUNvdW50cnlDb2RlITogc3RyaW5nO1xuICBASW5wdXQoKSBkaXNhYmxlTWFzayA9IGZhbHNlO1xuICBASW5wdXQoKSBpbmZlckNvdW50cnlDb2RlQnlOdW1iZXIgPSB0cnVlO1xuXG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAT3V0cHV0KCkgb25DaGFuZ2VGbGFnID0gbmV3IEV2ZW50RW1pdHRlcjxDb3VudHJ5RGF0YT4oKTtcbiAgXG4gIGluaXRpYWxWYWx1ZSA9ICcnO1xuICBwdWJsaWMgZm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcblxuICBAVmlld0NoaWxkKCdwaG9uZUNvbnRhaW5lcicpIHBob25lQ29udGFpbmVyOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkXG5cbiAgQFZpZXdDaGlsZCgnd3JhcHBlcicpIHdyYXBwZXI6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWRcblxuICBAVmlld0NoaWxkKFwibWVudUNvbnRhaW5lclwiKSBtZW51Q29udGFpbmVyOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkXG5cbiAgQFZpZXdDaGlsZCgnb3ZlcmxheUNvbnRlbnQnKSBvdmVybGF5Q29udGVudDogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuXG4gIEBWaWV3Q2hpbGRyZW4oQXNrRHJvcGRvd25EaXJlY3RpdmUpXG4gIGRyb3Bkb3duTGlzdD86IFF1ZXJ5TGlzdDxBc2tEcm9wZG93bkRpcmVjdGl2ZT47XG5cbiAgX3NlbGVjdGVkRmxhZz86IENvdW50cnlEYXRhO1xuXG4gIHNldCBzZWxlY3RlZEZsYWcoaXRlbTogQ291bnRyeURhdGEgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAoIWl0ZW0pIHtcbiAgICAgIHRoaXMuX3NlbGVjdGVkRmxhZyA9IHVuZGVmaW5lZDtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgXG4gICAgY29uc3QgaXRlbUNvcHkgPSB7IC4uLml0ZW0gfTtcbiAgICBcbiAgICBpZiAodGhpcy5kaXNhYmxlTWFzaykge1xuICAgICAgaXRlbUNvcHkubWFza0Zvcm1hdCA9IGl0ZW0ubWFzay5yZXBsYWNlQWxsKCdfJywgJycpICsgJ1hYWFhYWFhYJztcbiAgICB9ZWxzZXtcbiAgICAgIGl0ZW1Db3B5Lm1hc2tGb3JtYXQgPSBpdGVtLm1hc2s7XG4gICAgfVxuICAgIFxuICAgIHRoaXMuX3NlbGVjdGVkRmxhZyA9IGl0ZW1Db3B5O1xuICB9XG5cbiAgZ2V0IHNlbGVjdGVkRmxhZygpOiBDb3VudHJ5RGF0YSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkRmxhZztcbiAgfVxuXG5cbiAgY291bnRyeUl0ZW1zOiBDb3VudHJ5RGF0YVtdID0gW11cbiAgb25DaGFuZ2UhOiAodmFsdWU/OiBhbnkpID0+IHZvaWQ7XG4gIG9uVG91Y2ghOiAoKSA9PiB2b2lkO1xuICBwcm90ZWN0ZWQgY2xvc2VkID0gdHJ1ZTtcbiAgcHJvdGVjdGVkIGlucHV0VmFsdWUgPSAnJ1xuICBwcm90ZWN0ZWQgc2VhcmNoRmllbGRDb250cm9sID0gbmV3IEZvcm1Db250cm9sKFwiXCIpXG4gIHByb3RlY3RlZCBmaWx0ZXJlZE9wdGlvbnM6IGFueVtdID0gW11cbiAgcHJpdmF0ZSBfZGVzdHJveSA9IGluamVjdChEZXN0cm95UmVmKVxuICBwcml2YXRlIHNjcm9sbFN1Yj86IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBvdmVybGF5OiBPdmVybGF5LFxuICAgIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSBjb3VudHJ5RmxhZ1NlcnZpY2U6IENvdW50cnlGbGFnU2VydmljZSxcbiAgICBwcml2YXRlIGRlc3Ryb3lSZWY6IERlc3Ryb3lSZWZcbiAgKSB7XG4gICAgc3VwZXIob3ZlcmxheSwgdmlld0NvbnRhaW5lclJlZik7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmNvdW50cnlGbGFnU2VydmljZS5saXN0KCkuc3Vic2NyaWJlKHRoaXMuYWRkQXZhaWxhYmxlRmxhZ3MuYmluZCh0aGlzKSlcbiAgICB0aGlzLmhhbmRsZUlucHV0Q2hhbmdlKCk7XG5cbiAgICB0aGlzLmZvcm1Db250cm9sLnZhbHVlQ2hhbmdlc1xuICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlUGhvbmVOdW1iZXIodmFsdWUpXG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG9uUGFzdGUoZXZlbnQ6IGFueSkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICBjb25zdCBwYXN0ZWRUZXh0ID0gZXZlbnQuY2xpcGJvYXJkRGF0YT8uZ2V0RGF0YSgndGV4dCcpIHx8ICcnXG4gICAgY29uc3QgY291bnRyeUNvZGUgPSB0aGlzLnNlbGVjdGVkRmxhZz8uY29kZS5zdWJzdHJpbmcoMSk7XG4gICAgY29uc3QgY291bnRyeU1hc2sgPSB0aGlzLnNlbGVjdGVkRmxhZz8ubWFzaztcbiAgICBpZiAoY291bnRyeUNvZGUgJiYgY291bnRyeU1hc2sgJiYgcGFzdGVkVGV4dC5zdGFydHNXaXRoKGNvdW50cnlDb2RlKSAmJiBwYXN0ZWRUZXh0Lmxlbmd0aCA9PT0gY291bnRyeU1hc2subGVuZ3RoKSB7XG4gICAgICBjb25zdCBudW1iZXIgPSBwYXN0ZWRUZXh0LnN1YnN0cmluZyhjb3VudHJ5Q29kZS5sZW5ndGgpO1xuICAgICAgdGhpcy5pbnB1dFZhbHVlID0gbnVtYmVyO1xuICAgICAgdGhpcy5vbkNoYW5nZVBob25lTnVtYmVyKG51bWJlcik7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaW5wdXRWYWx1ZSA9IHBhc3RlZFRleHQ7XG4gICAgdGhpcy5vbkNoYW5nZVBob25lTnVtYmVyKHBhc3RlZFRleHQpO1xuXG4gIH1cblxuICBoYW5kbGVPcHRpb25TZWxlY3RlZChpdGVtOiBhbnkpIHtcbiAgICB0aGlzLnNlbGVjdGVkRmxhZyA9IGl0ZW07XG4gICAgdGhpcy5vbkNoYW5nZUZsYWcuZW1pdCh0aGlzLnNlbGVjdGVkRmxhZyk7XG4gICAgdGhpcy5oaWRlT3B0aW9ucygpO1xuICAgIHRoaXMub25DaGFuZ2VQaG9uZU51bWJlcih0aGlzLmlucHV0VmFsdWUpO1xuICAgIGlmKHRoaXMuZGlzYWJsZU1hc2speyBcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5vbkNoYW5nZSgnJyk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmlucHV0VmFsdWUgPSAnJztcbiAgICAgIHRoaXMuc2VhcmNoRmllbGRDb250cm9sLnNldFZhbHVlKCcnKTtcbiAgICAgIHRoaXMudmFsdWUgPSAnJztcbiAgICB9KTtcbiAgfVxuXG4gIGRpc3BsYXkob3B0aW9uOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5kaXNwbGF5Rm4ob3B0aW9uKVxuICB9XG5cbiAgb3ZlcnJpZGUgc2hvdWxkQ2xvc2UoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICByZXR1cm4gIXRoaXMuY2xvc2VkXG4gICAgICAmJiAhdGhpcy53cmFwcGVyPy5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldClcbiAgICAgICYmICF0aGlzLm1lbnVDb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KVxuICB9XG5cbiAgb3ZlcnJpZGUgYWZ0ZXJDbG9zZWQoKSB7XG4gICAgdGhpcy5jbG9zZWQgPSB0cnVlO1xuICAgIHRoaXMuc2VhcmNoRmllbGRDb250cm9sLnNldFZhbHVlKCcnKVxuICAgIHRoaXMuc2Nyb2xsU3ViPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgaGFuZGxlRmxhZ0NsaWNrKGV2ZW50PzogRXZlbnQpIHtcbiAgICBldmVudD8uc3RvcFByb3BhZ2F0aW9uKClcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuY2xvc2VkXG4gICAgICAgID8gdGhpcy5zaG93T3B0aW9ucygpXG4gICAgICAgIDogdGhpcy5oaWRlT3B0aW9ucygpXG4gICAgfVxuICB9XG5cbiAgc2hvd09wdGlvbnMoKSB7XG4gICAgdGhpcy5jbG9zZWQgPSBmYWxzZVxuICAgIGlmICh0aGlzLnBob25lQ29udGFpbmVyICYmIHRoaXMub3ZlcmxheUNvbnRlbnQpIHtcbiAgICAgIHRoaXMub3Blbih0aGlzLnBob25lQ29udGFpbmVyLCB0aGlzLm92ZXJsYXlDb250ZW50LCB7XG4gICAgICAgIGJhY2tkcm9wQ2xhc3M6ICdjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCcsXG4gICAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgICBtYXhIZWlnaHQ6IDMwMCxcbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgaGlkZU9wdGlvbnMoKSB7XG4gICAgdGhpcy5jbG9zZSgpO1xuICB9XG5cbiAgb25DaGFuZ2VQaG9uZU51bWJlcihudW1iZXI6IHN0cmluZykge1xuICAgIGNvbnN0IG9ubHlEaWdpdHMgPSBudW1iZXI/LnJlcGxhY2UoTk9OX0RJR0lUX1JFR0VYLCAnJykgfHwgJyc7XG4gICAgXG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkRmxhZykge1xuICAgICAgdGhpcy52YWx1ZSA9IG9ubHlEaWdpdHM7XG4gICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGNvdW50cnlDb2RlID0gdGhpcy5zZWxlY3RlZEZsYWcuY29kZS5zdWJzdHJpbmcoMSk7XG4gICAgdGhpcy52YWx1ZSA9IG9ubHlEaWdpdHMgPyBjb3VudHJ5Q29kZSArIG9ubHlEaWdpdHMgOiAnJztcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaCA9IGZuO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy5pbml0aWFsVmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgaWYgKHRoaXMuY291bnRyeUl0ZW1zLmxlbmd0aCAmJiB0aGlzLnZhbHVlKSB7XG4gICAgICB0aGlzLmluaXRTZWxlY3RlZEZsYWcodGhpcy5jb3VudHJ5SXRlbXMpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCByZWFkb25seSBkaXNwbGF5Rm4gPSAoY291bnRyeUZsYWc6IGFueSkgPT4gYCR7Y291bnRyeUZsYWcuY291bnRyeU5hbWV9ICgke2NvdW50cnlGbGFnLmNvZGV9KWA7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGZpbHRlckZuID0gKHNlYXJjaDogc3RyaW5nKSA9PlxuICAgIGZpbHRlclNlbGVjdGVkTGlzdCh0aGlzLmNvdW50cnlJdGVtcywgc2VhcmNoLCBbJ2NvZGUnLCAnY291bnRyeU5hbWUnXSk7XG5cbiAgcHJpdmF0ZSBhZGRBdmFpbGFibGVGbGFncyhkYXRhOiBDb3VudHJ5RGF0YVtdKSB7XG4gICAgdGhpcy5jb3VudHJ5SXRlbXMgPSBkYXRhO1xuICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gdGhpcy5jb3VudHJ5SXRlbXM7XG4gICAgdGhpcy5pbml0U2VsZWN0ZWRGbGFnKGRhdGEpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0U2VsZWN0ZWRGbGFnKGRhdGE6IENvdW50cnlEYXRhW10pIHtcbiAgICBpZiAoIXRoaXMudmFsdWUpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldERlZmF1bHRDb3VudHJ5RmxhZyhkYXRhKTtcbiAgICB9XG4gICAgY29uc3QgY291bnRyeSA9IGdldENvdW50cnlGcm9tUGhvbmUodGhpcy52YWx1ZSk7XG4gICAgaWYgKCFjb3VudHJ5KSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXREZWZhdWx0Q291bnRyeUZsYWcoZGF0YSk7XG4gICAgfVxuICAgIGxldCB2YWx1ZSA9IHRoaXMudmFsdWU7XG5cbiAgICBpZih0aGlzLmluZmVyQ291bnRyeUNvZGVCeU51bWJlcil7XG4gICAgICB0aGlzLnNlbGVjdGVkRmxhZyA9IHRoaXMuY291bnRyeUl0ZW1zLmZpbmQoaXRlbSA9PiBpdGVtLmNvdW50cnlDb2RlID09PSBjb3VudHJ5LnRvTG93ZXJDYXNlKCkpXG4gICAgICB2YWx1ZSA9IHRoaXMudmFsdWUuc3Vic3RyaW5nKHRoaXMuc2VsZWN0ZWRGbGFnPy5jb2RlLnN1YnN0cmluZygxKS5sZW5ndGggfHwgMClcbiAgICB9XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9IHZhbHVlO1xuICAgICAgdGhpcy5vbkNoYW5nZUZsYWcuZW1pdCh0aGlzLnNlbGVjdGVkRmxhZyk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldERlZmF1bHRDb3VudHJ5RmxhZyhkYXRhOiBDb3VudHJ5RGF0YVtdKSB7XG4gICAgdGhpcy5zZWxlY3RlZEZsYWcgPSB0aGlzLmNvdW50cnlGbGFnU2VydmljZS5nZXREZWZhdWx0Q291bnRyeUZsYWcoZGF0YSwgdGhpcy51c2VDb3VudHJ5Q29kZSk7XG4gICAgdGhpcy5vbkNoYW5nZUZsYWcuZW1pdCh0aGlzLnNlbGVjdGVkRmxhZyk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUlucHV0Q2hhbmdlKCkge1xuICAgIHRoaXMuc2VhcmNoRmllbGRDb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3kpLFxuICAgICAgZGVib3VuY2VUaW1lKDMwMCksXG4gICAgICBtYXAodmFsdWUgPT4gdGhpcy5maWx0ZXJGbih2YWx1ZSB8fCAnJykpXG4gICAgKS5zdWJzY3JpYmUoaXRlbXMgPT4ge1xuICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSBpdGVtc1xuICAgIH0pXG4gIH1cblxuICBoYW5kbGVQaG9uZUNoYW5nZShldmVudDogYW55KSB7XG4gICAgdGhpcy5vbkNoYW5nZVBob25lTnVtYmVyKHRoaXMuZm9ybUNvbnRyb2wudmFsdWUpXG4gIH1cblxuXG4gIG5vcm1hbGl6ZVBob25lTnVtYmVyQnIoaW5wdXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgTk9OX0RJR0lUX1JFR0VYID0gL1xcRC9nO1xuICAgIGNvbnN0IG9ubHlEaWdpdHMgPSBpbnB1dC5yZXBsYWNlKE5PTl9ESUdJVF9SRUdFWCwgJycpO1xuICAgIGNvbnN0IGNvdW50cnlDb2RlID0gdGhpcy5zZWxlY3RlZEZsYWc/LmNvZGU/LnN1YnN0cmluZygxKSA/PyAnJztcbiAgICBsZXQgbnVtYmVyID0gaW5wdXQ7XG5cbiAgICBjb25zdCBzdGFydHNXaXRoNTUgPSBvbmx5RGlnaXRzLnN0YXJ0c1dpdGgoJzU1Jyk7XG5cbiAgICBpZiAoc3RhcnRzV2l0aDU1ICYmIG9ubHlEaWdpdHMubGVuZ3RoIDwgMTIgJiYgY291bnRyeUNvZGUgPT09ICc1NScpIHtcbiAgICAgIG51bWJlciA9IGNvdW50cnlDb2RlICsgb25seURpZ2l0c1xuICAgIH1cbiAgICByZXR1cm4gbnVtYmVyXG4gIH1cbn1cbiIsIjxkaXYgI3Bob25lQ29udGFpbmVyIFtzdHlsZV09XCJ7Y3Vyc29yOiBkaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiAnYXV0byd9XCIgY2xhc3M9XCJwaG9uZS1kZGlcIj5cblxuICA8ZGl2XG4gICAgI3dyYXBwZXJcbiAgICAoY2xpY2spPVwiaGFuZGxlRmxhZ0NsaWNrKClcIlxuICAgICpuZ0lmPVwic2VsZWN0ZWRGbGFnXCJcbiAgICBbc3R5bGVdPVwie2N1cnNvcjogIWRpc2FibGVkID8gJ3BvaW50ZXInIDogJ25vdC1hbGxvd2VkJ31cIlxuICAgIGNsYXNzPVwiZmxhZ1wiXG4gICAgZGF0YS10ZXN0aWQ9XCJmbGFnXCI+XG5cbiAgICA8ZGl2IFtzdHlsZV09XCJ7YmFja2dyb3VuZFBvc2l0aW9uOiB0aGlzLnNlbGVjdGVkRmxhZz8uYmFja2dyb3VuZFBvc2l0aW9ufVwiIGNsYXNzPVwiZmxhZy1pY29uXCI+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZsYWctYXJyb3dcIj48L2Rpdj5cbiAgPC9kaXY+XG4gIDxpbnB1dFxuICAgICpuZ0lmPVwic2VsZWN0ZWRGbGFnOyBlbHNlIGxvYWRpbmdQaG9uZUlucHV0XCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFsobmdNb2RlbCldPVwiaW5wdXRWYWx1ZVwiXG4gICAgKGNoYW5nZSk9XCJoYW5kbGVQaG9uZUNoYW5nZSgkZXZlbnQpXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwic2VsZWN0ZWRGbGFnLm1hc2tcIlxuICAgIFttYXNrXT1cInNlbGVjdGVkRmxhZy5tYXNrRm9ybWF0XCJcbiAgICBbcHJlZml4XT1cInNlbGVjdGVkRmxhZy5jb2RlICsgJyAnXCJcbiAgICAocGFzdGUpPVwib25QYXN0ZSgkZXZlbnQpXCJcbiAgICBbdmFsaWRhdGlvbl09XCJ0cnVlXCJcbiAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIlxuICAgIGFza0F1dG9mb2N1c1xuICAgIGNsYXNzPVwicGhvbmVcIlxuICAvPlxuXG4gIDxuZy10ZW1wbGF0ZSAjbG9hZGluZ1Bob25lSW5wdXQ+XG4gICAgPGRpdiBjbGFzcz1cInNrZWxldG9uXCI+XG4gICAgICA8YXNrLXNrZWxldG9uIFtiYXJzSGVpZ2h0XT1cIjI0XCIgW3JhZGl1c109XCIxMFwiIHN0eWxlPVwiaGVpZ2h0OiAyNHB4O1wiLz5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjb3ZlcmxheUNvbnRlbnQ+XG4gIDxkaXYgI21lbnVDb250YWluZXIgY2xhc3M9XCJtZW51LWNvbnRhaW5lclwiPlxuICAgIDxkaXYgW3N0eWxlXT1cIntwYWRkaW5nOiAnOHB4J31cIj5cbiAgICAgIDxhc2staW5wdXRcbiAgICAgICAgW2Zvcm1Db250cm9sXT1cInNlYXJjaEZpZWxkQ29udHJvbFwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCInRklORF9ERElfT1JfQ09VTlRSWScgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbYXV0b0ZvY3VzXT1cInRydWVcIlxuICAgICAgICBjbGFzcz1cInNlYXJjaFwiXG4gICAgICAvPlxuICAgIDwvZGl2PlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFmaWx0ZXJlZE9wdGlvbnMubGVuZ3RoOyBlbHNlIGxpc3RcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZW1wdHlcIj57e1xuICAgICAgICAnTk9fT1BUSU9OUycgfCB0cmFuc2xhdGVcbiAgICAgICAgfX08L3NwYW4+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctdGVtcGxhdGUgI2xpc3Q+XG4gICAgICA8ZGl2IFthc2tTY3JvbGxUaHJlc2hvbGRdPVwiNTBcIiBhc2tTY3JvbGwgY2xhc3M9XCJsaXN0XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvdW50cnlJdGVtIG9mIGZpbHRlcmVkT3B0aW9uc1wiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVPcHRpb25TZWxlY3RlZChjb3VudHJ5SXRlbSlcIlxuICAgICAgICAgICAgY2xhc3M9XCJvcHRpb24taXRlbVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBbc3R5bGVdPVwie2JhY2tncm91bmRQb3NpdGlvbjogY291bnRyeUl0ZW0uYmFja2dyb3VuZFBvc2l0aW9ufVwiIGNsYXNzPVwiY291bnRyeVwiPjwvZGl2PlxuICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0XCI+e3sgZGlzcGxheShjb3VudHJ5SXRlbSkgfX08L3A+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
254
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtZGRpLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fza3N1aXRlLWNpdHJ1cy9zcmMvbGliL2NvbXBvbmVudHMvcGhvbmUtZGRpL3Bob25lLWRkaS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc2tzdWl0ZS1jaXRydXMvc3JjL2xpYi9jb21wb25lbnRzL3Bob25lLWRkaS9waG9uZS1kZGkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBRVYsWUFBWSxFQUNaLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFJTixTQUFTLEVBQ1QsWUFBWSxHQUViLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBdUIsV0FBVyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEYsT0FBTyxFQUFDLFlBQVksRUFBRSxHQUFHLEVBQWUsTUFBTSxNQUFNLENBQUM7QUFDckQsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDdEQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxrQkFBa0IsTUFBTSwrQ0FBK0MsQ0FBQztBQUUvRSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7Ozs7O0FBRWpFLE1BQU0sYUFBYSxHQUFhO0lBQzlCLE9BQU8sRUFBRSxpQkFBaUI7SUFDMUIsS0FBSyxFQUFFLElBQUk7SUFD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b0VBOzsyRkQ1QmEsaUJBQWlCO2tCQU43QixTQUFTOytCQUNFLGVBQWUsYUFHZCxDQUFDLGFBQWEsQ0FBQztnR0FoQnJCLGtCQUFrQixnREFtQmQsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLHdCQUF3QjtzQkFBaEMsS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBSXNCLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCO2dCQUVMLE9BQU87c0JBQTVCLFNBQVM7dUJBQUMsU0FBUztnQkFFUSxhQUFhO3NCQUF4QyxTQUFTO3VCQUFDLGVBQWU7Z0JBRUcsY0FBYztzQkFBMUMsU0FBUzt1QkFBQyxnQkFBZ0I7Z0JBRzNCLFlBQVk7c0JBRFgsWUFBWTt1QkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIERlc3Ryb3lSZWYsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgaW5qZWN0LFxuICBJbnB1dCwgT25Jbml0LFxuICBPdXRwdXQsXG4gIFByb3ZpZGVyLFxuICBRdWVyeUxpc3QsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDaGlsZHJlbixcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQ29udHJvbCwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7T3ZlcmxheX0gZnJvbSBcIkBhbmd1bGFyL2Nkay9vdmVybGF5XCI7XG5pbXBvcnQge2RlYm91bmNlVGltZSwgbWFwLCBTdWJzY3JpcHRpb259IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge0Fza0Ryb3Bkb3duRGlyZWN0aXZlfSBmcm9tIFwiLi4vLi4vZGlyZWN0aXZlc1wiO1xuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWR9IGZyb20gXCJAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcFwiO1xuaW1wb3J0IHtmaWx0ZXJTZWxlY3RlZExpc3R9IGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvaGVscGVycy9maWx0ZXIuaGVscGVyXCI7XG5pbXBvcnQgQ291bnRyeUZsYWdTZXJ2aWNlIGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvc2VydmljZXMvY291bnRyeS1mbGFnLnNlcnZpY2VcIjtcbmltcG9ydCB7Q291bnRyeURhdGF9IGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvcHJvdmlkZXJzL2ZsYWcucHJvdmlkZXJcIjtcbmltcG9ydCB7Tk9OX0RJR0lUX1JFR0VYfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL3V0aWxzL3JlZ2V4XCI7XG5pbXBvcnQge2dldENvdW50cnlGcm9tUGhvbmV9IGZyb20gXCIuLi8uLi9oZWxwZXJzL3Bob25lLmhlbHBlclwiO1xuaW1wb3J0IHtPdmVybGF5Q29tcG9uZW50fSBmcm9tIFwiLi4vLi4vY2xhc3Nlcy9vdmVybGF5LmNvbXBvbmVudFwiO1xuXG5jb25zdCB2YWx1ZUFjY2Vzc29yOiBQcm92aWRlciA9IHtcbiAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gIG11bHRpOiB0cnVlLFxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBQaG9uZURkaUNvbXBvbmVudCksXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhc2stcGhvbmUtZGRpJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Bob25lLWRkaS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Bob25lLWRkaS5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFt2YWx1ZUFjY2Vzc29yXSxcbn0pXG5leHBvcnQgY2xhc3MgUGhvbmVEZGlDb21wb25lbnQgZXh0ZW5kcyBPdmVybGF5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIHZhbHVlID0gJyc7XG4gIEBJbnB1dCgpIHVzZUNvdW50cnlDb2RlITogc3RyaW5nO1xuICBASW5wdXQoKSBkaXNhYmxlTWFzayA9IGZhbHNlO1xuICBASW5wdXQoKSBpbmZlckNvdW50cnlDb2RlQnlOdW1iZXIgPSB0cnVlO1xuXG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAT3V0cHV0KCkgb25DaGFuZ2VGbGFnID0gbmV3IEV2ZW50RW1pdHRlcjxDb3VudHJ5RGF0YT4oKTtcbiAgXG4gIHB1YmxpYyBmb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xuXG4gIEBWaWV3Q2hpbGQoJ3Bob25lQ29udGFpbmVyJykgcGhvbmVDb250YWluZXI6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWRcblxuICBAVmlld0NoaWxkKCd3cmFwcGVyJykgd3JhcHBlcjogRWxlbWVudFJlZiB8IHVuZGVmaW5lZFxuXG4gIEBWaWV3Q2hpbGQoXCJtZW51Q29udGFpbmVyXCIpIG1lbnVDb250YWluZXI6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWRcblxuICBAVmlld0NoaWxkKCdvdmVybGF5Q29udGVudCcpIG92ZXJsYXlDb250ZW50OiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG5cbiAgQFZpZXdDaGlsZHJlbihBc2tEcm9wZG93bkRpcmVjdGl2ZSlcbiAgZHJvcGRvd25MaXN0PzogUXVlcnlMaXN0PEFza0Ryb3Bkb3duRGlyZWN0aXZlPjtcblxuICBfc2VsZWN0ZWRGbGFnPzogQ291bnRyeURhdGE7XG5cbiAgc2V0IHNlbGVjdGVkRmxhZyhpdGVtOiBDb3VudHJ5RGF0YSB8IHVuZGVmaW5lZCkge1xuICAgIGlmICghaXRlbSkge1xuICAgICAgdGhpcy5fc2VsZWN0ZWRGbGFnID0gdW5kZWZpbmVkO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBcbiAgICBjb25zdCBpdGVtQ29weSA9IHsgLi4uaXRlbSB9O1xuICAgIFxuICAgIGlmICh0aGlzLmRpc2FibGVNYXNrKSB7XG4gICAgICBpdGVtQ29weS5tYXNrRm9ybWF0ID0gaXRlbS5tYXNrLnJlcGxhY2VBbGwoJ18nLCAnJykgKyAnWFhYWFhYWFgnO1xuICAgIH1lbHNle1xuICAgICAgaXRlbUNvcHkubWFza0Zvcm1hdCA9IGl0ZW0ubWFzaztcbiAgICB9XG4gICAgXG4gICAgdGhpcy5fc2VsZWN0ZWRGbGFnID0gaXRlbUNvcHk7XG4gIH1cblxuICBnZXQgc2VsZWN0ZWRGbGFnKCk6IENvdW50cnlEYXRhIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRGbGFnO1xuICB9XG5cblxuICBjb3VudHJ5SXRlbXM6IENvdW50cnlEYXRhW10gPSBbXVxuICBvbkNoYW5nZSE6ICh2YWx1ZT86IGFueSkgPT4gdm9pZDtcbiAgb25Ub3VjaCE6ICgpID0+IHZvaWQ7XG4gIHByb3RlY3RlZCBjbG9zZWQgPSB0cnVlO1xuICBwcm90ZWN0ZWQgaW5wdXRWYWx1ZSA9ICcnXG4gIHByb3RlY3RlZCBzZWFyY2hGaWVsZENvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woXCJcIilcbiAgcHJvdGVjdGVkIGZpbHRlcmVkT3B0aW9uczogYW55W10gPSBbXVxuICBwcml2YXRlIF9kZXN0cm95ID0gaW5qZWN0KERlc3Ryb3lSZWYpXG4gIHByaXZhdGUgc2Nyb2xsU3ViPzogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwcml2YXRlIGNvdW50cnlGbGFnU2VydmljZTogQ291bnRyeUZsYWdTZXJ2aWNlLFxuICAgIHByaXZhdGUgZGVzdHJveVJlZjogRGVzdHJveVJlZlxuICApIHtcbiAgICBzdXBlcihvdmVybGF5LCB2aWV3Q29udGFpbmVyUmVmKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY291bnRyeUZsYWdTZXJ2aWNlLmxpc3QoKS5zdWJzY3JpYmUodGhpcy5hZGRBdmFpbGFibGVGbGFncy5iaW5kKHRoaXMpKVxuICAgIHRoaXMuaGFuZGxlSW5wdXRDaGFuZ2UoKTtcblxuICAgIHRoaXMuZm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgIHRoaXMub25DaGFuZ2VQaG9uZU51bWJlcih2YWx1ZSlcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgb25QYXN0ZShldmVudDogYW55KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgIGNvbnN0IHBhc3RlZFRleHQgPSBldmVudC5jbGlwYm9hcmREYXRhPy5nZXREYXRhKCd0ZXh0JykgfHwgJydcbiAgICBjb25zdCBjb3VudHJ5Q29kZSA9IHRoaXMuc2VsZWN0ZWRGbGFnPy5jb2RlLnN1YnN0cmluZygxKTtcbiAgICBjb25zdCBjb3VudHJ5TWFzayA9IHRoaXMuc2VsZWN0ZWRGbGFnPy5tYXNrO1xuICAgIGlmIChjb3VudHJ5Q29kZSAmJiBjb3VudHJ5TWFzayAmJiBwYXN0ZWRUZXh0LnN0YXJ0c1dpdGgoY291bnRyeUNvZGUpICYmIHBhc3RlZFRleHQubGVuZ3RoID09PSBjb3VudHJ5TWFzay5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IG51bWJlciA9IHBhc3RlZFRleHQuc3Vic3RyaW5nKGNvdW50cnlDb2RlLmxlbmd0aCk7XG4gICAgICB0aGlzLmlucHV0VmFsdWUgPSBudW1iZXI7XG4gICAgICB0aGlzLm9uQ2hhbmdlUGhvbmVOdW1iZXIobnVtYmVyKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pbnB1dFZhbHVlID0gcGFzdGVkVGV4dDtcbiAgICB0aGlzLm9uQ2hhbmdlUGhvbmVOdW1iZXIocGFzdGVkVGV4dCk7XG5cbiAgfVxuXG4gIGhhbmRsZU9wdGlvblNlbGVjdGVkKGl0ZW06IGFueSkge1xuICAgIHRoaXMuc2VsZWN0ZWRGbGFnID0gaXRlbTtcbiAgICB0aGlzLm9uQ2hhbmdlRmxhZy5lbWl0KHRoaXMuc2VsZWN0ZWRGbGFnKTtcbiAgICB0aGlzLmhpZGVPcHRpb25zKCk7XG4gICAgdGhpcy5vbkNoYW5nZVBob25lTnVtYmVyKHRoaXMuaW5wdXRWYWx1ZSk7XG4gICAgaWYodGhpcy5kaXNhYmxlTWFzayl7IFxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm9uQ2hhbmdlKCcnKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9ICcnO1xuICAgICAgdGhpcy5zZWFyY2hGaWVsZENvbnRyb2wuc2V0VmFsdWUoJycpO1xuICAgICAgdGhpcy52YWx1ZSA9ICcnO1xuICAgIH0pO1xuICB9XG5cbiAgZGlzcGxheShvcHRpb246IGFueSkge1xuICAgIHJldHVybiB0aGlzLmRpc3BsYXlGbihvcHRpb24pXG4gIH1cblxuICBvdmVycmlkZSBzaG91bGRDbG9zZShldmVudDogTW91c2VFdmVudCkge1xuICAgIHJldHVybiAhdGhpcy5jbG9zZWRcbiAgICAgICYmICF0aGlzLndyYXBwZXI/Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KVxuICAgICAgJiYgIXRoaXMubWVudUNvbnRhaW5lcj8ubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpXG4gIH1cblxuICBvdmVycmlkZSBhZnRlckNsb3NlZCgpIHtcbiAgICB0aGlzLmNsb3NlZCA9IHRydWU7XG4gICAgdGhpcy5zZWFyY2hGaWVsZENvbnRyb2wuc2V0VmFsdWUoJycpXG4gICAgdGhpcy5zY3JvbGxTdWI/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBoYW5kbGVGbGFnQ2xpY2soZXZlbnQ/OiBFdmVudCkge1xuICAgIGV2ZW50Py5zdG9wUHJvcGFnYXRpb24oKVxuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5jbG9zZWRcbiAgICAgICAgPyB0aGlzLnNob3dPcHRpb25zKClcbiAgICAgICAgOiB0aGlzLmhpZGVPcHRpb25zKClcbiAgICB9XG4gIH1cblxuICBzaG93T3B0aW9ucygpIHtcbiAgICB0aGlzLmNsb3NlZCA9IGZhbHNlXG4gICAgaWYgKHRoaXMucGhvbmVDb250YWluZXIgJiYgdGhpcy5vdmVybGF5Q29udGVudCkge1xuICAgICAgdGhpcy5vcGVuKHRoaXMucGhvbmVDb250YWluZXIsIHRoaXMub3ZlcmxheUNvbnRlbnQsIHtcbiAgICAgICAgYmFja2Ryb3BDbGFzczogJ2Nkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wJyxcbiAgICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICAgIG1heEhlaWdodDogMzAwLFxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICBoaWRlT3B0aW9ucygpIHtcbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICBvbkNoYW5nZVBob25lTnVtYmVyKG51bWJlcjogc3RyaW5nKSB7XG4gICAgY29uc3Qgbm9ybWFsaXplZE51bWJlciA9IHRoaXMubm9ybWFsaXplUGhvbmVJbnB1dChudW1iZXIpO1xuICAgIGNvbnN0IG9ubHlEaWdpdHMgPSBub3JtYWxpemVkTnVtYmVyPy5yZXBsYWNlKE5PTl9ESUdJVF9SRUdFWCwgJycpIHx8ICcnO1xuICAgIFxuICAgIGlmICghdGhpcy5zZWxlY3RlZEZsYWcpIHtcbiAgICAgIHRoaXMudmFsdWUgPSBvbmx5RGlnaXRzO1xuICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjb3VudHJ5Q29kZSA9IHRoaXMuc2VsZWN0ZWRGbGFnLmNvZGUuc3Vic3RyaW5nKDEpO1xuICAgIGNvbnN0IHBob25lV2l0aG91dERkaSA9IHRoaXMucmVtb3ZlRGRpRnJvbU51bWJlcihvbmx5RGlnaXRzLCBjb3VudHJ5Q29kZSk7XG4gICAgdGhpcy52YWx1ZSA9IHBob25lV2l0aG91dERkaSA/IGNvdW50cnlDb2RlICsgcGhvbmVXaXRob3V0RGRpIDogJyc7XG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgbm9ybWFsaXplUGhvbmVJbnB1dChudW1iZXI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCFudW1iZXIpIHJldHVybiAnJztcbiAgICByZXR1cm4gbnVtYmVyLnN0YXJ0c1dpdGgoJysnKSA/IG51bWJlci5zdWJzdHJpbmcoMSkgOiBudW1iZXI7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZURkaUZyb21OdW1iZXIobnVtYmVyOiBzdHJpbmcsIGNvdW50cnlDb2RlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghbnVtYmVyIHx8ICFjb3VudHJ5Q29kZSkgcmV0dXJuIG51bWJlcjtcbiAgICByZXR1cm4gbnVtYmVyLnN0YXJ0c1dpdGgoY291bnRyeUNvZGUpID8gbnVtYmVyLnN1YnN0cmluZyhjb3VudHJ5Q29kZS5sZW5ndGgpIDogbnVtYmVyO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaCA9IGZuO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIGlmICh0aGlzLmNvdW50cnlJdGVtcy5sZW5ndGggJiYgdGhpcy52YWx1ZSkge1xuICAgICAgdGhpcy5pbml0U2VsZWN0ZWRGbGFnKHRoaXMuY291bnRyeUl0ZW1zKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGlzcGxheUZuID0gKGNvdW50cnlGbGFnOiBhbnkpID0+IGAke2NvdW50cnlGbGFnLmNvdW50cnlOYW1lfSAoJHtjb3VudHJ5RmxhZy5jb2RlfSlgO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBmaWx0ZXJGbiA9IChzZWFyY2g6IHN0cmluZykgPT5cbiAgICBmaWx0ZXJTZWxlY3RlZExpc3QodGhpcy5jb3VudHJ5SXRlbXMsIHNlYXJjaCwgWydjb2RlJywgJ2NvdW50cnlOYW1lJ10pO1xuXG4gIHByaXZhdGUgYWRkQXZhaWxhYmxlRmxhZ3MoZGF0YTogQ291bnRyeURhdGFbXSkge1xuICAgIHRoaXMuY291bnRyeUl0ZW1zID0gZGF0YTtcbiAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IHRoaXMuY291bnRyeUl0ZW1zO1xuICAgIHRoaXMuaW5pdFNlbGVjdGVkRmxhZyhkYXRhKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdFNlbGVjdGVkRmxhZyhkYXRhOiBDb3VudHJ5RGF0YVtdKSB7XG4gICAgaWYgKCF0aGlzLnZhbHVlKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXREZWZhdWx0Q291bnRyeUZsYWcoZGF0YSk7XG4gICAgfVxuICAgIGNvbnN0IGNvdW50cnkgPSBnZXRDb3VudHJ5RnJvbVBob25lKHRoaXMudmFsdWUpO1xuICAgIGlmICghY291bnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0RGVmYXVsdENvdW50cnlGbGFnKGRhdGEpO1xuICAgIH1cbiAgICBsZXQgdmFsdWUgPSB0aGlzLnZhbHVlO1xuXG4gICAgaWYodGhpcy5pbmZlckNvdW50cnlDb2RlQnlOdW1iZXIpe1xuICAgICAgdGhpcy5zZWxlY3RlZEZsYWcgPSB0aGlzLmNvdW50cnlJdGVtcy5maW5kKGl0ZW0gPT4gaXRlbS5jb3VudHJ5Q29kZSA9PT0gY291bnRyeS50b0xvd2VyQ2FzZSgpKVxuICAgICAgdmFsdWUgPSB0aGlzLnZhbHVlLnN1YnN0cmluZyh0aGlzLnNlbGVjdGVkRmxhZz8uY29kZS5zdWJzdHJpbmcoMSkubGVuZ3RoIHx8IDApXG4gICAgfVxuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmlucHV0VmFsdWUgPSB2YWx1ZTtcbiAgICAgIHRoaXMub25DaGFuZ2VGbGFnLmVtaXQodGhpcy5zZWxlY3RlZEZsYWcpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREZWZhdWx0Q291bnRyeUZsYWcoZGF0YTogQ291bnRyeURhdGFbXSkge1xuICAgIHRoaXMuc2VsZWN0ZWRGbGFnID0gdGhpcy5jb3VudHJ5RmxhZ1NlcnZpY2UuZ2V0RGVmYXVsdENvdW50cnlGbGFnKGRhdGEsIHRoaXMudXNlQ291bnRyeUNvZGUpO1xuICAgIHRoaXMub25DaGFuZ2VGbGFnLmVtaXQodGhpcy5zZWxlY3RlZEZsYWcpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVJbnB1dENoYW5nZSgpIHtcbiAgICB0aGlzLnNlYXJjaEZpZWxkQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95KSxcbiAgICAgIGRlYm91bmNlVGltZSgzMDApLFxuICAgICAgbWFwKHZhbHVlID0+IHRoaXMuZmlsdGVyRm4odmFsdWUgfHwgJycpKVxuICAgICkuc3Vic2NyaWJlKGl0ZW1zID0+IHtcbiAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gaXRlbXNcbiAgICB9KVxuICB9XG5cbiAgaGFuZGxlUGhvbmVDaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMub25DaGFuZ2VQaG9uZU51bWJlcih0aGlzLmZvcm1Db250cm9sLnZhbHVlKVxuICB9XG5cblxuICBub3JtYWxpemVQaG9uZU51bWJlckJyKGlucHV0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IE5PTl9ESUdJVF9SRUdFWCA9IC9cXEQvZztcbiAgICBjb25zdCBvbmx5RGlnaXRzID0gaW5wdXQucmVwbGFjZShOT05fRElHSVRfUkVHRVgsICcnKTtcbiAgICBjb25zdCBjb3VudHJ5Q29kZSA9IHRoaXMuc2VsZWN0ZWRGbGFnPy5jb2RlPy5zdWJzdHJpbmcoMSkgPz8gJyc7XG4gICAgbGV0IG51bWJlciA9IGlucHV0O1xuXG4gICAgY29uc3Qgc3RhcnRzV2l0aDU1ID0gb25seURpZ2l0cy5zdGFydHNXaXRoKCc1NScpO1xuXG4gICAgaWYgKHN0YXJ0c1dpdGg1NSAmJiBvbmx5RGlnaXRzLmxlbmd0aCA8IDEyICYmIGNvdW50cnlDb2RlID09PSAnNTUnKSB7XG4gICAgICBudW1iZXIgPSBjb3VudHJ5Q29kZSArIG9ubHlEaWdpdHNcbiAgICB9XG4gICAgcmV0dXJuIG51bWJlclxuICB9XG59XG4iLCI8ZGl2ICNwaG9uZUNvbnRhaW5lciBbc3R5bGVdPVwie2N1cnNvcjogZGlzYWJsZWQgPyAnbm90LWFsbG93ZWQnIDogJ2F1dG8nfVwiIGNsYXNzPVwicGhvbmUtZGRpXCI+XG5cbiAgPGRpdlxuICAgICN3cmFwcGVyXG4gICAgKGNsaWNrKT1cImhhbmRsZUZsYWdDbGljaygpXCJcbiAgICAqbmdJZj1cInNlbGVjdGVkRmxhZ1wiXG4gICAgW3N0eWxlXT1cIntjdXJzb3I6ICFkaXNhYmxlZCA/ICdwb2ludGVyJyA6ICdub3QtYWxsb3dlZCd9XCJcbiAgICBjbGFzcz1cImZsYWdcIlxuICAgIGRhdGEtdGVzdGlkPVwiZmxhZ1wiPlxuXG4gICAgPGRpdiBbc3R5bGVdPVwie2JhY2tncm91bmRQb3NpdGlvbjogdGhpcy5zZWxlY3RlZEZsYWc/LmJhY2tncm91bmRQb3NpdGlvbn1cIiBjbGFzcz1cImZsYWctaWNvblwiPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmbGFnLWFycm93XCI+PC9kaXY+XG4gIDwvZGl2PlxuICA8aW5wdXRcbiAgICAqbmdJZj1cInNlbGVjdGVkRmxhZzsgZWxzZSBsb2FkaW5nUGhvbmVJbnB1dFwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbKG5nTW9kZWwpXT1cImlucHV0VmFsdWVcIlxuICAgIChjaGFuZ2UpPVwiaGFuZGxlUGhvbmVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgW3BsYWNlaG9sZGVyXT1cInNlbGVjdGVkRmxhZy5tYXNrXCJcbiAgICBbbWFza109XCJzZWxlY3RlZEZsYWcubWFza0Zvcm1hdFwiXG4gICAgW3ByZWZpeF09XCJzZWxlY3RlZEZsYWcuY29kZSArICcgJ1wiXG4gICAgKHBhc3RlKT1cIm9uUGFzdGUoJGV2ZW50KVwiXG4gICAgW3ZhbGlkYXRpb25dPVwidHJ1ZVwiXG4gICAgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCJcbiAgICBhc2tBdXRvZm9jdXNcbiAgICBjbGFzcz1cInBob25lXCJcbiAgLz5cblxuICA8bmctdGVtcGxhdGUgI2xvYWRpbmdQaG9uZUlucHV0PlxuICAgIDxkaXYgY2xhc3M9XCJza2VsZXRvblwiPlxuICAgICAgPGFzay1za2VsZXRvbiBbYmFyc0hlaWdodF09XCIyNFwiIFtyYWRpdXNdPVwiMTBcIiBzdHlsZT1cImhlaWdodDogMjRweDtcIi8+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI292ZXJsYXlDb250ZW50PlxuICA8ZGl2ICNtZW51Q29udGFpbmVyIGNsYXNzPVwibWVudS1jb250YWluZXJcIj5cbiAgICA8ZGl2IFtzdHlsZV09XCJ7cGFkZGluZzogJzhweCd9XCI+XG4gICAgICA8YXNrLWlucHV0XG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJzZWFyY2hGaWVsZENvbnRyb2xcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0ZJTkRfRERJX09SX0NPVU5UUlknIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW2F1dG9Gb2N1c109XCJ0cnVlXCJcbiAgICAgICAgY2xhc3M9XCJzZWFyY2hcIlxuICAgICAgLz5cbiAgICA8L2Rpdj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZmlsdGVyZWRPcHRpb25zLmxlbmd0aDsgZWxzZSBsaXN0XCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImVtcHR5XCI+e3tcbiAgICAgICAgJ05PX09QVElPTlMnIHwgdHJhbnNsYXRlXG4gICAgICAgIH19PC9zcGFuPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLXRlbXBsYXRlICNsaXN0PlxuICAgICAgPGRpdiBbYXNrU2Nyb2xsVGhyZXNob2xkXT1cIjUwXCIgYXNrU2Nyb2xsIGNsYXNzPVwibGlzdFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb3VudHJ5SXRlbSBvZiBmaWx0ZXJlZE9wdGlvbnNcIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlT3B0aW9uU2VsZWN0ZWQoY291bnRyeUl0ZW0pXCJcbiAgICAgICAgICAgIGNsYXNzPVwib3B0aW9uLWl0ZW1cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgW3N0eWxlXT1cIntiYWNrZ3JvdW5kUG9zaXRpb246IGNvdW50cnlJdGVtLmJhY2tncm91bmRQb3NpdGlvbn1cIiBjbGFzcz1cImNvdW50cnlcIj48L2Rpdj5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dFwiPnt7IGRpc3BsYXkoY291bnRyeUl0ZW0pIH19PC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -3912,7 +3912,6 @@ class PhoneDdiComponent extends OverlayComponent {
3912
3912
  this.inferCountryCodeByNumber = true;
3913
3913
  this.valueChange = new EventEmitter();
3914
3914
  this.onChangeFlag = new EventEmitter();
3915
- this.initialValue = '';
3916
3915
  this.formControl = new FormControl();
3917
3916
  this.countryItems = [];
3918
3917
  this.closed = true;
@@ -3997,16 +3996,28 @@ class PhoneDdiComponent extends OverlayComponent {
3997
3996
  this.close();
3998
3997
  }
3999
3998
  onChangePhoneNumber(number) {
4000
- const onlyDigits = number?.replace(NON_DIGIT_REGEX, '') || '';
3999
+ const normalizedNumber = this.normalizePhoneInput(number);
4000
+ const onlyDigits = normalizedNumber?.replace(NON_DIGIT_REGEX, '') || '';
4001
4001
  if (!this.selectedFlag) {
4002
4002
  this.value = onlyDigits;
4003
4003
  this.onChange(this.value);
4004
4004
  return;
4005
4005
  }
4006
4006
  const countryCode = this.selectedFlag.code.substring(1);
4007
- this.value = onlyDigits ? countryCode + onlyDigits : '';
4007
+ const phoneWithoutDdi = this.removeDdiFromNumber(onlyDigits, countryCode);
4008
+ this.value = phoneWithoutDdi ? countryCode + phoneWithoutDdi : '';
4008
4009
  this.onChange(this.value);
4009
4010
  }
4011
+ normalizePhoneInput(number) {
4012
+ if (!number)
4013
+ return '';
4014
+ return number.startsWith('+') ? number.substring(1) : number;
4015
+ }
4016
+ removeDdiFromNumber(number, countryCode) {
4017
+ if (!number || !countryCode)
4018
+ return number;
4019
+ return number.startsWith(countryCode) ? number.substring(countryCode.length) : number;
4020
+ }
4010
4021
  registerOnChange(fn) {
4011
4022
  this.onChange = fn;
4012
4023
  }
@@ -4014,7 +4025,6 @@ class PhoneDdiComponent extends OverlayComponent {
4014
4025
  this.onTouch = fn;
4015
4026
  }
4016
4027
  writeValue(value) {
4017
- this.initialValue = value;
4018
4028
  this.value = value;
4019
4029
  if (this.countryItems.length && this.value) {
4020
4030
  this.initSelectedFlag(this.countryItems);