@skyux/core 10.0.0-alpha.2 → 10.0.0-alpha.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.
Files changed (65) hide show
  1. package/documentation.json +910 -876
  2. package/esm2022/lib/modules/adapter-service/adapter.module.mjs +4 -4
  3. package/esm2022/lib/modules/adapter-service/adapter.service.mjs +3 -3
  4. package/esm2022/lib/modules/affix/affix.directive.mjs +3 -3
  5. package/esm2022/lib/modules/affix/affix.module.mjs +4 -4
  6. package/esm2022/lib/modules/affix/affix.service.mjs +3 -3
  7. package/esm2022/lib/modules/dock/dock-dom-adapter.service.mjs +3 -3
  8. package/esm2022/lib/modules/dock/dock.component.mjs +3 -3
  9. package/esm2022/lib/modules/dock/dock.module.mjs +4 -4
  10. package/esm2022/lib/modules/dock/dock.service.mjs +3 -3
  11. package/esm2022/lib/modules/dynamic-component/dynamic-component.module.mjs +4 -4
  12. package/esm2022/lib/modules/dynamic-component/dynamic-component.service.mjs +6 -6
  13. package/esm2022/lib/modules/format/app-format.mjs +3 -3
  14. package/esm2022/lib/modules/id/id.directive.mjs +3 -3
  15. package/esm2022/lib/modules/id/id.module.mjs +4 -4
  16. package/esm2022/lib/modules/id/id.service.mjs +3 -3
  17. package/esm2022/lib/modules/layout-host/layout-host.service.mjs +3 -3
  18. package/esm2022/lib/modules/live-announcer/live-announcer.service.mjs +3 -3
  19. package/esm2022/lib/modules/log/log.module.mjs +4 -4
  20. package/esm2022/lib/modules/log/log.service.mjs +3 -3
  21. package/esm2022/lib/modules/media-query/media-query.module.mjs +4 -4
  22. package/esm2022/lib/modules/media-query/media-query.service.mjs +3 -3
  23. package/esm2022/lib/modules/mutation/mutation-observer-service.mjs +3 -3
  24. package/esm2022/lib/modules/numeric/numeric.module.mjs +4 -4
  25. package/esm2022/lib/modules/numeric/numeric.pipe.mjs +3 -3
  26. package/esm2022/lib/modules/numeric/numeric.service.mjs +3 -3
  27. package/esm2022/lib/modules/overlay/overlay-adapter.service.mjs +35 -5
  28. package/esm2022/lib/modules/overlay/overlay-config.mjs +1 -1
  29. package/esm2022/lib/modules/overlay/overlay.component.mjs +15 -4
  30. package/esm2022/lib/modules/overlay/overlay.module.mjs +4 -4
  31. package/esm2022/lib/modules/overlay/overlay.service.mjs +6 -6
  32. package/esm2022/lib/modules/percent-pipe/percent-pipe.module.mjs +4 -4
  33. package/esm2022/lib/modules/percent-pipe/percent.pipe.mjs +3 -3
  34. package/esm2022/lib/modules/resize-observer/resize-observer-media-query.service.mjs +3 -3
  35. package/esm2022/lib/modules/resize-observer/resize-observer.service.mjs +3 -3
  36. package/esm2022/lib/modules/screen-reader-label/screen-reader-label.directive.mjs +3 -3
  37. package/esm2022/lib/modules/scrollable-host/scrollable-host.service.mjs +3 -3
  38. package/esm2022/lib/modules/shared/sky-core-resources.module.mjs +4 -4
  39. package/esm2022/lib/modules/title/title.service.mjs +3 -3
  40. package/esm2022/lib/modules/trim/trim.directive.mjs +3 -3
  41. package/esm2022/lib/modules/trim/trim.module.mjs +4 -4
  42. package/esm2022/lib/modules/ui-config/ui-config.service.mjs +3 -3
  43. package/esm2022/lib/modules/viewkeeper/viewkeeper-host-options.mjs +3 -3
  44. package/esm2022/lib/modules/viewkeeper/viewkeeper.directive.mjs +3 -3
  45. package/esm2022/lib/modules/viewkeeper/viewkeeper.module.mjs +4 -4
  46. package/esm2022/lib/modules/viewkeeper/viewkeeper.service.mjs +3 -3
  47. package/esm2022/lib/modules/window/window-ref.mjs +3 -3
  48. package/esm2022/testing/core-testing.module.mjs +4 -4
  49. package/esm2022/testing/mock-media-query.service.mjs +3 -3
  50. package/esm2022/testing/mock-ui-config.service.mjs +3 -3
  51. package/esm2022/testing/overlay/overlay-harness.mjs +4 -27
  52. package/esm2022/testing/public-api.mjs +2 -1
  53. package/esm2022/testing/shared/component-harness.mjs +1 -1
  54. package/esm2022/testing/shared/queryable-component-harness.mjs +43 -0
  55. package/esm2022/version.mjs +1 -1
  56. package/fesm2022/skyux-core-testing.mjs +55 -37
  57. package/fesm2022/skyux-core-testing.mjs.map +1 -1
  58. package/fesm2022/skyux-core.mjs +195 -155
  59. package/fesm2022/skyux-core.mjs.map +1 -1
  60. package/lib/modules/overlay/overlay-adapter.service.d.ts +3 -1
  61. package/lib/modules/overlay/overlay-config.d.ts +5 -0
  62. package/package.json +7 -7
  63. package/testing/overlay/overlay-harness.d.ts +3 -18
  64. package/testing/public-api.d.ts +1 -0
  65. package/testing/shared/queryable-component-harness.d.ts +31 -0
@@ -1,9 +1,10 @@
1
- import { ComponentHarness, HarnessPredicate, } from '@angular/cdk/testing';
1
+ import { HarnessPredicate } from '@angular/cdk/testing';
2
+ import { SkyQueryableComponentHarness } from '../shared/queryable-component-harness';
2
3
  /**
3
4
  * Harness for interacting with an overlay component in tests.
4
5
  * @internal
5
6
  */
