@skyux/phone-field 6.0.0-beta.3 → 6.0.0-beta.4

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.
@@ -993,7 +993,7 @@
993
993
  "sources": [
994
994
  {
995
995
  "fileName": "projects/phone-field/src/modules/phone-field/phone-field-input.directive.ts",
996
- "line": 120,
996
+ "line": 118,
997
997
  "character": 2
998
998
  }
999
999
  ],
@@ -1125,7 +1125,7 @@
1125
1125
  "sources": [
1126
1126
  {
1127
1127
  "fileName": "projects/phone-field/src/modules/phone-field/phone-field-input.directive.ts",
1128
- "line": 87,
1128
+ "line": 85,
1129
1129
  "character": 9
1130
1130
  }
1131
1131
  ],
@@ -1158,7 +1158,7 @@
1158
1158
  "sources": [
1159
1159
  {
1160
1160
  "fileName": "projects/phone-field/src/modules/phone-field/phone-field-input.directive.ts",
1161
- "line": 69,
1161
+ "line": 67,
1162
1162
  "character": 13
1163
1163
  }
1164
1164
  ],
@@ -1231,7 +1231,7 @@
1231
1231
  "sources": [
1232
1232
  {
1233
1233
  "fileName": "projects/phone-field/src/modules/phone-field/phone-field-input.directive.ts",
1234
- "line": 147,
1234
+ "line": 145,
1235
1235
  "character": 9
1236
1236
  }
1237
1237
  ],
@@ -1268,7 +1268,7 @@
1268
1268
  "sources": [
1269
1269
  {
1270
1270
  "fileName": "projects/phone-field/src/modules/phone-field/phone-field-input.directive.ts",
1271
- "line": 167,
1271
+ "line": 165,
1272
1272
  "character": 9
1273
1273
  }
1274
1274
  ],
@@ -1305,7 +1305,7 @@
1305
1305
  "sources": [
1306
1306
  {
1307
1307
  "fileName": "projects/phone-field/src/modules/phone-field/phone-field-input.directive.ts",
1308
- "line": 127,
1308
+ "line": 125,
1309
1309
  "character": 9
1310
1310
  }
1311
1311
  ],
@@ -1356,7 +1356,7 @@
1356
1356
  "sources": [
1357
1357
  {
1358
1358
  "fileName": "projects/phone-field/src/modules/phone-field/phone-field-input.directive.ts",
1359
- "line": 189,
1359
+ "line": 187,
1360
1360
  "character": 9
1361
1361
  }
1362
1362
  ],
@@ -1403,7 +1403,7 @@
1403
1403
  "sources": [
1404
1404
  {
1405
1405
  "fileName": "projects/phone-field/src/modules/phone-field/phone-field-input.directive.ts",
1406
- "line": 177,
1406
+ "line": 175,
1407
1407
  "character": 9
1408
1408
  }
1409
1409
  ],
@@ -1466,7 +1466,7 @@
1466
1466
  "sources": [
1467
1467
  {
1468
1468
  "fileName": "projects/phone-field/src/modules/phone-field/phone-field-input.directive.ts",
1469
- "line": 194,
1469
+ "line": 192,
1470
1470
  "character": 9
1471
1471
  }
1472
1472
  ],
@@ -1508,7 +1508,7 @@
1508
1508
  "sources": [
1509
1509
  {
1510
1510
  "fileName": "projects/phone-field/src/modules/phone-field/phone-field-input.directive.ts",
1511
- "line": 212,
1511
+ "line": 210,
1512
1512
  "character": 9
1513
1513
  }
1514
1514
  ],
@@ -1590,7 +1590,7 @@
1590
1590
  "sources": [
1591
1591
  {
1592
1592
  "fileName": "projects/phone-field/src/modules/phone-field/phone-field-input.directive.ts",
1593
- "line": 216,
1593
+ "line": 214,
1594
1594
  "character": 9
1595
1595
  }
1596
1596
  ],
@@ -1659,7 +1659,7 @@
1659
1659
  "sources": [
1660
1660
  {
1661
1661
  "fileName": "projects/phone-field/src/modules/phone-field/phone-field-input.directive.ts",
1662
- "line": 220,
1662
+ "line": 218,
1663
1663
  "character": 9
1664
1664
  }
1665
1665
  ],
@@ -1728,7 +1728,7 @@
1728
1728
  "sources": [
1729
1729
  {
1730
1730
  "fileName": "projects/phone-field/src/modules/phone-field/phone-field-input.directive.ts",
1731
- "line": 228,
1731
+ "line": 226,
1732
1732
  "character": 9
1733
1733
  }
1734
1734
  ],
@@ -1784,7 +1784,7 @@
1784
1784
  "sources": [
1785
1785
  {
1786
1786
  "fileName": "projects/phone-field/src/modules/phone-field/phone-field-input.directive.ts",
1787
- "line": 236,
1787
+ "line": 234,
1788
1788
  "character": 9
1789
1789
  }
1790
1790
  ],
@@ -1844,7 +1844,7 @@
1844
1844
  "sources": [
1845
1845
  {
1846
1846
  "fileName": "projects/phone-field/src/modules/phone-field/phone-field-input.directive.ts",
1847
- "line": 206,
1847
+ "line": 204,
1848
1848
  "character": 9
1849
1849
  }
1850
1850
  ],
@@ -1934,7 +1934,7 @@
1934
1934
  "sources": [
1935
1935
  {
1936
1936
  "fileName": "projects/phone-field/src/modules/phone-field/phone-field-input.directive.ts",
1937
- "line": 61,
1937
+ "line": 59,
1938
1938
  "character": 13
1939
1939
  }
1940
1940
  ],
@@ -56,9 +56,9 @@ export class SkyPhoneFieldAdapterService {
56
56
  input.focus();
57
57
  }
58
58
  }
59
- SkyPhoneFieldAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPhoneFieldAdapterService, deps: [{ token: i0.Renderer2 }, { token: i1.SkyLibResourcesService }], target: i0.ɵɵFactoryTarget.Injectable });
60
- SkyPhoneFieldAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPhoneFieldAdapterService });
61
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPhoneFieldAdapterService, decorators: [{
59
+ SkyPhoneFieldAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyPhoneFieldAdapterService, deps: [{ token: i0.Renderer2 }, { token: i1.SkyLibResourcesService }], target: i0.ɵɵFactoryTarget.Injectable });
60
+ SkyPhoneFieldAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyPhoneFieldAdapterService });
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyPhoneFieldAdapterService, decorators: [{
62
62
  type: Injectable
63
63
  }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i1.SkyLibResourcesService }]; } });
64
64
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtZmllbGQtYWRhcHRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3Bob25lLWZpZWxkL3NyYy9saWIvbW9kdWxlcy9waG9uZS1maWVsZC9waG9uZS1maWVsZC1hZGFwdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFVBQVUsRUFBYSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXJELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFFM0M7OztHQUdHO0FBRUgsTUFBTSxPQUFPLDJCQUEyQjtJQUd0QyxZQUNVLFFBQW1CLEVBQ25CLGdCQUF3QztRQUR4QyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBd0I7UUFKMUMsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBS25DLENBQUM7SUFFRyxXQUFXO1FBQ2hCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRU0sZUFBZSxDQUFDLFVBQXNCLEVBQUUsU0FBaUI7UUFDOUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRU0sdUJBQXVCLENBQzVCLFVBQXNCLEVBQ3RCLFFBQWlCO1FBRWpCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFTSxxQkFBcUIsQ0FDMUIsVUFBc0IsRUFDdEIsV0FBbUI7UUFFbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQ3hCLFVBQVUsQ0FBQyxhQUFhLEVBQ3hCLGFBQWEsRUFDYixXQUFXLENBQ1osQ0FBQztJQUNKLENBQUM7SUFFTSxjQUFjLENBQUMsVUFBc0I7UUFDMUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVNLGVBQWUsQ0FBQyxVQUFzQixFQUFFLEtBQWE7UUFDMUQsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztTQUNyRTtJQUNILENBQUM7SUFFTSxZQUFZLENBQUMsT0FBbUI7UUFDckMsa0JBQWtCO1FBQ2xCLDBCQUEwQjtRQUMxQixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLEVBQUU7WUFDckQsSUFBSSxDQUFDLGdCQUFnQjtpQkFDbEIsU0FBUyxDQUFDLGlDQUFpQyxDQUFDO2lCQUM1QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztpQkFDbkMsU0FBUyxDQUFDLENBQUMsS0FBYSxFQUFFLEVBQUU7Z0JBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUN4QixPQUFPLENBQUMsYUFBYSxFQUNyQixZQUFZLEVBQ1osS0FBSyxDQUNOLENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0gsQ0FBQztJQUVNLHlCQUF5QixDQUFDLEVBQVc7UUFDMUMsTUFBTSxLQUFLLEdBQWdCLEVBQUUsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDeEQsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxlQUFlLENBQUMsRUFBVztRQUNoQyxNQUFNLEtBQUssR0FBZ0IsRUFBRSxDQUFDLGFBQWEsQ0FDekMsa0NBQWtDLENBQ25DLENBQUM7UUFDRixLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDaEIsQ0FBQzs7d0hBeEVVLDJCQUEyQjs0SEFBM0IsMkJBQTJCOzJGQUEzQiwyQkFBMkI7a0JBRHZDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLCBJbmplY3RhYmxlLCBPbkRlc3Ryb3ksIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5TGliUmVzb3VyY2VzU2VydmljZSB9IGZyb20gJ0Bza3l1eC9pMThuJztcblxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG4vKipcbiAqIFNlcnZpY2UgZm9yIGludGVyYWN0aW5nIHdpdGggdGhlIERPTSBlbGVtZW50cyBvZiB0aGUgcGhvbmUgZmllbGQuXG4gKiBAaW50ZXJuYWxcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNreVBob25lRmllbGRBZGFwdGVyU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgcmVzb3VyY2VzU2VydmljZTogU2t5TGliUmVzb3VyY2VzU2VydmljZVxuICApIHt9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMubmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgYWRkRWxlbWVudENsYXNzKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIGNsYXNzTmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIGNsYXNzTmFtZSk7XG4gIH1cblxuICBwdWJsaWMgc2V0RWxlbWVudERpc2FibGVkU3RhdGUoXG4gICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBkaXNhYmxlZDogYm9vbGVhblxuICApOiB2b2lkIHtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2Rpc2FibGVkJywgZGlzYWJsZWQpO1xuICB9XG5cbiAgcHVibGljIHNldEVsZW1lbnRQbGFjZWhvbGRlcihcbiAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHBsYWNlaG9sZGVyOiBzdHJpbmdcbiAgKTogdm9pZCB7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoXG4gICAgICBlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAncGxhY2Vob2xkZXInLFxuICAgICAgcGxhY2Vob2xkZXJcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHNldEVsZW1lbnRUeXBlKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpOiB2b2lkIHtcbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICd0eXBlJywgJ3RlbCcpO1xuICB9XG5cbiAgcHVibGljIHNldEVsZW1lbnRWYWx1ZShlbGVtZW50UmVmOiBFbGVtZW50UmVmLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3ZhbHVlJywgdmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXRBcmlhTGFiZWwoZWxlbWVudDogRWxlbWVudFJlZik6IHZvaWQge1xuICAgIC8qIFNhbml0eSBjaGVjayAqL1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKCFlbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJykpIHtcbiAgICAgIHRoaXMucmVzb3VyY2VzU2VydmljZVxuICAgICAgICAuZ2V0U3RyaW5nKCdza3l1eF9waG9uZV9maWVsZF9kZWZhdWx0X2xhYmVsJylcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShcbiAgICAgICAgICAgIGVsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICdhcmlhLWxhYmVsJyxcbiAgICAgICAgICAgIHZhbHVlXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGZvY3VzQ291bnRyeVNlYXJjaEVsZW1lbnQoZWw6IEVsZW1lbnQpOiB2b2lkIHtcbiAgICBjb25zdCBpbnB1dDogSFRNTEVsZW1lbnQgPSBlbC5xdWVyeVNlbGVjdG9yKCd0ZXh0YXJlYScpO1xuICAgIGlucHV0LmZvY3VzKCk7XG4gIH1cblxuICBwdWJsaWMgZm9jdXNQaG9uZUlucHV0KGVsOiBFbGVtZW50KTogdm9pZCB7XG4gICAgY29uc3QgaW5wdXQ6IEhUTUxFbGVtZW50ID0gZWwucXVlcnlTZWxlY3RvcihcbiAgICAgICcuc2t5LXBob25lLWZpZWxkLWNvbnRhaW5lciBpbnB1dCdcbiAgICApO1xuICAgIGlucHV0LmZvY3VzKCk7XG4gIH1cbn1cbiJdfQ==
@@ -8,7 +8,6 @@ import { SkyPhoneFieldComponent } from './phone-field.component';
8
8
  import * as i0 from "@angular/core";
9
9
  import * as i1 from "./phone-field-adapter.service";
10
10
  import * as i2 from "./phone-field.component";
