@skyux/lists 8.7.0 → 9.0.0-alpha.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.
Files changed (91) hide show
  1. package/esm2022/lib/modules/filter/filter-button.component.mjs +73 -0
  2. package/{esm2020 → esm2022}/lib/modules/filter/filter-inline-item.component.mjs +4 -4
  3. package/{esm2020 → esm2022}/lib/modules/filter/filter-inline.component.mjs +4 -4
  4. package/esm2022/lib/modules/filter/filter-summary-item.component.mjs +52 -0
  5. package/{esm2020 → esm2022}/lib/modules/filter/filter-summary.component.mjs +4 -4
  6. package/{esm2020 → esm2022}/lib/modules/filter/filter.module.mjs +21 -21
  7. package/esm2022/lib/modules/infinite-scroll/infinite-scroll-dom-adapter.service.mjs +82 -0
  8. package/esm2022/lib/modules/infinite-scroll/infinite-scroll.component.mjs +116 -0
  9. package/{esm2020 → esm2022}/lib/modules/infinite-scroll/infinite-scroll.module.mjs +5 -5
  10. package/esm2022/lib/modules/paging/paging.component.mjs +122 -0
  11. package/{esm2020 → esm2022}/lib/modules/paging/paging.module.mjs +11 -11
  12. package/esm2022/lib/modules/repeater/repeater-adapter.service.mjs +75 -0
  13. package/{esm2020 → esm2022}/lib/modules/repeater/repeater-auto-scroll.service.mjs +4 -4
  14. package/{esm2020 → esm2022}/lib/modules/repeater/repeater-item-content.component.mjs +4 -4
  15. package/{esm2020 → esm2022}/lib/modules/repeater/repeater-item-context-menu.component.mjs +4 -4
  16. package/{esm2020 → esm2022}/lib/modules/repeater/repeater-item-title.component.mjs +4 -4
  17. package/esm2022/lib/modules/repeater/repeater-item.component.mjs +504 -0
  18. package/esm2022/lib/modules/repeater/repeater.component.mjs +373 -0
  19. package/{esm2020 → esm2022}/lib/modules/repeater/repeater.module.mjs +27 -27
  20. package/esm2022/lib/modules/repeater/repeater.service.mjs +86 -0
  21. package/{esm2020 → esm2022}/lib/modules/shared/sky-lists-resources.module.mjs +11 -11
  22. package/esm2022/lib/modules/sort/sort-item.component.mjs +66 -0
  23. package/{esm2020 → esm2022}/lib/modules/sort/sort-menu-heading.component.mjs +4 -4
  24. package/{esm2020 → esm2022}/lib/modules/sort/sort.component.mjs +4 -4
  25. package/{esm2020 → esm2022}/lib/modules/sort/sort.module.mjs +17 -17
  26. package/{esm2020 → esm2022}/lib/modules/sort/sort.service.mjs +4 -4
  27. package/esm2022/testing/filter/filter-fixture-button.mjs +53 -0
  28. package/esm2022/testing/filter/filter-fixture-summary.mjs +31 -0
  29. package/{esm2020 → esm2022}/testing/filter/filter-testing.module.mjs +5 -5
  30. package/esm2022/testing/infinite-scroll/infinite-scroll-fixture.mjs +31 -0
  31. package/esm2022/testing/infinite-scroll/infinite-scroll-harness.mjs +49 -0
  32. package/{esm2020 → esm2022}/testing/infinite-scroll/infinite-scroll-testing.module.mjs +5 -5
  33. package/esm2022/testing/paging/paging-fixture.mjs +95 -0
  34. package/{esm2020 → esm2022}/testing/paging/paging-testing.module.mjs +5 -5
  35. package/esm2022/testing/repeater/repeater-harness.mjs +25 -0
  36. package/esm2022/testing/repeater/repeater-item-harness.mjs +167 -0
  37. package/esm2022/testing/sort/sort-fixture.mjs +149 -0
  38. package/{esm2020 → esm2022}/testing/sort/sort-testing.module.mjs +5 -5
  39. package/fesm2022/skyux-lists-testing.mjs +664 -0
  40. package/{fesm2020 → fesm2022}/skyux-lists-testing.mjs.map +1 -1
  41. package/fesm2022/skyux-lists.mjs +1913 -0
  42. package/{fesm2020 → fesm2022}/skyux-lists.mjs.map +1 -1
  43. package/lib/modules/filter/filter-button.component.d.ts +1 -1
  44. package/lib/modules/filter/filter-summary-item.component.d.ts +1 -1
  45. package/lib/modules/infinite-scroll/infinite-scroll.component.d.ts +1 -1
  46. package/lib/modules/paging/paging.component.d.ts +1 -1
  47. package/lib/modules/repeater/repeater-item.component.d.ts +1 -1
  48. package/lib/modules/repeater/repeater.component.d.ts +1 -1
  49. package/lib/modules/sort/sort-item.component.d.ts +1 -1
  50. package/lib/modules/sort/sort.component.d.ts +1 -1
  51. package/package.json +22 -30
  52. package/esm2020/lib/modules/filter/filter-button.component.mjs +0 -75
  53. package/esm2020/lib/modules/filter/filter-summary-item.component.mjs +0 -54
  54. package/esm2020/lib/modules/infinite-scroll/infinite-scroll-dom-adapter.service.mjs +0 -84
  55. package/esm2020/lib/modules/infinite-scroll/infinite-scroll.component.mjs +0 -116
  56. package/esm2020/lib/modules/paging/paging.component.mjs +0 -123
  57. package/esm2020/lib/modules/repeater/repeater-adapter.service.mjs +0 -73
  58. package/esm2020/lib/modules/repeater/repeater-item.component.mjs +0 -492
  59. package/esm2020/lib/modules/repeater/repeater.component.mjs +0 -357
  60. package/esm2020/lib/modules/repeater/repeater.service.mjs +0 -88
  61. package/esm2020/lib/modules/sort/sort-item.component.mjs +0 -69
  62. package/esm2020/testing/filter/filter-fixture-button.mjs +0 -55
  63. package/esm2020/testing/filter/filter-fixture-summary.mjs +0 -34
  64. package/esm2020/testing/infinite-scroll/infinite-scroll-fixture.mjs +0 -34
  65. package/esm2020/testing/infinite-scroll/infinite-scroll-harness.mjs +0 -55
  66. package/esm2020/testing/paging/paging-fixture.mjs +0 -91
  67. package/esm2020/testing/repeater/repeater-harness.mjs +0 -25
  68. package/esm2020/testing/repeater/repeater-item-harness.mjs +0 -173
  69. package/esm2020/testing/sort/sort-fixture.mjs +0 -148
  70. package/fesm2015/skyux-lists-testing.mjs +0 -747
  71. package/fesm2015/skyux-lists-testing.mjs.map +0 -1
  72. package/fesm2015/skyux-lists.mjs +0 -1894
  73. package/fesm2015/skyux-lists.mjs.map +0 -1
  74. package/fesm2020/skyux-lists-testing.mjs +0 -673
  75. package/fesm2020/skyux-lists.mjs +0 -1886
  76. /package/{esm2020 → esm2022}/index.mjs +0 -0
  77. /package/{esm2020 → esm2022}/lib/modules/repeater/repeater-auto-scroll-options.mjs +0 -0
  78. /package/{esm2020 → esm2022}/lib/modules/repeater/repeater-auto-scroller.mjs +0 -0
  79. /package/{esm2020 → esm2022}/lib/modules/repeater/repeater-expand-mode-type.mjs +0 -0
  80. /package/{esm2020 → esm2022}/lib/modules/repeater/repeater-item-roles.type.mjs +0 -0
  81. /package/{esm2020 → esm2022}/lib/modules/repeater/repeater-role.type.mjs +0 -0
  82. /package/{esm2020 → esm2022}/skyux-lists.mjs +0 -0
  83. /package/{esm2020 → esm2022}/testing/filter/lists-filter-fixture-button.mjs +0 -0
  84. /package/{esm2020 → esm2022}/testing/infinite-scroll/infinite-scroll-harness-filters.mjs +0 -0
  85. /package/{esm2020 → esm2022}/testing/paging/paging-fixture-button.mjs +0 -0
  86. /package/{esm2020 → esm2022}/testing/public-api.mjs +0 -0
  87. /package/{esm2020 → esm2022}/testing/repeater/repeater-harness-filters.mjs +0 -0
  88. /package/{esm2020 → esm2022}/testing/repeater/repeater-item-harness-filters.mjs +0 -0
  89. /package/{esm2020 → esm2022}/testing/skyux-lists-testing.mjs +0 -0
  90. /package/{esm2020 → esm2022}/testing/sort/sort-fixture-menu-item.mjs +0 -0
  91. /package/{esm2020 → esm2022}/testing/sort/sort-fixture-menu.mjs +0 -0
