@skyux/phone-field 7.21.0 → 7.21.2
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.
|
@@ -201,15 +201,20 @@ export class SkyPhoneFieldComponent {
|
|
|
201
201
|
let newCountry;
|
|
202
202
|
for (let i = 1; i < __classPrivateFieldGet(this, _SkyPhoneFieldComponent_longestDialCodeLength, "f") + 1; i++) {
|
|
203
203
|
const dialCode = phoneNumber.substring(0, i);
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
204
|
+
if (__classPrivateFieldGet(this, _SkyPhoneFieldComponent_defaultCountryData, "f")?.dialCode === dialCode) {
|
|
205
|
+
newCountry = __classPrivateFieldGet(this, _SkyPhoneFieldComponent_defaultCountryData, "f");
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
let foundCountry = this.countries.find((country) => country.dialCode === dialCode && country.priority === 0);
|
|
209
|
+
if (foundCountry) {
|
|
210
|
+
// Ensure that the country that was found is one of the supported countries
|
|
211
|
+
if (this.supportedCountryISOs &&
|
|
212
|
+
this.supportedCountryISOs.findIndex((isoCode) => isoCode.toUpperCase() === foundCountry?.iso2.toUpperCase()) < 0) {
|
|
213
|
+
foundCountry = undefined;
|
|
214
|
+
}
|
|
215
|
+
if (foundCountry !== this.selectedCountry) {
|
|
216
|
+
newCountry = foundCountry;
|
|
217
|
+
}
|
|
213
218
|
}
|
|
214
219
|
}
|
|
215
220
|
}
|
|
@@ -386,4 +391,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.11", ngImpo
|
|
|
386
391
|
static: true,
|
|
387
392
|
}]
|
|
388
393
|
}] } });
|
|
389
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3Bob25lLWZpZWxkL3NyYy9saWIvbW9kdWxlcy9waG9uZS1maWVsZC9waG9uZS1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvcGhvbmUtZmllbGQvc3JjL2xpYi9tb2R1bGVzL3Bob25lLWZpZWxkL3Bob25lLWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUVMLE9BQU8sRUFDUCxLQUFLLEVBQ0wsVUFBVSxFQUNWLE9BQU8sR0FDUixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFDTixRQUFRLEVBQ1IsV0FBVyxFQUNYLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFlLFdBQVcsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN0RCxPQUFPLEVBQ0wseUJBQXlCLEdBRTFCLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsZUFBZSxFQUNmLGVBQWUsR0FDaEIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7Ozs7Ozs7O0FBSTVFLHNGQUFzRjtBQUN0RixrRkFBa0Y7QUFDbEYsMElBQTBJO0FBeUYxSSxNQUFNLE9BQU8sc0JBQXNCO0lBdUpqQyxZQUNFLFdBQXdCLEVBQ3hCLGNBQTJDLEVBQzNDLGNBQWlDLEVBQ2QsUUFBMEIsRUFDZCxlQUF3QztRQURwRCxhQUFRLEdBQVIsUUFBUSxDQUFrQjtRQUNkLG9CQUFlLEdBQWYsZUFBZSxDQUF5QjtRQTlJekUsbURBQW9CLElBQUksRUFBQztRQXNDekIsZ0RBQWtELFNBQVMsRUFBQztRQVM1RDs7O1dBR0c7UUFHSSwwQkFBcUIsR0FBRyxJQUFJLFlBQVksRUFBd0IsQ0FBQztRQUlqRSwwQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFFOUIsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBRTNCLG9CQUFlLEdBQUcsSUFBSSxDQUFDO1FBeUQ5Qiw2REFBc0Q7UUFFdEQsK0RBQWdDLEtBQUssRUFBQztRQUV0Qyw2Q0FBYyxlQUFlLENBQUMsV0FBVyxFQUFFLEVBQUM7UUFFNUMsd0RBQXlCLENBQUMsRUFBQztRQUUzQiwwREFBcUM7UUFFckMsMkRBQW9EO1FBRXBELDJEQUNFLElBQUksV0FBVyxFQUFFLEVBQUM7UUFFcEIsc0RBQTBCO1FBQzFCLHlEQUE2QztRQUM3Qyx5REFBbUM7UUFTakMsdUJBQUEsSUFBSSx1Q0FBZ0IsV0FBVyxNQUFBLENBQUM7UUFDaEMsdUJBQUEsSUFBSSwwQ0FBbUIsY0FBYyxNQUFBLENBQUM7UUFDdEMsdUJBQUEsSUFBSSwwQ0FBbUIsY0FBYyxNQUFBLENBQUM7UUFDdEM7Ozs7OztXQU1HO1FBQ0gsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSztRQUN6Qiw4REFBOEQ7UUFDOUQsSUFBSSxDQUFDLFNBQVMsQ0FBRSxNQUFjLENBQUMsbUJBQW1CLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FDckUsQ0FBQztRQUNGLEtBQUssTUFBTSxPQUFPLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNwQyxPQUFPLENBQUMsUUFBUSxHQUFHLEdBQUcsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO1lBRTFDLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsdUJBQUEsSUFBSSxxREFBdUIsRUFBRTtnQkFDekQsdUJBQUEsSUFBSSxpREFBMEIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLE1BQUEsQ0FBQzthQUN2RDtTQUNGO1FBRUQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLHVCQUFBLElBQUksMkNBQWEsQ0FBQyxLQUFLLENBQUM7WUFDL0MsYUFBYSxFQUFFLHVCQUFBLElBQUksd0RBQTBCO1NBQzlDLENBQUMsQ0FBQztJQUNMLENBQUM7SUF0TEQ7OztPQUdHO0lBQ0gsSUFDVyxlQUFlLENBQUMsS0FBMEI7UUFDbkQsdUJBQUEsSUFBSSw0Q0FBcUIsS0FBSyxLQUFLLEtBQUssTUFBQSxDQUFDO0lBQzNDLENBQUM7SUFFRCxJQUFXLGVBQWU7UUFDeEIsT0FBTyx1QkFBQSxJQUFJLGdEQUFrQixDQUFDO0lBQ2hDLENBQUM7SUFJRDs7Ozs7O09BTUc7SUFDSCxJQUNXLGNBQWMsQ0FBQyxLQUF5QjtRQUNqRCxJQUFJLEtBQUssSUFBSSxLQUFLLEtBQUssdUJBQUEsSUFBSSwrQ0FBaUIsRUFBRTtZQUM1Qyx1QkFBQSxJQUFJLDJDQUFvQixLQUFLLENBQUMsV0FBVyxFQUFFLE1BQUEsQ0FBQztZQUU1Qyx1QkFBQSxJQUFJLDhDQUF1QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FDNUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssdUJBQUEsSUFBSSwrQ0FBaUIsQ0FDcEQsTUFBQSxDQUFDO1NBQ0g7SUFDSCxDQUFDO0lBRUQsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sdUJBQUEsSUFBSSwrQ0FBaUIsQ0FBQztJQUMvQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQ1csWUFBWTtRQUNyQixPQUFPLHVCQUFBLElBQUksNkNBQWUsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBVyxZQUFZLENBQUMsS0FBa0Q7UUFDeEUsdUJBQUEsSUFBSSx5Q0FBa0IsS0FBSyxJQUFJLFNBQVMsTUFBQSxDQUFDO0lBQzNDLENBQUM7SUErQkQ7O09BRUc7SUFDSCxJQUNXLGVBQWUsQ0FBQyxVQUE0QztRQUNyRSxJQUNFLFVBQVU7WUFDVixDQUFDLENBQUMsdUJBQUEsSUFBSSxnREFBa0I7Z0JBQ3RCLHVCQUFBLElBQUksZ0RBQWtCLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFDbEQ7WUFDQSx1QkFBQSxJQUFJLDRDQUFxQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FDMUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDLElBQUksQ0FDOUMsTUFBQSxDQUFDO1lBRUYsSUFBSSx1QkFBQSxJQUFJLGdEQUFrQixJQUFJLENBQUMsdUJBQUEsSUFBSSxnREFBa0IsQ0FBQyxhQUFhLEVBQUU7Z0JBQ25FLE1BQU0sU0FBUyxHQUFHLHVCQUFBLElBQUksMENBQVksQ0FBQyx1QkFBdUIsQ0FDeEQsVUFBVSxDQUFDLElBQUksRUFDZixlQUFlLENBQUMsVUFBVSxDQUMzQixDQUFDO2dCQUNGLHVCQUFBLElBQUksZ0RBQWtCLENBQUMsYUFBYSxHQUFHLHVCQUFBLElBQUksMENBQVksQ0FBQyxNQUFNLENBQzVELFNBQVMsRUFDVCxpQkFBaUIsQ0FBQyxRQUFRLENBQzNCLENBQUM7YUFDSDtZQUVELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsdUJBQUEsSUFBSSxnREFBa0IsQ0FBQyxDQUFDO1NBQ3pEO0lBQ0gsQ0FBQztJQUVELElBQVcsZUFBZTtRQUN4QixPQUFPLHVCQUFBLElBQUksZ0RBQWtCLENBQUM7SUFDaEMsQ0FBQztJQXlFTSxRQUFRO1FBQ2IsMEZBQTBGO1FBQzFGLHlEQUF5RDtRQUN6RCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtnQkFDakQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUM7b0JBQzVCLGFBQWEsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO29CQUNwQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsdUJBQXVCO29CQUNsRCxtQkFBbUIsRUFBRSxJQUFJLENBQUMscUJBQXFCO2lCQUNoRCxDQUFDLENBQUM7YUFDSjtZQUVELElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO2dCQUN4QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQzthQUM1QjtZQUVELElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFO2dCQUN6QixJQUFJLENBQUMsZUFBZSxHQUFHLHVCQUFBLElBQUksa0RBQW9CLENBQUM7YUFDakQ7WUFDRCx1QkFBQSxJQUFJLDhDQUFnQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVOLHVCQUFBLElBQUksd0RBQTBCLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FDbkQsQ0FBQyxRQUFpQyxFQUFFLEVBQUU7WUFDcEMsSUFBSSxRQUFRLEVBQUUsSUFBSSxLQUFLLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxFQUFFO2dCQUNqRCxJQUFJLENBQUMsZUFBZSxHQUFHLFFBQVEsQ0FBQzthQUNqQztRQUNILENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLGlCQUFpQixDQUFDLFVBQWtDO1FBQ3pELElBQUksVUFBVSxFQUFFO1lBQ2QsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FDeEMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDLElBQUksQ0FDdEQsQ0FBQztZQUNGLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNqQztJQUNILENBQUM7SUFFTSxtQkFBbUIsQ0FBQyxVQUFtQjtRQUM1Qyx1QkFBQSxJQUFJLHdEQUFpQyxJQUFJLE1BQUEsQ0FBQztRQUUxQyxJQUFJLFVBQVUsRUFBRTtZQUNkLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO1NBQzlCO2FBQU07WUFDTCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO1lBRWhDLHVCQUFBLElBQUksd0RBQTBCLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ3BEO1FBRUQsdUJBQUEsSUFBSSw4Q0FBZ0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRU0seUJBQXlCLENBQUMsQ0FBaUI7UUFDaEQsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUM1QixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztTQUM3QjthQUFNO1lBQ0wsdUJBQUEsSUFBSSw4Q0FBZ0IsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDM0Q7UUFFRCx1QkFBQSxJQUFJLDhDQUFnQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFTSxzQkFBc0IsQ0FBQyxDQUFpQjtRQUM3QyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN6QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO1NBQ2hDO2FBQU07WUFDTCxJQUFJLHVCQUFBLElBQUksNERBQThCLEVBQUU7Z0JBQ3RDLHVCQUFBLElBQUksOENBQWdCLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDaEQsdUJBQUEsSUFBSSx3REFBaUMsS0FBSyxNQUFBLENBQUM7YUFDNUM7U0FDRjtRQUVELHVCQUFBLElBQUksOENBQWdCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVNLG9CQUFvQixDQUFDLFdBQW1CO1FBQzdDLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2hELE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxJQUFJLFVBQTRDLENBQUM7UUFFakQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLHVCQUFBLElBQUkscURBQXVCLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3hELE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBRTdDLElBQUksWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUNwQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsS0FBSyxRQUFRLElBQUksT0FBTyxDQUFDLFFBQVEsS0FBSyxDQUFDLENBQ3JFLENBQUM7WUFFRixJQUFJLFlBQVksRUFBRTtnQkFDaEIsMkVBQTJFO2dCQUMzRSxJQUNFLElBQUksQ0FBQyxvQkFBb0I7b0JBQ3pCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQ2pDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FDVixPQUFPLENBQUMsV0FBVyxFQUFFLEtBQUssWUFBWSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FDN0QsR0FBRyxDQUFDLEVBQ0w7b0JBQ0EsWUFBWSxHQUFHLFNBQVMsQ0FBQztpQkFDMUI7Z0JBRUQsSUFBSSxZQUFZLEtBQUssSUFBSSxDQUFDLGVBQWUsRUFBRTtvQkFDekMsVUFBVSxHQUFHLFlBQVksQ0FBQztpQkFDM0I7YUFDRjtTQUNGO1FBRUQsSUFBSSxVQUFVLEVBQUU7WUFDZCxJQUFJLENBQUMsZUFBZSxHQUFHLFVBQVUsQ0FBQztZQUNsQyx1QkFBQSxJQUFJLDhDQUFnQixDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3BDLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7OztvSEF2VFUsc0JBQXNCO3dHQUF0QixzQkFBc0IseVNBbEZ0QjtRQUNULDJCQUEyQjtRQUMzQixvRkFBb0Y7UUFDcEYscUZBQXFGO1FBQ3JGLGlCQUFpQjtRQUNqQjtZQUNFLE9BQU8sRUFBRSxzQkFBc0I7WUFDL0IsUUFBUSxFQUFFLFNBQVM7U0FDcEI7UUFDRDtZQUNFLE9BQU8sRUFBRSx5QkFBeUI7WUFDbEMsUUFBUSxFQUFFLEVBQUUsbUJBQW1CLEVBQUUsSUFBSSxFQUFFO1NBQ3hDO0tBQ0YsMkhBd0xPLFdBQVcsdUlBTVgsV0FBVywySUFNWCxXQUFXLDJDQ25RckIsdTRHQTBHQSx3MnJCRDFDYztRQUNWLE9BQU8sQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMzRCxPQUFPLENBQUMsd0JBQXdCLEVBQUU7WUFDaEMsVUFBVSxDQUFDLGNBQWMsRUFBRTtnQkFDekIsS0FBSyxDQUFDO29CQUNKLE9BQU8sRUFBRSxDQUFDO29CQUNWLEtBQUssRUFBRSxDQUFDO2lCQUNULENBQUM7Z0JBQ0YsT0FBTyxDQUNMLGVBQWUsRUFDZixLQUFLLENBQUM7b0JBQ0osT0FBTyxFQUFFLENBQUM7b0JBQ1YsS0FBSyxFQUFFLEdBQUc7aUJBQ1gsQ0FBQyxDQUNIO2FBQ0YsQ0FBQztZQUNGLFVBQVUsQ0FBQyxjQUFjLEVBQUU7Z0JBQ3pCLE9BQU8sQ0FDTCxlQUFlLEVBQ2YsS0FBSyxDQUFDO29CQUNKLE9BQU8sRUFBRSxDQUFDO29CQUNWLEtBQUssRUFBRSxDQUFDO2lCQUNULENBQUMsQ0FDSDthQUNGLENBQUM7WUFDRixVQUFVLENBQUMscUJBQXFCLEVBQUU7Z0JBQ2hDLEtBQUssQ0FBQztvQkFDSixPQUFPLEVBQUUsQ0FBQztpQkFDWCxDQUFDO2dCQUNGLE9BQU8sQ0FDTCxlQUFlLEVBQ2YsS0FBSyxDQUFDO29CQUNKLE9BQU8sRUFBRSxDQUFDO2lCQUNYLENBQUMsQ0FDSDthQUNGLENBQUM7WUFDRixVQUFVLENBQUMscUJBQXFCLEVBQUU7Z0JBQ2hDLE9BQU8sQ0FDTCxlQUFlLEVBQ2YsS0FBSyxDQUFDO29CQUNKLE9BQU8sRUFBRSxDQUFDO2lCQUNYLENBQUMsQ0FDSDthQUNGLENBQUM7U0FDSCxDQUFDO1FBQ0YsT0FBTyxDQUFDLHFCQUFxQixFQUFFO1lBQzdCLFVBQVUsQ0FBQyxjQUFjLEVBQUU7Z0JBQ3pCLEtBQUssQ0FBQztvQkFDSixPQUFPLEVBQUUsQ0FBQztpQkFDWCxDQUFDO2dCQUNGLE9BQU8sQ0FDTCxlQUFlLEVBQ2YsS0FBSyxDQUFDO29CQUNKLE9BQU8sRUFBRSxDQUFDO2lCQUNYLENBQUMsQ0FDSDthQUNGLENBQUM7WUFDRixVQUFVLENBQUMsY0FBYyxFQUFFO2dCQUN6QixPQUFPLENBQ0wsZUFBZSxFQUNmLEtBQUssQ0FBQztvQkFDSixPQUFPLEVBQUUsQ0FBQztpQkFDWCxDQUFDLENBQ0g7YUFDRixDQUFDO1NBQ0gsQ0FBQztLQUNIOzRGQUVVLHNCQUFzQjtrQkF4RmxDLFNBQVM7K0JBQ0UsaUJBQWlCLGlCQUdaLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1QsMkJBQTJCO3dCQUMzQixvRkFBb0Y7d0JBQ3BGLHFGQUFxRjt3QkFDckYsaUJBQWlCO3dCQUNqQjs0QkFDRSxPQUFPLEVBQUUsc0JBQXNCOzRCQUMvQixRQUFRLEVBQUUsU0FBUzt5QkFDcEI7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLHlCQUF5Qjs0QkFDbEMsUUFBUSxFQUFFLEVBQUUsbUJBQW1CLEVBQUUsSUFBSSxFQUFFO3lCQUN4QztxQkFDRixjQUNXO3dCQUNWLE9BQU8sQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQzt3QkFDM0QsT0FBTyxDQUFDLHdCQUF3QixFQUFFOzRCQUNoQyxVQUFVLENBQUMsY0FBYyxFQUFFO2dDQUN6QixLQUFLLENBQUM7b0NBQ0osT0FBTyxFQUFFLENBQUM7b0NBQ1YsS0FBSyxFQUFFLENBQUM7aUNBQ1QsQ0FBQztnQ0FDRixPQUFPLENBQ0wsZUFBZSxFQUNmLEtBQUssQ0FBQztvQ0FDSixPQUFPLEVBQUUsQ0FBQztvQ0FDVixLQUFLLEVBQUUsR0FBRztpQ0FDWCxDQUFDLENBQ0g7NkJBQ0YsQ0FBQzs0QkFDRixVQUFVLENBQUMsY0FBYyxFQUFFO2dDQUN6QixPQUFPLENBQ0wsZUFBZSxFQUNmLEtBQUssQ0FBQztvQ0FDSixPQUFPLEVBQUUsQ0FBQztvQ0FDVixLQUFLLEVBQUUsQ0FBQztpQ0FDVCxDQUFDLENBQ0g7NkJBQ0YsQ0FBQzs0QkFDRixVQUFVLENBQUMscUJBQXFCLEVBQUU7Z0NBQ2hDLEtBQUssQ0FBQztvQ0FDSixPQUFPLEVBQUUsQ0FBQztpQ0FDWCxDQUFDO2dDQUNGLE9BQU8sQ0FDTCxlQUFlLEVBQ2YsS0FBSyxDQUFDO29DQUNKLE9BQU8sRUFBRSxDQUFDO2lDQUNYLENBQUMsQ0FDSDs2QkFDRixDQUFDOzRCQUNGLFVBQVUsQ0FBQyxxQkFBcUIsRUFBRTtnQ0FDaEMsT0FBTyxDQUNMLGVBQWUsRUFDZixLQUFLLENBQUM7b0NBQ0osT0FBTyxFQUFFLENBQUM7aUNBQ1gsQ0FBQyxDQUNIOzZCQUNGLENBQUM7eUJBQ0gsQ0FBQzt3QkFDRixPQUFPLENBQUMscUJBQXFCLEVBQUU7NEJBQzdCLFVBQVUsQ0FBQyxjQUFjLEVBQUU7Z0NBQ3pCLEtBQUssQ0FBQztvQ0FDSixPQUFPLEVBQUUsQ0FBQztpQ0FDWCxDQUFDO2dDQUNGLE9BQU8sQ0FDTCxlQUFlLEVBQ2YsS0FBSyxDQUFDO29DQUNKLE9BQU8sRUFBRSxDQUFDO2lDQUNYLENBQUMsQ0FDSDs2QkFDRixDQUFDOzRCQUNGLFVBQVUsQ0FBQyxjQUFjLEVBQUU7Z0NBQ3pCLE9BQU8sQ0FDTCxlQUFlLEVBQ2YsS0FBSyxDQUFDO29DQUNKLE9BQU8sRUFBRSxDQUFDO2lDQUNYLENBQUMsQ0FDSDs2QkFDRixDQUFDO3lCQUNILENBQUM7cUJBQ0g7OzBCQTZKRSxRQUFROzswQkFDUixRQUFROzswQkFBSSxRQUFROzRDQXRKWixlQUFlO3NCQUR6QixLQUFLO2dCQW1CSyxjQUFjO3NCQUR4QixLQUFLO2dCQXFCSyxZQUFZO3NCQUR0QixLQUFLO2dCQWdCQyxvQkFBb0I7c0JBRDFCLEtBQUs7Z0JBU0MscUJBQXFCO3NCQUQzQixNQUFNO2dCQW1CSSxlQUFlO3NCQUR6QixLQUFLO2dCQWtDQyxnQkFBZ0I7c0JBSnRCLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUU7d0JBQzdCLElBQUksRUFBRSxXQUFXO3dCQUNqQixNQUFNLEVBQUUsSUFBSTtxQkFDYjtnQkFPTSxxQkFBcUI7c0JBSjNCLFNBQVM7dUJBQUMsdUJBQXVCLEVBQUU7d0JBQ2xDLElBQUksRUFBRSxXQUFXO3dCQUNqQixNQUFNLEVBQUUsSUFBSTtxQkFDYjtnQkFPTSx1QkFBdUI7c0JBSjdCLFNBQVM7dUJBQUMseUJBQXlCLEVBQUU7d0JBQ3BDLElBQUksRUFBRSxXQUFXO3dCQUNqQixNQUFNLEVBQUUsSUFBSTtxQkFDYiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFuaW1hdGlvbkV2ZW50LFxuICBhbmltYXRlLFxuICBzdHlsZSxcbiAgdHJhbnNpdGlvbixcbiAgdHJpZ2dlcixcbn0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFNraXBTZWxmLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNreUlucHV0Qm94SG9zdFNlcnZpY2UgfSBmcm9tICdAc2t5dXgvZm9ybXMnO1xuaW1wb3J0IHtcbiAgU0tZX0NPVU5UUllfRklFTERfQ09OVEVYVCxcbiAgU2t5Q291bnRyeUZpZWxkQ291bnRyeSxcbn0gZnJvbSAnQHNreXV4L2xvb2t1cCc7XG5pbXBvcnQgeyBTa3lUaGVtZVNlcnZpY2UgfSBmcm9tICdAc2t5dXgvdGhlbWUnO1xuXG5pbXBvcnQge1xuICBQaG9uZU51bWJlckZvcm1hdCxcbiAgUGhvbmVOdW1iZXJUeXBlLFxuICBQaG9uZU51bWJlclV0aWwsXG59IGZyb20gJ2dvb2dsZS1saWJwaG9uZW51bWJlcic7XG5pbXBvcnQgJ2ludGwtdGVsLWlucHV0JztcblxuaW1wb3J0IHsgU2t5UGhvbmVGaWVsZEFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9waG9uZS1maWVsZC1hZGFwdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5UGhvbmVGaWVsZENvdW50cnkgfSBmcm9tICcuL3R5cGVzL2NvdW50cnknO1xuaW1wb3J0IHsgU2t5UGhvbmVGaWVsZE51bWJlclJldHVybkZvcm1hdCB9IGZyb20gJy4vdHlwZXMvbnVtYmVyLXJldHVybi1mb3JtYXQnO1xuXG4vLyBOT1RFOiBUaGUgbm8tb3AgYW5pbWF0aW9uIGlzIGhlcmUgaW4gb3JkZXIgdG8gYmxvY2sgdGhlIGlucHV0J3MgXCJmYWRlIGluXCIgYW5pbWF0aW9uXG4vLyBmcm9tIGZpcmluZyBvbiBpbml0aWFsIGxvYWQuIEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoaXMgdGVjaG5pcXVlIHlvdSBjYW4gc2VlXG4vLyBodHRwczovL3d3dy5iZW5uYWRlbC5jb20vYmxvZy8zNDE3LXVzaW5nLW5vLW9wLXRyYW5zaXRpb25zLXRvLXByZXZlbnQtYW5pbWF0aW9uLWR1cmluZy10aGUtaW5pdGlhbC1yZW5kZXItb2Ytbmdmb3ItaW4tYW5ndWxhci01LTItNi5odG1cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1waG9uZS1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9waG9uZS1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Bob25lLWZpZWxkLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICBTa3lQaG9uZUZpZWxkQWRhcHRlclNlcnZpY2UsXG4gICAgLy8gUHJldmVudHMgdGhlIGVtYmVkZGVkIGNvdW50cnkgZmllbGQgY29tcG9uZW50IGZyb20gY2hhbmdpbmcgaXRzIGJlaGF2aW9yIGJhc2VkIG9uXG4gICAgLy8gYmVpbmcgaW5zaWRlIGFuIGlucHV0IGJveC4gVGhlIHBob25lIGZpZWxkIGl0c2VsZiB3aWxsIGhhbmRsZSB0aGUgcmVxdWlyZWQgY2hhbmdlc1xuICAgIC8vIGZvciBpbnB1dCBib3guXG4gICAge1xuICAgICAgcHJvdmlkZTogU2t5SW5wdXRCb3hIb3N0U2VydmljZSxcbiAgICAgIHVzZVZhbHVlOiB1bmRlZmluZWQsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBTS1lfQ09VTlRSWV9GSUVMRF9DT05URVhULFxuICAgICAgdXNlVmFsdWU6IHsgc2hvd1BsYWNlaG9sZGVyVGV4dDogdHJ1ZSB9LFxuICAgIH0sXG4gIF0sXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdibG9ja0FuaW1hdGlvbk9uTG9hZCcsIFt0cmFuc2l0aW9uKCc6ZW50ZXInLCBbXSldKSxcbiAgICB0cmlnZ2VyKCdjb3VudHJ5U2VhcmNoQW5pbWF0aW9uJywgW1xuICAgICAgdHJhbnNpdGlvbigndm9pZCA9PiBvcGVuJywgW1xuICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgb3BhY2l0eTogMCxcbiAgICAgICAgICB3aWR0aDogMCxcbiAgICAgICAgfSksXG4gICAgICAgIGFuaW1hdGUoXG4gICAgICAgICAgJzIwMG1zIGVhc2UtaW4nLFxuICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDEsXG4gICAgICAgICAgICB3aWR0aDogJyonLFxuICAgICAgICAgIH0pXG4gICAgICAgICksXG4gICAgICBdKSxcbiAgICAgIHRyYW5zaXRpb24oJ29wZW4gPT4gdm9pZCcsIFtcbiAgICAgICAgYW5pbWF0ZShcbiAgICAgICAgICAnMjAwbXMgZWFzZS1pbicsXG4gICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgb3BhY2l0eTogMCxcbiAgICAgICAgICAgIHdpZHRoOiAwLFxuICAgICAgICAgIH0pXG4gICAgICAgICksXG4gICAgICBdKSxcbiAgICAgIHRyYW5zaXRpb24oJ3ZvaWQgPT4gb3Blbi1tb2Rlcm4nLCBbXG4gICAgICAgIHN0eWxlKHtcbiAgICAgICAgICBvcGFjaXR5OiAwLFxuICAgICAgICB9KSxcbiAgICAgICAgYW5pbWF0ZShcbiAgICAgICAgICAnMjAwbXMgZWFzZS1pbicsXG4gICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgb3BhY2l0eTogMSxcbiAgICAgICAgICB9KVxuICAgICAgICApLFxuICAgICAgXSksXG4gICAgICB0cmFuc2l0aW9uKCdvcGVuLW1vZGVybiA9PiB2b2lkJywgW1xuICAgICAgICBhbmltYXRlKFxuICAgICAgICAgICcyMDBtcyBlYXNlLWluJyxcbiAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLFxuICAgICAgICAgIH0pXG4gICAgICAgICksXG4gICAgICBdKSxcbiAgICBdKSxcbiAgICB0cmlnZ2VyKCdwaG9uZUlucHV0QW5pbWF0aW9uJywgW1xuICAgICAgdHJhbnNpdGlvbigndm9pZCA9PiBvcGVuJywgW1xuICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgb3BhY2l0eTogMCxcbiAgICAgICAgfSksXG4gICAgICAgIGFuaW1hdGUoXG4gICAgICAgICAgJzIwMG1zIGVhc2UtaW4nLFxuICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDEsXG4gICAgICAgICAgfSlcbiAgICAgICAgKSxcbiAgICAgIF0pLFxuICAgICAgdHJhbnNpdGlvbignb3BlbiA9PiB2b2lkJywgW1xuICAgICAgICBhbmltYXRlKFxuICAgICAgICAgICcyMDBtcyBlYXNlLWluJyxcbiAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLFxuICAgICAgICAgIH0pXG4gICAgICAgICksXG4gICAgICBdKSxcbiAgICBdKSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5UGhvbmVGaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0IHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgcGhvbmUgbnVtYmVyIGV4dGVuc2lvbnMgYXJlIGFsbG93ZWQuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgYWxsb3dFeHRlbnNpb25zKHZhbHVlOiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX2FsbG93RXh0ZW5zaW9ucyA9IHZhbHVlICE9PSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYWxsb3dFeHRlbnNpb25zKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiNfYWxsb3dFeHRlbnNpb25zO1xuICB9XG5cbiAgI19hbGxvd0V4dGVuc2lvbnMgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBUaGVcbiAgICogW0ludGVybmF0aW9uYWwgT3JnYW5pemF0aW9uIGZvciBTdGFuZGFyZGl6YXRpb24gQWxwaGEgMl0oaHR0cHM6Ly93d3cubmF0aW9uc29ubGluZS5vcmcvb25ld29ybGQvY291bnRyeV9jb2RlX2xpc3QuaHRtKVxuICAgKiBjb3VudHJ5IGNvZGUgZm9yIHRoZSBkZWZhdWx0IGNvdW50cnkuIFRoZSBjb3VudHJ5IHNlbGVjdG9yIGJ1dHRvbiBkaXNwbGF5cyBhIGZsYWdcbiAgICogaWNvbiBmb3IgdGhpcyBkZWZhdWx0IGNvdW50cnkgdW50aWwgdXNlcnMgc2VsZWN0IGEgZGlmZmVyZW50IGNvdW50cnkuXG4gICAqIEBkZWZhdWx0IFwidXNcIlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkZWZhdWx0Q291bnRyeSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHZhbHVlICYmIHZhbHVlICE9PSB0aGlzLiNfZGVmYXVsdENvdW50cnkpIHtcbiAgICAgIHRoaXMuI19kZWZhdWx0Q291bnRyeSA9IHZhbHVlLnRvTG93ZXJDYXNlKCk7XG5cbiAgICAgIHRoaXMuI2RlZmF1bHRDb3VudHJ5RGF0YSA9IHRoaXMuY291bnRyaWVzLmZpbmQoXG4gICAgICAgIChjb3VudHJ5KSA9PiBjb3VudHJ5LmlzbzIgPT09IHRoaXMuI19kZWZhdWx0Q291bnRyeVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRlZmF1bHRDb3VudHJ5KCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI19kZWZhdWx0Q291bnRyeTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgZm9ybWF0IGZvciB2YWxpZGF0ZWQgcGhvbmUgbnVtYmVycy5cbiAgICogT3B0aW9ucyBpbmNsdWRlOiBgXCJkZWZhdWx0XCJgLCBgXCJpbnRlcm5hdGlvbmFsXCJgLCBhbmQgYFwibmF0aW9uYWxcImAuXG4gICAqIEBkZWZhdWx0IFwiZGVmYXVsdFwiXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IHJldHVybkZvcm1hdCgpOiBTa3lQaG9uZUZpZWxkTnVtYmVyUmV0dXJuRm9ybWF0IHtcbiAgICByZXR1cm4gdGhpcy4jX3JldHVybkZvcm1hdDtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgcmV0dXJuRm9ybWF0KHZhbHVlOiBTa3lQaG9uZUZpZWxkTnVtYmVyUmV0dXJuRm9ybWF0IHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX3JldHVybkZvcm1hdCA9IHZhbHVlIHx8ICdkZWZhdWx0JztcbiAgfVxuXG4gICNfcmV0dXJuRm9ybWF0OiBTa3lQaG9uZUZpZWxkTnVtYmVyUmV0dXJuRm9ybWF0ID0gJ2RlZmF1bHQnO1xuXG4gIC8qKlxuICAgKiBUaGUgW0ludGVybmF0aW9uYWwgT3JnYW5pemF0aW9uIGZvciBTdGFuZGFyZGl6YXRpb24gQWxwaGEgMl0oaHR0cHM6Ly93d3cubmF0aW9uc29ubGluZS5vcmcvb25ld29ybGQvY291bnRyeV9jb2RlX2xpc3QuaHRtKVxuICAgKiBjb3VudHJ5IGNvZGVzIGZvciB0aGUgY291bnRyaWVzIHRoYXQgdXNlcnMgY2FuIHNlbGVjdC4gQnkgZGVmYXVsdCwgYWxsIGNvdW50cmllcyBhcmUgYXZhaWxhYmxlLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHN1cHBvcnRlZENvdW50cnlJU09zOiBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogRW1pdHMgYSBgU2t5UGhvbmVGaWVsZENvdW50cnlgIG9iamVjdCB3aGVuIHRoZSBzZWxlY3RlZCBjb3VudHJ5IGluIHRoZSBjb3VudHJ5IHNlYXJjaFxuICAgKiBpbnB1dCBjaGFuZ2VzLlxuICAgKi9cblxuICBAT3V0cHV0KClcbiAgcHVibGljIHNlbGVjdGVkQ291bnRyeUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8U2t5UGhvbmVGaWVsZENvdW50cnk+KCk7XG5cbiAgcHVibGljIGNvdW50cmllczogU2t5UGhvbmVGaWVsZENvdW50cnlbXTtcblxuICBwdWJsaWMgY291bnRyeVNlbGVjdERpc2FibGVkID0gZmFsc2U7XG5cbiAgcHVibGljIGNvdW50cnlTZWFyY2hTaG93biA9IGZhbHNlO1xuXG4gIHB1YmxpYyBwaG9uZUlucHV0U2hvd24gPSB0cnVlO1xuXG4gIHB1YmxpYyBjb3VudHJ5U2VhcmNoRm9ybTogRm9ybUdyb3VwPHtcbiAgICBjb3VudHJ5U2VhcmNoOiBGb3JtQ29udHJvbDxTa3lDb3VudHJ5RmllbGRDb3VudHJ5IHwgdW5kZWZpbmVkPjtcbiAgfT47XG5cbiAgLyoqXG4gICAqIFRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgY291bnRyeSB0byB2YWxpZGF0ZSBhZ2FpbnN0LlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBzZWxlY3RlZENvdW50cnkobmV3Q291bnRyeTogU2t5UGhvbmVGaWVsZENvdW50cnkgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAoXG4gICAgICBuZXdDb3VudHJ5ICYmXG4gICAgICAoIXRoaXMuI19zZWxlY3RlZENvdW50cnkgfHxcbiAgICAgICAgdGhpcy4jX3NlbGVjdGVkQ291bnRyeS5pc28yICE9PSBuZXdDb3VudHJ5LmlzbzIpXG4gICAgKSB7XG4gICAgICB0aGlzLiNfc2VsZWN0ZWRDb3VudHJ5ID0gdGhpcy5jb3VudHJpZXMuZmluZChcbiAgICAgICAgKGNvdW50cnkpID0+IGNvdW50cnkuaXNvMiA9PT0gbmV3Q291bnRyeS5pc28yXG4gICAgICApO1xuXG4gICAgICBpZiAodGhpcy4jX3NlbGVjdGVkQ291bnRyeSAmJiAhdGhpcy4jX3NlbGVjdGVkQ291bnRyeS5leGFtcGxlTnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IG51bWJlck9iaiA9IHRoaXMuI3Bob25lVXRpbHMuZ2V0RXhhbXBsZU51bWJlckZvclR5cGUoXG4gICAgICAgICAgbmV3Q291bnRyeS5pc28yLFxuICAgICAgICAgIFBob25lTnVtYmVyVHlwZS5GSVhFRF9MSU5FXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuI19zZWxlY3RlZENvdW50cnkuZXhhbXBsZU51bWJlciA9IHRoaXMuI3Bob25lVXRpbHMuZm9ybWF0KFxuICAgICAgICAgIG51bWJlck9iaixcbiAgICAgICAgICBQaG9uZU51bWJlckZvcm1hdC5OQVRJT05BTFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnNlbGVjdGVkQ291bnRyeUNoYW5nZS5lbWl0KHRoaXMuI19zZWxlY3RlZENvdW50cnkpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2VsZWN0ZWRDb3VudHJ5KCk6IFNreVBob25lRmllbGRDb3VudHJ5IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX3NlbGVjdGVkQ291bnRyeTtcbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ2lucHV0VGVtcGxhdGVSZWYnLCB7XG4gICAgcmVhZDogVGVtcGxhdGVSZWYsXG4gICAgc3RhdGljOiB0cnVlLFxuICB9KVxuICBwdWJsaWMgaW5wdXRUZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQ7XG5cbiAgQFZpZXdDaGlsZCgnY291bnRyeUJ0blRlbXBsYXRlUmVmJywge1xuICAgIHJlYWQ6IFRlbXBsYXRlUmVmLFxuICAgIHN0YXRpYzogdHJ1ZSxcbiAgfSlcbiAgcHVibGljIGNvdW50cnlCdG5UZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQ7XG5cbiAgQFZpZXdDaGlsZCgnYnV0dG9uc0luc2V0VGVtcGxhdGVSZWYnLCB7XG4gICAgcmVhZDogVGVtcGxhdGVSZWYsXG4gICAgc3RhdGljOiB0cnVlLFxuICB9KVxuICBwdWJsaWMgYnV0dG9uc0luc2V0VGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgdW5kZWZpbmVkO1xuXG4gICNkZWZhdWx0Q291bnRyeURhdGE6IFNreVBob25lRmllbGRDb3VudHJ5IHwgdW5kZWZpbmVkO1xuXG4gICNwaG9uZUlucHV0QW5pbWF0aW9uVHJpZ2dlcmVkID0gZmFsc2U7XG5cbiAgI3Bob25lVXRpbHMgPSBQaG9uZU51bWJlclV0aWwuZ2V0SW5zdGFuY2UoKTtcblxuICAjbG9uZ2VzdERpYWxDb2RlTGVuZ3RoID0gMDtcblxuICAjX2RlZmF1bHRDb3VudHJ5OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgI19zZWxlY3RlZENvdW50cnk6IFNreVBob25lRmllbGRDb3VudHJ5IHwgdW5kZWZpbmVkO1xuXG4gICNjb3VudHJ5U2VhcmNoRm9ybUNvbnRyb2w6IEZvcm1Db250cm9sPFNreUNvdW50cnlGaWVsZENvdW50cnkgfCB1bmRlZmluZWQ+ID1cbiAgICBuZXcgRm9ybUNvbnRyb2woKTtcblxuICAjZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyO1xuICAjYWRhcHRlclNlcnZpY2U6IFNreVBob25lRmllbGRBZGFwdGVyU2VydmljZTtcbiAgI2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICAgYWRhcHRlclNlcnZpY2U6IFNreVBob25lRmllbGRBZGFwdGVyU2VydmljZSxcbiAgICBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQE9wdGlvbmFsKCkgcHVibGljIHRoZW1lU3ZjPzogU2t5VGhlbWVTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIHB1YmxpYyBpbnB1dEJveEhvc3RTdmM/OiBTa3lJbnB1dEJveEhvc3RTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuI2Zvcm1CdWlsZGVyID0gZm9ybUJ1aWxkZXI7XG4gICAgdGhpcy4jYWRhcHRlclNlcnZpY2UgPSBhZGFwdGVyU2VydmljZTtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3RvciA9IGNoYW5nZURldGVjdG9yO1xuICAgIC8qKlxuICAgICAqIFRoZSBqc29uIGZ1bmN0aW9ucyBoZXJlIGVuc3VyZXMgdGhhdCB3ZSBnZXQgYSBjb3B5IG9mIHRoZSBhcnJheSBhbmQgbm90IHRoZSBnbG9iYWwgb3JpZ2luYWwuXG4gICAgICogVGhpcyBlbnN1cmVzIHRoYXQgbXVsdGlwbGUgaW5zdGFuY2VzIG9mIHRoZSBjb21wb25lbnQgZG9uJ3Qgb3ZlcndyaXRlIHRoZSBvcmlnaW5hbCBkYXRhLlxuICAgICAqXG4gICAgICogV2UgbXVzdCB0eXBlIHRoZSB3aW5kb3cgb2JqZWN0IGFzIGFueSBoZXJlIGFzIHRoZSBpbnRsLXRlbC1pbnB1dCBsaWJyYXJ5IGFkZHMgaXRzIG9iamVjdFxuICAgICAqIHRvIHRoZSBtYWluIHdpbmRvdyBvYmplY3QuXG4gICAgICovXG4gICAgdGhpcy5jb3VudHJpZXMgPSBKU09OLnBhcnNlKFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgIEpTT04uc3RyaW5naWZ5KCh3aW5kb3cgYXMgYW55KS5pbnRsVGVsSW5wdXRHbG9iYWxzLmdldENvdW50cnlEYXRhKCkpXG4gICAgKTtcbiAgICBmb3IgKGNvbnN0IGNvdW50cnkgb2YgdGhpcy5jb3VudHJpZXMpIHtcbiAgICAgIGNvdW50cnkuZGlhbENvZGUgPSAnKycgKyBjb3VudHJ5LmRpYWxDb2RlO1xuXG4gICAgICBpZiAoY291bnRyeS5kaWFsQ29kZS5sZW5ndGggPiB0aGlzLiNsb25nZXN0RGlhbENvZGVMZW5ndGgpIHtcbiAgICAgICAgdGhpcy4jbG9uZ2VzdERpYWxDb2RlTGVuZ3RoID0gY291bnRyeS5kaWFsQ29kZS5sZW5ndGg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5jb3VudHJ5U2VhcmNoRm9ybSA9IHRoaXMuI2Zvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgIGNvdW50cnlTZWFyY2g6IHRoaXMuI2NvdW50cnlTZWFyY2hGb3JtQ29udHJvbCxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBUaGUgdGltZW91dCBoZXJlIGlzIG5lZWRlZCB0byBhdm9pZCBhIGNoYW5nZSBiZWZvcmUgY2hlY2tlZCBlcnJvciB3aGVuIGEgdXNlciBzcGVjaWZpZXNcbiAgICAvLyBhIHNlbGVjdGVkIGNvdW50cnkgb24gaW5pdGlhbGl6YXRpb24gb2YgdGhlIGNvbXBvbmVudC5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmlucHV0Qm94SG9zdFN2YyAmJiB0aGlzLmlucHV0VGVtcGxhdGVSZWYpIHtcbiAgICAgICAgdGhpcy5pbnB1dEJveEhvc3RTdmMucG9wdWxhdGUoe1xuICAgICAgICAgIGlucHV0VGVtcGxhdGU6IHRoaXMuaW5wdXRUZW1wbGF0ZVJlZixcbiAgICAgICAgICBidXR0b25zSW5zZXRUZW1wbGF0ZTogdGhpcy5idXR0b25zSW5zZXRUZW1wbGF0ZVJlZixcbiAgICAgICAgICBidXR0b25zTGVmdFRlbXBsYXRlOiB0aGlzLmNvdW50cnlCdG5UZW1wbGF0ZVJlZixcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmICghdGhpcy5kZWZhdWx0Q291bnRyeSkge1xuICAgICAgICB0aGlzLmRlZmF1bHRDb3VudHJ5ID0gJ3VzJztcbiAgICAgIH1cblxuICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkQ291bnRyeSkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkQ291bnRyeSA9IHRoaXMuI2RlZmF1bHRDb3VudHJ5RGF0YTtcbiAgICAgIH1cbiAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgIH0sIDApO1xuXG4gICAgdGhpcy4jY291bnRyeVNlYXJjaEZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoXG4gICAgICAobmV3VmFsdWU/OiBTa3lDb3VudHJ5RmllbGRDb3VudHJ5KSA9PiB7XG4gICAgICAgIGlmIChuZXdWYWx1ZT8uaXNvMiAhPT0gdGhpcy5zZWxlY3RlZENvdW50cnk/LmlzbzIpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkQ291bnRyeSA9IG5ld1ZhbHVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkQ291bnRyeUNoYW5nZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGNvdW50cnkgdG8gdmFsaWRhdGUgYWdhaW5zdCBiYXNlZCBvbiB0aGUgY291bnR5J3MgaXNvMiBjb2RlLlxuICAgKiBAcGFyYW0gY291bnRyeUNvZGUgVGhlIEludGVybmF0aW9uYWwgT3JnYW5pemF0aW9uIGZvciBTdGFuZGFyZGl6YXRpb24ncyB0d28tbGV0dGVyIGNvZGVcbiAgICogZm9yIHRoZSBkZWZhdWx0IGNvdW50cnkuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIG9uQ291bnRyeVNlbGVjdGVkKG5ld0NvdW50cnk6IFNreUNvdW50cnlGaWVsZENvdW50cnkpOiB2b2lkIHtcbiAgICBpZiAobmV3Q291bnRyeSkge1xuICAgICAgdGhpcy5zZWxlY3RlZENvdW50cnkgPSB0aGlzLmNvdW50cmllcy5maW5kKFxuICAgICAgICAoY291bnRyeUluZm8pID0+IGNvdW50cnlJbmZvLmlzbzIgPT09IG5ld0NvdW50cnkuaXNvMlxuICAgICAgKTtcbiAgICAgIHRoaXMudG9nZ2xlQ291bnRyeVNlYXJjaChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHRvZ2dsZUNvdW50cnlTZWFyY2goc2hvd1NlYXJjaDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuI3Bob25lSW5wdXRBbmltYXRpb25UcmlnZ2VyZWQgPSB0cnVlO1xuXG4gICAgaWYgKHNob3dTZWFyY2gpIHtcbiAgICAgIHRoaXMucGhvbmVJbnB1dFNob3duID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY291bnRyeVNlYXJjaFNob3duID0gZmFsc2U7XG5cbiAgICAgIHRoaXMuI2NvdW50cnlTZWFyY2hGb3JtQ29udHJvbC5zZXRWYWx1ZSh1bmRlZmluZWQpO1xuICAgIH1cblxuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIGNvdW50cnlTZWFyY2hBbmltYXRpb25FbmQoZTogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY291bnRyeVNlYXJjaFNob3duKSB7XG4gICAgICB0aGlzLnBob25lSW5wdXRTaG93biA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuI2FkYXB0ZXJTZXJ2aWNlLmZvY3VzQ291bnRyeVNlYXJjaEVsZW1lbnQoZS5lbGVtZW50KTtcbiAgICB9XG5cbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBwaG9uZUlucHV0QW5pbWF0aW9uRW5kKGU6IEFuaW1hdGlvbkV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnBob25lSW5wdXRTaG93bikge1xuICAgICAgdGhpcy5jb3VudHJ5U2VhcmNoU2hvd24gPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy4jcGhvbmVJbnB1dEFuaW1hdGlvblRyaWdnZXJlZCkge1xuICAgICAgICB0aGlzLiNhZGFwdGVyU2VydmljZS5mb2N1c1Bob25lSW5wdXQoZS5lbGVtZW50KTtcbiAgICAgICAgdGhpcy4jcGhvbmVJbnB1dEFuaW1hdGlvblRyaWdnZXJlZCA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIHNldENvdW50cnlCeURpYWxDb2RlKHBob25lTnVtYmVyOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAoIXBob25lTnVtYmVyIHx8ICFwaG9uZU51bWJlci5zdGFydHNXaXRoKCcrJykpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBsZXQgbmV3Q291bnRyeTogU2t5UGhvbmVGaWVsZENvdW50cnkgfCB1bmRlZmluZWQ7XG5cbiAgICBmb3IgKGxldCBpID0gMTsgaSA8IHRoaXMuI2xvbmdlc3REaWFsQ29kZUxlbmd0aCArIDE7IGkrKykge1xuICAgICAgY29uc3QgZGlhbENvZGUgPSBwaG9uZU51bWJlci5zdWJzdHJpbmcoMCwgaSk7XG5cbiAgICAgIGxldCBmb3VuZENvdW50cnkgPSB0aGlzLmNvdW50cmllcy5maW5kKFxuICAgICAgICAoY291bnRyeSkgPT4gY291bnRyeS5kaWFsQ29kZSA9PT0gZGlhbENvZGUgJiYgY291bnRyeS5wcmlvcml0eSA9PT0gMFxuICAgICAgKTtcblxuICAgICAgaWYgKGZvdW5kQ291bnRyeSkge1xuICAgICAgICAvLyBFbnN1cmUgdGhhdCB0aGUgY291bnRyeSB0aGF0IHdhcyBmb3VuZCBpcyBvbmUgb2YgdGhlIHN1cHBvcnRlZCBjb3VudHJpZXNcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRoaXMuc3VwcG9ydGVkQ291bnRyeUlTT3MgJiZcbiAgICAgICAgICB0aGlzLnN1cHBvcnRlZENvdW50cnlJU09zLmZpbmRJbmRleChcbiAgICAgICAgICAgIChpc29Db2RlKSA9PlxuICAgICAgICAgICAgICBpc29Db2RlLnRvVXBwZXJDYXNlKCkgPT09IGZvdW5kQ291bnRyeT8uaXNvMi50b1VwcGVyQ2FzZSgpXG4gICAgICAgICAgKSA8IDBcbiAgICAgICAgKSB7XG4gICAgICAgICAgZm91bmRDb3VudHJ5ID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGZvdW5kQ291bnRyeSAhPT0gdGhpcy5zZWxlY3RlZENvdW50cnkpIHtcbiAgICAgICAgICBuZXdDb3VudHJ5ID0gZm91bmRDb3VudHJ5O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG5ld0NvdW50cnkpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5ID0gbmV3Q291bnRyeTtcbiAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiIWlucHV0Qm94SG9zdFN2Y1wiPlxuICA8ZGl2IGNsYXNzPVwic2t5LWlucHV0LWdyb3VwIHNreS1waG9uZS1maWVsZFwiIFtAYmxvY2tBbmltYXRpb25PbkxvYWRdPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb3VudHJ5QnRuVGVtcGxhdGVSZWZcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaW5wdXRUZW1wbGF0ZVJlZlwiPjwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidXR0b25zSW5zZXRUZW1wbGF0ZVJlZlwiPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI2NvdW50cnlCdG5UZW1wbGF0ZVJlZj5cbiAgPGRpdlxuICAgIGNsYXNzPVwic2t5LWlucHV0LWdyb3VwLWJ0biBza3ktcGhvbmUtZmllbGQtY291bnRyeS1idG5cIlxuICAgIFthdHRyLmRhdGEtc2t5LXRlc3QtaXNvMl09XCJzZWxlY3RlZENvdW50cnk/LmlzbzJcIlxuICAgIFthdHRyLmRhdGEtc2t5LXRlc3QtbmFtZV09XCJzZWxlY3RlZENvdW50cnk/Lm5hbWVcIlxuICA+XG4gICAgPGJ1dHRvblxuICAgICAgYXJpYS1saXZlPVwicG9saXRlXCJcbiAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLWRlZmF1bHRcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBbYXR0ci50aXRsZV09XCJcbiAgICAgICAgKCdza3l1eF9waG9uZV9maWVsZF9jb3VudHJ5X3NlbGVjdF9sYWJlbCcgfCBza3lMaWJSZXNvdXJjZXMpICtcbiAgICAgICAgJyAnICtcbiAgICAgICAgKCdza3l1eF9waG9uZV9maWVsZF9jb3VudHJ5X3NlbGVjdGVkX2xhYmVsJ1xuICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzOiBzZWxlY3RlZENvdW50cnk/Lm5hbWUpXG4gICAgICBcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgKCdza3l1eF9waG9uZV9maWVsZF9jb3VudHJ5X3NlbGVjdF9sYWJlbCcgfCBza3lMaWJSZXNvdXJjZXMpICtcbiAgICAgICAgJyAnICtcbiAgICAgICAgKCdza3l1eF9waG9uZV9maWVsZF9jb3VudHJ5X3NlbGVjdGVkX2xhYmVsJ1xuICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzOiBzZWxlY3RlZENvdW50cnk/Lm5hbWUpXG4gICAgICBcIlxuICAgICAgW2Rpc2FibGVkXT1cImNvdW50cnlTZWxlY3REaXNhYmxlZFwiXG4gICAgICAoY2xpY2spPVwidG9nZ2xlQ291bnRyeVNlYXJjaCh0cnVlKVwiXG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInNreS1waG9uZS1maWVsZC1mbGFnIGl0aV9fZmxhZ1wiXG4gICAgICAgIFtuZ0NsYXNzXT1cIidpdGlfXycgKyBzZWxlY3RlZENvdW50cnk/LmlzbzJcIlxuICAgICAgPjwvZGl2PlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjaW5wdXRUZW1wbGF0ZVJlZj5cbiAgPHNwYW5cbiAgICAqbmdJZj1cInBob25lSW5wdXRTaG93blwiXG4gICAgY2xhc3M9XCJza3ktcGhvbmUtZmllbGQtY29udGFpbmVyXCJcbiAgICBbQHBob25lSW5wdXRBbmltYXRpb25dPVwicGhvbmVJbnB1dFNob3duID8gJ29wZW4nIDogJ2Nsb3NlZCdcIlxuICAgIChAcGhvbmVJbnB1dEFuaW1hdGlvbi5kb25lKT1cInBob25lSW5wdXRBbmltYXRpb25FbmQoJGV2ZW50KVwiXG4gID5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvc3Bhbj5cbiAgPHNwYW5cbiAgICAqbmdJZj1cImNvdW50cnlTZWFyY2hTaG93blwiXG4gICAgY2xhc3M9XCJza3ktcGhvbmUtZmllbGQtY29udGFpbmVyXCJcbiAgICBbQGNvdW50cnlTZWFyY2hBbmltYXRpb25dPVwiXG4gICAgICAnb3BlbicgK1xuICAgICAgKCh0aGVtZVN2Yz8uc2V0dGluZ3NDaGFuZ2UgfCBhc3luYyk/LmN1cnJlbnRTZXR0aW5ncz8udGhlbWU/Lm5hbWUgPT09XG4gICAgICAnbW9kZXJuJ1xuICAgICAgICA/ICctbW9kZXJuJ1xuICAgICAgICA6ICcnKVxuICAgIFwiXG4gICAgKEBjb3VudHJ5U2VhcmNoQW5pbWF0aW9uLmRvbmUpPVwiY291bnRyeVNlYXJjaEFuaW1hdGlvbkVuZCgkZXZlbnQpXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJza3ktcGhvbmUtZmllbGQtY291bnRyeS1zZWFyY2hcIiBbZm9ybUdyb3VwXT1cImNvdW50cnlTZWFyY2hGb3JtXCI+XG4gICAgICA8c2t5LWNvdW50cnktZmllbGRcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY291bnRyeVNlYXJjaFwiXG4gICAgICAgIFtkZWZhdWx0Q291bnRyeV09XCJkZWZhdWx0Q291bnRyeVwiXG4gICAgICAgIFtoaWRlU2VsZWN0ZWRDb3VudHJ5RmxhZ109XCJ0cnVlXCJcbiAgICAgICAgW2luY2x1ZGVQaG9uZUluZm9dPVwidHJ1ZVwiXG4gICAgICAgIFtzdXBwb3J0ZWRDb3VudHJ5SVNPc109XCJzdXBwb3J0ZWRDb3VudHJ5SVNPc1wiXG4gICAgICAgIChzZWxlY3RlZENvdW50cnlDaGFuZ2UpPVwib25Db3VudHJ5U2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICA8L3NreS1jb3VudHJ5LWZpZWxkPlxuICAgIDwvZGl2PlxuICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2J1dHRvbnNJbnNldFRlbXBsYXRlUmVmPlxuICA8ZGl2XG4gICAgKm5nSWY9XCJjb3VudHJ5U2VhcmNoU2hvd25cIlxuICAgIGNsYXNzPVwic2t5LWlucHV0LWdyb3VwLWJ0biBza3ktaW5wdXQtYm94LWJ0bi1pbnNldCBza3ktc2VhcmNoLWl0ZW0tZGlzbWlzc1wiXG4gID5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cInNreS1idG4gc2t5LXBob25lLWZpZWxkLXNlYXJjaC1idG4tZGlzbWlzc1wiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIFthdHRyLnRpdGxlXT1cIlxuICAgICAgICAnc2t5dXhfcGhvbmVfZmllbGRfY291bnRyeV9zZWFyY2hfZGlzbWlzcycgfCBza3lMaWJSZXNvdXJjZXNcbiAgICAgIFwiXG4gICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICdza3ktYnRuLWRlZmF1bHQnOlxuICAgICAgICAgICh0aGVtZVN2Yz8uc2V0dGluZ3NDaGFuZ2UgfCBhc3luYyk/LmN1cnJlbnRTZXR0aW5ncz8udGhlbWU/Lm5hbWUgPT09XG4gICAgICAgICAgJ21vZGVybidcbiAgICAgIH1cIlxuICAgICAgKGNsaWNrKT1cInRvZ2dsZUNvdW50cnlTZWFyY2goZmFsc2UpXCJcbiAgICA+XG4gICAgICA8c2t5LWljb24gKnNreVRoZW1lSWY9XCInZGVmYXVsdCdcIiBpY29uPVwiY2hldnJvbi1jaXJjbGUtbGVmdFwiIHNpemU9XCJsZ1wiPlxuICAgICAgPC9za3ktaWNvbj5cbiAgICAgIDxza3ktaWNvblxuICAgICAgICAqc2t5VGhlbWVJZj1cIidtb2Rlcm4nXCJcbiAgICAgICAgaWNvbj1cImRvdWJsZS1jaGV2cm9uLWxlZnRcIlxuICAgICAgICBpY29uVHlwZT1cInNreXV4XCJcbiAgICAgICAgc2l6ZT1cIjJ4XCJcbiAgICAgID5cbiAgICAgIDwvc2t5LWljb24+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
394
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3Bob25lLWZpZWxkL3NyYy9saWIvbW9kdWxlcy9waG9uZS1maWVsZC9waG9uZS1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvcGhvbmUtZmllbGQvc3JjL2xpYi9tb2R1bGVzL3Bob25lLWZpZWxkL3Bob25lLWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUVMLE9BQU8sRUFDUCxLQUFLLEVBQ0wsVUFBVSxFQUNWLE9BQU8sR0FDUixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFDTixRQUFRLEVBQ1IsV0FBVyxFQUNYLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFlLFdBQVcsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN0RCxPQUFPLEVBQ0wseUJBQXlCLEdBRTFCLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsZUFBZSxFQUNmLGVBQWUsR0FDaEIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7Ozs7Ozs7O0FBSTVFLHNGQUFzRjtBQUN0RixrRkFBa0Y7QUFDbEYsMElBQTBJO0FBeUYxSSxNQUFNLE9BQU8sc0JBQXNCO0lBdUpqQyxZQUNFLFdBQXdCLEVBQ3hCLGNBQTJDLEVBQzNDLGNB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QUFvQjtzQkFEMUIsS0FBSztnQkFTQyxxQkFBcUI7c0JBRDNCLE1BQU07Z0JBbUJJLGVBQWU7c0JBRHpCLEtBQUs7Z0JBa0NDLGdCQUFnQjtzQkFKdEIsU0FBUzt1QkFBQyxrQkFBa0IsRUFBRTt3QkFDN0IsSUFBSSxFQUFFLFdBQVc7d0JBQ2pCLE1BQU0sRUFBRSxJQUFJO3FCQUNiO2dCQU9NLHFCQUFxQjtzQkFKM0IsU0FBUzt1QkFBQyx1QkFBdUIsRUFBRTt3QkFDbEMsSUFBSSxFQUFFLFdBQVc7d0JBQ2pCLE1BQU0sRUFBRSxJQUFJO3FCQUNiO2dCQU9NLHVCQUF1QjtzQkFKN0IsU0FBUzt1QkFBQyx5QkFBeUIsRUFBRTt3QkFDcEMsSUFBSSxFQUFFLFdBQVc7d0JBQ2pCLE1BQU0sRUFBRSxJQUFJO3FCQUNiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQW5pbWF0aW9uRXZlbnQsXG4gIGFuaW1hdGUsXG4gIHN0eWxlLFxuICB0cmFuc2l0aW9uLFxuICB0cmlnZ2VyLFxufSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgU2tpcFNlbGYsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2t5SW5wdXRCb3hIb3N0U2VydmljZSB9IGZyb20gJ0Bza3l1eC9mb3Jtcyc7XG5pbXBvcnQge1xuICBTS1lfQ09VTlRSWV9GSUVMRF9DT05URVhULFxuICBTa3lDb3VudHJ5RmllbGRDb3VudHJ5LFxufSBmcm9tICdAc2t5dXgvbG9va3VwJztcbmltcG9ydCB7IFNreVRoZW1lU2VydmljZSB9IGZyb20gJ0Bza3l1eC90aGVtZSc7XG5cbmltcG9ydCB7XG4gIFBob25lTnVtYmVyRm9ybWF0LFxuICBQaG9uZU51bWJlclR5cGUsXG4gIFBob25lTnVtYmVyVXRpbCxcbn0gZnJvbSAnZ29vZ2xlLWxpYnBob25lbnVtYmVyJztcbmltcG9ydCAnaW50bC10ZWwtaW5wdXQnO1xuXG5pbXBvcnQgeyBTa3lQaG9uZUZpZWxkQWRhcHRlclNlcnZpY2UgfSBmcm9tICcuL3Bob25lLWZpZWxkLWFkYXB0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTa3lQaG9uZUZpZWxkQ291bnRyeSB9IGZyb20gJy4vdHlwZXMvY291bnRyeSc7XG5pbXBvcnQgeyBTa3lQaG9uZUZpZWxkTnVtYmVyUmV0dXJuRm9ybWF0IH0gZnJvbSAnLi90eXBlcy9udW1iZXItcmV0dXJuLWZvcm1hdCc7XG5cbi8vIE5PVEU6IFRoZSBuby1vcCBhbmltYXRpb24gaXMgaGVyZSBpbiBvcmRlciB0byBibG9jayB0aGUgaW5wdXQncyBcImZhZGUgaW5cIiBhbmltYXRpb25cbi8vIGZyb20gZmlyaW5nIG9uIGluaXRpYWwgbG9hZC4gRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhpcyB0ZWNobmlxdWUgeW91IGNhbiBzZWVcbi8vIGh0dHBzOi8vd3d3LmJlbm5hZGVsLmNvbS9ibG9nLzM0MTctdXNpbmctbm8tb3AtdHJhbnNpdGlvbnMtdG8tcHJldmVudC1hbmltYXRpb24tZHVyaW5nLXRoZS1pbml0aWFsLXJlbmRlci1vZi1uZ2Zvci1pbi1hbmd1bGFyLTUtMi02Lmh0bVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LXBob25lLWZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Bob25lLWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGhvbmUtZmllbGQuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIFNreVBob25lRmllbGRBZGFwdGVyU2VydmljZSxcbiAgICAvLyBQcmV2ZW50cyB0aGUgZW1iZWRkZWQgY291bnRyeSBmaWVsZCBjb21wb25lbnQgZnJvbSBjaGFuZ2luZyBpdHMgYmVoYXZpb3IgYmFzZWQgb25cbiAgICAvLyBiZWluZyBpbnNpZGUgYW4gaW5wdXQgYm94LiBUaGUgcGhvbmUgZmllbGQgaXRzZWxmIHdpbGwgaGFuZGxlIHRoZSByZXF1aXJlZCBjaGFuZ2VzXG4gICAgLy8gZm9yIGlucHV0IGJveC5cbiAgICB7XG4gICAgICBwcm92aWRlOiBTa3lJbnB1dEJveEhvc3RTZXJ2aWNlLFxuICAgICAgdXNlVmFsdWU6IHVuZGVmaW5lZCxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFNLWV9DT1VOVFJZX0ZJRUxEX0NPTlRFWFQsXG4gICAgICB1c2VWYWx1ZTogeyBzaG93UGxhY2Vob2xkZXJUZXh0OiB0cnVlIH0sXG4gICAgfSxcbiAgXSxcbiAgYW5pbWF0aW9uczogW1xuICAgIHRyaWdnZXIoJ2Jsb2NrQW5pbWF0aW9uT25Mb2FkJywgW3RyYW5zaXRpb24oJzplbnRlcicsIFtdKV0pLFxuICAgIHRyaWdnZXIoJ2NvdW50cnlTZWFyY2hBbmltYXRpb24nLCBbXG4gICAgICB0cmFuc2l0aW9uKCd2b2lkID0+IG9wZW4nLCBbXG4gICAgICAgIHN0eWxlKHtcbiAgICAgICAgICBvcGFjaXR5OiAwLFxuICAgICAgICAgIHdpZHRoOiAwLFxuICAgICAgICB9KSxcbiAgICAgICAgYW5pbWF0ZShcbiAgICAgICAgICAnMjAwbXMgZWFzZS1pbicsXG4gICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgb3BhY2l0eTogMSxcbiAgICAgICAgICAgIHdpZHRoOiAnKicsXG4gICAgICAgICAgfSlcbiAgICAgICAgKSxcbiAgICAgIF0pLFxuICAgICAgdHJhbnNpdGlvbignb3BlbiA9PiB2b2lkJywgW1xuICAgICAgICBhbmltYXRlKFxuICAgICAgICAgICcyMDBtcyBlYXNlLWluJyxcbiAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLFxuICAgICAgICAgICAgd2lkdGg6IDAsXG4gICAgICAgICAgfSlcbiAgICAgICAgKSxcbiAgICAgIF0pLFxuICAgICAgdHJhbnNpdGlvbigndm9pZCA9PiBvcGVuLW1vZGVybicsIFtcbiAgICAgICAgc3R5bGUoe1xuICAgICAgICAgIG9wYWNpdHk6IDAsXG4gICAgICAgIH0pLFxuICAgICAgICBhbmltYXRlKFxuICAgICAgICAgICcyMDBtcyBlYXNlLWluJyxcbiAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICBvcGFjaXR5OiAxLFxuICAgICAgICAgIH0pXG4gICAgICAgICksXG4gICAgICBdKSxcbiAgICAgIHRyYW5zaXRpb24oJ29wZW4tbW9kZXJuID0+IHZvaWQnLCBbXG4gICAgICAgIGFuaW1hdGUoXG4gICAgICAgICAgJzIwMG1zIGVhc2UtaW4nLFxuICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAsXG4gICAgICAgICAgfSlcbiAgICAgICAgKSxcbiAgICAgIF0pLFxuICAgIF0pLFxuICAgIHRyaWdnZXIoJ3Bob25lSW5wdXRBbmltYXRpb24nLCBbXG4gICAgICB0cmFuc2l0aW9uKCd2b2lkID0+IG9wZW4nLCBbXG4gICAgICAgIHN0eWxlKHtcbiAgICAgICAgICBvcGFjaXR5OiAwLFxuICAgICAgICB9KSxcbiAgICAgICAgYW5pbWF0ZShcbiAgICAgICAgICAnMjAwbXMgZWFzZS1pbicsXG4gICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgb3BhY2l0eTogMSxcbiAgICAgICAgICB9KVxuICAgICAgICApLFxuICAgICAgXSksXG4gICAgICB0cmFuc2l0aW9uKCdvcGVuID0+IHZvaWQnLCBbXG4gICAgICAgIGFuaW1hdGUoXG4gICAgICAgICAgJzIwMG1zIGVhc2UtaW4nLFxuICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAsXG4gICAgICAgICAgfSlcbiAgICAgICAgKSxcbiAgICAgIF0pLFxuICAgIF0pLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lQaG9uZUZpZWxkQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXQge1xuICAvKipcbiAgICogV2hldGhlciBwaG9uZSBudW1iZXIgZXh0ZW5zaW9ucyBhcmUgYWxsb3dlZC5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBhbGxvd0V4dGVuc2lvbnModmFsdWU6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfYWxsb3dFeHRlbnNpb25zID0gdmFsdWUgIT09IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGdldCBhbGxvd0V4dGVuc2lvbnMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuI19hbGxvd0V4dGVuc2lvbnM7XG4gIH1cblxuICAjX2FsbG93RXh0ZW5zaW9ucyA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFRoZVxuICAgKiBbSW50ZXJuYXRpb25hbCBPcmdhbml6YXRpb24gZm9yIFN0YW5kYXJkaXphdGlvbiBBbHBoYSAyXShodHRwczovL3d3dy5uYXRpb25zb25saW5lLm9yZy9vbmV3b3JsZC9jb3VudHJ5X2NvZGVfbGlzdC5odG0pXG4gICAqIGNvdW50cnkgY29kZSBmb3IgdGhlIGRlZmF1bHQgY291bnRyeS4gVGhlIGNvdW50cnkgc2VsZWN0b3IgYnV0dG9uIGRpc3BsYXlzIGEgZmxhZ1xuICAgKiBpY29uIGZvciB0aGlzIGRlZmF1bHQgY291bnRyeSB1bnRpbCB1c2VycyBzZWxlY3QgYSBkaWZmZXJlbnQgY291bnRyeS5cbiAgICogQGRlZmF1bHQgXCJ1c1wiXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRlZmF1bHRDb3VudHJ5KHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAodmFsdWUgJiYgdmFsdWUgIT09IHRoaXMuI19kZWZhdWx0Q291bnRyeSkge1xuICAgICAgdGhpcy4jX2RlZmF1bHRDb3VudHJ5ID0gdmFsdWUudG9Mb3dlckNhc2UoKTtcblxuICAgICAgdGhpcy4jZGVmYXVsdENvdW50cnlEYXRhID0gdGhpcy5jb3VudHJpZXMuZmluZChcbiAgICAgICAgKGNvdW50cnkpID0+IGNvdW50cnkuaXNvMiA9PT0gdGhpcy4jX2RlZmF1bHRDb3VudHJ5XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGVmYXVsdENvdW50cnkoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX2RlZmF1bHRDb3VudHJ5O1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBmb3JtYXQgZm9yIHZhbGlkYXRlZCBwaG9uZSBudW1iZXJzLlxuICAgKiBPcHRpb25zIGluY2x1ZGU6IGBcImRlZmF1bHRcImAsIGBcImludGVybmF0aW9uYWxcImAsIGFuZCBgXCJuYXRpb25hbFwiYC5cbiAgICogQGRlZmF1bHQgXCJkZWZhdWx0XCJcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgcmV0dXJuRm9ybWF0KCk6IFNreVBob25lRmllbGROdW1iZXJSZXR1cm5Gb3JtYXQge1xuICAgIHJldHVybiB0aGlzLiNfcmV0dXJuRm9ybWF0O1xuICB9XG5cbiAgcHVibGljIHNldCByZXR1cm5Gb3JtYXQodmFsdWU6IFNreVBob25lRmllbGROdW1iZXJSZXR1cm5Gb3JtYXQgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfcmV0dXJuRm9ybWF0ID0gdmFsdWUgfHwgJ2RlZmF1bHQnO1xuICB9XG5cbiAgI19yZXR1cm5Gb3JtYXQ6IFNreVBob25lRmllbGROdW1iZXJSZXR1cm5Gb3JtYXQgPSAnZGVmYXVsdCc7XG5cbiAgLyoqXG4gICAqIFRoZSBbSW50ZXJuYXRpb25hbCBPcmdhbml6YXRpb24gZm9yIFN0YW5kYXJkaXphdGlvbiBBbHBoYSAyXShodHRwczovL3d3dy5uYXRpb25zb25saW5lLm9yZy9vbmV3b3JsZC9jb3VudHJ5X2NvZGVfbGlzdC5odG0pXG4gICAqIGNvdW50cnkgY29kZXMgZm9yIHRoZSBjb3VudHJpZXMgdGhhdCB1c2VycyBjYW4gc2VsZWN0LiBCeSBkZWZhdWx0LCBhbGwgY291bnRyaWVzIGFyZSBhdmFpbGFibGUuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc3VwcG9ydGVkQ291bnRyeUlTT3M6IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBFbWl0cyBhIGBTa3lQaG9uZUZpZWxkQ291bnRyeWAgb2JqZWN0IHdoZW4gdGhlIHNlbGVjdGVkIGNvdW50cnkgaW4gdGhlIGNvdW50cnkgc2VhcmNoXG4gICAqIGlucHV0IGNoYW5nZXMuXG4gICAqL1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgc2VsZWN0ZWRDb3VudHJ5Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTa3lQaG9uZUZpZWxkQ291bnRyeT4oKTtcblxuICBwdWJsaWMgY291bnRyaWVzOiBTa3lQaG9uZUZpZWxkQ291bnRyeVtdO1xuXG4gIHB1YmxpYyBjb3VudHJ5U2VsZWN0RGlzYWJsZWQgPSBmYWxzZTtcblxuICBwdWJsaWMgY291bnRyeVNlYXJjaFNob3duID0gZmFsc2U7XG5cbiAgcHVibGljIHBob25lSW5wdXRTaG93biA9IHRydWU7XG5cbiAgcHVibGljIGNvdW50cnlTZWFyY2hGb3JtOiBGb3JtR3JvdXA8e1xuICAgIGNvdW50cnlTZWFyY2g6IEZvcm1Db250cm9sPFNreUNvdW50cnlGaWVsZENvdW50cnkgfCB1bmRlZmluZWQ+O1xuICB9PjtcblxuICAvKipcbiAgICogVGhlIGN1cnJlbnRseSBzZWxlY3RlZCBjb3VudHJ5IHRvIHZhbGlkYXRlIGFnYWluc3QuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNlbGVjdGVkQ291bnRyeShuZXdDb3VudHJ5OiBTa3lQaG9uZUZpZWxkQ291bnRyeSB8IHVuZGVmaW5lZCkge1xuICAgIGlmIChcbiAgICAgIG5ld0NvdW50cnkgJiZcbiAgICAgICghdGhpcy4jX3NlbGVjdGVkQ291bnRyeSB8fFxuICAgICAgICB0aGlzLiNfc2VsZWN0ZWRDb3VudHJ5LmlzbzIgIT09IG5ld0NvdW50cnkuaXNvMilcbiAgICApIHtcbiAgICAgIHRoaXMuI19zZWxlY3RlZENvdW50cnkgPSB0aGlzLmNvdW50cmllcy5maW5kKFxuICAgICAgICAoY291bnRyeSkgPT4gY291bnRyeS5pc28yID09PSBuZXdDb3VudHJ5LmlzbzJcbiAgICAgICk7XG5cbiAgICAgIGlmICh0aGlzLiNfc2VsZWN0ZWRDb3VudHJ5ICYmICF0aGlzLiNfc2VsZWN0ZWRDb3VudHJ5LmV4YW1wbGVOdW1iZXIpIHtcbiAgICAgICAgY29uc3QgbnVtYmVyT2JqID0gdGhpcy4jcGhvbmVVdGlscy5nZXRFeGFtcGxlTnVtYmVyRm9yVHlwZShcbiAgICAgICAgICBuZXdDb3VudHJ5LmlzbzIsXG4gICAgICAgICAgUGhvbmVOdW1iZXJUeXBlLkZJWEVEX0xJTkVcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy4jX3NlbGVjdGVkQ291bnRyeS5leGFtcGxlTnVtYmVyID0gdGhpcy4jcGhvbmVVdGlscy5mb3JtYXQoXG4gICAgICAgICAgbnVtYmVyT2JqLFxuICAgICAgICAgIFBob25lTnVtYmVyRm9ybWF0Lk5BVElPTkFMXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5Q2hhbmdlLmVtaXQodGhpcy4jX3NlbGVjdGVkQ291bnRyeSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBzZWxlY3RlZENvdW50cnkoKTogU2t5UGhvbmVGaWVsZENvdW50cnkgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNfc2VsZWN0ZWRDb3VudHJ5O1xuICB9XG5cbiAgQFZpZXdDaGlsZCgnaW5wdXRUZW1wbGF0ZVJlZicsIHtcbiAgICByZWFkOiBUZW1wbGF0ZVJlZixcbiAgICBzdGF0aWM6IHRydWUsXG4gIH0pXG4gIHB1YmxpYyBpbnB1dFRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IHVuZGVmaW5lZDtcblxuICBAVmlld0NoaWxkKCdjb3VudHJ5QnRuVGVtcGxhdGVSZWYnLCB7XG4gICAgcmVhZDogVGVtcGxhdGVSZWYsXG4gICAgc3RhdGljOiB0cnVlLFxuICB9KVxuICBwdWJsaWMgY291bnRyeUJ0blRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IHVuZGVmaW5lZDtcblxuICBAVmlld0NoaWxkKCdidXR0b25zSW5zZXRUZW1wbGF0ZVJlZicsIHtcbiAgICByZWFkOiBUZW1wbGF0ZVJlZixcbiAgICBzdGF0aWM6IHRydWUsXG4gIH0pXG4gIHB1YmxpYyBidXR0b25zSW5zZXRUZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQ7XG5cbiAgI2RlZmF1bHRDb3VudHJ5RGF0YTogU2t5UGhvbmVGaWVsZENvdW50cnkgfCB1bmRlZmluZWQ7XG5cbiAgI3Bob25lSW5wdXRBbmltYXRpb25UcmlnZ2VyZWQgPSBmYWxzZTtcblxuICAjcGhvbmVVdGlscyA9IFBob25lTnVtYmVyVXRpbC5nZXRJbnN0YW5jZSgpO1xuXG4gICNsb25nZXN0RGlhbENvZGVMZW5ndGggPSAwO1xuXG4gICNfZGVmYXVsdENvdW50cnk6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAjX3NlbGVjdGVkQ291bnRyeTogU2t5UGhvbmVGaWVsZENvdW50cnkgfCB1bmRlZmluZWQ7XG5cbiAgI2NvdW50cnlTZWFyY2hGb3JtQ29udHJvbDogRm9ybUNvbnRyb2w8U2t5Q291bnRyeUZpZWxkQ291bnRyeSB8IHVuZGVmaW5lZD4gPVxuICAgIG5ldyBGb3JtQ29udHJvbCgpO1xuXG4gICNmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXI7XG4gICNhZGFwdGVyU2VydmljZTogU2t5UGhvbmVGaWVsZEFkYXB0ZXJTZXJ2aWNlO1xuICAjY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcbiAgICBhZGFwdGVyU2VydmljZTogU2t5UGhvbmVGaWVsZEFkYXB0ZXJTZXJ2aWNlLFxuICAgIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBAT3B0aW9uYWwoKSBwdWJsaWMgdGhlbWVTdmM/OiBTa3lUaGVtZVNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgcHVibGljIGlucHV0Qm94SG9zdFN2Yz86IFNreUlucHV0Qm94SG9zdFNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy4jZm9ybUJ1aWxkZXIgPSBmb3JtQnVpbGRlcjtcbiAgICB0aGlzLiNhZGFwdGVyU2VydmljZSA9IGFkYXB0ZXJTZXJ2aWNlO1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yID0gY2hhbmdlRGV0ZWN0b3I7XG4gICAgLyoqXG4gICAgICogVGhlIGpzb24gZnVuY3Rpb25zIGhlcmUgZW5zdXJlcyB0aGF0IHdlIGdldCBhIGNvcHkgb2YgdGhlIGFycmF5IGFuZCBub3QgdGhlIGdsb2JhbCBvcmlnaW5hbC5cbiAgICAgKiBUaGlzIGVuc3VyZXMgdGhhdCBtdWx0aXBsZSBpbnN0YW5jZXMgb2YgdGhlIGNvbXBvbmVudCBkb24ndCBvdmVyd3JpdGUgdGhlIG9yaWdpbmFsIGRhdGEuXG4gICAgICpcbiAgICAgKiBXZSBtdXN0IHR5cGUgdGhlIHdpbmRvdyBvYmplY3QgYXMgYW55IGhlcmUgYXMgdGhlIGludGwtdGVsLWlucHV0IGxpYnJhcnkgYWRkcyBpdHMgb2JqZWN0XG4gICAgICogdG8gdGhlIG1haW4gd2luZG93IG9iamVjdC5cbiAgICAgKi9cbiAgICB0aGlzLmNvdW50cmllcyA9IEpTT04ucGFyc2UoXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgSlNPTi5zdHJpbmdpZnkoKHdpbmRvdyBhcyBhbnkpLmludGxUZWxJbnB1dEdsb2JhbHMuZ2V0Q291bnRyeURhdGEoKSlcbiAgICApO1xuICAgIGZvciAoY29uc3QgY291bnRyeSBvZiB0aGlzLmNvdW50cmllcykge1xuICAgICAgY291bnRyeS5kaWFsQ29kZSA9ICcrJyArIGNvdW50cnkuZGlhbENvZGU7XG5cbiAgICAgIGlmIChjb3VudHJ5LmRpYWxDb2RlLmxlbmd0aCA+IHRoaXMuI2xvbmdlc3REaWFsQ29kZUxlbmd0aCkge1xuICAgICAgICB0aGlzLiNsb25nZXN0RGlhbENvZGVMZW5ndGggPSBjb3VudHJ5LmRpYWxDb2RlLmxlbmd0aDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmNvdW50cnlTZWFyY2hGb3JtID0gdGhpcy4jZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgY291bnRyeVNlYXJjaDogdGhpcy4jY291bnRyeVNlYXJjaEZvcm1Db250cm9sLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIFRoZSB0aW1lb3V0IGhlcmUgaXMgbmVlZGVkIHRvIGF2b2lkIGEgY2hhbmdlIGJlZm9yZSBjaGVja2VkIGVycm9yIHdoZW4gYSB1c2VyIHNwZWNpZmllc1xuICAgIC8vIGEgc2VsZWN0ZWQgY291bnRyeSBvbiBpbml0aWFsaXphdGlvbiBvZiB0aGUgY29tcG9uZW50LlxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuaW5wdXRCb3hIb3N0U3ZjICYmIHRoaXMuaW5wdXRUZW1wbGF0ZVJlZikge1xuICAgICAgICB0aGlzLmlucHV0Qm94SG9zdFN2Yy5wb3B1bGF0ZSh7XG4gICAgICAgICAgaW5wdXRUZW1wbGF0ZTogdGhpcy5pbnB1dFRlbXBsYXRlUmVmLFxuICAgICAgICAgIGJ1dHRvbnNJbnNldFRlbXBsYXRlOiB0aGlzLmJ1dHRvbnNJbnNldFRlbXBsYXRlUmVmLFxuICAgICAgICAgIGJ1dHRvbnNMZWZ0VGVtcGxhdGU6IHRoaXMuY291bnRyeUJ0blRlbXBsYXRlUmVmLFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKCF0aGlzLmRlZmF1bHRDb3VudHJ5KSB7XG4gICAgICAgIHRoaXMuZGVmYXVsdENvdW50cnkgPSAndXMnO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXRoaXMuc2VsZWN0ZWRDb3VudHJ5KSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5ID0gdGhpcy4jZGVmYXVsdENvdW50cnlEYXRhO1xuICAgICAgfVxuICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgfSwgMCk7XG5cbiAgICB0aGlzLiNjb3VudHJ5U2VhcmNoRm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZShcbiAgICAgIChuZXdWYWx1ZT86IFNreUNvdW50cnlGaWVsZENvdW50cnkpID0+IHtcbiAgICAgICAgaWYgKG5ld1ZhbHVlPy5pc28yICE9PSB0aGlzLnNlbGVjdGVkQ291bnRyeT8uaXNvMikge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5ID0gbmV3VmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5Q2hhbmdlLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgY291bnRyeSB0byB2YWxpZGF0ZSBhZ2FpbnN0IGJhc2VkIG9uIHRoZSBjb3VudHkncyBpc28yIGNvZGUuXG4gICAqIEBwYXJhbSBjb3VudHJ5Q29kZSBUaGUgSW50ZXJuYXRpb25hbCBPcmdhbml6YXRpb24gZm9yIFN0YW5kYXJkaXphdGlvbidzIHR3by1sZXR0ZXIgY29kZVxuICAgKiBmb3IgdGhlIGRlZmF1bHQgY291bnRyeS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgb25Db3VudHJ5U2VsZWN0ZWQobmV3Q291bnRyeTogU2t5Q291bnRyeUZpZWxkQ291bnRyeSk6IHZvaWQge1xuICAgIGlmIChuZXdDb3VudHJ5KSB7XG4gICAgICB0aGlzLnNlbGVjdGVkQ291bnRyeSA9IHRoaXMuY291bnRyaWVzLmZpbmQoXG4gICAgICAgIChjb3VudHJ5SW5mbykgPT4gY291bnRyeUluZm8uaXNvMiA9PT0gbmV3Q291bnRyeS5pc28yXG4gICAgICApO1xuICAgICAgdGhpcy50b2dnbGVDb3VudHJ5U2VhcmNoKGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlQ291bnRyeVNlYXJjaChzaG93U2VhcmNoOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy4jcGhvbmVJbnB1dEFuaW1hdGlvblRyaWdnZXJlZCA9IHRydWU7XG5cbiAgICBpZiAoc2hvd1NlYXJjaCkge1xuICAgICAgdGhpcy5waG9uZUlucHV0U2hvd24gPSBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb3VudHJ5U2VhcmNoU2hvd24gPSBmYWxzZTtcblxuICAgICAgdGhpcy4jY291bnRyeVNlYXJjaEZvcm1Db250cm9sLnNldFZhbHVlKHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgY291bnRyeVNlYXJjaEFuaW1hdGlvbkVuZChlOiBBbmltYXRpb25FdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5jb3VudHJ5U2VhcmNoU2hvd24pIHtcbiAgICAgIHRoaXMucGhvbmVJbnB1dFNob3duID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy4jYWRhcHRlclNlcnZpY2UuZm9jdXNDb3VudHJ5U2VhcmNoRWxlbWVudChlLmVsZW1lbnQpO1xuICAgIH1cblxuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIHBob25lSW5wdXRBbmltYXRpb25FbmQoZTogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucGhvbmVJbnB1dFNob3duKSB7XG4gICAgICB0aGlzLmNvdW50cnlTZWFyY2hTaG93biA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLiNwaG9uZUlucHV0QW5pbWF0aW9uVHJpZ2dlcmVkKSB7XG4gICAgICAgIHRoaXMuI2FkYXB0ZXJTZXJ2aWNlLmZvY3VzUGhvbmVJbnB1dChlLmVsZW1lbnQpO1xuICAgICAgICB0aGlzLiNwaG9uZUlucHV0QW5pbWF0aW9uVHJpZ2dlcmVkID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0Q291bnRyeUJ5RGlhbENvZGUocGhvbmVOdW1iZXI6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmICghcGhvbmVOdW1iZXIgfHwgIXBob25lTnVtYmVyLnN0YXJ0c1dpdGgoJysnKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGxldCBuZXdDb3VudHJ5OiBTa3lQaG9uZUZpZWxkQ291bnRyeSB8IHVuZGVmaW5lZDtcblxuICAgIGZvciAobGV0IGkgPSAxOyBpIDwgdGhpcy4jbG9uZ2VzdERpYWxDb2RlTGVuZ3RoICsgMTsgaSsrKSB7XG4gICAgICBjb25zdCBkaWFsQ29kZSA9IHBob25lTnVtYmVyLnN1YnN0cmluZygwLCBpKTtcblxuICAgICAgaWYgKHRoaXMuI2RlZmF1bHRDb3VudHJ5RGF0YT8uZGlhbENvZGUgPT09IGRpYWxDb2RlKSB7XG4gICAgICAgIG5ld0NvdW50cnkgPSB0aGlzLiNkZWZhdWx0Q291bnRyeURhdGE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZXQgZm91bmRDb3VudHJ5ID0gdGhpcy5jb3VudHJpZXMuZmluZChcbiAgICAgICAgICAoY291bnRyeSkgPT4gY291bnRyeS5kaWFsQ29kZSA9PT0gZGlhbENvZGUgJiYgY291bnRyeS5wcmlvcml0eSA9PT0gMFxuICAgICAgICApO1xuXG4gICAgICAgIGlmIChmb3VuZENvdW50cnkpIHtcbiAgICAgICAgICAvLyBFbnN1cmUgdGhhdCB0aGUgY291bnRyeSB0aGF0IHdhcyBmb3VuZCBpcyBvbmUgb2YgdGhlIHN1cHBvcnRlZCBjb3VudHJpZXNcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLnN1cHBvcnRlZENvdW50cnlJU09zICYmXG4gICAgICAgICAgICB0aGlzLnN1cHBvcnRlZENvdW50cnlJU09zLmZpbmRJbmRleChcbiAgICAgICAgICAgICAgKGlzb0NvZGUpID0+XG4gICAgICAgICAgICAgICAgaXNvQ29kZS50b1VwcGVyQ2FzZSgpID09PSBmb3VuZENvdW50cnk/LmlzbzIudG9VcHBlckNhc2UoKVxuICAgICAgICAgICAgKSA8IDBcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGZvdW5kQ291bnRyeSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZm91bmRDb3VudHJ5ICE9PSB0aGlzLnNlbGVjdGVkQ291bnRyeSkge1xuICAgICAgICAgICAgbmV3Q291bnRyeSA9IGZvdW5kQ291bnRyeTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobmV3Q291bnRyeSkge1xuICAgICAgdGhpcy5zZWxlY3RlZENvdW50cnkgPSBuZXdDb3VudHJ5O1xuICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCIhaW5wdXRCb3hIb3N0U3ZjXCI+XG4gIDxkaXYgY2xhc3M9XCJza3ktaW5wdXQtZ3JvdXAgc2t5LXBob25lLWZpZWxkXCIgW0BibG9ja0FuaW1hdGlvbk9uTG9hZF0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvdW50cnlCdG5UZW1wbGF0ZVJlZlwiPjwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpbnB1dFRlbXBsYXRlUmVmXCI+PC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJ1dHRvbnNJbnNldFRlbXBsYXRlUmVmXCI+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjY291bnRyeUJ0blRlbXBsYXRlUmVmPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJza3ktaW5wdXQtZ3JvdXAtYnRuIHNreS1waG9uZS1maWVsZC1jb3VudHJ5LWJ0blwiXG4gICAgW2F0dHIuZGF0YS1za3ktdGVzdC1pc28yXT1cInNlbGVjdGVkQ291bnRyeT8uaXNvMlwiXG4gICAgW2F0dHIuZGF0YS1za3ktdGVzdC1uYW1lXT1cInNlbGVjdGVkQ291bnRyeT8ubmFtZVwiXG4gID5cbiAgICA8YnV0dG9uXG4gICAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxuICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tZGVmYXVsdFwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIFthdHRyLnRpdGxlXT1cIlxuICAgICAgICAoJ3NreXV4X3Bob25lX2ZpZWxkX2NvdW50cnlfc2VsZWN0X2xhYmVsJyB8IHNreUxpYlJlc291cmNlcykgK1xuICAgICAgICAnICcgK1xuICAgICAgICAoJ3NreXV4X3Bob25lX2ZpZWxkX2NvdW50cnlfc2VsZWN0ZWRfbGFiZWwnXG4gICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXM6IHNlbGVjdGVkQ291bnRyeT8ubmFtZSlcbiAgICAgIFwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAoJ3NreXV4X3Bob25lX2ZpZWxkX2NvdW50cnlfc2VsZWN0X2xhYmVsJyB8IHNreUxpYlJlc291cmNlcykgK1xuICAgICAgICAnICcgK1xuICAgICAgICAoJ3NreXV4X3Bob25lX2ZpZWxkX2NvdW50cnlfc2VsZWN0ZWRfbGFiZWwnXG4gICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXM6IHNlbGVjdGVkQ291bnRyeT8ubmFtZSlcbiAgICAgIFwiXG4gICAgICBbZGlzYWJsZWRdPVwiY291bnRyeVNlbGVjdERpc2FibGVkXCJcbiAgICAgIChjbGljayk9XCJ0b2dnbGVDb3VudHJ5U2VhcmNoKHRydWUpXCJcbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwic2t5LXBob25lLWZpZWxkLWZsYWcgaXRpX19mbGFnXCJcbiAgICAgICAgW25nQ2xhc3NdPVwiJ2l0aV9fJyArIHNlbGVjdGVkQ291bnRyeT8uaXNvMlwiXG4gICAgICA+PC9kaXY+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNpbnB1dFRlbXBsYXRlUmVmPlxuICA8c3BhblxuICAgICpuZ0lmPVwicGhvbmVJbnB1dFNob3duXCJcbiAgICBjbGFzcz1cInNreS1waG9uZS1maWVsZC1jb250YWluZXJcIlxuICAgIFtAcGhvbmVJbnB1dEFuaW1hdGlvbl09XCJwaG9uZUlucHV0U2hvd24gPyAnb3BlbicgOiAnY2xvc2VkJ1wiXG4gICAgKEBwaG9uZUlucHV0QW5pbWF0aW9uLmRvbmUpPVwicGhvbmVJbnB1dEFuaW1hdGlvbkVuZCgkZXZlbnQpXCJcbiAgPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9zcGFuPlxuICA8c3BhblxuICAgICpuZ0lmPVwiY291bnRyeVNlYXJjaFNob3duXCJcbiAgICBjbGFzcz1cInNreS1waG9uZS1maWVsZC1jb250YWluZXJcIlxuICAgIFtAY291bnRyeVNlYXJjaEFuaW1hdGlvbl09XCJcbiAgICAgICdvcGVuJyArXG4gICAgICAoKHRoZW1lU3ZjPy5zZXR0aW5nc0NoYW5nZSB8IGFzeW5jKT8uY3VycmVudFNldHRpbmdzPy50aGVtZT8ubmFtZSA9PT1cbiAgICAgICdtb2Rlcm4nXG4gICAgICAgID8gJy1tb2Rlcm4nXG4gICAgICAgIDogJycpXG4gICAgXCJcbiAgICAoQGNvdW50cnlTZWFyY2hBbmltYXRpb24uZG9uZSk9XCJjb3VudHJ5U2VhcmNoQW5pbWF0aW9uRW5kKCRldmVudClcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cInNreS1waG9uZS1maWVsZC1jb3VudHJ5LXNlYXJjaFwiIFtmb3JtR3JvdXBdPVwiY291bnRyeVNlYXJjaEZvcm1cIj5cbiAgICAgIDxza3ktY291bnRyeS1maWVsZFxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjb3VudHJ5U2VhcmNoXCJcbiAgICAgICAgW2RlZmF1bHRDb3VudHJ5XT1cImRlZmF1bHRDb3VudHJ5XCJcbiAgICAgICAgW2hpZGVTZWxlY3RlZENvdW50cnlGbGFnXT1cInRydWVcIlxuICAgICAgICBbaW5jbHVkZVBob25lSW5mb109XCJ0cnVlXCJcbiAgICAgICAgW3N1cHBvcnRlZENvdW50cnlJU09zXT1cInN1cHBvcnRlZENvdW50cnlJU09zXCJcbiAgICAgICAgKHNlbGVjdGVkQ291bnRyeUNoYW5nZSk9XCJvbkNvdW50cnlTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgIDwvc2t5LWNvdW50cnktZmllbGQ+XG4gICAgPC9kaXY+XG4gIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjYnV0dG9uc0luc2V0VGVtcGxhdGVSZWY+XG4gIDxkaXZcbiAgICAqbmdJZj1cImNvdW50cnlTZWFyY2hTaG93blwiXG4gICAgY2xhc3M9XCJza3ktaW5wdXQtZ3JvdXAtYnRuIHNreS1pbnB1dC1ib3gtYnRuLWluc2V0IHNreS1zZWFyY2gtaXRlbS1kaXNtaXNzXCJcbiAgPlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktcGhvbmUtZmllbGQtc2VhcmNoLWJ0bi1kaXNtaXNzXCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgW2F0dHIudGl0bGVdPVwiXG4gICAgICAgICdza3l1eF9waG9uZV9maWVsZF9jb3VudHJ5X3NlYXJjaF9kaXNtaXNzJyB8IHNreUxpYlJlc291cmNlc1xuICAgICAgXCJcbiAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ3NreS1idG4tZGVmYXVsdCc6XG4gICAgICAgICAgKHRoZW1lU3ZjPy5zZXR0aW5nc0NoYW5nZSB8IGFzeW5jKT8uY3VycmVudFNldHRpbmdzPy50aGVtZT8ubmFtZSA9PT1cbiAgICAgICAgICAnbW9kZXJuJ1xuICAgICAgfVwiXG4gICAgICAoY2xpY2spPVwidG9nZ2xlQ291bnRyeVNlYXJjaChmYWxzZSlcIlxuICAgID5cbiAgICAgIDxza3ktaWNvbiAqc2t5VGhlbWVJZj1cIidkZWZhdWx0J1wiIGljb249XCJjaGV2cm9uLWNpcmNsZS1sZWZ0XCIgc2l6ZT1cImxnXCI+XG4gICAgICA8L3NreS1pY29uPlxuICAgICAgPHNreS1pY29uXG4gICAgICAgICpza3lUaGVtZUlmPVwiJ21vZGVybidcIlxuICAgICAgICBpY29uPVwiZG91YmxlLWNoZXZyb24tbGVmdFwiXG4gICAgICAgIGljb25UeXBlPVwic2t5dXhcIlxuICAgICAgICBzaXplPVwiMnhcIlxuICAgICAgPlxuICAgICAgPC9za3ktaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -319,21 +319,27 @@ class SkyPhoneFieldComponent {
|
|
|
319
319
|
__classPrivateFieldGet(this, _SkyPhoneFieldComponent_changeDetector, "f").markForCheck();
|
|
320
320
|
}
|
|
321
321
|
setCountryByDialCode(phoneNumber) {
|
|
322
|
+
var _a;
|
|
322
323
|
if (!phoneNumber || !phoneNumber.startsWith('+')) {
|
|
323
324
|
return false;
|
|
324
325
|
}
|
|
325
326
|
let newCountry;
|
|
326
327
|
for (let i = 1; i < __classPrivateFieldGet(this, _SkyPhoneFieldComponent_longestDialCodeLength, "f") + 1; i++) {
|
|
327
328
|
const dialCode = phoneNumber.substring(0, i);
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
329
|
+
if (((_a = __classPrivateFieldGet(this, _SkyPhoneFieldComponent_defaultCountryData, "f")) === null || _a === void 0 ? void 0 : _a.dialCode) === dialCode) {
|
|
330
|
+
newCountry = __classPrivateFieldGet(this, _SkyPhoneFieldComponent_defaultCountryData, "f");
|
|
331
|
+
}
|
|
332
|
+
else {
|
|
333
|
+
let foundCountry = this.countries.find((country) => country.dialCode === dialCode && country.priority === 0);
|
|
334
|
+
if (foundCountry) {
|
|
335
|
+
// Ensure that the country that was found is one of the supported countries
|
|
336
|
+
if (this.supportedCountryISOs &&
|
|
337
|
+
this.supportedCountryISOs.findIndex((isoCode) => isoCode.toUpperCase() === (foundCountry === null || foundCountry === void 0 ? void 0 : foundCountry.iso2.toUpperCase())) < 0) {
|
|
338
|
+
foundCountry = undefined;
|
|
339
|
+
}
|
|
340
|
+
if (foundCountry !== this.selectedCountry) {
|
|
341
|
+
newCountry = foundCountry;
|
|
342
|
+
}
|
|
337
343
|
}
|
|
338
344
|
}
|
|
339
345
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skyux-phone-field.mjs","sources":["../../../../../libs/components/phone-field/src/lib/modules/shared/sky-phone-field-resources.module.ts","../../../../../libs/components/phone-field/src/lib/modules/phone-field/phone-field-adapter.service.ts","../../../../../libs/components/phone-field/src/lib/modules/phone-field/phone-field.component.ts","../../../../../libs/components/phone-field/src/lib/modules/phone-field/phone-field.component.html","../../../../../libs/components/phone-field/src/lib/modules/phone-field/phone-field-input.directive.ts","../../../../../libs/components/phone-field/src/lib/modules/phone-field/phone-field.module.ts","../../../../../libs/components/phone-field/src/skyux-phone-field.ts"],"sourcesContent":["/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-phone-field' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport {\n SKY_LIB_RESOURCES_PROVIDERS,\n SkyAppLocaleInfo,\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesProvider,\n getLibStringForLocale,\n} from '@skyux/i18n';\n\nconst RESOURCES: { [locale: string]: SkyLibResources } = {\n 'EN-US': {\n skyux_phone_field_default_label: { message: 'Phone number' },\n skyux_phone_field_country_search_dismiss: {\n message: 'Dismiss country search',\n },\n skyux_phone_field_country_search_label: {\n message: 'Dismiss country search',\n },\n skyux_phone_field_country_search_placeholder: {\n message: 'Search for a country',\n },\n skyux_phone_field_country_select_label: { message: 'Choose country.' },\n skyux_phone_field_country_selected_label: {\n message: '{0} is currently selected.',\n },\n },\n};\n\nexport class SkyPhoneFieldResourcesProvider implements SkyLibResourcesProvider {\n public getString(\n localeInfo: SkyAppLocaleInfo,\n name: string\n ): string | undefined {\n return getLibStringForLocale(RESOURCES, localeInfo.locale, name);\n }\n}\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n providers: [\n {\n provide: SKY_LIB_RESOURCES_PROVIDERS,\n useClass: SkyPhoneFieldResourcesProvider,\n multi: true,\n },\n ],\n})\nexport class SkyPhoneFieldResourcesModule {}\n","import { ElementRef, Injectable, OnDestroy, Renderer2 } from '@angular/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n/**\n * Service for interacting with the DOM elements of the phone field.\n * @internal\n */\n@Injectable()\nexport class SkyPhoneFieldAdapterService implements OnDestroy {\n #ngUnsubscribe = new Subject<void>();\n\n #renderer: Renderer2;\n #resourcesService: SkyLibResourcesService;\n\n constructor(renderer: Renderer2, resourcesService: SkyLibResourcesService) {\n this.#renderer = renderer;\n this.#resourcesService = resourcesService;\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n public addElementClass(elementRef: ElementRef, className: string): void {\n this.#renderer.addClass(elementRef.nativeElement, className);\n }\n\n public setElementDisabledState(\n elementRef: ElementRef,\n disabled: boolean\n ): void {\n this.#renderer.setProperty(elementRef.nativeElement, 'disabled', disabled);\n }\n\n public setElementPlaceholder(\n elementRef: ElementRef,\n placeholder: string\n ): void {\n this.#renderer.setAttribute(\n elementRef.nativeElement,\n 'placeholder',\n placeholder\n );\n }\n\n public setElementType(elementRef: ElementRef): void {\n this.#renderer.setAttribute(elementRef.nativeElement, 'type', 'tel');\n }\n\n public setElementValue(elementRef: ElementRef, value: string): void {\n this.#renderer.setProperty(elementRef.nativeElement, 'value', value);\n }\n\n public setAriaLabel(element: ElementRef): void {\n /* Sanity check */\n /* istanbul ignore else */\n if (!element.nativeElement.getAttribute('aria-label')) {\n this.#resourcesService\n .getString('skyux_phone_field_default_label')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((value: string) => {\n this.#renderer.setAttribute(\n element.nativeElement,\n 'aria-label',\n value\n );\n });\n }\n }\n\n public focusCountrySearchElement(el: Element): void {\n const input: HTMLElement | null = el.querySelector('textarea');\n input?.focus();\n }\n\n public focusPhoneInput(el: Element): void {\n const input: HTMLElement | null = el.querySelector(\n '.sky-phone-field-container input'\n );\n input?.focus();\n }\n}\n","import {\n AnimationEvent,\n animate,\n style,\n transition,\n trigger,\n} from '@angular/animations';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n SkipSelf,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\nimport { SkyInputBoxHostService } from '@skyux/forms';\nimport {\n SKY_COUNTRY_FIELD_CONTEXT,\n SkyCountryFieldCountry,\n} from '@skyux/lookup';\nimport { SkyThemeService } from '@skyux/theme';\n\nimport {\n PhoneNumberFormat,\n PhoneNumberType,\n PhoneNumberUtil,\n} from 'google-libphonenumber';\nimport 'intl-tel-input';\n\nimport { SkyPhoneFieldAdapterService } from './phone-field-adapter.service';\nimport { SkyPhoneFieldCountry } from './types/country';\nimport { SkyPhoneFieldNumberReturnFormat } from './types/number-return-format';\n\n// NOTE: The no-op animation is here in order to block the input's \"fade in\" animation\n// from firing on initial load. For more information on this technique you can see\n// https://www.bennadel.com/blog/3417-using-no-op-transitions-to-prevent-animation-during-the-initial-render-of-ngfor-in-angular-5-2-6.htm\n@Component({\n selector: 'sky-phone-field',\n templateUrl: './phone-field.component.html',\n styleUrls: ['./phone-field.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n SkyPhoneFieldAdapterService,\n // Prevents the embedded country field component from changing its behavior based on\n // being inside an input box. The phone field itself will handle the required changes\n // for input box.\n {\n provide: SkyInputBoxHostService,\n useValue: undefined,\n },\n {\n provide: SKY_COUNTRY_FIELD_CONTEXT,\n useValue: { showPlaceholderText: true },\n },\n ],\n animations: [\n trigger('blockAnimationOnLoad', [transition(':enter', [])]),\n trigger('countrySearchAnimation', [\n transition('void => open', [\n style({\n opacity: 0,\n width: 0,\n }),\n animate(\n '200ms ease-in',\n style({\n opacity: 1,\n width: '*',\n })\n ),\n ]),\n transition('open => void', [\n animate(\n '200ms ease-in',\n style({\n opacity: 0,\n width: 0,\n })\n ),\n ]),\n transition('void => open-modern', [\n style({\n opacity: 0,\n }),\n animate(\n '200ms ease-in',\n style({\n opacity: 1,\n })\n ),\n ]),\n transition('open-modern => void', [\n animate(\n '200ms ease-in',\n style({\n opacity: 0,\n })\n ),\n ]),\n ]),\n trigger('phoneInputAnimation', [\n transition('void => open', [\n style({\n opacity: 0,\n }),\n animate(\n '200ms ease-in',\n style({\n opacity: 1,\n })\n ),\n ]),\n transition('open => void', [\n animate(\n '200ms ease-in',\n style({\n opacity: 0,\n })\n ),\n ]),\n ]),\n ],\n})\nexport class SkyPhoneFieldComponent implements OnDestroy, OnInit {\n /**\n * Whether phone number extensions are allowed.\n * @default true\n */\n @Input()\n public set allowExtensions(value: boolean | undefined) {\n this.#_allowExtensions = value !== false;\n }\n\n public get allowExtensions(): boolean {\n return this.#_allowExtensions;\n }\n\n #_allowExtensions = true;\n\n /**\n * The\n * [International Organization for Standardization Alpha 2](https://www.nationsonline.org/oneworld/country_code_list.htm)\n * country code for the default country. The country selector button displays a flag\n * icon for this default country until users select a different country.\n * @default \"us\"\n */\n @Input()\n public set defaultCountry(value: string | undefined) {\n if (value && value !== this.#_defaultCountry) {\n this.#_defaultCountry = value.toLowerCase();\n\n this.#defaultCountryData = this.countries.find(\n (country) => country.iso2 === this.#_defaultCountry\n );\n }\n }\n\n public get defaultCountry(): string | undefined {\n return this.#_defaultCountry;\n }\n\n /**\n * The format for validated phone numbers.\n * Options include: `\"default\"`, `\"international\"`, and `\"national\"`.\n * @default \"default\"\n */\n @Input()\n public get returnFormat(): SkyPhoneFieldNumberReturnFormat {\n return this.#_returnFormat;\n }\n\n public set returnFormat(value: SkyPhoneFieldNumberReturnFormat | undefined) {\n this.#_returnFormat = value || 'default';\n }\n\n #_returnFormat: SkyPhoneFieldNumberReturnFormat = 'default';\n\n /**\n * The [International Organization for Standardization Alpha 2](https://www.nationsonline.org/oneworld/country_code_list.htm)\n * country codes for the countries that users can select. By default, all countries are available.\n */\n @Input()\n public supportedCountryISOs: string[] | undefined;\n\n /**\n * Emits a `SkyPhoneFieldCountry` object when the selected country in the country search\n * input changes.\n */\n\n @Output()\n public selectedCountryChange = new EventEmitter<SkyPhoneFieldCountry>();\n\n public countries: SkyPhoneFieldCountry[];\n\n public countrySelectDisabled = false;\n\n public countrySearchShown = false;\n\n public phoneInputShown = true;\n\n public countrySearchForm: FormGroup<{\n countrySearch: FormControl<SkyCountryFieldCountry | undefined>;\n }>;\n\n /**\n * The currently selected country to validate against.\n */\n @Input()\n public set selectedCountry(newCountry: SkyPhoneFieldCountry | undefined) {\n if (\n newCountry &&\n (!this.#_selectedCountry ||\n this.#_selectedCountry.iso2 !== newCountry.iso2)\n ) {\n this.#_selectedCountry = this.countries.find(\n (country) => country.iso2 === newCountry.iso2\n );\n\n if (this.#_selectedCountry && !this.#_selectedCountry.exampleNumber) {\n const numberObj = this.#phoneUtils.getExampleNumberForType(\n newCountry.iso2,\n PhoneNumberType.FIXED_LINE\n );\n this.#_selectedCountry.exampleNumber = this.#phoneUtils.format(\n numberObj,\n PhoneNumberFormat.NATIONAL\n );\n }\n\n this.selectedCountryChange.emit(this.#_selectedCountry);\n }\n }\n\n public get selectedCountry(): SkyPhoneFieldCountry | undefined {\n return this.#_selectedCountry;\n }\n\n @ViewChild('inputTemplateRef', {\n read: TemplateRef,\n static: true,\n })\n public inputTemplateRef: TemplateRef<unknown> | undefined;\n\n @ViewChild('countryBtnTemplateRef', {\n read: TemplateRef,\n static: true,\n })\n public countryBtnTemplateRef: TemplateRef<unknown> | undefined;\n\n @ViewChild('buttonsInsetTemplateRef', {\n read: TemplateRef,\n static: true,\n })\n public buttonsInsetTemplateRef: TemplateRef<unknown> | undefined;\n\n #defaultCountryData: SkyPhoneFieldCountry | undefined;\n\n #phoneInputAnimationTriggered = false;\n\n #phoneUtils = PhoneNumberUtil.getInstance();\n\n #longestDialCodeLength = 0;\n\n #_defaultCountry: string | undefined;\n\n #_selectedCountry: SkyPhoneFieldCountry | undefined;\n\n #countrySearchFormControl: FormControl<SkyCountryFieldCountry | undefined> =\n new FormControl();\n\n #formBuilder: FormBuilder;\n #adapterService: SkyPhoneFieldAdapterService;\n #changeDetector: ChangeDetectorRef;\n\n constructor(\n formBuilder: FormBuilder,\n adapterService: SkyPhoneFieldAdapterService,\n changeDetector: ChangeDetectorRef,\n @Optional() public themeSvc?: SkyThemeService,\n @Optional() @SkipSelf() public inputBoxHostSvc?: SkyInputBoxHostService\n ) {\n this.#formBuilder = formBuilder;\n this.#adapterService = adapterService;\n this.#changeDetector = changeDetector;\n /**\n * The json functions here ensures that we get a copy of the array and not the global original.\n * This ensures that multiple instances of the component don't overwrite the original data.\n *\n * We must type the window object as any here as the intl-tel-input library adds its object\n * to the main window object.\n */\n this.countries = JSON.parse(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n JSON.stringify((window as any).intlTelInputGlobals.getCountryData())\n );\n for (const country of this.countries) {\n country.dialCode = '+' + country.dialCode;\n\n if (country.dialCode.length > this.#longestDialCodeLength) {\n this.#longestDialCodeLength = country.dialCode.length;\n }\n }\n\n this.countrySearchForm = this.#formBuilder.group({\n countrySearch: this.#countrySearchFormControl,\n });\n }\n\n public ngOnInit(): void {\n // The timeout here is needed to avoid a change before checked error when a user specifies\n // a selected country on initialization of the component.\n setTimeout(() => {\n if (this.inputBoxHostSvc && this.inputTemplateRef) {\n this.inputBoxHostSvc.populate({\n inputTemplate: this.inputTemplateRef,\n buttonsInsetTemplate: this.buttonsInsetTemplateRef,\n buttonsLeftTemplate: this.countryBtnTemplateRef,\n });\n }\n\n if (!this.defaultCountry) {\n this.defaultCountry = 'us';\n }\n\n if (!this.selectedCountry) {\n this.selectedCountry = this.#defaultCountryData;\n }\n this.#changeDetector.markForCheck();\n }, 0);\n\n this.#countrySearchFormControl.valueChanges.subscribe(\n (newValue?: SkyCountryFieldCountry) => {\n if (newValue?.iso2 !== this.selectedCountry?.iso2) {\n this.selectedCountry = newValue;\n }\n }\n );\n }\n\n public ngOnDestroy(): void {\n this.selectedCountryChange.complete();\n }\n\n /**\n * Sets the country to validate against based on the county's iso2 code.\n * @param countryCode The International Organization for Standardization's two-letter code\n * for the default country.\n * @internal\n */\n public onCountrySelected(newCountry: SkyCountryFieldCountry): void {\n if (newCountry) {\n this.selectedCountry = this.countries.find(\n (countryInfo) => countryInfo.iso2 === newCountry.iso2\n );\n this.toggleCountrySearch(false);\n }\n }\n\n public toggleCountrySearch(showSearch: boolean): void {\n this.#phoneInputAnimationTriggered = true;\n\n if (showSearch) {\n this.phoneInputShown = false;\n } else {\n this.countrySearchShown = false;\n\n this.#countrySearchFormControl.setValue(undefined);\n }\n\n this.#changeDetector.markForCheck();\n }\n\n public countrySearchAnimationEnd(e: AnimationEvent): void {\n if (!this.countrySearchShown) {\n this.phoneInputShown = true;\n } else {\n this.#adapterService.focusCountrySearchElement(e.element);\n }\n\n this.#changeDetector.markForCheck();\n }\n\n public phoneInputAnimationEnd(e: AnimationEvent): void {\n if (!this.phoneInputShown) {\n this.countrySearchShown = true;\n } else {\n if (this.#phoneInputAnimationTriggered) {\n this.#adapterService.focusPhoneInput(e.element);\n this.#phoneInputAnimationTriggered = false;\n }\n }\n\n this.#changeDetector.markForCheck();\n }\n\n public setCountryByDialCode(phoneNumber: string): boolean {\n if (!phoneNumber || !phoneNumber.startsWith('+')) {\n return false;\n }\n\n let newCountry: SkyPhoneFieldCountry | undefined;\n\n for (let i = 1; i < this.#longestDialCodeLength + 1; i++) {\n const dialCode = phoneNumber.substring(0, i);\n\n let foundCountry = this.countries.find(\n (country) => country.dialCode === dialCode && country.priority === 0\n );\n\n if (foundCountry) {\n // Ensure that the country that was found is one of the supported countries\n if (\n this.supportedCountryISOs &&\n this.supportedCountryISOs.findIndex(\n (isoCode) =>\n isoCode.toUpperCase() === foundCountry?.iso2.toUpperCase()\n ) < 0\n ) {\n foundCountry = undefined;\n }\n\n if (foundCountry !== this.selectedCountry) {\n newCountry = foundCountry;\n }\n }\n }\n\n if (newCountry) {\n this.selectedCountry = newCountry;\n this.#changeDetector.markForCheck();\n return true;\n }\n\n return false;\n }\n}\n","<ng-container *ngIf=\"!inputBoxHostSvc\">\n <div class=\"sky-input-group sky-phone-field\" [@blockAnimationOnLoad]>\n <ng-container *ngTemplateOutlet=\"countryBtnTemplateRef\"></ng-container>\n <ng-container *ngTemplateOutlet=\"inputTemplateRef\"></ng-container>\n <ng-container *ngTemplateOutlet=\"buttonsInsetTemplateRef\"></ng-container>\n </div>\n</ng-container>\n\n<ng-template #countryBtnTemplateRef>\n <div\n class=\"sky-input-group-btn sky-phone-field-country-btn\"\n [attr.data-sky-test-iso2]=\"selectedCountry?.iso2\"\n [attr.data-sky-test-name]=\"selectedCountry?.name\"\n >\n <button\n aria-live=\"polite\"\n class=\"sky-btn sky-btn-default\"\n type=\"button\"\n [attr.title]=\"\n ('skyux_phone_field_country_select_label' | skyLibResources) +\n ' ' +\n ('skyux_phone_field_country_selected_label'\n | skyLibResources: selectedCountry?.name)\n \"\n [attr.aria-label]=\"\n ('skyux_phone_field_country_select_label' | skyLibResources) +\n ' ' +\n ('skyux_phone_field_country_selected_label'\n | skyLibResources: selectedCountry?.name)\n \"\n [disabled]=\"countrySelectDisabled\"\n (click)=\"toggleCountrySearch(true)\"\n >\n <div\n class=\"sky-phone-field-flag iti__flag\"\n [ngClass]=\"'iti__' + selectedCountry?.iso2\"\n ></div>\n </button>\n </div>\n</ng-template>\n\n<ng-template #inputTemplateRef>\n <span\n *ngIf=\"phoneInputShown\"\n class=\"sky-phone-field-container\"\n [@phoneInputAnimation]=\"phoneInputShown ? 'open' : 'closed'\"\n (@phoneInputAnimation.done)=\"phoneInputAnimationEnd($event)\"\n >\n <ng-content></ng-content>\n </span>\n <span\n *ngIf=\"countrySearchShown\"\n class=\"sky-phone-field-container\"\n [@countrySearchAnimation]=\"\n 'open' +\n ((themeSvc?.settingsChange | async)?.currentSettings?.theme?.name ===\n 'modern'\n ? '-modern'\n : '')\n \"\n (@countrySearchAnimation.done)=\"countrySearchAnimationEnd($event)\"\n >\n <div class=\"sky-phone-field-country-search\" [formGroup]=\"countrySearchForm\">\n <sky-country-field\n formControlName=\"countrySearch\"\n [defaultCountry]=\"defaultCountry\"\n [hideSelectedCountryFlag]=\"true\"\n [includePhoneInfo]=\"true\"\n [supportedCountryISOs]=\"supportedCountryISOs\"\n (selectedCountryChange)=\"onCountrySelected($event)\"\n >\n </sky-country-field>\n </div>\n </span>\n</ng-template>\n\n<ng-template #buttonsInsetTemplateRef>\n <div\n *ngIf=\"countrySearchShown\"\n class=\"sky-input-group-btn sky-input-box-btn-inset sky-search-item-dismiss\"\n >\n <button\n class=\"sky-btn sky-phone-field-search-btn-dismiss\"\n type=\"button\"\n [attr.title]=\"\n 'skyux_phone_field_country_search_dismiss' | skyLibResources\n \"\n [ngClass]=\"{\n 'sky-btn-default':\n (themeSvc?.settingsChange | async)?.currentSettings?.theme?.name ===\n 'modern'\n }\"\n (click)=\"toggleCountrySearch(false)\"\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"chevron-circle-left\" size=\"lg\">\n </sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"double-chevron-left\"\n iconType=\"skyux\"\n size=\"2x\"\n >\n </sky-icon>\n </button>\n </div>\n</ng-template>\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Directive,\n ElementRef,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n forwardRef,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\n\nimport { PhoneNumberFormat, PhoneNumberUtil } from 'google-libphonenumber';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\n\nimport { SkyPhoneFieldAdapterService } from './phone-field-adapter.service';\nimport { SkyPhoneFieldComponent } from './phone-field.component';\nimport { SkyPhoneFieldCountry } from './types/country';\n\nconst SKY_PHONE_FIELD_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SkyPhoneFieldInputDirective),\n multi: true,\n};\n\nconst SKY_PHONE_FIELD_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SkyPhoneFieldInputDirective),\n multi: true,\n};\n\n/**\n * Creates a button, search input, and text input for entering and validating\n * international phone numbers. Place this attribute on an `input` element, and wrap\n * that element in a `sky-phone-field` component. By default, the country selector\n * button displays a flag icon for the default country, and the phone number input\n * displays a sample of the correct phone number format. When users select the country\n * selector button, they expose the country search input, which is\n * [an autocomplete input](https://developer.blackbaud.com/skyux/components/autocomplete)\n * that allows them to select different countries. When users enter `+` followed by an\n * international dial code in the phone number input, the country automatically switches\n * to the country associated with the dial code.\n * @required\n */\n@Directive({\n selector: '[skyPhoneFieldInput]',\n providers: [SKY_PHONE_FIELD_VALUE_ACCESSOR, SKY_PHONE_FIELD_VALIDATOR],\n})\nexport class SkyPhoneFieldInputDirective\n implements OnInit, OnDestroy, AfterViewInit, ControlValueAccessor, Validator\n{\n /**\n * Whether to disable the phone field.\n * @default false\n */\n @Input()\n public set disabled(value: boolean | undefined) {\n const coercedValue = coerceBooleanProperty(value);\n if (this.#phoneFieldComponent) {\n this.#phoneFieldComponent.countrySelectDisabled = coercedValue;\n this.#adapterService?.setElementDisabledState(this.#elRef, coercedValue);\n }\n this.#_disabled = coercedValue;\n }\n\n public get disabled(): boolean {\n return this.#_disabled;\n }\n\n /**\n * Whether to prevent validation on the phone number input. For validation,\n * phone numbers are driven through the `ngModel` attribute that you specify on an\n * `input` element or on a `FormControl` in a reactive form. To prevent validation,\n * set this property to `true`.\n * @default false\n */\n @Input()\n public skyPhoneFieldNoValidate: boolean | undefined = false;\n\n set #modelValue(value: string | undefined) {\n const valueOrDefault = value ?? '';\n this.#_modelValue = valueOrDefault;\n this.#adapterService?.setElementValue(this.#elRef, valueOrDefault);\n\n if (valueOrDefault) {\n const formattedValue = this.#formatNumber(valueOrDefault.toString());\n\n this.#onChange(formattedValue);\n } else {\n this.#onChange(valueOrDefault);\n }\n this.#validatorChange();\n }\n\n get #modelValue(): string {\n return this.#_modelValue;\n }\n\n #control: AbstractControl | undefined;\n\n #textChanges: BehaviorSubject<string> | undefined;\n\n #ngUnsubscribe = new Subject<void>();\n\n #phoneUtils = PhoneNumberUtil.getInstance();\n\n #_disabled!: boolean;\n\n #_modelValue = '';\n\n #changeDetector: ChangeDetectorRef;\n #elRef: ElementRef;\n\n #adapterService: SkyPhoneFieldAdapterService | undefined;\n #phoneFieldComponent: SkyPhoneFieldComponent | undefined;\n\n public constructor(\n changeDetector: ChangeDetectorRef,\n elRef: ElementRef,\n @Optional() adapterService?: SkyPhoneFieldAdapterService,\n @Optional() phoneFieldComponent?: SkyPhoneFieldComponent\n ) {\n this.#changeDetector = changeDetector;\n this.#elRef = elRef;\n this.#adapterService = adapterService;\n this.#phoneFieldComponent = phoneFieldComponent;\n }\n\n public ngOnInit(): void {\n if (!this.#phoneFieldComponent) {\n throw new Error(\n 'You must wrap the `skyPhoneFieldInput` directive within a ' +\n '`<sky-phone-field>` component!'\n );\n }\n\n this.#adapterService?.setElementType(this.#elRef);\n this.#adapterService?.addElementClass(this.#elRef, 'sky-form-control');\n if (this.#phoneFieldComponent?.selectedCountry?.exampleNumber) {\n this.#adapterService?.setElementPlaceholder(\n this.#elRef,\n this.#phoneFieldComponent.selectedCountry.exampleNumber\n );\n }\n\n this.#adapterService?.setAriaLabel(this.#elRef);\n }\n\n public ngAfterViewInit(): void {\n this.#phoneFieldComponent?.selectedCountryChange\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((country: SkyPhoneFieldCountry) => {\n this.#modelValue = this.#elRef.nativeElement.value;\n if (country?.exampleNumber) {\n this.#adapterService?.setElementPlaceholder(\n this.#elRef,\n country.exampleNumber\n );\n }\n });\n\n // This is needed to address a bug in Angular 4, where the value is not changed on the view.\n // See: https://github.com/angular/angular/issues/13792\n /* istanbul ignore else */\n if (this.#control && this.#modelValue) {\n this.#control.setValue(this.#modelValue, { emitEvent: false });\n this.#changeDetector.detectChanges();\n }\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n /**\n * Writes the new value for reactive forms on change events on the input element\n * @param event The change event that was received\n */\n @HostListener('change', ['$event'])\n public onInputChange(event: any): void {\n if (!this.#textChanges) {\n this.#setupTextChangeSubscription(event.target.value);\n } else {\n this.#textChanges.next(event.target.value);\n }\n }\n\n /**\n * Marks reactive form controls as touched on input blur events\n */\n @HostListener('blur')\n public onInputBlur(): void {\n this.#onTouched();\n }\n\n @HostListener('input', ['$event'])\n public onInputTyping(event: any): void {\n if (!this.#textChanges) {\n this.#setupTextChangeSubscription(event.target.value);\n } else {\n this.#textChanges.next(event.target.value);\n }\n }\n\n /**\n * Writes the new value for reactive forms\n * @param value The new value for the input\n */\n public writeValue(value: string): void {\n this.#phoneFieldComponent?.setCountryByDialCode(value);\n\n this.#modelValue = value;\n }\n\n public registerOnChange(fn: (value: string | undefined) => void): void {\n this.#onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.#onTouched = fn;\n }\n\n public registerOnValidatorChange(fn: () => void): void {\n this.#validatorChange = fn;\n }\n\n /**\n * Sets the disabled state on the input\n * @param isDisabled the new value of the input's disabled state\n */\n public setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n /**\n * Validate's the form control's current value\n * @param control the form control for the input\n */\n public validate(control: AbstractControl): ValidationErrors | null {\n if (!this.#control) {\n this.#control = control;\n }\n\n if (this.skyPhoneFieldNoValidate) {\n return null;\n }\n\n const value = control.value;\n\n if (!value) {\n return null;\n }\n\n if (\n this.#phoneFieldComponent?.selectedCountry &&\n !this.#validateNumber(value)\n ) {\n if (!this.#textChanges) {\n // Mark the invalid control as touched so that the input's invalid CSS styles appear.\n // (This is only required when the invalid value is set by the FormControl constructor.)\n // We don't do this if the input is the active element so that we don't show validation\n // errors unless it is invalid on initialization or the input has been blurred.\n control.markAsTouched();\n }\n\n return {\n skyPhoneField: {\n invalid: value,\n },\n };\n }\n return null;\n }\n\n #setupTextChangeSubscription(text: string): void {\n this.#textChanges = new BehaviorSubject(text);\n\n this.#textChanges\n .pipe(debounceTime(500), takeUntil(this.#ngUnsubscribe))\n .subscribe((newValue) => {\n this.writeValue(newValue);\n });\n }\n\n #validateNumber(phoneNumber: string): boolean {\n try {\n const numberObj = this.#phoneUtils.parseAndKeepRawInput(\n phoneNumber,\n this.#phoneFieldComponent?.selectedCountry?.iso2\n );\n\n if (\n this.#phoneFieldComponent &&\n !this.#phoneFieldComponent.allowExtensions &&\n numberObj.getExtension()\n ) {\n return false;\n }\n\n return this.#phoneUtils.isValidNumber(numberObj);\n } catch (e) {\n return false;\n }\n }\n\n /**\n * Format's the given phone number based on the currently selected country.\n * @param phoneNumber The number to format\n */\n #formatNumber(phoneNumber: string): string {\n try {\n const numberObj = this.#phoneUtils.parseAndKeepRawInput(\n phoneNumber,\n this.#phoneFieldComponent?.selectedCountry?.iso2\n );\n if (this.#phoneUtils.isPossibleNumber(numberObj)) {\n switch (this.#phoneFieldComponent?.returnFormat) {\n case 'international':\n return this.#phoneUtils.format(\n numberObj,\n PhoneNumberFormat.INTERNATIONAL\n );\n case 'national':\n return this.#phoneUtils.format(\n numberObj,\n PhoneNumberFormat.NATIONAL\n );\n case 'default':\n default:\n if (\n this.#phoneFieldComponent?.selectedCountry?.iso2 !==\n this.#phoneFieldComponent?.defaultCountry\n ) {\n return this.#phoneUtils.format(\n numberObj,\n PhoneNumberFormat.INTERNATIONAL\n );\n } else {\n return this.#phoneUtils.format(\n numberObj,\n PhoneNumberFormat.NATIONAL\n );\n }\n }\n } else {\n return phoneNumber;\n }\n } catch (e) {\n /* sanity check */\n /* istanbul ignore next */\n return phoneNumber;\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function , @typescript-eslint/no-unused-vars\n #onChange = (_: string | undefined) => {};\n\n // istanbul ignore next\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n #onTouched = () => {};\n\n // istanbul ignore next\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n #validatorChange = () => {};\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { SkyI18nModule } from '@skyux/i18n';\nimport { SkyIconModule } from '@skyux/indicators';\nimport { SkyCountryFieldModule } from '@skyux/lookup';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { SkyPhoneFieldResourcesModule } from '../shared/sky-phone-field-resources.module';\n\nimport { SkyPhoneFieldInputDirective } from './phone-field-input.directive';\nimport { SkyPhoneFieldComponent } from './phone-field.component';\n\n@NgModule({\n declarations: [SkyPhoneFieldComponent, SkyPhoneFieldInputDirective],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n SkyCountryFieldModule,\n SkyI18nModule,\n SkyIconModule,\n SkyPhoneFieldResourcesModule,\n SkyThemeModule,\n ],\n exports: [SkyPhoneFieldComponent, SkyPhoneFieldInputDirective],\n})\nexport class SkyPhoneFieldModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2.SkyPhoneFieldAdapterService","i8","i1.SkyPhoneFieldAdapterService","i2.SkyPhoneFieldComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skyux-phone-field.mjs","sources":["../../../../../libs/components/phone-field/src/lib/modules/shared/sky-phone-field-resources.module.ts","../../../../../libs/components/phone-field/src/lib/modules/phone-field/phone-field-adapter.service.ts","../../../../../libs/components/phone-field/src/lib/modules/phone-field/phone-field.component.ts","../../../../../libs/components/phone-field/src/lib/modules/phone-field/phone-field.component.html","../../../../../libs/components/phone-field/src/lib/modules/phone-field/phone-field-input.directive.ts","../../../../../libs/components/phone-field/src/lib/modules/phone-field/phone-field.module.ts","../../../../../libs/components/phone-field/src/skyux-phone-field.ts"],"sourcesContent":["/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-phone-field' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport {\n SKY_LIB_RESOURCES_PROVIDERS,\n SkyAppLocaleInfo,\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesProvider,\n getLibStringForLocale,\n} from '@skyux/i18n';\n\nconst RESOURCES: { [locale: string]: SkyLibResources } = {\n 'EN-US': {\n skyux_phone_field_default_label: { message: 'Phone number' },\n skyux_phone_field_country_search_dismiss: {\n message: 'Dismiss country search',\n },\n skyux_phone_field_country_search_label: {\n message: 'Dismiss country search',\n },\n skyux_phone_field_country_search_placeholder: {\n message: 'Search for a country',\n },\n skyux_phone_field_country_select_label: { message: 'Choose country.' },\n skyux_phone_field_country_selected_label: {\n message: '{0} is currently selected.',\n },\n },\n};\n\nexport class SkyPhoneFieldResourcesProvider implements SkyLibResourcesProvider {\n public getString(\n localeInfo: SkyAppLocaleInfo,\n name: string\n ): string | undefined {\n return getLibStringForLocale(RESOURCES, localeInfo.locale, name);\n }\n}\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n providers: [\n {\n provide: SKY_LIB_RESOURCES_PROVIDERS,\n useClass: SkyPhoneFieldResourcesProvider,\n multi: true,\n },\n ],\n})\nexport class SkyPhoneFieldResourcesModule {}\n","import { ElementRef, Injectable, OnDestroy, Renderer2 } from '@angular/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n/**\n * Service for interacting with the DOM elements of the phone field.\n * @internal\n */\n@Injectable()\nexport class SkyPhoneFieldAdapterService implements OnDestroy {\n #ngUnsubscribe = new Subject<void>();\n\n #renderer: Renderer2;\n #resourcesService: SkyLibResourcesService;\n\n constructor(renderer: Renderer2, resourcesService: SkyLibResourcesService) {\n this.#renderer = renderer;\n this.#resourcesService = resourcesService;\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n public addElementClass(elementRef: ElementRef, className: string): void {\n this.#renderer.addClass(elementRef.nativeElement, className);\n }\n\n public setElementDisabledState(\n elementRef: ElementRef,\n disabled: boolean\n ): void {\n this.#renderer.setProperty(elementRef.nativeElement, 'disabled', disabled);\n }\n\n public setElementPlaceholder(\n elementRef: ElementRef,\n placeholder: string\n ): void {\n this.#renderer.setAttribute(\n elementRef.nativeElement,\n 'placeholder',\n placeholder\n );\n }\n\n public setElementType(elementRef: ElementRef): void {\n this.#renderer.setAttribute(elementRef.nativeElement, 'type', 'tel');\n }\n\n public setElementValue(elementRef: ElementRef, value: string): void {\n this.#renderer.setProperty(elementRef.nativeElement, 'value', value);\n }\n\n public setAriaLabel(element: ElementRef): void {\n /* Sanity check */\n /* istanbul ignore else */\n if (!element.nativeElement.getAttribute('aria-label')) {\n this.#resourcesService\n .getString('skyux_phone_field_default_label')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((value: string) => {\n this.#renderer.setAttribute(\n element.nativeElement,\n 'aria-label',\n value\n );\n });\n }\n }\n\n public focusCountrySearchElement(el: Element): void {\n const input: HTMLElement | null = el.querySelector('textarea');\n input?.focus();\n }\n\n public focusPhoneInput(el: Element): void {\n const input: HTMLElement | null = el.querySelector(\n '.sky-phone-field-container input'\n );\n input?.focus();\n }\n}\n","import {\n AnimationEvent,\n animate,\n style,\n transition,\n trigger,\n} from '@angular/animations';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n SkipSelf,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\nimport { SkyInputBoxHostService } from '@skyux/forms';\nimport {\n SKY_COUNTRY_FIELD_CONTEXT,\n SkyCountryFieldCountry,\n} from '@skyux/lookup';\nimport { SkyThemeService } from '@skyux/theme';\n\nimport {\n PhoneNumberFormat,\n PhoneNumberType,\n PhoneNumberUtil,\n} from 'google-libphonenumber';\nimport 'intl-tel-input';\n\nimport { SkyPhoneFieldAdapterService } from './phone-field-adapter.service';\nimport { SkyPhoneFieldCountry } from './types/country';\nimport { SkyPhoneFieldNumberReturnFormat } from './types/number-return-format';\n\n// NOTE: The no-op animation is here in order to block the input's \"fade in\" animation\n// from firing on initial load. For more information on this technique you can see\n// https://www.bennadel.com/blog/3417-using-no-op-transitions-to-prevent-animation-during-the-initial-render-of-ngfor-in-angular-5-2-6.htm\n@Component({\n selector: 'sky-phone-field',\n templateUrl: './phone-field.component.html',\n styleUrls: ['./phone-field.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n SkyPhoneFieldAdapterService,\n // Prevents the embedded country field component from changing its behavior based on\n // being inside an input box. The phone field itself will handle the required changes\n // for input box.\n {\n provide: SkyInputBoxHostService,\n useValue: undefined,\n },\n {\n provide: SKY_COUNTRY_FIELD_CONTEXT,\n useValue: { showPlaceholderText: true },\n },\n ],\n animations: [\n trigger('blockAnimationOnLoad', [transition(':enter', [])]),\n trigger('countrySearchAnimation', [\n transition('void => open', [\n style({\n opacity: 0,\n width: 0,\n }),\n animate(\n '200ms ease-in',\n style({\n opacity: 1,\n width: '*',\n })\n ),\n ]),\n transition('open => void', [\n animate(\n '200ms ease-in',\n style({\n opacity: 0,\n width: 0,\n })\n ),\n ]),\n transition('void => open-modern', [\n style({\n opacity: 0,\n }),\n animate(\n '200ms ease-in',\n style({\n opacity: 1,\n })\n ),\n ]),\n transition('open-modern => void', [\n animate(\n '200ms ease-in',\n style({\n opacity: 0,\n })\n ),\n ]),\n ]),\n trigger('phoneInputAnimation', [\n transition('void => open', [\n style({\n opacity: 0,\n }),\n animate(\n '200ms ease-in',\n style({\n opacity: 1,\n })\n ),\n ]),\n transition('open => void', [\n animate(\n '200ms ease-in',\n style({\n opacity: 0,\n })\n ),\n ]),\n ]),\n ],\n})\nexport class SkyPhoneFieldComponent implements OnDestroy, OnInit {\n /**\n * Whether phone number extensions are allowed.\n * @default true\n */\n @Input()\n public set allowExtensions(value: boolean | undefined) {\n this.#_allowExtensions = value !== false;\n }\n\n public get allowExtensions(): boolean {\n return this.#_allowExtensions;\n }\n\n #_allowExtensions = true;\n\n /**\n * The\n * [International Organization for Standardization Alpha 2](https://www.nationsonline.org/oneworld/country_code_list.htm)\n * country code for the default country. The country selector button displays a flag\n * icon for this default country until users select a different country.\n * @default \"us\"\n */\n @Input()\n public set defaultCountry(value: string | undefined) {\n if (value && value !== this.#_defaultCountry) {\n this.#_defaultCountry = value.toLowerCase();\n\n this.#defaultCountryData = this.countries.find(\n (country) => country.iso2 === this.#_defaultCountry\n );\n }\n }\n\n public get defaultCountry(): string | undefined {\n return this.#_defaultCountry;\n }\n\n /**\n * The format for validated phone numbers.\n * Options include: `\"default\"`, `\"international\"`, and `\"national\"`.\n * @default \"default\"\n */\n @Input()\n public get returnFormat(): SkyPhoneFieldNumberReturnFormat {\n return this.#_returnFormat;\n }\n\n public set returnFormat(value: SkyPhoneFieldNumberReturnFormat | undefined) {\n this.#_returnFormat = value || 'default';\n }\n\n #_returnFormat: SkyPhoneFieldNumberReturnFormat = 'default';\n\n /**\n * The [International Organization for Standardization Alpha 2](https://www.nationsonline.org/oneworld/country_code_list.htm)\n * country codes for the countries that users can select. By default, all countries are available.\n */\n @Input()\n public supportedCountryISOs: string[] | undefined;\n\n /**\n * Emits a `SkyPhoneFieldCountry` object when the selected country in the country search\n * input changes.\n */\n\n @Output()\n public selectedCountryChange = new EventEmitter<SkyPhoneFieldCountry>();\n\n public countries: SkyPhoneFieldCountry[];\n\n public countrySelectDisabled = false;\n\n public countrySearchShown = false;\n\n public phoneInputShown = true;\n\n public countrySearchForm: FormGroup<{\n countrySearch: FormControl<SkyCountryFieldCountry | undefined>;\n }>;\n\n /**\n * The currently selected country to validate against.\n */\n @Input()\n public set selectedCountry(newCountry: SkyPhoneFieldCountry | undefined) {\n if (\n newCountry &&\n (!this.#_selectedCountry ||\n this.#_selectedCountry.iso2 !== newCountry.iso2)\n ) {\n this.#_selectedCountry = this.countries.find(\n (country) => country.iso2 === newCountry.iso2\n );\n\n if (this.#_selectedCountry && !this.#_selectedCountry.exampleNumber) {\n const numberObj = this.#phoneUtils.getExampleNumberForType(\n newCountry.iso2,\n PhoneNumberType.FIXED_LINE\n );\n this.#_selectedCountry.exampleNumber = this.#phoneUtils.format(\n numberObj,\n PhoneNumberFormat.NATIONAL\n );\n }\n\n this.selectedCountryChange.emit(this.#_selectedCountry);\n }\n }\n\n public get selectedCountry(): SkyPhoneFieldCountry | undefined {\n return this.#_selectedCountry;\n }\n\n @ViewChild('inputTemplateRef', {\n read: TemplateRef,\n static: true,\n })\n public inputTemplateRef: TemplateRef<unknown> | undefined;\n\n @ViewChild('countryBtnTemplateRef', {\n read: TemplateRef,\n static: true,\n })\n public countryBtnTemplateRef: TemplateRef<unknown> | undefined;\n\n @ViewChild('buttonsInsetTemplateRef', {\n read: TemplateRef,\n static: true,\n })\n public buttonsInsetTemplateRef: TemplateRef<unknown> | undefined;\n\n #defaultCountryData: SkyPhoneFieldCountry | undefined;\n\n #phoneInputAnimationTriggered = false;\n\n #phoneUtils = PhoneNumberUtil.getInstance();\n\n #longestDialCodeLength = 0;\n\n #_defaultCountry: string | undefined;\n\n #_selectedCountry: SkyPhoneFieldCountry | undefined;\n\n #countrySearchFormControl: FormControl<SkyCountryFieldCountry | undefined> =\n new FormControl();\n\n #formBuilder: FormBuilder;\n #adapterService: SkyPhoneFieldAdapterService;\n #changeDetector: ChangeDetectorRef;\n\n constructor(\n formBuilder: FormBuilder,\n adapterService: SkyPhoneFieldAdapterService,\n changeDetector: ChangeDetectorRef,\n @Optional() public themeSvc?: SkyThemeService,\n @Optional() @SkipSelf() public inputBoxHostSvc?: SkyInputBoxHostService\n ) {\n this.#formBuilder = formBuilder;\n this.#adapterService = adapterService;\n this.#changeDetector = changeDetector;\n /**\n * The json functions here ensures that we get a copy of the array and not the global original.\n * This ensures that multiple instances of the component don't overwrite the original data.\n *\n * We must type the window object as any here as the intl-tel-input library adds its object\n * to the main window object.\n */\n this.countries = JSON.parse(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n JSON.stringify((window as any).intlTelInputGlobals.getCountryData())\n );\n for (const country of this.countries) {\n country.dialCode = '+' + country.dialCode;\n\n if (country.dialCode.length > this.#longestDialCodeLength) {\n this.#longestDialCodeLength = country.dialCode.length;\n }\n }\n\n this.countrySearchForm = this.#formBuilder.group({\n countrySearch: this.#countrySearchFormControl,\n });\n }\n\n public ngOnInit(): void {\n // The timeout here is needed to avoid a change before checked error when a user specifies\n // a selected country on initialization of the component.\n setTimeout(() => {\n if (this.inputBoxHostSvc && this.inputTemplateRef) {\n this.inputBoxHostSvc.populate({\n inputTemplate: this.inputTemplateRef,\n buttonsInsetTemplate: this.buttonsInsetTemplateRef,\n buttonsLeftTemplate: this.countryBtnTemplateRef,\n });\n }\n\n if (!this.defaultCountry) {\n this.defaultCountry = 'us';\n }\n\n if (!this.selectedCountry) {\n this.selectedCountry = this.#defaultCountryData;\n }\n this.#changeDetector.markForCheck();\n }, 0);\n\n this.#countrySearchFormControl.valueChanges.subscribe(\n (newValue?: SkyCountryFieldCountry) => {\n if (newValue?.iso2 !== this.selectedCountry?.iso2) {\n this.selectedCountry = newValue;\n }\n }\n );\n }\n\n public ngOnDestroy(): void {\n this.selectedCountryChange.complete();\n }\n\n /**\n * Sets the country to validate against based on the county's iso2 code.\n * @param countryCode The International Organization for Standardization's two-letter code\n * for the default country.\n * @internal\n */\n public onCountrySelected(newCountry: SkyCountryFieldCountry): void {\n if (newCountry) {\n this.selectedCountry = this.countries.find(\n (countryInfo) => countryInfo.iso2 === newCountry.iso2\n );\n this.toggleCountrySearch(false);\n }\n }\n\n public toggleCountrySearch(showSearch: boolean): void {\n this.#phoneInputAnimationTriggered = true;\n\n if (showSearch) {\n this.phoneInputShown = false;\n } else {\n this.countrySearchShown = false;\n\n this.#countrySearchFormControl.setValue(undefined);\n }\n\n this.#changeDetector.markForCheck();\n }\n\n public countrySearchAnimationEnd(e: AnimationEvent): void {\n if (!this.countrySearchShown) {\n this.phoneInputShown = true;\n } else {\n this.#adapterService.focusCountrySearchElement(e.element);\n }\n\n this.#changeDetector.markForCheck();\n }\n\n public phoneInputAnimationEnd(e: AnimationEvent): void {\n if (!this.phoneInputShown) {\n this.countrySearchShown = true;\n } else {\n if (this.#phoneInputAnimationTriggered) {\n this.#adapterService.focusPhoneInput(e.element);\n this.#phoneInputAnimationTriggered = false;\n }\n }\n\n this.#changeDetector.markForCheck();\n }\n\n public setCountryByDialCode(phoneNumber: string): boolean {\n if (!phoneNumber || !phoneNumber.startsWith('+')) {\n return false;\n }\n\n let newCountry: SkyPhoneFieldCountry | undefined;\n\n for (let i = 1; i < this.#longestDialCodeLength + 1; i++) {\n const dialCode = phoneNumber.substring(0, i);\n\n if (this.#defaultCountryData?.dialCode === dialCode) {\n newCountry = this.#defaultCountryData;\n } else {\n let foundCountry = this.countries.find(\n (country) => country.dialCode === dialCode && country.priority === 0\n );\n\n if (foundCountry) {\n // Ensure that the country that was found is one of the supported countries\n if (\n this.supportedCountryISOs &&\n this.supportedCountryISOs.findIndex(\n (isoCode) =>\n isoCode.toUpperCase() === foundCountry?.iso2.toUpperCase()\n ) < 0\n ) {\n foundCountry = undefined;\n }\n\n if (foundCountry !== this.selectedCountry) {\n newCountry = foundCountry;\n }\n }\n }\n }\n\n if (newCountry) {\n this.selectedCountry = newCountry;\n this.#changeDetector.markForCheck();\n return true;\n }\n\n return false;\n }\n}\n","<ng-container *ngIf=\"!inputBoxHostSvc\">\n <div class=\"sky-input-group sky-phone-field\" [@blockAnimationOnLoad]>\n <ng-container *ngTemplateOutlet=\"countryBtnTemplateRef\"></ng-container>\n <ng-container *ngTemplateOutlet=\"inputTemplateRef\"></ng-container>\n <ng-container *ngTemplateOutlet=\"buttonsInsetTemplateRef\"></ng-container>\n </div>\n</ng-container>\n\n<ng-template #countryBtnTemplateRef>\n <div\n class=\"sky-input-group-btn sky-phone-field-country-btn\"\n [attr.data-sky-test-iso2]=\"selectedCountry?.iso2\"\n [attr.data-sky-test-name]=\"selectedCountry?.name\"\n >\n <button\n aria-live=\"polite\"\n class=\"sky-btn sky-btn-default\"\n type=\"button\"\n [attr.title]=\"\n ('skyux_phone_field_country_select_label' | skyLibResources) +\n ' ' +\n ('skyux_phone_field_country_selected_label'\n | skyLibResources: selectedCountry?.name)\n \"\n [attr.aria-label]=\"\n ('skyux_phone_field_country_select_label' | skyLibResources) +\n ' ' +\n ('skyux_phone_field_country_selected_label'\n | skyLibResources: selectedCountry?.name)\n \"\n [disabled]=\"countrySelectDisabled\"\n (click)=\"toggleCountrySearch(true)\"\n >\n <div\n class=\"sky-phone-field-flag iti__flag\"\n [ngClass]=\"'iti__' + selectedCountry?.iso2\"\n ></div>\n </button>\n </div>\n</ng-template>\n\n<ng-template #inputTemplateRef>\n <span\n *ngIf=\"phoneInputShown\"\n class=\"sky-phone-field-container\"\n [@phoneInputAnimation]=\"phoneInputShown ? 'open' : 'closed'\"\n (@phoneInputAnimation.done)=\"phoneInputAnimationEnd($event)\"\n >\n <ng-content></ng-content>\n </span>\n <span\n *ngIf=\"countrySearchShown\"\n class=\"sky-phone-field-container\"\n [@countrySearchAnimation]=\"\n 'open' +\n ((themeSvc?.settingsChange | async)?.currentSettings?.theme?.name ===\n 'modern'\n ? '-modern'\n : '')\n \"\n (@countrySearchAnimation.done)=\"countrySearchAnimationEnd($event)\"\n >\n <div class=\"sky-phone-field-country-search\" [formGroup]=\"countrySearchForm\">\n <sky-country-field\n formControlName=\"countrySearch\"\n [defaultCountry]=\"defaultCountry\"\n [hideSelectedCountryFlag]=\"true\"\n [includePhoneInfo]=\"true\"\n [supportedCountryISOs]=\"supportedCountryISOs\"\n (selectedCountryChange)=\"onCountrySelected($event)\"\n >\n </sky-country-field>\n </div>\n </span>\n</ng-template>\n\n<ng-template #buttonsInsetTemplateRef>\n <div\n *ngIf=\"countrySearchShown\"\n class=\"sky-input-group-btn sky-input-box-btn-inset sky-search-item-dismiss\"\n >\n <button\n class=\"sky-btn sky-phone-field-search-btn-dismiss\"\n type=\"button\"\n [attr.title]=\"\n 'skyux_phone_field_country_search_dismiss' | skyLibResources\n \"\n [ngClass]=\"{\n 'sky-btn-default':\n (themeSvc?.settingsChange | async)?.currentSettings?.theme?.name ===\n 'modern'\n }\"\n (click)=\"toggleCountrySearch(false)\"\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"chevron-circle-left\" size=\"lg\">\n </sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"double-chevron-left\"\n iconType=\"skyux\"\n size=\"2x\"\n >\n </sky-icon>\n </button>\n </div>\n</ng-template>\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Directive,\n ElementRef,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n forwardRef,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\n\nimport { PhoneNumberFormat, PhoneNumberUtil } from 'google-libphonenumber';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\n\nimport { SkyPhoneFieldAdapterService } from './phone-field-adapter.service';\nimport { SkyPhoneFieldComponent } from './phone-field.component';\nimport { SkyPhoneFieldCountry } from './types/country';\n\nconst SKY_PHONE_FIELD_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SkyPhoneFieldInputDirective),\n multi: true,\n};\n\nconst SKY_PHONE_FIELD_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SkyPhoneFieldInputDirective),\n multi: true,\n};\n\n/**\n * Creates a button, search input, and text input for entering and validating\n * international phone numbers. Place this attribute on an `input` element, and wrap\n * that element in a `sky-phone-field` component. By default, the country selector\n * button displays a flag icon for the default country, and the phone number input\n * displays a sample of the correct phone number format. When users select the country\n * selector button, they expose the country search input, which is\n * [an autocomplete input](https://developer.blackbaud.com/skyux/components/autocomplete)\n * that allows them to select different countries. When users enter `+` followed by an\n * international dial code in the phone number input, the country automatically switches\n * to the country associated with the dial code.\n * @required\n */\n@Directive({\n selector: '[skyPhoneFieldInput]',\n providers: [SKY_PHONE_FIELD_VALUE_ACCESSOR, SKY_PHONE_FIELD_VALIDATOR],\n})\nexport class SkyPhoneFieldInputDirective\n implements OnInit, OnDestroy, AfterViewInit, ControlValueAccessor, Validator\n{\n /**\n * Whether to disable the phone field.\n * @default false\n */\n @Input()\n public set disabled(value: boolean | undefined) {\n const coercedValue = coerceBooleanProperty(value);\n if (this.#phoneFieldComponent) {\n this.#phoneFieldComponent.countrySelectDisabled = coercedValue;\n this.#adapterService?.setElementDisabledState(this.#elRef, coercedValue);\n }\n this.#_disabled = coercedValue;\n }\n\n public get disabled(): boolean {\n return this.#_disabled;\n }\n\n /**\n * Whether to prevent validation on the phone number input. For validation,\n * phone numbers are driven through the `ngModel` attribute that you specify on an\n * `input` element or on a `FormControl` in a reactive form. To prevent validation,\n * set this property to `true`.\n * @default false\n */\n @Input()\n public skyPhoneFieldNoValidate: boolean | undefined = false;\n\n set #modelValue(value: string | undefined) {\n const valueOrDefault = value ?? '';\n this.#_modelValue = valueOrDefault;\n this.#adapterService?.setElementValue(this.#elRef, valueOrDefault);\n\n if (valueOrDefault) {\n const formattedValue = this.#formatNumber(valueOrDefault.toString());\n\n this.#onChange(formattedValue);\n } else {\n this.#onChange(valueOrDefault);\n }\n this.#validatorChange();\n }\n\n get #modelValue(): string {\n return this.#_modelValue;\n }\n\n #control: AbstractControl | undefined;\n\n #textChanges: BehaviorSubject<string> | undefined;\n\n #ngUnsubscribe = new Subject<void>();\n\n #phoneUtils = PhoneNumberUtil.getInstance();\n\n #_disabled!: boolean;\n\n #_modelValue = '';\n\n #changeDetector: ChangeDetectorRef;\n #elRef: ElementRef;\n\n #adapterService: SkyPhoneFieldAdapterService | undefined;\n #phoneFieldComponent: SkyPhoneFieldComponent | undefined;\n\n public constructor(\n changeDetector: ChangeDetectorRef,\n elRef: ElementRef,\n @Optional() adapterService?: SkyPhoneFieldAdapterService,\n @Optional() phoneFieldComponent?: SkyPhoneFieldComponent\n ) {\n this.#changeDetector = changeDetector;\n this.#elRef = elRef;\n this.#adapterService = adapterService;\n this.#phoneFieldComponent = phoneFieldComponent;\n }\n\n public ngOnInit(): void {\n if (!this.#phoneFieldComponent) {\n throw new Error(\n 'You must wrap the `skyPhoneFieldInput` directive within a ' +\n '`<sky-phone-field>` component!'\n );\n }\n\n this.#adapterService?.setElementType(this.#elRef);\n this.#adapterService?.addElementClass(this.#elRef, 'sky-form-control');\n if (this.#phoneFieldComponent?.selectedCountry?.exampleNumber) {\n this.#adapterService?.setElementPlaceholder(\n this.#elRef,\n this.#phoneFieldComponent.selectedCountry.exampleNumber\n );\n }\n\n this.#adapterService?.setAriaLabel(this.#elRef);\n }\n\n public ngAfterViewInit(): void {\n this.#phoneFieldComponent?.selectedCountryChange\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((country: SkyPhoneFieldCountry) => {\n this.#modelValue = this.#elRef.nativeElement.value;\n if (country?.exampleNumber) {\n this.#adapterService?.setElementPlaceholder(\n this.#elRef,\n country.exampleNumber\n );\n }\n });\n\n // This is needed to address a bug in Angular 4, where the value is not changed on the view.\n // See: https://github.com/angular/angular/issues/13792\n /* istanbul ignore else */\n if (this.#control && this.#modelValue) {\n this.#control.setValue(this.#modelValue, { emitEvent: false });\n this.#changeDetector.detectChanges();\n }\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n /**\n * Writes the new value for reactive forms on change events on the input element\n * @param event The change event that was received\n */\n @HostListener('change', ['$event'])\n public onInputChange(event: any): void {\n if (!this.#textChanges) {\n this.#setupTextChangeSubscription(event.target.value);\n } else {\n this.#textChanges.next(event.target.value);\n }\n }\n\n /**\n * Marks reactive form controls as touched on input blur events\n */\n @HostListener('blur')\n public onInputBlur(): void {\n this.#onTouched();\n }\n\n @HostListener('input', ['$event'])\n public onInputTyping(event: any): void {\n if (!this.#textChanges) {\n this.#setupTextChangeSubscription(event.target.value);\n } else {\n this.#textChanges.next(event.target.value);\n }\n }\n\n /**\n * Writes the new value for reactive forms\n * @param value The new value for the input\n */\n public writeValue(value: string): void {\n this.#phoneFieldComponent?.setCountryByDialCode(value);\n\n this.#modelValue = value;\n }\n\n public registerOnChange(fn: (value: string | undefined) => void): void {\n this.#onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.#onTouched = fn;\n }\n\n public registerOnValidatorChange(fn: () => void): void {\n this.#validatorChange = fn;\n }\n\n /**\n * Sets the disabled state on the input\n * @param isDisabled the new value of the input's disabled state\n */\n public setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n /**\n * Validate's the form control's current value\n * @param control the form control for the input\n */\n public validate(control: AbstractControl): ValidationErrors | null {\n if (!this.#control) {\n this.#control = control;\n }\n\n if (this.skyPhoneFieldNoValidate) {\n return null;\n }\n\n const value = control.value;\n\n if (!value) {\n return null;\n }\n\n if (\n this.#phoneFieldComponent?.selectedCountry &&\n !this.#validateNumber(value)\n ) {\n if (!this.#textChanges) {\n // Mark the invalid control as touched so that the input's invalid CSS styles appear.\n // (This is only required when the invalid value is set by the FormControl constructor.)\n // We don't do this if the input is the active element so that we don't show validation\n // errors unless it is invalid on initialization or the input has been blurred.\n control.markAsTouched();\n }\n\n return {\n skyPhoneField: {\n invalid: value,\n },\n };\n }\n return null;\n }\n\n #setupTextChangeSubscription(text: string): void {\n this.#textChanges = new BehaviorSubject(text);\n\n this.#textChanges\n .pipe(debounceTime(500), takeUntil(this.#ngUnsubscribe))\n .subscribe((newValue) => {\n this.writeValue(newValue);\n });\n }\n\n #validateNumber(phoneNumber: string): boolean {\n try {\n const numberObj = this.#phoneUtils.parseAndKeepRawInput(\n phoneNumber,\n this.#phoneFieldComponent?.selectedCountry?.iso2\n );\n\n if (\n this.#phoneFieldComponent &&\n !this.#phoneFieldComponent.allowExtensions &&\n numberObj.getExtension()\n ) {\n return false;\n }\n\n return this.#phoneUtils.isValidNumber(numberObj);\n } catch (e) {\n return false;\n }\n }\n\n /**\n * Format's the given phone number based on the currently selected country.\n * @param phoneNumber The number to format\n */\n #formatNumber(phoneNumber: string): string {\n try {\n const numberObj = this.#phoneUtils.parseAndKeepRawInput(\n phoneNumber,\n this.#phoneFieldComponent?.selectedCountry?.iso2\n );\n if (this.#phoneUtils.isPossibleNumber(numberObj)) {\n switch (this.#phoneFieldComponent?.returnFormat) {\n case 'international':\n return this.#phoneUtils.format(\n numberObj,\n PhoneNumberFormat.INTERNATIONAL\n );\n case 'national':\n return this.#phoneUtils.format(\n numberObj,\n PhoneNumberFormat.NATIONAL\n );\n case 'default':\n default:\n if (\n this.#phoneFieldComponent?.selectedCountry?.iso2 !==\n this.#phoneFieldComponent?.defaultCountry\n ) {\n return this.#phoneUtils.format(\n numberObj,\n PhoneNumberFormat.INTERNATIONAL\n );\n } else {\n return this.#phoneUtils.format(\n numberObj,\n PhoneNumberFormat.NATIONAL\n );\n }\n }\n } else {\n return phoneNumber;\n }\n } catch (e) {\n /* sanity check */\n /* istanbul ignore next */\n return phoneNumber;\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function , @typescript-eslint/no-unused-vars\n #onChange = (_: string | undefined) => {};\n\n // istanbul ignore next\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n #onTouched = () => {};\n\n // istanbul ignore next\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n #validatorChange = () => {};\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { SkyI18nModule } from '@skyux/i18n';\nimport { SkyIconModule } from '@skyux/indicators';\nimport { SkyCountryFieldModule } from '@skyux/lookup';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { SkyPhoneFieldResourcesModule } from '../shared/sky-phone-field-resources.module';\n\nimport { SkyPhoneFieldInputDirective } from './phone-field-input.directive';\nimport { SkyPhoneFieldComponent } from './phone-field.component';\n\n@NgModule({\n declarations: [SkyPhoneFieldComponent, SkyPhoneFieldInputDirective],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n SkyCountryFieldModule,\n SkyI18nModule,\n SkyIconModule,\n SkyPhoneFieldResourcesModule,\n SkyThemeModule,\n ],\n exports: [SkyPhoneFieldComponent, SkyPhoneFieldInputDirective],\n})\nexport class SkyPhoneFieldModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2.SkyPhoneFieldAdapterService","i8","i1.SkyPhoneFieldAdapterService","i2.SkyPhoneFieldComponent"],"mappings":"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"}
|
|
@@ -324,15 +324,20 @@ class SkyPhoneFieldComponent {
|
|
|
324
324
|
let newCountry;
|
|
325
325
|
for (let i = 1; i < __classPrivateFieldGet(this, _SkyPhoneFieldComponent_longestDialCodeLength, "f") + 1; i++) {
|
|
326
326
|
const dialCode = phoneNumber.substring(0, i);
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
327
|
+
if (__classPrivateFieldGet(this, _SkyPhoneFieldComponent_defaultCountryData, "f")?.dialCode === dialCode) {
|
|
328
|
+
newCountry = __classPrivateFieldGet(this, _SkyPhoneFieldComponent_defaultCountryData, "f");
|
|
329
|
+
}
|
|
330
|
+
else {
|
|
331
|
+
let foundCountry = this.countries.find((country) => country.dialCode === dialCode && country.priority === 0);
|
|
332
|
+
if (foundCountry) {
|
|
333
|
+
// Ensure that the country that was found is one of the supported countries
|
|
334
|
+
if (this.supportedCountryISOs &&
|
|
335
|
+
this.supportedCountryISOs.findIndex((isoCode) => isoCode.toUpperCase() === foundCountry?.iso2.toUpperCase()) < 0) {
|
|
336
|
+
foundCountry = undefined;
|
|
337
|
+
}
|
|
338
|
+
if (foundCountry !== this.selectedCountry) {
|
|
339
|
+
newCountry = foundCountry;
|
|
340
|
+
}
|
|
336
341
|
}
|
|
337
342
|
}
|
|
338
343
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skyux-phone-field.mjs","sources":["../../../../../libs/components/phone-field/src/lib/modules/shared/sky-phone-field-resources.module.ts","../../../../../libs/components/phone-field/src/lib/modules/phone-field/phone-field-adapter.service.ts","../../../../../libs/components/phone-field/src/lib/modules/phone-field/phone-field.component.ts","../../../../../libs/components/phone-field/src/lib/modules/phone-field/phone-field.component.html","../../../../../libs/components/phone-field/src/lib/modules/phone-field/phone-field-input.directive.ts","../../../../../libs/components/phone-field/src/lib/modules/phone-field/phone-field.module.ts","../../../../../libs/components/phone-field/src/skyux-phone-field.ts"],"sourcesContent":["/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-phone-field' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport {\n SKY_LIB_RESOURCES_PROVIDERS,\n SkyAppLocaleInfo,\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesProvider,\n getLibStringForLocale,\n} from '@skyux/i18n';\n\nconst RESOURCES: { [locale: string]: SkyLibResources } = {\n 'EN-US': {\n skyux_phone_field_default_label: { message: 'Phone number' },\n skyux_phone_field_country_search_dismiss: {\n message: 'Dismiss country search',\n },\n skyux_phone_field_country_search_label: {\n message: 'Dismiss country search',\n },\n skyux_phone_field_country_search_placeholder: {\n message: 'Search for a country',\n },\n skyux_phone_field_country_select_label: { message: 'Choose country.' },\n skyux_phone_field_country_selected_label: {\n message: '{0} is currently selected.',\n },\n },\n};\n\nexport class SkyPhoneFieldResourcesProvider implements SkyLibResourcesProvider {\n public getString(\n localeInfo: SkyAppLocaleInfo,\n name: string\n ): string | undefined {\n return getLibStringForLocale(RESOURCES, localeInfo.locale, name);\n }\n}\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n providers: [\n {\n provide: SKY_LIB_RESOURCES_PROVIDERS,\n useClass: SkyPhoneFieldResourcesProvider,\n multi: true,\n },\n ],\n})\nexport class SkyPhoneFieldResourcesModule {}\n","import { ElementRef, Injectable, OnDestroy, Renderer2 } from '@angular/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n/**\n * Service for interacting with the DOM elements of the phone field.\n * @internal\n */\n@Injectable()\nexport class SkyPhoneFieldAdapterService implements OnDestroy {\n #ngUnsubscribe = new Subject<void>();\n\n #renderer: Renderer2;\n #resourcesService: SkyLibResourcesService;\n\n constructor(renderer: Renderer2, resourcesService: SkyLibResourcesService) {\n this.#renderer = renderer;\n this.#resourcesService = resourcesService;\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n public addElementClass(elementRef: ElementRef, className: string): void {\n this.#renderer.addClass(elementRef.nativeElement, className);\n }\n\n public setElementDisabledState(\n elementRef: ElementRef,\n disabled: boolean\n ): void {\n this.#renderer.setProperty(elementRef.nativeElement, 'disabled', disabled);\n }\n\n public setElementPlaceholder(\n elementRef: ElementRef,\n placeholder: string\n ): void {\n this.#renderer.setAttribute(\n elementRef.nativeElement,\n 'placeholder',\n placeholder\n );\n }\n\n public setElementType(elementRef: ElementRef): void {\n this.#renderer.setAttribute(elementRef.nativeElement, 'type', 'tel');\n }\n\n public setElementValue(elementRef: ElementRef, value: string): void {\n this.#renderer.setProperty(elementRef.nativeElement, 'value', value);\n }\n\n public setAriaLabel(element: ElementRef): void {\n /* Sanity check */\n /* istanbul ignore else */\n if (!element.nativeElement.getAttribute('aria-label')) {\n this.#resourcesService\n .getString('skyux_phone_field_default_label')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((value: string) => {\n this.#renderer.setAttribute(\n element.nativeElement,\n 'aria-label',\n value\n );\n });\n }\n }\n\n public focusCountrySearchElement(el: Element): void {\n const input: HTMLElement | null = el.querySelector('textarea');\n input?.focus();\n }\n\n public focusPhoneInput(el: Element): void {\n const input: HTMLElement | null = el.querySelector(\n '.sky-phone-field-container input'\n );\n input?.focus();\n }\n}\n","import {\n AnimationEvent,\n animate,\n style,\n transition,\n trigger,\n} from '@angular/animations';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n SkipSelf,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\nimport { SkyInputBoxHostService } from '@skyux/forms';\nimport {\n SKY_COUNTRY_FIELD_CONTEXT,\n SkyCountryFieldCountry,\n} from '@skyux/lookup';\nimport { SkyThemeService } from '@skyux/theme';\n\nimport {\n PhoneNumberFormat,\n PhoneNumberType,\n PhoneNumberUtil,\n} from 'google-libphonenumber';\nimport 'intl-tel-input';\n\nimport { SkyPhoneFieldAdapterService } from './phone-field-adapter.service';\nimport { SkyPhoneFieldCountry } from './types/country';\nimport { SkyPhoneFieldNumberReturnFormat } from './types/number-return-format';\n\n// NOTE: The no-op animation is here in order to block the input's \"fade in\" animation\n// from firing on initial load. For more information on this technique you can see\n// https://www.bennadel.com/blog/3417-using-no-op-transitions-to-prevent-animation-during-the-initial-render-of-ngfor-in-angular-5-2-6.htm\n@Component({\n selector: 'sky-phone-field',\n templateUrl: './phone-field.component.html',\n styleUrls: ['./phone-field.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n SkyPhoneFieldAdapterService,\n // Prevents the embedded country field component from changing its behavior based on\n // being inside an input box. The phone field itself will handle the required changes\n // for input box.\n {\n provide: SkyInputBoxHostService,\n useValue: undefined,\n },\n {\n provide: SKY_COUNTRY_FIELD_CONTEXT,\n useValue: { showPlaceholderText: true },\n },\n ],\n animations: [\n trigger('blockAnimationOnLoad', [transition(':enter', [])]),\n trigger('countrySearchAnimation', [\n transition('void => open', [\n style({\n opacity: 0,\n width: 0,\n }),\n animate(\n '200ms ease-in',\n style({\n opacity: 1,\n width: '*',\n })\n ),\n ]),\n transition('open => void', [\n animate(\n '200ms ease-in',\n style({\n opacity: 0,\n width: 0,\n })\n ),\n ]),\n transition('void => open-modern', [\n style({\n opacity: 0,\n }),\n animate(\n '200ms ease-in',\n style({\n opacity: 1,\n })\n ),\n ]),\n transition('open-modern => void', [\n animate(\n '200ms ease-in',\n style({\n opacity: 0,\n })\n ),\n ]),\n ]),\n trigger('phoneInputAnimation', [\n transition('void => open', [\n style({\n opacity: 0,\n }),\n animate(\n '200ms ease-in',\n style({\n opacity: 1,\n })\n ),\n ]),\n transition('open => void', [\n animate(\n '200ms ease-in',\n style({\n opacity: 0,\n })\n ),\n ]),\n ]),\n ],\n})\nexport class SkyPhoneFieldComponent implements OnDestroy, OnInit {\n /**\n * Whether phone number extensions are allowed.\n * @default true\n */\n @Input()\n public set allowExtensions(value: boolean | undefined) {\n this.#_allowExtensions = value !== false;\n }\n\n public get allowExtensions(): boolean {\n return this.#_allowExtensions;\n }\n\n #_allowExtensions = true;\n\n /**\n * The\n * [International Organization for Standardization Alpha 2](https://www.nationsonline.org/oneworld/country_code_list.htm)\n * country code for the default country. The country selector button displays a flag\n * icon for this default country until users select a different country.\n * @default \"us\"\n */\n @Input()\n public set defaultCountry(value: string | undefined) {\n if (value && value !== this.#_defaultCountry) {\n this.#_defaultCountry = value.toLowerCase();\n\n this.#defaultCountryData = this.countries.find(\n (country) => country.iso2 === this.#_defaultCountry\n );\n }\n }\n\n public get defaultCountry(): string | undefined {\n return this.#_defaultCountry;\n }\n\n /**\n * The format for validated phone numbers.\n * Options include: `\"default\"`, `\"international\"`, and `\"national\"`.\n * @default \"default\"\n */\n @Input()\n public get returnFormat(): SkyPhoneFieldNumberReturnFormat {\n return this.#_returnFormat;\n }\n\n public set returnFormat(value: SkyPhoneFieldNumberReturnFormat | undefined) {\n this.#_returnFormat = value || 'default';\n }\n\n #_returnFormat: SkyPhoneFieldNumberReturnFormat = 'default';\n\n /**\n * The [International Organization for Standardization Alpha 2](https://www.nationsonline.org/oneworld/country_code_list.htm)\n * country codes for the countries that users can select. By default, all countries are available.\n */\n @Input()\n public supportedCountryISOs: string[] | undefined;\n\n /**\n * Emits a `SkyPhoneFieldCountry` object when the selected country in the country search\n * input changes.\n */\n\n @Output()\n public selectedCountryChange = new EventEmitter<SkyPhoneFieldCountry>();\n\n public countries: SkyPhoneFieldCountry[];\n\n public countrySelectDisabled = false;\n\n public countrySearchShown = false;\n\n public phoneInputShown = true;\n\n public countrySearchForm: FormGroup<{\n countrySearch: FormControl<SkyCountryFieldCountry | undefined>;\n }>;\n\n /**\n * The currently selected country to validate against.\n */\n @Input()\n public set selectedCountry(newCountry: SkyPhoneFieldCountry | undefined) {\n if (\n newCountry &&\n (!this.#_selectedCountry ||\n this.#_selectedCountry.iso2 !== newCountry.iso2)\n ) {\n this.#_selectedCountry = this.countries.find(\n (country) => country.iso2 === newCountry.iso2\n );\n\n if (this.#_selectedCountry && !this.#_selectedCountry.exampleNumber) {\n const numberObj = this.#phoneUtils.getExampleNumberForType(\n newCountry.iso2,\n PhoneNumberType.FIXED_LINE\n );\n this.#_selectedCountry.exampleNumber = this.#phoneUtils.format(\n numberObj,\n PhoneNumberFormat.NATIONAL\n );\n }\n\n this.selectedCountryChange.emit(this.#_selectedCountry);\n }\n }\n\n public get selectedCountry(): SkyPhoneFieldCountry | undefined {\n return this.#_selectedCountry;\n }\n\n @ViewChild('inputTemplateRef', {\n read: TemplateRef,\n static: true,\n })\n public inputTemplateRef: TemplateRef<unknown> | undefined;\n\n @ViewChild('countryBtnTemplateRef', {\n read: TemplateRef,\n static: true,\n })\n public countryBtnTemplateRef: TemplateRef<unknown> | undefined;\n\n @ViewChild('buttonsInsetTemplateRef', {\n read: TemplateRef,\n static: true,\n })\n public buttonsInsetTemplateRef: TemplateRef<unknown> | undefined;\n\n #defaultCountryData: SkyPhoneFieldCountry | undefined;\n\n #phoneInputAnimationTriggered = false;\n\n #phoneUtils = PhoneNumberUtil.getInstance();\n\n #longestDialCodeLength = 0;\n\n #_defaultCountry: string | undefined;\n\n #_selectedCountry: SkyPhoneFieldCountry | undefined;\n\n #countrySearchFormControl: FormControl<SkyCountryFieldCountry | undefined> =\n new FormControl();\n\n #formBuilder: FormBuilder;\n #adapterService: SkyPhoneFieldAdapterService;\n #changeDetector: ChangeDetectorRef;\n\n constructor(\n formBuilder: FormBuilder,\n adapterService: SkyPhoneFieldAdapterService,\n changeDetector: ChangeDetectorRef,\n @Optional() public themeSvc?: SkyThemeService,\n @Optional() @SkipSelf() public inputBoxHostSvc?: SkyInputBoxHostService\n ) {\n this.#formBuilder = formBuilder;\n this.#adapterService = adapterService;\n this.#changeDetector = changeDetector;\n /**\n * The json functions here ensures that we get a copy of the array and not the global original.\n * This ensures that multiple instances of the component don't overwrite the original data.\n *\n * We must type the window object as any here as the intl-tel-input library adds its object\n * to the main window object.\n */\n this.countries = JSON.parse(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n JSON.stringify((window as any).intlTelInputGlobals.getCountryData())\n );\n for (const country of this.countries) {\n country.dialCode = '+' + country.dialCode;\n\n if (country.dialCode.length > this.#longestDialCodeLength) {\n this.#longestDialCodeLength = country.dialCode.length;\n }\n }\n\n this.countrySearchForm = this.#formBuilder.group({\n countrySearch: this.#countrySearchFormControl,\n });\n }\n\n public ngOnInit(): void {\n // The timeout here is needed to avoid a change before checked error when a user specifies\n // a selected country on initialization of the component.\n setTimeout(() => {\n if (this.inputBoxHostSvc && this.inputTemplateRef) {\n this.inputBoxHostSvc.populate({\n inputTemplate: this.inputTemplateRef,\n buttonsInsetTemplate: this.buttonsInsetTemplateRef,\n buttonsLeftTemplate: this.countryBtnTemplateRef,\n });\n }\n\n if (!this.defaultCountry) {\n this.defaultCountry = 'us';\n }\n\n if (!this.selectedCountry) {\n this.selectedCountry = this.#defaultCountryData;\n }\n this.#changeDetector.markForCheck();\n }, 0);\n\n this.#countrySearchFormControl.valueChanges.subscribe(\n (newValue?: SkyCountryFieldCountry) => {\n if (newValue?.iso2 !== this.selectedCountry?.iso2) {\n this.selectedCountry = newValue;\n }\n }\n );\n }\n\n public ngOnDestroy(): void {\n this.selectedCountryChange.complete();\n }\n\n /**\n * Sets the country to validate against based on the county's iso2 code.\n * @param countryCode The International Organization for Standardization's two-letter code\n * for the default country.\n * @internal\n */\n public onCountrySelected(newCountry: SkyCountryFieldCountry): void {\n if (newCountry) {\n this.selectedCountry = this.countries.find(\n (countryInfo) => countryInfo.iso2 === newCountry.iso2\n );\n this.toggleCountrySearch(false);\n }\n }\n\n public toggleCountrySearch(showSearch: boolean): void {\n this.#phoneInputAnimationTriggered = true;\n\n if (showSearch) {\n this.phoneInputShown = false;\n } else {\n this.countrySearchShown = false;\n\n this.#countrySearchFormControl.setValue(undefined);\n }\n\n this.#changeDetector.markForCheck();\n }\n\n public countrySearchAnimationEnd(e: AnimationEvent): void {\n if (!this.countrySearchShown) {\n this.phoneInputShown = true;\n } else {\n this.#adapterService.focusCountrySearchElement(e.element);\n }\n\n this.#changeDetector.markForCheck();\n }\n\n public phoneInputAnimationEnd(e: AnimationEvent): void {\n if (!this.phoneInputShown) {\n this.countrySearchShown = true;\n } else {\n if (this.#phoneInputAnimationTriggered) {\n this.#adapterService.focusPhoneInput(e.element);\n this.#phoneInputAnimationTriggered = false;\n }\n }\n\n this.#changeDetector.markForCheck();\n }\n\n public setCountryByDialCode(phoneNumber: string): boolean {\n if (!phoneNumber || !phoneNumber.startsWith('+')) {\n return false;\n }\n\n let newCountry: SkyPhoneFieldCountry | undefined;\n\n for (let i = 1; i < this.#longestDialCodeLength + 1; i++) {\n const dialCode = phoneNumber.substring(0, i);\n\n let foundCountry = this.countries.find(\n (country) => country.dialCode === dialCode && country.priority === 0\n );\n\n if (foundCountry) {\n // Ensure that the country that was found is one of the supported countries\n if (\n this.supportedCountryISOs &&\n this.supportedCountryISOs.findIndex(\n (isoCode) =>\n isoCode.toUpperCase() === foundCountry?.iso2.toUpperCase()\n ) < 0\n ) {\n foundCountry = undefined;\n }\n\n if (foundCountry !== this.selectedCountry) {\n newCountry = foundCountry;\n }\n }\n }\n\n if (newCountry) {\n this.selectedCountry = newCountry;\n this.#changeDetector.markForCheck();\n return true;\n }\n\n return false;\n }\n}\n","<ng-container *ngIf=\"!inputBoxHostSvc\">\n <div class=\"sky-input-group sky-phone-field\" [@blockAnimationOnLoad]>\n <ng-container *ngTemplateOutlet=\"countryBtnTemplateRef\"></ng-container>\n <ng-container *ngTemplateOutlet=\"inputTemplateRef\"></ng-container>\n <ng-container *ngTemplateOutlet=\"buttonsInsetTemplateRef\"></ng-container>\n </div>\n</ng-container>\n\n<ng-template #countryBtnTemplateRef>\n <div\n class=\"sky-input-group-btn sky-phone-field-country-btn\"\n [attr.data-sky-test-iso2]=\"selectedCountry?.iso2\"\n [attr.data-sky-test-name]=\"selectedCountry?.name\"\n >\n <button\n aria-live=\"polite\"\n class=\"sky-btn sky-btn-default\"\n type=\"button\"\n [attr.title]=\"\n ('skyux_phone_field_country_select_label' | skyLibResources) +\n ' ' +\n ('skyux_phone_field_country_selected_label'\n | skyLibResources: selectedCountry?.name)\n \"\n [attr.aria-label]=\"\n ('skyux_phone_field_country_select_label' | skyLibResources) +\n ' ' +\n ('skyux_phone_field_country_selected_label'\n | skyLibResources: selectedCountry?.name)\n \"\n [disabled]=\"countrySelectDisabled\"\n (click)=\"toggleCountrySearch(true)\"\n >\n <div\n class=\"sky-phone-field-flag iti__flag\"\n [ngClass]=\"'iti__' + selectedCountry?.iso2\"\n ></div>\n </button>\n </div>\n</ng-template>\n\n<ng-template #inputTemplateRef>\n <span\n *ngIf=\"phoneInputShown\"\n class=\"sky-phone-field-container\"\n [@phoneInputAnimation]=\"phoneInputShown ? 'open' : 'closed'\"\n (@phoneInputAnimation.done)=\"phoneInputAnimationEnd($event)\"\n >\n <ng-content></ng-content>\n </span>\n <span\n *ngIf=\"countrySearchShown\"\n class=\"sky-phone-field-container\"\n [@countrySearchAnimation]=\"\n 'open' +\n ((themeSvc?.settingsChange | async)?.currentSettings?.theme?.name ===\n 'modern'\n ? '-modern'\n : '')\n \"\n (@countrySearchAnimation.done)=\"countrySearchAnimationEnd($event)\"\n >\n <div class=\"sky-phone-field-country-search\" [formGroup]=\"countrySearchForm\">\n <sky-country-field\n formControlName=\"countrySearch\"\n [defaultCountry]=\"defaultCountry\"\n [hideSelectedCountryFlag]=\"true\"\n [includePhoneInfo]=\"true\"\n [supportedCountryISOs]=\"supportedCountryISOs\"\n (selectedCountryChange)=\"onCountrySelected($event)\"\n >\n </sky-country-field>\n </div>\n </span>\n</ng-template>\n\n<ng-template #buttonsInsetTemplateRef>\n <div\n *ngIf=\"countrySearchShown\"\n class=\"sky-input-group-btn sky-input-box-btn-inset sky-search-item-dismiss\"\n >\n <button\n class=\"sky-btn sky-phone-field-search-btn-dismiss\"\n type=\"button\"\n [attr.title]=\"\n 'skyux_phone_field_country_search_dismiss' | skyLibResources\n \"\n [ngClass]=\"{\n 'sky-btn-default':\n (themeSvc?.settingsChange | async)?.currentSettings?.theme?.name ===\n 'modern'\n }\"\n (click)=\"toggleCountrySearch(false)\"\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"chevron-circle-left\" size=\"lg\">\n </sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"double-chevron-left\"\n iconType=\"skyux\"\n size=\"2x\"\n >\n </sky-icon>\n </button>\n </div>\n</ng-template>\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Directive,\n ElementRef,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n forwardRef,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\n\nimport { PhoneNumberFormat, PhoneNumberUtil } from 'google-libphonenumber';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\n\nimport { SkyPhoneFieldAdapterService } from './phone-field-adapter.service';\nimport { SkyPhoneFieldComponent } from './phone-field.component';\nimport { SkyPhoneFieldCountry } from './types/country';\n\nconst SKY_PHONE_FIELD_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SkyPhoneFieldInputDirective),\n multi: true,\n};\n\nconst SKY_PHONE_FIELD_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SkyPhoneFieldInputDirective),\n multi: true,\n};\n\n/**\n * Creates a button, search input, and text input for entering and validating\n * international phone numbers. Place this attribute on an `input` element, and wrap\n * that element in a `sky-phone-field` component. By default, the country selector\n * button displays a flag icon for the default country, and the phone number input\n * displays a sample of the correct phone number format. When users select the country\n * selector button, they expose the country search input, which is\n * [an autocomplete input](https://developer.blackbaud.com/skyux/components/autocomplete)\n * that allows them to select different countries. When users enter `+` followed by an\n * international dial code in the phone number input, the country automatically switches\n * to the country associated with the dial code.\n * @required\n */\n@Directive({\n selector: '[skyPhoneFieldInput]',\n providers: [SKY_PHONE_FIELD_VALUE_ACCESSOR, SKY_PHONE_FIELD_VALIDATOR],\n})\nexport class SkyPhoneFieldInputDirective\n implements OnInit, OnDestroy, AfterViewInit, ControlValueAccessor, Validator\n{\n /**\n * Whether to disable the phone field.\n * @default false\n */\n @Input()\n public set disabled(value: boolean | undefined) {\n const coercedValue = coerceBooleanProperty(value);\n if (this.#phoneFieldComponent) {\n this.#phoneFieldComponent.countrySelectDisabled = coercedValue;\n this.#adapterService?.setElementDisabledState(this.#elRef, coercedValue);\n }\n this.#_disabled = coercedValue;\n }\n\n public get disabled(): boolean {\n return this.#_disabled;\n }\n\n /**\n * Whether to prevent validation on the phone number input. For validation,\n * phone numbers are driven through the `ngModel` attribute that you specify on an\n * `input` element or on a `FormControl` in a reactive form. To prevent validation,\n * set this property to `true`.\n * @default false\n */\n @Input()\n public skyPhoneFieldNoValidate: boolean | undefined = false;\n\n set #modelValue(value: string | undefined) {\n const valueOrDefault = value ?? '';\n this.#_modelValue = valueOrDefault;\n this.#adapterService?.setElementValue(this.#elRef, valueOrDefault);\n\n if (valueOrDefault) {\n const formattedValue = this.#formatNumber(valueOrDefault.toString());\n\n this.#onChange(formattedValue);\n } else {\n this.#onChange(valueOrDefault);\n }\n this.#validatorChange();\n }\n\n get #modelValue(): string {\n return this.#_modelValue;\n }\n\n #control: AbstractControl | undefined;\n\n #textChanges: BehaviorSubject<string> | undefined;\n\n #ngUnsubscribe = new Subject<void>();\n\n #phoneUtils = PhoneNumberUtil.getInstance();\n\n #_disabled!: boolean;\n\n #_modelValue = '';\n\n #changeDetector: ChangeDetectorRef;\n #elRef: ElementRef;\n\n #adapterService: SkyPhoneFieldAdapterService | undefined;\n #phoneFieldComponent: SkyPhoneFieldComponent | undefined;\n\n public constructor(\n changeDetector: ChangeDetectorRef,\n elRef: ElementRef,\n @Optional() adapterService?: SkyPhoneFieldAdapterService,\n @Optional() phoneFieldComponent?: SkyPhoneFieldComponent\n ) {\n this.#changeDetector = changeDetector;\n this.#elRef = elRef;\n this.#adapterService = adapterService;\n this.#phoneFieldComponent = phoneFieldComponent;\n }\n\n public ngOnInit(): void {\n if (!this.#phoneFieldComponent) {\n throw new Error(\n 'You must wrap the `skyPhoneFieldInput` directive within a ' +\n '`<sky-phone-field>` component!'\n );\n }\n\n this.#adapterService?.setElementType(this.#elRef);\n this.#adapterService?.addElementClass(this.#elRef, 'sky-form-control');\n if (this.#phoneFieldComponent?.selectedCountry?.exampleNumber) {\n this.#adapterService?.setElementPlaceholder(\n this.#elRef,\n this.#phoneFieldComponent.selectedCountry.exampleNumber\n );\n }\n\n this.#adapterService?.setAriaLabel(this.#elRef);\n }\n\n public ngAfterViewInit(): void {\n this.#phoneFieldComponent?.selectedCountryChange\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((country: SkyPhoneFieldCountry) => {\n this.#modelValue = this.#elRef.nativeElement.value;\n if (country?.exampleNumber) {\n this.#adapterService?.setElementPlaceholder(\n this.#elRef,\n country.exampleNumber\n );\n }\n });\n\n // This is needed to address a bug in Angular 4, where the value is not changed on the view.\n // See: https://github.com/angular/angular/issues/13792\n /* istanbul ignore else */\n if (this.#control && this.#modelValue) {\n this.#control.setValue(this.#modelValue, { emitEvent: false });\n this.#changeDetector.detectChanges();\n }\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n /**\n * Writes the new value for reactive forms on change events on the input element\n * @param event The change event that was received\n */\n @HostListener('change', ['$event'])\n public onInputChange(event: any): void {\n if (!this.#textChanges) {\n this.#setupTextChangeSubscription(event.target.value);\n } else {\n this.#textChanges.next(event.target.value);\n }\n }\n\n /**\n * Marks reactive form controls as touched on input blur events\n */\n @HostListener('blur')\n public onInputBlur(): void {\n this.#onTouched();\n }\n\n @HostListener('input', ['$event'])\n public onInputTyping(event: any): void {\n if (!this.#textChanges) {\n this.#setupTextChangeSubscription(event.target.value);\n } else {\n this.#textChanges.next(event.target.value);\n }\n }\n\n /**\n * Writes the new value for reactive forms\n * @param value The new value for the input\n */\n public writeValue(value: string): void {\n this.#phoneFieldComponent?.setCountryByDialCode(value);\n\n this.#modelValue = value;\n }\n\n public registerOnChange(fn: (value: string | undefined) => void): void {\n this.#onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.#onTouched = fn;\n }\n\n public registerOnValidatorChange(fn: () => void): void {\n this.#validatorChange = fn;\n }\n\n /**\n * Sets the disabled state on the input\n * @param isDisabled the new value of the input's disabled state\n */\n public setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n /**\n * Validate's the form control's current value\n * @param control the form control for the input\n */\n public validate(control: AbstractControl): ValidationErrors | null {\n if (!this.#control) {\n this.#control = control;\n }\n\n if (this.skyPhoneFieldNoValidate) {\n return null;\n }\n\n const value = control.value;\n\n if (!value) {\n return null;\n }\n\n if (\n this.#phoneFieldComponent?.selectedCountry &&\n !this.#validateNumber(value)\n ) {\n if (!this.#textChanges) {\n // Mark the invalid control as touched so that the input's invalid CSS styles appear.\n // (This is only required when the invalid value is set by the FormControl constructor.)\n // We don't do this if the input is the active element so that we don't show validation\n // errors unless it is invalid on initialization or the input has been blurred.\n control.markAsTouched();\n }\n\n return {\n skyPhoneField: {\n invalid: value,\n },\n };\n }\n return null;\n }\n\n #setupTextChangeSubscription(text: string): void {\n this.#textChanges = new BehaviorSubject(text);\n\n this.#textChanges\n .pipe(debounceTime(500), takeUntil(this.#ngUnsubscribe))\n .subscribe((newValue) => {\n this.writeValue(newValue);\n });\n }\n\n #validateNumber(phoneNumber: string): boolean {\n try {\n const numberObj = this.#phoneUtils.parseAndKeepRawInput(\n phoneNumber,\n this.#phoneFieldComponent?.selectedCountry?.iso2\n );\n\n if (\n this.#phoneFieldComponent &&\n !this.#phoneFieldComponent.allowExtensions &&\n numberObj.getExtension()\n ) {\n return false;\n }\n\n return this.#phoneUtils.isValidNumber(numberObj);\n } catch (e) {\n return false;\n }\n }\n\n /**\n * Format's the given phone number based on the currently selected country.\n * @param phoneNumber The number to format\n */\n #formatNumber(phoneNumber: string): string {\n try {\n const numberObj = this.#phoneUtils.parseAndKeepRawInput(\n phoneNumber,\n this.#phoneFieldComponent?.selectedCountry?.iso2\n );\n if (this.#phoneUtils.isPossibleNumber(numberObj)) {\n switch (this.#phoneFieldComponent?.returnFormat) {\n case 'international':\n return this.#phoneUtils.format(\n numberObj,\n PhoneNumberFormat.INTERNATIONAL\n );\n case 'national':\n return this.#phoneUtils.format(\n numberObj,\n PhoneNumberFormat.NATIONAL\n );\n case 'default':\n default:\n if (\n this.#phoneFieldComponent?.selectedCountry?.iso2 !==\n this.#phoneFieldComponent?.defaultCountry\n ) {\n return this.#phoneUtils.format(\n numberObj,\n PhoneNumberFormat.INTERNATIONAL\n );\n } else {\n return this.#phoneUtils.format(\n numberObj,\n PhoneNumberFormat.NATIONAL\n );\n }\n }\n } else {\n return phoneNumber;\n }\n } catch (e) {\n /* sanity check */\n /* istanbul ignore next */\n return phoneNumber;\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function , @typescript-eslint/no-unused-vars\n #onChange = (_: string | undefined) => {};\n\n // istanbul ignore next\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n #onTouched = () => {};\n\n // istanbul ignore next\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n #validatorChange = () => {};\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { SkyI18nModule } from '@skyux/i18n';\nimport { SkyIconModule } from '@skyux/indicators';\nimport { SkyCountryFieldModule } from '@skyux/lookup';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { SkyPhoneFieldResourcesModule } from '../shared/sky-phone-field-resources.module';\n\nimport { SkyPhoneFieldInputDirective } from './phone-field-input.directive';\nimport { SkyPhoneFieldComponent } from './phone-field.component';\n\n@NgModule({\n declarations: [SkyPhoneFieldComponent, SkyPhoneFieldInputDirective],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n SkyCountryFieldModule,\n SkyI18nModule,\n SkyIconModule,\n SkyPhoneFieldResourcesModule,\n SkyThemeModule,\n ],\n exports: [SkyPhoneFieldComponent, SkyPhoneFieldInputDirective],\n})\nexport class SkyPhoneFieldModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2.SkyPhoneFieldAdapterService","i8","i1.SkyPhoneFieldAdapterService","i2.SkyPhoneFieldComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skyux-phone-field.mjs","sources":["../../../../../libs/components/phone-field/src/lib/modules/shared/sky-phone-field-resources.module.ts","../../../../../libs/components/phone-field/src/lib/modules/phone-field/phone-field-adapter.service.ts","../../../../../libs/components/phone-field/src/lib/modules/phone-field/phone-field.component.ts","../../../../../libs/components/phone-field/src/lib/modules/phone-field/phone-field.component.html","../../../../../libs/components/phone-field/src/lib/modules/phone-field/phone-field-input.directive.ts","../../../../../libs/components/phone-field/src/lib/modules/phone-field/phone-field.module.ts","../../../../../libs/components/phone-field/src/skyux-phone-field.ts"],"sourcesContent":["/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-phone-field' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport {\n SKY_LIB_RESOURCES_PROVIDERS,\n SkyAppLocaleInfo,\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesProvider,\n getLibStringForLocale,\n} from '@skyux/i18n';\n\nconst RESOURCES: { [locale: string]: SkyLibResources } = {\n 'EN-US': {\n skyux_phone_field_default_label: { message: 'Phone number' },\n skyux_phone_field_country_search_dismiss: {\n message: 'Dismiss country search',\n },\n skyux_phone_field_country_search_label: {\n message: 'Dismiss country search',\n },\n skyux_phone_field_country_search_placeholder: {\n message: 'Search for a country',\n },\n skyux_phone_field_country_select_label: { message: 'Choose country.' },\n skyux_phone_field_country_selected_label: {\n message: '{0} is currently selected.',\n },\n },\n};\n\nexport class SkyPhoneFieldResourcesProvider implements SkyLibResourcesProvider {\n public getString(\n localeInfo: SkyAppLocaleInfo,\n name: string\n ): string | undefined {\n return getLibStringForLocale(RESOURCES, localeInfo.locale, name);\n }\n}\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n providers: [\n {\n provide: SKY_LIB_RESOURCES_PROVIDERS,\n useClass: SkyPhoneFieldResourcesProvider,\n multi: true,\n },\n ],\n})\nexport class SkyPhoneFieldResourcesModule {}\n","import { ElementRef, Injectable, OnDestroy, Renderer2 } from '@angular/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n/**\n * Service for interacting with the DOM elements of the phone field.\n * @internal\n */\n@Injectable()\nexport class SkyPhoneFieldAdapterService implements OnDestroy {\n #ngUnsubscribe = new Subject<void>();\n\n #renderer: Renderer2;\n #resourcesService: SkyLibResourcesService;\n\n constructor(renderer: Renderer2, resourcesService: SkyLibResourcesService) {\n this.#renderer = renderer;\n this.#resourcesService = resourcesService;\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n public addElementClass(elementRef: ElementRef, className: string): void {\n this.#renderer.addClass(elementRef.nativeElement, className);\n }\n\n public setElementDisabledState(\n elementRef: ElementRef,\n disabled: boolean\n ): void {\n this.#renderer.setProperty(elementRef.nativeElement, 'disabled', disabled);\n }\n\n public setElementPlaceholder(\n elementRef: ElementRef,\n placeholder: string\n ): void {\n this.#renderer.setAttribute(\n elementRef.nativeElement,\n 'placeholder',\n placeholder\n );\n }\n\n public setElementType(elementRef: ElementRef): void {\n this.#renderer.setAttribute(elementRef.nativeElement, 'type', 'tel');\n }\n\n public setElementValue(elementRef: ElementRef, value: string): void {\n this.#renderer.setProperty(elementRef.nativeElement, 'value', value);\n }\n\n public setAriaLabel(element: ElementRef): void {\n /* Sanity check */\n /* istanbul ignore else */\n if (!element.nativeElement.getAttribute('aria-label')) {\n this.#resourcesService\n .getString('skyux_phone_field_default_label')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((value: string) => {\n this.#renderer.setAttribute(\n element.nativeElement,\n 'aria-label',\n value\n );\n });\n }\n }\n\n public focusCountrySearchElement(el: Element): void {\n const input: HTMLElement | null = el.querySelector('textarea');\n input?.focus();\n }\n\n public focusPhoneInput(el: Element): void {\n const input: HTMLElement | null = el.querySelector(\n '.sky-phone-field-container input'\n );\n input?.focus();\n }\n}\n","import {\n AnimationEvent,\n animate,\n style,\n transition,\n trigger,\n} from '@angular/animations';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n SkipSelf,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\nimport { SkyInputBoxHostService } from '@skyux/forms';\nimport {\n SKY_COUNTRY_FIELD_CONTEXT,\n SkyCountryFieldCountry,\n} from '@skyux/lookup';\nimport { SkyThemeService } from '@skyux/theme';\n\nimport {\n PhoneNumberFormat,\n PhoneNumberType,\n PhoneNumberUtil,\n} from 'google-libphonenumber';\nimport 'intl-tel-input';\n\nimport { SkyPhoneFieldAdapterService } from './phone-field-adapter.service';\nimport { SkyPhoneFieldCountry } from './types/country';\nimport { SkyPhoneFieldNumberReturnFormat } from './types/number-return-format';\n\n// NOTE: The no-op animation is here in order to block the input's \"fade in\" animation\n// from firing on initial load. For more information on this technique you can see\n// https://www.bennadel.com/blog/3417-using-no-op-transitions-to-prevent-animation-during-the-initial-render-of-ngfor-in-angular-5-2-6.htm\n@Component({\n selector: 'sky-phone-field',\n templateUrl: './phone-field.component.html',\n styleUrls: ['./phone-field.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n SkyPhoneFieldAdapterService,\n // Prevents the embedded country field component from changing its behavior based on\n // being inside an input box. The phone field itself will handle the required changes\n // for input box.\n {\n provide: SkyInputBoxHostService,\n useValue: undefined,\n },\n {\n provide: SKY_COUNTRY_FIELD_CONTEXT,\n useValue: { showPlaceholderText: true },\n },\n ],\n animations: [\n trigger('blockAnimationOnLoad', [transition(':enter', [])]),\n trigger('countrySearchAnimation', [\n transition('void => open', [\n style({\n opacity: 0,\n width: 0,\n }),\n animate(\n '200ms ease-in',\n style({\n opacity: 1,\n width: '*',\n })\n ),\n ]),\n transition('open => void', [\n animate(\n '200ms ease-in',\n style({\n opacity: 0,\n width: 0,\n })\n ),\n ]),\n transition('void => open-modern', [\n style({\n opacity: 0,\n }),\n animate(\n '200ms ease-in',\n style({\n opacity: 1,\n })\n ),\n ]),\n transition('open-modern => void', [\n animate(\n '200ms ease-in',\n style({\n opacity: 0,\n })\n ),\n ]),\n ]),\n trigger('phoneInputAnimation', [\n transition('void => open', [\n style({\n opacity: 0,\n }),\n animate(\n '200ms ease-in',\n style({\n opacity: 1,\n })\n ),\n ]),\n transition('open => void', [\n animate(\n '200ms ease-in',\n style({\n opacity: 0,\n })\n ),\n ]),\n ]),\n ],\n})\nexport class SkyPhoneFieldComponent implements OnDestroy, OnInit {\n /**\n * Whether phone number extensions are allowed.\n * @default true\n */\n @Input()\n public set allowExtensions(value: boolean | undefined) {\n this.#_allowExtensions = value !== false;\n }\n\n public get allowExtensions(): boolean {\n return this.#_allowExtensions;\n }\n\n #_allowExtensions = true;\n\n /**\n * The\n * [International Organization for Standardization Alpha 2](https://www.nationsonline.org/oneworld/country_code_list.htm)\n * country code for the default country. The country selector button displays a flag\n * icon for this default country until users select a different country.\n * @default \"us\"\n */\n @Input()\n public set defaultCountry(value: string | undefined) {\n if (value && value !== this.#_defaultCountry) {\n this.#_defaultCountry = value.toLowerCase();\n\n this.#defaultCountryData = this.countries.find(\n (country) => country.iso2 === this.#_defaultCountry\n );\n }\n }\n\n public get defaultCountry(): string | undefined {\n return this.#_defaultCountry;\n }\n\n /**\n * The format for validated phone numbers.\n * Options include: `\"default\"`, `\"international\"`, and `\"national\"`.\n * @default \"default\"\n */\n @Input()\n public get returnFormat(): SkyPhoneFieldNumberReturnFormat {\n return this.#_returnFormat;\n }\n\n public set returnFormat(value: SkyPhoneFieldNumberReturnFormat | undefined) {\n this.#_returnFormat = value || 'default';\n }\n\n #_returnFormat: SkyPhoneFieldNumberReturnFormat = 'default';\n\n /**\n * The [International Organization for Standardization Alpha 2](https://www.nationsonline.org/oneworld/country_code_list.htm)\n * country codes for the countries that users can select. By default, all countries are available.\n */\n @Input()\n public supportedCountryISOs: string[] | undefined;\n\n /**\n * Emits a `SkyPhoneFieldCountry` object when the selected country in the country search\n * input changes.\n */\n\n @Output()\n public selectedCountryChange = new EventEmitter<SkyPhoneFieldCountry>();\n\n public countries: SkyPhoneFieldCountry[];\n\n public countrySelectDisabled = false;\n\n public countrySearchShown = false;\n\n public phoneInputShown = true;\n\n public countrySearchForm: FormGroup<{\n countrySearch: FormControl<SkyCountryFieldCountry | undefined>;\n }>;\n\n /**\n * The currently selected country to validate against.\n */\n @Input()\n public set selectedCountry(newCountry: SkyPhoneFieldCountry | undefined) {\n if (\n newCountry &&\n (!this.#_selectedCountry ||\n this.#_selectedCountry.iso2 !== newCountry.iso2)\n ) {\n this.#_selectedCountry = this.countries.find(\n (country) => country.iso2 === newCountry.iso2\n );\n\n if (this.#_selectedCountry && !this.#_selectedCountry.exampleNumber) {\n const numberObj = this.#phoneUtils.getExampleNumberForType(\n newCountry.iso2,\n PhoneNumberType.FIXED_LINE\n );\n this.#_selectedCountry.exampleNumber = this.#phoneUtils.format(\n numberObj,\n PhoneNumberFormat.NATIONAL\n );\n }\n\n this.selectedCountryChange.emit(this.#_selectedCountry);\n }\n }\n\n public get selectedCountry(): SkyPhoneFieldCountry | undefined {\n return this.#_selectedCountry;\n }\n\n @ViewChild('inputTemplateRef', {\n read: TemplateRef,\n static: true,\n })\n public inputTemplateRef: TemplateRef<unknown> | undefined;\n\n @ViewChild('countryBtnTemplateRef', {\n read: TemplateRef,\n static: true,\n })\n public countryBtnTemplateRef: TemplateRef<unknown> | undefined;\n\n @ViewChild('buttonsInsetTemplateRef', {\n read: TemplateRef,\n static: true,\n })\n public buttonsInsetTemplateRef: TemplateRef<unknown> | undefined;\n\n #defaultCountryData: SkyPhoneFieldCountry | undefined;\n\n #phoneInputAnimationTriggered = false;\n\n #phoneUtils = PhoneNumberUtil.getInstance();\n\n #longestDialCodeLength = 0;\n\n #_defaultCountry: string | undefined;\n\n #_selectedCountry: SkyPhoneFieldCountry | undefined;\n\n #countrySearchFormControl: FormControl<SkyCountryFieldCountry | undefined> =\n new FormControl();\n\n #formBuilder: FormBuilder;\n #adapterService: SkyPhoneFieldAdapterService;\n #changeDetector: ChangeDetectorRef;\n\n constructor(\n formBuilder: FormBuilder,\n adapterService: SkyPhoneFieldAdapterService,\n changeDetector: ChangeDetectorRef,\n @Optional() public themeSvc?: SkyThemeService,\n @Optional() @SkipSelf() public inputBoxHostSvc?: SkyInputBoxHostService\n ) {\n this.#formBuilder = formBuilder;\n this.#adapterService = adapterService;\n this.#changeDetector = changeDetector;\n /**\n * The json functions here ensures that we get a copy of the array and not the global original.\n * This ensures that multiple instances of the component don't overwrite the original data.\n *\n * We must type the window object as any here as the intl-tel-input library adds its object\n * to the main window object.\n */\n this.countries = JSON.parse(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n JSON.stringify((window as any).intlTelInputGlobals.getCountryData())\n );\n for (const country of this.countries) {\n country.dialCode = '+' + country.dialCode;\n\n if (country.dialCode.length > this.#longestDialCodeLength) {\n this.#longestDialCodeLength = country.dialCode.length;\n }\n }\n\n this.countrySearchForm = this.#formBuilder.group({\n countrySearch: this.#countrySearchFormControl,\n });\n }\n\n public ngOnInit(): void {\n // The timeout here is needed to avoid a change before checked error when a user specifies\n // a selected country on initialization of the component.\n setTimeout(() => {\n if (this.inputBoxHostSvc && this.inputTemplateRef) {\n this.inputBoxHostSvc.populate({\n inputTemplate: this.inputTemplateRef,\n buttonsInsetTemplate: this.buttonsInsetTemplateRef,\n buttonsLeftTemplate: this.countryBtnTemplateRef,\n });\n }\n\n if (!this.defaultCountry) {\n this.defaultCountry = 'us';\n }\n\n if (!this.selectedCountry) {\n this.selectedCountry = this.#defaultCountryData;\n }\n this.#changeDetector.markForCheck();\n }, 0);\n\n this.#countrySearchFormControl.valueChanges.subscribe(\n (newValue?: SkyCountryFieldCountry) => {\n if (newValue?.iso2 !== this.selectedCountry?.iso2) {\n this.selectedCountry = newValue;\n }\n }\n );\n }\n\n public ngOnDestroy(): void {\n this.selectedCountryChange.complete();\n }\n\n /**\n * Sets the country to validate against based on the county's iso2 code.\n * @param countryCode The International Organization for Standardization's two-letter code\n * for the default country.\n * @internal\n */\n public onCountrySelected(newCountry: SkyCountryFieldCountry): void {\n if (newCountry) {\n this.selectedCountry = this.countries.find(\n (countryInfo) => countryInfo.iso2 === newCountry.iso2\n );\n this.toggleCountrySearch(false);\n }\n }\n\n public toggleCountrySearch(showSearch: boolean): void {\n this.#phoneInputAnimationTriggered = true;\n\n if (showSearch) {\n this.phoneInputShown = false;\n } else {\n this.countrySearchShown = false;\n\n this.#countrySearchFormControl.setValue(undefined);\n }\n\n this.#changeDetector.markForCheck();\n }\n\n public countrySearchAnimationEnd(e: AnimationEvent): void {\n if (!this.countrySearchShown) {\n this.phoneInputShown = true;\n } else {\n this.#adapterService.focusCountrySearchElement(e.element);\n }\n\n this.#changeDetector.markForCheck();\n }\n\n public phoneInputAnimationEnd(e: AnimationEvent): void {\n if (!this.phoneInputShown) {\n this.countrySearchShown = true;\n } else {\n if (this.#phoneInputAnimationTriggered) {\n this.#adapterService.focusPhoneInput(e.element);\n this.#phoneInputAnimationTriggered = false;\n }\n }\n\n this.#changeDetector.markForCheck();\n }\n\n public setCountryByDialCode(phoneNumber: string): boolean {\n if (!phoneNumber || !phoneNumber.startsWith('+')) {\n return false;\n }\n\n let newCountry: SkyPhoneFieldCountry | undefined;\n\n for (let i = 1; i < this.#longestDialCodeLength + 1; i++) {\n const dialCode = phoneNumber.substring(0, i);\n\n if (this.#defaultCountryData?.dialCode === dialCode) {\n newCountry = this.#defaultCountryData;\n } else {\n let foundCountry = this.countries.find(\n (country) => country.dialCode === dialCode && country.priority === 0\n );\n\n if (foundCountry) {\n // Ensure that the country that was found is one of the supported countries\n if (\n this.supportedCountryISOs &&\n this.supportedCountryISOs.findIndex(\n (isoCode) =>\n isoCode.toUpperCase() === foundCountry?.iso2.toUpperCase()\n ) < 0\n ) {\n foundCountry = undefined;\n }\n\n if (foundCountry !== this.selectedCountry) {\n newCountry = foundCountry;\n }\n }\n }\n }\n\n if (newCountry) {\n this.selectedCountry = newCountry;\n this.#changeDetector.markForCheck();\n return true;\n }\n\n return false;\n }\n}\n","<ng-container *ngIf=\"!inputBoxHostSvc\">\n <div class=\"sky-input-group sky-phone-field\" [@blockAnimationOnLoad]>\n <ng-container *ngTemplateOutlet=\"countryBtnTemplateRef\"></ng-container>\n <ng-container *ngTemplateOutlet=\"inputTemplateRef\"></ng-container>\n <ng-container *ngTemplateOutlet=\"buttonsInsetTemplateRef\"></ng-container>\n </div>\n</ng-container>\n\n<ng-template #countryBtnTemplateRef>\n <div\n class=\"sky-input-group-btn sky-phone-field-country-btn\"\n [attr.data-sky-test-iso2]=\"selectedCountry?.iso2\"\n [attr.data-sky-test-name]=\"selectedCountry?.name\"\n >\n <button\n aria-live=\"polite\"\n class=\"sky-btn sky-btn-default\"\n type=\"button\"\n [attr.title]=\"\n ('skyux_phone_field_country_select_label' | skyLibResources) +\n ' ' +\n ('skyux_phone_field_country_selected_label'\n | skyLibResources: selectedCountry?.name)\n \"\n [attr.aria-label]=\"\n ('skyux_phone_field_country_select_label' | skyLibResources) +\n ' ' +\n ('skyux_phone_field_country_selected_label'\n | skyLibResources: selectedCountry?.name)\n \"\n [disabled]=\"countrySelectDisabled\"\n (click)=\"toggleCountrySearch(true)\"\n >\n <div\n class=\"sky-phone-field-flag iti__flag\"\n [ngClass]=\"'iti__' + selectedCountry?.iso2\"\n ></div>\n </button>\n </div>\n</ng-template>\n\n<ng-template #inputTemplateRef>\n <span\n *ngIf=\"phoneInputShown\"\n class=\"sky-phone-field-container\"\n [@phoneInputAnimation]=\"phoneInputShown ? 'open' : 'closed'\"\n (@phoneInputAnimation.done)=\"phoneInputAnimationEnd($event)\"\n >\n <ng-content></ng-content>\n </span>\n <span\n *ngIf=\"countrySearchShown\"\n class=\"sky-phone-field-container\"\n [@countrySearchAnimation]=\"\n 'open' +\n ((themeSvc?.settingsChange | async)?.currentSettings?.theme?.name ===\n 'modern'\n ? '-modern'\n : '')\n \"\n (@countrySearchAnimation.done)=\"countrySearchAnimationEnd($event)\"\n >\n <div class=\"sky-phone-field-country-search\" [formGroup]=\"countrySearchForm\">\n <sky-country-field\n formControlName=\"countrySearch\"\n [defaultCountry]=\"defaultCountry\"\n [hideSelectedCountryFlag]=\"true\"\n [includePhoneInfo]=\"true\"\n [supportedCountryISOs]=\"supportedCountryISOs\"\n (selectedCountryChange)=\"onCountrySelected($event)\"\n >\n </sky-country-field>\n </div>\n </span>\n</ng-template>\n\n<ng-template #buttonsInsetTemplateRef>\n <div\n *ngIf=\"countrySearchShown\"\n class=\"sky-input-group-btn sky-input-box-btn-inset sky-search-item-dismiss\"\n >\n <button\n class=\"sky-btn sky-phone-field-search-btn-dismiss\"\n type=\"button\"\n [attr.title]=\"\n 'skyux_phone_field_country_search_dismiss' | skyLibResources\n \"\n [ngClass]=\"{\n 'sky-btn-default':\n (themeSvc?.settingsChange | async)?.currentSettings?.theme?.name ===\n 'modern'\n }\"\n (click)=\"toggleCountrySearch(false)\"\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"chevron-circle-left\" size=\"lg\">\n </sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"double-chevron-left\"\n iconType=\"skyux\"\n size=\"2x\"\n >\n </sky-icon>\n </button>\n </div>\n</ng-template>\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Directive,\n ElementRef,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n forwardRef,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\n\nimport { PhoneNumberFormat, PhoneNumberUtil } from 'google-libphonenumber';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\n\nimport { SkyPhoneFieldAdapterService } from './phone-field-adapter.service';\nimport { SkyPhoneFieldComponent } from './phone-field.component';\nimport { SkyPhoneFieldCountry } from './types/country';\n\nconst SKY_PHONE_FIELD_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SkyPhoneFieldInputDirective),\n multi: true,\n};\n\nconst SKY_PHONE_FIELD_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SkyPhoneFieldInputDirective),\n multi: true,\n};\n\n/**\n * Creates a button, search input, and text input for entering and validating\n * international phone numbers. Place this attribute on an `input` element, and wrap\n * that element in a `sky-phone-field` component. By default, the country selector\n * button displays a flag icon for the default country, and the phone number input\n * displays a sample of the correct phone number format. When users select the country\n * selector button, they expose the country search input, which is\n * [an autocomplete input](https://developer.blackbaud.com/skyux/components/autocomplete)\n * that allows them to select different countries. When users enter `+` followed by an\n * international dial code in the phone number input, the country automatically switches\n * to the country associated with the dial code.\n * @required\n */\n@Directive({\n selector: '[skyPhoneFieldInput]',\n providers: [SKY_PHONE_FIELD_VALUE_ACCESSOR, SKY_PHONE_FIELD_VALIDATOR],\n})\nexport class SkyPhoneFieldInputDirective\n implements OnInit, OnDestroy, AfterViewInit, ControlValueAccessor, Validator\n{\n /**\n * Whether to disable the phone field.\n * @default false\n */\n @Input()\n public set disabled(value: boolean | undefined) {\n const coercedValue = coerceBooleanProperty(value);\n if (this.#phoneFieldComponent) {\n this.#phoneFieldComponent.countrySelectDisabled = coercedValue;\n this.#adapterService?.setElementDisabledState(this.#elRef, coercedValue);\n }\n this.#_disabled = coercedValue;\n }\n\n public get disabled(): boolean {\n return this.#_disabled;\n }\n\n /**\n * Whether to prevent validation on the phone number input. For validation,\n * phone numbers are driven through the `ngModel` attribute that you specify on an\n * `input` element or on a `FormControl` in a reactive form. To prevent validation,\n * set this property to `true`.\n * @default false\n */\n @Input()\n public skyPhoneFieldNoValidate: boolean | undefined = false;\n\n set #modelValue(value: string | undefined) {\n const valueOrDefault = value ?? '';\n this.#_modelValue = valueOrDefault;\n this.#adapterService?.setElementValue(this.#elRef, valueOrDefault);\n\n if (valueOrDefault) {\n const formattedValue = this.#formatNumber(valueOrDefault.toString());\n\n this.#onChange(formattedValue);\n } else {\n this.#onChange(valueOrDefault);\n }\n this.#validatorChange();\n }\n\n get #modelValue(): string {\n return this.#_modelValue;\n }\n\n #control: AbstractControl | undefined;\n\n #textChanges: BehaviorSubject<string> | undefined;\n\n #ngUnsubscribe = new Subject<void>();\n\n #phoneUtils = PhoneNumberUtil.getInstance();\n\n #_disabled!: boolean;\n\n #_modelValue = '';\n\n #changeDetector: ChangeDetectorRef;\n #elRef: ElementRef;\n\n #adapterService: SkyPhoneFieldAdapterService | undefined;\n #phoneFieldComponent: SkyPhoneFieldComponent | undefined;\n\n public constructor(\n changeDetector: ChangeDetectorRef,\n elRef: ElementRef,\n @Optional() adapterService?: SkyPhoneFieldAdapterService,\n @Optional() phoneFieldComponent?: SkyPhoneFieldComponent\n ) {\n this.#changeDetector = changeDetector;\n this.#elRef = elRef;\n this.#adapterService = adapterService;\n this.#phoneFieldComponent = phoneFieldComponent;\n }\n\n public ngOnInit(): void {\n if (!this.#phoneFieldComponent) {\n throw new Error(\n 'You must wrap the `skyPhoneFieldInput` directive within a ' +\n '`<sky-phone-field>` component!'\n );\n }\n\n this.#adapterService?.setElementType(this.#elRef);\n this.#adapterService?.addElementClass(this.#elRef, 'sky-form-control');\n if (this.#phoneFieldComponent?.selectedCountry?.exampleNumber) {\n this.#adapterService?.setElementPlaceholder(\n this.#elRef,\n this.#phoneFieldComponent.selectedCountry.exampleNumber\n );\n }\n\n this.#adapterService?.setAriaLabel(this.#elRef);\n }\n\n public ngAfterViewInit(): void {\n this.#phoneFieldComponent?.selectedCountryChange\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((country: SkyPhoneFieldCountry) => {\n this.#modelValue = this.#elRef.nativeElement.value;\n if (country?.exampleNumber) {\n this.#adapterService?.setElementPlaceholder(\n this.#elRef,\n country.exampleNumber\n );\n }\n });\n\n // This is needed to address a bug in Angular 4, where the value is not changed on the view.\n // See: https://github.com/angular/angular/issues/13792\n /* istanbul ignore else */\n if (this.#control && this.#modelValue) {\n this.#control.setValue(this.#modelValue, { emitEvent: false });\n this.#changeDetector.detectChanges();\n }\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n /**\n * Writes the new value for reactive forms on change events on the input element\n * @param event The change event that was received\n */\n @HostListener('change', ['$event'])\n public onInputChange(event: any): void {\n if (!this.#textChanges) {\n this.#setupTextChangeSubscription(event.target.value);\n } else {\n this.#textChanges.next(event.target.value);\n }\n }\n\n /**\n * Marks reactive form controls as touched on input blur events\n */\n @HostListener('blur')\n public onInputBlur(): void {\n this.#onTouched();\n }\n\n @HostListener('input', ['$event'])\n public onInputTyping(event: any): void {\n if (!this.#textChanges) {\n this.#setupTextChangeSubscription(event.target.value);\n } else {\n this.#textChanges.next(event.target.value);\n }\n }\n\n /**\n * Writes the new value for reactive forms\n * @param value The new value for the input\n */\n public writeValue(value: string): void {\n this.#phoneFieldComponent?.setCountryByDialCode(value);\n\n this.#modelValue = value;\n }\n\n public registerOnChange(fn: (value: string | undefined) => void): void {\n this.#onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.#onTouched = fn;\n }\n\n public registerOnValidatorChange(fn: () => void): void {\n this.#validatorChange = fn;\n }\n\n /**\n * Sets the disabled state on the input\n * @param isDisabled the new value of the input's disabled state\n */\n public setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n /**\n * Validate's the form control's current value\n * @param control the form control for the input\n */\n public validate(control: AbstractControl): ValidationErrors | null {\n if (!this.#control) {\n this.#control = control;\n }\n\n if (this.skyPhoneFieldNoValidate) {\n return null;\n }\n\n const value = control.value;\n\n if (!value) {\n return null;\n }\n\n if (\n this.#phoneFieldComponent?.selectedCountry &&\n !this.#validateNumber(value)\n ) {\n if (!this.#textChanges) {\n // Mark the invalid control as touched so that the input's invalid CSS styles appear.\n // (This is only required when the invalid value is set by the FormControl constructor.)\n // We don't do this if the input is the active element so that we don't show validation\n // errors unless it is invalid on initialization or the input has been blurred.\n control.markAsTouched();\n }\n\n return {\n skyPhoneField: {\n invalid: value,\n },\n };\n }\n return null;\n }\n\n #setupTextChangeSubscription(text: string): void {\n this.#textChanges = new BehaviorSubject(text);\n\n this.#textChanges\n .pipe(debounceTime(500), takeUntil(this.#ngUnsubscribe))\n .subscribe((newValue) => {\n this.writeValue(newValue);\n });\n }\n\n #validateNumber(phoneNumber: string): boolean {\n try {\n const numberObj = this.#phoneUtils.parseAndKeepRawInput(\n phoneNumber,\n this.#phoneFieldComponent?.selectedCountry?.iso2\n );\n\n if (\n this.#phoneFieldComponent &&\n !this.#phoneFieldComponent.allowExtensions &&\n numberObj.getExtension()\n ) {\n return false;\n }\n\n return this.#phoneUtils.isValidNumber(numberObj);\n } catch (e) {\n return false;\n }\n }\n\n /**\n * Format's the given phone number based on the currently selected country.\n * @param phoneNumber The number to format\n */\n #formatNumber(phoneNumber: string): string {\n try {\n const numberObj = this.#phoneUtils.parseAndKeepRawInput(\n phoneNumber,\n this.#phoneFieldComponent?.selectedCountry?.iso2\n );\n if (this.#phoneUtils.isPossibleNumber(numberObj)) {\n switch (this.#phoneFieldComponent?.returnFormat) {\n case 'international':\n return this.#phoneUtils.format(\n numberObj,\n PhoneNumberFormat.INTERNATIONAL\n );\n case 'national':\n return this.#phoneUtils.format(\n numberObj,\n PhoneNumberFormat.NATIONAL\n );\n case 'default':\n default:\n if (\n this.#phoneFieldComponent?.selectedCountry?.iso2 !==\n this.#phoneFieldComponent?.defaultCountry\n ) {\n return this.#phoneUtils.format(\n numberObj,\n PhoneNumberFormat.INTERNATIONAL\n );\n } else {\n return this.#phoneUtils.format(\n numberObj,\n PhoneNumberFormat.NATIONAL\n );\n }\n }\n } else {\n return phoneNumber;\n }\n } catch (e) {\n /* sanity check */\n /* istanbul ignore next */\n return phoneNumber;\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function , @typescript-eslint/no-unused-vars\n #onChange = (_: string | undefined) => {};\n\n // istanbul ignore next\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n #onTouched = () => {};\n\n // istanbul ignore next\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n #validatorChange = () => {};\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { SkyI18nModule } from '@skyux/i18n';\nimport { SkyIconModule } from '@skyux/indicators';\nimport { SkyCountryFieldModule } from '@skyux/lookup';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { SkyPhoneFieldResourcesModule } from '../shared/sky-phone-field-resources.module';\n\nimport { SkyPhoneFieldInputDirective } from './phone-field-input.directive';\nimport { SkyPhoneFieldComponent } from './phone-field.component';\n\n@NgModule({\n declarations: [SkyPhoneFieldComponent, SkyPhoneFieldInputDirective],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n SkyCountryFieldModule,\n SkyI18nModule,\n SkyIconModule,\n SkyPhoneFieldResourcesModule,\n SkyThemeModule,\n ],\n exports: [SkyPhoneFieldComponent, SkyPhoneFieldInputDirective],\n})\nexport class SkyPhoneFieldModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2.SkyPhoneFieldAdapterService","i8","i1.SkyPhoneFieldAdapterService","i2.SkyPhoneFieldComponent"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@skyux/phone-field",
|
|
3
|
-
"version": "7.21.
|
|
3
|
+
"version": "7.21.2",
|
|
4
4
|
"author": "Blackbaud, Inc.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"blackbaud",
|
|
@@ -46,12 +46,12 @@
|
|
|
46
46
|
"@angular/core": "^14.2.11",
|
|
47
47
|
"@angular/forms": "^14.2.11",
|
|
48
48
|
"@angular/platform-browser": "^14.2.11",
|
|
49
|
-
"@skyux-sdk/testing": "7.21.
|
|
50
|
-
"@skyux/forms": "7.21.
|
|
51
|
-
"@skyux/i18n": "7.21.
|
|
52
|
-
"@skyux/indicators": "7.21.
|
|
53
|
-
"@skyux/lookup": "7.21.
|
|
54
|
-
"@skyux/theme": "7.21.
|
|
49
|
+
"@skyux-sdk/testing": "7.21.2",
|
|
50
|
+
"@skyux/forms": "7.21.2",
|
|
51
|
+
"@skyux/i18n": "7.21.2",
|
|
52
|
+
"@skyux/indicators": "7.21.2",
|
|
53
|
+
"@skyux/lookup": "7.21.2",
|
|
54
|
+
"@skyux/theme": "7.21.2"
|
|
55
55
|
},
|
|
56
56
|
"dependencies": {
|
|
57
57
|
"google-libphonenumber": "3.2.31",
|