@skyux/indicators 7.2.0 → 7.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -39,9 +39,11 @@
39
39
  "SkyLabelHarness": "class-skylabelharness",
40
40
  "SkyTokenHarness": "class-skytokenharness",
41
41
  "SkyTokensHarness": "class-skytokensharness",
42
+ "SkyWaitHarness": "class-skywaitharness",
42
43
  "SkyAlertHarnessFilters": "interface-skyalertharnessfilters",
43
44
  "SkyKeyInfoHarnessFilters": "interface-skykeyinfoharnessfilters",
44
- "SkyLabelHarnessFilters": "interface-skylabelharnessfilters"
45
+ "SkyLabelHarnessFilters": "interface-skylabelharnessfilters",
46
+ "SkyWaitHarnessFilters": "interface-skywaitharnessfilters"
45
47
  },
46
48
  "typedoc": {
47
49
  "id": 0,
@@ -8238,6 +8240,316 @@
8238
8240
  }
8239
8241
  ]
8240
8242
  },
8243
+ {
8244
+ "id": 696,
8245
+ "name": "SkyWaitHarness",
8246
+ "kind": 128,
8247
+ "kindString": "Class",
8248
+ "flags": {},
8249
+ "comment": {
8250
+ "shortText": "Harness for interacting with a wait component in tests."
8251
+ },
8252
+ "children": [
8253
+ {
8254
+ "id": 711,
8255
+ "name": "getAriaLabel",
8256
+ "kind": 2048,
8257
+ "kindString": "Method",
8258
+ "flags": {
8259
+ "isPublic": true
8260
+ },
8261
+ "sources": [
8262
+ {
8263
+ "fileName": "projects/indicators/src/testing/wait/wait-harness.ts",
8264
+ "line": 31,
8265
+ "character": 15
8266
+ }
8267
+ ],
8268
+ "signatures": [
8269
+ {
8270
+ "id": 712,
8271
+ "name": "getAriaLabel",
8272
+ "kind": 4096,
8273
+ "kindString": "Call signature",
8274
+ "flags": {},
8275
+ "comment": {
8276
+ "shortText": "Gets the ARIA label for the wait component or throws an error if not waiting."
8277
+ },
8278
+ "type": {
8279
+ "type": "reference",
8280
+ "typeArguments": [
8281
+ {
8282
+ "type": "intrinsic",
8283
+ "name": "string"
8284
+ }
8285
+ ],
8286
+ "qualifiedName": "Promise",
8287
+ "package": "typescript",
8288
+ "name": "Promise"
8289
+ }
8290
+ }
8291
+ ]
8292
+ },
8293
+ {
8294
+ "id": 722,
8295
+ "name": "host",
8296
+ "kind": 2048,
8297
+ "kindString": "Method",
8298
+ "flags": {},
8299
+ "sources": [
8300
+ {
8301
+ "fileName": "node_modules/@angular/cdk/testing/index.d.ts",
8302
+ "line": 40,
8303
+ "character": 4
8304
+ }
8305
+ ],
8306
+ "signatures": [
8307
+ {
8308
+ "id": 723,
8309
+ "name": "host",
8310
+ "kind": 4096,
8311
+ "kindString": "Call signature",
8312
+ "flags": {},
8313
+ "comment": {
8314
+ "shortText": "Gets a `Promise` for the `TestElement` representing the host element of the component."
8315
+ },
8316
+ "type": {
8317
+ "type": "reference",
8318
+ "typeArguments": [
8319
+ {
8320
+ "type": "reference",
8321
+ "qualifiedName": "TestElement",
8322
+ "package": "@angular/cdk",
8323
+ "name": "TestElement"
8324
+ }
8325
+ ],
8326
+ "qualifiedName": "Promise",
8327
+ "package": "typescript",
8328
+ "name": "Promise"
8329
+ },
8330
+ "inheritedFrom": {
8331
+ "type": "reference",
8332
+ "name": "SkyComponentHarness.host"
8333
+ }
8334
+ }
8335
+ ],
8336
+ "inheritedFrom": {
8337
+ "type": "reference",
8338
+ "name": "SkyComponentHarness.host"
8339
+ }
8340
+ },
8341
+ {
8342
+ "id": 715,
8343
+ "name": "isFullPage",
8344
+ "kind": 2048,
8345
+ "kindString": "Method",
8346
+ "flags": {
8347
+ "isPublic": true
8348
+ },
8349
+ "sources": [
8350
+ {
8351
+ "fileName": "projects/indicators/src/testing/wait/wait-harness.ts",
8352
+ "line": 55,
8353
+ "character": 15
8354
+ }
8355
+ ],
8356
+ "signatures": [
8357
+ {
8358
+ "id": 716,
8359
+ "name": "isFullPage",
8360
+ "kind": 4096,
8361
+ "kindString": "Call signature",
8362
+ "flags": {},
8363
+ "comment": {
8364
+ "shortText": "Gets the full page state of the wait component."
8365
+ },
8366
+ "type": {
8367
+ "type": "reference",
8368
+ "typeArguments": [
8369
+ {
8370
+ "type": "intrinsic",
8371
+ "name": "boolean"
8372
+ }
8373
+ ],
8374
+ "qualifiedName": "Promise",
8375
+ "package": "typescript",
8376
+ "name": "Promise"
8377
+ }
8378
+ }
8379
+ ]
8380
+ },
8381
+ {
8382
+ "id": 717,
8383
+ "name": "isNonBlocking",
8384
+ "kind": 2048,
8385
+ "kindString": "Method",
8386
+ "flags": {
8387
+ "isPublic": true
8388
+ },
8389
+ "sources": [
8390
+ {
8391
+ "fileName": "projects/indicators/src/testing/wait/wait-harness.ts",
8392
+ "line": 62,
8393
+ "character": 15
8394
+ }
8395
+ ],
8396
+ "signatures": [
8397
+ {
8398
+ "id": 718,
8399
+ "name": "isNonBlocking",
8400
+ "kind": 4096,
8401
+ "kindString": "Call signature",
8402
+ "flags": {},
8403
+ "comment": {
8404
+ "shortText": "Gets the blocking state of the wait component."
8405
+ },
8406
+ "type": {
8407
+ "type": "reference",
8408
+ "typeArguments": [
8409
+ {
8410
+ "type": "intrinsic",
8411
+ "name": "boolean"
8412
+ }
8413
+ ],
8414
+ "qualifiedName": "Promise",
8415
+ "package": "typescript",
8416
+ "name": "Promise"
8417
+ }
8418
+ }
8419
+ ]
8420
+ },
8421
+ {
8422
+ "id": 713,
8423
+ "name": "isWaiting",
8424
+ "kind": 2048,
8425
+ "kindString": "Method",
8426
+ "flags": {
8427
+ "isPublic": true
8428
+ },
8429
+ "sources": [
8430
+ {
8431
+ "fileName": "projects/indicators/src/testing/wait/wait-harness.ts",
8432
+ "line": 48,
8433
+ "character": 15
8434
+ }
8435
+ ],
8436
+ "signatures": [
8437
+ {
8438
+ "id": 714,
8439
+ "name": "isWaiting",
8440
+ "kind": 4096,
8441
+ "kindString": "Call signature",
8442
+ "flags": {},
8443
+ "comment": {
8444
+ "shortText": "Gets the waiting state of the wait component."
8445
+ },
8446
+ "type": {
8447
+ "type": "reference",
8448
+ "typeArguments": [
8449
+ {
8450
+ "type": "intrinsic",
8451
+ "name": "boolean"
8452
+ }
8453
+ ],
8454
+ "qualifiedName": "Promise",
8455
+ "package": "typescript",
8456
+ "name": "Promise"
8457
+ }
8458
+ }
8459
+ ]
8460
+ },
8461
+ {
8462
+ "id": 698,
8463
+ "name": "with",
8464
+ "kind": 2048,
8465
+ "kindString": "Method",
8466
+ "flags": {
8467
+ "isPublic": true,
8468
+ "isStatic": true
8469
+ },
8470
+ "sources": [
8471
+ {
8472
+ "fileName": "projects/indicators/src/testing/wait/wait-harness.ts",
8473
+ "line": 22,
8474
+ "character": 16
8475
+ }
8476
+ ],
8477
+ "signatures": [
8478
+ {
8479
+ "id": 699,
8480
+ "name": "with",
8481
+ "kind": 4096,
8482
+ "kindString": "Call signature",
8483
+ "flags": {},
8484
+ "comment": {
8485
+ "shortText": "Gets a `HarnessPredicate` that can be used to search for a\n`SkyWaitHarness` that meets certain criteria."
8486
+ },
8487
+ "parameters": [
8488
+ {
8489
+ "id": 700,
8490
+ "name": "filters",
8491
+ "kind": 32768,
8492
+ "kindString": "Parameter",
8493
+ "flags": {},
8494
+ "type": {
8495
+ "type": "reference",
8496
+ "id": 742,
8497
+ "name": "SkyWaitHarnessFilters"
8498
+ }
8499
+ }
8500
+ ],
8501
+ "type": {
8502
+ "type": "reference",
8503
+ "typeArguments": [
8504
+ {
8505
+ "type": "reference",
8506
+ "id": 696,
8507
+ "name": "SkyWaitHarness"
8508
+ }
8509
+ ],
8510
+ "qualifiedName": "HarnessPredicate",
8511
+ "package": "@angular/cdk",
8512
+ "name": "HarnessPredicate"
8513
+ }
8514
+ }
8515
+ ]
8516
+ }
8517
+ ],
8518
+ "groups": [
8519
+ {
8520
+ "title": "Constructors",
8521
+ "kind": 512,
8522
+ "children": [
8523
+ 706
8524
+ ]
8525
+ },
8526
+ {
8527
+ "title": "Methods",
8528
+ "kind": 2048,
8529
+ "children": [
8530
+ 711,
8531
+ 722,
8532
+ 715,
8533
+ 717,
8534
+ 713,
8535
+ 698
8536
+ ]
8537
+ }
8538
+ ],
8539
+ "sources": [
8540
+ {
8541
+ "fileName": "projects/indicators/src/testing/wait/wait-harness.ts",
8542
+ "line": 9,
8543
+ "character": 13
8544
+ }
8545
+ ],
8546
+ "extendedTypes": [
8547
+ {
8548
+ "type": "reference",
8549
+ "name": "SkyComponentHarness"
8550
+ }
8551
+ ]
8552
+ },
8241
8553
  {
8242
8554
  "id": 496,
8243
8555
  "name": "SkyAlertHarnessFilters",
@@ -8621,6 +8933,134 @@
8621
8933
  "name": "SkyHarnessFilters"
8622
8934
  }