@@ -0,0 +1,95 @@
1
+ import { By } from '@angular/platform-browser';
2
+ import { SkyAppTestUtility } from '@skyux-sdk/testing';
3
+ /**
4
+ * Provides information for and interaction with a SKY UX paging component.
5
+ * By using the fixture API, a test insulates itself against updates to the internals
6
+ * of a component, such as changing its DOM structure.
7
+ * @internal
8
+ */
9
+ export class SkyPagingFixture {
10
+ #_debugEl;
11
+ /**
12
+ * The id of the active page, if available.
13
+ */
14
+ get activePageId() {
15
+ return this.#getPageId(this.#activePageButton);
16
+ }
17
+ /**
18
+ * Properties of the page links displayed in the paging component.
19
+ */
20
+ get pageLinks() {
21
+ return this.#pagingLinks.map((page) => {
22
+ return {
23
+ id: this.#getPageId(page.nativeElement),
24
+ isActive: page.nativeElement.classList.contains('sky-paging-current'),
25
+ isEnabled: !page.nativeElement.disabled,
26
+ };
27
+ });
28
+ }
29
+ #fixture;
30
+ constructor(fixture, skyTestId) {
31
+ this.#fixture = fixture;
32
+ this.#_debugEl = SkyAppTestUtility.getDebugElementByTestId(fixture, skyTestId, 'sky-paging');
33
+ this.#waitForComponentInitialization();
34
+ }
35
+ /**
36
+ * Selects the specified page by id, if it is enabled.
37
+ */
38
+ async selectPage(id) {
39
+ const pageButton = this.#getPageLink(id.toString());
40
+ if (pageButton !== undefined && !pageButton.disabled) {
41
+ pageButton.click();
42
+ this.#fixture.detectChanges();
43
+ return this.#fixture.whenStable();
44
+ }
45
+ }
46
+ /**
47
+ * Clicks the next page button, if it is enabled.
48
+ */
49
+ async selectNextPage() {
50
+ const nextButton = this.#nextPageButton;
51
+ if (nextButton !== undefined && !nextButton.disabled) {
52
+ nextButton.click();
53
+ this.#fixture.detectChanges();
54
+ return this.#fixture.whenStable();
55
+ }
56
+ }
57
+ /**
58
+ * Clicks the previous page button, if it is enabled.
59
+ */
60
+ async selectPreviousPage() {
61
+ const previousButton = this.#previousPageButton;
62
+ if (previousButton !== undefined && !previousButton.disabled) {
63
+ previousButton.click();
64
+ this.#fixture.detectChanges();
65
+ return this.#fixture.whenStable();
66
+ }
67
+ }
68
+ //#region helpers
69
+ get #activePageButton() {
70
+ return this.#_debugEl.query(By.css('.sky-list-paging-link .sky-paging-current'))?.nativeElement;
71
+ }
72
+ get #nextPageButton() {
73
+ return this.#_debugEl.query(By.css('.sky-paging-btn[sky-cmp-id="next"]'))
74
+ ?.nativeElement;
75
+ }
76
+ get #previousPageButton() {
77
+ return this.#_debugEl.query(By.css('.sky-paging-btn[sky-cmp-id="previous"]'))?.nativeElement;
78
+ }
79
+ get #pagingLinks() {
80
+ return this.#_debugEl.queryAll(By.css('.sky-list-paging-link button'));
81
+ }
82
+ #getPageLink(id) {
83
+ return this.#_debugEl.query(By.css(`.sky-list-paging-link button[sky-cmp-id="${id}"]`))?.nativeElement;
84
+ }
85
+ #getPageId(page) {
86
+ return page?.getAttribute('sky-cmp-id') ?? '';
87
+ }
88
+ async #waitForComponentInitialization() {
89
+ this.#fixture.detectChanges();
90
+ await this.#fixture.whenStable();
91
+ this.#fixture.detectChanges();
92
+ return this.#fixture.whenStable();
93
+ }
94
+ }
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5nLWZpeHR1cmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbGlzdHMvdGVzdGluZy9zcmMvcGFnaW5nL3BhZ2luZy1maXh0dXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUl2RDs7Ozs7R0FLRztBQUNILE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0IsU0FBUyxDQUFlO0lBRXhCOztPQUVHO0lBQ0gsSUFBVyxZQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLFNBQVM7UUFDbEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQWtCLEVBQUUsRUFBRTtZQUNsRCxPQUFPO2dCQUNMLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7Z0JBQ3ZDLFFBQVEsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsb0JBQW9CLENBQUM7Z0JBQ3JFLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUTthQUN4QyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUSxDQUF3QjtJQUVoQyxZQUFZLE9BQThCLEVBQUUsU0FBaUI7UUFDM0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7UUFDeEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxpQkFBaUIsQ0FBQyx1QkFBdUIsQ0FDeEQsT0FBTyxFQUNQLFNBQVMsRUFDVCxZQUFZLENBQ2IsQ0FBQztRQUVGLElBQUksQ0FB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ZXNDb250ZW50IjpbImltcG9ydCB7IERlYnVnRWxlbWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50Rml4dHVyZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvdGVzdGluZyc7XG5pbXBvcnQgeyBCeSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgU2t5QXBwVGVzdFV0aWxpdHkgfSBmcm9tICdAc2t5dXgtc2RrL3Rlc3RpbmcnO1xuXG5pbXBvcnQgeyBTa3lQYWdpbmdGaXh0dXJlQnV0dG9uIH0gZnJvbSAnLi9wYWdpbmctZml4dHVyZS1idXR0b24nO1xuXG4vKipcbiAqIFByb3ZpZGVzIGluZm9ybWF0aW9uIGZvciBhbmQgaW50ZXJhY3Rpb24gd2l0aCBhIFNLWSBVWCBwYWdpbmcgY29tcG9uZW50LlxuICogQnkgdXNpbmcgdGhlIGZpeHR1cmUgQVBJLCBhIHRlc3QgaW5zdWxhdGVzIGl0c2VsZiBhZ2FpbnN0IHVwZGF0ZXMgdG8gdGhlIGludGVybmFsc1xuICogb2YgYSBjb21wb25lbnQsIHN1Y2ggYXMgY2hhbmdpbmcgaXRzIERPTSBzdHJ1Y3R1cmUuXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNsYXNzIFNreVBhZ2luZ0ZpeHR1cmUge1xuICAjX2RlYnVnRWw6IERlYnVnRWxlbWVudDtcblxuICAvKipcbiAgICogVGhlIGlkIG9mIHRoZSBhY3RpdmUgcGFnZSwgaWYgYXZhaWxhYmxlLlxuICAgKi9cbiAgcHVibGljIGdldCBhY3RpdmVQYWdlSWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy4jZ2V0UGFnZUlkKHRoaXMuI2FjdGl2ZVBhZ2VCdXR0b24pO1xuICB9XG5cbiAgLyoqXG4gICAqIFByb3BlcnRpZXMgb2YgdGhlIHBhZ2UgbGlua3MgZGlzcGxheWVkIGluIHRoZSBwYWdpbmcgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIGdldCBwYWdlTGlua3MoKTogU2t5UGFnaW5nRml4dHVyZUJ1dHRvbltdIHtcbiAgICByZXR1cm4gdGhpcy4jcGFnaW5nTGlua3MubWFwKChwYWdlOiBEZWJ1Z0VsZW1lbnQpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGlkOiB0aGlzLiNnZXRQYWdlSWQocGFnZS5uYXRpdmVFbGVtZW50KSxcbiAgICAgICAgaXNBY3RpdmU6IHBhZ2UubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ3NreS1wYWdpbmctY3VycmVudCcpLFxuICAgICAgICBpc0VuYWJsZWQ6ICFwYWdlLm5hdGl2ZUVsZW1lbnQuZGlzYWJsZWQsXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgI2ZpeHR1cmU6IENvbXBvbmVudEZpeHR1cmU8YW55PjtcblxuICBjb25zdHJ1Y3RvcihmaXh0dXJlOiBDb21wb25lbnRGaXh0dXJlPGFueT4sIHNreVRlc3RJZDogc3RyaW5nKSB7XG4gICAgdGhpcy4jZml4dHVyZSA9IGZpeHR1cmU7XG4gICAgdGhpcy4jX2RlYnVnRWwgPSBTa3lBcHBUZXN0VXRpbGl0eS5nZXREZWJ1Z0VsZW1lbnRCeVRlc3RJZChcbiAgICAgIGZpeHR1cmUsXG4gICAgICBza3lUZXN0SWQsXG4gICAgICAnc2t5LXBhZ2luZydcbiAgICApO1xuXG4gICAgdGhpcy4jd2FpdEZvckNvbXBvbmVudEluaXRpYWxpemF0aW9uKCk7XG4gIH1cblxuICAvKipcbiAgICogU2VsZWN0cyB0aGUgc3BlY2lmaWVkIHBhZ2UgYnkgaWQsIGlmIGl0IGlzIGVuYWJsZWQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2VsZWN0UGFnZShpZDogc3RyaW5nIHwgbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcGFnZUJ1dHRvbiA9IHRoaXMuI2dldFBhZ2VMaW5rKGlkLnRvU3RyaW5nKCkpO1xuXG4gICAgaWYgKHBhZ2VCdXR0b24gIT09IHVuZGVmaW5lZCAmJiAhcGFnZUJ1dHRvbi5kaXNhYmxlZCkge1xuICAgICAgcGFnZUJ1dHRvbi5jbGljaygpO1xuXG4gICAgICB0aGlzLiNmaXh0dXJlLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIHJldHVybiB0aGlzLiNmaXh0dXJlLndoZW5TdGFibGUoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2xpY2tzIHRoZSBuZXh0IHBhZ2UgYnV0dG9uLCBpZiBpdCBpcyBlbmFibGVkLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHNlbGVjdE5leHRQYWdlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IG5leHRCdXR0b24gPSB0aGlzLiNuZXh0UGFnZUJ1dHRvbjtcblxuICAgIGlmIChuZXh0QnV0dG9uICE9PSB1bmRlZmluZWQgJiYgIW5leHRCdXR0b24uZGlzYWJsZWQpIHtcbiAgICAgIG5leHRCdXR0b24uY2xpY2soKTtcblxuICAgICAgdGhpcy4jZml4dHVyZS5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICByZXR1cm4gdGhpcy4jZml4dHVyZS53aGVuU3RhYmxlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENsaWNrcyB0aGUgcHJldmlvdXMgcGFnZSBidXR0b24sIGlmIGl0IGlzIGVuYWJsZWQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2VsZWN0UHJldmlvdXNQYWdlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHByZXZpb3VzQnV0dG9uID0gdGhpcy4jcHJldmlvdXNQYWdlQnV0dG9uO1xuXG4gICAgaWYgKHByZXZpb3VzQnV0dG9uICE9PSB1bmRlZmluZWQgJiYgIXByZXZpb3VzQnV0dG9uLmRpc2FibGVkKSB7XG4gICAgICBwcmV2aW91c0J1dHRvbi5jbGljaygpO1xuXG4gICAgICB0aGlzLiNmaXh0dXJlLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIHJldHVybiB0aGlzLiNmaXh0dXJlLndoZW5TdGFibGUoKTtcbiAgICB9XG4gIH1cblxuICAvLyNyZWdpb24gaGVscGVyc1xuXG4gIGdldCAjYWN0aXZlUGFnZUJ1dHRvbigpOiBIVE1MQnV0dG9uRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuI19kZWJ1Z0VsLnF1ZXJ5KFxuICAgICAgQnkuY3NzKCcuc2t5LWxpc3QtcGFnaW5nLWxpbmsgLnNreS1wYWdpbmctY3VycmVudCcpXG4gICAgKT8ubmF0aXZlRWxlbWVudCBhcyBIVE1MQnV0dG9uRWxlbWVudDtcbiAgfVxuXG4gIGdldCAjbmV4dFBhZ2VCdXR0b24oKTogSFRNTEJ1dHRvbkVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLiNfZGVidWdFbC5xdWVyeShCeS5jc3MoJy5za3ktcGFnaW5nLWJ0bltza3ktY21wLWlkPVwibmV4dFwiXScpKVxuICAgICAgPy5uYXRpdmVFbGVtZW50IGFzIEhUTUxCdXR0b25FbGVtZW50O1xuICB9XG5cbiAgZ2V0ICNwcmV2aW91c1BhZ2VCdXR0b24oKTogSFRNTEJ1dHRvbkVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLiNfZGVidWdFbC5xdWVyeShcbiAgICAgIEJ5LmNzcygnLnNreS1wYWdpbmctYnRuW3NreS1jbXAtaWQ9XCJwcmV2aW91c1wiXScpXG4gICAgKT8ubmF0aXZlRWxlbWVudCBhcyBIVE1MQnV0dG9uRWxlbWVudDtcbiAgfVxuXG4gIGdldCAjcGFnaW5nTGlua3MoKTogRGVidWdFbGVtZW50W10ge1xuICAgIHJldHVybiB0aGlzLiNfZGVidWdFbC5xdWVyeUFsbChCeS5jc3MoJy5za3ktbGlzdC1wYWdpbmctbGluayBidXR0b24nKSk7XG4gIH1cblxuICAjZ2V0UGFnZUxpbmsoaWQ6IHN0cmluZyk6IEhUTUxCdXR0b25FbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy4jX2RlYnVnRWwucXVlcnkoXG4gICAgICBCeS5jc3MoYC5za3ktbGlzdC1wYWdpbmctbGluayBidXR0b25bc2t5LWNtcC1pZD1cIiR7aWR9XCJdYClcbiAgICApPy5uYXRpdmVFbGVtZW50IGFzIEhUTUxCdXR0b25FbGVtZW50O1xuICB9XG5cbiAgI2dldFBhZ2VJZChwYWdlOiBIVE1MQnV0dG9uRWxlbWVudCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHBhZ2U/LmdldEF0dHJpYnV0ZSgnc2t5LWNtcC1pZCcpID8/ICcnO1xuICB9XG5cbiAgYXN5bmMgI3dhaXRGb3JDb21wb25lbnRJbml0aWFsaXphdGlvbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLiNmaXh0dXJlLmRldGVjdENoYW5nZXMoKTtcbiAgICBhd2FpdCB0aGlzLiNmaXh0dXJlLndoZW5TdGFibGUoKTtcblxuICAgIHRoaXMuI2ZpeHR1cmUuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIHJldHVybiB0aGlzLiNmaXh0dXJlLndoZW5TdGFibGUoKTtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxufVxuIl19
@@ -5,14 +5,14 @@ import * as i0 from "@angular/core";
5
5
  * @internal