6
- export class SkyOverlayHarness extends ComponentHarness {
7
+ export class SkyOverlayHarness extends SkyQueryableComponentHarness {
7
8
  /**
8
9
  * @internal
9
10
  */
@@ -15,29 +16,5 @@ export class SkyOverlayHarness extends ComponentHarness {
15
16
  static with(filters) {
16
17
  return new HarnessPredicate(SkyOverlayHarness, filters);
17
18
  }
18
- /**
19
- * Returns a child harness.
20
- */
21
- async queryHarness(harness) {
22
- return this.locatorForOptional(harness)();
23
- }
24
- /**
25
- * Returns child harnesses.
26
- */
27
- async queryHarnesses(harness) {
28
- return this.locatorForAll(harness)();
29
- }
30
- /**
31
- * Returns a child test element.
32
- */
33
- async querySelector(selector) {
34
- return this.locatorForOptional(selector)();
35
- }
36
- /**
37
- * Returns child test elements.
38
- */
39
- async querySelectorAll(selector) {
40
- return this.locatorForAll(selector)();
41
- }
42
19
  }
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1oYXJuZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvcmUvdGVzdGluZy9zcmMvb3ZlcmxheS9vdmVybGF5LWhhcm5lc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixnQkFBZ0IsR0FHakIsTUFBTSxzQkFBc0IsQ0FBQztBQUk5Qjs7O0dBR0c7QUFDSCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsZ0JBQWdCO0lBQ3JEOztPQUVHO2FBQ1csaUJBQVksR0FBRyxhQUFhLENBQUM7SUFFM0M7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLElBQUksQ0FDaEIsT0FBaUM7UUFFakMsT0FBTyxJQUFJLGdCQUFnQixDQUFDLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxZQUFZLENBQ3ZCLE9BQXdCO1FBRXhCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLGNBQWMsQ0FDekIsT0FBd0I7UUFFeEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLGFBQWEsQ0FBQyxRQUFnQjtRQUN6QyxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFnQjtRQUM1QyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztJQUN4QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50SGFybmVzcyxcbiAgSGFybmVzc1ByZWRpY2F0ZSxcbiAgSGFybmVzc1F1ZXJ5LFxuICBUZXN0RWxlbWVudCxcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Rlc3RpbmcnO1xuXG5pbXBvcnQgeyBTa3lPdmVybGF5SGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL292ZXJsYXktaGFybmVzcy1maWx0ZXJzJztcblxuLyoqXG4gKiBIYXJuZXNzIGZvciBpbnRlcmFjdGluZyB3aXRoIGFuIG92ZXJsYXkgY29tcG9uZW50IGluIHRlc3RzLlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjbGFzcyBTa3lPdmVybGF5SGFybmVzcyBleHRlbmRzIENvbXBvbmVudEhhcm5lc3Mge1xuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGhvc3RTZWxlY3RvciA9ICdza3ktb3ZlcmxheSc7XG5cbiAgLyoqXG4gICAqIEdldHMgYSBgSGFybmVzc1ByZWRpY2F0ZWAgdGhhdCBjYW4gYmUgdXNlZCB0byBzZWFyY2ggZm9yIGFcbiAgICogYFNreU92ZXJsYXlIYXJuZXNzYCB0aGF0IG1lZXRzIGNlcnRhaW4gY3JpdGVyaWEuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHdpdGgoXG4gICAgZmlsdGVyczogU2t5T3ZlcmxheUhhcm5lc3NGaWx0ZXJzLFxuICApOiBIYXJuZXNzUHJlZGljYXRlPFNreU92ZXJsYXlIYXJuZXNzPiB7XG4gICAgcmV0dXJuIG5ldyBIYXJuZXNzUHJlZGljYXRlKFNreU92ZXJsYXlIYXJuZXNzLCBmaWx0ZXJzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgY2hpbGQgaGFybmVzcy5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBxdWVyeUhhcm5lc3M8VCBleHRlbmRzIENvbXBvbmVudEhhcm5lc3M+KFxuICAgIGhhcm5lc3M6IEhhcm5lc3NRdWVyeTxUPixcbiAgKTogUHJvbWlzZTxUIHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLmxvY2F0b3JGb3JPcHRpb25hbChoYXJuZXNzKSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgY2hpbGQgaGFybmVzc2VzLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHF1ZXJ5SGFybmVzc2VzPFQgZXh0ZW5kcyBDb21wb25lbnRIYXJuZXNzPihcbiAgICBoYXJuZXNzOiBIYXJuZXNzUXVlcnk8VD4sXG4gICk6IFByb21pc2U8VFtdPiB7XG4gICAgcmV0dXJuIHRoaXMubG9jYXRvckZvckFsbChoYXJuZXNzKSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBjaGlsZCB0ZXN0IGVsZW1lbnQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcXVlcnlTZWxlY3RvcihzZWxlY3Rvcjogc3RyaW5nKTogUHJvbWlzZTxUZXN0RWxlbWVudCB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy5sb2NhdG9yRm9yT3B0aW9uYWwoc2VsZWN0b3IpKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBjaGlsZCB0ZXN0IGVsZW1lbnRzLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3I6IHN0cmluZyk6IFByb21pc2U8VGVzdEVsZW1lbnRbXT4ge1xuICAgIHJldHVybiB0aGlzLmxvY2F0b3JGb3JBbGwoc2VsZWN0b3IpKCk7XG4gIH1cbn1cbiJdfQ==
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1oYXJuZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvcmUvdGVzdGluZy9zcmMvb3ZlcmxheS9vdmVybGF5LWhhcm5lc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFeEQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFJckY7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLGlCQUFrQixTQUFRLDRCQUE0QjtJQUNqRTs7T0FFRzthQUNXLGlCQUFZLEdBQUcsYUFBYSxDQUFDO0lBRTNDOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxJQUFJLENBQ2hCLE9BQWlDO1FBRWpDLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMxRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSGFybmVzc1ByZWRpY2F0ZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXN0aW5nJztcblxuaW1wb3J0IHsgU2t5UXVlcnlhYmxlQ29tcG9uZW50SGFybmVzcyB9IGZyb20gJy4uL3NoYXJlZC9xdWVyeWFibGUtY29tcG9uZW50LWhhcm5lc3MnO1xuXG5pbXBvcnQgeyBTa3lPdmVybGF5SGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL292ZXJsYXktaGFybmVzcy1maWx0ZXJzJztcblxuLyoqXG4gKiBIYXJuZXNzIGZvciBpbnRlcmFjdGluZyB3aXRoIGFuIG92ZXJsYXkgY29tcG9uZW50IGluIHRlc3RzLlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjbGFzcyBTa3lPdmVybGF5SGFybmVzcyBleHRlbmRzIFNreVF1ZXJ5YWJsZUNvbXBvbmVudEhhcm5lc3Mge1xuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGhvc3RTZWxlY3RvciA9ICdza3ktb3ZlcmxheSc7XG5cbiAgLyoqXG4gICAqIEdldHMgYSBgSGFybmVzc1ByZWRpY2F0ZWAgdGhhdCBjYW4gYmUgdXNlZCB0byBzZWFyY2ggZm9yIGFcbiAgICogYFNreU92ZXJsYXlIYXJuZXNzYCB0aGF0IG1lZXRzIGNlcnRhaW4gY3JpdGVyaWEuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHdpdGgoXG4gICAgZmlsdGVyczogU2t5T3ZlcmxheUhhcm5lc3NGaWx0ZXJzLFxuICApOiBIYXJuZXNzUHJlZGljYXRlPFNreU92ZXJsYXlIYXJuZXNzPiB7XG4gICAgcmV0dXJuIG5ldyBIYXJuZXNzUHJlZGljYXRlKFNreU92ZXJsYXlIYXJuZXNzLCBmaWx0ZXJzKTtcbiAgfVxufVxuIl19
@@ -4,4 +4,5 @@ export { MockSkyUIConfigService } from './mock-ui-config.service';
4
4
  export { SkyOverlayHarness } from './overlay/overlay-harness';
5
5
  export { mockResizeObserver, mockResizeObserverEntry, mockResizeObserverHandle, } from './resize-observer-mock';
6
6
  export { SkyComponentHarness } from './shared/component-harness';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb3JlL3Rlc3Rpbmcvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFOUQsT0FBTyxFQUNMLGtCQUFrQixFQUNsQix1QkFBdUIsRUFDdkIsd0JBQXdCLEdBQ3pCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBTa3lDb3JlVGVzdGluZ01vZHVsZSB9IGZyb20gJy4vY29yZS10ZXN0aW5nLm1vZHVsZSc7XG5leHBvcnQgeyBNb2NrU2t5TWVkaWFRdWVyeVNlcnZpY2UgfSBmcm9tICcuL21vY2stbWVkaWEtcXVlcnkuc2VydmljZSc7XG5leHBvcnQgeyBNb2NrU2t5VUlDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9tb2NrLXVpLWNvbmZpZy5zZXJ2aWNlJztcbmV4cG9ydCB7IFNreU92ZXJsYXlIYXJuZXNzIH0gZnJvbSAnLi9vdmVybGF5L292ZXJsYXktaGFybmVzcyc7XG5leHBvcnQgeyBTa3lPdmVybGF5SGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL292ZXJsYXkvb3ZlcmxheS1oYXJuZXNzLWZpbHRlcnMnO1xuZXhwb3J0IHtcbiAgbW9ja1Jlc2l6ZU9ic2VydmVyLFxuICBtb2NrUmVzaXplT2JzZXJ2ZXJFbnRyeSxcbiAgbW9ja1Jlc2l6ZU9ic2VydmVySGFuZGxlLFxufSBmcm9tICcuL3Jlc2l6ZS1vYnNlcnZlci1tb2NrJztcbmV4cG9ydCB7IFNreUNvbXBvbmVudEhhcm5lc3MgfSBmcm9tICcuL3NoYXJlZC9jb21wb25lbnQtaGFybmVzcyc7XG5leHBvcnQgeyBTa3lIYXJuZXNzRmlsdGVycyB9IGZyb20gJy4vc2hhcmVkL2hhcm5lc3MtZmlsdGVycyc7XG4iXX0=
7
+ export { SkyQueryableComponentHarness } from './shared/queryable-component-harness';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb3JlL3Rlc3Rpbmcvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFOUQsT0FBTyxFQUNMLGtCQUFrQixFQUNsQix1QkFBdUIsRUFDdkIsd0JBQXdCLEdBQ3pCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFakUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sc0NBQXNDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBTa3lDb3JlVGVzdGluZ01vZHVsZSB9IGZyb20gJy4vY29yZS10ZXN0aW5nLm1vZHVsZSc7XG5leHBvcnQgeyBNb2NrU2t5TWVkaWFRdWVyeVNlcnZpY2UgfSBmcm9tICcuL21vY2stbWVkaWEtcXVlcnkuc2VydmljZSc7XG5leHBvcnQgeyBNb2NrU2t5VUlDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9tb2NrLXVpLWNvbmZpZy5zZXJ2aWNlJztcbmV4cG9ydCB7IFNreU92ZXJsYXlIYXJuZXNzIH0gZnJvbSAnLi9vdmVybGF5L292ZXJsYXktaGFybmVzcyc7XG5leHBvcnQgeyBTa3lPdmVybGF5SGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL292ZXJsYXkvb3ZlcmxheS1oYXJuZXNzLWZpbHRlcnMnO1xuZXhwb3J0IHtcbiAgbW9ja1Jlc2l6ZU9ic2VydmVyLFxuICBtb2NrUmVzaXplT2JzZXJ2ZXJFbnRyeSxcbiAgbW9ja1Jlc2l6ZU9ic2VydmVySGFuZGxlLFxufSBmcm9tICcuL3Jlc2l6ZS1vYnNlcnZlci1tb2NrJztcbmV4cG9ydCB7IFNreUNvbXBvbmVudEhhcm5lc3MgfSBmcm9tICcuL3NoYXJlZC9jb21wb25lbnQtaGFybmVzcyc7XG5leHBvcnQgeyBTa3lIYXJuZXNzRmlsdGVycyB9IGZyb20gJy4vc2hhcmVkL2hhcm5lc3MtZmlsdGVycyc7XG5leHBvcnQgeyBTa3lRdWVyeWFibGVDb21wb25lbnRIYXJuZXNzIH0gZnJvbSAnLi9zaGFyZWQvcXVlcnlhYmxlLWNvbXBvbmVudC1oYXJuZXNzJztcbiJdfQ==
@@ -10,4 +10,4 @@ export class SkyComponentHarness extends ComponentHarness {
10
10
  return (await this.host()).getAttribute('data-sky-id');
11
11
  }
12
12
  }
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LWhhcm5lc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS90ZXN0aW5nL3NyYy9zaGFyZWQvY29tcG9uZW50LWhhcm5lc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGdCQUFnQixFQUVoQixnQkFBZ0IsR0FDakIsTUFBTSxzQkFBc0IsQ0FBQztBQUk5Qjs7R0FFRztBQUNILE1BQU0sT0FBZ0IsbUJBQW9CLFNBQVEsZ0JBQWdCO0lBQ3RELE1BQU0sQ0FBQyxxQkFBcUIsQ0FFcEMsT0FBMEI7UUFFMUIsT0FBTyxJQUFJLGdCQUFnQixDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQ2xELFdBQVcsRUFDWCxPQUFPLENBQUMsU0FBUyxFQUNqQixDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUNoQixnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUM1RCxDQUFDO0lBQ0osQ0FBQztJQUVELEtBQUssQ0FBQyxTQUFTO1FBQ2IsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3pELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudEhhcm5lc3MsXG4gIENvbXBvbmVudEhhcm5lc3NDb25zdHJ1Y3RvcixcbiAgSGFybmVzc1ByZWRpY2F0ZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Rlc3RpbmcnO1xuXG5pbXBvcnQgeyBTa3lIYXJuZXNzRmlsdGVycyB9IGZyb20gJy4vaGFybmVzcy1maWx0ZXJzJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNreUNvbXBvbmVudEhhcm5lc3MgZXh0ZW5kcyBDb21wb25lbnRIYXJuZXNzIHtcbiAgcHJvdGVjdGVkIHN0YXRpYyBnZXREYXRhU2t5SWRQcmVkaWNhdGU8VCBleHRlbmRzIFNreUNvbXBvbmVudEhhcm5lc3M+KFxuICAgIHRoaXM6IENvbXBvbmVudEhhcm5lc3NDb25zdHJ1Y3RvcjxUPixcbiAgICBmaWx0ZXJzOiBTa3lIYXJuZXNzRmlsdGVycyxcbiAgKSB7XG4gICAgcmV0dXJuIG5ldyBIYXJuZXNzUHJlZGljYXRlKHRoaXMsIGZpbHRlcnMpLmFkZE9wdGlvbihcbiAgICAgICdkYXRhU2t5SWQnLFxuICAgICAgZmlsdGVycy5kYXRhU2t5SWQsXG4gICAgICAoaGFybmVzcywgdGV4dCkgPT5cbiAgICAgICAgSGFybmVzc1ByZWRpY2F0ZS5zdHJpbmdNYXRjaGVzKGhhcm5lc3MuI2dldFNreUlkKCksIHRleHQpLFxuICAgICk7XG4gIH1cblxuICBhc3luYyAjZ2V0U2t5SWQoKTogUHJvbWlzZTxzdHJpbmcgfCBudWxsPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmhvc3QoKSkuZ2V0QXR0cmlidXRlKCdkYXRhLXNreS1pZCcpO1xuICB9XG59XG4iXX0=
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LWhhcm5lc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS90ZXN0aW5nL3NyYy9zaGFyZWQvY29tcG9uZW50LWhhcm5lc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGdCQUFnQixFQUVoQixnQkFBZ0IsR0FDakIsTUFBTSxzQkFBc0IsQ0FBQztBQUk5Qjs7R0FFRztBQUNILE1BQU0sT0FBZ0IsbUJBQW9CLFNBQVEsZ0JBQWdCO0lBQ3RELE1BQU0sQ0FBQyxxQkFBcUIsQ0FFcEMsT0FBMEI7UUFFMUIsT0FBTyxJQUFJLGdCQUFnQixDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQ2xELFdBQVcsRUFDWCxPQUFPLENBQUMsU0FBUyxFQUNqQixDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUNoQixnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUM1RCxDQUFDO0lBQ0osQ0FBQztJQUVELEtBQUssQ0FBQyxTQUFTO1FBQ2IsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3pELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudEhhcm5lc3MsXG4gIENvbXBvbmVudEhhcm5lc3NDb25zdHJ1Y3RvcixcbiAgSGFybmVzc1ByZWRpY2F0ZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Rlc3RpbmcnO1xuXG5pbXBvcnQgeyBTa3lIYXJuZXNzRmlsdGVycyB9IGZyb20gJy4vaGFybmVzcy1maWx0ZXJzJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNreUNvbXBvbmVudEhhcm5lc3MgZXh0ZW5kcyBDb21wb25lbnRIYXJuZXNzIHtcbiAgcHJvdGVjdGVkIHN0YXRpYyBnZXREYXRhU2t5SWRQcmVkaWNhdGU8VCBleHRlbmRzIFNreUNvbXBvbmVudEhhcm5lc3M+KFxuICAgIHRoaXM6IENvbXBvbmVudEhhcm5lc3NDb25zdHJ1Y3RvcjxUPixcbiAgICBmaWx0ZXJzOiBTa3lIYXJuZXNzRmlsdGVycyxcbiAgKTogSGFybmVzc1ByZWRpY2F0ZTxUPiB7XG4gICAgcmV0dXJuIG5ldyBIYXJuZXNzUHJlZGljYXRlKHRoaXMsIGZpbHRlcnMpLmFkZE9wdGlvbihcbiAgICAgICdkYXRhU2t5SWQnLFxuICAgICAgZmlsdGVycy5kYXRhU2t5SWQsXG4gICAgICAoaGFybmVzcywgdGV4dCkgPT5cbiAgICAgICAgSGFybmVzc1ByZWRpY2F0ZS5zdHJpbmdNYXRjaGVzKGhhcm5lc3MuI2dldFNreUlkKCksIHRleHQpLFxuICAgICk7XG4gIH1cblxuICBhc3luYyAjZ2V0U2t5SWQoKTogUHJvbWlzZTxzdHJpbmcgfCBudWxsPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmhvc3QoKSkuZ2V0QXR0cmlidXRlKCdkYXRhLXNreS1pZCcpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,43 @@
1
+ import { SkyComponentHarness } from './component-harness';
2
+ /**
3
+ * @internal
4
+ */
5
+ export class SkyQueryableComponentHarness extends SkyComponentHarness {
6
+ /**
7
+ * Returns a child harness or throws an error if not found.
8
+ */
9
+ async queryHarness(query) {
10
+ return this.locatorFor(query)();
11
+ }
12
+ /**
13
+ * Returns a child harness or null if not found.
14
+ */
15
+ async queryHarnessOrNull(query) {
16
+ return this.locatorForOptional(query)();
17
+ }
18
+ /**
19
+ * Returns child harnesses.
20
+ */
21
+ async queryHarnesses(harness) {
22
+ return this.locatorForAll(harness)();
23
+ }
24
+ /**
25
+ * Returns a child test element or throws an error if not found.
26
+ */
27
+ async querySelector(selector) {
28
+ return this.locatorFor(selector)();
29
+ }
30
+ /**
31
+ * Returns a child test element or null if not found.
32
+ */
33
+ async querySelectorOrNull(selector) {
34
+ return this.locatorForOptional(selector)();
35
+ }
36
+ /**
37
+ * Returns child test elements.
38
+ */
39
+ async querySelectorAll(selector) {
40
+ return this.locatorForAll(selector)();
41
+ }
42
+ }
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnlhYmxlLWNvbXBvbmVudC1oYXJuZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvcmUvdGVzdGluZy9zcmMvc2hhcmVkL3F1ZXJ5YWJsZS1jb21wb25lbnQtaGFybmVzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUUxRDs7R0FFRztBQUNILE1BQU0sT0FBZ0IsNEJBQTZCLFNBQVEsbUJBQW1CO0lBQzVFOztPQUVHO0lBQ0ksS0FBSyxDQUFDLFlBQVksQ0FDdkIsS0FBc0I7UUFFdEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLGtCQUFrQixDQUM3QixLQUFzQjtRQUV0QixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxjQUFjLENBQ3pCLE9BQXdCO1FBRXhCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxhQUFhLENBQUMsUUFBZ0I7UUFDekMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLG1CQUFtQixDQUM5QixRQUFnQjtRQUVoQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFnQjtRQUM1QyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnRIYXJuZXNzLFxuICBIYXJuZXNzUXVlcnksXG4gIFRlc3RFbGVtZW50LFxufSBmcm9tICdAYW5ndWxhci9jZGsvdGVzdGluZyc7XG5cbmltcG9ydCB7IFNreUNvbXBvbmVudEhhcm5lc3MgfSBmcm9tICcuL2NvbXBvbmVudC1oYXJuZXNzJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNreVF1ZXJ5YWJsZUNvbXBvbmVudEhhcm5lc3MgZXh0ZW5kcyBTa3lDb21wb25lbnRIYXJuZXNzIHtcbiAgLyoqXG4gICAqIFJldHVybnMgYSBjaGlsZCBoYXJuZXNzIG9yIHRocm93cyBhbiBlcnJvciBpZiBub3QgZm91bmQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcXVlcnlIYXJuZXNzPFQgZXh0ZW5kcyBDb21wb25lbnRIYXJuZXNzPihcbiAgICBxdWVyeTogSGFybmVzc1F1ZXJ5PFQ+LFxuICApOiBQcm9taXNlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5sb2NhdG9yRm9yKHF1ZXJ5KSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBjaGlsZCBoYXJuZXNzIG9yIG51bGwgaWYgbm90IGZvdW5kLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHF1ZXJ5SGFybmVzc09yTnVsbDxUIGV4dGVuZHMgQ29tcG9uZW50SGFybmVzcz4oXG4gICAgcXVlcnk6IEhhcm5lc3NRdWVyeTxUPixcbiAgKTogUHJvbWlzZTxUIHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLmxvY2F0b3JGb3JPcHRpb25hbChxdWVyeSkoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGNoaWxkIGhhcm5lc3Nlcy5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBxdWVyeUhhcm5lc3NlczxUIGV4dGVuZHMgQ29tcG9uZW50SGFybmVzcz4oXG4gICAgaGFybmVzczogSGFybmVzc1F1ZXJ5PFQ+LFxuICApOiBQcm9taXNlPFRbXT4ge1xuICAgIHJldHVybiB0aGlzLmxvY2F0b3JGb3JBbGwoaGFybmVzcykoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgY2hpbGQgdGVzdCBlbGVtZW50IG9yIHRocm93cyBhbiBlcnJvciBpZiBub3QgZm91bmQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcXVlcnlTZWxlY3RvcihzZWxlY3Rvcjogc3RyaW5nKTogUHJvbWlzZTxUZXN0RWxlbWVudCB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy5sb2NhdG9yRm9yKHNlbGVjdG9yKSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBjaGlsZCB0ZXN0IGVsZW1lbnQgb3IgbnVsbCBpZiBub3QgZm91bmQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcXVlcnlTZWxlY3Rvck9yTnVsbChcbiAgICBzZWxlY3Rvcjogc3RyaW5nLFxuICApOiBQcm9taXNlPFRlc3RFbGVtZW50IHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLmxvY2F0b3JGb3JPcHRpb25hbChzZWxlY3RvcikoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGNoaWxkIHRlc3QgZWxlbWVudHMuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcXVlcnlTZWxlY3RvckFsbChzZWxlY3Rvcjogc3RyaW5nKTogUHJvbWlzZTxUZXN0RWxlbWVudFtdPiB7XG4gICAgcmV0dXJuIHRoaXMubG9jYXRvckZvckFsbChzZWxlY3RvcikoKTtcbiAgfVxufVxuIl19
@@ -15,5 +15,5 @@ export class Version {
15
15
  /**
16
16
  * Represents the version of @skyux/core.
17
17
  */
18
- export const VERSION = new Version('10.0.0-alpha.2');
18
+ export const VERSION = new Version('10.0.0-alpha.4');
19
19
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb3JlL3NyYy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHdDQUF3QztBQUN4QyxtRkFBbUY7QUFFbkY7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLE9BQU87SUFLbEIsWUFBNEIsSUFBWTtRQUFaLFNBQUksR0FBSixJQUFJLENBQVE7UUFDdEMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNsRCxDQUFDO0NBQ0Y7QUFFRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gVGFrZW4gZnJvbSBBbmd1bGFyJ3MgdmVyc2lvbi50cyBmaWxlLlxuLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2Jsb2IvMTYuMi54L3BhY2thZ2VzL2NvcmUvc3JjL3ZlcnNpb24udHNcblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSB2ZXJzaW9uIG9mIGEgcGFja2FnZS5cbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY2xhc3MgVmVyc2lvbiB7XG4gIHB1YmxpYyByZWFkb25seSBtYWpvcjogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgbWlub3I6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHBhdGNoOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IGZ1bGw6IHN0cmluZykge1xuICAgIHRoaXMubWFqb3IgPSBmdWxsLnNwbGl0KCcuJylbMF07XG4gICAgdGhpcy5taW5vciA9IGZ1bGwuc3BsaXQoJy4nKVsxXTtcbiAgICB0aGlzLnBhdGNoID0gZnVsbC5zcGxpdCgnLicpLnNsaWNlKDIpLmpvaW4oJy4nKTtcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIHZlcnNpb24gb2YgQHNreXV4L2NvcmUuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gbmV3IFZlcnNpb24oJzAuMC4wLVBMQUNFSE9MREVSJyk7XG4iXX0=
@@ -39,10 +39,10 @@ class MockSkyMediaQueryService extends SkyMediaQueryService {
39
39
  /* istanbul ignore next */
40
40
  // eslint-disable-next-line @typescript-eslint/no-empty-function
41
41
  destroy() { }
42
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: MockSkyMediaQueryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
43
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: MockSkyMediaQueryService }); }
42
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: MockSkyMediaQueryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
43
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: MockSkyMediaQueryService }); }
44
44
  }
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: MockSkyMediaQueryService, decorators: [{
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: MockSkyMediaQueryService, decorators: [{
46
46
  type: Injectable
47
47
  }], ctorParameters: () => [] });