11
- // tslint:disable:no-forward-ref no-use-before-declare
12
11
  const SKY_PHONE_FIELD_VALUE_ACCESSOR = {
13
12
  provide: NG_VALUE_ACCESSOR,
14
13
  useExisting: forwardRef(() => SkyPhoneFieldInputDirective),
@@ -19,7 +18,6 @@ const SKY_PHONE_FIELD_VALIDATOR = {
19
18
  useExisting: forwardRef(() => SkyPhoneFieldInputDirective),
20
19
  multi: true,
21
20
  };
22
- // tslint:enable
23
21
  /**
24
22
  * Creates a button, search input, and text input for entering and validating
25
23
  * international phone numbers. Place this attribute on an `input` element, and wrap
@@ -251,9 +249,9 @@ export class SkyPhoneFieldInputDirective {
251
249
  }
252
250
  }
253
251
  }
254
- SkyPhoneFieldInputDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPhoneFieldInputDirective, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1.SkyPhoneFieldAdapterService, optional: true }, { token: i2.SkyPhoneFieldComponent, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
255
- SkyPhoneFieldInputDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.7", type: SkyPhoneFieldInputDirective, selector: "[skyPhoneFieldInput]", inputs: { disabled: "disabled", skyPhoneFieldNoValidate: "skyPhoneFieldNoValidate" }, host: { listeners: { "change": "onInputChange($event)", "blur": "onInputBlur()", "input": "onInputTyping($event)" } }, providers: [SKY_PHONE_FIELD_VALUE_ACCESSOR, SKY_PHONE_FIELD_VALIDATOR], ngImport: i0 });
256
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPhoneFieldInputDirective, decorators: [{
252
+ SkyPhoneFieldInputDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyPhoneFieldInputDirective, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1.SkyPhoneFieldAdapterService, optional: true }, { token: i2.SkyPhoneFieldComponent, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
253
+ SkyPhoneFieldInputDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: SkyPhoneFieldInputDirective, selector: "[skyPhoneFieldInput]", inputs: { disabled: "disabled", skyPhoneFieldNoValidate: "skyPhoneFieldNoValidate" }, host: { listeners: { "change": "onInputChange($event)", "blur": "onInputBlur()", "input": "onInputTyping($event)" } }, providers: [SKY_PHONE_FIELD_VALUE_ACCESSOR, SKY_PHONE_FIELD_VALIDATOR], ngImport: i0 });
254
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyPhoneFieldInputDirective, decorators: [{
257
255
  type: Directive,
258
256
  args: [{
259
257
  selector: '[skyPhoneFieldInput]',
@@ -277,4 +275,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
277
275
  type: HostListener,
278
276
  args: ['input', ['$event']]
279
277
  }] } });
280
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtZmllbGQtaW5wdXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3Bob25lLWZpZWxkL3NyYy9saWIvbW9kdWxlcy9waG9uZS1maWVsZC9waG9uZS1maWVsZC1pbnB1dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBR0wsUUFBUSxFQUNSLFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0wsYUFBYSxFQUNiLGlCQUFpQixHQUdsQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7O0FBR2pFLHNEQUFzRDtBQUN0RCxNQUFNLDhCQUE4QixHQUFHO0lBQ3JDLE9BQU8sRUFBRSxpQkFBaUI7SUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQztJQUMxRCxLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUM7QUFFRixNQUFNLHlCQUF5QixHQUFHO0lBQ2hDLE9BQU8sRUFBRSxhQUFhO0lBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsMkJBQTJCLENBQUM7SUFDMUQsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FB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QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFNBQVMsRUFBRSxDQUFDLDhCQUE4QixFQUFFLHlCQUF5QixDQUFDO2lCQUN2RTs7MEJBK0RJLFFBQVE7OzBCQUNSLFFBQVE7NENBdkRBLFFBQVE7c0JBRGxCLEtBQUs7Z0JBbUJDLHVCQUF1QjtzQkFEN0IsS0FBSztnQkEyRkMsYUFBYTtzQkFEbkIsWUFBWTt1QkFBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBYTNCLFdBQVc7c0JBRGpCLFlBQVk7dUJBQUMsTUFBTTtnQkFNYixhQUFhO3NCQURuQixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgZm9yd2FyZFJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBOR19WQUxJREFUT1JTLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgVmFsaWRhdGlvbkVycm9ycyxcbiAgVmFsaWRhdG9yLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IFBob25lTnVtYmVyRm9ybWF0LCBQaG9uZU51bWJlclV0aWwgfSBmcm9tICdnb29nbGUtbGlicGhvbmVudW1iZXInO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5UGhvbmVGaWVsZEFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9waG9uZS1maWVsZC1hZGFwdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5UGhvbmVGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vcGhvbmUtZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IFNreVBob25lRmllbGRDb3VudHJ5IH0gZnJvbSAnLi90eXBlcy9jb3VudHJ5JztcblxuLy8gdHNsaW50OmRpc2FibGU6bm8tZm9yd2FyZC1yZWYgbm8tdXNlLWJlZm9yZS1kZWNsYXJlXG5jb25zdCBTS1lfUEhPTkVfRklFTERfVkFMVUVfQUNDRVNTT1IgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTa3lQaG9uZUZpZWxkSW5wdXREaXJlY3RpdmUpLFxuICBtdWx0aTogdHJ1ZSxcbn07XG5cbmNvbnN0IFNLWV9QSE9ORV9GSUVMRF9WQUxJREFUT1IgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNreVBob25lRmllbGRJbnB1dERpcmVjdGl2ZSksXG4gIG11bHRpOiB0cnVlLFxufTtcbi8vIHRzbGludDplbmFibGVcblxuLyoqXG4gKiBDcmVhdGVzIGEgYnV0dG9uLCBzZWFyY2ggaW5wdXQsIGFuZCB0ZXh0IGlucHV0IGZvciBlbnRlcmluZyBhbmQgdmFsaWRhdGluZ1xuICogaW50ZXJuYXRpb25hbCBwaG9uZSBudW1iZXJzLiBQbGFjZSB0aGlzIGF0dHJpYnV0ZSBvbiBhbiBgaW5wdXRgIGVsZW1lbnQsIGFuZCB3cmFwXG4gKiB0aGF0IGVsZW1lbnQgaW4gYSBgc2t5LXBob25lLWZpZWxkYCBjb21wb25lbnQuIEJ5IGRlZmF1bHQsIHRoZSBjb3VudHJ5IHNlbGVjdG9yXG4gKiBidXR0b24gZGlzcGxheXMgYSBmbGFnIGljb24gZm9yIHRoZSBkZWZhdWx0IGNvdW50cnksIGFuZCB0aGUgcGhvbmUgbnVtYmVyIGlucHV0XG4gKiBkaXNwbGF5cyBhIHNhbXBsZSBvZiB0aGUgY29ycmVjdCBwaG9uZSBudW1iZXIgZm9ybWF0LiBXaGVuIHVzZXJzIHNlbGVjdCB0aGUgY291bnRyeVxuICogc2VsZWN0b3IgYnV0dG9uLCB0aGV5IGV4cG9zZSB0aGUgY291bnRyeSBzZWFyY2ggaW5wdXQsIHdoaWNoIGlzXG4gKiBbYW4gYXV0b2NvbXBsZXRlIGlucHV0XShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlKVxuICogdGhhdCBhbGxvd3MgdGhlbSB0byBzZWxlY3QgZGlmZmVyZW50IGNvdW50cmllcy4gV2hlbiB1c2VycyBlbnRlciBgK2AgZm9sbG93ZWQgYnkgYW5cbiAqIGludGVybmF0aW9uYWwgZGlhbCBjb2RlIGluIHRoZSBwaG9uZSBudW1iZXIgaW5wdXQsIHRoZSBjb3VudHJ5IGF1dG9tYXRpY2FsbHkgc3dpdGNoZXNcbiAqIHRvIHRoZSBjb3VudHJ5IGFzc29jaWF0ZWQgd2l0aCB0aGUgZGlhbCBjb2RlLlxuICogQHJlcXVpcmVkXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tza3lQaG9uZUZpZWxkSW5wdXRdJyxcbiAgcHJvdmlkZXJzOiBbU0tZX1BIT05FX0ZJRUxEX1ZBTFVFX0FDQ0VTU09SLCBTS1lfUEhPTkVfRklFTERfVkFMSURBVE9SXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5UGhvbmVGaWVsZElucHV0RGlyZWN0aXZlXG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3JcbntcbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRvIGRpc2FibGUgdGhlIHBob25lIGZpZWxkLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMucGhvbmVGaWVsZENvbXBvbmVudC5jb3VudHJ5U2VsZWN0RGlzYWJsZWQgPSB2YWx1ZTtcbiAgICB0aGlzLmFkYXB0ZXJTZXJ2aWNlLnNldEVsZW1lbnREaXNhYmxlZFN0YXRlKHRoaXMuZWxSZWYsIHZhbHVlKTtcbiAgICB0aGlzLl9kaXNhYmxlZCA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQgfHwgZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdG8gcHJldmVudCB2YWxpZGF0aW9uIG9uIHRoZSBwaG9uZSBudW1iZXIgaW5wdXQuIEZvciB2YWxpZGF0aW9uLFxuICAgKiBwaG9uZSBudW1iZXJzIGFyZSBkcml2ZW4gdGhyb3VnaCB0aGUgYG5nTW9kZWxgIGF0dHJpYnV0ZSB0aGF0IHlvdSBzcGVjaWZ5IG9uIGFuXG4gICAqIGBpbnB1dGAgZWxlbWVudCBvciBvbiBhIGBGb3JtQ29udHJvbGAgaW4gYSByZWFjdGl2ZSBmb3JtLiBUbyBwcmV2ZW50IHZhbGlkYXRpb24sXG4gICAqIHNldCB0aGlzIHByb3BlcnR5IHRvIGB0cnVlYC5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBza3lQaG9uZUZpZWxkTm9WYWxpZGF0ZSA9IGZhbHNlO1xuXG4gIHByaXZhdGUgc2V0IG1vZGVsVmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX21vZGVsVmFsdWUgPSB2YWx1ZTtcblxuICAgIHRoaXMuYWRhcHRlclNlcnZpY2Uuc2V0RWxlbWVudFZhbHVlKHRoaXMuZWxSZWYsIHZhbHVlKTtcblxuICAgIGlmICh2YWx1ZSkge1xuICAgICAgY29uc3QgZm9ybWF0dGVkVmFsdWUgPSB0aGlzLmZvcm1hdE51bWJlcih2YWx1ZS50b1N0cmluZygpKTtcblxuICAgICAgdGhpcy5vbkNoYW5nZShmb3JtYXR0ZWRWYWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICAgIH1cbiAgICB0aGlzLnZhbGlkYXRvckNoYW5nZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgbW9kZWxWYWx1ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9tb2RlbFZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBjb250cm9sOiBBYnN0cmFjdENvbnRyb2w7XG5cbiAgcHJpdmF0ZSB0ZXh0Q2hhbmdlczogQmVoYXZpb3JTdWJqZWN0PHN0cmluZz47XG5cbiAgcHJpdmF0ZSBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3QoKTtcblxuICBwcml2YXRlIHBob25lVXRpbHMgPSBQaG9uZU51bWJlclV0aWwuZ2V0SW5zdGFuY2UoKTtcblxuICBwcml2YXRlIF9kaXNhYmxlZDogYm9vbGVhbjtcblxuICBwcml2YXRlIF9tb2RlbFZhbHVlOiBzdHJpbmc7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWYsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBhZGFwdGVyU2VydmljZTogU2t5UGhvbmVGaWVsZEFkYXB0ZXJTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcGhvbmVGaWVsZENvbXBvbmVudDogU2t5UGhvbmVGaWVsZENvbXBvbmVudFxuICApIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5waG9uZUZpZWxkQ29tcG9uZW50KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdZb3UgbXVzdCB3cmFwIHRoZSBgc2t5UGhvbmVGaWVsZElucHV0YCBkaXJlY3RpdmUgd2l0aGluIGEgJyArXG4gICAgICAgICAgJ2A8c2t5LXBob25lLWZpZWxkPmAgY29tcG9uZW50ISdcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5hZGFwdGVyU2VydmljZS5zZXRFbGVtZW50VHlwZSh0aGlzLmVsUmVmKTtcbiAgICB0aGlzLmFkYXB0ZXJTZXJ2aWNlLmFkZEVsZW1lbnRDbGFzcyh0aGlzLmVsUmVmLCAnc2t5LWZvcm0tY29udHJvbCcpO1xuICAgIGlmICh0aGlzLnBob25lRmllbGRDb21wb25lbnQuc2VsZWN0ZWRDb3VudHJ5KSB7XG4gICAgICB0aGlzLmFkYXB0ZXJTZXJ2aWNlLnNldEVsZW1lbnRQbGFjZWhvbGRlcihcbiAgICAgICAgdGhpcy5lbFJlZixcbiAgICAgICAgdGhpcy5waG9uZUZpZWxkQ29tcG9uZW50LnNlbGVjdGVkQ291bnRyeS5leGFtcGxlTnVtYmVyXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuYWRhcHRlclNlcnZpY2Uuc2V0QXJpYUxhYmVsKHRoaXMuZWxSZWYpO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnBob25lRmllbGRDb21wb25lbnQuc2VsZWN0ZWRDb3VudHJ5Q2hhbmdlXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKGNvdW50cnk6IFNreVBob25lRmllbGRDb3VudHJ5KSA9PiB7XG4gICAgICAgIHRoaXMubW9kZWxWYWx1ZSA9IHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC52YWx1ZTtcbiAgICAgICAgdGhpcy5hZGFwdGVyU2VydmljZS5zZXRFbGVtZW50UGxhY2Vob2xkZXIoXG4gICAgICAgICAgdGhpcy5lbFJlZixcbiAgICAgICAgICBjb3VudHJ5LmV4YW1wbGVOdW1iZXJcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuXG4gICAgLy8gVGhpcyBpcyBuZWVkZWQgdG8gYWRkcmVzcyBhIGJ1ZyBpbiBBbmd1bGFyIDQsIHdoZXJlIHRoZSB2YWx1ZSBpcyBub3QgY2hhbmdlZCBvbiB0aGUgdmlldy5cbiAgICAvLyBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzEzNzkyXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy5jb250cm9sICYmIHRoaXMubW9kZWxWYWx1ZSkge1xuICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKHRoaXMubW9kZWxWYWx1ZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMubmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKipcbiAgICogV3JpdGVzIHRoZSBuZXcgdmFsdWUgZm9yIHJlYWN0aXZlIGZvcm1zIG9uIGNoYW5nZSBldmVudHMgb24gdGhlIGlucHV0IGVsZW1lbnRcbiAgICogQHBhcmFtIGV2ZW50IFRoZSBjaGFuZ2UgZXZlbnQgdGhhdCB3YXMgcmVjZWl2ZWRcbiAgICovXG4gIEBIb3N0TGlzdGVuZXIoJ2NoYW5nZScsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbklucHV0Q2hhbmdlKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMudGV4dENoYW5nZXMpIHtcbiAgICAgIHRoaXMuc2V0dXBUZXh0Q2hhbmdlU3Vic2NyaXB0aW9uKGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudGV4dENoYW5nZXMubmV4dChldmVudC50YXJnZXQudmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBNYXJrcyByZWFjdGl2ZSBmb3JtIGNvbnRyb2xzIGFzIHRvdWNoZWQgb24gaW5wdXQgYmx1ciBldmVudHNcbiAgICovXG4gIEBIb3N0TGlzdGVuZXIoJ2JsdXInKVxuICBwdWJsaWMgb25JbnB1dEJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2lucHV0JywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uSW5wdXRUeXBpbmcoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGlmICghdGhpcy50ZXh0Q2hhbmdlcykge1xuICAgICAgdGhpcy5zZXR1cFRleHRDaGFuZ2VTdWJzY3JpcHRpb24oZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50ZXh0Q2hhbmdlcy5uZXh0KGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFdyaXRlcyB0aGUgbmV3IHZhbHVlIGZvciByZWFjdGl2ZSBmb3Jtc1xuICAgKiBAcGFyYW0gdmFsdWUgVGhlIG5ldyB2YWx1ZSBmb3IgdGhlIGlucHV0XG4gICAqL1xuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5waG9uZUZpZWxkQ29tcG9uZW50LnNldENvdW50cnlCeURpYWxDb2RlKHZhbHVlKTtcblxuICAgIHRoaXMubW9kZWxWYWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogYW55KSA9PiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZShmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMudmFsaWRhdG9yQ2hhbmdlID0gZm47XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgZGlzYWJsZWQgc3RhdGUgb24gdGhlIGlucHV0XG4gICAqIEBwYXJhbSBpc0Rpc2FibGVkIHRoZSBuZXcgdmFsdWUgb2YgdGhlIGlucHV0J3MgZGlzYWJsZWQgc3RhdGVcbiAgICovXG4gIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZSdzIHRoZSBmb3JtIGNvbnRyb2wncyBjdXJyZW50IHZhbHVlXG4gICAqIEBwYXJhbSBjb250cm9sIHRoZSBmb3JtIGNvbnRyb2wgZm9yIHRoZSBpbnB1dFxuICAgKi9cbiAgcHVibGljIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMge1xuICAgIGlmICghdGhpcy5jb250cm9sKSB7XG4gICAgICB0aGlzLmNvbnRyb2wgPSBjb250cm9sO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnNreVBob25lRmllbGROb1ZhbGlkYXRlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWUgPSBjb250cm9sLnZhbHVlO1xuXG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIHRoaXMucGhvbmVGaWVsZENvbXBvbmVudC5zZWxlY3RlZENvdW50cnkgJiZcbiAgICAgICF0aGlzLnZhbGlkYXRlTnVtYmVyKHZhbHVlKVxuICAgICkge1xuICAgICAgaWYgKCF0aGlzLnRleHRDaGFuZ2VzKSB7XG4gICAgICAgIC8vIE1hcmsgdGhlIGludmFsaWQgY29udHJvbCBhcyB0b3VjaGVkIHNvIHRoYXQgdGhlIGlucHV0J3MgaW52YWxpZCBDU1Mgc3R5bGVzIGFwcGVhci5cbiAgICAgICAgLy8gKFRoaXMgaXMgb25seSByZXF1aXJlZCB3aGVuIHRoZSBpbnZhbGlkIHZhbHVlIGlzIHNldCBieSB0aGUgRm9ybUNvbnRyb2wgY29uc3RydWN0b3IuKVxuICAgICAgICAvLyBXZSBkb24ndCBkbyB0aGlzIGlmIHRoZSBpbnB1dCBpcyB0aGUgYWN0aXZlIGVsZW1lbnQgc28gdGhhdCB3ZSBkb24ndCBzaG93IHZhbGlkYXRpb25cbiAgICAgICAgLy8gZXJyb3JzIHVubGVzcyBpdCBpcyBpbnZhbGlkIG9uIGluaXRpYWxpemF0aW9uIG9yIHRoZSBpbnB1dCBoYXMgYmVlbiBibHVycmVkLlxuICAgICAgICBjb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc2t5UGhvbmVGaWVsZDoge1xuICAgICAgICAgIGludmFsaWQ6IHZhbHVlLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldHVwVGV4dENoYW5nZVN1YnNjcmlwdGlvbih0ZXh0OiBzdHJpbmcpIHtcbiAgICB0aGlzLnRleHRDaGFuZ2VzID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0ZXh0KTtcblxuICAgIHRoaXMudGV4dENoYW5nZXNcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSg1MDApLCB0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKG5ld1ZhbHVlKSA9PiB7XG4gICAgICAgIHRoaXMud3JpdGVWYWx1ZShuZXdWYWx1ZSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVOdW1iZXIocGhvbmVOdW1iZXI6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBudW1iZXJPYmogPSB0aGlzLnBob25lVXRpbHMucGFyc2VBbmRLZWVwUmF3SW5wdXQoXG4gICAgICAgIHBob25lTnVtYmVyLFxuICAgICAgICB0aGlzLnBob25lRmllbGRDb21wb25lbnQuc2VsZWN0ZWRDb3VudHJ5LmlzbzJcbiAgICAgICk7XG5cbiAgICAgIGlmIChcbiAgICAgICAgIXRoaXMucGhvbmVGaWVsZENvbXBvbmVudC5hbGxvd0V4dGVuc2lvbnMgJiZcbiAgICAgICAgbnVtYmVyT2JqLmdldEV4dGVuc2lvbigpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5waG9uZVV0aWxzLmlzVmFsaWROdW1iZXIobnVtYmVyT2JqKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEZvcm1hdCdzIHRoZSBnaXZlbiBwaG9uZSBudW1iZXIgYmFzZWQgb24gdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBjb3VudHJ5LlxuICAgKiBAcGFyYW0gcGhvbmVOdW1iZXIgVGhlIG51bWJlciB0byBmb3JtYXRcbiAgICovXG4gIHByaXZhdGUgZm9ybWF0TnVtYmVyKHBob25lTnVtYmVyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBudW1iZXJPYmogPSB0aGlzLnBob25lVXRpbHMucGFyc2VBbmRLZWVwUmF3SW5wdXQoXG4gICAgICAgIHBob25lTnVtYmVyLFxuICAgICAgICB0aGlzLnBob25lRmllbGRDb21wb25lbnQuc2VsZWN0ZWRDb3VudHJ5LmlzbzJcbiAgICAgICk7XG4gICAgICBpZiAodGhpcy5waG9uZVV0aWxzLmlzUG9zc2libGVOdW1iZXIobnVtYmVyT2JqKSkge1xuICAgICAgICBzd2l0Y2ggKHRoaXMucGhvbmVGaWVsZENvbXBvbmVudC5yZXR1cm5Gb3JtYXQpIHtcbiAgICAgICAgICBjYXNlICdpbnRlcm5hdGlvbmFsJzpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnBob25lVXRpbHMuZm9ybWF0KFxuICAgICAgICAgICAgICBudW1iZXJPYmosXG4gICAgICAgICAgICAgIFBob25lTnVtYmVyRm9ybWF0LklOVEVSTkFUSU9OQUxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgY2FzZSAnbmF0aW9uYWwnOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMucGhvbmVVdGlscy5mb3JtYXQoXG4gICAgICAgICAgICAgIG51bWJlck9iaixcbiAgICAgICAgICAgICAgUGhvbmVOdW1iZXJGb3JtYXQuTkFUSU9OQUxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgY2FzZSAnZGVmYXVsdCc6XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgdGhpcy5waG9uZUZpZWxkQ29tcG9uZW50LnNlbGVjdGVkQ291bnRyeS5pc28yICE9PVxuICAgICAgICAgICAgICB0aGlzLnBob25lRmllbGRDb21wb25lbnQuZGVmYXVsdENvdW50cnlcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5waG9uZVV0aWxzLmZvcm1hdChcbiAgICAgICAgICAgICAgICBudW1iZXJPYmosXG4gICAgICAgICAgICAgICAgUGhvbmVOdW1iZXJGb3JtYXQuSU5URVJOQVRJT05BTFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucGhvbmVVdGlscy5mb3JtYXQoXG4gICAgICAgICAgICAgICAgbnVtYmVyT2JqLFxuICAgICAgICAgICAgICAgIFBob25lTnVtYmVyRm9ybWF0Lk5BVElPTkFMXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBwaG9uZU51bWJlcjtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvKiBzYW5pdHkgY2hlY2sgKi9cbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICByZXR1cm4gcGhvbmVOdW1iZXI7XG4gICAgfVxuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICBwcml2YXRlIG9uQ2hhbmdlID0gKF86IGFueSkgPT4ge307XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICBwcml2YXRlIG9uVG91Y2hlZCA9ICgpID0+IHt9O1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgcHJpdmF0ZSB2YWxpZGF0b3JDaGFuZ2UgPSAoKSA9PiB7fTtcbn1cbiJdfQ==
278
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtZmllbGQtaW5wdXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3Bob25lLWZpZWxkL3NyYy9saWIvbW9kdWxlcy9waG9uZS1maWVsZC9waG9uZS1maWVsZC1pbnB1dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBR0wsUUFBUSxFQUNSLFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0wsYUFBYSxFQUNiLGlCQUFpQixHQUdsQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7O0FBR2pFLE1BQU0sOEJBQThCLEdBQUc7SUFDckMsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDJCQUEyQixDQUFDO0lBQzFELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQUVGLE1BQU0seUJBQXlCLEdBQUc7SUFDaEMsT0FBTyxFQUFFLGFBQWE7SUFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQztJQUMxRCxLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUM7QUFFRjs7Ozs7Ozs7Ozs7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QUUsc0JBQXNCO29CQUNoQyxTQUFTLEVBQUUsQ0FBQyw4QkFBOEIsRUFBRSx5QkFBeUIsQ0FBQztpQkFDdkU7OzBCQStESSxRQUFROzswQkFDUixRQUFROzRDQXZEQSxRQUFRO3NCQURsQixLQUFLO2dCQW1CQyx1QkFBdUI7c0JBRDdCLEtBQUs7Z0JBMkZDLGFBQWE7c0JBRG5CLFlBQVk7dUJBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQWEzQixXQUFXO3NCQURqQixZQUFZO3VCQUFDLE1BQU07Z0JBTWIsYUFBYTtzQkFEbkIsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIGZvcndhcmRSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgTkdfVkFMSURBVE9SUyxcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvcixcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBQaG9uZU51bWJlckZvcm1hdCwgUGhvbmVOdW1iZXJVdGlsIH0gZnJvbSAnZ29vZ2xlLWxpYnBob25lbnVtYmVyJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreVBob25lRmllbGRBZGFwdGVyU2VydmljZSB9IGZyb20gJy4vcGhvbmUtZmllbGQtYWRhcHRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNreVBob25lRmllbGRDb21wb25lbnQgfSBmcm9tICcuL3Bob25lLWZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lQaG9uZUZpZWxkQ291bnRyeSB9IGZyb20gJy4vdHlwZXMvY291bnRyeSc7XG5cbmNvbnN0IFNLWV9QSE9ORV9GSUVMRF9WQUxVRV9BQ0NFU1NPUiA9IHtcbiAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNreVBob25lRmllbGRJbnB1dERpcmVjdGl2ZSksXG4gIG11bHRpOiB0cnVlLFxufTtcblxuY29uc3QgU0tZX1BIT05FX0ZJRUxEX1ZBTElEQVRPUiA9IHtcbiAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2t5UGhvbmVGaWVsZElucHV0RGlyZWN0aXZlKSxcbiAgbXVsdGk6IHRydWUsXG59O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBidXR0b24sIHNlYXJjaCBpbnB1dCwgYW5kIHRleHQgaW5wdXQgZm9yIGVudGVyaW5nIGFuZCB2YWxpZGF0aW5nXG4gKiBpbnRlcm5hdGlvbmFsIHBob25lIG51bWJlcnMuIFBsYWNlIHRoaXMgYXR0cmlidXRlIG9uIGFuIGBpbnB1dGAgZWxlbWVudCwgYW5kIHdyYXBcbiAqIHRoYXQgZWxlbWVudCBpbiBhIGBza3ktcGhvbmUtZmllbGRgIGNvbXBvbmVudC4gQnkgZGVmYXVsdCwgdGhlIGNvdW50cnkgc2VsZWN0b3JcbiAqIGJ1dHRvbiBkaXNwbGF5cyBhIGZsYWcgaWNvbiBmb3IgdGhlIGRlZmF1bHQgY291bnRyeSwgYW5kIHRoZSBwaG9uZSBudW1iZXIgaW5wdXRcbiAqIGRpc3BsYXlzIGEgc2FtcGxlIG9mIHRoZSBjb3JyZWN0IHBob25lIG51bWJlciBmb3JtYXQuIFdoZW4gdXNlcnMgc2VsZWN0IHRoZSBjb3VudHJ5XG4gKiBzZWxlY3RvciBidXR0b24sIHRoZXkgZXhwb3NlIHRoZSBjb3VudHJ5IHNlYXJjaCBpbnB1dCwgd2hpY2ggaXNcbiAqIFthbiBhdXRvY29tcGxldGUgaW5wdXRdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9hdXRvY29tcGxldGUpXG4gKiB0aGF0IGFsbG93cyB0aGVtIHRvIHNlbGVjdCBkaWZmZXJlbnQgY291bnRyaWVzLiBXaGVuIHVzZXJzIGVudGVyIGArYCBmb2xsb3dlZCBieSBhblxuICogaW50ZXJuYXRpb25hbCBkaWFsIGNvZGUgaW4gdGhlIHBob25lIG51bWJlciBpbnB1dCwgdGhlIGNvdW50cnkgYXV0b21hdGljYWxseSBzd2l0Y2hlc1xuICogdG8gdGhlIGNvdW50cnkgYXNzb2NpYXRlZCB3aXRoIHRoZSBkaWFsIGNvZGUuXG4gKiBAcmVxdWlyZWRcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3NreVBob25lRmllbGRJbnB1dF0nLFxuICBwcm92aWRlcnM6IFtTS1lfUEhPTkVfRklFTERfVkFMVUVfQUNDRVNTT1IsIFNLWV9QSE9ORV9GSUVMRF9WQUxJREFUT1JdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lQaG9uZUZpZWxkSW5wdXREaXJlY3RpdmVcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvclxue1xuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdG8gZGlzYWJsZSB0aGUgcGhvbmUgZmllbGQuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5waG9uZUZpZWxkQ29tcG9uZW50LmNvdW50cnlTZWxlY3REaXNhYmxlZCA9IHZhbHVlO1xuICAgIHRoaXMuYWRhcHRlclNlcnZpY2Uuc2V0RWxlbWVudERpc2FibGVkU3RhdGUodGhpcy5lbFJlZiwgdmFsdWUpO1xuICAgIHRoaXMuX2Rpc2FibGVkID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZCB8fCBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0byBwcmV2ZW50IHZhbGlkYXRpb24gb24gdGhlIHBob25lIG51bWJlciBpbnB1dC4gRm9yIHZhbGlkYXRpb24sXG4gICAqIHBob25lIG51bWJlcnMgYXJlIGRyaXZlbiB0aHJvdWdoIHRoZSBgbmdNb2RlbGAgYXR0cmlidXRlIHRoYXQgeW91IHNwZWNpZnkgb24gYW5cbiAgICogYGlucHV0YCBlbGVtZW50IG9yIG9uIGEgYEZvcm1Db250cm9sYCBpbiBhIHJlYWN0aXZlIGZvcm0uIFRvIHByZXZlbnQgdmFsaWRhdGlvbixcbiAgICogc2V0IHRoaXMgcHJvcGVydHkgdG8gYHRydWVgLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNreVBob25lRmllbGROb1ZhbGlkYXRlID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBzZXQgbW9kZWxWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fbW9kZWxWYWx1ZSA9IHZhbHVlO1xuXG4gICAgdGhpcy5hZGFwdGVyU2VydmljZS5zZXRFbGVtZW50VmFsdWUodGhpcy5lbFJlZiwgdmFsdWUpO1xuXG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBjb25zdCBmb3JtYXR0ZWRWYWx1ZSA9IHRoaXMuZm9ybWF0TnVtYmVyKHZhbHVlLnRvU3RyaW5nKCkpO1xuXG4gICAgICB0aGlzLm9uQ2hhbmdlKGZvcm1hdHRlZFZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gICAgfVxuICAgIHRoaXMudmFsaWRhdG9yQ2hhbmdlKCk7XG4gIH1cblxuICBwcml2YXRlIGdldCBtb2RlbFZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX21vZGVsVmFsdWU7XG4gIH1cblxuICBwcml2YXRlIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDtcblxuICBwcml2YXRlIHRleHRDaGFuZ2VzOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPjtcblxuICBwcml2YXRlIG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpO1xuXG4gIHByaXZhdGUgcGhvbmVVdGlscyA9IFBob25lTnVtYmVyVXRpbC5nZXRJbnN0YW5jZSgpO1xuXG4gIHByaXZhdGUgX2Rpc2FibGVkOiBib29sZWFuO1xuXG4gIHByaXZhdGUgX21vZGVsVmFsdWU6IHN0cmluZztcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBlbFJlZjogRWxlbWVudFJlZixcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIGFkYXB0ZXJTZXJ2aWNlOiBTa3lQaG9uZUZpZWxkQWRhcHRlclNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBwaG9uZUZpZWxkQ29tcG9uZW50OiBTa3lQaG9uZUZpZWxkQ29tcG9uZW50XG4gICkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnBob25lRmllbGRDb21wb25lbnQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ1lvdSBtdXN0IHdyYXAgdGhlIGBza3lQaG9uZUZpZWxkSW5wdXRgIGRpcmVjdGl2ZSB3aXRoaW4gYSAnICtcbiAgICAgICAgICAnYDxza3ktcGhvbmUtZmllbGQ+YCBjb21wb25lbnQhJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLmFkYXB0ZXJTZXJ2aWNlLnNldEVsZW1lbnRUeXBlKHRoaXMuZWxSZWYpO1xuICAgIHRoaXMuYWRhcHRlclNlcnZpY2UuYWRkRWxlbWVudENsYXNzKHRoaXMuZWxSZWYsICdza3ktZm9ybS1jb250cm9sJyk7XG4gICAgaWYgKHRoaXMucGhvbmVGaWVsZENvbXBvbmVudC5zZWxlY3RlZENvdW50cnkpIHtcbiAgICAgIHRoaXMuYWRhcHRlclNlcnZpY2Uuc2V0RWxlbWVudFBsYWNlaG9sZGVyKFxuICAgICAgICB0aGlzLmVsUmVmLFxuICAgICAgICB0aGlzLnBob25lRmllbGRDb21wb25lbnQuc2VsZWN0ZWRDb3VudHJ5LmV4YW1wbGVOdW1iZXJcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5hZGFwdGVyU2VydmljZS5zZXRBcmlhTGFiZWwodGhpcy5lbFJlZik7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMucGhvbmVGaWVsZENvbXBvbmVudC5zZWxlY3RlZENvdW50cnlDaGFuZ2VcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoY291bnRyeTogU2t5UGhvbmVGaWVsZENvdW50cnkpID0+IHtcbiAgICAgICAgdGhpcy5tb2RlbFZhbHVlID0gdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlO1xuICAgICAgICB0aGlzLmFkYXB0ZXJTZXJ2aWNlLnNldEVsZW1lbnRQbGFjZWhvbGRlcihcbiAgICAgICAgICB0aGlzLmVsUmVmLFxuICAgICAgICAgIGNvdW50cnkuZXhhbXBsZU51bWJlclxuICAgICAgICApO1xuICAgICAgfSk7XG5cbiAgICAvLyBUaGlzIGlzIG5lZWRlZCB0byBhZGRyZXNzIGEgYnVnIGluIEFuZ3VsYXIgNCwgd2hlcmUgdGhlIHZhbHVlIGlzIG5vdCBjaGFuZ2VkIG9uIHRoZSB2aWV3LlxuICAgIC8vIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMTM3OTJcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh0aGlzLmNvbnRyb2wgJiYgdGhpcy5tb2RlbFZhbHVlKSB7XG4gICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUodGhpcy5tb2RlbFZhbHVlLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXcml0ZXMgdGhlIG5ldyB2YWx1ZSBmb3IgcmVhY3RpdmUgZm9ybXMgb24gY2hhbmdlIGV2ZW50cyBvbiB0aGUgaW5wdXQgZWxlbWVudFxuICAgKiBAcGFyYW0gZXZlbnQgVGhlIGNoYW5nZSBldmVudCB0aGF0IHdhcyByZWNlaXZlZFxuICAgKi9cbiAgQEhvc3RMaXN0ZW5lcignY2hhbmdlJywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uSW5wdXRDaGFuZ2UoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGlmICghdGhpcy50ZXh0Q2hhbmdlcykge1xuICAgICAgdGhpcy5zZXR1cFRleHRDaGFuZ2VTdWJzY3JpcHRpb24oZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50ZXh0Q2hhbmdlcy5uZXh0KGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1hcmtzIHJlYWN0aXZlIGZvcm0gY29udHJvbHMgYXMgdG91Y2hlZCBvbiBpbnB1dCBibHVyIGV2ZW50c1xuICAgKi9cbiAgQEhvc3RMaXN0ZW5lcignYmx1cicpXG4gIHB1YmxpYyBvbklucHV0Qmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignaW5wdXQnLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25JbnB1dFR5cGluZyhldmVudDogYW55KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnRleHRDaGFuZ2VzKSB7XG4gICAgICB0aGlzLnNldHVwVGV4dENoYW5nZVN1YnNjcmlwdGlvbihldmVudC50YXJnZXQudmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRleHRDaGFuZ2VzLm5leHQoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogV3JpdGVzIHRoZSBuZXcgdmFsdWUgZm9yIHJlYWN0aXZlIGZvcm1zXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgbmV3IHZhbHVlIGZvciB0aGUgaW5wdXRcbiAgICovXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnBob25lRmllbGRDb21wb25lbnQuc2V0Q291bnRyeUJ5RGlhbENvZGUodmFsdWUpO1xuXG4gICAgdGhpcy5tb2RlbFZhbHVlID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBhbnkpID0+IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy52YWxpZGF0b3JDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBkaXNhYmxlZCBzdGF0ZSBvbiB0aGUgaW5wdXRcbiAgICogQHBhcmFtIGlzRGlzYWJsZWQgdGhlIG5ldyB2YWx1ZSBvZiB0aGUgaW5wdXQncyBkaXNhYmxlZCBzdGF0ZVxuICAgKi9cbiAgcHVibGljIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlJ3MgdGhlIGZvcm0gY29udHJvbCdzIGN1cnJlbnQgdmFsdWVcbiAgICogQHBhcmFtIGNvbnRyb2wgdGhlIGZvcm0gY29udHJvbCBmb3IgdGhlIGlucHV0XG4gICAqL1xuICBwdWJsaWMgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB7XG4gICAgaWYgKCF0aGlzLmNvbnRyb2wpIHtcbiAgICAgIHRoaXMuY29udHJvbCA9IGNvbnRyb2w7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2t5UGhvbmVGaWVsZE5vVmFsaWRhdGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZSA9IGNvbnRyb2wudmFsdWU7XG5cbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgdGhpcy5waG9uZUZpZWxkQ29tcG9uZW50LnNlbGVjdGVkQ291bnRyeSAmJlxuICAgICAgIXRoaXMudmFsaWRhdGVOdW1iZXIodmFsdWUpXG4gICAgKSB7XG4gICAgICBpZiAoIXRoaXMudGV4dENoYW5nZXMpIHtcbiAgICAgICAgLy8gTWFyayB0aGUgaW52YWxpZCBjb250cm9sIGFzIHRvdWNoZWQgc28gdGhhdCB0aGUgaW5wdXQncyBpbnZhbGlkIENTUyBzdHlsZXMgYXBwZWFyLlxuICAgICAgICAvLyAoVGhpcyBpcyBvbmx5IHJlcXVpcmVkIHdoZW4gdGhlIGludmFsaWQgdmFsdWUgaXMgc2V0IGJ5IHRoZSBGb3JtQ29udHJvbCBjb25zdHJ1Y3Rvci4pXG4gICAgICAgIC8vIFdlIGRvbid0IGRvIHRoaXMgaWYgdGhlIGlucHV0IGlzIHRoZSBhY3RpdmUgZWxlbWVudCBzbyB0aGF0IHdlIGRvbid0IHNob3cgdmFsaWRhdGlvblxuICAgICAgICAvLyBlcnJvcnMgdW5sZXNzIGl0IGlzIGludmFsaWQgb24gaW5pdGlhbGl6YXRpb24gb3IgdGhlIGlucHV0IGhhcyBiZWVuIGJsdXJyZWQuXG4gICAgICAgIGNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBza3lQaG9uZUZpZWxkOiB7XG4gICAgICAgICAgaW52YWxpZDogdmFsdWUsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBUZXh0Q2hhbmdlU3Vic2NyaXB0aW9uKHRleHQ6IHN0cmluZykge1xuICAgIHRoaXMudGV4dENoYW5nZXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRleHQpO1xuXG4gICAgdGhpcy50ZXh0Q2hhbmdlc1xuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDUwMCksIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgobmV3VmFsdWUpID0+IHtcbiAgICAgICAgdGhpcy53cml0ZVZhbHVlKG5ld1ZhbHVlKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZU51bWJlcihwaG9uZU51bWJlcjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG51bWJlck9iaiA9IHRoaXMucGhvbmVVdGlscy5wYXJzZUFuZEtlZXBSYXdJbnB1dChcbiAgICAgICAgcGhvbmVOdW1iZXIsXG4gICAgICAgIHRoaXMucGhvbmVGaWVsZENvbXBvbmVudC5zZWxlY3RlZENvdW50cnkuaXNvMlxuICAgICAgKTtcblxuICAgICAgaWYgKFxuICAgICAgICAhdGhpcy5waG9uZUZpZWxkQ29tcG9uZW50LmFsbG93RXh0ZW5zaW9ucyAmJlxuICAgICAgICBudW1iZXJPYmouZ2V0RXh0ZW5zaW9uKClcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzLnBob25lVXRpbHMuaXNWYWxpZE51bWJlcihudW1iZXJPYmopO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRm9ybWF0J3MgdGhlIGdpdmVuIHBob25lIG51bWJlciBiYXNlZCBvbiB0aGUgY3VycmVudGx5IHNlbGVjdGVkIGNvdW50cnkuXG4gICAqIEBwYXJhbSBwaG9uZU51bWJlciBUaGUgbnVtYmVyIHRvIGZvcm1hdFxuICAgKi9cbiAgcHJpdmF0ZSBmb3JtYXROdW1iZXIocGhvbmVOdW1iZXI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG51bWJlck9iaiA9IHRoaXMucGhvbmVVdGlscy5wYXJzZUFuZEtlZXBSYXdJbnB1dChcbiAgICAgICAgcGhvbmVOdW1iZXIsXG4gICAgICAgIHRoaXMucGhvbmVGaWVsZENvbXBvbmVudC5zZWxlY3RlZENvdW50cnkuaXNvMlxuICAgICAgKTtcbiAgICAgIGlmICh0aGlzLnBob25lVXRpbHMuaXNQb3NzaWJsZU51bWJlcihudW1iZXJPYmopKSB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5waG9uZUZpZWxkQ29tcG9uZW50LnJldHVybkZvcm1hdCkge1xuICAgICAgICAgIGNhc2UgJ2ludGVybmF0aW9uYWwnOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMucGhvbmVVdGlscy5mb3JtYXQoXG4gICAgICAgICAgICAgIG51bWJlck9iaixcbiAgICAgICAgICAgICAgUGhvbmVOdW1iZXJGb3JtYXQuSU5URVJOQVRJT05BTFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBjYXNlICduYXRpb25hbCc6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5waG9uZVV0aWxzLmZvcm1hdChcbiAgICAgICAgICAgICAgbnVtYmVyT2JqLFxuICAgICAgICAgICAgICBQaG9uZU51bWJlckZvcm1hdC5OQVRJT05BTFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBjYXNlICdkZWZhdWx0JzpcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICB0aGlzLnBob25lRmllbGRDb21wb25lbnQuc2VsZWN0ZWRDb3VudHJ5LmlzbzIgIT09XG4gICAgICAgICAgICAgIHRoaXMucGhvbmVGaWVsZENvbXBvbmVudC5kZWZhdWx0Q291bnRyeVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLnBob25lVXRpbHMuZm9ybWF0KFxuICAgICAgICAgICAgICAgIG51bWJlck9iaixcbiAgICAgICAgICAgICAgICBQaG9uZU51bWJlckZvcm1hdC5JTlRFUk5BVElPTkFMXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5waG9uZVV0aWxzLmZvcm1hdChcbiAgICAgICAgICAgICAgICBudW1iZXJPYmosXG4gICAgICAgICAgICAgICAgUGhvbmVOdW1iZXJGb3JtYXQuTkFUSU9OQUxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHBob25lTnVtYmVyO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgIHJldHVybiBwaG9uZU51bWJlcjtcbiAgICB9XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIHByaXZhdGUgb25DaGFuZ2UgPSAoXzogYW55KSA9PiB7fTtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIHByaXZhdGUgb25Ub3VjaGVkID0gKCkgPT4ge307XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICBwcml2YXRlIHZhbGlkYXRvckNoYW5nZSA9ICgpID0+IHt9O1xufVxuIl19
@@ -201,8 +201,8 @@ export class SkyPhoneFieldComponent {
201
201
  return false;
202
202
  }
203
203
  }
204
- SkyPhoneFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPhoneFieldComponent, deps: [{ token: i1.FormBuilder }, { token: i2.SkyPhoneFieldAdapterService }, { token: i0.ChangeDetectorRef }, { token: i3.SkyThemeService, optional: true }, { token: i4.SkyInputBoxHostService, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component });
205
- SkyPhoneFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyPhoneFieldComponent, selector: "sky-phone-field", inputs: { allowExtensions: "allowExtensions", defaultCountry: "defaultCountry", returnFormat: "returnFormat", supportedCountryISOs: "supportedCountryISOs", selectedCountry: "selectedCountry" }, outputs: { selectedCountryChange: "selectedCountryChange" }, providers: [
204
+ SkyPhoneFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyPhoneFieldComponent, deps: [{ token: i1.FormBuilder }, { token: i2.SkyPhoneFieldAdapterService }, { token: i0.ChangeDetectorRef }, { token: i3.SkyThemeService, optional: true }, { token: i4.SkyInputBoxHostService, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component });
205
+ SkyPhoneFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: SkyPhoneFieldComponent, selector: "sky-phone-field", inputs: { allowExtensions: "allowExtensions", defaultCountry: "defaultCountry", returnFormat: "returnFormat", supportedCountryISOs: "supportedCountryISOs", selectedCountry: "selectedCountry" }, outputs: { selectedCountryChange: "selectedCountryChange" }, providers: [
206
206
  SkyPhoneFieldAdapterService,
207
207
  // Prevents the embedded country field component from changing its behavior based on
208
208
  // being inside an input box. The phone field itself will handle the required changes
@@ -247,7 +247,7 @@ SkyPhoneFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
247
247
  ]),
248
248
  ]),
249
249
  ], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
250
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPhoneFieldComponent, decorators: [{
250
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyPhoneFieldComponent, decorators: [{
251
251
  type: Component,
252
252
  args: [{ selector: 'sky-phone-field', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
253
253
  SkyPhoneFieldAdapterService,
@@ -11,8 +11,8 @@ import { SkyPhoneFieldComponent } from './phone-field.component';
11
11
  import * as i0 from "@angular/core";
12
12
  export class SkyPhoneFieldModule {
13
13
  }
14
- SkyPhoneFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPhoneFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
15
- SkyPhoneFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPhoneFieldModule, declarations: [SkyPhoneFieldComponent, SkyPhoneFieldInputDirective], imports: [CommonModule,
14
+ SkyPhoneFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyPhoneFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
15
+ SkyPhoneFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyPhoneFieldModule, declarations: [SkyPhoneFieldComponent, SkyPhoneFieldInputDirective], imports: [CommonModule,
16
16
  FormsModule,
17
17
  ReactiveFormsModule,
18
18
  SkyCountryFieldModule,
@@ -20,7 +20,7 @@ SkyPhoneFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", ver
20
20
  SkyIconModule,
21
21
  SkyPhoneFieldResourcesModule,
22
22
  SkyThemeModule], exports: [SkyPhoneFieldComponent, SkyPhoneFieldInputDirective] });
23
- SkyPhoneFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPhoneFieldModule, imports: [[
23
+ SkyPhoneFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyPhoneFieldModule, imports: [[
24
24
  CommonModule,
25
25
  FormsModule,
26
26
  ReactiveFormsModule,
@@ -30,7 +30,7 @@ SkyPhoneFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", ver
30
30
  SkyPhoneFieldResourcesModule,
31
31
  SkyThemeModule,
32
32
  ]] });
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPhoneFieldModule, decorators: [{
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyPhoneFieldModule, decorators: [{
34
34
  type: NgModule,
35
35
  args: [{
36
36
  declarations: [SkyPhoneFieldComponent, SkyPhoneFieldInputDirective],
@@ -35,16 +35,16 @@ export class SkyPhoneFieldResourcesProvider {
35
35
  */
36
36
  export class SkyPhoneFieldResourcesModule {
37
37
  }
38
- SkyPhoneFieldResourcesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPhoneFieldResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
39
- SkyPhoneFieldResourcesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPhoneFieldResourcesModule, exports: [SkyI18nModule] });
40
- SkyPhoneFieldResourcesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPhoneFieldResourcesModule, providers: [
38
+ SkyPhoneFieldResourcesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyPhoneFieldResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
39
+ SkyPhoneFieldResourcesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyPhoneFieldResourcesModule, exports: [SkyI18nModule] });
40
+ SkyPhoneFieldResourcesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyPhoneFieldResourcesModule, providers: [
41
41
  {
42
42
  provide: SKY_LIB_RESOURCES_PROVIDERS,
43
43
  useClass: SkyPhoneFieldResourcesProvider,
44
44
  multi: true,
45
45
  },
46
46
  ], imports: [SkyI18nModule] });