8623
8935
  ]
8936
+ },
8937
+ {
8938
+ "id": 742,
8939
+ "name": "SkyWaitHarnessFilters",
8940
+ "kind": 256,
8941
+ "kindString": "Interface",
8942
+ "flags": {},
8943
+ "comment": {
8944
+ "shortText": "A set of criteria that can be used to filter a list of SkyAlertHarness instances."
8945
+ },
8946
+ "children": [
8947
+ {
8948
+ "id": 745,
8949
+ "name": "ancestor",
8950
+ "kind": 1024,
8951
+ "kindString": "Property",
8952
+ "flags": {
8953
+ "isOptional": true
8954
+ },
8955
+ "comment": {
8956
+ "shortText": "Only find instances that are nested under an element with the given selector."
8957
+ },
8958
+ "sources": [
8959
+ {
8960
+ "fileName": "node_modules/@angular/cdk/testing/index.d.ts",
8961
+ "line": 28,
8962
+ "character": 4
8963
+ }
8964
+ ],
8965
+ "type": {
8966
+ "type": "intrinsic",
8967
+ "name": "string"
8968
+ },
8969
+ "inheritedFrom": {
8970
+ "type": "reference",
8971
+ "name": "SkyHarnessFilters.ancestor"
8972
+ }
8973
+ },
8974
+ {
8975
+ "id": 743,
8976
+ "name": "dataSkyId",
8977
+ "kind": 1024,
8978
+ "kindString": "Property",
8979
+ "flags": {
8980
+ "isOptional": true
8981
+ },
8982
+ "comment": {
8983
+ "shortText": "Only find instances whose `data-sky-id` attribute matches the given value."
8984
+ },
8985
+ "sources": [
8986
+ {
8987
+ "fileName": "libs/components/core/testing/src/shared/harness-filters.ts",
8988
+ "line": 11,
8989
+ "character": 2
8990
+ }
8991
+ ],
8992
+ "type": {
8993
+ "type": "union",
8994
+ "types": [
8995
+ {
8996
+ "type": "intrinsic",
8997
+ "name": "string"
8998
+ },
8999
+ {
9000
+ "type": "reference",
9001
+ "qualifiedName": "RegExp",
9002
+ "package": "typescript",
9003
+ "name": "RegExp"
9004
+ }
9005
+ ]
9006
+ },
9007
+ "inheritedFrom": {
9008
+ "type": "reference",
9009
+ "name": "SkyHarnessFilters.dataSkyId"
9010
+ }
9011
+ },
9012
+ {
9013
+ "id": 744,
9014
+ "name": "selector",
9015
+ "kind": 1024,
9016
+ "kindString": "Property",
9017
+ "flags": {
9018
+ "isOptional": true
9019
+ },
9020
+ "comment": {
9021
+ "shortText": "Only find instances whose host element matches the given selector."
9022
+ },
9023
+ "sources": [
9024
+ {
9025
+ "fileName": "node_modules/@angular/cdk/testing/index.d.ts",
9026
+ "line": 26,
9027
+ "character": 4
9028
+ }
9029
+ ],
9030
+ "type": {
9031
+ "type": "intrinsic",
9032
+ "name": "string"
9033
+ },
9034
+ "inheritedFrom": {
9035
+ "type": "reference",
9036
+ "name": "SkyHarnessFilters.selector"
9037
+ }
9038
+ }
9039
+ ],
9040
+ "groups": [
9041
+ {
9042
+ "title": "Properties",
9043
+ "kind": 1024,
9044
+ "children": [
9045
+ 745,
9046
+ 743,
9047
+ 744
9048
+ ]
9049
+ }
9050
+ ],
9051
+ "sources": [
9052
+ {
9053
+ "fileName": "projects/indicators/src/testing/wait/wait-harness-filters.ts",
9054
+ "line": 7,
9055
+ "character": 17
9056
+ }
9057
+ ],
9058
+ "extendedTypes": [
9059
+ {
9060
+ "type": "reference",
9061
+ "name": "SkyHarnessFilters"
9062
+ }
9063
+ ]
8624
9064
  }
8625
9065
  ],
8626
9066
  "groups": [
@@ -117,10 +117,10 @@ _SkyWaitComponent_elRef = new WeakMap(), _SkyWaitComponent_adapterService = new
117
117
  }
118
118
  };