48
48
 
@@ -97,10 +97,10 @@ class MockSkyUIConfigService extends SkyUIConfigService {
97
97
  }
98
98
  }
99
99
  }
100
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: MockSkyUIConfigService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
101
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: MockSkyUIConfigService }); }
100
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: MockSkyUIConfigService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
101
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: MockSkyUIConfigService }); }
102
102
  }
103
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: MockSkyUIConfigService, decorators: [{
103
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: MockSkyUIConfigService, decorators: [{
104
104
  type: Injectable
105
105
  }] });
106
106
 
@@ -108,9 +108,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImpor
108
108
  * @internal
109
109
  */
110
110
  class SkyCoreTestingModule {
111
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: SkyCoreTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
112
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.1", ngImport: i0, type: SkyCoreTestingModule }); }
113
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: SkyCoreTestingModule, providers: [
111
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: SkyCoreTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
112
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.2.4", ngImport: i0, type: SkyCoreTestingModule }); }
113
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: SkyCoreTestingModule, providers: [
114
114
  { provide: SkyMediaQueryService, useClass: MockSkyMediaQueryService },
115
115
  {
116
116
  provide: SkyUIConfigService,
@@ -118,7 +118,7 @@ class SkyCoreTestingModule {
118
118
  },
119
119
  ] }); }