47
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPhoneFieldResourcesModule, decorators: [{
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyPhoneFieldResourcesModule, decorators: [{
48
48
  type: NgModule,
49
49
  args: [{
50
50
  exports: [SkyI18nModule],
@@ -153,8 +153,7 @@ export class SkyPhoneFieldFixture {
153
153
  return isTouched || isUntouched;
154
154
  }
155
155
  coerceBooleanProperty(value) {
156
- // tslint:disable-next-line: no-null-keyword
157
156
  return value != null && `${value}` !== 'false';
158
157
  }
159
158
  }
160
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtZmllbGQtZml4dHVyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9waG9uZS1maWVsZC90ZXN0aW5nL3NyYy9waG9uZWZpZWxkL3Bob25lLWZpZWxkLWZpeHR1cmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRS9EOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8sb0JBQW9CO0lBZS9CLFlBQ1UsT0FBOEIsRUFDOUIsU0FBaUI7UUFEakIsWUFBTyxHQUFQLE9BQU8sQ0FBdUI7UUFDOUIsY0FBUyxHQUFULFNBQVMsQ0FBUTtRQUV6QixJQUFJLENBQUMsUUFBUSxHQUFHLGlCQUFpQixDQUFDLHVCQUF1QixDQUN2RCxPQUFPLEVBQ1AsU0FBUyxFQUNULGlCQUFpQixDQUNsQixDQUFDO1FBRUYsdURBQXVEO1FBQ3ZELDZFQUE2RTtRQUM3RSxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQTNCRDs7T0FFRztJQUNILElBQVcsU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDO0lBQ3BDLENBQUM7SUF3QkQ7O09BRUc7SUFDSSxLQUFLLENBQUMsSUFBSTtRQUNmLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDN0IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxzQkFB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Q0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDN0IsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBRWhDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDN0IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRDs7T0FFRztJQUNLLEtBQUssQ0FBQyxjQUFjO1FBQzFCLDRFQUE0RTtRQUM1RSw2RUFBNkU7UUFDN0UsbUZBQW1GO1FBQ25GLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN4RSxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDNUUsT0FBTyxTQUFTLElBQUksV0FBVyxDQUFDO0lBQ2xDLENBQUM7SUFFTyxxQkFBcUIsQ0FBQyxLQUFVO1FBQ3RDLDRDQUE0QztRQUM1QyxPQUFPLEtBQUssSUFBSSxJQUFJLElBQUksR0FBRyxLQUFLLEVBQUUsS0FBSyxPQUFPLENBQUM7SUFDakQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVidWdFbGVtZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnRGaXh0dXJlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS90ZXN0aW5nJztcbmltcG9ydCB7IEJ5IH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBTa3lBcHBUZXN0VXRpbGl0eSB9IGZyb20gJ0Bza3l1eC1zZGsvdGVzdGluZyc7XG5pbXBvcnQgeyBTa3lDb3VudHJ5RmllbGRGaXh0dXJlIH0gZnJvbSAnQHNreXV4L2xvb2t1cC90ZXN0aW5nJztcblxuLyoqXG4gKiBQcm92aWRlcyBpbmZvcm1hdGlvbiBmb3IgYW5kIGludGVyYWN0aW9uIHdpdGggYSBTS1kgVVggcGhvbmUgZmllbGQgY29tcG9uZW50LlxuICogQnkgdXNpbmcgdGhlIGZpeHR1cmUgQVBJLCBhIHRlc3QgaW5zdWxhdGVzIGl0c2VsZiBhZ2FpbnN0IHVwZGF0ZXMgdG8gdGhlIGludGVybmFsc1xuICogb2YgYSBjb21wb25lbnQsIHN1Y2ggYXMgY2hhbmdpbmcgaXRzIERPTSBzdHJ1Y3R1cmUuXG4gKi9cbmV4cG9ydCBjbGFzcyBTa3lQaG9uZUZpZWxkRml4dHVyZSB7XG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgb2YgdGhlIGlucHV0IGZpZWxkIGZvciB0aGUgcGhvbmUgZmllbGQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGlucHV0VGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnBob25lRmllbGRJbnB1dC52YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIHByb3BlcnR5IGlzIGxhenkgbG9hZGVkIGFuZCBzaG91bGQgYmUgYWNjZXNzZWQgdmlhIHRoZSBwcml2YXRlIGNvdW50cnlGaXh0dXJlIHByb3BlcnR5LlxuICAgKi9cbiAgcHJpdmF0ZSBfY291bnRyeUZpeHR1cmU6IFNreUNvdW50cnlGaWVsZEZpeHR1cmU7XG5cbiAgcHJpdmF0ZSBfZGVidWdFbDogRGVidWdFbGVtZW50O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZml4dHVyZTogQ29tcG9uZW50Rml4dHVyZTxhbnk+LFxuICAgIHByaXZhdGUgc2t5VGVzdElkOiBzdHJpbmdcbiAgKSB7XG4gICAgdGhpcy5fZGVidWdFbCA9IFNreUFwcFRlc3RVdGlsaXR5LmdldERlYnVnRWxlbWVudEJ5VGVzdElkKFxuICAgICAgZml4dHVyZSxcbiAgICAgIHNreVRlc3RJZCxcbiAgICAgICdza3ktcGhvbmUtZmllbGQnXG4gICAgKTtcblxuICAgIC8vIFRoZSBjb3VudHJ5IHNlbGVjdG9yIG5lZWRzIGV4dHJhIHRpbWUgdG8gaW5pdGlhbGl6ZS5cbiAgICAvLyBDb25zdW1lcnMgc2hvdWxkbid0IG5lZWQgdG8gd29yayBhcm91bmQgdGhpcyBzbyB3ZSBkbyBhbiBleHRyYSBkZXRlY3QgaGVyZVxuICAgIGZpeHR1cmUuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEJsdXJzIHRoZSBwaG9uZSBmaWVsZCBpbnB1dCBhbmQgcmV0dXJucyBhIHByb21pc2UgdGhhdCBpbmRpY2F0ZXMgd2hlbiB0aGUgYWN0aW9uIGlzIGNvbXBsZXRlLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGJsdXIoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgU2t5QXBwVGVzdFV0aWxpdHkuZmlyZURvbUV2ZW50KHRoaXMucGhvbmVGaWVsZElucHV0LCAnYmx1cicpO1xuICAgIHRoaXMuZml4dHVyZS5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgcmV0dXJuIHRoaXMuZml4dHVyZS53aGVuU3RhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgc2VsZWN0ZWQgY291bnRyeSBpc28yIGNvZGUuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0U2VsZWN0ZWRDb3VudHJ5SXNvMigpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIC8vIFdhaXQgZm9yIHRoZSBjb3VudHJ5IGZpZWxkIHRvIGluaXRpYWxpemUuXG4gICAgYXdhaXQgdGhpcy5maXh0dXJlLndoZW5TdGFibGUoKTtcbiAgICByZXR1cm4gdGhpcy5jb3VudHJ5RmxhZ0J1dHRvbkNvbnRhaW5lci5nZXRBdHRyaWJ1dGUoJ2RhdGEtc2t5LXRlc3QtaXNvMicpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHNlbGVjdGVkIGNvdW50cnkgbmFtZS5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRTZWxlY3RlZENvdW50cnlOYW1lKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgLy8gV2FpdCBmb3IgdGhlIGNvdW50cnkgZmllbGQgdG8gaW5pdGlhbGl6ZS5cbiAgICBhd2FpdCB0aGlzLmZpeHR1cmUud2hlblN0YWJsZSgpO1xuICAgIHJldHVybiB0aGlzLmNvdW50cnlGbGFnQnV0dG9uQ29udGFpbmVyLmdldEF0dHJpYnV0ZSgnZGF0YS1za3ktdGVzdC1uYW1lJyk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgdmFsdWUgb2YgdGhlIGlucHV0IGZpZWxkIGZvciB0aGUgcGhvbmUgZmllbGQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2V0SW5wdXRUZXh0KGlucHV0VGV4dDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgaW5wdXRFbCA9IHRoaXMucGhvbmVGaWVsZElucHV0O1xuICAgIGlucHV0RWwudmFsdWUgPSBpbnB1dFRleHQ7XG5cbiAgICBTa3lBcHBUZXN0VXRpbGl0eS5maXJlRG9tRXZlbnQoaW5wdXRFbCwgJ2lucHV0Jyk7XG4gICAgdGhpcy5maXh0dXJlLmRldGVjdENoYW5nZXMoKTtcblxuICAgIFNreUFwcFRlc3RVdGlsaXR5LmZpcmVEb21FdmVudChpbnB1dEVsLCAnY2hhbmdlJyk7XG5cbiAgICB0aGlzLmZpeHR1cmUuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIHJldHVybiB0aGlzLmZpeHR1cmUud2hlblN0YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIE9wZW5zIHRoZSBjb3VudHJ5IHNlbGVjdG9yLCBwZWZvcm1zIGEgc2VhcmNoLCBidXQgbWFrZXMgbm8gc2VsZWN0aW9uLlxuICAgKiBAcGFyYW0gc2VhcmNoVGV4dCBUaGUgbmFtZSBvZiB0aGUgY291bnRyeSB0byBzZWxlY3QuXG4gICAqIEByZXR1cm5zIFRoZSBsaXN0IG9mIGNvdW50cnkgbmFtZXMgbWF0Y2hpbmcgdGhlIHNlYXJjaCB0ZXh0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHNlYXJjaENvdW50cnkoc2VhcmNoVGV4dDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgIGF3YWl0IHRoaXMub3BlbkNvdW50cnlTZWxlY3Rpb24oKTtcblxuICAgIGNvbnN0IGNvdW50cnlGaXh0dXJlID0gYXdhaXQgdGhpcy5nZXRDb3VudHJ5Rml4dHVyZSgpO1xuICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCBjb3VudHJ5Rml4dHVyZS5zZWFyY2goc2VhcmNoVGV4dCk7XG5cbiAgICBhd2FpdCB0aGlzLndhaXRGb3JDb3VudHJ5U2VsZWN0aW9uKCk7XG4gICAgcmV0dXJuIHJlc3VsdHM7XG4gIH1cblxuICAvKipcbiAgICogT3BlbnMgdGhlIGNvdW50cnkgc2VsZWN0b3IsIHBlcmZvcm1zIGEgc2VhcmNoLCBhbmQgc2VsZWN0cyB0aGUgZmlyc3QgcmVzdWx0IChpZiBhbnkpLlxuICAgKiBAcGFyYW0gc2VhcmNoVGV4dCBUaGUgbmFtZSBvZiB0aGUgY291bnRyeSB0byBzZWxlY3QuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2VsZWN0Q291bnRyeShzZWFyY2hUZXh0OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLm9wZW5Db3VudHJ5U2VsZWN0aW9uKCk7XG5cbiAgICBjb25zdCBjb3VudHJ5Rml4dHVyZSA9IGF3YWl0IHRoaXMuZ2V0Q291bnRyeUZpeHR1cmUoKTtcbiAgICBhd2FpdCBjb3VudHJ5Rml4dHVyZS5zZWFyY2hBbmRTZWxlY3RGaXJzdFJlc3VsdChzZWFyY2hUZXh0KTtcblxuICAgIHJldHVybiB0aGlzLndhaXRGb3JDb3VudHJ5U2VsZWN0aW9uKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhIGJvb2xlYW4gcHJvbWlzZSBpbmRpY2F0aW5nIGlmIHRoZSBwaG9uZSBmaWVsZCBpcyBkaXNhYmxlZC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBpc0Rpc2FibGVkKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IGRpc2FibGVkID0gdGhpcy5waG9uZUZpZWxkSW5wdXQuZ2V0QXR0cmlidXRlKCdkaXNhYmxlZCcpO1xuICAgIHJldHVybiB0aGlzLmNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShhd2FpdCBkaXNhYmxlZCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhIGJvb2xlYW4gcHJvbWlzZSBpbmRpY2F0aW5nIGlmIHRoZSBwaG9uZSBmaWVsZCBpcyB2YWxpZC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBpc1ZhbGlkKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGlmICghKGF3YWl0IHRoaXMuaGFzRm9ybUNvbnRyb2woKSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRm9ybSBjb250cm9sIG5vdCBmb3VuZC5gKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucGhvbmVGaWVsZElucHV0LmNsYXNzTGlzdC5jb250YWlucygnbmctdmFsaWQnKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGNvdW50cnlFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLl9kZWJ1Z0VsLnF1ZXJ5KEJ5LmNzcygnc2t5LWNvdW50cnktZmllbGQnKSkubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGNvdW50cnlGbGFnQnV0dG9uQ29udGFpbmVyKCk6IEhUTUxJbnB1dEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLl9kZWJ1Z0VsLnF1ZXJ5KEJ5LmNzcygnLnNreS1waG9uZS1maWVsZC1jb3VudHJ5LWJ0bicpKVxuICAgICAgLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBwcml2YXRlIGdldCBjb3VudHJ5RmxhZ0J1dHRvbigpOiBIVE1MSW5wdXRFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5fZGVidWdFbC5xdWVyeShCeS5jc3MoJy5za3ktcGhvbmUtZmllbGQtY291bnRyeS1idG4gLnNreS1idG4nKSlcbiAgICAgIC5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgcGhvbmVGaWVsZElucHV0KCk6IEhUTUxJbnB1dEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLl9kZWJ1Z0VsLnF1ZXJ5KEJ5LmNzcygnaW5wdXRbc2t5UGhvbmVGaWVsZElucHV0XScpKVxuICAgICAgLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGNvdW50cnktZmllbGQgY2FuIHRha2UgYSByZWFsbHkgbG9uZyB0aW1lIHRvIGluaXRpYWxpemUuIFNpbmNlIHdlIGNhbid0IHBlcmZvcm0gYW4gYXdhaXRcbiAgICogaW4gb3VyIGNvbnN0cnVjdG9yLCBpdCdzIHNhZmVzdCB0byBkbyBhIGxhenkgbG9hZCBvZiB0aGUgY291bnRyeSBmaWVsZCB0byBhdm9pZCBhbnkgcmFjZVxuICAgKiBjb25kaXRpb25zIHdoZXJlIGEgdGVzdCB0cmllcyB0byBhY2Nlc3MgdGhlIHNreS1jb3VudHJ5LWZpZWxkIGVsZW1lbnQgdG9vIHF1aWNrbHkuXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGdldENvdW50cnlGaXh0dXJlKCk6IFByb21pc2U8U2t5Q291bnRyeUZpZWxkRml4dHVyZT4ge1xuICAgIGlmICh0aGlzLl9jb3VudHJ5Rml4dHVyZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyB0YWcgdGhlIGNvdW50cnkgZmllbGQgd2l0aCBhIHNreSB0ZXN0IGlkXG4gICAgICBjb25zdCBjb3VudHJ5U2t5VGVzdElkID0gYCR7dGhpcy5za3lUZXN0SWR9LWNvdW50cnlgO1xuICAgICAgdGhpcy5zZXRTa3lUZXN0SWQodGhpcy5jb3VudHJ5RWxlbWVudCwgY291bnRyeVNreVRlc3RJZCk7XG5cbiAgICAgIC8vIGluaXRpYWxpemUgdGhlIGNvdW50cnkgZml4dHVyZVxuICAgICAgdGhpcy5fY291bnRyeUZpeHR1cmUgPSBuZXcgU2t5Q291bnRyeUZpZWxkRml4dHVyZShcbiAgICAgICAgdGhpcy5maXh0dXJlLFxuICAgICAgICBjb3VudHJ5U2t5VGVzdElkXG4gICAgICApO1xuXG4gICAgICB0aGlzLmZpeHR1cmUuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgYXdhaXQgdGhpcy5maXh0dXJlLndoZW5TdGFibGUoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fY291bnRyeUZpeHR1cmU7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIG9wZW5Db3VudHJ5U2VsZWN0aW9uKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuY291bnRyeUZsYWdCdXR0b24uY2xpY2soKTtcbiAgICByZXR1cm4gdGhpcy53YWl0Rm9yQ291bnRyeVNlbGVjdGlvbigpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRTa3lUZXN0SWQoZWxlbWVudDogSFRNTEVsZW1lbnQsIHNreVRlc3RJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2RhdGEtc2t5LWlkJywgc2t5VGVzdElkKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgd2FpdEZvckNvdW50cnlTZWxlY3Rpb24oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gYW55IGNvdW50cnkgc2VsZWN0aW9uIG5lZWRzIGV4dHJhIHRpbWUgdG8gY29tcGxldGVcbiAgICB0aGlzLmZpeHR1cmUuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIGF3YWl0IHRoaXMuZml4dHVyZS53aGVuU3RhYmxlKCk7XG5cbiAgICB0aGlzLmZpeHR1cmUuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIHJldHVybiB0aGlzLmZpeHR1cmUud2hlblN0YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyB3aGV0aGVyIHRoZSBmb3JtLWZpZWxkIGNvbnRyb2wgaGFzIHNldCB1cCBhIGZvcm0gY29udHJvbC5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgaGFzRm9ybUNvbnRyb2woKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgLy8gSWYgbm8gZm9ybSBcIk5nQ29udHJvbFwiIGlzIGJvdW5kIHRvIHRoZSBmb3JtLWZpZWxkIGNvbnRyb2wsIHRoZSBmb3JtLWZpZWxkXG4gICAgLy8gaXMgbm90IGFibGUgdG8gZm9yd2FyZCBhbnkgY29udHJvbCBzdGF0dXMgY2xhc3Nlcy4gVGhlcmVmb3JlIGlmIGVpdGhlciB0aGVcbiAgICAvLyBcIm5nLXRvdWNoZWRcIiBvciBcIm5nLXVudG91Y2hlZFwiIGNsYXNzIGlzIHNldCwgd2Uga25vdyB0aGF0IGl0IGhhcyBhIGZvcm0gY29udHJvbC5cbiAgICBjb25zdCBpc1RvdWNoZWQgPSB0aGlzLnBob25lRmllbGRJbnB1dC5jbGFzc0xpc3QuY29udGFpbnMoJ25nLXRvdWNoZWQnKTtcbiAgICBjb25zdCBpc1VudG91Y2hlZCA9IHRoaXMucGhvbmVGaWVsZElucHV0LmNsYXNzTGlzdC5jb250YWlucygnbmctdW50b3VjaGVkJyk7XG4gICAgcmV0dXJuIGlzVG91Y2hlZCB8fCBpc1VudG91Y2hlZDtcbiAgfVxuXG4gIHByaXZhdGUgY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLW51bGwta2V5d29yZFxuICAgIHJldHVybiB2YWx1ZSAhPSBudWxsICYmIGAke3ZhbHVlfWAgIT09ICdmYWxzZSc7XG4gIH1cbn1cbiJdfQ==
159
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtZmllbGQtZml4dHVyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9waG9uZS1maWVsZC90ZXN0aW5nL3NyYy9waG9uZWZpZWxkL3Bob25lLWZpZWxkLWZpeHR1cmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRS9EOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8sb0JBQW9CO0lBZS9CLFlBQ1UsT0FBOEIsRUFDOUIsU0FBaUI7UUFEakIsWUFBTyxHQUFQLE9BQU8sQ0FBdUI7UUFDOUIsY0FBUyxHQUFULFNBQVMsQ0FBUTtRQUV6QixJQUFJLENBQUMsUUFBUSxHQUFHLGlCQUFpQixDQUFDLHVCQUF1QixDQUN2RCxPQUFPLEVBQ1AsU0FBUyxFQUNULGlCQUFpQixDQUNsQixDQUFDO1FBRUYsdURBQXVEO1FBQ3ZELDZFQUE2RTtRQUM3RSxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQTNCRDs7T0FFRztJQUNILElBQVcsU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDO0lBQ3BDLENBQUM7SUF3QkQ7O09BRUc7SUFDSSxLQUFLLENBQUMsSUFBSTtRQUNmLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDN0IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxzQkFB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Q0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDN0IsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBRWhDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDN0IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRDs7T0FFRztJQUNLLEtBQUssQ0FBQyxjQUFjO1FBQzFCLDRFQUE0RTtRQUM1RSw2RUFBNkU7UUFDN0UsbUZBQW1GO1FBQ25GLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN4RSxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDNUUsT0FBTyxTQUFTLElBQUksV0FBVyxDQUFDO0lBQ2xDLENBQUM7SUFFTyxxQkFBcUIsQ0FBQyxLQUFVO1FBQ3RDLE9BQU8sS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLEtBQUssRUFBRSxLQUFLLE9BQU8sQ0FBQztJQUNqRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZWJ1Z0VsZW1lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudEZpeHR1cmUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3Rlc3RpbmcnO1xuaW1wb3J0IHsgQnkgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IFNreUFwcFRlc3RVdGlsaXR5IH0gZnJvbSAnQHNreXV4LXNkay90ZXN0aW5nJztcbmltcG9ydCB7IFNreUNvdW50cnlGaWVsZEZpeHR1cmUgfSBmcm9tICdAc2t5dXgvbG9va3VwL3Rlc3RpbmcnO1xuXG4vKipcbiAqIFByb3ZpZGVzIGluZm9ybWF0aW9uIGZvciBhbmQgaW50ZXJhY3Rpb24gd2l0aCBhIFNLWSBVWCBwaG9uZSBmaWVsZCBjb21wb25lbnQuXG4gKiBCeSB1c2luZyB0aGUgZml4dHVyZSBBUEksIGEgdGVzdCBpbnN1bGF0ZXMgaXRzZWxmIGFnYWluc3QgdXBkYXRlcyB0byB0aGUgaW50ZXJuYWxzXG4gKiBvZiBhIGNvbXBvbmVudCwgc3VjaCBhcyBjaGFuZ2luZyBpdHMgRE9NIHN0cnVjdHVyZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFNreVBob25lRmllbGRGaXh0dXJlIHtcbiAgLyoqXG4gICAqIFRoZSB2YWx1ZSBvZiB0aGUgaW5wdXQgZmllbGQgZm9yIHRoZSBwaG9uZSBmaWVsZC5cbiAgICovXG4gIHB1YmxpYyBnZXQgaW5wdXRUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucGhvbmVGaWVsZElucHV0LnZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgcHJvcGVydHkgaXMgbGF6eSBsb2FkZWQgYW5kIHNob3VsZCBiZSBhY2Nlc3NlZCB2aWEgdGhlIHByaXZhdGUgY291bnRyeUZpeHR1cmUgcHJvcGVydHkuXG4gICAqL1xuICBwcml2YXRlIF9jb3VudHJ5Rml4dHVyZTogU2t5Q291bnRyeUZpZWxkRml4dHVyZTtcblxuICBwcml2YXRlIF9kZWJ1Z0VsOiBEZWJ1Z0VsZW1lbnQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmaXh0dXJlOiBDb21wb25lbnRGaXh0dXJlPGFueT4sXG4gICAgcHJpdmF0ZSBza3lUZXN0SWQ6IHN0cmluZ1xuICApIHtcbiAgICB0aGlzLl9kZWJ1Z0VsID0gU2t5QXBwVGVzdFV0aWxpdHkuZ2V0RGVidWdFbGVtZW50QnlUZXN0SWQoXG4gICAgICBmaXh0dXJlLFxuICAgICAgc2t5VGVzdElkLFxuICAgICAgJ3NreS1waG9uZS1maWVsZCdcbiAgICApO1xuXG4gICAgLy8gVGhlIGNvdW50cnkgc2VsZWN0b3IgbmVlZHMgZXh0cmEgdGltZSB0byBpbml0aWFsaXplLlxuICAgIC8vIENvbnN1bWVycyBzaG91bGRuJ3QgbmVlZCB0byB3b3JrIGFyb3VuZCB0aGlzIHNvIHdlIGRvIGFuIGV4dHJhIGRldGVjdCBoZXJlXG4gICAgZml4dHVyZS5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICAvKipcbiAgICogQmx1cnMgdGhlIHBob25lIGZpZWxkIGlucHV0IGFuZCByZXR1cm5zIGEgcHJvbWlzZSB0aGF0IGluZGljYXRlcyB3aGVuIHRoZSBhY3Rpb24gaXMgY29tcGxldGUuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgYmx1cigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBTa3lBcHBUZXN0VXRpbGl0eS5maXJlRG9tRXZlbnQodGhpcy5waG9uZUZpZWxkSW5wdXQsICdibHVyJyk7XG4gICAgdGhpcy5maXh0dXJlLmRldGVjdENoYW5nZXMoKTtcbiAgICByZXR1cm4gdGhpcy5maXh0dXJlLndoZW5TdGFibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBzZWxlY3RlZCBjb3VudHJ5IGlzbzIgY29kZS5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRTZWxlY3RlZENvdW50cnlJc28yKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgLy8gV2FpdCBmb3IgdGhlIGNvdW50cnkgZmllbGQgdG8gaW5pdGlhbGl6ZS5cbiAgICBhd2FpdCB0aGlzLmZpeHR1cmUud2hlblN0YWJsZSgpO1xuICAgIHJldHVybiB0aGlzLmNvdW50cnlGbGFnQnV0dG9uQ29udGFpbmVyLmdldEF0dHJpYnV0ZSgnZGF0YS1za3ktdGVzdC1pc28yJyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgc2VsZWN0ZWQgY291bnRyeSBuYW1lLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldFNlbGVjdGVkQ291bnRyeU5hbWUoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAvLyBXYWl0IGZvciB0aGUgY291bnRyeSBmaWVsZCB0byBpbml0aWFsaXplLlxuICAgIGF3YWl0IHRoaXMuZml4dHVyZS53aGVuU3RhYmxlKCk7XG4gICAgcmV0dXJuIHRoaXMuY291bnRyeUZsYWdCdXR0b25Db250YWluZXIuZ2V0QXR0cmlidXRlKCdkYXRhLXNreS10ZXN0LW5hbWUnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSB2YWx1ZSBvZiB0aGUgaW5wdXQgZmllbGQgZm9yIHRoZSBwaG9uZSBmaWVsZC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBzZXRJbnB1dFRleHQoaW5wdXRUZXh0OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBpbnB1dEVsID0gdGhpcy5waG9uZUZpZWxkSW5wdXQ7XG4gICAgaW5wdXRFbC52YWx1ZSA9IGlucHV0VGV4dDtcblxuICAgIFNreUFwcFRlc3RVdGlsaXR5LmZpcmVEb21FdmVudChpbnB1dEVsLCAnaW5wdXQnKTtcbiAgICB0aGlzLmZpeHR1cmUuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgU2t5QXBwVGVzdFV0aWxpdHkuZmlyZURvbUV2ZW50KGlucHV0RWwsICdjaGFuZ2UnKTtcblxuICAgIHRoaXMuZml4dHVyZS5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgcmV0dXJuIHRoaXMuZml4dHVyZS53aGVuU3RhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogT3BlbnMgdGhlIGNvdW50cnkgc2VsZWN0b3IsIHBlZm9ybXMgYSBzZWFyY2gsIGJ1dCBtYWtlcyBubyBzZWxlY3Rpb24uXG4gICAqIEBwYXJhbSBzZWFyY2hUZXh0IFRoZSBuYW1lIG9mIHRoZSBjb3VudHJ5IHRvIHNlbGVjdC5cbiAgICogQHJldHVybnMgVGhlIGxpc3Qgb2YgY291bnRyeSBuYW1lcyBtYXRjaGluZyB0aGUgc2VhcmNoIHRleHQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2VhcmNoQ291bnRyeShzZWFyY2hUZXh0OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgYXdhaXQgdGhpcy5vcGVuQ291bnRyeVNlbGVjdGlvbigpO1xuXG4gICAgY29uc3QgY291bnRyeUZpeHR1cmUgPSBhd2FpdCB0aGlzLmdldENvdW50cnlGaXh0dXJlKCk7XG4gICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IGNvdW50cnlGaXh0dXJlLnNlYXJjaChzZWFyY2hUZXh0KTtcblxuICAgIGF3YWl0IHRoaXMud2FpdEZvckNvdW50cnlTZWxlY3Rpb24oKTtcbiAgICByZXR1cm4gcmVzdWx0cztcbiAgfVxuXG4gIC8qKlxuICAgKiBPcGVucyB0aGUgY291bnRyeSBzZWxlY3RvciwgcGVyZm9ybXMgYSBzZWFyY2gsIGFuZCBzZWxlY3RzIHRoZSBmaXJzdCByZXN1bHQgKGlmIGFueSkuXG4gICAqIEBwYXJhbSBzZWFyY2hUZXh0IFRoZSBuYW1lIG9mIHRoZSBjb3VudHJ5IHRvIHNlbGVjdC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBzZWxlY3RDb3VudHJ5KHNlYXJjaFRleHQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMub3BlbkNvdW50cnlTZWxlY3Rpb24oKTtcblxuICAgIGNvbnN0IGNvdW50cnlGaXh0dXJlID0gYXdhaXQgdGhpcy5nZXRDb3VudHJ5Rml4dHVyZSgpO1xuICAgIGF3YWl0IGNvdW50cnlGaXh0dXJlLnNlYXJjaEFuZFNlbGVjdEZpcnN0UmVzdWx0KHNlYXJjaFRleHQpO1xuXG4gICAgcmV0dXJuIHRoaXMud2FpdEZvckNvdW50cnlTZWxlY3Rpb24oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGEgYm9vbGVhbiBwcm9taXNlIGluZGljYXRpbmcgaWYgdGhlIHBob25lIGZpZWxkIGlzIGRpc2FibGVkLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGlzRGlzYWJsZWQoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgZGlzYWJsZWQgPSB0aGlzLnBob25lRmllbGRJbnB1dC5nZXRBdHRyaWJ1dGUoJ2Rpc2FibGVkJyk7XG4gICAgcmV0dXJuIHRoaXMuY29lcmNlQm9vbGVhblByb3BlcnR5KGF3YWl0IGRpc2FibGVkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGEgYm9vbGVhbiBwcm9taXNlIGluZGljYXRpbmcgaWYgdGhlIHBob25lIGZpZWxkIGlzIHZhbGlkLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGlzVmFsaWQoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgaWYgKCEoYXdhaXQgdGhpcy5oYXNGb3JtQ29udHJvbCgpKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBGb3JtIGNvbnRyb2wgbm90IGZvdW5kLmApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5waG9uZUZpZWxkSW5wdXQuY2xhc3NMaXN0LmNvbnRhaW5zKCduZy12YWxpZCcpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgY291bnRyeUVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuX2RlYnVnRWwucXVlcnkoQnkuY3NzKCdza3ktY291bnRyeS1maWVsZCcpKS5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgY291bnRyeUZsYWdCdXR0b25Db250YWluZXIoKTogSFRNTElucHV0RWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuX2RlYnVnRWwucXVlcnkoQnkuY3NzKCcuc2t5LXBob25lLWZpZWxkLWNvdW50cnktYnRuJykpXG4gICAgICAubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGNvdW50cnlGbGFnQnV0dG9uKCk6IEhUTUxJbnB1dEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLl9kZWJ1Z0VsLnF1ZXJ5KEJ5LmNzcygnLnNreS1waG9uZS1maWVsZC1jb3VudHJ5LWJ0biAuc2t5LWJ0bicpKVxuICAgICAgLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBwcml2YXRlIGdldCBwaG9uZUZpZWxkSW5wdXQoKTogSFRNTElucHV0RWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuX2RlYnVnRWwucXVlcnkoQnkuY3NzKCdpbnB1dFtza3lQaG9uZUZpZWxkSW5wdXRdJykpXG4gICAgICAubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgY291bnRyeS1maWVsZCBjYW4gdGFrZSBhIHJlYWxseSBsb25nIHRpbWUgdG8gaW5pdGlhbGl6ZS4gU2luY2Ugd2UgY2FuJ3QgcGVyZm9ybSBhbiBhd2FpdFxuICAgKiBpbiBvdXIgY29uc3RydWN0b3IsIGl0J3Mgc2FmZXN0IHRvIGRvIGEgbGF6eSBsb2FkIG9mIHRoZSBjb3VudHJ5IGZpZWxkIHRvIGF2b2lkIGFueSByYWNlXG4gICAqIGNvbmRpdGlvbnMgd2hlcmUgYSB0ZXN0IHRyaWVzIHRvIGFjY2VzcyB0aGUgc2t5LWNvdW50cnktZmllbGQgZWxlbWVudCB0b28gcXVpY2tseS5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgZ2V0Q291bnRyeUZpeHR1cmUoKTogUHJvbWlzZTxTa3lDb3VudHJ5RmllbGRGaXh0dXJlPiB7XG4gICAgaWYgKHRoaXMuX2NvdW50cnlGaXh0dXJlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIHRhZyB0aGUgY291bnRyeSBmaWVsZCB3aXRoIGEgc2t5IHRlc3QgaWRcbiAgICAgIGNvbnN0IGNvdW50cnlTa3lUZXN0SWQgPSBgJHt0aGlzLnNreVRlc3RJZH0tY291bnRyeWA7XG4gICAgICB0aGlzLnNldFNreVRlc3RJZCh0aGlzLmNvdW50cnlFbGVtZW50LCBjb3VudHJ5U2t5VGVzdElkKTtcblxuICAgICAgLy8gaW5pdGlhbGl6ZSB0aGUgY291bnRyeSBmaXh0dXJlXG4gICAgICB0aGlzLl9jb3VudHJ5Rml4dHVyZSA9IG5ldyBTa3lDb3VudHJ5RmllbGRGaXh0dXJlKFxuICAgICAgICB0aGlzLmZpeHR1cmUsXG4gICAgICAgIGNvdW50cnlTa3lUZXN0SWRcbiAgICAgICk7XG5cbiAgICAgIHRoaXMuZml4dHVyZS5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICBhd2FpdCB0aGlzLmZpeHR1cmUud2hlblN0YWJsZSgpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9jb3VudHJ5Rml4dHVyZTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgb3BlbkNvdW50cnlTZWxlY3Rpb24oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5jb3VudHJ5RmxhZ0J1dHRvbi5jbGljaygpO1xuICAgIHJldHVybiB0aGlzLndhaXRGb3JDb3VudHJ5U2VsZWN0aW9uKCk7XG4gIH1cblxuICBwcml2YXRlIHNldFNreVRlc3RJZChlbGVtZW50OiBIVE1MRWxlbWVudCwgc2t5VGVzdElkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnZGF0YS1za3ktaWQnLCBza3lUZXN0SWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB3YWl0Rm9yQ291bnRyeVNlbGVjdGlvbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyBhbnkgY291bnRyeSBzZWxlY3Rpb24gbmVlZHMgZXh0cmEgdGltZSB0byBjb21wbGV0ZVxuICAgIHRoaXMuZml4dHVyZS5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgYXdhaXQgdGhpcy5maXh0dXJlLndoZW5TdGFibGUoKTtcblxuICAgIHRoaXMuZml4dHVyZS5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgcmV0dXJuIHRoaXMuZml4dHVyZS53aGVuU3RhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIGZvcm0tZmllbGQgY29udHJvbCBoYXMgc2V0IHVwIGEgZm9ybSBjb250cm9sLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBoYXNGb3JtQ29udHJvbCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAvLyBJZiBubyBmb3JtIFwiTmdDb250cm9sXCIgaXMgYm91bmQgdG8gdGhlIGZvcm0tZmllbGQgY29udHJvbCwgdGhlIGZvcm0tZmllbGRcbiAgICAvLyBpcyBub3QgYWJsZSB0byBmb3J3YXJkIGFueSBjb250cm9sIHN0YXR1cyBjbGFzc2VzLiBUaGVyZWZvcmUgaWYgZWl0aGVyIHRoZVxuICAgIC8vIFwibmctdG91Y2hlZFwiIG9yIFwibmctdW50b3VjaGVkXCIgY2xhc3MgaXMgc2V0LCB3ZSBrbm93IHRoYXQgaXQgaGFzIGEgZm9ybSBjb250cm9sLlxuICAgIGNvbnN0IGlzVG91Y2hlZCA9IHRoaXMucGhvbmVGaWVsZElucHV0LmNsYXNzTGlzdC5jb250YWlucygnbmctdG91Y2hlZCcpO1xuICAgIGNvbnN0IGlzVW50b3VjaGVkID0gdGhpcy5waG9uZUZpZWxkSW5wdXQuY2xhc3NMaXN0LmNvbnRhaW5zKCduZy11bnRvdWNoZWQnKTtcbiAgICByZXR1cm4gaXNUb3VjaGVkIHx8IGlzVW50b3VjaGVkO1xuICB9XG5cbiAgcHJpdmF0ZSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB2YWx1ZSAhPSBudWxsICYmIGAke3ZhbHVlfWAgIT09ICdmYWxzZSc7XG4gIH1cbn1cbiJdfQ==
@@ -4,16 +4,16 @@ import { SkyPhoneFieldModule } from '@skyux/phone-field';
4
4
  import * as i0 from "@angular/core";
5
5
  export class SkyPhoneFieldTestingModule {
6
6
  }
7
- SkyPhoneFieldTestingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPhoneFieldTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
- SkyPhoneFieldTestingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPhoneFieldTestingModule, exports: [SkyPhoneFieldModule,
7
+ SkyPhoneFieldTestingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyPhoneFieldTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
+ SkyPhoneFieldTestingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyPhoneFieldTestingModule, exports: [SkyPhoneFieldModule,
9
9
  // The noop animations module needs to be loaded last to avoid
10
10
  // subsequent modules adding animations and overriding this.
11
11
  NoopAnimationsModule] });
12
- SkyPhoneFieldTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPhoneFieldTestingModule, imports: [SkyPhoneFieldModule,
12
+ SkyPhoneFieldTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyPhoneFieldTestingModule, imports: [SkyPhoneFieldModule,
13
13
  // The noop animations module needs to be loaded last to avoid
14
14
  // subsequent modules adding animations and overriding this.
15
15
  NoopAnimationsModule] });
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPhoneFieldTestingModule, decorators: [{
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyPhoneFieldTestingModule, decorators: [{
17
17
  type: NgModule,
18
18
  args: [{
19
19
  exports: [
@@ -9,16 +9,16 @@ import { SkyCountryFieldFixture } from '@skyux/lookup/testing';
9
9
 
10
10
  class SkyPhoneFieldTestingModule {
11
11
  }
12
- SkyPhoneFieldTestingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPhoneFieldTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
13
- SkyPhoneFieldTestingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPhoneFieldTestingModule, exports: [SkyPhoneFieldModule,
12
+ SkyPhoneFieldTestingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyPhoneFieldTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
13
+ SkyPhoneFieldTestingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyPhoneFieldTestingModule, exports: [SkyPhoneFieldModule,
14
14
  // The noop animations module needs to be loaded last to avoid
15
15
  // subsequent modules adding animations and overriding this.
16
16
  NoopAnimationsModule] });
17
- SkyPhoneFieldTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPhoneFieldTestingModule, imports: [SkyPhoneFieldModule,
17
+ SkyPhoneFieldTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyPhoneFieldTestingModule, imports: [SkyPhoneFieldModule,
18
18
  // The noop animations module needs to be loaded last to avoid
19
19
  // subsequent modules adding animations and overriding this.
20
20
  NoopAnimationsModule] });
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPhoneFieldTestingModule, decorators: [{
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyPhoneFieldTestingModule, decorators: [{
22
22
  type: NgModule,
23
23
  args: [{
24
24
  exports: [
@@ -206,7 +206,6 @@ class SkyPhoneFieldFixture {
206
206
  });
207
207
  }
208
208
  coerceBooleanProperty(value) {
209
- // tslint:disable-next-line: no-null-keyword
210
209
  return value != null && `${value}` !== 'false';
211
210
  }
212
211
  }
@@ -1 +1 @@
1
- {"version":3,"file":"skyux-phone-field-testing.mjs","sources":["../../../../../libs/components/phone-field/testing/src/phonefield/phone-field-testing.module.ts","../../../../../libs/components/phone-field/testing/src/phonefield/phone-field-fixture.ts","../../../../../libs/components/phone-field/testing/src/skyux-phone-field-testing.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { NoopAnimationsModule } from '@angular/platform-browser/animations';\nimport { SkyPhoneFieldModule } from '@skyux/phone-field';\n\n@NgModule({\n exports: [\n SkyPhoneFieldModule,\n\n // The noop animations module needs to be loaded last to avoid\n // subsequent modules adding animations and overriding this.\n NoopAnimationsModule,\n ],\n})\nexport class SkyPhoneFieldTestingModule {}\n","import { DebugElement } from '@angular/core';\nimport { ComponentFixture } from '@angular/core/testing';\nimport { By } from '@angular/platform-browser';\nimport { SkyAppTestUtility } from '@skyux-sdk/testing';\nimport { SkyCountryFieldFixture } from '@skyux/lookup/testing';\n\n/**\n * Provides information for and interaction with a SKY UX phone field component.\n * By using the fixture API, a test insulates itself against updates to the internals\n * of a component, such as changing its DOM structure.\n */\nexport class SkyPhoneFieldFixture {\n /**\n * The value of the input field for the phone field.\n */\n public get inputText(): string {\n return this.phoneFieldInput.value;\n }\n\n /**\n * This property is lazy loaded and should be accessed via the private countryFixture property.\n */\n private _countryFixture: SkyCountryFieldFixture;\n\n private _debugEl: DebugElement;\n\n constructor(\n private fixture: ComponentFixture<any>,\n private skyTestId: string\n ) {\n this._debugEl = SkyAppTestUtility.getDebugElementByTestId(\n fixture,\n skyTestId,\n 'sky-phone-field'\n );\n\n // The country selector needs extra time to initialize.\n // Consumers shouldn't need to work around this so we do an extra detect here\n fixture.detectChanges();\n }\n\n /**\n * Blurs the phone field input and returns a promise that indicates when the action is complete.\n */\n public async blur(): Promise<void> {\n SkyAppTestUtility.fireDomEvent(this.phoneFieldInput, 'blur');\n this.fixture.detectChanges();\n return this.fixture.whenStable();\n }\n\n /**\n * Returns the selected country iso2 code.\n */\n public async getSelectedCountryIso2(): Promise<string> {\n // Wait for the country field to initialize.\n await this.fixture.whenStable();\n return this.countryFlagButtonContainer.getAttribute('data-sky-test-iso2');\n }\n\n /**\n * Returns the selected country name.\n */\n public async getSelectedCountryName(): Promise<string> {\n // Wait for the country field to initialize.\n await this.fixture.whenStable();\n return this.countryFlagButtonContainer.getAttribute('data-sky-test-name');\n }\n\n /**\n * Sets the value of the input field for the phone field.\n */\n public async setInputText(inputText: string): Promise<void> {\n const inputEl = this.phoneFieldInput;\n inputEl.value = inputText;\n\n SkyAppTestUtility.fireDomEvent(inputEl, 'input');\n this.fixture.detectChanges();\n\n SkyAppTestUtility.fireDomEvent(inputEl, 'change');\n\n this.fixture.detectChanges();\n return this.fixture.whenStable();\n }\n\n /**\n * Opens the country selector, peforms a search, but makes no selection.\n * @param searchText The name of the country to select.\n * @returns The list of country names matching the search text.\n */\n public async searchCountry(searchText: string): Promise<string[]> {\n await this.openCountrySelection();\n\n const countryFixture = await this.getCountryFixture();\n const results = await countryFixture.search(searchText);\n\n await this.waitForCountrySelection();\n return results;\n }\n\n /**\n * Opens the country selector, performs a search, and selects the first result (if any).\n * @param searchText The name of the country to select.\n */\n public async selectCountry(searchText: string): Promise<void> {\n await this.openCountrySelection();\n\n const countryFixture = await this.getCountryFixture();\n await countryFixture.searchAndSelectFirstResult(searchText);\n\n return this.waitForCountrySelection();\n }\n\n /**\n * Gets a boolean promise indicating if the phone field is disabled.\n */\n public async isDisabled(): Promise<boolean> {\n const disabled = this.phoneFieldInput.getAttribute('disabled');\n return this.coerceBooleanProperty(await disabled);\n }\n\n /**\n * Gets a boolean promise indicating if the phone field is valid.\n */\n public async isValid(): Promise<boolean> {\n if (!(await this.hasFormControl())) {\n throw new Error(`Form control not found.`);\n }\n return this.phoneFieldInput.classList.contains('ng-valid');\n }\n\n private get countryElement(): HTMLInputElement {\n return this._debugEl.query(By.css('sky-country-field')).nativeElement;\n }\n\n private get countryFlagButtonContainer(): HTMLInputElement {\n return this._debugEl.query(By.css('.sky-phone-field-country-btn'))\n .nativeElement;\n }\n\n private get countryFlagButton(): HTMLInputElement {\n return this._debugEl.query(By.css('.sky-phone-field-country-btn .sky-btn'))\n .nativeElement;\n }\n\n private get phoneFieldInput(): HTMLInputElement {\n return this._debugEl.query(By.css('input[skyPhoneFieldInput]'))\n .nativeElement;\n }\n\n /**\n * The country-field can take a really long time to initialize. Since we can't perform an await\n * in our constructor, it's safest to do a lazy load of the country field to avoid any race\n * conditions where a test tries to access the sky-country-field element too quickly.\n */\n private async getCountryFixture(): Promise<SkyCountryFieldFixture> {\n if (this._countryFixture === undefined) {\n // tag the country field with a sky test id\n const countrySkyTestId = `${this.skyTestId}-country`;\n this.setSkyTestId(this.countryElement, countrySkyTestId);\n\n // initialize the country fixture\n this._countryFixture = new SkyCountryFieldFixture(\n this.fixture,\n countrySkyTestId\n );\n\n this.fixture.detectChanges();\n await this.fixture.whenStable();\n }\n\n return this._countryFixture;\n }\n\n private async openCountrySelection(): Promise<void> {\n this.countryFlagButton.click();\n return this.waitForCountrySelection();\n }\n\n private setSkyTestId(element: HTMLElement, skyTestId: string): void {\n element.setAttribute('data-sky-id', skyTestId);\n }\n\n private async waitForCountrySelection(): Promise<void> {\n // any country selection needs extra time to complete\n this.fixture.detectChanges();\n await this.fixture.whenStable();\n\n this.fixture.detectChanges();\n return this.fixture.whenStable();\n }\n\n /**\n * Checks whether the form-field control has set up a form control.\n */\n private async hasFormControl(): Promise<boolean> {\n // If no form \"NgControl\" is bound to the form-field control, the form-field\n // is not able to forward any control status classes. Therefore if either the\n // \"ng-touched\" or \"ng-untouched\" class is set, we know that it has a form control.\n const isTouched = this.phoneFieldInput.classList.contains('ng-touched');\n const isUntouched = this.phoneFieldInput.classList.contains('ng-untouched');\n return isTouched || isUntouched;\n }\n\n private coerceBooleanProperty(value: any): boolean {\n // tslint:disable-next-line: no-null-keyword\n return value != null && `${value}` !== 'false';\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skyux-phone-field-testing.mjs","sources":["../../../../../libs/components/phone-field/testing/src/phonefield/phone-field-testing.module.ts","../../../../../libs/components/phone-field/testing/src/phonefield/phone-field-fixture.ts","../../../../../libs/components/phone-field/testing/src/skyux-phone-field-testing.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { NoopAnimationsModule } from '@angular/platform-browser/animations';\nimport { SkyPhoneFieldModule } from '@skyux/phone-field';\n\n@NgModule({\n exports: [\n SkyPhoneFieldModule,\n\n // The noop animations module needs to be loaded last to avoid\n // subsequent modules adding animations and overriding this.\n NoopAnimationsModule,\n ],\n})\nexport class SkyPhoneFieldTestingModule {}\n","import { DebugElement } from '@angular/core';\nimport { ComponentFixture } from '@angular/core/testing';\nimport { By } from '@angular/platform-browser';\nimport { SkyAppTestUtility } from '@skyux-sdk/testing';\nimport { SkyCountryFieldFixture } from '@skyux/lookup/testing';\n\n/**\n * Provides information for and interaction with a SKY UX phone field component.\n * By using the fixture API, a test insulates itself against updates to the internals\n * of a component, such as changing its DOM structure.\n */\nexport class SkyPhoneFieldFixture {\n /**\n * The value of the input field for the phone field.\n */\n public get inputText(): string {\n return this.phoneFieldInput.value;\n }\n\n /**\n * This property is lazy loaded and should be accessed via the private countryFixture property.\n */\n private _countryFixture: SkyCountryFieldFixture;\n\n private _debugEl: DebugElement;\n\n constructor(\n private fixture: ComponentFixture<any>,\n private skyTestId: string\n ) {\n this._debugEl = SkyAppTestUtility.getDebugElementByTestId(\n fixture,\n skyTestId,\n 'sky-phone-field'\n );\n\n // The country selector needs extra time to initialize.\n // Consumers shouldn't need to work around this so we do an extra detect here\n fixture.detectChanges();\n }\n\n /**\n * Blurs the phone field input and returns a promise that indicates when the action is complete.\n */\n public async blur(): Promise<void> {\n SkyAppTestUtility.fireDomEvent(this.phoneFieldInput, 'blur');\n this.fixture.detectChanges();\n return this.fixture.whenStable();\n }\n\n /**\n * Returns the selected country iso2 code.\n */\n public async getSelectedCountryIso2(): Promise<string> {\n // Wait for the country field to initialize.\n await this.fixture.whenStable();\n return this.countryFlagButtonContainer.getAttribute('data-sky-test-iso2');\n }\n\n /**\n * Returns the selected country name.\n */\n public async getSelectedCountryName(): Promise<string> {\n // Wait for the country field to initialize.\n await this.fixture.whenStable();\n return this.countryFlagButtonContainer.getAttribute('data-sky-test-name');\n }\n\n /**\n * Sets the value of the input field for the phone field.\n */\n public async setInputText(inputText: string): Promise<void> {\n const inputEl = this.phoneFieldInput;\n inputEl.value = inputText;\n\n SkyAppTestUtility.fireDomEvent(inputEl, 'input');\n this.fixture.detectChanges();\n\n SkyAppTestUtility.fireDomEvent(inputEl, 'change');\n\n this.fixture.detectChanges();\n return this.fixture.whenStable();\n }\n\n /**\n * Opens the country selector, peforms a search, but makes no selection.\n * @param searchText The name of the country to select.\n * @returns The list of country names matching the search text.\n */\n public async searchCountry(searchText: string): Promise<string[]> {\n await this.openCountrySelection();\n\n const countryFixture = await this.getCountryFixture();\n const results = await countryFixture.search(searchText);\n\n await this.waitForCountrySelection();\n return results;\n }\n\n /**\n * Opens the country selector, performs a search, and selects the first result (if any).\n * @param searchText The name of the country to select.\n */\n public async selectCountry(searchText: string): Promise<void> {\n await this.openCountrySelection();\n\n const countryFixture = await this.getCountryFixture();\n await countryFixture.searchAndSelectFirstResult(searchText);\n\n return this.waitForCountrySelection();\n }\n\n /**\n * Gets a boolean promise indicating if the phone field is disabled.\n */\n public async isDisabled(): Promise<boolean> {\n const disabled = this.phoneFieldInput.getAttribute('disabled');\n return this.coerceBooleanProperty(await disabled);\n }\n\n /**\n * Gets a boolean promise indicating if the phone field is valid.\n */\n public async isValid(): Promise<boolean> {\n if (!(await this.hasFormControl())) {\n throw new Error(`Form control not found.`);\n }\n return this.phoneFieldInput.classList.contains('ng-valid');\n }\n\n private get countryElement(): HTMLInputElement {\n return this._debugEl.query(By.css('sky-country-field')).nativeElement;\n }\n\n private get countryFlagButtonContainer(): HTMLInputElement {\n return this._debugEl.query(By.css('.sky-phone-field-country-btn'))\n .nativeElement;\n }\n\n private get countryFlagButton(): HTMLInputElement {\n return this._debugEl.query(By.css('.sky-phone-field-country-btn .sky-btn'))\n .nativeElement;\n }\n\n private get phoneFieldInput(): HTMLInputElement {\n return this._debugEl.query(By.css('input[skyPhoneFieldInput]'))\n .nativeElement;\n }\n\n /**\n * The country-field can take a really long time to initialize. Since we can't perform an await\n * in our constructor, it's safest to do a lazy load of the country field to avoid any race\n * conditions where a test tries to access the sky-country-field element too quickly.\n */\n private async getCountryFixture(): Promise<SkyCountryFieldFixture> {\n if (this._countryFixture === undefined) {\n // tag the country field with a sky test id\n const countrySkyTestId = `${this.skyTestId}-country`;\n this.setSkyTestId(this.countryElement, countrySkyTestId);\n\n // initialize the country fixture\n this._countryFixture = new SkyCountryFieldFixture(\n this.fixture,\n countrySkyTestId\n );\n\n this.fixture.detectChanges();\n await this.fixture.whenStable();\n }\n\n return this._countryFixture;\n }\n\n private async openCountrySelection(): Promise<void> {\n this.countryFlagButton.click();\n return this.waitForCountrySelection();\n }\n\n private setSkyTestId(element: HTMLElement, skyTestId: string): void {\n element.setAttribute('data-sky-id', skyTestId);\n }\n\n private async waitForCountrySelection(): Promise<void> {\n // any country selection needs extra time to complete\n this.fixture.detectChanges();\n await this.fixture.whenStable();\n\n this.fixture.detectChanges();\n return this.fixture.whenStable();\n }\n\n /**\n * Checks whether the form-field control has set up a form control.\n */\n private async hasFormControl(): Promise<boolean> {\n // If no form \"NgControl\" is bound to the form-field control, the form-field\n // is not able to forward any control status classes. Therefore if either the\n // \"ng-touched\" or \"ng-untouched\" class is set, we know that it has a form control.\n const isTouched = this.phoneFieldInput.classList.contains('ng-touched');\n const isUntouched = this.phoneFieldInput.classList.contains('ng-untouched');\n return isTouched || isUntouched;\n }\n\n private coerceBooleanProperty(value: any): boolean {\n return value != null && `${value}` !== 'false';\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}