6
6
  */
7
7
  export class SkyPagingTestingModule {
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyPagingTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
9
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: SkyPagingTestingModule, exports: [SkyPagingModule] }); }
10
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyPagingTestingModule, imports: [SkyPagingModule] }); }
8
11
  }
9
- SkyPagingTestingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyPagingTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
- SkyPagingTestingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: SkyPagingTestingModule, exports: [SkyPagingModule] });
11
- SkyPagingTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyPagingTestingModule, imports: [SkyPagingModule] });
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyPagingTestingModule, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyPagingTestingModule, decorators: [{
13
13
  type: NgModule,
14
14
  args: [{
15
15
  exports: [SkyPagingModule],
16
16
  }]
17
17
  }] });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5nLXRlc3RpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xpc3RzL3Rlc3Rpbmcvc3JjL3BhZ2luZy9wYWdpbmctdGVzdGluZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUUvQzs7R0FFRztBQUlILE1BQU0sT0FBTyxzQkFBc0I7O21IQUF0QixzQkFBc0I7b0hBQXRCLHNCQUFzQixZQUZ2QixlQUFlO29IQUVkLHNCQUFzQixZQUZ2QixlQUFlOzJGQUVkLHNCQUFzQjtrQkFIbEMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxlQUFlLENBQUM7aUJBQzNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreVBhZ2luZ01vZHVsZSB9IGZyb20gJ0Bza3l1eC9saXN0cyc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGV4cG9ydHM6IFtTa3lQYWdpbmdNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lQYWdpbmdUZXN0aW5nTW9kdWxlIHt9XG4iXX0=
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5nLXRlc3RpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xpc3RzL3Rlc3Rpbmcvc3JjL3BhZ2luZy9wYWdpbmctdGVzdGluZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUUvQzs7R0FFRztBQUlILE1BQU0sT0FBTyxzQkFBc0I7OEdBQXRCLHNCQUFzQjsrR0FBdEIsc0JBQXNCLFlBRnZCLGVBQWU7K0dBRWQsc0JBQXNCLFlBRnZCLGVBQWU7OzJGQUVkLHNCQUFzQjtrQkFIbEMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxlQUFlLENBQUM7aUJBQzNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreVBhZ2luZ01vZHVsZSB9IGZyb20gJ0Bza3l1eC9saXN0cyc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGV4cG9ydHM6IFtTa3lQYWdpbmdNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lQYWdpbmdUZXN0aW5nTW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,25 @@
1
+ import { SkyComponentHarness } from '@skyux/core/testing';
2
+ import { SkyRepeaterItemHarness } from './repeater-item-harness';
3
+ /**
4
+ * Harness for interacting with a repeater component in tests.
5
+ */
6
+ export class SkyRepeaterHarness extends SkyComponentHarness {
7
+ /**
8
+ * @internal
9
+ */
10
+ static { this.hostSelector = 'sky-repeater'; }
11
+ /**
12
+ * Gets a `HarnessPredicate` that can be used to search for a
13
+ * `SkyRepeaterHarness` that meets certain criteria.
14
+ */
15
+ static with(filters) {
16
+ return SkyRepeaterHarness.getDataSkyIdPredicate(filters);
17
+ }
18
+ /**
19
+ * Gets a list of child repeater items.
20
+ */
21
+ async getRepeaterItems(filters) {
22
+ return this.locatorForAll(SkyRepeaterItemHarness.with(filters || {}))();
23
+ }
24
+ }
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwZWF0ZXItaGFybmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9saXN0cy90ZXN0aW5nL3NyYy9yZXBlYXRlci9yZXBlYXRlci1oYXJuZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRzFELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR2pFOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGtCQUFtQixTQUFRLG1CQUFtQjtJQUN6RDs7T0FFRzthQUNXLGlCQUFZLEdBQUcsY0FBYyxDQUFDO0lBRTVDOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxJQUFJLENBQ2hCLE9BQWtDO1FBRWxDLE9BQU8sa0JBQWtCLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLGdCQUFnQixDQUMzQixPQUF1QztRQUV2QyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDMUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhhcm5lc3NQcmVkaWNhdGUgfSBmcm9tICdAYW5ndWxhci9jZGsvdGVzdGluZyc7XG5pbXBvcnQgeyBTa3lDb21wb25lbnRIYXJuZXNzIH0gZnJvbSAnQHNreXV4L2NvcmUvdGVzdGluZyc7XG5cbmltcG9ydCB7IFNreVJlcGVhdGVySGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL3JlcGVhdGVyLWhhcm5lc3MtZmlsdGVycyc7XG5pbXBvcnQgeyBTa3lSZXBlYXRlckl0ZW1IYXJuZXNzIH0gZnJvbSAnLi9yZXBlYXRlci1pdGVtLWhhcm5lc3MnO1xuaW1wb3J0IHsgU2t5UmVwZWF0ZXJJdGVtSGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL3JlcGVhdGVyLWl0ZW0taGFybmVzcy1maWx0ZXJzJztcblxuLyoqXG4gKiBIYXJuZXNzIGZvciBpbnRlcmFjdGluZyB3aXRoIGEgcmVwZWF0ZXIgY29tcG9uZW50IGluIHRlc3RzLlxuICovXG5leHBvcnQgY2xhc3MgU2t5UmVwZWF0ZXJIYXJuZXNzIGV4dGVuZHMgU2t5Q29tcG9uZW50SGFybmVzcyB7XG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaG9zdFNlbGVjdG9yID0gJ3NreS1yZXBlYXRlcic7XG5cbiAgLyoqXG4gICAqIEdldHMgYSBgSGFybmVzc1ByZWRpY2F0ZWAgdGhhdCBjYW4gYmUgdXNlZCB0byBzZWFyY2ggZm9yIGFcbiAgICogYFNreVJlcGVhdGVySGFybmVzc2AgdGhhdCBtZWV0cyBjZXJ0YWluIGNyaXRlcmlhLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB3aXRoKFxuICAgIGZpbHRlcnM6IFNreVJlcGVhdGVySGFybmVzc0ZpbHRlcnNcbiAgKTogSGFybmVzc1ByZWRpY2F0ZTxTa3lSZXBlYXRlckhhcm5lc3M+IHtcbiAgICByZXR1cm4gU2t5UmVwZWF0ZXJIYXJuZXNzLmdldERhdGFTa3lJZFByZWRpY2F0ZShmaWx0ZXJzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGEgbGlzdCBvZiBjaGlsZCByZXBlYXRlciBpdGVtcy5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRSZXBlYXRlckl0ZW1zKFxuICAgIGZpbHRlcnM/OiBTa3lSZXBlYXRlckl0ZW1IYXJuZXNzRmlsdGVyc1xuICApOiBQcm9taXNlPFNreVJlcGVhdGVySXRlbUhhcm5lc3NbXT4ge1xuICAgIHJldHVybiB0aGlzLmxvY2F0b3JGb3JBbGwoU2t5UmVwZWF0ZXJJdGVtSGFybmVzcy53aXRoKGZpbHRlcnMgfHwge30pKSgpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,167 @@
1
+ import { HarnessPredicate, } from '@angular/cdk/testing';
2
+ import { SkyComponentHarness } from '@skyux/core/testing';
3
+ import { SkyCheckboxHarness } from '@skyux/forms/testing';
4
+ import { SkyChevronHarness } from '@skyux/indicators/testing';
5
+ /**
6
+ * Harness for interacting with a repeater item component in tests.
7
+ */
8
+ export class SkyRepeaterItemHarness extends SkyComponentHarness {
9
+ /**
10
+ * @internal
11
+ */
12
+ static { this.hostSelector = 'sky-repeater-item'; }
13
+ #getBackToTop = this.locatorForOptional('button.sky-repeater-item-reorder-top');
14
+ #getCheckbox = this.locatorForOptional(SkyCheckboxHarness);
15
+ #getChevron = this.locatorForOptional(SkyChevronHarness);
16
+ #getContent = this.locatorFor('.sky-repeater-item-content');
17
+ #getItem = this.locatorFor('.sky-repeater-item');
18
+ #getReorderHandle = this.locatorForOptional('button.sky-repeater-item-grab-handle');
19
+ #getTitle = this.locatorFor('.sky-repeater-item-title');
20
+ /**
21
+ * Gets a `HarnessPredicate` that can be used to search for a
22
+ * `SkyRepeaterItemHarness` that meets certain criteria.
23
+ */
24
+ static with(filters) {
25
+ return SkyRepeaterItemHarness.getDataSkyIdPredicate(filters)
26
+ .addOption('contentText', filters.contentText, async (harness, text) => HarnessPredicate.stringMatches(await harness.getContentText(), text))
27
+ .addOption('titleText', filters.titleText, async (harness, text) => HarnessPredicate.stringMatches(await harness.getTitleText(), text));
28
+ }
29
+ /**
30
+ * Returns a child harness.
31
+ */
32
+ async queryHarness(query) {
33
+ return this.locatorForOptional(query)();
34
+ }
35
+ /**
36
+ * Returns child harnesses.
37
+ */
38
+ async queryHarnesses(harness) {
39
+ return this.locatorForAll(harness)();
40
+ }
41
+ /**
42
+ * Returns a child test element.
43
+ */
44
+ async querySelector(selector) {
45
+ return this.locatorForOptional(selector)();
46
+ }
47
+ /**
48
+ * Returns child test elements.
49
+ */
50
+ async querySelectorAll(selector) {
51
+ return this.locatorForAll(selector)();
52
+ }
53
+ /**
54
+ * Clicks on the repeater item.
55
+ */
56
+ async click() {
57
+ await (await this.#getItem()).click();
58
+ }
59
+ /**
60
+ * Whether the repeater item is selectable.
61
+ */
62
+ async isSelectable() {
63
+ return !!(await this.#getCheckbox());
64
+ }
65
+ /**
66
+ * Whether the repeater item is selected.
67
+ */
68
+ async isSelected() {
69
+ const checkbox = await this.#getCheckbox();
70
+ if (!checkbox) {
71
+ throw new Error('Could not determine if repeater item is selected because it is not selectable.');
72
+ }
73
+ return checkbox.isChecked();
74
+ }
75
+ /**
76
+ * Selects the repeater item.
77
+ */
78
+ async select() {
79
+ const checkbox = await this.#getCheckbox();
80
+ if (!checkbox) {
81
+ throw new Error('Could not select the repeater item because it is not selectable.');
82
+ }
83
+ await checkbox.check();
84
+ }
85
+ /**
86
+ * Deselects the repeater item.
87
+ */
88
+ async deselect() {
89
+ const checkbox = await this.#getCheckbox();
90
+ if (!checkbox) {
91
+ throw new Error('Could not deselect the repeater item because it is not selectable.');
92
+ }
93
+ await checkbox.uncheck();
94
+ }
95
+ /**
96
+ * Gets the text of the repeater item content.
97
+ */
98
+ async getContentText() {
99
+ return (await this.#getContent()).text();
100
+ }
101
+ /**
102
+ * Gets the text of the repeater item title.
103
+ */
104
+ async getTitleText() {
105
+ return (await this.#getTitle()).text();
106
+ }
107
+ /**
108
+ * Whether the repeater item is collapsible.
109
+ */
110
+ async isCollapsible() {
111
+ return !!(await this.#getChevron());
112
+ }
113
+ /**
114
+ * Whether the repeater item is expanded, or throws an error informing of the lack of collapsibility.
115
+ */
116
+ async isExpanded() {
117
+ const chevron = await this.#getChevron();
118
+ if (chevron) {
119
+ return (await chevron.getDirection()) === 'up';
120
+ }
121
+ throw new Error('Could not determine if repeater item is expanded because it is not collapsible.');
122
+ }
123
+ /**
124
+ * Expands the repeater item, or does nothing if already expanded.
125
+ */
126
+ async expand() {
127
+ const chevron = await this.#getChevron();
128
+ if (chevron) {
129
+ if ((await chevron.getDirection()) === 'down') {
130
+ await chevron.toggle();
131
+ }
132
+ return;
133
+ }
134
+ throw new Error('Could not expand the repeater item because it is not collapsible.');
135
+ }
136
+ /**
137
+ * Collapses the repeater item, or does nothing if already collapsed.
138
+ */
139
+ async collapse() {
140
+ const chevron = await this.#getChevron();
141
+ if (chevron) {
142
+ if ((await chevron.getDirection()) === 'up') {
143
+ await chevron.toggle();
144
+ }
145
+ return;
146
+ }
147
+ throw new Error('Could not collapse the repeater item because it is not collapsible.');
148
+ }
149
+ /**
150
+ * Whether the repeater item is reorderable.
151
+ */
152
+ async isReorderable() {
153
+ return !!(await this.#getReorderHandle());
154
+ }
155
+ /**
156
+ * Moves the repeater item to the top of the list
157
+ */
158
+ async sendToTop() {
159
+ if (await this.isReorderable()) {
160
+ await (await this.#getBackToTop())?.click();
161
+ }
162
+ else {
163
+ throw new Error('Could not send to top because the repeater is not reorderable.');
164
+ }
165
+ }
166
+ }
167
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwZWF0ZXItaXRlbS1oYXJuZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xpc3RzL3Rlc3Rpbmcvc3JjL3JlcGVhdGVyL3JlcGVhdGVyLWl0ZW0taGFybmVzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsZ0JBQWdCLEdBR2pCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFJOUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsbUJBQW1CO0lBQzdEOztPQUVHO2FBQ1csaUJBQVksR0FBRyxtQkFBbUIsQ0FBQztJQUVqRCxhQUFhLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUNyQyxzQ0FBc0MsQ0FDdkMsQ0FBQztJQUVGLFlBQVksR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUUzRCxXQUFXLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFFekQsV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsNEJBQTRCLENBQUMsQ0FBQztJQUU1RCxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBRWpELGlCQUFpQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FDekMsc0NBQXNDLENBQ3ZDLENBQUM7SUFFRixTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0lBRXhEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxJQUFJLENBQ2hCLE9BQXNDO1FBRXRDLE9BQU8sc0JBQXNC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QUssQ0FBQyxhQUFhO1FBQ3hCLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxTQUFTO1FBQ3BCLElBQUksTUFBTSxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUU7WUFDOUIsTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7U0FDN0M7YUFBTTtZQUNMLE1BQU0sSUFBSSxLQUFLLENBQ2IsZ0VBQWdFLENBQ2pFLENBQUM7U0FDSDtJQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnRIYXJuZXNzLFxuICBIYXJuZXNzUHJlZGljYXRlLFxuICBIYXJuZXNzUXVlcnksXG4gIFRlc3RFbGVtZW50LFxufSBmcm9tICdAYW5ndWxhci9jZGsvdGVzdGluZyc7XG5pbXBvcnQgeyBTa3lDb21wb25lbnRIYXJuZXNzIH0gZnJvbSAnQHNreXV4L2NvcmUvdGVzdGluZyc7XG5pbXBvcnQgeyBTa3lDaGVja2JveEhhcm5lc3MgfSBmcm9tICdAc2t5dXgvZm9ybXMvdGVzdGluZyc7XG5pbXBvcnQgeyBTa3lDaGV2cm9uSGFybmVzcyB9IGZyb20gJ0Bza3l1eC9pbmRpY2F0b3JzL3Rlc3RpbmcnO1xuXG5pbXBvcnQgeyBTa3lSZXBlYXRlckl0ZW1IYXJuZXNzRmlsdGVycyB9IGZyb20gJy4vcmVwZWF0ZXItaXRlbS1oYXJuZXNzLWZpbHRlcnMnO1xuXG4vKipcbiAqIEhhcm5lc3MgZm9yIGludGVyYWN0aW5nIHdpdGggYSByZXBlYXRlciBpdGVtIGNvbXBvbmVudCBpbiB0ZXN0cy5cbiAqL1xuZXhwb3J0IGNsYXNzIFNreVJlcGVhdGVySXRlbUhhcm5lc3MgZXh0ZW5kcyBTa3lDb21wb25lbnRIYXJuZXNzIHtcbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBob3N0U2VsZWN0b3IgPSAnc2t5LXJlcGVhdGVyLWl0ZW0nO1xuXG4gICNnZXRCYWNrVG9Ub3AgPSB0aGlzLmxvY2F0b3JGb3JPcHRpb25hbChcbiAgICAnYnV0dG9uLnNreS1yZXBlYXRlci1pdGVtLXJlb3JkZXItdG9wJ1xuICApO1xuXG4gICNnZXRDaGVja2JveCA9IHRoaXMubG9jYXRvckZvck9wdGlvbmFsKFNreUNoZWNrYm94SGFybmVzcyk7XG5cbiAgI2dldENoZXZyb24gPSB0aGlzLmxvY2F0b3JGb3JPcHRpb25hbChTa3lDaGV2cm9uSGFybmVzcyk7XG5cbiAgI2dldENvbnRlbnQgPSB0aGlzLmxvY2F0b3JGb3IoJy5za3ktcmVwZWF0ZXItaXRlbS1jb250ZW50Jyk7XG5cbiAgI2dldEl0ZW0gPSB0aGlzLmxvY2F0b3JGb3IoJy5za3ktcmVwZWF0ZXItaXRlbScpO1xuXG4gICNnZXRSZW9yZGVySGFuZGxlID0gdGhpcy5sb2NhdG9yRm9yT3B0aW9uYWwoXG4gICAgJ2J1dHRvbi5za3ktcmVwZWF0ZXItaXRlbS1ncmFiLWhhbmRsZSdcbiAgKTtcblxuICAjZ2V0VGl0bGUgPSB0aGlzLmxvY2F0b3JGb3IoJy5za3ktcmVwZWF0ZXItaXRlbS10aXRsZScpO1xuXG4gIC8qKlxuICAgKiBHZXRzIGEgYEhhcm5lc3NQcmVkaWNhdGVgIHRoYXQgY2FuIGJlIHVzZWQgdG8gc2VhcmNoIGZvciBhXG4gICAqIGBTa3lSZXBlYXRlckl0ZW1IYXJuZXNzYCB0aGF0IG1lZXRzIGNlcnRhaW4gY3JpdGVyaWEuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHdpdGgoXG4gICAgZmlsdGVyczogU2t5UmVwZWF0ZXJJdGVtSGFybmVzc0ZpbHRlcnNcbiAgKTogSGFybmVzc1ByZWRpY2F0ZTxTa3lSZXBlYXRlckl0ZW1IYXJuZXNzPiB7XG4gICAgcmV0dXJuIFNreVJlcGVhdGVySXRlbUhhcm5lc3MuZ2V0RGF0YVNreUlkUHJlZGljYXRlKGZpbHRlcnMpXG4gICAgICAuYWRkT3B0aW9uKCdjb250ZW50VGV4dCcsIGZpbHRlcnMuY29udGVudFRleHQsIGFzeW5jIChoYXJuZXNzLCB0ZXh0KSA9PlxuICAgICAgICBIYXJuZXNzUHJlZGljYXRlLnN0cmluZ01hdGNoZXMoYXdhaXQgaGFybmVzcy5nZXRDb250ZW50VGV4dCgpLCB0ZXh0KVxuICAgICAgKVxuICAgICAgLmFkZE9wdGlvbigndGl0bGVUZXh0JywgZmlsdGVycy50aXRsZVRleHQsIGFzeW5jIChoYXJuZXNzLCB0ZXh0KSA9PlxuICAgICAgICBIYXJuZXNzUHJlZGljYXRlLnN0cmluZ01hdGNoZXMoYXdhaXQgaGFybmVzcy5nZXRUaXRsZVRleHQoKSwgdGV4dClcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIGNoaWxkIGhhcm5lc3MuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcXVlcnlIYXJuZXNzPFQgZXh0ZW5kcyBDb21wb25lbnRIYXJuZXNzPihcbiAgICBxdWVyeTogSGFybmVzc1F1ZXJ5PFQ+XG4gICk6IFByb21pc2U8VCB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy5sb2NhdG9yRm9yT3B0aW9uYWwocXVlcnkpKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBjaGlsZCBoYXJuZXNzZXMuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcXVlcnlIYXJuZXNzZXM8VCBleHRlbmRzIENvbXBvbmVudEhhcm5lc3M+KFxuICAgIGhhcm5lc3M6IEhhcm5lc3NRdWVyeTxUPlxuICApOiBQcm9taXNlPFRbXT4ge1xuICAgIHJldHVybiB0aGlzLmxvY2F0b3JGb3JBbGwoaGFybmVzcykoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgY2hpbGQgdGVzdCBlbGVtZW50LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3I6IHN0cmluZyk6IFByb21pc2U8VGVzdEVsZW1lbnQgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMubG9jYXRvckZvck9wdGlvbmFsKHNlbGVjdG9yKSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgY2hpbGQgdGVzdCBlbGVtZW50cy5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBxdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9yOiBzdHJpbmcpOiBQcm9taXNlPFRlc3RFbGVtZW50W10+IHtcbiAgICByZXR1cm4gdGhpcy5sb2NhdG9yRm9yQWxsKHNlbGVjdG9yKSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsaWNrcyBvbiB0aGUgcmVwZWF0ZXIgaXRlbS5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBjbGljaygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCAoYXdhaXQgdGhpcy4jZ2V0SXRlbSgpKS5jbGljaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHJlcGVhdGVyIGl0ZW0gaXMgc2VsZWN0YWJsZS5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBpc1NlbGVjdGFibGUoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuICEhKGF3YWl0IHRoaXMuI2dldENoZWNrYm94KCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHJlcGVhdGVyIGl0ZW0gaXMgc2VsZWN0ZWQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgaXNTZWxlY3RlZCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBjaGVja2JveCA9IGF3YWl0IHRoaXMuI2dldENoZWNrYm94KCk7XG4gICAgaWYgKCFjaGVja2JveCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnQ291bGQgbm90IGRldGVybWluZSBpZiByZXBlYXRlciBpdGVtIGlzIHNlbGVjdGVkIGJlY2F1c2UgaXQgaXMgbm90IHNlbGVjdGFibGUuJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY2hlY2tib3guaXNDaGVja2VkKCk7XG4gIH1cblxuICAvKipcbiAgICogU2VsZWN0cyB0aGUgcmVwZWF0ZXIgaXRlbS5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBzZWxlY3QoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgY2hlY2tib3ggPSBhd2FpdCB0aGlzLiNnZXRDaGVja2JveCgpO1xuICAgIGlmICghY2hlY2tib3gpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0NvdWxkIG5vdCBzZWxlY3QgdGhlIHJlcGVhdGVyIGl0ZW0gYmVjYXVzZSBpdCBpcyBub3Qgc2VsZWN0YWJsZS4nXG4gICAgICApO1xuICAgIH1cblxuICAgIGF3YWl0IGNoZWNrYm94LmNoZWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogRGVzZWxlY3RzIHRoZSByZXBlYXRlciBpdGVtLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGRlc2VsZWN0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGNoZWNrYm94ID0gYXdhaXQgdGhpcy4jZ2V0Q2hlY2tib3goKTtcbiAgICBpZiAoIWNoZWNrYm94KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdDb3VsZCBub3QgZGVzZWxlY3QgdGhlIHJlcGVhdGVyIGl0ZW0gYmVjYXVzZSBpdCBpcyBub3Qgc2VsZWN0YWJsZS4nXG4gICAgICApO1xuICAgIH1cblxuICAgIGF3YWl0IGNoZWNrYm94LnVuY2hlY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSB0ZXh0IG9mIHRoZSByZXBlYXRlciBpdGVtIGNvbnRlbnQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0Q29udGVudFRleHQoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuI2dldENvbnRlbnQoKSkudGV4dCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHRleHQgb2YgdGhlIHJlcGVhdGVyIGl0ZW0gdGl0bGUuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0VGl0bGVUZXh0KCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLiNnZXRUaXRsZSgpKS50ZXh0KCk7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgcmVwZWF0ZXIgaXRlbSBpcyBjb2xsYXBzaWJsZS5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBpc0NvbGxhcHNpYmxlKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiAhIShhd2FpdCB0aGlzLiNnZXRDaGV2cm9uKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHJlcGVhdGVyIGl0ZW0gaXMgZXhwYW5kZWQsIG9yIHRocm93cyBhbiBlcnJvciBpbmZvcm1pbmcgb2YgdGhlIGxhY2sgb2YgY29sbGFwc2liaWxpdHkuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgaXNFeHBhbmRlZCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBjaGV2cm9uID0gYXdhaXQgdGhpcy4jZ2V0Q2hldnJvbigpO1xuICAgIGlmIChjaGV2cm9uKSB7XG4gICAgICByZXR1cm4gKGF3YWl0IGNoZXZyb24uZ2V0RGlyZWN0aW9uKCkpID09PSAndXAnO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnQ291bGQgbm90IGRldGVybWluZSBpZiByZXBlYXRlciBpdGVtIGlzIGV4cGFuZGVkIGJlY2F1c2UgaXQgaXMgbm90IGNvbGxhcHNpYmxlLidcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4cGFuZHMgdGhlIHJlcGVhdGVyIGl0ZW0sIG9yIGRvZXMgbm90aGluZyBpZiBhbHJlYWR5IGV4cGFuZGVkLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGV4cGFuZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBjaGV2cm9uID0gYXdhaXQgdGhpcy4jZ2V0Q2hldnJvbigpO1xuICAgIGlmIChjaGV2cm9uKSB7XG4gICAgICBpZiAoKGF3YWl0IGNoZXZyb24uZ2V0RGlyZWN0aW9uKCkpID09PSAnZG93bicpIHtcbiAgICAgICAgYXdhaXQgY2hldnJvbi50b2dnbGUoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ0NvdWxkIG5vdCBleHBhbmQgdGhlIHJlcGVhdGVyIGl0ZW0gYmVjYXVzZSBpdCBpcyBub3QgY29sbGFwc2libGUuJ1xuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ29sbGFwc2VzIHRoZSByZXBlYXRlciBpdGVtLCBvciBkb2VzIG5vdGhpbmcgaWYgYWxyZWFkeSBjb2xsYXBzZWQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgY29sbGFwc2UoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgY2hldnJvbiA9IGF3YWl0IHRoaXMuI2dldENoZXZyb24oKTtcbiAgICBpZiAoY2hldnJvbikge1xuICAgICAgaWYgKChhd2FpdCBjaGV2cm9uLmdldERpcmVjdGlvbigpKSA9PT0gJ3VwJykge1xuICAgICAgICBhd2FpdCBjaGV2cm9uLnRvZ2dsZSgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnQ291bGQgbm90IGNvbGxhcHNlIHRoZSByZXBlYXRlciBpdGVtIGJlY2F1c2UgaXQgaXMgbm90IGNvbGxhcHNpYmxlLidcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHJlcGVhdGVyIGl0ZW0gaXMgcmVvcmRlcmFibGUuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgaXNSZW9yZGVyYWJsZSgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gISEoYXdhaXQgdGhpcy4jZ2V0UmVvcmRlckhhbmRsZSgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNb3ZlcyB0aGUgcmVwZWF0ZXIgaXRlbSB0byB0aGUgdG9wIG9mIHRoZSBsaXN0XG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2VuZFRvVG9wKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmIChhd2FpdCB0aGlzLmlzUmVvcmRlcmFibGUoKSkge1xuICAgICAgYXdhaXQgKGF3YWl0IHRoaXMuI2dldEJhY2tUb1RvcCgpKT8uY2xpY2soKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnQ291bGQgbm90IHNlbmQgdG8gdG9wIGJlY2F1c2UgdGhlIHJlcGVhdGVyIGlzIG5vdCByZW9yZGVyYWJsZS4nXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,149 @@
1
+ import { By } from '@angular/platform-browser';
2
+ import { SkyAppTestUtility } from '@skyux-sdk/testing';
3
+ /**
4
+ * Provides information for and interaction with a SKY UX sort component.
5
+ * By using the fixture API, a test insulates itself against updates to the internals
6
+ * of a component, such as changing its DOM structure.
7
+ * @internal
8
+ */
9
+ export class SkySortFixture {
10
+ /**
11
+ * The active sort menu item, if one exists. Menu items are only available when the menu dropdown
12
+ * is open. If the menu dropdown is closed, this property will be undefined.
13
+ */
14
+ get activeMenuItem() {
15
+ return this.menuItems?.find((x) => x.isActive);
16
+ }
17
+ /**
18
+ * The sort menu's properties.
19
+ */
20
+ get menu() {
21
+ /* istanbul ignore next */
22
+ const buttonText = SkyAppTestUtility.getText(this.#getSortButtonTextEl()) || '';
23
+ return {
24
+ buttonText,
25
+ isOpen: this.#getDropdownMenuEl() !== null,
26
+ };
27
+ }
28
+ /**
29
+ * The properties of each sort menu item. Menu items are only available when the menu dropdown
30
+ * is open. If the menu dropdown is closed, this property will be undefined.
31
+ */
32
+ get menuItems() {
33
+ // Return undefined when we can't determine what the options are.
34
+ // We do this to avoid any confusion with an empty set of options.
35
+ if (!this.menu.isOpen) {
36
+ return;
37
+ }
38
+ return this.#getSortItems().map((item, i) => {
39
+ const itemButton = item.querySelector('button');
40
+ return {
41
+ index: i,
42
+ isActive: item.classList.contains('sky-sort-item-selected'),
43
+ text: SkyAppTestUtility.getText(itemButton),
44
+ };
45
+ });
46
+ }
47
+ #debugEl;
48
+ #fixture;
49
+ constructor(fixture, skyTestId) {
50
+ this.#fixture = fixture;
51
+ this.#debugEl = SkyAppTestUtility.getDebugElementByTestId(fixture, skyTestId, 'sky-sort');
52
+ }
53
+ /**
54
+ * Closes the sort dropdown menu if it isn't closed already.
55
+ */
56
+ async closeMenu() {
57
+ // if the menu is already closed, do nothing
58
+ if (!this.menu.isOpen) {
59
+ return;
60
+ }
61
+ const menu = this.#getDropdownButtonEl();
62
+ if (menu !== undefined && !menu.disabled) {
63
+ menu.click();
64
+ this.#fixture.detectChanges();
65
+ await this.#fixture.whenStable();
66
+ this.#fixture.detectChanges();
67
+ return this.#fixture.whenStable();
68
+ }
69
+ }
70
+ /**
71
+ * Opens the sort dropdown menu if it isn't open already.
72
+ */
73
+ async openMenu() {
74
+ // if the menu is already open, do nothing
75
+ if (this.menu.isOpen) {
76
+ return;
77
+ }
78
+ const menu = this.#getDropdownButtonEl();
79
+ if (menu !== undefined && !menu.disabled) {
80
+ menu.click();
81
+ this.#fixture.detectChanges();
82
+ await this.#fixture.whenStable();
83
+ this.#fixture.detectChanges();
84
+ return this.#fixture.whenStable();
85
+ }
86
+ }
87
+ /**
88
+ * Ensures the sort menu is open and selects the menu item with the specified index, if it exists.
89
+ * @param menuItemIndex The index of the menu item to select.
90
+ */
91
+ async selectMenuItemByIndex(menuItemIndex) {
92
+ return this.#selectMenuItem((_item, index) => {
93
+ return index === menuItemIndex;
94
+ });
95
+ }
96
+ /**
97
+ * Ensures the sort menu is open and selects the menu item with the specified text,
98
+ * if a matching item is available.
99
+ * @param menuItemText The text of the menu item to select.
100
+ */
101
+ async selectMenuItemByText(menuItemText) {
102
+ /* istanbul ignore else */
103
+ if (menuItemText) {
104
+ return this.#selectMenuItem((item) => {
105
+ return SkyAppTestUtility.getText(item) === menuItemText;
106
+ });
107
+ }
108
+ else {
109
+ return;
110
+ }
111
+ }
112
+ //#region helpers
113
+ #getDropdownButtonEl() {
114
+ return this.#debugEl.query(By.css('.sky-dropdown-button')).nativeElement;
115
+ }
116
+ #getDropdownMenuEl() {
117
+ return document.querySelector('sky-overlay .sky-dropdown-menu');
118
+ }
119
+ #getSortButtonTextEl() {
120
+ return this.#debugEl.query(By.css('.sky-sort-btn-text')).nativeElement;
121
+ }
122
+ #getSortItems() {
123
+ const resultNodes = document.querySelectorAll('sky-overlay .sky-sort-item');
124
+ return Array.prototype.slice.call(resultNodes);
125
+ }
126
+ /**
127
+ * Ensures the sort menu is open and selects the menu item via a selection predicate,
128
+ * if a matching item is available.
129
+ * @param selectionPredicate The menu item selector method to use.
130
+ */
131
+ async #selectMenuItem(selectionPredicate) {
132
+ // make sure the sort menu is open
133
+ if (!this.menu.isOpen) {
134
+ await this.openMenu();
135
+ }
136
+ // find the requested menu item using the selectionPredicate parameter
137
+ const items = this.#getSortItems();
138
+ const targetItem = items.find((item, index) => selectionPredicate(item, index));
139
+ // if we found the item, select it
140
+ if (targetItem) {
141
+ // we've got the '.sky-sort-item' div, but we want to click it's child button element
142
+ const targetButton = targetItem.querySelector('button');
143
+ targetButton?.click();
144
+ this.#fixture.detectChanges();
145
+ return this.#fixture.whenStable();
146
+ }
147
+ }
148
+ }
149
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC1maXh0dXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xpc3RzL3Rlc3Rpbmcvc3JjL3NvcnQvc29ydC1maXh0dXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUt2RDs7Ozs7R0FLRztBQUNILE1BQU0sT0FBTyxjQUFjO0lBQ3pCOzs7T0FHRztJQUNILElBQVcsY0FBYztRQUN2QixPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxJQUFJO1FBQ2IsMEJBQTBCO1FBQzFCLE1BQU0sVUFBVSxHQUNkLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMvRCxPQUFPO1lBQ0wsVUFBVTtZQUNWLE1BQU0sRUFBRSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxJQUFJO1NBQzNDLENBQUM7SUFDSixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBVyxTQUFTO1FBQ2xCLGlFQUFpRTtRQUNqRSxrRUFBa0U7UUFDbEUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ3JCLE9BQU87U0FDUjtRQUVELE9BQU8sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQWlCLEVBQUUsQ0FBUyxFQUFFLEVBQUU7WUFDL0QsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUVoRCxPQUFPO2dCQUNMLEtBQUss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bmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50Rml4dHVyZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvdGVzdGluZyc7XG5pbXBvcnQgeyBCeSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgU2t5QXBwVGVzdFV0aWxpdHkgfSBmcm9tICdAc2t5dXgtc2RrL3Rlc3RpbmcnO1xuXG5pbXBvcnQgeyBTa3lTb3J0Rml4dHVyZU1lbnUgfSBmcm9tICcuL3NvcnQtZml4dHVyZS1tZW51JztcbmltcG9ydCB7IFNreVNvcnRGaXh0dXJlTWVudUl0ZW0gfSBmcm9tICcuL3NvcnQtZml4dHVyZS1tZW51LWl0ZW0nO1xuXG4vKipcbiAqIFByb3ZpZGVzIGluZm9ybWF0aW9uIGZvciBhbmQgaW50ZXJhY3Rpb24gd2l0aCBhIFNLWSBVWCBzb3J0IGNvbXBvbmVudC5cbiAqIEJ5IHVzaW5nIHRoZSBmaXh0dXJlIEFQSSwgYSB0ZXN0IGluc3VsYXRlcyBpdHNlbGYgYWdhaW5zdCB1cGRhdGVzIHRvIHRoZSBpbnRlcm5hbHNcbiAqIG9mIGEgY29tcG9uZW50LCBzdWNoIGFzIGNoYW5naW5nIGl0cyBET00gc3RydWN0dXJlLlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjbGFzcyBTa3lTb3J0Rml4dHVyZSB7XG4gIC8qKlxuICAgKiBUaGUgYWN0aXZlIHNvcnQgbWVudSBpdGVtLCBpZiBvbmUgZXhpc3RzLiBNZW51IGl0ZW1zIGFyZSBvbmx5IGF2YWlsYWJsZSB3aGVuIHRoZSBtZW51IGRyb3Bkb3duXG4gICAqIGlzIG9wZW4uIElmIHRoZSBtZW51IGRyb3Bkb3duIGlzIGNsb3NlZCwgdGhpcyBwcm9wZXJ0eSB3aWxsIGJlIHVuZGVmaW5lZC5cbiAgICovXG4gIHB1YmxpYyBnZXQgYWN0aXZlTWVudUl0ZW0oKTogU2t5U29ydEZpeHR1cmVNZW51SXRlbSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMubWVudUl0ZW1zPy5maW5kKCh4KSA9PiB4LmlzQWN0aXZlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgc29ydCBtZW51J3MgcHJvcGVydGllcy5cbiAgICovXG4gIHB1YmxpYyBnZXQgbWVudSgpOiBTa3lTb3J0Rml4dHVyZU1lbnUge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgY29uc3QgYnV0dG9uVGV4dCA9XG4gICAgICBTa3lBcHBUZXN0VXRpbGl0eS5nZXRUZXh0KHRoaXMuI2dldFNvcnRCdXR0b25UZXh0RWwoKSkgfHwgJyc7XG4gICAgcmV0dXJuIHtcbiAgICAgIGJ1dHRvblRleHQsXG4gICAgICBpc09wZW46IHRoaXMuI2dldERyb3Bkb3duTWVudUVsKCkgIT09IG51bGwsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgcHJvcGVydGllcyBvZiBlYWNoIHNvcnQgbWVudSBpdGVtLiBNZW51IGl0ZW1zIGFyZSBvbmx5IGF2YWlsYWJsZSB3aGVuIHRoZSBtZW51IGRyb3Bkb3duXG4gICAqIGlzIG9wZW4uIElmIHRoZSBtZW51IGRyb3Bkb3duIGlzIGNsb3NlZCwgdGhpcyBwcm9wZXJ0eSB3aWxsIGJlIHVuZGVmaW5lZC5cbiAgICovXG4gIHB1YmxpYyBnZXQgbWVudUl0ZW1zKCk6IFNreVNvcnRGaXh0dXJlTWVudUl0ZW1bXSB8IHVuZGVmaW5lZCB7XG4gICAgLy8gUmV0dXJuIHVuZGVmaW5lZCB3aGVuIHdlIGNhbid0IGRldGVybWluZSB3aGF0IHRoZSBvcHRpb25zIGFyZS5cbiAgICAvLyBXZSBkbyB0aGlzIHRvIGF2b2lkIGFueSBjb25mdXNpb24gd2l0aCBhbiBlbXB0eSBzZXQgb2Ygb3B0aW9ucy5cbiAgICBpZiAoIXRoaXMubWVudS5pc09wZW4pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy4jZ2V0U29ydEl0ZW1zKCkubWFwKChpdGVtOiBIVE1MRWxlbWVudCwgaTogbnVtYmVyKSA9PiB7XG4gICAgICBjb25zdCBpdGVtQnV0dG9uID0gaXRlbS5xdWVyeVNlbGVjdG9yKCdidXR0b24nKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaW5kZXg6IGksXG4gICAgICAgIGlzQWN0aXZlOiBpdGVtLmNsYXNzTGlzdC5jb250YWlucygnc2t5LXNvcnQtaXRlbS1zZWxlY3RlZCcpLFxuICAgICAgICB0ZXh0OiBTa3lBcHBUZXN0VXRpbGl0eS5nZXRUZXh0KGl0ZW1CdXR0b24pLFxuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gICNkZWJ1Z0VsOiBEZWJ1Z0VsZW1lbnQ7XG4gICNmaXh0dXJlOiBDb21wb25lbnRGaXh0dXJlPGFueT47XG5cbiAgY29uc3RydWN0b3IoZml4dHVyZTogQ29tcG9uZW50Rml4dHVyZTxhbnk+LCBza3lUZXN0SWQ6IHN0cmluZykge1xuICAgIHRoaXMuI2ZpeHR1cmUgPSBmaXh0dXJlO1xuICAgIHRoaXMuI2RlYnVnRWwgPSBTa3lBcHBUZXN0VXRpbGl0eS5nZXREZWJ1Z0VsZW1lbnRCeVRlc3RJZChcbiAgICAgIGZpeHR1cmUsXG4gICAgICBza3lUZXN0SWQsXG4gICAgICAnc2t5LXNvcnQnXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIHNvcnQgZHJvcGRvd24gbWVudSBpZiBpdCBpc24ndCBjbG9zZWQgYWxyZWFkeS5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBjbG9zZU1lbnUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gaWYgdGhlIG1lbnUgaXMgYWxyZWFkeSBjbG9zZWQsIGRvIG5vdGhpbmdcbiAgICBpZiAoIXRoaXMubWVudS5pc09wZW4pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBtZW51ID0gdGhpcy4jZ2V0RHJvcGRvd25CdXR0b25FbCgpO1xuICAgIGlmIChtZW51ICE9PSB1bmRlZmluZWQgJiYgIW1lbnUuZGlzYWJsZWQpIHtcbiAgICAgIG1lbnUuY2xpY2soKTtcblxuICAgICAgdGhpcy4jZml4dHVyZS5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICBhd2FpdCB0aGlzLiNmaXh0dXJlLndoZW5TdGFibGUoKTtcblxuICAgICAgdGhpcy4jZml4dHVyZS5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICByZXR1cm4gdGhpcy4jZml4dHVyZS53aGVuU3RhYmxlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE9wZW5zIHRoZSBzb3J0IGRyb3Bkb3duIG1lbnUgaWYgaXQgaXNuJ3Qgb3BlbiBhbHJlYWR5LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIG9wZW5NZW51KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIGlmIHRoZSBtZW51IGlzIGFscmVhZHkgb3BlbiwgZG8gbm90aGluZ1xuICAgIGlmICh0aGlzLm1lbnUuaXNPcGVuKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbWVudSA9IHRoaXMuI2dldERyb3Bkb3duQnV0dG9uRWwoKTtcblxuICAgIGlmIChtZW51ICE9PSB1bmRlZmluZWQgJiYgIW1lbnUuZGlzYWJsZWQpIHtcbiAgICAgIG1lbnUuY2xpY2soKTtcblxuICAgICAgdGhpcy4jZml4dHVyZS5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICBhd2FpdCB0aGlzLiNmaXh0dXJlLndoZW5TdGFibGUoKTtcblxuICAgICAgdGhpcy4jZml4dHVyZS5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICByZXR1cm4gdGhpcy4jZml4dHVyZS53aGVuU3RhYmxlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEVuc3VyZXMgdGhlIHNvcnQgbWVudSBpcyBvcGVuIGFuZCBzZWxlY3RzIHRoZSBtZW51IGl0ZW0gd2l0aCB0aGUgc3BlY2lmaWVkIGluZGV4LCBpZiBpdCBleGlzdHMuXG4gICAqIEBwYXJhbSBtZW51SXRlbUluZGV4IFRoZSBpbmRleCBvZiB0aGUgbWVudSBpdGVtIHRvIHNlbGVjdC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBzZWxlY3RNZW51SXRlbUJ5SW5kZXgobWVudUl0ZW1JbmRleDogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuI3NlbGVjdE1lbnVJdGVtKChfaXRlbTogSFRNTEVsZW1lbnQsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgIHJldHVybiBpbmRleCA9PT0gbWVudUl0ZW1JbmRleDtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbnN1cmVzIHRoZSBzb3J0IG1lbnUgaXMgb3BlbiBhbmQgc2VsZWN0cyB0aGUgbWVudSBpdGVtIHdpdGggdGhlIHNwZWNpZmllZCB0ZXh0LFxuICAgKiBpZiBhIG1hdGNoaW5nIGl0ZW0gaXMgYXZhaWxhYmxlLlxuICAgKiBAcGFyYW0gbWVudUl0ZW1UZXh0IFRoZSB0ZXh0IG9mIHRoZSBtZW51IGl0ZW0gdG8gc2VsZWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHNlbGVjdE1lbnVJdGVtQnlUZXh0KFxuICAgIG1lbnVJdGVtVGV4dDogc3RyaW5nIHwgdW5kZWZpbmVkXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKG1lbnVJdGVtVGV4dCkge1xuICAgICAgcmV0dXJuIHRoaXMuI3NlbGVjdE1lbnVJdGVtKChpdGVtOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgICByZXR1cm4gU2t5QXBwVGVzdFV0aWxpdHkuZ2V0VGV4dChpdGVtKSA9PT0gbWVudUl0ZW1UZXh0O1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICAvLyNyZWdpb24gaGVscGVyc1xuXG4gICNnZXREcm9wZG93bkJ1dHRvbkVsKCk6IEhUTUxCdXR0b25FbGVtZW50IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jZGVidWdFbC5xdWVyeShCeS5jc3MoJy5za3ktZHJvcGRvd24tYnV0dG9uJykpLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICAjZ2V0RHJvcGRvd25NZW51RWwoKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcignc2t5LW92ZXJsYXkgLnNreS1kcm9wZG93bi1tZW51Jyk7XG4gIH1cblxuICAjZ2V0U29ydEJ1dHRvblRleHRFbCgpOiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI2RlYnVnRWwucXVlcnkoQnkuY3NzKCcuc2t5LXNvcnQtYnRuLXRleHQnKSkubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gICNnZXRTb3J0SXRlbXMoKTogSFRNTEVsZW1lbnRbXSB7XG4gICAgY29uc3QgcmVzdWx0Tm9kZXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdza3ktb3ZlcmxheSAuc2t5LXNvcnQtaXRlbScpO1xuICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChyZXN1bHROb2Rlcyk7XG4gIH1cblxuICAvKipcbiAgICogRW5zdXJlcyB0aGUgc29ydCBtZW51IGlzIG9wZW4gYW5kIHNlbGVjdHMgdGhlIG1lbnUgaXRlbSB2aWEgYSBzZWxlY3Rpb24gcHJlZGljYXRlLFxuICAgKiBpZiBhIG1hdGNoaW5nIGl0ZW0gaXMgYXZhaWxhYmxlLlxuICAgKiBAcGFyYW0gc2VsZWN0aW9uUHJlZGljYXRlIFRoZSBtZW51IGl0ZW0gc2VsZWN0b3IgbWV0aG9kIHRvIHVzZS5cbiAgICovXG4gIGFzeW5jICNzZWxlY3RNZW51SXRlbShcbiAgICBzZWxlY3Rpb25QcmVkaWNhdGU6IChpdGVtOiBIVE1MRWxlbWVudCwgaW5kZXg6IG51bWJlcikgPT4gYm9vbGVhblxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyBtYWtlIHN1cmUgdGhlIHNvcnQgbWVudSBpcyBvcGVuXG4gICAgaWYgKCF0aGlzLm1lbnUuaXNPcGVuKSB7XG4gICAgICBhd2FpdCB0aGlzLm9wZW5NZW51KCk7XG4gICAgfVxuXG4gICAgLy8gZmluZCB0aGUgcmVxdWVzdGVkIG1lbnUgaXRlbSB1c2luZyB0aGUgc2VsZWN0aW9uUHJlZGljYXRlIHBhcmFtZXRlclxuICAgIGNvbnN0IGl0ZW1zID0gdGhpcy4jZ2V0U29ydEl0ZW1zKCk7XG4gICAgY29uc3QgdGFyZ2V0SXRlbSA9IGl0ZW1zLmZpbmQoKGl0ZW06IEhUTUxFbGVtZW50LCBpbmRleDogbnVtYmVyKSA9PlxuICAgICAgc2VsZWN0aW9uUHJlZGljYXRlKGl0ZW0sIGluZGV4KVxuICAgICk7XG5cbiAgICAvLyBpZiB3ZSBmb3VuZCB0aGUgaXRlbSwgc2VsZWN0IGl0XG4gICAgaWYgKHRhcmdldEl0ZW0pIHtcbiAgICAgIC8vIHdlJ3ZlIGdvdCB0aGUgJy5za3ktc29ydC1pdGVtJyBkaXYsIGJ1dCB3ZSB3YW50IHRvIGNsaWNrIGl0J3MgY2hpbGQgYnV0dG9uIGVsZW1lbnRcbiAgICAgIGNvbnN0IHRhcmdldEJ1dHRvbiA9IHRhcmdldEl0ZW0ucXVlcnlTZWxlY3RvcignYnV0dG9uJyk7XG4gICAgICB0YXJnZXRCdXR0b24/LmNsaWNrKCk7XG5cbiAgICAgIHRoaXMuI2ZpeHR1cmUuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgcmV0dXJuIHRoaXMuI2ZpeHR1cmUud2hlblN0YWJsZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxufVxuIl19
@@ -6,15 +6,15 @@ import * as i0 from "@angular/core";
6
6
  * @internal
