@skyux/phone-field 8.2.6 → 8.2.7

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.
@@ -1258,7 +1258,7 @@
1258
1258
  "sources": [
1259
1259
  {
1260
1260
  "fileName": "projects/phone-field/src/modules/phone-field/phone-field-input.directive.ts",
1261
- "line": 128,
1261
+ "line": 129,
1262
1262
  "character": 2
1263
1263
  }
1264
1264
  ],
@@ -1394,7 +1394,7 @@
1394
1394
  "sources": [
1395
1395
  {
1396
1396
  "fileName": "projects/phone-field/src/modules/phone-field/phone-field-input.directive.ts",
1397
- "line": 89,
1397
+ "line": 90,
1398
1398
  "character": 9
1399
1399
  }
1400
1400
  ],
@@ -1427,7 +1427,7 @@
1427
1427
  "sources": [
1428
1428
  {
1429
1429
  "fileName": "projects/phone-field/src/modules/phone-field/phone-field-input.directive.ts",
1430
- "line": 68,
1430
+ "line": 69,
1431
1431
  "character": 13
1432
1432
  }
1433
1433
  ],
@@ -1439,7 +1439,7 @@
1439
1439
  "kindString": "Get signature",
1440
1440
  "flags": {},
1441
1441
  "comment": {
1442
- "shortText": "Whether to disable the phone field.",
1442
+ "shortText": "Whether to disable the phone field on template-driven forms. Don't use this input on reactive forms because they may overwrite the input or leave the control out of sync.\nTo set the disabled state on reactive forms, use the `FormControl` instead.",
1443
1443
  "tags": [
1444
1444
  {
1445
1445
  "tag": "default",
@@ -1461,7 +1461,7 @@
1461
1461
  "kindString": "Set signature",
1462
1462
  "flags": {},
1463
1463
  "comment": {
1464
- "shortText": "Whether to disable the phone field.",
1464
+ "shortText": "Whether to disable the phone field on template-driven forms. Don't use this input on reactive forms because they may overwrite the input or leave the control out of sync.\nTo set the disabled state on reactive forms, use the `FormControl` instead.",
1465
1465
  "tags": [
1466
1466
  {
1467
1467
  "tag": "default",
@@ -1500,7 +1500,7 @@
1500
1500
  "sources": [
1501
1501
  {
1502
1502
  "fileName": "projects/phone-field/src/modules/phone-field/phone-field-input.directive.ts",
1503
- "line": 160,
1503
+ "line": 161,
1504
1504
  "character": 9
1505
1505
  }
1506
1506
  ],
@@ -1537,7 +1537,7 @@
1537
1537
  "sources": [
1538
1538
  {
1539
1539
  "fileName": "projects/phone-field/src/modules/phone-field/phone-field-input.directive.ts",
1540
- "line": 182,
1540
+ "line": 183,
1541
1541
  "character": 9
1542
1542
  }
1543
1543
  ],
@@ -1574,7 +1574,7 @@
1574
1574
  "sources": [
1575
1575
  {
1576
1576
  "fileName": "projects/phone-field/src/modules/phone-field/phone-field-input.directive.ts",
1577
- "line": 140,
1577
+ "line": 141,
1578
1578
  "character": 9
1579
1579
  }
1580
1580
  ],
@@ -1625,7 +1625,7 @@
1625
1625
  "sources": [
1626
1626
  {
1627
1627
  "fileName": "projects/phone-field/src/modules/phone-field/phone-field-input.directive.ts",
1628
- "line": 204,
1628
+ "line": 205,
1629
1629
  "character": 9
1630
1630
  }
1631
1631
  ],
@@ -1672,7 +1672,7 @@
1672
1672
  "sources": [
1673
1673
  {
1674
1674
  "fileName": "projects/phone-field/src/modules/phone-field/phone-field-input.directive.ts",
1675
- "line": 192,
1675
+ "line": 193,
1676
1676
  "character": 9
1677
1677
  }
1678
1678
  ],
@@ -1735,7 +1735,7 @@
1735
1735
  "sources": [
1736
1736
  {
1737
1737
  "fileName": "projects/phone-field/src/modules/phone-field/phone-field-input.directive.ts",
1738
- "line": 209,
1738
+ "line": 210,
1739
1739
  "character": 9
1740
1740
  }
1741
1741
  ],
@@ -1777,7 +1777,7 @@
1777
1777
  "sources": [
1778
1778
  {
1779
1779
  "fileName": "projects/phone-field/src/modules/phone-field/phone-field-input.directive.ts",
1780
- "line": 227,
1780
+ "line": 228,
1781
1781
  "character": 9
1782
1782
  }
1783
1783
  ],
@@ -1859,7 +1859,7 @@
1859
1859
  "sources": [
1860
1860
  {
1861
1861
  "fileName": "projects/phone-field/src/modules/phone-field/phone-field-input.directive.ts",
1862
- "line": 231,
1862
+ "line": 232,
1863
1863
  "character": 9
1864
1864
  }
1865
1865
  ],
@@ -1928,7 +1928,7 @@
1928
1928
  "sources": [
1929
1929
  {
1930
1930
  "fileName": "projects/phone-field/src/modules/phone-field/phone-field-input.directive.ts",
1931
- "line": 235,
1931
+ "line": 236,
1932
1932
  "character": 9
1933
1933
  }
1934
1934
  ],
@@ -1997,7 +1997,7 @@
1997
1997
  "sources": [
1998
1998
  {
1999
1999
  "fileName": "projects/phone-field/src/modules/phone-field/phone-field-input.directive.ts",
2000
- "line": 243,
2000
+ "line": 244,
2001
2001
  "character": 9
2002
2002
  }
2003
2003
  ],
@@ -2053,7 +2053,7 @@
2053
2053
  "sources": [
2054
2054
  {
2055
2055
  "fileName": "projects/phone-field/src/modules/phone-field/phone-field-input.directive.ts",
2056
- "line": 251,
2056
+ "line": 252,
2057
2057
  "character": 9
2058
2058
  }
2059
2059
  ],
@@ -2123,7 +2123,7 @@
2123
2123
  "sources": [
2124
2124
  {
2125
2125
  "fileName": "projects/phone-field/src/modules/phone-field/phone-field-input.directive.ts",
2126
- "line": 221,
2126
+ "line": 222,
2127
2127
  "character": 9
2128
2128
  }
2129
2129
  ],
@@ -34,7 +34,8 @@ const SKY_PHONE_FIELD_VALIDATOR = {
34
34
  */
35
35
  export class SkyPhoneFieldInputDirective {
36
36
  /**
37
- * Whether to disable the phone field.
37
+ * Whether to disable the phone field on template-driven forms. Don't use this input on reactive forms because they may overwrite the input or leave the control out of sync.
38
+ * To set the disabled state on reactive forms, use the `FormControl` instead.
38
39
  * @default false
39
40
  */
40
41
  set disabled(value) {
@@ -287,4 +288,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
287
288
  type: HostListener,
288
289
  args: ['input', ['$event']]
289
290
  }] } });
290
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtZmllbGQtaW5wdXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3Bob25lLWZpZWxkL3NyYy9saWIvbW9kdWxlcy9waG9uZS1maWVsZC9waG9uZS1maWVsZC1pbnB1dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBR0wsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBR0wsUUFBUSxFQUNSLFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0wsYUFBYSxFQUNiLGlCQUFpQixHQUdsQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBTXpELE1BQU0sOEJBQThCLEdBQUc7SUFDckMsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDJCQUEyQixDQUFDO0lBQzFELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQUVGLE1BQU0seUJBQXlCLEdBQUc7SUFDaEMsT0FBTyxFQUFFLGFBQWE7SUFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQztJQUMxRCxLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUM7QUFFRjs7Ozs7Ozs7Ozs7O0dBWUc7QUFLSCxNQUFNLE9BQU8sMkJBQTJCO0lBR3RDOzs7T0FHRztJQUNILElBQ1csUUFBUSxDQUFDLEtBQTBC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LHdEQUFxQixFQUFFLGVBQWUsRUFBRSxJQUFJO3dCQUNoRCx1QkFBQSxJQUFJLHdEQUFxQixFQUFFLGNBQWMsRUFDekM7d0JBQ0EsT0FBTyx1QkFBQSxJQUFJLCtDQUFZLENBQUMsTUFBTSxDQUM1QixTQUFTLEVBQ1QsaUJBQWlCLENBQUMsYUFBYSxDQUNoQyxDQUFDO3FCQUNIO3lCQUFNO3dCQUNMLE9BQU8sdUJBQUEsSUFBSSwrQ0FBWSxDQUFDLE1BQU0sQ0FDNUIsU0FBUyxFQUNULGlCQUFpQixDQUFDLFFBQVEsQ0FDM0IsQ0FBQztxQkFDSDthQUNKO1NBQ0Y7YUFBTTtZQUNMLE9BQU8sV0FBVyxDQUFDO1NBQ3BCO0tBQ0Y7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLGtCQUFrQjtRQUNsQiwwQkFBMEI7UUFDMUIsT0FBTyxXQUFXLENBQUM7S0FDcEI7QUFDSCxDQUFDO3dIQWpUVSwyQkFBMkI7NEdBQTNCLDJCQUEyQiw0UEFGM0IsQ0FBQyw4QkFBOEIsRUFBRSx5QkFBeUIsQ0FBQzsyRkFFM0QsMkJBQTJCO2tCQUp2QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFNBQVMsRUFBRSxDQUFDLDhCQUE4QixFQUFFLHlCQUF5QixDQUFDO2lCQUN2RTs7MEJBd0VJLFFBQVE7OzBCQUNSLFFBQVE7NENBaEVBLFFBQVE7c0JBRGxCLEtBQUs7Z0JBc0JDLHVCQUF1QjtzQkFEN0IsS0FBSztnQkF3R0MsYUFBYTtzQkFEbkIsWUFBWTt1QkFBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBYTNCLFdBQVc7c0JBRGpCLFlBQVk7dUJBQUMsTUFBTTtnQkFNYixhQUFhO3NCQURuQixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIGZvcndhcmRSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgTkdfVkFMSURBVE9SUyxcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvcixcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBQaG9uZU51bWJlckZvcm1hdCwgUGhvbmVOdW1iZXJVdGlsIH0gZnJvbSAnZ29vZ2xlLWxpYnBob25lbnVtYmVyJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreVBob25lRmllbGRBZGFwdGVyU2VydmljZSB9IGZyb20gJy4vcGhvbmUtZmllbGQtYWRhcHRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNreVBob25lRmllbGRDb21wb25lbnQgfSBmcm9tICcuL3Bob25lLWZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lQaG9uZUZpZWxkQ291bnRyeSB9IGZyb20gJy4vdHlwZXMvY291bnRyeSc7XG5cbmNvbnN0IFNLWV9QSE9ORV9GSUVMRF9WQUxVRV9BQ0NFU1NPUiA9IHtcbiAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNreVBob25lRmllbGRJbnB1dERpcmVjdGl2ZSksXG4gIG11bHRpOiB0cnVlLFxufTtcblxuY29uc3QgU0tZX1BIT05FX0ZJRUxEX1ZBTElEQVRPUiA9IHtcbiAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2t5UGhvbmVGaWVsZElucHV0RGlyZWN0aXZlKSxcbiAgbXVsdGk6IHRydWUsXG59O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBidXR0b24sIHNlYXJjaCBpbnB1dCwgYW5kIHRleHQgaW5wdXQgZm9yIGVudGVyaW5nIGFuZCB2YWxpZGF0aW5nXG4gKiBpbnRlcm5hdGlvbmFsIHBob25lIG51bWJlcnMuIFBsYWNlIHRoaXMgYXR0cmlidXRlIG9uIGFuIGBpbnB1dGAgZWxlbWVudCwgYW5kIHdyYXBcbiAqIHRoYXQgZWxlbWVudCBpbiBhIGBza3ktcGhvbmUtZmllbGRgIGNvbXBvbmVudC4gQnkgZGVmYXVsdCwgdGhlIGNvdW50cnkgc2VsZWN0b3JcbiAqIGJ1dHRvbiBkaXNwbGF5cyBhIGZsYWcgaWNvbiBmb3IgdGhlIGRlZmF1bHQgY291bnRyeSwgYW5kIHRoZSBwaG9uZSBudW1iZXIgaW5wdXRcbiAqIGRpc3BsYXlzIGEgc2FtcGxlIG9mIHRoZSBjb3JyZWN0IHBob25lIG51bWJlciBmb3JtYXQuIFdoZW4gdXNlcnMgc2VsZWN0IHRoZSBjb3VudHJ5XG4gKiBzZWxlY3RvciBidXR0b24sIHRoZXkgZXhwb3NlIHRoZSBjb3VudHJ5IHNlYXJjaCBpbnB1dCwgd2hpY2ggaXNcbiAqIFthbiBhdXRvY29tcGxldGUgaW5wdXRdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9hdXRvY29tcGxldGUpXG4gKiB0aGF0IGFsbG93cyB0aGVtIHRvIHNlbGVjdCBkaWZmZXJlbnQgY291bnRyaWVzLiBXaGVuIHVzZXJzIGVudGVyIGArYCBmb2xsb3dlZCBieSBhblxuICogaW50ZXJuYXRpb25hbCBkaWFsIGNvZGUgaW4gdGhlIHBob25lIG51bWJlciBpbnB1dCwgdGhlIGNvdW50cnkgYXV0b21hdGljYWxseSBzd2l0Y2hlc1xuICogdG8gdGhlIGNvdW50cnkgYXNzb2NpYXRlZCB3aXRoIHRoZSBkaWFsIGNvZGUuXG4gKiBAcmVxdWlyZWRcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3NreVBob25lRmllbGRJbnB1dF0nLFxuICBwcm92aWRlcnM6IFtTS1lfUEhPTkVfRklFTERfVkFMVUVfQUNDRVNTT1IsIFNLWV9QSE9ORV9GSUVMRF9WQUxJREFUT1JdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lQaG9uZUZpZWxkSW5wdXREaXJlY3RpdmVcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvclxue1xuICAvKipcbiAgICogV2hldGhlciB0byBkaXNhYmxlIHRoZSBwaG9uZSBmaWVsZC5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICBjb25zdCBjb2VyY2VkVmFsdWUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIGlmICh0aGlzLiNwaG9uZUZpZWxkQ29tcG9uZW50KSB7XG4gICAgICB0aGlzLiNwaG9uZUZpZWxkQ29tcG9uZW50LmNvdW50cnlTZWxlY3REaXNhYmxlZCA9IGNvZXJjZWRWYWx1ZTtcbiAgICAgIHRoaXMuI2FkYXB0ZXJTZXJ2aWNlPy5zZXRFbGVtZW50RGlzYWJsZWRTdGF0ZSh0aGlzLiNlbFJlZiwgY29lcmNlZFZhbHVlKTtcbiAgICB9XG4gICAgdGhpcy4jX2Rpc2FibGVkID0gY29lcmNlZFZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jX2Rpc2FibGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcHJldmVudCB2YWxpZGF0aW9uIG9uIHRoZSBwaG9uZSBudW1iZXIgaW5wdXQuIEZvciB2YWxpZGF0aW9uLFxuICAgKiBwaG9uZSBudW1iZXJzIGFyZSBkcml2ZW4gdGhyb3VnaCB0aGUgYG5nTW9kZWxgIGF0dHJpYnV0ZSB0aGF0IHlvdSBzcGVjaWZ5IG9uIGFuXG4gICAqIGBpbnB1dGAgZWxlbWVudCBvciBvbiBhIGBGb3JtQ29udHJvbGAgaW4gYSByZWFjdGl2ZSBmb3JtLiBUbyBwcmV2ZW50IHZhbGlkYXRpb24sXG4gICAqIHNldCB0aGlzIHByb3BlcnR5IHRvIGB0cnVlYC5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBza3lQaG9uZUZpZWxkTm9WYWxpZGF0ZTogYm9vbGVhbiB8IHVuZGVmaW5lZCA9IGZhbHNlO1xuXG4gIHNldCAjbW9kZWxWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgY29uc3QgdmFsdWVPckRlZmF1bHQgPSB2YWx1ZSA/PyAnJztcbiAgICB0aGlzLiNfbW9kZWxWYWx1ZSA9IHZhbHVlT3JEZWZhdWx0O1xuICAgIHRoaXMuI2FkYXB0ZXJTZXJ2aWNlPy5zZXRFbGVtZW50VmFsdWUodGhpcy4jZWxSZWYsIHZhbHVlT3JEZWZhdWx0KTtcblxuICAgIGlmICh2YWx1ZU9yRGVmYXVsdCkge1xuICAgICAgY29uc3QgZm9ybWF0dGVkVmFsdWUgPSB0aGlzLiNmb3JtYXROdW1iZXIodmFsdWVPckRlZmF1bHQudG9TdHJpbmcoKSk7XG5cbiAgICAgIHRoaXMuI29uQ2hhbmdlKGZvcm1hdHRlZFZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy4jb25DaGFuZ2UodmFsdWVPckRlZmF1bHQpO1xuICAgIH1cbiAgICB0aGlzLiN2YWxpZGF0b3JDaGFuZ2UoKTtcbiAgfVxuXG4gIGdldCAjbW9kZWxWYWx1ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLiNfbW9kZWxWYWx1ZTtcbiAgfVxuXG4gICNjb250cm9sOiBBYnN0cmFjdENvbnRyb2wgfCB1bmRlZmluZWQ7XG5cbiAgI3RleHRDaGFuZ2VzOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPiB8IHVuZGVmaW5lZDtcblxuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgI3Bob25lVXRpbHMgPSBQaG9uZU51bWJlclV0aWwuZ2V0SW5zdGFuY2UoKTtcblxuICAjX2Rpc2FibGVkITogYm9vbGVhbjtcblxuICAjX21vZGVsVmFsdWUgPSAnJztcblxuICAjY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmO1xuICAjZWxSZWY6IEVsZW1lbnRSZWY7XG5cbiAgI2FkYXB0ZXJTZXJ2aWNlOiBTa3lQaG9uZUZpZWxkQWRhcHRlclNlcnZpY2UgfCB1bmRlZmluZWQ7XG4gICNwaG9uZUZpZWxkQ29tcG9uZW50OiBTa3lQaG9uZUZpZWxkQ29tcG9uZW50IHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBlbFJlZjogRWxlbWVudFJlZixcbiAgICBAT3B0aW9uYWwoKSBhZGFwdGVyU2VydmljZT86IFNreVBob25lRmllbGRBZGFwdGVyU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBwaG9uZUZpZWxkQ29tcG9uZW50PzogU2t5UGhvbmVGaWVsZENvbXBvbmVudFxuICApIHtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3RvciA9IGNoYW5nZURldGVjdG9yO1xuICAgIHRoaXMuI2VsUmVmID0gZWxSZWY7XG4gICAgdGhpcy4jYWRhcHRlclNlcnZpY2UgPSBhZGFwdGVyU2VydmljZTtcbiAgICB0aGlzLiNwaG9uZUZpZWxkQ29tcG9uZW50ID0gcGhvbmVGaWVsZENvbXBvbmVudDtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuI3Bob25lRmllbGRDb21wb25lbnQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ1lvdSBtdXN0IHdyYXAgdGhlIGBza3lQaG9uZUZpZWxkSW5wdXRgIGRpcmVjdGl2ZSB3aXRoaW4gYSAnICtcbiAgICAgICAgICAnYDxza3ktcGhvbmUtZmllbGQ+YCBjb21wb25lbnQhJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLiNhZGFwdGVyU2VydmljZT8uc2V0RWxlbWVudFR5cGUodGhpcy4jZWxSZWYpO1xuICAgIHRoaXMuI2FkYXB0ZXJTZXJ2aWNlPy5hZGRFbGVtZW50Q2xhc3ModGhpcy4jZWxSZWYsICdza3ktZm9ybS1jb250cm9sJyk7XG4gICAgaWYgKHRoaXMuI3Bob25lRmllbGRDb21wb25lbnQ/LnNlbGVjdGVkQ291bnRyeT8uZXhhbXBsZU51bWJlcikge1xuICAgICAgdGhpcy4jYWRhcHRlclNlcnZpY2U/LnNldEVsZW1lbnRQbGFjZWhvbGRlcihcbiAgICAgICAgdGhpcy4jZWxSZWYsXG4gICAgICAgIHRoaXMuI3Bob25lRmllbGRDb21wb25lbnQuc2VsZWN0ZWRDb3VudHJ5LmV4YW1wbGVOdW1iZXJcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy4jYWRhcHRlclNlcnZpY2U/LnNldEFyaWFMYWJlbCh0aGlzLiNlbFJlZik7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuI3Bob25lRmllbGRDb21wb25lbnQ/LnNlbGVjdGVkQ291bnRyeUNoYW5nZVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoY291bnRyeTogU2t5UGhvbmVGaWVsZENvdW50cnkpID0+IHtcbiAgICAgICAgdGhpcy4jbW9kZWxWYWx1ZSA9IHRoaXMuI2VsUmVmLm5hdGl2ZUVsZW1lbnQudmFsdWU7XG4gICAgICAgIGlmIChjb3VudHJ5Py5leGFtcGxlTnVtYmVyKSB7XG4gICAgICAgICAgdGhpcy4jYWRhcHRlclNlcnZpY2U/LnNldEVsZW1lbnRQbGFjZWhvbGRlcihcbiAgICAgICAgICAgIHRoaXMuI2VsUmVmLFxuICAgICAgICAgICAgY291bnRyeS5leGFtcGxlTnVtYmVyXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAvLyBUaGlzIGlzIG5lZWRlZCB0byBhZGRyZXNzIGEgYnVnIGluIEFuZ3VsYXIgNCwgd2hlcmUgdGhlIHZhbHVlIGlzIG5vdCBjaGFuZ2VkIG9uIHRoZSB2aWV3LlxuICAgIC8vIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMTM3OTJcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh0aGlzLiNjb250cm9sICYmIHRoaXMuI21vZGVsVmFsdWUpIHtcbiAgICAgIHRoaXMuI2NvbnRyb2wuc2V0VmFsdWUodGhpcy4jbW9kZWxWYWx1ZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKipcbiAgICogV3JpdGVzIHRoZSBuZXcgdmFsdWUgZm9yIHJlYWN0aXZlIGZvcm1zIG9uIGNoYW5nZSBldmVudHMgb24gdGhlIGlucHV0IGVsZW1lbnRcbiAgICogQHBhcmFtIGV2ZW50IFRoZSBjaGFuZ2UgZXZlbnQgdGhhdCB3YXMgcmVjZWl2ZWRcbiAgICovXG4gIEBIb3N0TGlzdGVuZXIoJ2NoYW5nZScsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbklucHV0Q2hhbmdlKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuI3RleHRDaGFuZ2VzKSB7XG4gICAgICB0aGlzLiNzZXR1cFRleHRDaGFuZ2VTdWJzY3JpcHRpb24oZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy4jdGV4dENoYW5nZXMubmV4dChldmVudC50YXJnZXQudmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBNYXJrcyByZWFjdGl2ZSBmb3JtIGNvbnRyb2xzIGFzIHRvdWNoZWQgb24gaW5wdXQgYmx1ciBldmVudHNcbiAgICovXG4gIEBIb3N0TGlzdGVuZXIoJ2JsdXInKVxuICBwdWJsaWMgb25JbnB1dEJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy4jb25Ub3VjaGVkKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdpbnB1dCcsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbklucHV0VHlwaW5nKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuI3RleHRDaGFuZ2VzKSB7XG4gICAgICB0aGlzLiNzZXR1cFRleHRDaGFuZ2VTdWJzY3JpcHRpb24oZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy4jdGV4dENoYW5nZXMubmV4dChldmVudC50YXJnZXQudmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBXcml0ZXMgdGhlIG5ldyB2YWx1ZSBmb3IgcmVhY3RpdmUgZm9ybXNcbiAgICogQHBhcmFtIHZhbHVlIFRoZSBuZXcgdmFsdWUgZm9yIHRoZSBpbnB1dFxuICAgKi9cbiAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuI3Bob25lRmllbGRDb21wb25lbnQ/LnNldENvdW50cnlCeURpYWxDb2RlKHZhbHVlKTtcblxuICAgIHRoaXMuI21vZGVsVmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuI29uQ2hhbmdlID0gZm47XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLiNvblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy4jdmFsaWRhdG9yQ2hhbmdlID0gZm47XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgZGlzYWJsZWQgc3RhdGUgb24gdGhlIGlucHV0XG4gICAqIEBwYXJhbSBpc0Rpc2FibGVkIHRoZSBuZXcgdmFsdWUgb2YgdGhlIGlucHV0J3MgZGlzYWJsZWQgc3RhdGVcbiAgICovXG4gIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZSdzIHRoZSBmb3JtIGNvbnRyb2wncyBjdXJyZW50IHZhbHVlXG4gICAqIEBwYXJhbSBjb250cm9sIHRoZSBmb3JtIGNvbnRyb2wgZm9yIHRoZSBpbnB1dFxuICAgKi9cbiAgcHVibGljIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBpZiAoIXRoaXMuI2NvbnRyb2wpIHtcbiAgICAgIHRoaXMuI2NvbnRyb2wgPSBjb250cm9sO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnNreVBob25lRmllbGROb1ZhbGlkYXRlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZSA9IGNvbnRyb2wudmFsdWU7XG5cbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICB0aGlzLiNwaG9uZUZpZWxkQ29tcG9uZW50Py5zZWxlY3RlZENvdW50cnkgJiZcbiAgICAgICF0aGlzLiN2YWxpZGF0ZU51bWJlcih2YWx1ZSlcbiAgICApIHtcbiAgICAgIGlmICghdGhpcy4jdGV4dENoYW5nZXMpIHtcbiAgICAgICAgLy8gTWFyayB0aGUgaW52YWxpZCBjb250cm9sIGFzIHRvdWNoZWQgc28gdGhhdCB0aGUgaW5wdXQncyBpbnZhbGlkIENTUyBzdHlsZXMgYXBwZWFyLlxuICAgICAgICAvLyAoVGhpcyBpcyBvbmx5IHJlcXVpcmVkIHdoZW4gdGhlIGludmFsaWQgdmFsdWUgaXMgc2V0IGJ5IHRoZSBGb3JtQ29udHJvbCBjb25zdHJ1Y3Rvci4pXG4gICAgICAgIC8vIFdlIGRvbid0IGRvIHRoaXMgaWYgdGhlIGlucHV0IGlzIHRoZSBhY3RpdmUgZWxlbWVudCBzbyB0aGF0IHdlIGRvbid0IHNob3cgdmFsaWRhdGlvblxuICAgICAgICAvLyBlcnJvcnMgdW5sZXNzIGl0IGlzIGludmFsaWQgb24gaW5pdGlhbGl6YXRpb24gb3IgdGhlIGlucHV0IGhhcyBiZWVuIGJsdXJyZWQuXG4gICAgICAgIGNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBza3lQaG9uZUZpZWxkOiB7XG4gICAgICAgICAgaW52YWxpZDogdmFsdWUsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gICNzZXR1cFRleHRDaGFuZ2VTdWJzY3JpcHRpb24odGV4dDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy4jdGV4dENoYW5nZXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRleHQpO1xuXG4gICAgdGhpcy4jdGV4dENoYW5nZXNcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSg1MDApLCB0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChuZXdWYWx1ZSkgPT4ge1xuICAgICAgICB0aGlzLndyaXRlVmFsdWUobmV3VmFsdWUpO1xuICAgICAgfSk7XG4gIH1cblxuICAjdmFsaWRhdGVOdW1iZXIocGhvbmVOdW1iZXI6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBudW1iZXJPYmogPSB0aGlzLiNwaG9uZVV0aWxzLnBhcnNlQW5kS2VlcFJhd0lucHV0KFxuICAgICAgICBwaG9uZU51bWJlcixcbiAgICAgICAgdGhpcy4jcGhvbmVGaWVsZENvbXBvbmVudD8uc2VsZWN0ZWRDb3VudHJ5Py5pc28yXG4gICAgICApO1xuXG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuI3Bob25lRmllbGRDb21wb25lbnQgJiZcbiAgICAgICAgIXRoaXMuI3Bob25lRmllbGRDb21wb25lbnQuYWxsb3dFeHRlbnNpb25zICYmXG4gICAgICAgIG51bWJlck9iai5nZXRFeHRlbnNpb24oKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXMuI3Bob25lVXRpbHMuaXNWYWxpZE51bWJlcihudW1iZXJPYmopO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRm9ybWF0J3MgdGhlIGdpdmVuIHBob25lIG51bWJlciBiYXNlZCBvbiB0aGUgY3VycmVudGx5IHNlbGVjdGVkIGNvdW50cnkuXG4gICAqIEBwYXJhbSBwaG9uZU51bWJlciBUaGUgbnVtYmVyIHRvIGZvcm1hdFxuICAgKi9cbiAgI2Zvcm1hdE51bWJlcihwaG9uZU51bWJlcjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgbnVtYmVyT2JqID0gdGhpcy4jcGhvbmVVdGlscy5wYXJzZUFuZEtlZXBSYXdJbnB1dChcbiAgICAgICAgcGhvbmVOdW1iZXIsXG4gICAgICAgIHRoaXMuI3Bob25lRmllbGRDb21wb25lbnQ/LnNlbGVjdGVkQ291bnRyeT8uaXNvMlxuICAgICAgKTtcbiAgICAgIGlmICh0aGlzLiNwaG9uZVV0aWxzLmlzUG9zc2libGVOdW1iZXIobnVtYmVyT2JqKSkge1xuICAgICAgICBzd2l0Y2ggKHRoaXMuI3Bob25lRmllbGRDb21wb25lbnQ/LnJldHVybkZvcm1hdCkge1xuICAgICAgICAgIGNhc2UgJ2ludGVybmF0aW9uYWwnOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuI3Bob25lVXRpbHMuZm9ybWF0KFxuICAgICAgICAgICAgICBudW1iZXJPYmosXG4gICAgICAgICAgICAgIFBob25lTnVtYmVyRm9ybWF0LklOVEVSTkFUSU9OQUxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgY2FzZSAnbmF0aW9uYWwnOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuI3Bob25lVXRpbHMuZm9ybWF0KFxuICAgICAgICAgICAgICBudW1iZXJPYmosXG4gICAgICAgICAgICAgIFBob25lTnVtYmVyRm9ybWF0Lk5BVElPTkFMXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGNhc2UgJ2RlZmF1bHQnOlxuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIHRoaXMuI3Bob25lRmllbGRDb21wb25lbnQ/LnNlbGVjdGVkQ291bnRyeT8uaXNvMiAhPT1cbiAgICAgICAgICAgICAgdGhpcy4jcGhvbmVGaWVsZENvbXBvbmVudD8uZGVmYXVsdENvdW50cnlcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICByZXR1cm4gdGhpcy4jcGhvbmVVdGlscy5mb3JtYXQoXG4gICAgICAgICAgICAgICAgbnVtYmVyT2JqLFxuICAgICAgICAgICAgICAgIFBob25lTnVtYmVyRm9ybWF0LklOVEVSTkFUSU9OQUxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLiNwaG9uZVV0aWxzLmZvcm1hdChcbiAgICAgICAgICAgICAgICBudW1iZXJPYmosXG4gICAgICAgICAgICAgICAgUGhvbmVOdW1iZXJGb3JtYXQuTkFUSU9OQUxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHBob25lTnVtYmVyO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgIHJldHVybiBwaG9uZU51bWJlcjtcbiAgICB9XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uICwgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICNvbkNoYW5nZSA9IChfOiBzdHJpbmcgfCB1bmRlZmluZWQpID0+IHt9O1xuXG4gIC8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgI29uVG91Y2hlZCA9ICgpID0+IHt9O1xuXG4gIC8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgI3ZhbGlkYXRvckNoYW5nZSA9ICgpID0+IHt9O1xufVxuIl19
291
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtZmllbGQtaW5wdXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3Bob25lLWZpZWxkL3NyYy9saWIvbW9kdWxlcy9waG9uZS1maWVsZC9waG9uZS1maWVsZC1pbnB1dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBR0wsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBR0wsUUFBUSxFQUNSLFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0wsYUFBYSxFQUNiLGlCQUFpQixHQUdsQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBTXpELE1BQU0sOEJBQThCLEdBQUc7SUFDckMsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDJCQUEyQixDQUFDO0lBQzFELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQUVGLE1BQU0seUJBQXlCLEdBQUc7SUFDaEMsT0FBTyxFQUFFLGFBQWE7SUFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQztJQUMxRCxLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUM7QUFFRjs7Ozs7Ozs7Ozs7O0dBWUc7QUFLSCxNQUFNLE9BQU8sMkJBQTJCO0lBR3RDOzs7O09BSUc7SUFDSCxJQUNXLFFBQVEsQ0FBQyxLQUEwQjtRQUM1QyxNQUFNLFlBQVksR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsRCxJQUFJLHVCQUFBLElBQUksd0RBQXFCLEVBQUU7WUFDN0IsdUJBQUEsSUFBSSx3REFBcUIsQ0FBQyxxQkFBcUIsR0FBRyxZQUFZLENBQUM7WUFDL0QsdUJBQUEsSUFBSSxtREFBZ0IsRUFBRSx1QkFBdUIsQ0FBQyx1QkFBQSxJQUFJLDBDQUFPLEVBQUUsWUFBWSxDQUFDLENBQUM7U0FDMUU7UUFDRCx1QkFBQSxJQUFJLDBDQUFjLFlBQVksTUFBQSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFXLFFBQVE7UUFDakIsT0FBTyx1QkFBQSxJQUFJLDhDQUFXLENBQUM7SUFDekIsQ0FBQztJQWlERCxZQUNFLGNBQWlDLEVBQ2pDLEtBQWlCLEVBQ0wsY0FBNEMsRUFDNUMsbUJBQTRDOztRQW5EMUQ7Ozs7OztXQU1HO1FBRUksNEJBQXVCLEdBQXdCLEtBQUssQ0FBQztRQXFCNUQsdURBQXNDO1FBRXRDLDJEQUFrRDtRQUVsRCxxREFBaUIsSUFBSSxPQUFPLEVBQVEsRUFBQztRQUVyQyxrREFBYyxlQUFlLENBQUMsV0FBVyxFQUFFLEVBQUM7UUFFNUMseURBQXFCO1FBRXJCLG1EQUFlLEVBQUUsRUFBQztRQUVsQiw4REFBbUM7UUFDbkMscURBQW1CO1FBRW5CLDhEQUF5RDtRQUN6RCxtRUFBeUQ7UUFpUHpELG9HQUFvRztRQUNwRyxnREFBWSxDQUFDLENBQXFCLEVBQUUsRUFBRSxHQUFFLENBQUMsRUFBQztRQUUxQyx1QkFBdUI7UUFDdkIsZ0VBQWdFO1FBQ2hFLGlEQUFhLEdBQUcsRUFBRSxHQUFFLENBQUMsRUFBQztRQUV0Qix1QkFBdUI7UUFDdkIsZ0VBQWdFO1FBQ2hFLHVEQUFtQixHQUFHLEVBQUUsR0FBRSxDQUFDLEVBQUM7UUFsUDFCLHVCQUFBLElBQUksK0NBQW1CLGNBQWMsTUFBQSxDQUFDO1FBQ3RDLHVCQUFBLElBQUksc0NBQVUsS0FBSyxNQUFBLENBQUM7UUFDcEIsdUJBQUEsSUFBSSwrQ0FBbUIsY0FBYyxNQUFBLENBQUM7UUFDdEMsdUJBQUEsSUFBSSxvREFBd0IsbUJBQW1CLE1BQUEsQ0FBQztJQUNsRCxDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyx1QkFBQSxJQUFJLHdEQUFxQixFQUFFO1lBQzlCLE1BQU0sSUFBSSxLQUFLLENBQ2IsNERBQTREO2dCQUMxRCxnQ0FBZ0MsQ0FDbkMsQ0FBQztTQUNIO1FBRUQsdUJBQUEsSUFBSSxtREFBZ0IsRUFBRSxjQUFjLENBQUMsdUJBQUEsSUFBSSwwQ0FBTyxDQUFDLENBQUM7UUFDbEQsdUJBQUEsSUFBSSxtREFBZ0IsRUFBRSxlQUFlLENBQUMsdUJBQUEsSUFBSSwwQ0FBTyxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFDdkUsSUFBSSx1QkFBQSxJQUFJLHdEQUFxQixFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUU7WUFDN0QsdUJBQUEsSUFBSSxtREFBZ0IsRUFBRSxxQkFBcUIsQ0FDekMsdUJBQUEsSUFBSSwwQ0FBTyxFQUNYLHVCQUFBLElBQUksd0RBQXFCLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FDeEQsQ0FBQztTQUNIO1FBRUQsdUJBQUEsSUFBSSxtREFBZ0IsRUFBRSxZQUFZLENBQUMsdUJBQUEsSUFBSSwwQ0FBTyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVNLGVBQWU7UUFDcEIsdUJBQUEsSUFBSSx3REFBcUIsRUFBRSxxQkFBcUI7YUFDN0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyx1QkFBQSxJQUFJLGtEQUFlLENBQUMsQ0FBQzthQUNwQyxTQUFTLENBQUMsQ0FBQyxPQUE2QixFQUFFLEVBQUU7WUFDM0MsdUJBQUEsSUFBSSwwQ0FBZSx1QkFBQSxJQUFJLDBDQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssbURBQUEsQ0FBQztZQUNuRCxJQUFJLE9BQU8sRUFBRSxhQUFhLEVBQUU7Z0JBQzFCLHVCQUFBLElBQUksbURBQWdCLEVBQUUscUJBQXFCLENBQ3pDLHVCQUFBLElBQUksMENBQU8sRUFDWCxPQUFPLENBQUMsYUFBYSxDQUN0QixDQUFDO2FBQ0g7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVMLDRGQUE0RjtRQUM1Rix1REFBdUQ7UUFDdkQsMEJBQTBCO1FBQzFCLElBQUksdUJBQUEsSUFBSSw0Q0FBUyxJQUFJLHVCQUFBLElBQUksMkZBQVksRUFBRTtZQUNyQyx1QkFBQSxJQUFJLDRDQUFTLENBQUMsUUFBUSxDQUFDLHVCQUFBLElBQUksMkZBQVksRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQy9ELHVCQUFBLElBQUksbURBQWdCLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDdEM7SUFDSCxDQUFDO0lBRU0sV0FBVztRQUNoQix1QkFBQSxJQUFJLGtEQUFlLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDM0IsdUJBQUEsSUFBSSxrREFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7O09BR0c7SUFFSSxhQUFhLENBQUMsS0FBVTtRQUM3QixJQUFJLENBQUMsdUJBQUEsSUFBSSxnREFBYSxFQUFFO1lBQ3RCLHVCQUFBLElBQUksd0dBQTZCLE1BQWpDLElBQUksRUFBOEIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN2RDthQUFNO1lBQ0wsdUJBQUEsSUFBSSxnREFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzVDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBRUksV0FBVztRQUNoQix1QkFBQSxJQUFJLDhDQUFXLE1BQWYsSUFBSSxDQUFhLENBQUM7SUFDcEIsQ0FBQztJQUdNLGFBQWEsQ0FBQyxLQUFVO1FBQzdCLElBQUksQ0FBQyx1QkFBQSxJQUFJLGdEQUFhLEVBQUU7WUFDdEIsdUJBQUEsSUFBSSx3R0FBNkIsTUFBakMsSUFBSSxFQUE4QixLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3ZEO2FBQU07WUFDTCx1QkFBQSxJQUFJLGdEQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDNUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksVUFBVSxDQUFDLEtBQWE7UUFDN0IsdUJBQUEsSUFBSSx3REFBcUIsRUFBRSxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV2RCx1QkFBQSxJQUFJLDBDQUFlLEtBQUssbURBQUEsQ0FBQztJQUMzQixDQUFDO0lBRU0sZ0JBQWdCLENBQUMsRUFBdUM7UUFDN0QsdUJBQUEsSUFBSSx5Q0FBYSxFQUFFLE1BQUEsQ0FBQztJQUN0QixDQUFDO0lBRU0saUJBQWlCLENBQUMsRUFBYztRQUNyQyx1QkFBQSxJQUFJLDBDQUFjLEVBQUUsTUFBQSxDQUFDO0lBQ3ZCLENBQUM7SUFFTSx5QkFBeUIsQ0FBQyxFQUFjO1FBQzdDLHVCQUFBLElBQUksZ0RBQW9CLEVBQUUsTUFBQSxDQUFDO0lBQzdCLENBQUM7SUFFRDs7O09BR0c7SUFDSSxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUN6QyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztJQUM3QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksUUFBUSxDQUFDLE9BQXdCO1FBQ3RDLElBQUksQ0FBQyx1QkFBQSxJQUFJLDRDQUFTLEVBQUU7WUFDbEIsdUJBQUEsSUFBSSx3Q0FBWSxPQUFPLE1BQUEsQ0FBQztTQUN6QjtRQUVELElBQUksSUFBSSxDQUFDLHVCQUF1QixFQUFFO1lBQ2hDLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBRTVCLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsSUFDRSx1QkFBQSxJQUFJLHdEQUFxQixFQUFFLGVBQWU7WUFDMUMsQ0FBQyx1QkFBQSxJQUFJLDJGQUFnQixNQUFwQixJQUFJLEVBQWlCLEtBQUssQ0FBQyxFQUM1QjtZQUNBLElBQUksQ0FBQyx1QkFBQSxJQUFJLGdEQUFhLEVBQUU7Z0JBQ3RCLHFGQUFxRjtnQkFDckYsd0ZBQXdGO2dCQUN4Rix1RkFBdUY7Z0JBQ3ZGLCtFQUErRTtnQkFDL0UsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDO2FBQ3pCO1lBRUQsT0FBTztnQkFDTCxhQUFhLEVBQUU7b0JBQ2IsT0FBTyxFQUFFLEtBQUs7aUJBQ2Y7YUFDRixDQUFDO1NBQ0g7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Oys0QkFsTWUsS0FBeUI7SUFDdkMsTUFBTSxjQUFjLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FBQztJQUNuQyx1QkFBQSxJQUFJLDRDQUFnQixjQUFjLE1BQUEsQ0FBQztJQUNuQyx1QkFBQSxJQUFJLG1EQUFnQixFQUFFLGVBQWUsQ0FBQyx1QkFBQSxJQUFJLDBDQUFPLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFFbkUsSUFBSSxjQUFjLEVBQUU7UUFDbEIsTUFBTSxjQUFjLEdBQUcsdUJBQUEsSUFBSSx5RkFBYyxNQUFsQixJQUFJLEVBQWUsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFFckUsdUJBQUEsSUFBSSw2Q0FBVSxNQUFkLElBQUksRUFBVyxjQUFjLENBQUMsQ0FBQztLQUNoQztTQUFNO1FBQ0wsdUJBQUEsSUFBSSw2Q0FBVSxNQUFkLElBQUksRUFBVyxjQUFjLENBQUMsQ0FBQztLQUNoQztJQUNELHVCQUFBLElBQUksb0RBQWlCLE1BQXJCLElBQUksQ0FBbUIsQ0FBQztBQUMxQixDQUFDO0lBR0MsT0FBTyx1QkFBQSxJQUFJLGdEQUFhLENBQUM7QUFDM0IsQ0FBQywrSEFtTDRCLElBQVk7SUFDdkMsdUJBQUEsSUFBSSw0Q0FBZ0IsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQUEsQ0FBQztJQUU5Qyx1QkFBQSxJQUFJLGdEQUFhO1NBQ2QsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFBRSxTQUFTLENBQUMsdUJBQUEsSUFBSSxrREFBZSxDQUFDLENBQUM7U0FDdkQsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7UUFDdEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM1QixDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMscUdBRWUsV0FBbUI7SUFDakMsSUFBSTtRQUNGLE1BQU0sU0FBUyxHQUFHLHVCQUFBLElBQUksK0NBQVksQ0FBQyxvQkFBb0IsQ0FDckQsV0FBVyxFQUNYLHVCQUFBLElBQUksd0RBQXFCLEVBQUUsZUFBZSxFQUFFLElBQUksQ0FDakQsQ0FBQztRQUVGLElBQ0UsdUJBQUEsSUFBSSx3REFBcUI7WUFDekIsQ0FBQyx1QkFBQSxJQUFJLHdEQUFxQixDQUFDLGVBQWU7WUFDMUMsU0FBUyxDQUFDLFlBQVksRUFBRSxFQUN4QjtZQUNBLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxPQUFPLHVCQUFBLElBQUksK0NBQVksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7S0FDbEQ7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7QUFDSCxDQUFDLGlHQU1hLFdBQW1CO0lBQy9CLElBQUk7UUFDRixNQUFNLFNBQVMsR0FBRyx1QkFBQSxJQUFJLCtDQUFZLENBQUMsb0JBQW9CLENBQ3JELFdBQVcsRUFDWCx1QkFBQSxJQUFJLHdEQUFxQixFQUFFLGVBQWUsRUFBRSxJQUFJLENBQ2pELENBQUM7UUFDRixJQUFJLHVCQUFBLElBQUksK0NBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUNoRCxRQUFRLHVCQUFBLElBQUksd0RBQXFCLEVBQUUsWUFBWSxFQUFFO2dCQUMvQyxLQUFLLGVBQWU7b0JBQ2xCLE9BQU8sdUJBQUEsSUFBSSwrQ0FBWSxDQUFDLE1BQU0sQ0FDNUIsU0FBUyxFQUNULGlCQUFpQixDQUFDLGFBQWEsQ0FDaEMsQ0FBQztnQkFDSixLQUFLLFVBQVU7b0JBQ2IsT0FBTyx1QkFBQSxJQUFJLCtDQUFZLENBQUMsTUFBTSxDQUM1QixTQUFTLEVBQ1QsaUJBQWlCLENBQUMsUUFBUSxDQUMzQixDQUFDO2dCQUNKLEtBQUssU0FBUyxDQUFDO2dCQUNmO29CQUNFLElBQ0UsdUJBQUEsSUFBSSx3REFBcUIsRUFBRSxlQUFlLEVBQUUsSUFBSTt3QkFDaEQsdUJBQUEsSUFBSSx3REFBcUIsRUFBRSxjQUFjLEVBQ3pDO3dCQUNBLE9BQU8sdUJBQUEsSUFBSSwrQ0FBWSxDQUFDLE1BQU0sQ0FDNUIsU0FBUyxFQUNULGlCQUFpQixDQUFDLGFBQWEsQ0FDaEMsQ0FBQztxQkFDSDt5QkFBTTt3QkFDTCxPQUFPLHVCQUFBLElBQUksK0NBQVksQ0FBQyxNQUFNLENBQzVCLFNBQVMsRUFDVCxpQkFBaUIsQ0FBQyxRQUFRLENBQzNCLENBQUM7cUJBQ0g7YUFDSjtTQUNGO2FBQU07WUFDTCxPQUFPLFdBQVcsQ0FBQztTQUNwQjtLQUNGO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixrQkFBa0I7UUFDbEIsMEJBQTBCO1FBQzFCLE9BQU8sV0FBVyxDQUFDO0tBQ3BCO0FBQ0gsQ0FBQzt3SEFsVFUsMkJBQTJCOzRHQUEzQiwyQkFBMkIsNFBBRjNCLENBQUMsOEJBQThCLEVBQUUseUJBQXlCLENBQUM7MkZBRTNELDJCQUEyQjtrQkFKdkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxTQUFTLEVBQUUsQ0FBQyw4QkFBOEIsRUFBRSx5QkFBeUIsQ0FBQztpQkFDdkU7OzBCQXlFSSxRQUFROzswQkFDUixRQUFROzRDQWhFQSxRQUFRO3NCQURsQixLQUFLO2dCQXNCQyx1QkFBdUI7c0JBRDdCLEtBQUs7Z0JBd0dDLGFBQWE7c0JBRG5CLFlBQVk7dUJBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQWEzQixXQUFXO3NCQURqQixZQUFZO3VCQUFDLE1BQU07Z0JBTWIsYUFBYTtzQkFEbkIsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBmb3J3YXJkUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIE5HX1ZBTElEQVRPUlMsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3IsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgUGhvbmVOdW1iZXJGb3JtYXQsIFBob25lTnVtYmVyVXRpbCB9IGZyb20gJ2dvb2dsZS1saWJwaG9uZW51bWJlcic7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lQaG9uZUZpZWxkQWRhcHRlclNlcnZpY2UgfSBmcm9tICcuL3Bob25lLWZpZWxkLWFkYXB0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTa3lQaG9uZUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9waG9uZS1maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5UGhvbmVGaWVsZENvdW50cnkgfSBmcm9tICcuL3R5cGVzL2NvdW50cnknO1xuXG5jb25zdCBTS1lfUEhPTkVfRklFTERfVkFMVUVfQUNDRVNTT1IgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTa3lQaG9uZUZpZWxkSW5wdXREaXJlY3RpdmUpLFxuICBtdWx0aTogdHJ1ZSxcbn07XG5cbmNvbnN0IFNLWV9QSE9ORV9GSUVMRF9WQUxJREFUT1IgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNreVBob25lRmllbGRJbnB1dERpcmVjdGl2ZSksXG4gIG11bHRpOiB0cnVlLFxufTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgYnV0dG9uLCBzZWFyY2ggaW5wdXQsIGFuZCB0ZXh0IGlucHV0IGZvciBlbnRlcmluZyBhbmQgdmFsaWRhdGluZ1xuICogaW50ZXJuYXRpb25hbCBwaG9uZSBudW1iZXJzLiBQbGFjZSB0aGlzIGF0dHJpYnV0ZSBvbiBhbiBgaW5wdXRgIGVsZW1lbnQsIGFuZCB3cmFwXG4gKiB0aGF0IGVsZW1lbnQgaW4gYSBgc2t5LXBob25lLWZpZWxkYCBjb21wb25lbnQuIEJ5IGRlZmF1bHQsIHRoZSBjb3VudHJ5IHNlbGVjdG9yXG4gKiBidXR0b24gZGlzcGxheXMgYSBmbGFnIGljb24gZm9yIHRoZSBkZWZhdWx0IGNvdW50cnksIGFuZCB0aGUgcGhvbmUgbnVtYmVyIGlucHV0XG4gKiBkaXNwbGF5cyBhIHNhbXBsZSBvZiB0aGUgY29ycmVjdCBwaG9uZSBudW1iZXIgZm9ybWF0LiBXaGVuIHVzZXJzIHNlbGVjdCB0aGUgY291bnRyeVxuICogc2VsZWN0b3IgYnV0dG9uLCB0aGV5IGV4cG9zZSB0aGUgY291bnRyeSBzZWFyY2ggaW5wdXQsIHdoaWNoIGlzXG4gKiBbYW4gYXV0b2NvbXBsZXRlIGlucHV0XShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlKVxuICogdGhhdCBhbGxvd3MgdGhlbSB0byBzZWxlY3QgZGlmZmVyZW50IGNvdW50cmllcy4gV2hlbiB1c2VycyBlbnRlciBgK2AgZm9sbG93ZWQgYnkgYW5cbiAqIGludGVybmF0aW9uYWwgZGlhbCBjb2RlIGluIHRoZSBwaG9uZSBudW1iZXIgaW5wdXQsIHRoZSBjb3VudHJ5IGF1dG9tYXRpY2FsbHkgc3dpdGNoZXNcbiAqIHRvIHRoZSBjb3VudHJ5IGFzc29jaWF0ZWQgd2l0aCB0aGUgZGlhbCBjb2RlLlxuICogQHJlcXVpcmVkXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tza3lQaG9uZUZpZWxkSW5wdXRdJyxcbiAgcHJvdmlkZXJzOiBbU0tZX1BIT05FX0ZJRUxEX1ZBTFVFX0FDQ0VTU09SLCBTS1lfUEhPTkVfRklFTERfVkFMSURBVE9SXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5UGhvbmVGaWVsZElucHV0RGlyZWN0aXZlXG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3JcbntcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZGlzYWJsZSB0aGUgcGhvbmUgZmllbGQgb24gdGVtcGxhdGUtZHJpdmVuIGZvcm1zLiBEb24ndCB1c2UgdGhpcyBpbnB1dCBvbiByZWFjdGl2ZSBmb3JtcyBiZWNhdXNlIHRoZXkgbWF5IG92ZXJ3cml0ZSB0aGUgaW5wdXQgb3IgbGVhdmUgdGhlIGNvbnRyb2wgb3V0IG9mIHN5bmMuXG4gICAqIFRvIHNldCB0aGUgZGlzYWJsZWQgc3RhdGUgb24gcmVhY3RpdmUgZm9ybXMsIHVzZSB0aGUgYEZvcm1Db250cm9sYCBpbnN0ZWFkLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgIGNvbnN0IGNvZXJjZWRWYWx1ZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgaWYgKHRoaXMuI3Bob25lRmllbGRDb21wb25lbnQpIHtcbiAgICAgIHRoaXMuI3Bob25lRmllbGRDb21wb25lbnQuY291bnRyeVNlbGVjdERpc2FibGVkID0gY29lcmNlZFZhbHVlO1xuICAgICAgdGhpcy4jYWRhcHRlclNlcnZpY2U/LnNldEVsZW1lbnREaXNhYmxlZFN0YXRlKHRoaXMuI2VsUmVmLCBjb2VyY2VkVmFsdWUpO1xuICAgIH1cbiAgICB0aGlzLiNfZGlzYWJsZWQgPSBjb2VyY2VkVmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiNfZGlzYWJsZWQ7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0byBwcmV2ZW50IHZhbGlkYXRpb24gb24gdGhlIHBob25lIG51bWJlciBpbnB1dC4gRm9yIHZhbGlkYXRpb24sXG4gICAqIHBob25lIG51bWJlcnMgYXJlIGRyaXZlbiB0aHJvdWdoIHRoZSBgbmdNb2RlbGAgYXR0cmlidXRlIHRoYXQgeW91IHNwZWNpZnkgb24gYW5cbiAgICogYGlucHV0YCBlbGVtZW50IG9yIG9uIGEgYEZvcm1Db250cm9sYCBpbiBhIHJlYWN0aXZlIGZvcm0uIFRvIHByZXZlbnQgdmFsaWRhdGlvbixcbiAgICogc2V0IHRoaXMgcHJvcGVydHkgdG8gYHRydWVgLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNreVBob25lRmllbGROb1ZhbGlkYXRlOiBib29sZWFuIHwgdW5kZWZpbmVkID0gZmFsc2U7XG5cbiAgc2V0ICNtb2RlbFZhbHVlKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICBjb25zdCB2YWx1ZU9yRGVmYXVsdCA9IHZhbHVlID8/ICcnO1xuICAgIHRoaXMuI19tb2RlbFZhbHVlID0gdmFsdWVPckRlZmF1bHQ7XG4gICAgdGhpcy4jYWRhcHRlclNlcnZpY2U/LnNldEVsZW1lbnRWYWx1ZSh0aGlzLiNlbFJlZiwgdmFsdWVPckRlZmF1bHQpO1xuXG4gICAgaWYgKHZhbHVlT3JEZWZhdWx0KSB7XG4gICAgICBjb25zdCBmb3JtYXR0ZWRWYWx1ZSA9IHRoaXMuI2Zvcm1hdE51bWJlcih2YWx1ZU9yRGVmYXVsdC50b1N0cmluZygpKTtcblxuICAgICAgdGhpcy4jb25DaGFuZ2UoZm9ybWF0dGVkVmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLiNvbkNoYW5nZSh2YWx1ZU9yRGVmYXVsdCk7XG4gICAgfVxuICAgIHRoaXMuI3ZhbGlkYXRvckNoYW5nZSgpO1xuICB9XG5cbiAgZ2V0ICNtb2RlbFZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuI19tb2RlbFZhbHVlO1xuICB9XG5cbiAgI2NvbnRyb2w6IEFic3RyYWN0Q29udHJvbCB8IHVuZGVmaW5lZDtcblxuICAjdGV4dENoYW5nZXM6IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+IHwgdW5kZWZpbmVkO1xuXG4gICNuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAjcGhvbmVVdGlscyA9IFBob25lTnVtYmVyVXRpbC5nZXRJbnN0YW5jZSgpO1xuXG4gICNfZGlzYWJsZWQhOiBib29sZWFuO1xuXG4gICNfbW9kZWxWYWx1ZSA9ICcnO1xuXG4gICNjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWY7XG4gICNlbFJlZjogRWxlbWVudFJlZjtcblxuICAjYWRhcHRlclNlcnZpY2U6IFNreVBob25lRmllbGRBZGFwdGVyU2VydmljZSB8IHVuZGVmaW5lZDtcbiAgI3Bob25lRmllbGRDb21wb25lbnQ6IFNreVBob25lRmllbGRDb21wb25lbnQgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIGVsUmVmOiBFbGVtZW50UmVmLFxuICAgIEBPcHRpb25hbCgpIGFkYXB0ZXJTZXJ2aWNlPzogU2t5UGhvbmVGaWVsZEFkYXB0ZXJTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIHBob25lRmllbGRDb21wb25lbnQ/OiBTa3lQaG9uZUZpZWxkQ29tcG9uZW50XG4gICkge1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yID0gY2hhbmdlRGV0ZWN0b3I7XG4gICAgdGhpcy4jZWxSZWYgPSBlbFJlZjtcbiAgICB0aGlzLiNhZGFwdGVyU2VydmljZSA9IGFkYXB0ZXJTZXJ2aWNlO1xuICAgIHRoaXMuI3Bob25lRmllbGRDb21wb25lbnQgPSBwaG9uZUZpZWxkQ29tcG9uZW50O1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy4jcGhvbmVGaWVsZENvbXBvbmVudCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnWW91IG11c3Qgd3JhcCB0aGUgYHNreVBob25lRmllbGRJbnB1dGAgZGlyZWN0aXZlIHdpdGhpbiBhICcgK1xuICAgICAgICAgICdgPHNreS1waG9uZS1maWVsZD5gIGNvbXBvbmVudCEnXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuI2FkYXB0ZXJTZXJ2aWNlPy5zZXRFbGVtZW50VHlwZSh0aGlzLiNlbFJlZik7XG4gICAgdGhpcy4jYWRhcHRlclNlcnZpY2U/LmFkZEVsZW1lbnRDbGFzcyh0aGlzLiNlbFJlZiwgJ3NreS1mb3JtLWNvbnRyb2wnKTtcbiAgICBpZiAodGhpcy4jcGhvbmVGaWVsZENvbXBvbmVudD8uc2VsZWN0ZWRDb3VudHJ5Py5leGFtcGxlTnVtYmVyKSB7XG4gICAgICB0aGlzLiNhZGFwdGVyU2VydmljZT8uc2V0RWxlbWVudFBsYWNlaG9sZGVyKFxuICAgICAgICB0aGlzLiNlbFJlZixcbiAgICAgICAgdGhpcy4jcGhvbmVGaWVsZENvbXBvbmVudC5zZWxlY3RlZENvdW50cnkuZXhhbXBsZU51bWJlclxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLiNhZGFwdGVyU2VydmljZT8uc2V0QXJpYUxhYmVsKHRoaXMuI2VsUmVmKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy4jcGhvbmVGaWVsZENvbXBvbmVudD8uc2VsZWN0ZWRDb3VudHJ5Q2hhbmdlXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChjb3VudHJ5OiBTa3lQaG9uZUZpZWxkQ291bnRyeSkgPT4ge1xuICAgICAgICB0aGlzLiNtb2RlbFZhbHVlID0gdGhpcy4jZWxSZWYubmF0aXZlRWxlbWVudC52YWx1ZTtcbiAgICAgICAgaWYgKGNvdW50cnk/LmV4YW1wbGVOdW1iZXIpIHtcbiAgICAgICAgICB0aGlzLiNhZGFwdGVyU2VydmljZT8uc2V0RWxlbWVudFBsYWNlaG9sZGVyKFxuICAgICAgICAgICAgdGhpcy4jZWxSZWYsXG4gICAgICAgICAgICBjb3VudHJ5LmV4YW1wbGVOdW1iZXJcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIC8vIFRoaXMgaXMgbmVlZGVkIHRvIGFkZHJlc3MgYSBidWcgaW4gQW5ndWxhciA0LCB3aGVyZSB0aGUgdmFsdWUgaXMgbm90IGNoYW5nZWQgb24gdGhlIHZpZXcuXG4gICAgLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8xMzc5MlxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHRoaXMuI2NvbnRyb2wgJiYgdGhpcy4jbW9kZWxWYWx1ZSkge1xuICAgICAgdGhpcy4jY29udHJvbC5zZXRWYWx1ZSh0aGlzLiNtb2RlbFZhbHVlLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXcml0ZXMgdGhlIG5ldyB2YWx1ZSBmb3IgcmVhY3RpdmUgZm9ybXMgb24gY2hhbmdlIGV2ZW50cyBvbiB0aGUgaW5wdXQgZWxlbWVudFxuICAgKiBAcGFyYW0gZXZlbnQgVGhlIGNoYW5nZSBldmVudCB0aGF0IHdhcyByZWNlaXZlZFxuICAgKi9cbiAgQEhvc3RMaXN0ZW5lcignY2hhbmdlJywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uSW5wdXRDaGFuZ2UoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGlmICghdGhpcy4jdGV4dENoYW5nZXMpIHtcbiAgICAgIHRoaXMuI3NldHVwVGV4dENoYW5nZVN1YnNjcmlwdGlvbihldmVudC50YXJnZXQudmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLiN0ZXh0Q2hhbmdlcy5uZXh0KGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1hcmtzIHJlYWN0aXZlIGZvcm0gY29udHJvbHMgYXMgdG91Y2hlZCBvbiBpbnB1dCBibHVyIGV2ZW50c1xuICAgKi9cbiAgQEhvc3RMaXN0ZW5lcignYmx1cicpXG4gIHB1YmxpYyBvbklucHV0Qmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLiNvblRvdWNoZWQoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2lucHV0JywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uSW5wdXRUeXBpbmcoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGlmICghdGhpcy4jdGV4dENoYW5nZXMpIHtcbiAgICAgIHRoaXMuI3NldHVwVGV4dENoYW5nZVN1YnNjcmlwdGlvbihldmVudC50YXJnZXQudmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLiN0ZXh0Q2hhbmdlcy5uZXh0KGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFdyaXRlcyB0aGUgbmV3IHZhbHVlIGZvciByZWFjdGl2ZSBmb3Jtc1xuICAgKiBAcGFyYW0gdmFsdWUgVGhlIG5ldyB2YWx1ZSBmb3IgdGhlIGlucHV0XG4gICAqL1xuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy4jcGhvbmVGaWVsZENvbXBvbmVudD8uc2V0Q291bnRyeUJ5RGlhbENvZGUodmFsdWUpO1xuXG4gICAgdGhpcy4jbW9kZWxWYWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy4jb25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuI29uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2UoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLiN2YWxpZGF0b3JDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBkaXNhYmxlZCBzdGF0ZSBvbiB0aGUgaW5wdXRcbiAgICogQHBhcmFtIGlzRGlzYWJsZWQgdGhlIG5ldyB2YWx1ZSBvZiB0aGUgaW5wdXQncyBkaXNhYmxlZCBzdGF0ZVxuICAgKi9cbiAgcHVibGljIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlJ3MgdGhlIGZvcm0gY29udHJvbCdzIGN1cnJlbnQgdmFsdWVcbiAgICogQHBhcmFtIGNvbnRyb2wgdGhlIGZvcm0gY29udHJvbCBmb3IgdGhlIGlucHV0XG4gICAqL1xuICBwdWJsaWMgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGlmICghdGhpcy4jY29udHJvbCkge1xuICAgICAgdGhpcy4jY29udHJvbCA9IGNvbnRyb2w7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2t5UGhvbmVGaWVsZE5vVmFsaWRhdGUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IHZhbHVlID0gY29udHJvbC52YWx1ZTtcblxuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIHRoaXMuI3Bob25lRmllbGRDb21wb25lbnQ/LnNlbGVjdGVkQ291bnRyeSAmJlxuICAgICAgIXRoaXMuI3ZhbGlkYXRlTnVtYmVyKHZhbHVlKVxuICAgICkge1xuICAgICAgaWYgKCF0aGlzLiN0ZXh0Q2hhbmdlcykge1xuICAgICAgICAvLyBNYXJrIHRoZSBpbnZhbGlkIGNvbnRyb2wgYXMgdG91Y2hlZCBzbyB0aGF0IHRoZSBpbnB1dCdzIGludmFsaWQgQ1NTIHN0eWxlcyBhcHBlYXIuXG4gICAgICAgIC8vIChUaGlzIGlzIG9ubHkgcmVxdWlyZWQgd2hlbiB0aGUgaW52YWxpZCB2YWx1ZSBpcyBzZXQgYnkgdGhlIEZvcm1Db250cm9sIGNvbnN0cnVjdG9yLilcbiAgICAgICAgLy8gV2UgZG9uJ3QgZG8gdGhpcyBpZiB0aGUgaW5wdXQgaXMgdGhlIGFjdGl2ZSBlbGVtZW50IHNvIHRoYXQgd2UgZG9uJ3Qgc2hvdyB2YWxpZGF0aW9uXG4gICAgICAgIC8vIGVycm9ycyB1bmxlc3MgaXQgaXMgaW52YWxpZCBvbiBpbml0aWFsaXphdGlvbiBvciB0aGUgaW5wdXQgaGFzIGJlZW4gYmx1cnJlZC5cbiAgICAgICAgY29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHNreVBob25lRmllbGQ6IHtcbiAgICAgICAgICBpbnZhbGlkOiB2YWx1ZSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgI3NldHVwVGV4dENoYW5nZVN1YnNjcmlwdGlvbih0ZXh0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLiN0ZXh0Q2hhbmdlcyA9IG5ldyBCZWhhdmlvclN1YmplY3QodGV4dCk7XG5cbiAgICB0aGlzLiN0ZXh0Q2hhbmdlc1xuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDUwMCksIHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKG5ld1ZhbHVlKSA9PiB7XG4gICAgICAgIHRoaXMud3JpdGVWYWx1ZShuZXdWYWx1ZSk7XG4gICAgICB9KTtcbiAgfVxuXG4gICN2YWxpZGF0ZU51bWJlcihwaG9uZU51bWJlcjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG51bWJlck9iaiA9IHRoaXMuI3Bob25lVXRpbHMucGFyc2VBbmRLZWVwUmF3SW5wdXQoXG4gICAgICAgIHBob25lTnVtYmVyLFxuICAgICAgICB0aGlzLiNwaG9uZUZpZWxkQ29tcG9uZW50Py5zZWxlY3RlZENvdW50cnk/LmlzbzJcbiAgICAgICk7XG5cbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy4jcGhvbmVGaWVsZENvbXBvbmVudCAmJlxuICAgICAgICAhdGhpcy4jcGhvbmVGaWVsZENvbXBvbmVudC5hbGxvd0V4dGVuc2lvbnMgJiZcbiAgICAgICAgbnVtYmVyT2JqLmdldEV4dGVuc2lvbigpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy4jcGhvbmVVdGlscy5pc1ZhbGlkTnVtYmVyKG51bWJlck9iaik7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGb3JtYXQncyB0aGUgZ2l2ZW4gcGhvbmUgbnVtYmVyIGJhc2VkIG9uIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgY291bnRyeS5cbiAgICogQHBhcmFtIHBob25lTnVtYmVyIFRoZSBudW1iZXIgdG8gZm9ybWF0XG4gICAqL1xuICAjZm9ybWF0TnVtYmVyKHBob25lTnVtYmVyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBudW1iZXJPYmogPSB0aGlzLiNwaG9uZVV0aWxzLnBhcnNlQW5kS2VlcFJhd0lucHV0KFxuICAgICAgICBwaG9uZU51bWJlcixcbiAgICAgICAgdGhpcy4jcGhvbmVGaWVsZENvbXBvbmVudD8uc2VsZWN0ZWRDb3VudHJ5Py5pc28yXG4gICAgICApO1xuICAgICAgaWYgKHRoaXMuI3Bob25lVXRpbHMuaXNQb3NzaWJsZU51bWJlcihudW1iZXJPYmopKSB7XG4gICAgICAgIHN3aXRjaCAodGhpcy4jcGhvbmVGaWVsZENvbXBvbmVudD8ucmV0dXJuRm9ybWF0KSB7XG4gICAgICAgICAgY2FzZSAnaW50ZXJuYXRpb25hbCc6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy4jcGhvbmVVdGlscy5mb3JtYXQoXG4gICAgICAgICAgICAgIG51bWJlck9iaixcbiAgICAgICAgICAgICAgUGhvbmVOdW1iZXJGb3JtYXQuSU5URVJOQVRJT05BTFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBjYXNlICduYXRpb25hbCc6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy4jcGhvbmVVdGlscy5mb3JtYXQoXG4gICAgICAgICAgICAgIG51bWJlck9iaixcbiAgICAgICAgICAgICAgUGhvbmVOdW1iZXJGb3JtYXQuTkFUSU9OQUxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgY2FzZSAnZGVmYXVsdCc6XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgdGhpcy4jcGhvbmVGaWVsZENvbXBvbmVudD8uc2VsZWN0ZWRDb3VudHJ5Py5pc28yICE9PVxuICAgICAgICAgICAgICB0aGlzLiNwaG9uZUZpZWxkQ29tcG9uZW50Py5kZWZhdWx0Q291bnRyeVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLiNwaG9uZVV0aWxzLmZvcm1hdChcbiAgICAgICAgICAgICAgICBudW1iZXJPYmosXG4gICAgICAgICAgICAgICAgUGhvbmVOdW1iZXJGb3JtYXQuSU5URVJOQVRJT05BTFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuI3Bob25lVXRpbHMuZm9ybWF0KFxuICAgICAgICAgICAgICAgIG51bWJlck9iaixcbiAgICAgICAgICAgICAgICBQaG9uZU51bWJlckZvcm1hdC5OQVRJT05BTFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gcGhvbmVOdW1iZXI7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLyogc2FuaXR5IGNoZWNrICovXG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgcmV0dXJuIHBob25lTnVtYmVyO1xuICAgIH1cbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb24gLCBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgI29uQ2hhbmdlID0gKF86IHN0cmluZyB8IHVuZGVmaW5lZCkgPT4ge307XG5cbiAgLy8gaXN0YW5idWwgaWdub3JlIG5leHRcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICAjb25Ub3VjaGVkID0gKCkgPT4ge307XG5cbiAgLy8gaXN0YW5idWwgaWdub3JlIG5leHRcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICAjdmFsaWRhdG9yQ2hhbmdlID0gKCkgPT4ge307XG59XG4iXX0=
@@ -545,7 +545,8 @@ const SKY_PHONE_FIELD_VALIDATOR = {
545
545
  */
546
546
  class SkyPhoneFieldInputDirective {
547
547
  /**
548
- * Whether to disable the phone field.
548
+ * Whether to disable the phone field on template-driven forms. Don't use this input on reactive forms because they may overwrite the input or leave the control out of sync.
549
+ * To set the disabled state on reactive forms, use the `FormControl` instead.
549
550
  * @default false
550
551
  */
551
552
  set disabled(value) {
@@ -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 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 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 on template-driven forms. Don't use this input on reactive forms because they may overwrite the input or leave the control out of sync.\n * To set the disabled state on reactive forms, use the `FormControl` instead.\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 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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"}
@@ -541,7 +541,8 @@ const SKY_PHONE_FIELD_VALIDATOR = {
541
541
  */
542
542
  class SkyPhoneFieldInputDirective {
543
543
  /**
544
- * Whether to disable the phone field.
544
+ * Whether to disable the phone field on template-driven forms. Don't use this input on reactive forms because they may overwrite the input or leave the control out of sync.
545
+ * To set the disabled state on reactive forms, use the `FormControl` instead.
545
546
  * @default false
546
547
  */
547
548
  set disabled(value) {
@@ -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 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 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 on template-driven forms. Don't use this input on reactive forms because they may overwrite the input or leave the control out of sync.\n * To set the disabled state on reactive forms, use the `FormControl` instead.\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 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":";;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;AAKG;AAWH,MAAM,SAAS,GAA0C;AACvD,IAAA,OAAO,EAAE;AACP,QAAA,+BAA+B,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE;AAC5D,QAAA,wCAAwC,EAAE;AACxC,YAAA,OAAO,EAAE,wBAAwB;AAClC,SAAA;AACD,QAAA,sCAAsC,EAAE;AACtC,YAAA,OAAO,EAAE,wBAAwB;AAClC,SAAA;AACD,QAAA,4CAA4C,EAAE;AAC5C,YAAA,OAAO,EAAE,sBAAsB;AAChC,SAAA;AACD,QAAA,sCAAsC,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE;AACtE,QAAA,wCAAwC,EAAE;AACxC,YAAA,OAAO,EAAE,4BAA4B;AACtC,SAAA;AACF,KAAA;CACF,CAAC;MAEW,8BAA8B,CAAA;IAClC,SAAS,CACd,UAA4B,EAC5B,IAAY,EAAA;QAEZ,OAAO,qBAAqB,CAAC,SAAS,EAAE,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;KAClE;AACF,CAAA;AAED;;AAEG;MAWU,4BAA4B,CAAA;;yHAA5B,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAA5B,4BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,YAT7B,aAAa,CAAA,EAAA,CAAA,CAAA;AASZ,4BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,EAR5B,SAAA,EAAA;AACT,QAAA;AACE,YAAA,OAAO,EAAE,2BAA2B;AACpC,YAAA,QAAQ,EAAE,8BAA8B;AACxC,YAAA,KAAK,EAAE,IAAI;AACZ,SAAA;AACF,KAAA,EAAA,OAAA,EAAA,CAPS,aAAa,CAAA,EAAA,CAAA,CAAA;2FASZ,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAVxC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,aAAa,CAAC;AACxB,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,2BAA2B;AACpC,4BAAA,QAAQ,EAAE,8BAA8B;AACxC,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA;AACF,iBAAA,CAAA;;;;AClDD;;;AAGG;MAEU,2BAA2B,CAAA;IAMtC,WAAY,CAAA,QAAmB,EAAE,gBAAwC,EAAA;QALzE,0CAAiB,CAAA,GAAA,CAAA,IAAA,EAAA,IAAI,OAAO,EAAQ,CAAC,CAAA;QAErC,qCAAqB,CAAA,GAAA,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA,CAAA;QACrB,6CAA0C,CAAA,GAAA,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAGxC,QAAA,sBAAA,CAAA,IAAI,EAAA,qCAAA,EAAa,QAAQ,EAAA,GAAA,CAAA,CAAC;AAC1B,QAAA,sBAAA,CAAA,IAAI,EAAA,6CAAA,EAAqB,gBAAgB,EAAA,GAAA,CAAA,CAAC;KAC3C;IAEM,WAAW,GAAA;AAChB,QAAA,sBAAA,CAAA,IAAI,EAAA,0CAAA,EAAA,GAAA,CAAe,CAAC,IAAI,EAAE,CAAC;AAC3B,QAAA,sBAAA,CAAA,IAAI,EAAA,0CAAA,EAAA,GAAA,CAAe,CAAC,QAAQ,EAAE,CAAC;KAChC;IAEM,eAAe,CAAC,UAAsB,EAAE,SAAiB,EAAA;QAC9D,sBAAA,CAAA,IAAI,EAAU,qCAAA,EAAA,GAAA,CAAA,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;KAC9D;IAEM,uBAAuB,CAC5B,UAAsB,EACtB,QAAiB,EAAA;AAEjB,QAAA,sBAAA,CAAA,IAAI,EAAA,qCAAA,EAAA,GAAA,CAAU,CAAC,WAAW,CAAC,UAAU,CAAC,aAAa,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;KAC5E;IAEM,qBAAqB,CAC1B,UAAsB,EACtB,WAAmB,EAAA;AAEnB,QAAA,sBAAA,CAAA,IAAI,EAAA,qCAAA,EAAA,GAAA,CAAU,CAAC,YAAY,CACzB,UAAU,CAAC,aAAa,EACxB,aAAa,EACb,WAAW,CACZ,CAAC;KACH;AAEM,IAAA,cAAc,CAAC,UAAsB,EAAA;AAC1C,QAAA,sBAAA,CAAA,IAAI,EAAA,qCAAA,EAAA,GAAA,CAAU,CAAC,YAAY,CAAC,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;KACtE;IAEM,eAAe,CAAC,UAAsB,EAAE,KAAa,EAAA;AAC1D,QAAA,sBAAA,CAAA,IAAI,EAAA,qCAAA,EAAA,GAAA,CAAU,CAAC,WAAW,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;KACtE;AAEM,IAAA,YAAY,CAAC,OAAmB,EAAA;;;QAGrC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE;AACrD,YAAA,sBAAA,CAAA,IAAI,EAAkB,6CAAA,EAAA,GAAA,CAAA;iBACnB,SAAS,CAAC,iCAAiC,CAAC;AAC5C,iBAAA,IAAI,CAAC,SAAS,CAAC,uBAAA,IAAI,EAAA,0CAAA,EAAA,GAAA,CAAe,CAAC,CAAC;AACpC,iBAAA,SAAS,CAAC,CAAC,KAAa,KAAI;AAC3B,gBAAA,sBAAA,CAAA,IAAI,EAAA,qCAAA,EAAA,GAAA,CAAU,CAAC,YAAY,CACzB,OAAO,CAAC,aAAa,EACrB,YAAY,EACZ,KAAK,CACN,CAAC;AACJ,aAAC,CAAC,CAAC;AACN,SAAA;KACF;AAEM,IAAA,yBAAyB,CAAC,EAAW,EAAA;QAC1C,MAAM,KAAK,GAAuB,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAC/D,KAAK,EAAE,KAAK,EAAE,CAAC;KAChB;AAEM,IAAA,eAAe,CAAC,EAAW,EAAA;QAChC,MAAM,KAAK,GAAuB,EAAE,CAAC,aAAa,CAChD,kCAAkC,CACnC,CAAC;QACF,KAAK,EAAE,KAAK,EAAE,CAAC;KAChB;;;wHAzEU,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;4HAA3B,2BAA2B,EAAA,CAAA,CAAA;2FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBADvC,UAAU;;;;AC+BX;AACA;AACA;MAyFa,sBAAsB,CAAA;AACjC;;;AAGG;IACH,IACW,eAAe,CAAC,KAA0B,EAAA;AACnD,QAAA,sBAAA,CAAA,IAAI,EAAqB,wCAAA,EAAA,KAAK,KAAK,KAAK,MAAA,CAAC;KAC1C;AAED,IAAA,IAAW,eAAe,GAAA;QACxB,OAAO,sBAAA,CAAA,IAAI,EAAA,wCAAA,EAAA,GAAA,CAAkB,CAAC;KAC/B;AAID;;;;;;AAMG;IACH,IACW,cAAc,CAAC,KAAyB,EAAA;AACjD,QAAA,IAAI,KAAK,IAAI,KAAK,KAAK,sBAAA,CAAA,IAAI,+CAAiB,EAAE;AAC5C,YAAA,sBAAA,CAAA,IAAI,EAAoB,uCAAA,EAAA,KAAK,CAAC,WAAW,EAAE,MAAA,CAAC;YAE5C,sBAAA,CAAA,IAAI,8CAAuB,IAAI,CAAC,SAAS,CAAC,IAAI,CAC5C,CAAC,OAAO,KAAK,OAAO,CAAC,IAAI,KAAK,uBAAA,IAAI,EAAA,uCAAA,EAAA,GAAA,CAAiB,CACpD,EAAA,GAAA,CAAA,CAAC;AACH,SAAA;KACF;AAED,IAAA,IAAW,cAAc,GAAA;QACvB,OAAO,sBAAA,CAAA,IAAI,EAAA,uCAAA,EAAA,GAAA,CAAiB,CAAC;KAC9B;AAED;;;;AAIG;AACH,IAAA,IACW,YAAY,GAAA;QACrB,OAAO,sBAAA,CAAA,IAAI,EAAA,qCAAA,EAAA,GAAA,CAAe,CAAC;KAC5B;IAED,IAAW,YAAY,CAAC,KAAkD,EAAA;AACxE,QAAA,sBAAA,CAAA,IAAI,EAAkB,qCAAA,EAAA,KAAK,IAAI,SAAS,MAAA,CAAC;KAC1C;AA+BD;;AAEG;IACH,IACW,eAAe,CAAC,UAA4C,EAAA;AACrE,QAAA,IACE,UAAU;aACT,CAAC,sBAAA,CAAA,IAAI,EAAkB,wCAAA,EAAA,GAAA,CAAA;gBACtB,sBAAA,CAAA,IAAI,gDAAkB,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,CAAC,EAClD;YACA,sBAAA,CAAA,IAAI,4CAAqB,IAAI,CAAC,SAAS,CAAC,IAAI,CAC1C,CAAC,OAAO,KAAK,OAAO,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,CAC9C,EAAA,GAAA,CAAA,CAAC;YAEF,IAAI,sBAAA,CAAA,IAAI,EAAA,wCAAA,EAAA,GAAA,CAAkB,IAAI,CAAC,uBAAA,IAAI,EAAA,wCAAA,EAAA,GAAA,CAAkB,CAAC,aAAa,EAAE;AACnE,gBAAA,MAAM,SAAS,GAAG,sBAAA,CAAA,IAAI,EAAA,kCAAA,EAAA,GAAA,CAAY,CAAC,uBAAuB,CACxD,UAAU,CAAC,IAAI,EACf,eAAe,CAAC,UAAU,CAC3B,CAAC;AACF,gBAAA,sBAAA,CAAA,IAAI,EAAkB,wCAAA,EAAA,GAAA,CAAA,CAAC,aAAa,GAAG,uBAAA,IAAI,EAAA,kCAAA,EAAA,GAAA,CAAY,CAAC,MAAM,CAC5D,SAAS,EACT,iBAAiB,CAAC,QAAQ,CAC3B,CAAC;AACH,aAAA;YAED,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,sBAAA,CAAA,IAAI,EAAkB,wCAAA,EAAA,GAAA,CAAA,CAAC,CAAC;AACzD,SAAA;KACF;AAED,IAAA,IAAW,eAAe,GAAA;QACxB,OAAO,sBAAA,CAAA,IAAI,EAAA,wCAAA,EAAA,GAAA,CAAkB,CAAC;KAC/B;IAuCD,WACE,CAAA,WAAwB,EACxB,cAA2C,EAC3C,cAAiC,EACd,QAA0B,EACd,eAAwC,EAAA;QADpD,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAkB;QACd,IAAe,CAAA,eAAA,GAAf,eAAe,CAAyB;AA9IzE,QAAA,wCAAA,CAAA,GAAA,CAAA,IAAA,EAAoB,IAAI,CAAC,CAAA;AAsCzB,QAAA,qCAAA,CAAA,GAAA,CAAA,IAAA,EAAkD,SAAS,CAAC,CAAA;AAS5D;;;AAGG;AAGI,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,YAAY,EAAwB,CAAC;QAIjE,IAAqB,CAAA,qBAAA,GAAG,KAAK,CAAC;QAE9B,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;QAE3B,IAAe,CAAA,eAAA,GAAG,IAAI,CAAC;QAyD9B,0CAAsD,CAAA,GAAA,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAEtD,QAAA,oDAAA,CAAA,GAAA,CAAA,IAAA,EAAgC,KAAK,CAAC,CAAA;AAEtC,QAAA,kCAAA,CAAA,GAAA,CAAA,IAAA,EAAc,eAAe,CAAC,WAAW,EAAE,CAAC,CAAA;AAE5C,QAAA,6CAAA,CAAA,GAAA,CAAA,IAAA,EAAyB,CAAC,CAAC,CAAA;QAE3B,uCAAqC,CAAA,GAAA,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA,CAAA;QAErC,wCAAoD,CAAA,GAAA,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA,CAAA;QAEpD,gDACE,CAAA,GAAA,CAAA,IAAA,EAAA,IAAI,WAAW,EAAE,CAAC,CAAA;QAEpB,mCAA0B,CAAA,GAAA,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA,CAAA;QAC1B,sCAA6C,CAAA,GAAA,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA,CAAA;QAC7C,sCAAmC,CAAA,GAAA,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AASjC,QAAA,sBAAA,CAAA,IAAI,EAAA,mCAAA,EAAgB,WAAW,EAAA,GAAA,CAAA,CAAC;AAChC,QAAA,sBAAA,CAAA,IAAI,EAAA,sCAAA,EAAmB,cAAc,EAAA,GAAA,CAAA,CAAC;AACtC,QAAA,sBAAA,CAAA,IAAI,EAAA,sCAAA,EAAmB,cAAc,EAAA,GAAA,CAAA,CAAC;AACtC;;;;;;AAMG;AACH,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK;;QAEzB,IAAI,CAAC,SAAS,CAAE,MAAc,CAAC,mBAAmB,CAAC,cAAc,EAAE,CAAC,CACrE,CAAC;AACF,QAAA,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE;YACpC,OAAO,CAAC,QAAQ,GAAG,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;YAE1C,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,sBAAA,CAAA,IAAI,EAAA,6CAAA,EAAA,GAAA,CAAuB,EAAE;gBACzD,sBAAA,CAAA,IAAI,iDAA0B,OAAO,CAAC,QAAQ,CAAC,MAAM,MAAA,CAAC;AACvD,aAAA;AACF,SAAA;QAED,IAAI,CAAC,iBAAiB,GAAG,sBAAA,CAAA,IAAI,EAAa,mCAAA,EAAA,GAAA,CAAA,CAAC,KAAK,CAAC;YAC/C,aAAa,EAAE,sBAAA,CAAA,IAAI,EAA0B,gDAAA,EAAA,GAAA,CAAA;AAC9C,SAAA,CAAC,CAAC;KACJ;IAEM,QAAQ,GAAA;;;QAGb,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACjD,gBAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;oBAC5B,aAAa,EAAE,IAAI,CAAC,gBAAgB;oBACpC,oBAAoB,EAAE,IAAI,CAAC,uBAAuB;oBAClD,mBAAmB,EAAE,IAAI,CAAC,qBAAqB;AAChD,iBAAA,CAAC,CAAC;AACJ,aAAA;AAED,YAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AACxB,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC5B,aAAA;AAED,YAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;AACzB,gBAAA,IAAI,CAAC,eAAe,GAAG,sBAAA,CAAA,IAAI,kDAAoB,CAAC;AACjD,aAAA;AACD,YAAA,sBAAA,CAAA,IAAI,EAAA,sCAAA,EAAA,GAAA,CAAgB,CAAC,YAAY,EAAE,CAAC;SACrC,EAAE,CAAC,CAAC,CAAC;QAEN,sBAAA,CAAA,IAAI,EAA0B,gDAAA,EAAA,GAAA,CAAA,CAAC,YAAY,CAAC,SAAS,CACnD,CAAC,QAAiC,KAAI;YACpC,IAAI,QAAQ,EAAE,IAAI,KAAK,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE;AACjD,gBAAA,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;AACjC,aAAA;AACH,SAAC,CACF,CAAC;KACH;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,CAAC;KACvC;AAED;;;;;AAKG;AACI,IAAA,iBAAiB,CAAC,UAAkC,EAAA;AACzD,QAAA,IAAI,UAAU,EAAE;YACd,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CACxC,CAAC,WAAW,KAAK,WAAW,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,CACtD,CAAC;AACF,YAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACjC,SAAA;KACF;AAEM,IAAA,mBAAmB,CAAC,UAAmB,EAAA;AAC5C,QAAA,sBAAA,CAAA,IAAI,EAAA,oDAAA,EAAiC,IAAI,EAAA,GAAA,CAAA,CAAC;AAE1C,QAAA,IAAI,UAAU,EAAE;AACd,YAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AAC9B,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;AAEhC,YAAA,sBAAA,CAAA,IAAI,EAA0B,gDAAA,EAAA,GAAA,CAAA,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACpD,SAAA;AAED,QAAA,sBAAA,CAAA,IAAI,EAAA,sCAAA,EAAA,GAAA,CAAgB,CAAC,YAAY,EAAE,CAAC;KACrC;AAEM,IAAA,yBAAyB,CAAC,CAAiB,EAAA;AAChD,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;AAC5B,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;AAC7B,SAAA;AAAM,aAAA;YACL,sBAAA,CAAA,IAAI,8CAAgB,CAAC,yBAAyB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AAC3D,SAAA;AAED,QAAA,sBAAA,CAAA,IAAI,EAAA,sCAAA,EAAA,GAAA,CAAgB,CAAC,YAAY,EAAE,CAAC;KACrC;AAEM,IAAA,sBAAsB,CAAC,CAAiB,EAAA;AAC7C,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;AACzB,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;AAChC,SAAA;AAAM,aAAA;YACL,IAAI,sBAAA,CAAA,IAAI,EAAA,oDAAA,EAAA,GAAA,CAA8B,EAAE;gBACtC,sBAAA,CAAA,IAAI,8CAAgB,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AAChD,gBAAA,sBAAA,CAAA,IAAI,EAAA,oDAAA,EAAiC,KAAK,EAAA,GAAA,CAAA,CAAC;AAC5C,aAAA;AACF,SAAA;AAED,QAAA,sBAAA,CAAA,IAAI,EAAA,sCAAA,EAAA,GAAA,CAAgB,CAAC,YAAY,EAAE,CAAC;KACrC;AAEM,IAAA,oBAAoB,CAAC,WAAmB,EAAA;QAC7C,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AAChD,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AAED,QAAA,IAAI,UAA4C,CAAC;AAEjD,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,sBAAA,CAAA,IAAI,qDAAuB,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YACxD,MAAM,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAE7C,YAAA,IAAI,uBAAA,IAAI,EAAA,0CAAA,EAAA,GAAA,CAAoB,EAAE,QAAQ,KAAK,QAAQ,EAAE;AACnD,gBAAA,UAAU,GAAG,sBAAA,CAAA,IAAI,EAAA,0CAAA,EAAA,GAAA,CAAoB,CAAC;AACvC,aAAA;AAAM,iBAAA;gBACL,IAAI,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CACpC,CAAC,OAAO,KAAK,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC,QAAQ,KAAK,CAAC,CACrE,CAAC;AAEF,gBAAA,IAAI,YAAY,EAAE;;oBAEhB,IACE,IAAI,CAAC,oBAAoB;wBACzB,IAAI,CAAC,oBAAoB,CAAC,SAAS,CACjC,CAAC,OAAO,KACN,OAAO,CAAC,WAAW,EAAE,KAAK,YAAY,EAAE,IAAI,CAAC,WAAW,EAAE,CAC7D,GAAG,CAAC,EACL;wBACA,YAAY,GAAG,SAAS,CAAC;AAC1B,qBAAA;AAED,oBAAA,IAAI,YAAY,KAAK,IAAI,CAAC,eAAe,EAAE;wBACzC,UAAU,GAAG,YAAY,CAAC;AAC3B,qBAAA;AACF,iBAAA;AACF,aAAA;AACF,SAAA;AAED,QAAA,IAAI,UAAU,EAAE;AACd,YAAA,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC;AAClC,YAAA,sBAAA,CAAA,IAAI,EAAA,sCAAA,EAAA,GAAA,CAAgB,CAAC,YAAY,EAAE,CAAC;AACpC,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AAED,QAAA,OAAO,KAAK,CAAC;KACd;;;mHA3TU,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,2BAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,sBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,EAlFtB,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,EAAA,SAAA,EAAA;QACT,2BAA2B;;;;AAI3B,QAAA;AACE,YAAA,OAAO,EAAE,sBAAsB;AAC/B,YAAA,QAAQ,EAAE,SAAS;AACpB,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,yBAAyB;AAClC,YAAA,QAAQ,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE;AACxC,SAAA;AACF,KAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAwLO,WAAW,EAMX,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,uBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,WAAW,2IAMX,WAAW,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECnQrB,y4GA0GA,ED1Cc,MAAA,EAAA,CAAA,o2oBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,EAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,uBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,yBAAA,EAAA,kBAAA,EAAA,sBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,YAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,EAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,mBAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,UAAA,EAAA;QACV,OAAO,CAAC,sBAAsB,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;QAC3D,OAAO,CAAC,wBAAwB,EAAE;YAChC,UAAU,CAAC,cAAc,EAAE;AACzB,gBAAA,KAAK,CAAC;AACJ,oBAAA,OAAO,EAAE,CAAC;AACV,oBAAA,KAAK,EAAE,CAAC;iBACT,CAAC;AACF,gBAAA,OAAO,CACL,eAAe,EACf,KAAK,CAAC;AACJ,oBAAA,OAAO,EAAE,CAAC;AACV,oBAAA,KAAK,EAAE,GAAG;AACX,iBAAA,CAAC,CACH;aACF,CAAC;YACF,UAAU,CAAC,cAAc,EAAE;AACzB,gBAAA,OAAO,CACL,eAAe,EACf,KAAK,CAAC;AACJ,oBAAA,OAAO,EAAE,CAAC;AACV,oBAAA,KAAK,EAAE,CAAC;AACT,iBAAA,CAAC,CACH;aACF,CAAC;YACF,UAAU,CAAC,qBAAqB,EAAE;AAChC,gBAAA,KAAK,CAAC;AACJ,oBAAA,OAAO,EAAE,CAAC;iBACX,CAAC;AACF,gBAAA,OAAO,CACL,eAAe,EACf,KAAK,CAAC;AACJ,oBAAA,OAAO,EAAE,CAAC;AACX,iBAAA,CAAC,CACH;aACF,CAAC;YACF,UAAU,CAAC,qBAAqB,EAAE;AAChC,gBAAA,OAAO,CACL,eAAe,EACf,KAAK,CAAC;AACJ,oBAAA,OAAO,EAAE,CAAC;AACX,iBAAA,CAAC,CACH;aACF,CAAC;SACH,CAAC;QACF,OAAO,CAAC,qBAAqB,EAAE;YAC7B,UAAU,CAAC,cAAc,EAAE;AACzB,gBAAA,KAAK,CAAC;AACJ,oBAAA,OAAO,EAAE,CAAC;iBACX,CAAC;AACF,gBAAA,OAAO,CACL,eAAe,EACf,KAAK,CAAC;AACJ,oBAAA,OAAO,EAAE,CAAC;AACX,iBAAA,CAAC,CACH;aACF,CAAC;YACF,UAAU,CAAC,cAAc,EAAE;AACzB,gBAAA,OAAO,CACL,eAAe,EACf,KAAK,CAAC;AACJ,oBAAA,OAAO,EAAE,CAAC;AACX,iBAAA,CAAC,CACH;aACF,CAAC;SACH,CAAC;AACH,KAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FAEU,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAxFlC,SAAS;+BACE,iBAAiB,EAAA,aAAA,EAGZ,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;wBACT,2BAA2B;;;;AAI3B,wBAAA;AACE,4BAAA,OAAO,EAAE,sBAAsB;AAC/B,4BAAA,QAAQ,EAAE,SAAS;AACpB,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,yBAAyB;AAClC,4BAAA,QAAQ,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE;AACxC,yBAAA;qBACF,EACW,UAAA,EAAA;wBACV,OAAO,CAAC,sBAAsB,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;wBAC3D,OAAO,CAAC,wBAAwB,EAAE;4BAChC,UAAU,CAAC,cAAc,EAAE;AACzB,gCAAA,KAAK,CAAC;AACJ,oCAAA,OAAO,EAAE,CAAC;AACV,oCAAA,KAAK,EAAE,CAAC;iCACT,CAAC;AACF,gCAAA,OAAO,CACL,eAAe,EACf,KAAK,CAAC;AACJ,oCAAA,OAAO,EAAE,CAAC;AACV,oCAAA,KAAK,EAAE,GAAG;AACX,iCAAA,CAAC,CACH;6BACF,CAAC;4BACF,UAAU,CAAC,cAAc,EAAE;AACzB,gCAAA,OAAO,CACL,eAAe,EACf,KAAK,CAAC;AACJ,oCAAA,OAAO,EAAE,CAAC;AACV,oCAAA,KAAK,EAAE,CAAC;AACT,iCAAA,CAAC,CACH;6BACF,CAAC;4BACF,UAAU,CAAC,qBAAqB,EAAE;AAChC,gCAAA,KAAK,CAAC;AACJ,oCAAA,OAAO,EAAE,CAAC;iCACX,CAAC;AACF,gCAAA,OAAO,CACL,eAAe,EACf,KAAK,CAAC;AACJ,oCAAA,OAAO,EAAE,CAAC;AACX,iCAAA,CAAC,CACH;6BACF,CAAC;4BACF,UAAU,CAAC,qBAAqB,EAAE;AAChC,gCAAA,OAAO,CACL,eAAe,EACf,KAAK,CAAC;AACJ,oCAAA,OAAO,EAAE,CAAC;AACX,iCAAA,CAAC,CACH;6BACF,CAAC;yBACH,CAAC;wBACF,OAAO,CAAC,qBAAqB,EAAE;4BAC7B,UAAU,CAAC,cAAc,EAAE;AACzB,gCAAA,KAAK,CAAC;AACJ,oCAAA,OAAO,EAAE,CAAC;iCACX,CAAC;AACF,gCAAA,OAAO,CACL,eAAe,EACf,KAAK,CAAC;AACJ,oCAAA,OAAO,EAAE,CAAC;AACX,iCAAA,CAAC,CACH;6BACF,CAAC;4BACF,UAAU,CAAC,cAAc,EAAE;AACzB,gCAAA,OAAO,CACL,eAAe,EACf,KAAK,CAAC;AACJ,oCAAA,OAAO,EAAE,CAAC;AACX,iCAAA,CAAC,CACH;6BACF,CAAC;yBACH,CAAC;AACH,qBAAA,EAAA,QAAA,EAAA,y4GAAA,EAAA,MAAA,EAAA,CAAA,o2oBAAA,CAAA,EAAA,CAAA;;0BA6JE,QAAQ;;0BACR,QAAQ;;0BAAI,QAAQ;4CAtJZ,eAAe,EAAA,CAAA;sBADzB,KAAK;gBAmBK,cAAc,EAAA,CAAA;sBADxB,KAAK;gBAqBK,YAAY,EAAA,CAAA;sBADtB,KAAK;gBAgBC,oBAAoB,EAAA,CAAA;sBAD1B,KAAK;gBASC,qBAAqB,EAAA,CAAA;sBAD3B,MAAM;gBAmBI,eAAe,EAAA,CAAA;sBADzB,KAAK;gBAkCC,gBAAgB,EAAA,CAAA;sBAJtB,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,kBAAkB,EAAE;AAC7B,wBAAA,IAAI,EAAE,WAAW;AACjB,wBAAA,MAAM,EAAE,IAAI;AACb,qBAAA,CAAA;gBAOM,qBAAqB,EAAA,CAAA;sBAJ3B,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,uBAAuB,EAAE;AAClC,wBAAA,IAAI,EAAE,WAAW;AACjB,wBAAA,MAAM,EAAE,IAAI;AACb,qBAAA,CAAA;gBAOM,uBAAuB,EAAA,CAAA;sBAJ7B,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,yBAAyB,EAAE;AACpC,wBAAA,IAAI,EAAE,WAAW;AACjB,wBAAA,MAAM,EAAE,IAAI;AACb,qBAAA,CAAA;;;;AEvOH,MAAM,8BAA8B,GAAG;AACrC,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,2BAA2B,CAAC;AAC1D,IAAA,KAAK,EAAE,IAAI;CACZ,CAAC;AAEF,MAAM,yBAAyB,GAAG;AAChC,IAAA,OAAO,EAAE,aAAa;AACtB,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,2BAA2B,CAAC;AAC1D,IAAA,KAAK,EAAE,IAAI;CACZ,CAAC;AAEF;;;;;;;;;;;;AAYG;MAKU,2BAA2B,CAAA;AAGtC;;;;AAIG;IACH,IACW,QAAQ,CAAC,KAA0B,EAAA;AAC5C,QAAA,MAAM,YAAY,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAClD,IAAI,sBAAA,CAAA,IAAI,EAAA,gDAAA,EAAA,GAAA,CAAqB,EAAE;AAC7B,YAAA,sBAAA,CAAA,IAAI,EAAqB,gDAAA,EAAA,GAAA,CAAA,CAAC,qBAAqB,GAAG,YAAY,CAAC;YAC/D,sBAAA,CAAA,IAAI,EAAgB,2CAAA,EAAA,GAAA,CAAA,EAAE,uBAAuB,CAAC,sBAAA,CAAA,IAAI,EAAO,kCAAA,EAAA,GAAA,CAAA,EAAE,YAAY,CAAC,CAAC;AAC1E,SAAA;AACD,QAAA,sBAAA,CAAA,IAAI,EAAA,sCAAA,EAAc,YAAY,EAAA,GAAA,CAAA,CAAC;KAChC;AAED,IAAA,IAAW,QAAQ,GAAA;QACjB,OAAO,sBAAA,CAAA,IAAI,EAAA,sCAAA,EAAA,GAAA,CAAW,CAAC;KACxB;AAiDD,IAAA,WAAA,CACE,cAAiC,EACjC,KAAiB,EACL,cAA4C,EAC5C,mBAA4C,EAAA;;AAnD1D;;;;;;AAMG;QAEI,IAAuB,CAAA,uBAAA,GAAwB,KAAK,CAAC;QAqB5D,oCAAsC,CAAA,GAAA,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA,CAAA;QAEtC,wCAAkD,CAAA,GAAA,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA,CAAA;QAElD,0CAAiB,CAAA,GAAA,CAAA,IAAA,EAAA,IAAI,OAAO,EAAQ,CAAC,CAAA;AAErC,QAAA,uCAAA,CAAA,GAAA,CAAA,IAAA,EAAc,eAAe,CAAC,WAAW,EAAE,CAAC,CAAA;QAE5C,sCAAqB,CAAA,GAAA,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAErB,QAAA,wCAAA,CAAA,GAAA,CAAA,IAAA,EAAe,EAAE,CAAC,CAAA;QAElB,2CAAmC,CAAA,GAAA,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA,CAAA;QACnC,kCAAmB,CAAA,GAAA,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA,CAAA;QAEnB,2CAAyD,CAAA,GAAA,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA,CAAA;QACzD,gDAAyD,CAAA,GAAA,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA,CAAA;;AAkPzD,QAAA,qCAAA,CAAA,GAAA,CAAA,IAAA,EAAY,CAAC,CAAqB,KAAI,GAAG,CAAC,CAAA;;;AAI1C,QAAA,sCAAA,CAAA,GAAA,CAAA,IAAA,EAAa,MAAO,GAAC,CAAC,CAAA;;;AAItB,QAAA,4CAAA,CAAA,GAAA,CAAA,IAAA,EAAmB,MAAO,GAAC,CAAC,CAAA;AAlP1B,QAAA,sBAAA,CAAA,IAAI,EAAA,2CAAA,EAAmB,cAAc,EAAA,GAAA,CAAA,CAAC;AACtC,QAAA,sBAAA,CAAA,IAAI,EAAA,kCAAA,EAAU,KAAK,EAAA,GAAA,CAAA,CAAC;AACpB,QAAA,sBAAA,CAAA,IAAI,EAAA,2CAAA,EAAmB,cAAc,EAAA,GAAA,CAAA,CAAC;AACtC,QAAA,sBAAA,CAAA,IAAI,EAAA,gDAAA,EAAwB,mBAAmB,EAAA,GAAA,CAAA,CAAC;KACjD;IAEM,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,sBAAA,CAAA,IAAI,EAAA,gDAAA,EAAA,GAAA,CAAqB,EAAE;YAC9B,MAAM,IAAI,KAAK,CACb,4DAA4D;AAC1D,gBAAA,gCAAgC,CACnC,CAAC;AACH,SAAA;QAED,sBAAA,CAAA,IAAI,mDAAgB,EAAE,cAAc,CAAC,sBAAA,CAAA,IAAI,EAAO,kCAAA,EAAA,GAAA,CAAA,CAAC,CAAC;QAClD,sBAAA,CAAA,IAAI,EAAgB,2CAAA,EAAA,GAAA,CAAA,EAAE,eAAe,CAAC,sBAAA,CAAA,IAAI,EAAO,kCAAA,EAAA,GAAA,CAAA,EAAE,kBAAkB,CAAC,CAAC;AACvE,QAAA,IAAI,uBAAA,IAAI,EAAA,gDAAA,EAAA,GAAA,CAAqB,EAAE,eAAe,EAAE,aAAa,EAAE;AAC7D,YAAA,sBAAA,CAAA,IAAI,EAAgB,2CAAA,EAAA,GAAA,CAAA,EAAE,qBAAqB,CACzC,uBAAA,IAAI,EAAA,kCAAA,EAAA,GAAA,CAAO,EACX,sBAAA,CAAA,IAAI,EAAqB,gDAAA,EAAA,GAAA,CAAA,CAAC,eAAe,CAAC,aAAa,CACxD,CAAC;AACH,SAAA;QAED,sBAAA,CAAA,IAAI,mDAAgB,EAAE,YAAY,CAAC,sBAAA,CAAA,IAAI,EAAO,kCAAA,EAAA,GAAA,CAAA,CAAC,CAAC;KACjD;IAEM,eAAe,GAAA;QACpB,sBAAA,CAAA,IAAI,EAAqB,gDAAA,EAAA,GAAA,CAAA,EAAE,qBAAqB;AAC7C,aAAA,IAAI,CAAC,SAAS,CAAC,uBAAA,IAAI,EAAA,0CAAA,EAAA,GAAA,CAAe,CAAC,CAAC;AACpC,aAAA,SAAS,CAAC,CAAC,OAA6B,KAAI;YAC3C,sBAAA,CAAA,IAAI,EAAe,sCAAA,EAAA,sBAAA,CAAA,IAAI,EAAA,kCAAA,EAAA,GAAA,CAAO,CAAC,aAAa,CAAC,KAAK,EAAA,GAAA,EAAA,2CAAA,CAAA,CAAC;YACnD,IAAI,OAAO,EAAE,aAAa,EAAE;AAC1B,gBAAA,sBAAA,CAAA,IAAI,EAAA,2CAAA,EAAA,GAAA,CAAgB,EAAE,qBAAqB,CACzC,sBAAA,CAAA,IAAI,EAAA,kCAAA,EAAA,GAAA,CAAO,EACX,OAAO,CAAC,aAAa,CACtB,CAAC;AACH,aAAA;AACH,SAAC,CAAC,CAAC;;;;AAKL,QAAA,IAAI,uBAAA,IAAI,EAAA,oCAAA,EAAA,GAAA,CAAS,IAAI,sBAAA,CAAA,IAAI,2FAAY,EAAE;AACrC,YAAA,sBAAA,CAAA,IAAI,EAAA,oCAAA,EAAA,GAAA,CAAS,CAAC,QAAQ,CAAC,sBAAA,CAAA,IAAI,EAAY,sCAAA,EAAA,GAAA,EAAA,2CAAA,CAAA,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;AAC/D,YAAA,sBAAA,CAAA,IAAI,EAAA,2CAAA,EAAA,GAAA,CAAgB,CAAC,aAAa,EAAE,CAAC;AACtC,SAAA;KACF;IAEM,WAAW,GAAA;AAChB,QAAA,sBAAA,CAAA,IAAI,EAAA,0CAAA,EAAA,GAAA,CAAe,CAAC,IAAI,EAAE,CAAC;AAC3B,QAAA,sBAAA,CAAA,IAAI,EAAA,0CAAA,EAAA,GAAA,CAAe,CAAC,QAAQ,EAAE,CAAC;KAChC;AAED;;;AAGG;AAEI,IAAA,aAAa,CAAC,KAAU,EAAA;AAC7B,QAAA,IAAI,CAAC,sBAAA,CAAA,IAAI,EAAA,wCAAA,EAAA,GAAA,CAAa,EAAE;YACtB,sBAAA,CAAA,IAAI,EAA6B,sCAAA,EAAA,GAAA,EAAA,wDAAA,CAAA,CAAA,IAAA,CAAjC,IAAI,EAA8B,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACvD,SAAA;AAAM,aAAA;YACL,sBAAA,CAAA,IAAI,EAAa,wCAAA,EAAA,GAAA,CAAA,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5C,SAAA;KACF;AAED;;AAEG;IAEI,WAAW,GAAA;AAChB,QAAA,sBAAA,CAAA,IAAI,EAAA,sCAAA,EAAA,GAAA,CAAW,CAAf,IAAA,CAAA,IAAI,CAAa,CAAC;KACnB;AAGM,IAAA,aAAa,CAAC,KAAU,EAAA;AAC7B,QAAA,IAAI,CAAC,sBAAA,CAAA,IAAI,EAAA,wCAAA,EAAA,GAAA,CAAa,EAAE;YACtB,sBAAA,CAAA,IAAI,EAA6B,sCAAA,EAAA,GAAA,EAAA,wDAAA,CAAA,CAAA,IAAA,CAAjC,IAAI,EAA8B,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACvD,SAAA;AAAM,aAAA;YACL,sBAAA,CAAA,IAAI,EAAa,wCAAA,EAAA,GAAA,CAAA,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5C,SAAA;KACF;AAED;;;AAGG;AACI,IAAA,UAAU,CAAC,KAAa,EAAA;AAC7B,QAAA,sBAAA,CAAA,IAAI,EAAqB,gDAAA,EAAA,GAAA,CAAA,EAAE,oBAAoB,CAAC,KAAK,CAAC,CAAC;AAEvD,QAAA,sBAAA,CAAA,IAAI,EAAA,sCAAA,EAAe,KAAK,EAAA,GAAA,EAAA,2CAAA,CAAA,CAAC;KAC1B;AAEM,IAAA,gBAAgB,CAAC,EAAuC,EAAA;AAC7D,QAAA,sBAAA,CAAA,IAAI,EAAA,qCAAA,EAAa,EAAE,EAAA,GAAA,CAAA,CAAC;KACrB;AAEM,IAAA,iBAAiB,CAAC,EAAc,EAAA;AACrC,QAAA,sBAAA,CAAA,IAAI,EAAA,sCAAA,EAAc,EAAE,EAAA,GAAA,CAAA,CAAC;KACtB;AAEM,IAAA,yBAAyB,CAAC,EAAc,EAAA;AAC7C,QAAA,sBAAA,CAAA,IAAI,EAAA,4CAAA,EAAoB,EAAE,EAAA,GAAA,CAAA,CAAC;KAC5B;AAED;;;AAGG;AACI,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AACzC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;KAC5B;AAED;;;AAGG;AACI,IAAA,QAAQ,CAAC,OAAwB,EAAA;AACtC,QAAA,IAAI,CAAC,sBAAA,CAAA,IAAI,EAAA,oCAAA,EAAA,GAAA,CAAS,EAAE;AAClB,YAAA,sBAAA,CAAA,IAAI,EAAA,oCAAA,EAAY,OAAO,EAAA,GAAA,CAAA,CAAC;AACzB,SAAA;QAED,IAAI,IAAI,CAAC,uBAAuB,EAAE;AAChC,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AAED,QAAA,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAE5B,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AAED,QAAA,IACE,sBAAA,CAAA,IAAI,EAAqB,gDAAA,EAAA,GAAA,CAAA,EAAE,eAAe;YAC1C,CAAC,sBAAA,CAAA,IAAI,EAAgB,sCAAA,EAAA,GAAA,EAAA,2CAAA,CAAA,CAAA,IAAA,CAApB,IAAI,EAAiB,KAAK,CAAC,EAC5B;AACA,YAAA,IAAI,CAAC,sBAAA,CAAA,IAAI,EAAA,wCAAA,EAAA,GAAA,CAAa,EAAE;;;;;gBAKtB,OAAO,CAAC,aAAa,EAAE,CAAC;AACzB,aAAA;YAED,OAAO;AACL,gBAAA,aAAa,EAAE;AACb,oBAAA,OAAO,EAAE,KAAK;AACf,iBAAA;aACF,CAAC;AACH,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;;+4BAlMe,KAAyB,EAAA;AACvC,IAAA,MAAM,cAAc,GAAG,KAAK,IAAI,EAAE,CAAC;AACnC,IAAA,sBAAA,CAAA,IAAI,EAAA,wCAAA,EAAgB,cAAc,EAAA,GAAA,CAAA,CAAC;IACnC,sBAAA,CAAA,IAAI,EAAgB,2CAAA,EAAA,GAAA,CAAA,EAAE,eAAe,CAAC,sBAAA,CAAA,IAAI,EAAO,kCAAA,EAAA,GAAA,CAAA,EAAE,cAAc,CAAC,CAAC;AAEnE,IAAA,IAAI,cAAc,EAAE;AAClB,QAAA,MAAM,cAAc,GAAG,sBAAA,CAAA,IAAI,EAAc,sCAAA,EAAA,GAAA,EAAA,yCAAA,CAAA,CAAA,IAAA,CAAlB,IAAI,EAAe,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC;AAErE,QAAA,sBAAA,CAAA,IAAI,EAAU,qCAAA,EAAA,GAAA,CAAA,CAAA,IAAA,CAAd,IAAI,EAAW,cAAc,CAAC,CAAC;AAChC,KAAA;AAAM,SAAA;AACL,QAAA,sBAAA,CAAA,IAAI,EAAU,qCAAA,EAAA,GAAA,CAAA,CAAA,IAAA,CAAd,IAAI,EAAW,cAAc,CAAC,CAAC;AAChC,KAAA;AACD,IAAA,sBAAA,CAAA,IAAI,EAAA,4CAAA,EAAA,GAAA,CAAiB,CAArB,IAAA,CAAA,IAAI,CAAmB,CAAC;AAC1B,CAAC,EAAA,2CAAA,GAAA,SAAA,2CAAA,GAAA;IAGC,OAAO,sBAAA,CAAA,IAAI,EAAA,wCAAA,EAAA,GAAA,CAAa,CAAC;AAC3B,CAAC,+HAmL4B,IAAY,EAAA;IACvC,sBAAA,CAAA,IAAI,4CAAgB,IAAI,eAAe,CAAC,IAAI,CAAC,MAAA,CAAC;AAE9C,IAAA,sBAAA,CAAA,IAAI,EAAa,wCAAA,EAAA,GAAA,CAAA;AACd,SAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,sBAAA,CAAA,IAAI,EAAe,0CAAA,EAAA,GAAA,CAAA,CAAC,CAAC;AACvD,SAAA,SAAS,CAAC,CAAC,QAAQ,KAAI;AACtB,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AAC5B,KAAC,CAAC,CAAC;AACP,CAAC,qGAEe,WAAmB,EAAA;IACjC,IAAI;AACF,QAAA,MAAM,SAAS,GAAG,sBAAA,CAAA,IAAI,EAAY,uCAAA,EAAA,GAAA,CAAA,CAAC,oBAAoB,CACrD,WAAW,EACX,sBAAA,CAAA,IAAI,EAAqB,gDAAA,EAAA,GAAA,CAAA,EAAE,eAAe,EAAE,IAAI,CACjD,CAAC;QAEF,IACE,sBAAA,CAAA,IAAI,EAAqB,gDAAA,EAAA,GAAA,CAAA;AACzB,YAAA,CAAC,sBAAA,CAAA,IAAI,EAAqB,gDAAA,EAAA,GAAA,CAAA,CAAC,eAAe;YAC1C,SAAS,CAAC,YAAY,EAAE,EACxB;AACA,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;QAED,OAAO,sBAAA,CAAA,IAAI,EAAY,uCAAA,EAAA,GAAA,CAAA,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;AAClD,KAAA;AAAC,IAAA,OAAO,CAAC,EAAE;AACV,QAAA,OAAO,KAAK,CAAC;AACd,KAAA;AACH,CAAC,iGAMa,WAAmB,EAAA;IAC/B,IAAI;AACF,QAAA,MAAM,SAAS,GAAG,sBAAA,CAAA,IAAI,EAAY,uCAAA,EAAA,GAAA,CAAA,CAAC,oBAAoB,CACrD,WAAW,EACX,sBAAA,CAAA,IAAI,EAAqB,gDAAA,EAAA,GAAA,CAAA,EAAE,eAAe,EAAE,IAAI,CACjD,CAAC;QACF,IAAI,sBAAA,CAAA,IAAI,EAAY,uCAAA,EAAA,GAAA,CAAA,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE;AAChD,YAAA,QAAQ,sBAAA,CAAA,IAAI,EAAqB,gDAAA,EAAA,GAAA,CAAA,EAAE,YAAY;AAC7C,gBAAA,KAAK,eAAe;AAClB,oBAAA,OAAO,sBAAA,CAAA,IAAI,EAAY,uCAAA,EAAA,GAAA,CAAA,CAAC,MAAM,CAC5B,SAAS,EACT,iBAAiB,CAAC,aAAa,CAChC,CAAC;AACJ,gBAAA,KAAK,UAAU;AACb,oBAAA,OAAO,sBAAA,CAAA,IAAI,EAAY,uCAAA,EAAA,GAAA,CAAA,CAAC,MAAM,CAC5B,SAAS,EACT,iBAAiB,CAAC,QAAQ,CAC3B,CAAC;AACJ,gBAAA,KAAK,SAAS,CAAC;AACf,gBAAA;AACE,oBAAA,IACE,uBAAA,IAAI,EAAA,gDAAA,EAAA,GAAA,CAAqB,EAAE,eAAe,EAAE,IAAI;AAChD,wBAAA,sBAAA,CAAA,IAAI,EAAA,gDAAA,EAAA,GAAA,CAAqB,EAAE,cAAc,EACzC;AACA,wBAAA,OAAO,sBAAA,CAAA,IAAI,EAAY,uCAAA,EAAA,GAAA,CAAA,CAAC,MAAM,CAC5B,SAAS,EACT,iBAAiB,CAAC,aAAa,CAChC,CAAC;AACH,qBAAA;AAAM,yBAAA;AACL,wBAAA,OAAO,sBAAA,CAAA,IAAI,EAAY,uCAAA,EAAA,GAAA,CAAA,CAAC,MAAM,CAC5B,SAAS,EACT,iBAAiB,CAAC,QAAQ,CAC3B,CAAC;AACH,qBAAA;AACJ,aAAA;AACF,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,WAAW,CAAC;AACpB,SAAA;AACF,KAAA;AAAC,IAAA,OAAO,CAAC,EAAE;;;AAGV,QAAA,OAAO,WAAW,CAAC;AACpB,KAAA;AACH,CAAC,CAAA;wHAlTU,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,2BAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,2BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,EAF3B,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,eAAA,EAAA,OAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,SAAA,EAAA,CAAC,8BAA8B,EAAE,yBAAyB,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAE3D,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAJvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,SAAS,EAAE,CAAC,8BAA8B,EAAE,yBAAyB,CAAC;AACvE,iBAAA,CAAA;;0BAyEI,QAAQ;;0BACR,QAAQ;4CAhEA,QAAQ,EAAA,CAAA;sBADlB,KAAK;gBAsBC,uBAAuB,EAAA,CAAA;sBAD7B,KAAK;gBAwGC,aAAa,EAAA,CAAA;sBADnB,YAAY;uBAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAa3B,WAAW,EAAA,CAAA;sBADjB,YAAY;uBAAC,MAAM,CAAA;gBAMb,aAAa,EAAA,CAAA;sBADnB,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MCrLtB,mBAAmB,CAAA;;gHAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,EAbf,YAAA,EAAA,CAAA,sBAAsB,EAAE,2BAA2B,aAEhE,YAAY;QACZ,WAAW;QACX,mBAAmB;QACnB,qBAAqB;QACrB,aAAa;QACb,aAAa;QACb,4BAA4B;QAC5B,cAAc,CAAA,EAAA,OAAA,EAAA,CAEN,sBAAsB,EAAE,2BAA2B,CAAA,EAAA,CAAA,CAAA;AAElD,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,YAX5B,YAAY;QACZ,WAAW;QACX,mBAAmB;QACnB,qBAAqB;QACrB,aAAa;QACb,aAAa;QACb,4BAA4B;QAC5B,cAAc,CAAA,EAAA,CAAA,CAAA;2FAIL,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAd/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,CAAC,sBAAsB,EAAE,2BAA2B,CAAC;AACnE,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;wBACX,mBAAmB;wBACnB,qBAAqB;wBACrB,aAAa;wBACb,aAAa;wBACb,4BAA4B;wBAC5B,cAAc;AACf,qBAAA;AACD,oBAAA,OAAO,EAAE,CAAC,sBAAsB,EAAE,2BAA2B,CAAC;AAC/D,iBAAA,CAAA;;;AC1BD;;AAEG;;;;"}
@@ -19,7 +19,8 @@ import * as i0 from "@angular/core";
19
19
  export declare class SkyPhoneFieldInputDirective implements OnInit, OnDestroy, AfterViewInit, ControlValueAccessor, Validator {
20
20
  #private;
21
21
  /**
22
- * Whether to disable the phone field.
22
+ * Whether to disable the phone field on template-driven forms. Don't use this input on reactive forms because they may overwrite the input or leave the control out of sync.
23
+ * To set the disabled state on reactive forms, use the `FormControl` instead.
23
24
  * @default false
24
25
  */
25
26
  set disabled(value: boolean | undefined);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skyux/phone-field",
3
- "version": "8.2.6",
3
+ "version": "8.2.7",
4
4
  "author": "Blackbaud, Inc.",
5
5
  "keywords": [
6
6
  "blackbaud",
@@ -46,12 +46,12 @@
46
46
  "@angular/core": "^15.2.9",
47
47
  "@angular/forms": "^15.2.9",
48
48
  "@angular/platform-browser": "^15.2.9",
49
- "@skyux-sdk/testing": "8.2.6",
50
- "@skyux/forms": "8.2.6",
51
- "@skyux/i18n": "8.2.6",
52
- "@skyux/indicators": "8.2.6",
53
- "@skyux/lookup": "8.2.6",
54
- "@skyux/theme": "8.2.6"
49
+ "@skyux-sdk/testing": "8.2.7",
50
+ "@skyux/forms": "8.2.7",
51
+ "@skyux/i18n": "8.2.7",
52
+ "@skyux/indicators": "8.2.7",
53
+ "@skyux/lookup": "8.2.7",
54
+ "@skyux/theme": "8.2.7"
55
55
  },
56
56
  "dependencies": {
57
57
  "google-libphonenumber": "3.2.32",