120
120
  }
121
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: SkyCoreTestingModule, decorators: [{
121
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: SkyCoreTestingModule, decorators: [{
122
122
  type: NgModule,
123
123
  args: [{
124
124
  providers: [
@@ -132,26 +132,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImpor
132
132
  }] });
133
133
 
134
134
  /**
135
- * Harness for interacting with an overlay component in tests.
136
135
  * @internal
137
136
  */
138
- class SkyOverlayHarness extends ComponentHarness {
139
- /**
140
- * @internal
141
- */
142
- static { this.hostSelector = 'sky-overlay'; }
137
+ class SkyComponentHarness extends ComponentHarness {
138
+ static getDataSkyIdPredicate(filters) {
139
+ return new HarnessPredicate(this, filters).addOption('dataSkyId', filters.dataSkyId, (harness, text) => HarnessPredicate.stringMatches(harness.#getSkyId(), text));
140
+ }
141
+ async #getSkyId() {
142
+ return (await this.host()).getAttribute('data-sky-id');
143
+ }
144
+ }
145
+
146
+ /**
147
+ * @internal
148
+ */
149
+ class SkyQueryableComponentHarness extends SkyComponentHarness {
143
150
  /**
144
- * Gets a `HarnessPredicate` that can be used to search for a
145
- * `SkyOverlayHarness` that meets certain criteria.
151
+ * Returns a child harness or throws an error if not found.
146
152
  */
147
- static with(filters) {
148
- return new HarnessPredicate(SkyOverlayHarness, filters);
153
+ async queryHarness(query) {
154
+ return this.locatorFor(query)();
149
155
  }
150
156
  /**
151
- * Returns a child harness.
157
+ * Returns a child harness or null if not found.
152
158
  */
153
- async queryHarness(harness) {
154
- return this.locatorForOptional(harness)();
159
+ async queryHarnessOrNull(query) {
160
+ return this.locatorForOptional(query)();
155
161
  }
156
162
  /**
157
163
  * Returns child harnesses.
@@ -160,9 +166,15 @@ class SkyOverlayHarness extends ComponentHarness {
160
166
  return this.locatorForAll(harness)();
161
167
  }
162
168
  /**
163
- * Returns a child test element.
169
+ * Returns a child test element or throws an error if not found.
164
170
  */
165
171
  async querySelector(selector) {
172
+ return this.locatorFor(selector)();
173
+ }
174
+ /**
175
+ * Returns a child test element or null if not found.
176
+ */
177
+ async querySelectorOrNull(selector) {
166
178
  return this.locatorForOptional(selector)();
167
179
  }
168
180
  /**
@@ -173,6 +185,24 @@ class SkyOverlayHarness extends ComponentHarness {
173
185
  }
174
186
  }
175
187
 
188
+ /**
189
+ * Harness for interacting with an overlay component in tests.
190
+ * @internal
191
+ */
192
+ class SkyOverlayHarness extends SkyQueryableComponentHarness {
193
+ /**
194
+ * @internal
195
+ */
196
+ static { this.hostSelector = 'sky-overlay'; }
197
+ /**
198
+ * Gets a `HarnessPredicate` that can be used to search for a
199
+ * `SkyOverlayHarness` that meets certain criteria.
200
+ */
201
+ static with(filters) {
202
+ return new HarnessPredicate(SkyOverlayHarness, filters);
203
+ }
204
+ }
205
+
176
206
  const mockResizeObserverEntry = {
177
207
  target: {},
178
208
  borderBoxSize: [],
@@ -213,21 +243,9 @@ function mockResizeObserver() {
213
243
  };
214
244
  }
215
245
 
216
- /**
217
- * @internal
218
- */
219
- class SkyComponentHarness extends ComponentHarness {
220
- static getDataSkyIdPredicate(filters) {
221
- return new HarnessPredicate(this, filters).addOption('dataSkyId', filters.dataSkyId, (harness, text) => HarnessPredicate.stringMatches(harness.#getSkyId(), text));
222
- }
223
- async #getSkyId() {
224
- return (await this.host()).getAttribute('data-sky-id');
225
- }
226
- }
227
-
228
246
  /**
229
247
  * Generated bundle index. Do not edit.
230
248
  */
231
249
 
232
- export { MockSkyMediaQueryService, MockSkyUIConfigService, SkyComponentHarness, SkyCoreTestingModule, SkyOverlayHarness, mockResizeObserver, mockResizeObserverEntry, mockResizeObserverHandle };
250
+ export { MockSkyMediaQueryService, MockSkyUIConfigService, SkyComponentHarness, SkyCoreTestingModule, SkyOverlayHarness, SkyQueryableComponentHarness, mockResizeObserver, mockResizeObserverEntry, mockResizeObserverHandle };
233
251
  //# sourceMappingURL=skyux-core-testing.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"skyux-core-testing.mjs","sources":["../../../../../libs/components/core/testing/src/mock-media-query.service.ts","../../../../../libs/components/core/testing/src/mock-ui-config.service.ts","../../../../../libs/components/core/testing/src/core-testing.module.ts","../../../../../libs/components/core/testing/src/overlay/overlay-harness.ts","../../../../../libs/components/core/testing/src/resize-observer-mock.ts","../../../../../libs/components/core/testing/src/shared/component-harness.ts","../../../../../libs/components/core/testing/src/skyux-core-testing.ts"],"sourcesContent":["import { Injectable, NgZone } from '@angular/core';\nimport {\n SkyMediaBreakpoints,\n SkyMediaQueryListener,\n SkyMediaQueryService,\n} from '@skyux/core';\n\nimport { BehaviorSubject, Subscription } from 'rxjs';\n\n/**\n * @internal\n */\n@Injectable()\nexport class MockSkyMediaQueryService extends SkyMediaQueryService {\n public static override xs = '(max-width: 767px)';\n public static override sm = '(min-width: 768px) and (max-width: 991px)';\n public static override md = '(min-width: 992px) and (max-width: 1199px)';\n public static override lg = '(min-width: 1200px)';\n\n public override get current(): SkyMediaBreakpoints {\n return this.currentBreakpoints;\n }\n\n public override set current(breakpoints: SkyMediaBreakpoints) {\n this.currentBreakpoints = breakpoints;\n }\n\n public currentMockSubject = new BehaviorSubject<SkyMediaBreakpoints>(\n this.current,\n );\n\n protected currentBreakpoints = SkyMediaBreakpoints.md;\n\n constructor() {\n super(\n new NgZone({\n enableLongStackTrace: true,\n }),\n );\n }\n\n public override subscribe(listener: SkyMediaQueryListener): Subscription {\n return this.currentMockSubject.subscribe({\n next: (breakpoints: SkyMediaBreakpoints) => {\n listener(breakpoints);\n },\n });\n }\n\n public fire(args: SkyMediaBreakpoints): void {\n this.currentBreakpoints = args;\n this.currentMockSubject.next(this.currentBreakpoints);\n }\n\n /* istanbul ignore next */\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n public override destroy(): void {}\n}\n","import { Injectable } from '@angular/core';\nimport { SkyUIConfigService } from '@skyux/core';\n\nimport { Observable, of as observableOf } from 'rxjs';\n\n/**\n * @internal\n */\n@Injectable()\nexport class MockSkyUIConfigService extends SkyUIConfigService {\n public override getConfig(key: string, defaultConfig?: any): Observable<any> {\n switch (key) {\n case 'defaultSettings':\n return observableOf(defaultConfig);\n case 'badData':\n return observableOf({ invalidProperty: 'invalidData' });\n default: {\n return observableOf({\n settings: {\n userSettings: {\n singleColumn: {\n tiles: [\n {\n id: 'tile-1',\n isCollapsed: true,\n },\n {\n id: 'tile-2',\n isCollapsed: true,\n },\n ],\n },\n multiColumn: [\n {\n tiles: [\n {\n id: 'tile-2',\n isCollapsed: true,\n },\n ],\n },\n {\n tiles: [\n {\n id: 'tile-1',\n isCollapsed: true,\n },\n ],\n },\n ],\n },\n defaultSettings: ['tile-1', 'tile-2'],\n },\n });\n }\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { SkyMediaQueryService, SkyUIConfigService } from '@skyux/core';\n\nimport { MockSkyMediaQueryService } from './mock-media-query.service';\nimport { MockSkyUIConfigService } from './mock-ui-config.service';\n\n/**\n * @internal\n */\n@NgModule({\n providers: [\n { provide: SkyMediaQueryService, useClass: MockSkyMediaQueryService },\n {\n provide: SkyUIConfigService,\n useClass: MockSkyUIConfigService,\n },\n ],\n})\nexport class SkyCoreTestingModule {}\n","import {\n ComponentHarness,\n HarnessPredicate,\n HarnessQuery,\n TestElement,\n} from '@angular/cdk/testing';\n\nimport { SkyOverlayHarnessFilters } from './overlay-harness-filters';\n\n/**\n * Harness for interacting with an overlay component in tests.\n * @internal\n */\nexport class SkyOverlayHarness extends ComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-overlay';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyOverlayHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyOverlayHarnessFilters,\n ): HarnessPredicate<SkyOverlayHarness> {\n return new HarnessPredicate(SkyOverlayHarness, filters);\n }\n\n /**\n * Returns a child harness.\n */\n public async queryHarness<T extends ComponentHarness>(\n harness: HarnessQuery<T>,\n ): Promise<T | null> {\n return this.locatorForOptional(harness)();\n }\n\n /**\n * Returns child harnesses.\n */\n public async queryHarnesses<T extends ComponentHarness>(\n harness: HarnessQuery<T>,\n ): Promise<T[]> {\n return this.locatorForAll(harness)();\n }\n\n /**\n * Returns a child test element.\n */\n public async querySelector(selector: string): Promise<TestElement | null> {\n return this.locatorForOptional(selector)();\n }\n\n /**\n * Returns child test elements.\n */\n public async querySelectorAll(selector: string): Promise<TestElement[]> {\n return this.locatorForAll(selector)();\n }\n}\n","export const mockResizeObserverEntry: ResizeObserverEntry = {\n target: {} as Element,\n borderBoxSize: [],\n contentBoxSize: [],\n contentRect: {\n width: 20,\n height: 20,\n x: 20,\n y: 20,\n top: 20,\n bottom: 20,\n left: 20,\n right: 20,\n toJSON: () => 'true',\n } as DOMRectReadOnly,\n devicePixelContentBoxSize: [],\n};\n\nconst defaultCallback: ResizeObserverCallback = (\n entries: ResizeObserverEntry[],\n observer: ResizeObserver,\n) => {};\n\nexport const mockResizeObserverHandle = {\n callback: defaultCallback,\n emit: (entries: ResizeObserverEntry[], observer?: ResizeObserver) => {\n mockResizeObserverHandle.callback(entries, observer!);\n },\n};\n\nexport function mockResizeObserver() {\n (window as any).requestAnimationFrame = (callback: () => void): number => {\n callback();\n return 0;\n };\n (window as any).cancelAnimationFrame = (_: number): void => undefined;\n window.ResizeObserver = class {\n constructor(callback: ResizeObserverCallback) {\n mockResizeObserverHandle.callback = callback;\n }\n\n public disconnect() {}\n\n public observe(target: Element, options?: ResizeObserverOptions) {}\n\n public unobserve(element: HTMLElement) {}\n };\n}\n","import {\n ComponentHarness,\n ComponentHarnessConstructor,\n HarnessPredicate,\n} from '@angular/cdk/testing';\n\nimport { SkyHarnessFilters } from './harness-filters';\n\n/**\n * @internal\n */\nexport abstract class SkyComponentHarness extends ComponentHarness {\n protected static getDataSkyIdPredicate<T extends SkyComponentHarness>(\n this: ComponentHarnessConstructor<T>,\n filters: SkyHarnessFilters,\n ) {\n return new HarnessPredicate(this, filters).addOption(\n 'dataSkyId',\n filters.dataSkyId,\n (harness, text) =>\n HarnessPredicate.stringMatches(harness.#getSkyId(), text),\n );\n }\n\n async #getSkyId(): Promise<string | null> {\n return (await this.host()).getAttribute('data-sky-id');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["observableOf"],"mappings":"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"}
1
+ {"version":3,"file":"skyux-core-testing.mjs","sources":["../../../../../libs/components/core/testing/src/mock-media-query.service.ts","../../../../../libs/components/core/testing/src/mock-ui-config.service.ts","../../../../../libs/components/core/testing/src/core-testing.module.ts","../../../../../libs/components/core/testing/src/shared/component-harness.ts","../../../../../libs/components/core/testing/src/shared/queryable-component-harness.ts","../../../../../libs/components/core/testing/src/overlay/overlay-harness.ts","../../../../../libs/components/core/testing/src/resize-observer-mock.ts","../../../../../libs/components/core/testing/src/skyux-core-testing.ts"],"sourcesContent":["import { Injectable, NgZone } from '@angular/core';\nimport {\n SkyMediaBreakpoints,\n SkyMediaQueryListener,\n SkyMediaQueryService,\n} from '@skyux/core';\n\nimport { BehaviorSubject, Subscription } from 'rxjs';\n\n/**\n * @internal\n */\n@Injectable()\nexport class MockSkyMediaQueryService extends SkyMediaQueryService {\n public static override xs = '(max-width: 767px)';\n public static override sm = '(min-width: 768px) and (max-width: 991px)';\n public static override md = '(min-width: 992px) and (max-width: 1199px)';\n public static override lg = '(min-width: 1200px)';\n\n public override get current(): SkyMediaBreakpoints {\n return this.currentBreakpoints;\n }\n\n public override set current(breakpoints: SkyMediaBreakpoints) {\n this.currentBreakpoints = breakpoints;\n }\n\n public currentMockSubject = new BehaviorSubject<SkyMediaBreakpoints>(\n this.current,\n );\n\n protected currentBreakpoints = SkyMediaBreakpoints.md;\n\n constructor() {\n super(\n new NgZone({\n enableLongStackTrace: true,\n }),\n );\n }\n\n public override subscribe(listener: SkyMediaQueryListener): Subscription {\n return this.currentMockSubject.subscribe({\n next: (breakpoints: SkyMediaBreakpoints) => {\n listener(breakpoints);\n },\n });\n }\n\n public fire(args: SkyMediaBreakpoints): void {\n this.currentBreakpoints = args;\n this.currentMockSubject.next(this.currentBreakpoints);\n }\n\n /* istanbul ignore next */\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n public override destroy(): void {}\n}\n","import { Injectable } from '@angular/core';\nimport { SkyUIConfigService } from '@skyux/core';\n\nimport { Observable, of as observableOf } from 'rxjs';\n\n/**\n * @internal\n */\n@Injectable()\nexport class MockSkyUIConfigService extends SkyUIConfigService {\n public override getConfig(key: string, defaultConfig?: any): Observable<any> {\n switch (key) {\n case 'defaultSettings':\n return observableOf(defaultConfig);\n case 'badData':\n return observableOf({ invalidProperty: 'invalidData' });\n default: {\n return observableOf({\n settings: {\n userSettings: {\n singleColumn: {\n tiles: [\n {\n id: 'tile-1',\n isCollapsed: true,\n },\n {\n id: 'tile-2',\n isCollapsed: true,\n },\n ],\n },\n multiColumn: [\n {\n tiles: [\n {\n id: 'tile-2',\n isCollapsed: true,\n },\n ],\n },\n {\n tiles: [\n {\n id: 'tile-1',\n isCollapsed: true,\n },\n ],\n },\n ],\n },\n defaultSettings: ['tile-1', 'tile-2'],\n },\n });\n }\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { SkyMediaQueryService, SkyUIConfigService } from '@skyux/core';\n\nimport { MockSkyMediaQueryService } from './mock-media-query.service';\nimport { MockSkyUIConfigService } from './mock-ui-config.service';\n\n/**\n * @internal\n */\n@NgModule({\n providers: [\n { provide: SkyMediaQueryService, useClass: MockSkyMediaQueryService },\n {\n provide: SkyUIConfigService,\n useClass: MockSkyUIConfigService,\n },\n ],\n})\nexport class SkyCoreTestingModule {}\n","import {\n ComponentHarness,\n ComponentHarnessConstructor,\n HarnessPredicate,\n} from '@angular/cdk/testing';\n\nimport { SkyHarnessFilters } from './harness-filters';\n\n/**\n * @internal\n */\nexport abstract class SkyComponentHarness extends ComponentHarness {\n protected static getDataSkyIdPredicate<T extends SkyComponentHarness>(\n this: ComponentHarnessConstructor<T>,\n filters: SkyHarnessFilters,\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, filters).addOption(\n 'dataSkyId',\n filters.dataSkyId,\n (harness, text) =>\n HarnessPredicate.stringMatches(harness.#getSkyId(), text),\n );\n }\n\n async #getSkyId(): Promise<string | null> {\n return (await this.host()).getAttribute('data-sky-id');\n }\n}\n","import {\n ComponentHarness,\n HarnessQuery,\n TestElement,\n} from '@angular/cdk/testing';\n\nimport { SkyComponentHarness } from './component-harness';\n\n/**\n * @internal\n */\nexport abstract class SkyQueryableComponentHarness extends SkyComponentHarness {\n /**\n * Returns a child harness or throws an error if not found.\n */\n public async queryHarness<T extends ComponentHarness>(\n query: HarnessQuery<T>,\n ): Promise<T> {\n return this.locatorFor(query)();\n }\n\n /**\n * Returns a child harness or null if not found.\n */\n public async queryHarnessOrNull<T extends ComponentHarness>(\n query: HarnessQuery<T>,\n ): Promise<T | null> {\n return this.locatorForOptional(query)();\n }\n\n /**\n * Returns child harnesses.\n */\n public async queryHarnesses<T extends ComponentHarness>(\n harness: HarnessQuery<T>,\n ): Promise<T[]> {\n return this.locatorForAll(harness)();\n }\n\n /**\n * Returns a child test element or throws an error if not found.\n */\n public async querySelector(selector: string): Promise<TestElement | null> {\n return this.locatorFor(selector)();\n }\n\n /**\n * Returns a child test element or null if not found.\n */\n public async querySelectorOrNull(\n selector: string,\n ): Promise<TestElement | null> {\n return this.locatorForOptional(selector)();\n }\n\n /**\n * Returns child test elements.\n */\n public async querySelectorAll(selector: string): Promise<TestElement[]> {\n return this.locatorForAll(selector)();\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\n\nimport { SkyQueryableComponentHarness } from '../shared/queryable-component-harness';\n\nimport { SkyOverlayHarnessFilters } from './overlay-harness-filters';\n\n/**\n * Harness for interacting with an overlay component in tests.\n * @internal\n */\nexport class SkyOverlayHarness extends SkyQueryableComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-overlay';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyOverlayHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyOverlayHarnessFilters,\n ): HarnessPredicate<SkyOverlayHarness> {\n return new HarnessPredicate(SkyOverlayHarness, filters);\n }\n}\n","export const mockResizeObserverEntry: ResizeObserverEntry = {\n target: {} as Element,\n borderBoxSize: [],\n contentBoxSize: [],\n contentRect: {\n width: 20,\n height: 20,\n x: 20,\n y: 20,\n top: 20,\n bottom: 20,\n left: 20,\n right: 20,\n toJSON: () => 'true',\n } as DOMRectReadOnly,\n devicePixelContentBoxSize: [],\n};\n\nconst defaultCallback: ResizeObserverCallback = (\n entries: ResizeObserverEntry[],\n observer: ResizeObserver,\n) => {};\n\nexport const mockResizeObserverHandle = {\n callback: defaultCallback,\n emit: (entries: ResizeObserverEntry[], observer?: ResizeObserver) => {\n mockResizeObserverHandle.callback(entries, observer!);\n },\n};\n\nexport function mockResizeObserver() {\n (window as any).requestAnimationFrame = (callback: () => void): number => {\n callback();\n return 0;\n };\n (window as any).cancelAnimationFrame = (_: number): void => undefined;\n window.ResizeObserver = class {\n constructor(callback: ResizeObserverCallback) {\n mockResizeObserverHandle.callback = callback;\n }\n\n public disconnect() {}\n\n public observe(target: Element, options?: ResizeObserverOptions) {}\n\n public unobserve(element: HTMLElement) {}\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["observableOf"],"mappings":"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"}