7
7
  */
8
8
  export class SkySortTestingModule {
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkySortTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: SkySortTestingModule, imports: [NoopAnimationsModule], exports: [SkySortModule] }); }
11
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkySortTestingModule, imports: [NoopAnimationsModule, SkySortModule] }); }
9
12
  }
10
- SkySortTestingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkySortTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
- SkySortTestingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: SkySortTestingModule, imports: [NoopAnimationsModule], exports: [SkySortModule] });
12
- SkySortTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkySortTestingModule, imports: [NoopAnimationsModule, SkySortModule] });
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkySortTestingModule, decorators: [{
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkySortTestingModule, decorators: [{
14
14
  type: NgModule,
15
15
  args: [{
16
16
  imports: [NoopAnimationsModule],
17
17
  exports: [SkySortModule],
18
18
  }]
19
19
  }] });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC10ZXN0aW5nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9saXN0cy90ZXN0aW5nL3NyYy9zb3J0L3NvcnQtdGVzdGluZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUU3Qzs7R0FFRztBQUtILE1BQU0sT0FBTyxvQkFBb0I7O2lIQUFwQixvQkFBb0I7a0hBQXBCLG9CQUFvQixZQUhyQixvQkFBb0IsYUFDcEIsYUFBYTtrSEFFWixvQkFBb0IsWUFIckIsb0JBQW9CLEVBQ3BCLGFBQWE7MkZBRVosb0JBQW9CO2tCQUpoQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLG9CQUFvQixDQUFDO29CQUMvQixPQUFPLEVBQUUsQ0FBQyxhQUFhLENBQUM7aUJBQ3pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5vb3BBbmltYXRpb25zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlci9hbmltYXRpb25zJztcbmltcG9ydCB7IFNreVNvcnRNb2R1bGUgfSBmcm9tICdAc2t5dXgvbGlzdHMnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbTm9vcEFuaW1hdGlvbnNNb2R1bGVdLFxuICBleHBvcnRzOiBbU2t5U29ydE1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNreVNvcnRUZXN0aW5nTW9kdWxlIHt9XG4iXX0=
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC10ZXN0aW5nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9saXN0cy90ZXN0aW5nL3NyYy9zb3J0L3NvcnQtdGVzdGluZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUU3Qzs7R0FFRztBQUtILE1BQU0sT0FBTyxvQkFBb0I7OEdBQXBCLG9CQUFvQjsrR0FBcEIsb0JBQW9CLFlBSHJCLG9CQUFvQixhQUNwQixhQUFhOytHQUVaLG9CQUFvQixZQUhyQixvQkFBb0IsRUFDcEIsYUFBYTs7MkZBRVosb0JBQW9CO2tCQUpoQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLG9CQUFvQixDQUFDO29CQUMvQixPQUFPLEVBQUUsQ0FBQyxhQUFhLENBQUM7aUJBQ3pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5vb3BBbmltYXRpb25zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlci9hbmltYXRpb25zJztcbmltcG9ydCB7IFNreVNvcnRNb2R1bGUgfSBmcm9tICdAc2t5dXgvbGlzdHMnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbTm9vcEFuaW1hdGlvbnNNb2R1bGVdLFxuICBleHBvcnRzOiBbU2t5U29ydE1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNreVNvcnRUZXN0aW5nTW9kdWxlIHt9XG4iXX0=