119
119
  SkyWaitComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: SkyWaitComponent, deps: [{ token: i0.ElementRef }, { token: i1.SkyWaitAdapterService }, { token: i2.SkyLibResourcesService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
120
- SkyWaitComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.11", type: SkyWaitComponent, selector: "sky-wait", inputs: { ariaLabel: "ariaLabel", isWaiting: "isWaiting", isFullPage: "isFullPage", isNonBlocking: "isNonBlocking" }, providers: [SkyWaitAdapterService], ngImport: i0, template: "<div class=\"sky-wait-container\">\n <div\n *ngIf=\"isWaiting\"\n class=\"sky-wait-mask\"\n role=\"progressbar\"\n [attr.aria-label]=\"ariaLabelStream | async\"\n [ngClass]=\"{\n 'sky-wait-mask-loading-fixed': isFullPage,\n 'sky-wait-mask-loading-non-blocking': isNonBlocking,\n 'sky-wait-mask-loading-blocking': !isNonBlocking\n }\"\n >\n <div class=\"sky-wait\">\n <div class=\"sky-wait-double-bounce1\"></div>\n <div class=\"sky-wait-double-bounce2\"></div>\n </div>\n </div>\n</div>\n", styles: [".sky-wait-mask-loading-blocking{margin:auto;position:absolute;inset:0;background-color:#ffffffb3;z-index:1000}.sky-wait-mask-loading-fixed{position:fixed}.sky-wait{width:50px;height:50px;margin-top:-25px;margin-left:-25px;position:absolute;top:50%;left:50%}.sky-wait-mask-loading-non-blocking{bottom:0}.sky-wait-mask-loading-non-blocking .sky-wait{inset:auto auto 0 0;margin-left:auto;margin-right:auto}.sky-wait-double-bounce1,.sky-wait-double-bounce2{width:100%;height:100%;border-radius:50%;background-color:#72bf44;opacity:.6;position:absolute;top:0;left:0;animation:sk-bounce 2s infinite ease-in-out}.sky-wait-double-bounce2{animation-delay:-1s}@keyframes sk-bounce{0%,to{transform:scale(0);-webkit-transform:scale(0)}50%{transform:scale(1);-webkit-transform:scale(1)}}.sky-wait-container.sky-wait-active{position:relative}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] });
120
+ SkyWaitComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.11", type: SkyWaitComponent, selector: "sky-wait", inputs: { ariaLabel: "ariaLabel", isWaiting: "isWaiting", isFullPage: "isFullPage", isNonBlocking: "isNonBlocking" }, providers: [SkyWaitAdapterService], ngImport: i0, template: "<div\n class=\"sky-wait-container\"\n [ngClass]=\"{\n 'sky-wait-full-page': isFullPage,\n 'sky-wait-non-blocking': isNonBlocking\n }\"\n>\n <div\n *ngIf=\"isWaiting\"\n class=\"sky-wait-mask\"\n role=\"progressbar\"\n [attr.aria-label]=\"ariaLabelStream | async\"\n [ngClass]=\"{\n 'sky-wait-mask-loading-fixed': isFullPage,\n 'sky-wait-mask-loading-non-blocking': isNonBlocking,\n 'sky-wait-mask-loading-blocking': !isNonBlocking\n }\"\n >\n <div class=\"sky-wait\">\n <div class=\"sky-wait-double-bounce1\"></div>\n <div class=\"sky-wait-double-bounce2\"></div>\n </div>\n </div>\n</div>\n", styles: [".sky-wait-mask-loading-blocking{margin:auto;position:absolute;inset:0;background-color:#ffffffb3;z-index:1000}.sky-wait-mask-loading-fixed{position:fixed}.sky-wait{width:50px;height:50px;margin-top:-25px;margin-left:-25px;position:absolute;top:50%;left:50%}.sky-wait-mask-loading-non-blocking{bottom:0}.sky-wait-mask-loading-non-blocking .sky-wait{inset:auto auto 0 0;margin-left:auto;margin-right:auto}.sky-wait-double-bounce1,.sky-wait-double-bounce2{width:100%;height:100%;border-radius:50%;background-color:#72bf44;opacity:.6;position:absolute;top:0;left:0;animation:sk-bounce 2s infinite ease-in-out}.sky-wait-double-bounce2{animation-delay:-1s}@keyframes sk-bounce{0%,to{transform:scale(0);-webkit-transform:scale(0)}50%{transform:scale(1);-webkit-transform:scale(1)}}.sky-wait-container.sky-wait-active{position:relative}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] });
121
121
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: SkyWaitComponent, decorators: [{
122
122
  type: Component,
123
- args: [{ selector: 'sky-wait', providers: [SkyWaitAdapterService], template: "<div class=\"sky-wait-container\">\n <div\n *ngIf=\"isWaiting\"\n class=\"sky-wait-mask\"\n role=\"progressbar\"\n [attr.aria-label]=\"ariaLabelStream | async\"\n [ngClass]=\"{\n 'sky-wait-mask-loading-fixed': isFullPage,\n 'sky-wait-mask-loading-non-blocking': isNonBlocking,\n 'sky-wait-mask-loading-blocking': !isNonBlocking\n }\"\n >\n <div class=\"sky-wait\">\n <div class=\"sky-wait-double-bounce1\"></div>\n <div class=\"sky-wait-double-bounce2\"></div>\n </div>\n </div>\n</div>\n", styles: [".sky-wait-mask-loading-blocking{margin:auto;position:absolute;inset:0;background-color:#ffffffb3;z-index:1000}.sky-wait-mask-loading-fixed{position:fixed}.sky-wait{width:50px;height:50px;margin-top:-25px;margin-left:-25px;position:absolute;top:50%;left:50%}.sky-wait-mask-loading-non-blocking{bottom:0}.sky-wait-mask-loading-non-blocking .sky-wait{inset:auto auto 0 0;margin-left:auto;margin-right:auto}.sky-wait-double-bounce1,.sky-wait-double-bounce2{width:100%;height:100%;border-radius:50%;background-color:#72bf44;opacity:.6;position:absolute;top:0;left:0;animation:sk-bounce 2s infinite ease-in-out}.sky-wait-double-bounce2{animation-delay:-1s}@keyframes sk-bounce{0%,to{transform:scale(0);-webkit-transform:scale(0)}50%{transform:scale(1);-webkit-transform:scale(1)}}.sky-wait-container.sky-wait-active{position:relative}\n"] }]
123
+ args: [{ selector: 'sky-wait', providers: [SkyWaitAdapterService], template: "<div\n class=\"sky-wait-container\"\n [ngClass]=\"{\n 'sky-wait-full-page': isFullPage,\n 'sky-wait-non-blocking': isNonBlocking\n }\"\n>\n <div\n *ngIf=\"isWaiting\"\n class=\"sky-wait-mask\"\n role=\"progressbar\"\n [attr.aria-label]=\"ariaLabelStream | async\"\n [ngClass]=\"{\n 'sky-wait-mask-loading-fixed': isFullPage,\n 'sky-wait-mask-loading-non-blocking': isNonBlocking,\n 'sky-wait-mask-loading-blocking': !isNonBlocking\n }\"\n >\n <div class=\"sky-wait\">\n <div class=\"sky-wait-double-bounce1\"></div>\n <div class=\"sky-wait-double-bounce2\"></div>\n </div>\n </div>\n</div>\n", styles: [".sky-wait-mask-loading-blocking{margin:auto;position:absolute;inset:0;background-color:#ffffffb3;z-index:1000}.sky-wait-mask-loading-fixed{position:fixed}.sky-wait{width:50px;height:50px;margin-top:-25px;margin-left:-25px;position:absolute;top:50%;left:50%}.sky-wait-mask-loading-non-blocking{bottom:0}.sky-wait-mask-loading-non-blocking .sky-wait{inset:auto auto 0 0;margin-left:auto;margin-right:auto}.sky-wait-double-bounce1,.sky-wait-double-bounce2{width:100%;height:100%;border-radius:50%;background-color:#72bf44;opacity:.6;position:absolute;top:0;left:0;animation:sk-bounce 2s infinite ease-in-out}.sky-wait-double-bounce2{animation-delay:-1s}@keyframes sk-bounce{0%,to{transform:scale(0);-webkit-transform:scale(0)}50%{transform:scale(1);-webkit-transform:scale(1)}}.sky-wait-container.sky-wait-active{position:relative}\n"] }]
124
124
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.SkyWaitAdapterService }, { type: i2.SkyLibResourcesService, decorators: [{
125
125
  type: Optional
126
126
  }] }]; }, propDecorators: { ariaLabel: [{
@@ -132,4 +132,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.11", ngImpo
132
132
  }], isNonBlocking: [{
133
133
  type: Input
134
134
  }] } });
135
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FpdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvaW5kaWNhdG9ycy9zcmMvbGliL21vZHVsZXMvd2FpdC93YWl0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9pbmRpY2F0b3JzL3NyYy9saWIvbW9kdWxlcy93YWl0L3dhaXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULEtBQUssRUFHTCxRQUFRLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEQsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7QUFFL0QsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBUWYsTUFBTSxPQUFPLGdCQUFnQjtJQWdHM0IsWUFDRSxLQUFpQixFQUNqQixjQUFxQyxFQUN6QixXQUFtQzs7UUFqQjFDLG9CQUFlLEdBQUcsSUFBSSxlQUFlLENBQVMsRUFBRSxDQUFDLENBQUM7UUFFekQsMENBQW1CO1FBQ25CLG1EQUF1QztRQUN2QyxnREFBcUM7UUFDckMsMENBQWlCLElBQUksT0FBTyxFQUFRLEVBQUM7UUFFckMsdUNBQVk7UUFDWixvREFBcUM7UUFFckMsZ0RBQWtDO1FBQ2xDLG1EQUFxQztRQUNyQywrQ0FBaUM7UUFPL0IsdUJBQUEsSUFBSSwyQkFBVSxLQUFLLE1BQUEsQ0FBQztRQUNwQix1QkFBQSxJQUFJLG9DQUFtQixjQUFjLE1BQUEsQ0FBQztRQUN0Qyx1QkFBQSxJQUFJLGlDQUFnQixXQUFXLE1BQUEsQ0FBQztRQUVoQyx1QkFBQSxJ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QUMsV0FBVyxDQUFDO1FBQ3ZELE1BQU0sR0FBRyxHQUFHLGFBQWEsSUFBSSxHQUFHLFFBQVEsZ0JBQWdCLENBQUM7UUFDekQsdUJBQUEsSUFBSSxxQ0FBYTthQUNkLFNBQVMsQ0FBQyxHQUFHLENBQUM7YUFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyx1QkFBQSxJQUFJLHVDQUFlLENBQUMsQ0FBQzthQUM3QyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNuQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztLQUNOO0FBQ0gsQ0FBQzs4R0F2SVUsZ0JBQWdCO2tHQUFoQixnQkFBZ0IseUpBRmhCLENBQUMscUJBQXFCLENBQUMsMEJDckJwQyw4aEJBa0JBOzRGREthLGdCQUFnQjtrQkFONUIsU0FBUzsrQkFDRSxVQUFVLGFBR1QsQ0FBQyxxQkFBcUIsQ0FBQzs7MEJBcUcvQixRQUFROzRDQXpGQSxTQUFTO3NCQURuQixLQUFLO2dCQVVLLFNBQVM7c0JBRG5CLEtBQUs7Z0JBaUNLLFVBQVU7c0JBRHBCLEtBQUs7Z0JBdUJLLGFBQWE7c0JBRHZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5TGliUmVzb3VyY2VzU2VydmljZSB9IGZyb20gJ0Bza3l1eC9pMThuJztcblxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreVdhaXRBZGFwdGVyU2VydmljZSB9IGZyb20gJy4vd2FpdC1hZGFwdGVyLnNlcnZpY2UnO1xuXG5sZXQgbmV4dElkID0gMDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LXdhaXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vd2FpdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3dhaXQuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbU2t5V2FpdEFkYXB0ZXJTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5V2FpdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgLyoqXG4gICAqIFNwZWNpZmllcyBhbiBBUklBIGxhYmVsIGZvciB0aGUgd2FpdCBpY29uIHdoaWxlIGFuIGVsZW1lbnQgb3IgcGFnZSBsb2Fkcy5cbiAgICogVGhpcyBzZXRzIHRoZSBpY29uJ3MgYGFyaWEtbGFiZWxgIGF0dHJpYnV0ZVxuICAgKiBbdG8gc3VwcG9ydCBhY2Nlc3NpYmlsaXR5XShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2xlYXJuL2FjY2Vzc2liaWxpdHkpLlxuICAgKiBUaGUgZGVmYXVsdCB2YWx1ZSB2YXJpZXMgYmFzZWQgb24gd2hldGhlciB0aGUgd2FpdCBpcyBmb3IgYW4gZWxlbWVudCBvciBhIHBhZ2VcbiAgICogYW5kIHdoZXRoZXIgaXQgaXMgYSBibG9ja2luZyB3YWl0LiBGb3IgZXhhbXBsZSwgdGhlIGRlZmF1bHQgZm9yIGEgcGFnZS1ibG9ja2luZ1xuICAgKiB3YWl0IGlzIFwiUGFnZSBsb2FkaW5nLiBQbGVhc2Ugd2FpdC5cIlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBhcmlhTGFiZWwodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI2N1c3RvbUFyaWFMYWJlbCA9IHZhbHVlO1xuICAgIHRoaXMuI3B1Ymxpc2hBcmlhTGFiZWwoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGVuIHNldCB0byBgdHJ1ZWAsIHdhaXQgaW5kaWNhdGlvbiBhcHBlYXJzIG9uIHRoZSBwYXJlbnQgZWxlbWVudCBvZiB0aGUgYHNreS13YWl0YCBjb21wb25lbnQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGlzV2FpdGluZyh2YWx1ZTogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgIGlmICghdGhpcy5pc0Z1bGxQYWdlKSB7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgdGhpcy4jYWRhcHRlclNlcnZpY2Uuc2V0V2FpdEJvdW5kcyh0aGlzLiNlbFJlZik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLiNhZGFwdGVyU2VydmljZS5yZW1vdmVXYWl0Qm91bmRzKHRoaXMuI2VsUmVmKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLiNhZGFwdGVyU2VydmljZS5zZXRCdXN5U3RhdGUoXG4gICAgICB0aGlzLiNlbFJlZixcbiAgICAgICEhdGhpcy5pc0Z1bGxQYWdlLFxuICAgICAgISF2YWx1ZSxcbiAgICAgICEhdGhpcy5pc05vbkJsb2NraW5nLFxuICAgICAgdGhpcy4jaWRcbiAgICApO1xuXG4gICAgdGhpcy4jX2lzV2FpdGluZyA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCBpc1dhaXRpbmcoKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI19pc1dhaXRpbmc7XG4gIH1cblxuICAvKipcbiAgICogV2hlbiBzZXQgdG8gYHRydWVgLCB3YWl0IGluZGljYXRpb24gYXBwZWFycyBvbiB0aGUgcGFnZSBsZXZlbCBpbnN0ZWFkIG9mIHRoZVxuICAgKiBwYXJlbnQgZWxlbWVudCBsZXZlbC4gV2UgcmVjb21tZW5kIHRoYXQgeW91IHVzZSB0aGUgYGJlZ2luQmxvY2tpbmdQYWdlV2FpdGAgb3JcbiAgICogYGJlZ2luTm9uQmxvY2tpbmdQYWdlV2FpdGAgZnVuY3Rpb25zIG9mIHRoZSBgU2t5V2FpdFNlcnZpY2VgIGluc3RlYWQgb2Ygc2V0dGluZyB0aGlzXG4gICAqIG9uIHRoZSBjb21wb25lbnQgbGV2ZWwuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGlzRnVsbFBhZ2UodmFsdWU6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZTogdW50ZXN0YWJsZSAqL1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy4jYWRhcHRlclNlcnZpY2UucmVtb3ZlV2FpdEJvdW5kcyh0aGlzLiNlbFJlZik7XG4gICAgfSBlbHNlIGlmICh0aGlzLmlzV2FpdGluZykge1xuICAgICAgdGhpcy4jYWRhcHRlclNlcnZpY2Uuc2V0V2FpdEJvdW5kcyh0aGlzLiNlbFJlZik7XG4gICAgfVxuXG4gICAgdGhpcy4jX2lzRnVsbFBhZ2UgPSB2YWx1ZTtcbiAgICB0aGlzLiNwdWJsaXNoQXJpYUxhYmVsKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzRnVsbFBhZ2UoKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI19pc0Z1bGxQYWdlO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZW4gc2V0IHRvIGB0cnVlYCwgd2FpdCBpbmRpY2F0aW9uIGFwcGVhcnMgaW4gdGhlIGJvdHRvbSBsZWZ0IGNvcm5lciBvZiB0aGUgZWxlbWVudFxuICAgKiBpbnN0ZWFkIG9mIGhpZGluZyB0aGUgZW50aXJlIHBhcmVudCBlbGVtZW50LlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBpc05vbkJsb2NraW5nKHZhbHVlOiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX2lzTm9uQmxvY2tpbmcgPSB2YWx1ZTtcbiAgICB0aGlzLiNwdWJsaXNoQXJpYUxhYmVsKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzTm9uQmxvY2tpbmcoKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI19pc05vbkJsb2NraW5nO1xuICB9XG5cbiAgcHVibGljIGFyaWFMYWJlbFN0cmVhbSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG5cbiAgI2VsUmVmOiBFbGVtZW50UmVmO1xuICAjYWRhcHRlclNlcnZpY2U6IFNreVdhaXRBZGFwdGVyU2VydmljZTtcbiAgI3Jlc291cmNlU3ZjOiBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlO1xuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgI2lkOiBzdHJpbmc7XG4gICNjdXN0b21BcmlhTGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAjX2lzRnVsbFBhZ2U6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICNfaXNOb25CbG9ja2luZzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgI19pc1dhaXRpbmc6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgZWxSZWY6IEVsZW1lbnRSZWYsXG4gICAgYWRhcHRlclNlcnZpY2U6IFNreVdhaXRBZGFwdGVyU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSByZXNvdXJjZVN2YzogU2t5TGliUmVzb3VyY2VzU2VydmljZVxuICApIHtcbiAgICB0aGlzLiNlbFJlZiA9IGVsUmVmO1xuICAgIHRoaXMuI2FkYXB0ZXJTZXJ2aWNlID0gYWRhcHRlclNlcnZpY2U7XG4gICAgdGhpcy4jcmVzb3VyY2VTdmMgPSByZXNvdXJjZVN2YztcblxuICAgIHRoaXMuI2lkID0gYHNreS13YWl0LSR7KytuZXh0SWR9YDtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLiNwdWJsaXNoQXJpYUxhYmVsKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgI3B1Ymxpc2hBcmlhTGFiZWwoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuI2N1c3RvbUFyaWFMYWJlbCkge1xuICAgICAgdGhpcy5hcmlhTGFiZWxTdHJlYW0ubmV4dCh0aGlzLiNjdXN0b21BcmlhTGFiZWwpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHRoaXMuI3Jlc291cmNlU3ZjKSB7XG4gICAgICBjb25zdCB0eXBlID0gdGhpcy5pc0Z1bGxQYWdlID8gJ19wYWdlJyA6ICcnO1xuICAgICAgY29uc3QgYmxvY2tpbmcgPSB0aGlzLmlzTm9uQmxvY2tpbmcgPyAnJyA6ICdfYmxvY2tpbmcnO1xuICAgICAgY29uc3Qga2V5ID0gYHNreXV4X3dhaXQke3R5cGV9JHtibG9ja2luZ31fYXJpYV9hbHRfdGV4dGA7XG4gICAgICB0aGlzLiNyZXNvdXJjZVN2Y1xuICAgICAgICAuZ2V0U3RyaW5nKGtleSlcbiAgICAgICAgLnBpcGUodGFrZSgxKSwgdGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgIHRoaXMuYXJpYUxhYmVsU3RyZWFtLm5leHQodmFsdWUpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJza3ktd2FpdC1jb250YWluZXJcIj5cbiAgPGRpdlxuICAgICpuZ0lmPVwiaXNXYWl0aW5nXCJcbiAgICBjbGFzcz1cInNreS13YWl0LW1hc2tcIlxuICAgIHJvbGU9XCJwcm9ncmVzc2JhclwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxTdHJlYW0gfCBhc3luY1wiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ3NreS13YWl0LW1hc2stbG9hZGluZy1maXhlZCc6IGlzRnVsbFBhZ2UsXG4gICAgICAnc2t5LXdhaXQtbWFzay1sb2FkaW5nLW5vbi1ibG9ja2luZyc6IGlzTm9uQmxvY2tpbmcsXG4gICAgICAnc2t5LXdhaXQtbWFzay1sb2FkaW5nLWJsb2NraW5nJzogIWlzTm9uQmxvY2tpbmdcbiAgICB9XCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJza3ktd2FpdFwiPlxuICAgICAgPGRpdiBjbGFzcz1cInNreS13YWl0LWRvdWJsZS1ib3VuY2UxXCI+PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwic2t5LXdhaXQtZG91YmxlLWJvdW5jZTJcIj48L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FpdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvaW5kaWNhdG9ycy9zcmMvbGliL21vZHVsZXMvd2FpdC93YWl0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9pbmRpY2F0b3JzL3NyYy9saWIvbW9kdWxlcy93YWl0L3dhaXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULEtBQUssRUFHTCxRQUFRLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEQsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7QUFFL0QsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBUWYsTUFBTSxPQUFPLGdCQUFnQjtJQWdHM0IsWUFDRSxLQUFpQixFQUNqQixjQUFxQyxFQUN6QixXQUFtQzs7UUFqQjFDLG9CQUFlLEdBQUcsSUFBSSxlQUFlLENBQVMsRUFBRSxDQUFDLENBQUM7UUFFekQsMENBQW1CO1FBQ25CLG1EQUF1QztRQUN2QyxnREFBcUM7UUFDckMsMENBQWlCLElBQUksT0FBTyxFQUFRLEVBQUM7UUFFckMsdUNBQVk7UUFDWixvREFBcUM7UUFFckMsZ0RBQWtDO1FBQ2xDLG1EQUFxQztRQUNyQywrQ0FBaUM7UUFPL0IsdUJBQUEsSUFBSSwyQkFBVSxLQUFLLE1BQUEsQ0FBQztRQUNwQix1QkFBQSxJQUFJLG9DQUFtQixjQUFjLE1BQUEsQ0FBQztRQUN0Qyx1QkFBQSxJQUFJLGlDQUFnQixXQUFXLE1BQUEsQ0FBQztRQUVoQyx1QkFBQSxJ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QUMsV0FBVyxDQUFDO1FBQ3ZELE1BQU0sR0FBRyxHQUFHLGFBQWEsSUFBSSxHQUFHLFFBQVEsZ0JBQWdCLENBQUM7UUFDekQsdUJBQUEsSUFBSSxxQ0FBYTthQUNkLFNBQVMsQ0FBQyxHQUFHLENBQUM7YUFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyx1QkFBQSxJQUFJLHVDQUFlLENBQUMsQ0FBQzthQUM3QyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNuQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztLQUNOO0FBQ0gsQ0FBQzs4R0F2SVUsZ0JBQWdCO2tHQUFoQixnQkFBZ0IseUpBRmhCLENBQUMscUJBQXFCLENBQUMsMEJDckJwQyw4b0JBd0JBOzRGRERhLGdCQUFnQjtrQkFONUIsU0FBUzsrQkFDRSxVQUFVLGFBR1QsQ0FBQyxxQkFBcUIsQ0FBQzs7MEJBcUcvQixRQUFROzRDQXpGQSxTQUFTO3NCQURuQixLQUFLO2dCQVVLLFNBQVM7c0JBRG5CLEtBQUs7Z0JBaUNLLFVBQVU7c0JBRHBCLEtBQUs7Z0JBdUJLLGFBQWE7c0JBRHZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5TGliUmVzb3VyY2VzU2VydmljZSB9IGZyb20gJ0Bza3l1eC9pMThuJztcblxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreVdhaXRBZGFwdGVyU2VydmljZSB9IGZyb20gJy4vd2FpdC1hZGFwdGVyLnNlcnZpY2UnO1xuXG5sZXQgbmV4dElkID0gMDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LXdhaXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vd2FpdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3dhaXQuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbU2t5V2FpdEFkYXB0ZXJTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5V2FpdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgLyoqXG4gICAqIFNwZWNpZmllcyBhbiBBUklBIGxhYmVsIGZvciB0aGUgd2FpdCBpY29uIHdoaWxlIGFuIGVsZW1lbnQgb3IgcGFnZSBsb2Fkcy5cbiAgICogVGhpcyBzZXRzIHRoZSBpY29uJ3MgYGFyaWEtbGFiZWxgIGF0dHJpYnV0ZVxuICAgKiBbdG8gc3VwcG9ydCBhY2Nlc3NpYmlsaXR5XShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2xlYXJuL2FjY2Vzc2liaWxpdHkpLlxuICAgKiBUaGUgZGVmYXVsdCB2YWx1ZSB2YXJpZXMgYmFzZWQgb24gd2hldGhlciB0aGUgd2FpdCBpcyBmb3IgYW4gZWxlbWVudCBvciBhIHBhZ2VcbiAgICogYW5kIHdoZXRoZXIgaXQgaXMgYSBibG9ja2luZyB3YWl0LiBGb3IgZXhhbXBsZSwgdGhlIGRlZmF1bHQgZm9yIGEgcGFnZS1ibG9ja2luZ1xuICAgKiB3YWl0IGlzIFwiUGFnZSBsb2FkaW5nLiBQbGVhc2Ugd2FpdC5cIlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBhcmlhTGFiZWwodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI2N1c3RvbUFyaWFMYWJlbCA9IHZhbHVlO1xuICAgIHRoaXMuI3B1Ymxpc2hBcmlhTGFiZWwoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGVuIHNldCB0byBgdHJ1ZWAsIHdhaXQgaW5kaWNhdGlvbiBhcHBlYXJzIG9uIHRoZSBwYXJlbnQgZWxlbWVudCBvZiB0aGUgYHNreS13YWl0YCBjb21wb25lbnQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGlzV2FpdGluZyh2YWx1ZTogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgIGlmICghdGhpcy5pc0Z1bGxQYWdlKSB7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgdGhpcy4jYWRhcHRlclNlcnZpY2Uuc2V0V2FpdEJvdW5kcyh0aGlzLiNlbFJlZik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLiNhZGFwdGVyU2VydmljZS5yZW1vdmVXYWl0Qm91bmRzKHRoaXMuI2VsUmVmKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLiNhZGFwdGVyU2VydmljZS5zZXRCdXN5U3RhdGUoXG4gICAgICB0aGlzLiNlbFJlZixcbiAgICAgICEhdGhpcy5pc0Z1bGxQYWdlLFxuICAgICAgISF2YWx1ZSxcbiAgICAgICEhdGhpcy5pc05vbkJsb2NraW5nLFxuICAgICAgdGhpcy4jaWRcbiAgICApO1xuXG4gICAgdGhpcy4jX2lzV2FpdGluZyA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCBpc1dhaXRpbmcoKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI19pc1dhaXRpbmc7XG4gIH1cblxuICAvKipcbiAgICogV2hlbiBzZXQgdG8gYHRydWVgLCB3YWl0IGluZGljYXRpb24gYXBwZWFycyBvbiB0aGUgcGFnZSBsZXZlbCBpbnN0ZWFkIG9mIHRoZVxuICAgKiBwYXJlbnQgZWxlbWVudCBsZXZlbC4gV2UgcmVjb21tZW5kIHRoYXQgeW91IHVzZSB0aGUgYGJlZ2luQmxvY2tpbmdQYWdlV2FpdGAgb3JcbiAgICogYGJlZ2luTm9uQmxvY2tpbmdQYWdlV2FpdGAgZnVuY3Rpb25zIG9mIHRoZSBgU2t5V2FpdFNlcnZpY2VgIGluc3RlYWQgb2Ygc2V0dGluZyB0aGlzXG4gICAqIG9uIHRoZSBjb21wb25lbnQgbGV2ZWwuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGlzRnVsbFBhZ2UodmFsdWU6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZTogdW50ZXN0YWJsZSAqL1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy4jYWRhcHRlclNlcnZpY2UucmVtb3ZlV2FpdEJvdW5kcyh0aGlzLiNlbFJlZik7XG4gICAgfSBlbHNlIGlmICh0aGlzLmlzV2FpdGluZykge1xuICAgICAgdGhpcy4jYWRhcHRlclNlcnZpY2Uuc2V0V2FpdEJvdW5kcyh0aGlzLiNlbFJlZik7XG4gICAgfVxuXG4gICAgdGhpcy4jX2lzRnVsbFBhZ2UgPSB2YWx1ZTtcbiAgICB0aGlzLiNwdWJsaXNoQXJpYUxhYmVsKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzRnVsbFBhZ2UoKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI19pc0Z1bGxQYWdlO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZW4gc2V0IHRvIGB0cnVlYCwgd2FpdCBpbmRpY2F0aW9uIGFwcGVhcnMgaW4gdGhlIGJvdHRvbSBsZWZ0IGNvcm5lciBvZiB0aGUgZWxlbWVudFxuICAgKiBpbnN0ZWFkIG9mIGhpZGluZyB0aGUgZW50aXJlIHBhcmVudCBlbGVtZW50LlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBpc05vbkJsb2NraW5nKHZhbHVlOiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX2lzTm9uQmxvY2tpbmcgPSB2YWx1ZTtcbiAgICB0aGlzLiNwdWJsaXNoQXJpYUxhYmVsKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzTm9uQmxvY2tpbmcoKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI19pc05vbkJsb2NraW5nO1xuICB9XG5cbiAgcHVibGljIGFyaWFMYWJlbFN0cmVhbSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG5cbiAgI2VsUmVmOiBFbGVtZW50UmVmO1xuICAjYWRhcHRlclNlcnZpY2U6IFNreVdhaXRBZGFwdGVyU2VydmljZTtcbiAgI3Jlc291cmNlU3ZjOiBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlO1xuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgI2lkOiBzdHJpbmc7XG4gICNjdXN0b21BcmlhTGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAjX2lzRnVsbFBhZ2U6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICNfaXNOb25CbG9ja2luZzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgI19pc1dhaXRpbmc6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgZWxSZWY6IEVsZW1lbnRSZWYsXG4gICAgYWRhcHRlclNlcnZpY2U6IFNreVdhaXRBZGFwdGVyU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSByZXNvdXJjZVN2YzogU2t5TGliUmVzb3VyY2VzU2VydmljZVxuICApIHtcbiAgICB0aGlzLiNlbFJlZiA9IGVsUmVmO1xuICAgIHRoaXMuI2FkYXB0ZXJTZXJ2aWNlID0gYWRhcHRlclNlcnZpY2U7XG4gICAgdGhpcy4jcmVzb3VyY2VTdmMgPSByZXNvdXJjZVN2YztcblxuICAgIHRoaXMuI2lkID0gYHNreS13YWl0LSR7KytuZXh0SWR9YDtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLiNwdWJsaXNoQXJpYUxhYmVsKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgI3B1Ymxpc2hBcmlhTGFiZWwoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuI2N1c3RvbUFyaWFMYWJlbCkge1xuICAgICAgdGhpcy5hcmlhTGFiZWxTdHJlYW0ubmV4dCh0aGlzLiNjdXN0b21BcmlhTGFiZWwpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHRoaXMuI3Jlc291cmNlU3ZjKSB7XG4gICAgICBjb25zdCB0eXBlID0gdGhpcy5pc0Z1bGxQYWdlID8gJ19wYWdlJyA6ICcnO1xuICAgICAgY29uc3QgYmxvY2tpbmcgPSB0aGlzLmlzTm9uQmxvY2tpbmcgPyAnJyA6ICdfYmxvY2tpbmcnO1xuICAgICAgY29uc3Qga2V5ID0gYHNreXV4X3dhaXQke3R5cGV9JHtibG9ja2luZ31fYXJpYV9hbHRfdGV4dGA7XG4gICAgICB0aGlzLiNyZXNvdXJjZVN2Y1xuICAgICAgICAuZ2V0U3RyaW5nKGtleSlcbiAgICAgICAgLnBpcGUodGFrZSgxKSwgdGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgIHRoaXMuYXJpYUxhYmVsU3RyZWFtLm5leHQodmFsdWUpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJza3ktd2FpdC1jb250YWluZXJcIlxuICBbbmdDbGFzc109XCJ7XG4gICAgJ3NreS13YWl0LWZ1bGwtcGFnZSc6IGlzRnVsbFBhZ2UsXG4gICAgJ3NreS13YWl0LW5vbi1ibG9ja2luZyc6IGlzTm9uQmxvY2tpbmdcbiAgfVwiXG4+XG4gIDxkaXZcbiAgICAqbmdJZj1cImlzV2FpdGluZ1wiXG4gICAgY2xhc3M9XCJza3ktd2FpdC1tYXNrXCJcbiAgICByb2xlPVwicHJvZ3Jlc3NiYXJcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsU3RyZWFtIHwgYXN5bmNcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICdza3ktd2FpdC1tYXNrLWxvYWRpbmctZml4ZWQnOiBpc0Z1bGxQYWdlLFxuICAgICAgJ3NreS13YWl0LW1hc2stbG9hZGluZy1ub24tYmxvY2tpbmcnOiBpc05vbkJsb2NraW5nLFxuICAgICAgJ3NreS13YWl0LW1hc2stbG9hZGluZy1ibG9ja2luZyc6ICFpc05vbkJsb2NraW5nXG4gICAgfVwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwic2t5LXdhaXRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJza3ktd2FpdC1kb3VibGUtYm91bmNlMVwiPjwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInNreS13YWl0LWRvdWJsZS1ib3VuY2UyXCI+PC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -8,7 +8,9 @@ export * from './tokens/token-harness';
8
8
  export * from './tokens/token-harness-filters';
9
9
  export * from './tokens/tokens-harness';
10
10
  export * from './tokens/tokens-harness-filters';
11
+ export * from './wait/wait-harness';
12
+ export * from './wait/wait-harness-filters';
11
13
  export * from './alert-fixture';
12
14
  export * from './label-fixture';
13
15
  export * from './wait-fixture';
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9pbmRpY2F0b3JzL3Rlc3Rpbmcvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLCtCQUErQixDQUFDO0FBRTlDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxxQ0FBcUMsQ0FBQztBQUVwRCxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsK0JBQStCLENBQUM7QUFFOUMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxpQ0FBaUMsQ0FBQztBQUVoRCxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYWxlcnQvYWxlcnQtaGFybmVzcyc7XG5leHBvcnQgKiBmcm9tICcuL2FsZXJ0L2FsZXJ0LWhhcm5lc3MtZmlsdGVycyc7XG5cbmV4cG9ydCAqIGZyb20gJy4va2V5LWluZm8va2V5LWluZm8taGFybmVzcyc7XG5leHBvcnQgKiBmcm9tICcuL2tleS1pbmZvL2tleS1pbmZvLWhhcm5lc3MtZmlsdGVycyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGFiZWwvbGFiZWwtaGFybmVzcyc7XG5leHBvcnQgKiBmcm9tICcuL2xhYmVsL2xhYmVsLWhhcm5lc3MtZmlsdGVycyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vdG9rZW5zL3Rva2VuLWhhcm5lc3MnO1xuZXhwb3J0ICogZnJvbSAnLi90b2tlbnMvdG9rZW4taGFybmVzcy1maWx0ZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vdG9rZW5zL3Rva2Vucy1oYXJuZXNzJztcbmV4cG9ydCAqIGZyb20gJy4vdG9rZW5zL3Rva2Vucy1oYXJuZXNzLWZpbHRlcnMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2FsZXJ0LWZpeHR1cmUnO1xuZXhwb3J0ICogZnJvbSAnLi9sYWJlbC1maXh0dXJlJztcbmV4cG9ydCAqIGZyb20gJy4vd2FpdC1maXh0dXJlJztcbiJdfQ==
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9pbmRpY2F0b3JzL3Rlc3Rpbmcvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLCtCQUErQixDQUFDO0FBRTlDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxxQ0FBcUMsQ0FBQztBQUVwRCxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsK0JBQStCLENBQUM7QUFFOUMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxpQ0FBaUMsQ0FBQztBQUVoRCxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsNkJBQTZCLENBQUM7QUFFNUMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FsZXJ0L2FsZXJ0LWhhcm5lc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9hbGVydC9hbGVydC1oYXJuZXNzLWZpbHRlcnMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2tleS1pbmZvL2tleS1pbmZvLWhhcm5lc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9rZXktaW5mby9rZXktaW5mby1oYXJuZXNzLWZpbHRlcnMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xhYmVsL2xhYmVsLWhhcm5lc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9sYWJlbC9sYWJlbC1oYXJuZXNzLWZpbHRlcnMnO1xuXG5leHBvcnQgKiBmcm9tICcuL3Rva2Vucy90b2tlbi1oYXJuZXNzJztcbmV4cG9ydCAqIGZyb20gJy4vdG9rZW5zL3Rva2VuLWhhcm5lc3MtZmlsdGVycyc7XG5leHBvcnQgKiBmcm9tICcuL3Rva2Vucy90b2tlbnMtaGFybmVzcyc7XG5leHBvcnQgKiBmcm9tICcuL3Rva2Vucy90b2tlbnMtaGFybmVzcy1maWx0ZXJzJztcblxuZXhwb3J0ICogZnJvbSAnLi93YWl0L3dhaXQtaGFybmVzcyc7XG5leHBvcnQgKiBmcm9tICcuL3dhaXQvd2FpdC1oYXJuZXNzLWZpbHRlcnMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2FsZXJ0LWZpeHR1cmUnO1xuZXhwb3J0ICogZnJvbSAnLi9sYWJlbC1maXh0dXJlJztcbmV4cG9ydCAqIGZyb20gJy4vd2FpdC1maXh0dXJlJztcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FpdC1oYXJuZXNzLWZpbHRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvaW5kaWNhdG9ycy90ZXN0aW5nL3NyYy93YWl0L3dhaXQtaGFybmVzcy1maWx0ZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTa3lIYXJuZXNzRmlsdGVycyB9IGZyb20gJ0Bza3l1eC9jb3JlL3Rlc3RpbmcnO1xuXG4vKipcbiAqIEEgc2V0IG9mIGNyaXRlcmlhIHRoYXQgY2FuIGJlIHVzZWQgdG8gZmlsdGVyIGEgbGlzdCBvZiBTa3lBbGVydEhhcm5lc3MgaW5zdGFuY2VzLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWludGVyZmFjZVxuZXhwb3J0IGludGVyZmFjZSBTa3lXYWl0SGFybmVzc0ZpbHRlcnMgZXh0ZW5kcyBTa3lIYXJuZXNzRmlsdGVycyB7fVxuIl19
@@ -0,0 +1,56 @@
1
+ var _SkyWaitHarness_getWaitMask, _SkyWaitHarness_getWaitContainer;
2
+ import { __classPrivateFieldGet } from "tslib";
3
+ import { SkyComponentHarness } from '@skyux/core/testing';
4
+ /**
5
+ * Harness for interacting with an wait component in tests.
6
+ */
7
+ export class SkyWaitHarness extends SkyComponentHarness {
8
+ constructor() {
9
+ super(...arguments);
10
+ _SkyWaitHarness_getWaitMask.set(this, this.locatorForOptional('.sky-wait-mask'));
11
+ _SkyWaitHarness_getWaitContainer.set(this, this.locatorFor('.sky-wait-container'));
12
+ }
13
+ /**
14
+ * Gets a `HarnessPredicate` that can be used to search for a
15
+ * `SkyWaitHarness` that meets certain criteria.
16
+ */
17
+ static with(filters) {
18
+ return SkyWaitHarness.getDataSkyIdPredicate(filters);
19
+ }
20
+ /**
21
+ * Gets the aria label for the wait component or throws an error if not waiting.
22
+ */
23
+ async getAriaLabel() {
24
+ const waitMask = await __classPrivateFieldGet(this, _SkyWaitHarness_getWaitMask, "f").call(this);
25
+ if (waitMask) {
26
+ return ((await waitMask.getAttribute('aria-label')) ||
27
+ /* istanbul ignore next */
28
+ '');
29
+ }
30
+ throw new Error('The wait component is not currently visible.');
31
+ }
32
+ /**
33
+ * Gets the waiting state of the wait component.
34
+ */
35
+ async isWaiting() {
36
+ return !!(await __classPrivateFieldGet(this, _SkyWaitHarness_getWaitMask, "f").call(this));
37
+ }
38
+ /**
39
+ * Gets the full page state of the wait component.
40
+ */
41
+ async isFullPage() {
42
+ return (await __classPrivateFieldGet(this, _SkyWaitHarness_getWaitContainer, "f").call(this)).hasClass('sky-wait-full-page');
43
+ }
44
+ /**
45
+ * Gets the blocking state of the wait component.
46
+ */
47
+ async isNonBlocking() {
48
+ return (await __classPrivateFieldGet(this, _SkyWaitHarness_getWaitContainer, "f").call(this)).hasClass('sky-wait-non-blocking');
49
+ }
50
+ }
51
+ _SkyWaitHarness_getWaitMask = new WeakMap(), _SkyWaitHarness_getWaitContainer = new WeakMap();
52
+ /**
53
+ * @internal
54
+ */
55
+ SkyWaitHarness.hostSelector = 'sky-wait';
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FpdC1oYXJuZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2luZGljYXRvcnMvdGVzdGluZy9zcmMvd2FpdC93YWl0LWhhcm5lc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUkxRDs7R0FFRztBQUNILE1BQU0sT0FBTyxjQUFlLFNBQVEsbUJBQW1CO0lBQXZEOztRQU1FLHNDQUFlLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFDO1FBQ3pELDJDQUFvQixJQUFJLENBQUMsVUFBVSxDQUFDLHFCQUFxQixDQUFDLEVBQUM7SUErQzdELENBQUM7SUE3Q0M7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLElBQUksQ0FDaEIsT0FBOEI7UUFFOUIsT0FBTyxjQUFjLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLFlBQVk7UUFDdkIsTUFBTSxRQUFRLEdBQUcsTUFBTSx1QkFBQSxJQUFJLG1DQUFhLE1BQWpCLElBQUksQ0FBZSxDQUFDO1FBQzNDLElBQUksUUFBUSxFQUFFO1lBQ1osT0FBTyxDQUNMLENBQUMsTUFBTSxRQUFRLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUMzQywwQkFBMEI7Z0JBQzFCLEVBQUUsQ0FDSCxDQUFDO1NBQ0g7UUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLDhDQUE4QyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLFNBQVM7UUFDcEIsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLHVCQUFBLElBQUksbUNBQWEsTUFBakIsSUFBSSxDQUFlLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsVUFBVTtRQUNyQixPQUFPLENBQUMsTUFBTSx1QkFBQSxJQUFJLHdDQUFrQixNQUF0QixJQUFJLENBQW9CLENBQUMsQ0FBQyxRQUFRLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsYUFBYTtRQUN4QixPQUFPLENBQUMsTUFBTSx1QkFBQSxJQUFJLHdDQUFrQixNQUF0QixJQUFJLENBQW9CLENBQUMsQ0FBQyxRQUFRLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUM1RSxDQUFDOzs7QUFwREQ7O0dBRUc7QUFDVywyQkFBWSxHQUFHLFVBQVUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhhcm5lc3NQcmVkaWNhdGUgfSBmcm9tICdAYW5ndWxhci9jZGsvdGVzdGluZyc7XG5pbXBvcnQgeyBTa3lDb21wb25lbnRIYXJuZXNzIH0gZnJvbSAnQHNreXV4L2NvcmUvdGVzdGluZyc7XG5cbmltcG9ydCB7IFNreVdhaXRIYXJuZXNzRmlsdGVycyB9IGZyb20gJy4vd2FpdC1oYXJuZXNzLWZpbHRlcnMnO1xuXG4vKipcbiAqIEhhcm5lc3MgZm9yIGludGVyYWN0aW5nIHdpdGggYW4gd2FpdCBjb21wb25lbnQgaW4gdGVzdHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTa3lXYWl0SGFybmVzcyBleHRlbmRzIFNreUNvbXBvbmVudEhhcm5lc3Mge1xuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGhvc3RTZWxlY3RvciA9ICdza3ktd2FpdCc7XG5cbiAgI2dldFdhaXRNYXNrID0gdGhpcy5sb2NhdG9yRm9yT3B0aW9uYWwoJy5za3ktd2FpdC1tYXNrJyk7XG4gICNnZXRXYWl0Q29udGFpbmVyID0gdGhpcy5sb2NhdG9yRm9yKCcuc2t5LXdhaXQtY29udGFpbmVyJyk7XG5cbiAgLyoqXG4gICAqIEdldHMgYSBgSGFybmVzc1ByZWRpY2F0ZWAgdGhhdCBjYW4gYmUgdXNlZCB0byBzZWFyY2ggZm9yIGFcbiAgICogYFNreVdhaXRIYXJuZXNzYCB0aGF0IG1lZXRzIGNlcnRhaW4gY3JpdGVyaWEuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHdpdGgoXG4gICAgZmlsdGVyczogU2t5V2FpdEhhcm5lc3NGaWx0ZXJzXG4gICk6IEhhcm5lc3NQcmVkaWNhdGU8U2t5V2FpdEhhcm5lc3M+IHtcbiAgICByZXR1cm4gU2t5V2FpdEhhcm5lc3MuZ2V0RGF0YVNreUlkUHJlZGljYXRlKGZpbHRlcnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGFyaWEgbGFiZWwgZm9yIHRoZSB3YWl0IGNvbXBvbmVudCBvciB0aHJvd3MgYW4gZXJyb3IgaWYgbm90IHdhaXRpbmcuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0QXJpYUxhYmVsKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3Qgd2FpdE1hc2sgPSBhd2FpdCB0aGlzLiNnZXRXYWl0TWFzaygpO1xuICAgIGlmICh3YWl0TWFzaykge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgKGF3YWl0IHdhaXRNYXNrLmdldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcpKSB8fFxuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgICAnJ1xuICAgICAgKTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgd2FpdCBjb21wb25lbnQgaXMgbm90IGN1cnJlbnRseSB2aXNpYmxlLicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHdhaXRpbmcgc3RhdGUgb2YgdGhlIHdhaXQgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGlzV2FpdGluZygpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gISEoYXdhaXQgdGhpcy4jZ2V0V2FpdE1hc2soKSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgZnVsbCBwYWdlIHN0YXRlIG9mIHRoZSB3YWl0IGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBpc0Z1bGxQYWdlKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy4jZ2V0V2FpdENvbnRhaW5lcigpKS5oYXNDbGFzcygnc2t5LXdhaXQtZnVsbC1wYWdlJyk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgYmxvY2tpbmcgc3RhdGUgb2YgdGhlIHdhaXQgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGlzTm9uQmxvY2tpbmcoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLiNnZXRXYWl0Q29udGFpbmVyKCkpLmhhc0NsYXNzKCdza3ktd2FpdC1ub24tYmxvY2tpbmcnKTtcbiAgfVxufVxuIl19