@skyux/lists 7.0.0-beta.4 → 7.0.0-beta.6

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.
@@ -1,3 +1,5 @@
1
+ var _SkySortFixture_instances, _SkySortFixture_debugEl, _SkySortFixture_getDropdownButtonEl, _SkySortFixture_getDropdownMenuEl, _SkySortFixture_getSortButtonTextEl, _SkySortFixture_getSortItems, _SkySortFixture_selectMenuItem;
2
+ import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
1
3
  import { By } from '@angular/platform-browser';
2
4
  import { SkyAppTestUtility } from '@skyux-sdk/testing';
3
5
  /**
@@ -9,7 +11,9 @@ import { SkyAppTestUtility } from '@skyux-sdk/testing';
9
11
  export class SkySortFixture {
10
12
  constructor(fixture, skyTestId) {
11
13
  this.fixture = fixture;
12
- this._debugEl = SkyAppTestUtility.getDebugElementByTestId(fixture, skyTestId, 'sky-sort');
14
+ _SkySortFixture_instances.add(this);
15
+ _SkySortFixture_debugEl.set(this, void 0);
16
+ __classPrivateFieldSet(this, _SkySortFixture_debugEl, SkyAppTestUtility.getDebugElementByTestId(fixture, skyTestId, 'sky-sort'), "f");
13
17
  }
14
18
  /**
15
19
  * The active sort menu item, if one exists. Menu items are only available when the menu dropdown
@@ -22,10 +26,21 @@ export class SkySortFixture {
22
26
  * The sort menu's properties.
23
27
  */
24
28
  get menu() {
25
- return {
26
- buttonText: SkyAppTestUtility.getText(this.getSortButtonTextEl()),
27
- isOpen: this.getDropdownMenuEl() !== null,
28
- };
29
+ const sortButtonTextEl = __classPrivateFieldGet(this, _SkySortFixture_instances, "m", _SkySortFixture_getSortButtonTextEl).call(this);
30
+ const buttonText = SkyAppTestUtility.getText(sortButtonTextEl);
31
+ /* istanbul ignore else */
32
+ if (sortButtonTextEl && buttonText) {
33
+ return {
34
+ buttonText: buttonText,
35
+ isOpen: __classPrivateFieldGet(this, _SkySortFixture_instances, "m", _SkySortFixture_getDropdownMenuEl).call(this) !== null,
36
+ };
37
+ }
38
+ else {
39
+ return {
40
+ buttonText: '',
41
+ isOpen: __classPrivateFieldGet(this, _SkySortFixture_instances, "m", _SkySortFixture_getDropdownMenuEl).call(this) !== null,
42
+ };
43
+ }
29
44
  }
30
45
  /**
31
46
  * The properties of each sort menu item. Menu items are only available when the menu dropdown
@@ -34,10 +49,10 @@ export class SkySortFixture {
34
49
  get menuItems() {
35
50
  // Return undefined when we can't determine what the options are.
36
51
  // We do this to avoid any confusion with an empty set of options.
37
- if (!this.menu.isOpen) {
52
+ if (!this.menu?.isOpen) {
38
53
  return;
39
54
  }
40
- return this.getSortItems().map((item, i) => {
55
+ return __classPrivateFieldGet(this, _SkySortFixture_instances, "m", _SkySortFixture_getSortItems).call(this).map((item, i) => {
41
56
  const itemButton = item.querySelector('button');
42
57
  return {
43
58
  index: i,
@@ -51,10 +66,10 @@ export class SkySortFixture {
51
66
  */
52
67
  async closeMenu() {
53
68
  // if the menu is already closed, do nothing
54
- if (!this.menu.isOpen) {
69
+ if (!this.menu?.isOpen) {
55
70
  return;
56
71
  }
57
- const menu = this.getDropdownButtonEl();
72
+ const menu = __classPrivateFieldGet(this, _SkySortFixture_instances, "m", _SkySortFixture_getDropdownButtonEl).call(this);
58
73
  if (menu !== undefined && !menu.disabled) {
59
74
  menu.click();
60
75
  this.fixture.detectChanges();
@@ -68,10 +83,10 @@ export class SkySortFixture {
68
83
  */
69
84
  async openMenu() {
70
85
  // if the menu is already open, do nothing
71
- if (this.menu.isOpen) {
86
+ if (this.menu?.isOpen) {
72
87
  return;
73
88
  }
74
- const menu = this.getDropdownButtonEl();
89
+ const menu = __classPrivateFieldGet(this, _SkySortFixture_instances, "m", _SkySortFixture_getDropdownButtonEl).call(this);
75
90
  if (menu !== undefined && !menu.disabled) {
76
91
  menu.click();
77
92
  this.fixture.detectChanges();
@@ -85,7 +100,7 @@ export class SkySortFixture {
85
100
  * @param menuItemIndex The index of the menu item to select.
86
101
  */
87
102
  async selectMenuItemByIndex(menuItemIndex) {
88
- return this.selectMenuItem((_item, index) => {
103
+ return __classPrivateFieldGet(this, _SkySortFixture_instances, "m", _SkySortFixture_selectMenuItem).call(this, (_item, index) => {
89
104
  return index === menuItemIndex;
90
105
  });
91
106
  }
@@ -95,47 +110,47 @@ export class SkySortFixture {
95
110
  * @param menuItemText The text of the menu item to select.
96
111
  */
97
112
  async selectMenuItemByText(menuItemText) {
98
- return this.selectMenuItem((item) => {
99
- return SkyAppTestUtility.getText(item) === menuItemText;
100
- });
101
- }
102
- //#region helpers
103
- getDropdownButtonEl() {
104
- return this._debugEl.query(By.css('.sky-dropdown-button'))
105
- ?.nativeElement;
106
- }
107
- getDropdownMenuEl() {
108
- return document.querySelector('sky-overlay .sky-dropdown-menu');
109
- }
110
- getSortButtonTextEl() {
111
- return this._debugEl.query(By.css('.sky-sort-btn-text'))
112
- ?.nativeElement;
113
- }
114
- getSortItems() {
115
- const resultNodes = document.querySelectorAll('sky-overlay .sky-sort-item');
116
- return Array.prototype.slice.call(resultNodes);
117
- }
118
- /**
119
- * Ensures the sort menu is open and selects the menu item via a selection predicate,
120
- * if a matching item is available.
121
- * @param selectionPredicate The menu item selector method to use.
122
- */
123
- async selectMenuItem(selectionPredicate) {
124
- // make sure the sort menu is open
125
- if (!this.menu.isOpen) {
126
- await this.openMenu();
113
+ /* istanbul ignore else */
114
+ if (menuItemText) {
115
+ return __classPrivateFieldGet(this, _SkySortFixture_instances, "m", _SkySortFixture_selectMenuItem).call(this, (item) => {
116
+ return SkyAppTestUtility.getText(item) === menuItemText;
117
+ });
127
118
  }
128
- // find the requested menu item using the selectionPredicate parameter
129
- const items = this.getSortItems();
130
- const targetItem = items.find((item, index) => selectionPredicate(item, index));
131
- // if we found the item, select it
132
- if (targetItem) {
133
- // we've got the '.sky-sort-item' div, but we want to click it's child button element
134
- const targetButton = targetItem.querySelector('button');
135
- targetButton.click();
136
- this.fixture.detectChanges();
137
- return this.fixture.whenStable();
119
+ else {
120
+ return;
138
121
  }
139
122
  }
140
123
  }
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC1maXh0dXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xpc3RzL3Rlc3Rpbmcvc3JjL3NvcnQvc29ydC1maXh0dXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUt2RDs7Ozs7R0FLRztBQUNILE1BQU0sT0FBTyxjQUFjO0lBMkN6QixZQUFvQixPQUE4QixFQUFFLFNBQWlCO1FBQWpELFlBQU8sR0FBUCxPQUFPLENBQXVCO1FBQ2hELElBQUksQ0FBQyxRQUFRLEdBQUcsaUJBQWlCLENBQUMsdUJBQXVCLENBQ3ZELE9BQU8sRUFDUCxTQUFTLEVBQ1QsVUFBVSxDQUNYLENBQUM7SUFDSixDQUFDO0lBaEREOzs7T0FHRztJQUNILElBQVcsY0FBYztRQUN2QixPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxJQUFJO1FBQ2IsT0FBTztZQUNMLFVBQVUsRUFBRSxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDakUsTUFBTSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxLQUFLLElBQUk7U0FDMUMsQ0FBQztJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFXLFNBQVM7UUFDbEIsaUVBQWlFO1FBQ2pFLGtFQUFrRTtRQUNsRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDckIsT0FBTztTQUNSO1FBRUQsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsR0FBRyxDQUFD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LENBQUM7SUFFTyxZQUFZO1FBQ2xCLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1FBQzVFLE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssS0FBSyxDQUFDLGNBQWMsQ0FDMUIsa0JBQWlFO1FBRWpFLGtDQUFrQztRQUNsQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDckIsTUFBTSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDdkI7UUFFRCxzRUFBc0U7UUFDdEUsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ2xDLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFpQixFQUFFLEtBQWEsRUFBRSxFQUFFLENBQ2pFLGtCQUFrQixDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FDaEMsQ0FBQztRQUVGLGtDQUFrQztRQUNsQyxJQUFJLFVBQVUsRUFBRTtZQUNkLHFGQUFxRjtZQUNyRixNQUFNLFlBQVksR0FBRyxVQUFVLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3hELFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUVyQixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzdCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztTQUNsQztJQUNILENBQUM7Q0FHRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlYnVnRWxlbWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50Rml4dHVyZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvdGVzdGluZyc7XG5pbXBvcnQgeyBCeSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgU2t5QXBwVGVzdFV0aWxpdHkgfSBmcm9tICdAc2t5dXgtc2RrL3Rlc3RpbmcnO1xuXG5pbXBvcnQgeyBTa3lTb3J0Rml4dHVyZU1lbnUgfSBmcm9tICcuL3NvcnQtZml4dHVyZS1tZW51JztcbmltcG9ydCB7IFNreVNvcnRGaXh0dXJlTWVudUl0ZW0gfSBmcm9tICcuL3NvcnQtZml4dHVyZS1tZW51LWl0ZW0nO1xuXG4vKipcbiAqIFByb3ZpZGVzIGluZm9ybWF0aW9uIGZvciBhbmQgaW50ZXJhY3Rpb24gd2l0aCBhIFNLWSBVWCBzb3J0IGNvbXBvbmVudC5cbiAqIEJ5IHVzaW5nIHRoZSBmaXh0dXJlIEFQSSwgYSB0ZXN0IGluc3VsYXRlcyBpdHNlbGYgYWdhaW5zdCB1cGRhdGVzIHRvIHRoZSBpbnRlcm5hbHNcbiAqIG9mIGEgY29tcG9uZW50LCBzdWNoIGFzIGNoYW5naW5nIGl0cyBET00gc3RydWN0dXJlLlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjbGFzcyBTa3lTb3J0Rml4dHVyZSB7XG4gIC8qKlxuICAgKiBUaGUgYWN0aXZlIHNvcnQgbWVudSBpdGVtLCBpZiBvbmUgZXhpc3RzLiBNZW51IGl0ZW1zIGFyZSBvbmx5IGF2YWlsYWJsZSB3aGVuIHRoZSBtZW51IGRyb3Bkb3duXG4gICAqIGlzIG9wZW4uIElmIHRoZSBtZW51IGRyb3Bkb3duIGlzIGNsb3NlZCwgdGhpcyBwcm9wZXJ0eSB3aWxsIGJlIHVuZGVmaW5lZC5cbiAgICovXG4gIHB1YmxpYyBnZXQgYWN0aXZlTWVudUl0ZW0oKTogU2t5U29ydEZpeHR1cmVNZW51SXRlbSB7XG4gICAgcmV0dXJuIHRoaXMubWVudUl0ZW1zPy5maW5kKCh4KSA9PiB4LmlzQWN0aXZlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgc29ydCBtZW51J3MgcHJvcGVydGllcy5cbiAgICovXG4gIHB1YmxpYyBnZXQgbWVudSgpOiBTa3lTb3J0Rml4dHVyZU1lbnUge1xuICAgIHJldHVybiB7XG4gICAgICBidXR0b25UZXh0OiBTa3lBcHBUZXN0VXRpbGl0eS5nZXRUZXh0KHRoaXMuZ2V0U29ydEJ1dHRvblRleHRFbCgpKSxcbiAgICAgIGlzT3BlbjogdGhpcy5nZXREcm9wZG93bk1lbnVFbCgpICE9PSBudWxsLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogVGhlIHByb3BlcnRpZXMgb2YgZWFjaCBzb3J0IG1lbnUgaXRlbS4gTWVudSBpdGVtcyBhcmUgb25seSBhdmFpbGFibGUgd2hlbiB0aGUgbWVudSBkcm9wZG93blxuICAgKiBpcyBvcGVuLiBJZiB0aGUgbWVudSBkcm9wZG93biBpcyBjbG9zZWQsIHRoaXMgcHJvcGVydHkgd2lsbCBiZSB1bmRlZmluZWQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IG1lbnVJdGVtcygpOiBTa3lTb3J0Rml4dHVyZU1lbnVJdGVtW10ge1xuICAgIC8vIFJldHVybiB1bmRlZmluZWQgd2hlbiB3ZSBjYW4ndCBkZXRlcm1pbmUgd2hhdCB0aGUgb3B0aW9ucyBhcmUuXG4gICAgLy8gV2UgZG8gdGhpcyB0byBhdm9pZCBhbnkgY29uZnVzaW9uIHdpdGggYW4gZW1wdHkgc2V0IG9mIG9wdGlvbnMuXG4gICAgaWYgKCF0aGlzLm1lbnUuaXNPcGVuKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZ2V0U29ydEl0ZW1zKCkubWFwKChpdGVtOiBIVE1MRWxlbWVudCwgaTogbnVtYmVyKSA9PiB7XG4gICAgICBjb25zdCBpdGVtQnV0dG9uID0gaXRlbS5xdWVyeVNlbGVjdG9yKCdidXR0b24nKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaW5kZXg6IGksXG4gICAgICAgIGlzQWN0aXZlOiBpdGVtLmNsYXNzTGlzdC5jb250YWlucygnc2t5LXNvcnQtaXRlbS1zZWxlY3RlZCcpLFxuICAgICAgICB0ZXh0OiBTa3lBcHBUZXN0VXRpbGl0eS5nZXRUZXh0KGl0ZW1CdXR0b24pLFxuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2RlYnVnRWw6IERlYnVnRWxlbWVudDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZpeHR1cmU6IENvbXBvbmVudEZpeHR1cmU8YW55Piwgc2t5VGVzdElkOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9kZWJ1Z0VsID0gU2t5QXBwVGVzdFV0aWxpdHkuZ2V0RGVidWdFbGVtZW50QnlUZXN0SWQoXG4gICAgICBmaXh0dXJlLFxuICAgICAgc2t5VGVzdElkLFxuICAgICAgJ3NreS1zb3J0J1xuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2VzIHRoZSBzb3J0IGRyb3Bkb3duIG1lbnUgaWYgaXQgaXNuJ3QgY2xvc2VkIGFscmVhZHkuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgY2xvc2VNZW51KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIGlmIHRoZSBtZW51IGlzIGFscmVhZHkgY2xvc2VkLCBkbyBub3RoaW5nXG4gICAgaWYgKCF0aGlzLm1lbnUuaXNPcGVuKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbWVudSA9IHRoaXMuZ2V0RHJvcGRvd25CdXR0b25FbCgpO1xuICAgIGlmIChtZW51ICE9PSB1bmRlZmluZWQgJiYgIW1lbnUuZGlzYWJsZWQpIHtcbiAgICAgIG1lbnUuY2xpY2soKTtcblxuICAgICAgdGhpcy5maXh0dXJlLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIGF3YWl0IHRoaXMuZml4dHVyZS53aGVuU3RhYmxlKCk7XG5cbiAgICAgIHRoaXMuZml4dHVyZS5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICByZXR1cm4gdGhpcy5maXh0dXJlLndoZW5TdGFibGUoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogT3BlbnMgdGhlIHNvcnQgZHJvcGRvd24gbWVudSBpZiBpdCBpc24ndCBvcGVuIGFscmVhZHkuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgb3Blbk1lbnUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gaWYgdGhlIG1lbnUgaXMgYWxyZWFkeSBvcGVuLCBkbyBub3RoaW5nXG4gICAgaWYgKHRoaXMubWVudS5pc09wZW4pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBtZW51ID0gdGhpcy5nZXREcm9wZG93bkJ1dHRvbkVsKCk7XG5cbiAgICBpZiAobWVudSAhPT0gdW5kZWZpbmVkICYmICFtZW51LmRpc2FibGVkKSB7XG4gICAgICBtZW51LmNsaWNrKCk7XG5cbiAgICAgIHRoaXMuZml4dHVyZS5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICBhd2FpdCB0aGlzLmZpeHR1cmUud2hlblN0YWJsZSgpO1xuXG4gICAgICB0aGlzLmZpeHR1cmUuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgcmV0dXJuIHRoaXMuZml4dHVyZS53aGVuU3RhYmxlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEVuc3VyZXMgdGhlIHNvcnQgbWVudSBpcyBvcGVuIGFuZCBzZWxlY3RzIHRoZSBtZW51IGl0ZW0gd2l0aCB0aGUgc3BlY2lmaWVkIGluZGV4LCBpZiBpdCBleGlzdHMuXG4gICAqIEBwYXJhbSBtZW51SXRlbUluZGV4IFRoZSBpbmRleCBvZiB0aGUgbWVudSBpdGVtIHRvIHNlbGVjdC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBzZWxlY3RNZW51SXRlbUJ5SW5kZXgobWVudUl0ZW1JbmRleDogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0TWVudUl0ZW0oKF9pdGVtOiBIVE1MRWxlbWVudCwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgcmV0dXJuIGluZGV4ID09PSBtZW51SXRlbUluZGV4O1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEVuc3VyZXMgdGhlIHNvcnQgbWVudSBpcyBvcGVuIGFuZCBzZWxlY3RzIHRoZSBtZW51IGl0ZW0gd2l0aCB0aGUgc3BlY2lmaWVkIHRleHQsXG4gICAqIGlmIGEgbWF0Y2hpbmcgaXRlbSBpcyBhdmFpbGFibGUuXG4gICAqIEBwYXJhbSBtZW51SXRlbVRleHQgVGhlIHRleHQgb2YgdGhlIG1lbnUgaXRlbSB0byBzZWxlY3QuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2VsZWN0TWVudUl0ZW1CeVRleHQobWVudUl0ZW1UZXh0OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RNZW51SXRlbSgoaXRlbTogSFRNTEVsZW1lbnQpID0+IHtcbiAgICAgIHJldHVybiBTa3lBcHBUZXN0VXRpbGl0eS5nZXRUZXh0KGl0ZW0pID09PSBtZW51SXRlbVRleHQ7XG4gICAgfSk7XG4gIH1cblxuICAvLyNyZWdpb24gaGVscGVyc1xuXG4gIHByaXZhdGUgZ2V0RHJvcGRvd25CdXR0b25FbCgpOiBIVE1MQnV0dG9uRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuX2RlYnVnRWwucXVlcnkoQnkuY3NzKCcuc2t5LWRyb3Bkb3duLWJ1dHRvbicpKVxuICAgICAgPy5uYXRpdmVFbGVtZW50IGFzIEhUTUxCdXR0b25FbGVtZW50O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREcm9wZG93bk1lbnVFbCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3NreS1vdmVybGF5IC5za3ktZHJvcGRvd24tbWVudScpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTb3J0QnV0dG9uVGV4dEVsKCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5fZGVidWdFbC5xdWVyeShCeS5jc3MoJy5za3ktc29ydC1idG4tdGV4dCcpKVxuICAgICAgPy5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTb3J0SXRlbXMoKTogSFRNTEVsZW1lbnRbXSB7XG4gICAgY29uc3QgcmVzdWx0Tm9kZXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdza3ktb3ZlcmxheSAuc2t5LXNvcnQtaXRlbScpO1xuICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChyZXN1bHROb2Rlcyk7XG4gIH1cblxuICAvKipcbiAgICogRW5zdXJlcyB0aGUgc29ydCBtZW51IGlzIG9wZW4gYW5kIHNlbGVjdHMgdGhlIG1lbnUgaXRlbSB2aWEgYSBzZWxlY3Rpb24gcHJlZGljYXRlLFxuICAgKiBpZiBhIG1hdGNoaW5nIGl0ZW0gaXMgYXZhaWxhYmxlLlxuICAgKiBAcGFyYW0gc2VsZWN0aW9uUHJlZGljYXRlIFRoZSBtZW51IGl0ZW0gc2VsZWN0b3IgbWV0aG9kIHRvIHVzZS5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgc2VsZWN0TWVudUl0ZW0oXG4gICAgc2VsZWN0aW9uUHJlZGljYXRlOiAoaXRlbTogSFRNTEVsZW1lbnQsIGluZGV4OiBudW1iZXIpID0+IGJvb2xlYW5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gbWFrZSBzdXJlIHRoZSBzb3J0IG1lbnUgaXMgb3BlblxuICAgIGlmICghdGhpcy5tZW51LmlzT3Blbikge1xuICAgICAgYXdhaXQgdGhpcy5vcGVuTWVudSgpO1xuICAgIH1cblxuICAgIC8vIGZpbmQgdGhlIHJlcXVlc3RlZCBtZW51IGl0ZW0gdXNpbmcgdGhlIHNlbGVjdGlvblByZWRpY2F0ZSBwYXJhbWV0ZXJcbiAgICBjb25zdCBpdGVtcyA9IHRoaXMuZ2V0U29ydEl0ZW1zKCk7XG4gICAgY29uc3QgdGFyZ2V0SXRlbSA9IGl0ZW1zLmZpbmQoKGl0ZW06IEhUTUxFbGVtZW50LCBpbmRleDogbnVtYmVyKSA9PlxuICAgICAgc2VsZWN0aW9uUHJlZGljYXRlKGl0ZW0sIGluZGV4KVxuICAgICk7XG5cbiAgICAvLyBpZiB3ZSBmb3VuZCB0aGUgaXRlbSwgc2VsZWN0IGl0XG4gICAgaWYgKHRhcmdldEl0ZW0pIHtcbiAgICAgIC8vIHdlJ3ZlIGdvdCB0aGUgJy5za3ktc29ydC1pdGVtJyBkaXYsIGJ1dCB3ZSB3YW50IHRvIGNsaWNrIGl0J3MgY2hpbGQgYnV0dG9uIGVsZW1lbnRcbiAgICAgIGNvbnN0IHRhcmdldEJ1dHRvbiA9IHRhcmdldEl0ZW0ucXVlcnlTZWxlY3RvcignYnV0dG9uJyk7XG4gICAgICB0YXJnZXRCdXR0b24uY2xpY2soKTtcblxuICAgICAgdGhpcy5maXh0dXJlLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIHJldHVybiB0aGlzLmZpeHR1cmUud2hlblN0YWJsZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxufVxuIl19
124
+ _SkySortFixture_debugEl = new WeakMap(), _SkySortFixture_instances = new WeakSet(), _SkySortFixture_getDropdownButtonEl = function _SkySortFixture_getDropdownButtonEl() {
125
+ return __classPrivateFieldGet(this, _SkySortFixture_debugEl, "f").query(By.css('.sky-dropdown-button')).nativeElement;
126
+ }, _SkySortFixture_getDropdownMenuEl = function _SkySortFixture_getDropdownMenuEl() {
127
+ return document.querySelector('sky-overlay .sky-dropdown-menu');
128
+ }, _SkySortFixture_getSortButtonTextEl = function _SkySortFixture_getSortButtonTextEl() {
129
+ return __classPrivateFieldGet(this, _SkySortFixture_debugEl, "f").query(By.css('.sky-sort-btn-text')).nativeElement;
130
+ }, _SkySortFixture_getSortItems = function _SkySortFixture_getSortItems() {
131
+ const resultNodes = document.querySelectorAll('sky-overlay .sky-sort-item');
132
+ return Array.prototype.slice.call(resultNodes);
133
+ }, _SkySortFixture_selectMenuItem =
134
+ /**
135
+ * Ensures the sort menu is open and selects the menu item via a selection predicate,
136
+ * if a matching item is available.
137
+ * @param selectionPredicate The menu item selector method to use.
138
+ */
139
+ async function _SkySortFixture_selectMenuItem(selectionPredicate) {
140
+ // make sure the sort menu is open
141
+ if (!this.menu?.isOpen) {
142
+ await this.openMenu();
143
+ }
144
+ // find the requested menu item using the selectionPredicate parameter
145
+ const items = __classPrivateFieldGet(this, _SkySortFixture_instances, "m", _SkySortFixture_getSortItems).call(this);
146
+ const targetItem = items.find((item, index) => selectionPredicate(item, index));
147
+ // if we found the item, select it
148
+ if (targetItem) {
149
+ // we've got the '.sky-sort-item' div, but we want to click it's child button element
150
+ const targetButton = targetItem.querySelector('button');
151
+ targetButton?.click();
152
+ this.fixture.detectChanges();
153
+ return this.fixture.whenStable();
154
+ }
155
+ };
156
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC1maXh0dXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xpc3RzL3Rlc3Rpbmcvc3JjL3NvcnQvc29ydC1maXh0dXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBS3ZEOzs7OztHQUtHO0FBQ0gsTUFBTSxPQUFPLGNBQWM7SUFxRHpCLFlBQW9CLE9BQThCLEVBQUUsU0FBaUI7UUFBakQsWUFBTyxHQUFQLE9BQU8sQ0FBdUI7O1FBRmxELDBDQUF1QjtRQUdyQix1QkFBQSxJQUFJLDJCQUFZLGlCQUFpQixDQUFDLHVCQUF1QixDQUN2RCxPQUFPLEVBQ1AsU0FBUyxFQUNULFVBQVUsQ0FDWCxNQUFBLENBQUM7SUFDSixDQUFDO0lBMUREOzs7T0FHRztJQUNILElBQVcsY0FBYztRQUN2QixPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxJQUFJO1FBQ2IsTUFBTSxnQkFBZ0IsR0FBRyx1QkFBQSxJQUFJLHNFQUFxQixNQUF6QixJQUFJLENBQXVCLENBQUM7UUFDckQsTUFBTSxVQUFVLEdBQUcsaUJBQWlCLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDL0QsMEJBQTBCO1FBQzFCLElBQUksZ0JBQWdCLElBQUksVUFBVSxFQUFFO1lBQ2xDLE9BQU87Z0JBQ0wsVUFBVSxFQUFFLFVBQVU7Z0JBQ3RCLE1BQU0sRUFBRSx1QkFBQSxJQUFJLG9FQUFtQixNQUF2QixJQUFJLENBQXFCLEtBQUssSUFBSTthQUMzQyxDQUFDO1NBQ0g7YUFBTTtZ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QyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEQsWUFBWSxFQUFFLEtBQUssRUFBRSxDQUFDO1FBRXRCLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDN0IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO0tBQ2xDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlYnVnRWxlbWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50Rml4dHVyZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvdGVzdGluZyc7XG5pbXBvcnQgeyBCeSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgU2t5QXBwVGVzdFV0aWxpdHkgfSBmcm9tICdAc2t5dXgtc2RrL3Rlc3RpbmcnO1xuXG5pbXBvcnQgeyBTa3lTb3J0Rml4dHVyZU1lbnUgfSBmcm9tICcuL3NvcnQtZml4dHVyZS1tZW51JztcbmltcG9ydCB7IFNreVNvcnRGaXh0dXJlTWVudUl0ZW0gfSBmcm9tICcuL3NvcnQtZml4dHVyZS1tZW51LWl0ZW0nO1xuXG4vKipcbiAqIFByb3ZpZGVzIGluZm9ybWF0aW9uIGZvciBhbmQgaW50ZXJhY3Rpb24gd2l0aCBhIFNLWSBVWCBzb3J0IGNvbXBvbmVudC5cbiAqIEJ5IHVzaW5nIHRoZSBmaXh0dXJlIEFQSSwgYSB0ZXN0IGluc3VsYXRlcyBpdHNlbGYgYWdhaW5zdCB1cGRhdGVzIHRvIHRoZSBpbnRlcm5hbHNcbiAqIG9mIGEgY29tcG9uZW50LCBzdWNoIGFzIGNoYW5naW5nIGl0cyBET00gc3RydWN0dXJlLlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjbGFzcyBTa3lTb3J0Rml4dHVyZSB7XG4gIC8qKlxuICAgKiBUaGUgYWN0aXZlIHNvcnQgbWVudSBpdGVtLCBpZiBvbmUgZXhpc3RzLiBNZW51IGl0ZW1zIGFyZSBvbmx5IGF2YWlsYWJsZSB3aGVuIHRoZSBtZW51IGRyb3Bkb3duXG4gICAqIGlzIG9wZW4uIElmIHRoZSBtZW51IGRyb3Bkb3duIGlzIGNsb3NlZCwgdGhpcyBwcm9wZXJ0eSB3aWxsIGJlIHVuZGVmaW5lZC5cbiAgICovXG4gIHB1YmxpYyBnZXQgYWN0aXZlTWVudUl0ZW0oKTogU2t5U29ydEZpeHR1cmVNZW51SXRlbSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMubWVudUl0ZW1zPy5maW5kKCh4KSA9PiB4LmlzQWN0aXZlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgc29ydCBtZW51J3MgcHJvcGVydGllcy5cbiAgICovXG4gIHB1YmxpYyBnZXQgbWVudSgpOiBTa3lTb3J0Rml4dHVyZU1lbnUgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHNvcnRCdXR0b25UZXh0RWwgPSB0aGlzLiNnZXRTb3J0QnV0dG9uVGV4dEVsKCk7XG4gICAgY29uc3QgYnV0dG9uVGV4dCA9IFNreUFwcFRlc3RVdGlsaXR5LmdldFRleHQoc29ydEJ1dHRvblRleHRFbCk7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoc29ydEJ1dHRvblRleHRFbCAmJiBidXR0b25UZXh0KSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBidXR0b25UZXh0OiBidXR0b25UZXh0LFxuICAgICAgICBpc09wZW46IHRoaXMuI2dldERyb3Bkb3duTWVudUVsKCkgIT09IG51bGwsXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBidXR0b25UZXh0OiAnJyxcbiAgICAgICAgaXNPcGVuOiB0aGlzLiNnZXREcm9wZG93bk1lbnVFbCgpICE9PSBudWxsLFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhlIHByb3BlcnRpZXMgb2YgZWFjaCBzb3J0IG1lbnUgaXRlbS4gTWVudSBpdGVtcyBhcmUgb25seSBhdmFpbGFibGUgd2hlbiB0aGUgbWVudSBkcm9wZG93blxuICAgKiBpcyBvcGVuLiBJZiB0aGUgbWVudSBkcm9wZG93biBpcyBjbG9zZWQsIHRoaXMgcHJvcGVydHkgd2lsbCBiZSB1bmRlZmluZWQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IG1lbnVJdGVtcygpOiBTa3lTb3J0Rml4dHVyZU1lbnVJdGVtW10gfCB1bmRlZmluZWQge1xuICAgIC8vIFJldHVybiB1bmRlZmluZWQgd2hlbiB3ZSBjYW4ndCBkZXRlcm1pbmUgd2hhdCB0aGUgb3B0aW9ucyBhcmUuXG4gICAgLy8gV2UgZG8gdGhpcyB0byBhdm9pZCBhbnkgY29uZnVzaW9uIHdpdGggYW4gZW1wdHkgc2V0IG9mIG9wdGlvbnMuXG4gICAgaWYgKCF0aGlzLm1lbnU/LmlzT3Blbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLiNnZXRTb3J0SXRlbXMoKS5tYXAoKGl0ZW06IEhUTUxFbGVtZW50LCBpOiBudW1iZXIpID0+IHtcbiAgICAgIGNvbnN0IGl0ZW1CdXR0b24gPSBpdGVtLnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbicpO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBpbmRleDogaSxcbiAgICAgICAgaXNBY3RpdmU6IGl0ZW0uY2xhc3NMaXN0LmNvbnRhaW5zKCdza3ktc29ydC1pdGVtLXNlbGVjdGVkJyksXG4gICAgICAgIHRleHQ6IFNreUFwcFRlc3RVdGlsaXR5LmdldFRleHQoaXRlbUJ1dHRvbiksXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgI2RlYnVnRWw6IERlYnVnRWxlbWVudDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZpeHR1cmU6IENvbXBvbmVudEZpeHR1cmU8YW55Piwgc2t5VGVzdElkOiBzdHJpbmcpIHtcbiAgICB0aGlzLiNkZWJ1Z0VsID0gU2t5QXBwVGVzdFV0aWxpdHkuZ2V0RGVidWdFbGVtZW50QnlUZXN0SWQoXG4gICAgICBmaXh0dXJlLFxuICAgICAgc2t5VGVzdElkLFxuICAgICAgJ3NreS1zb3J0J1xuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2VzIHRoZSBzb3J0IGRyb3Bkb3duIG1lbnUgaWYgaXQgaXNuJ3QgY2xvc2VkIGFscmVhZHkuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgY2xvc2VNZW51KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIGlmIHRoZSBtZW51IGlzIGFscmVhZHkgY2xvc2VkLCBkbyBub3RoaW5nXG4gICAgaWYgKCF0aGlzLm1lbnU/LmlzT3Blbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG1lbnUgPSB0aGlzLiNnZXREcm9wZG93bkJ1dHRvbkVsKCk7XG4gICAgaWYgKG1lbnUgIT09IHVuZGVmaW5lZCAmJiAhbWVudS5kaXNhYmxlZCkge1xuICAgICAgbWVudS5jbGljaygpO1xuXG4gICAgICB0aGlzLmZpeHR1cmUuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgYXdhaXQgdGhpcy5maXh0dXJlLndoZW5TdGFibGUoKTtcblxuICAgICAgdGhpcy5maXh0dXJlLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIHJldHVybiB0aGlzLmZpeHR1cmUud2hlblN0YWJsZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBPcGVucyB0aGUgc29ydCBkcm9wZG93biBtZW51IGlmIGl0IGlzbid0IG9wZW4gYWxyZWFkeS5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBvcGVuTWVudSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyBpZiB0aGUgbWVudSBpcyBhbHJlYWR5IG9wZW4sIGRvIG5vdGhpbmdcbiAgICBpZiAodGhpcy5tZW51Py5pc09wZW4pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBtZW51ID0gdGhpcy4jZ2V0RHJvcGRvd25CdXR0b25FbCgpO1xuXG4gICAgaWYgKG1lbnUgIT09IHVuZGVmaW5lZCAmJiAhbWVudS5kaXNhYmxlZCkge1xuICAgICAgbWVudS5jbGljaygpO1xuXG4gICAgICB0aGlzLmZpeHR1cmUuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgYXdhaXQgdGhpcy5maXh0dXJlLndoZW5TdGFibGUoKTtcblxuICAgICAgdGhpcy5maXh0dXJlLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIHJldHVybiB0aGlzLmZpeHR1cmUud2hlblN0YWJsZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBFbnN1cmVzIHRoZSBzb3J0IG1lbnUgaXMgb3BlbiBhbmQgc2VsZWN0cyB0aGUgbWVudSBpdGVtIHdpdGggdGhlIHNwZWNpZmllZCBpbmRleCwgaWYgaXQgZXhpc3RzLlxuICAgKiBAcGFyYW0gbWVudUl0ZW1JbmRleCBUaGUgaW5kZXggb2YgdGhlIG1lbnUgaXRlbSB0byBzZWxlY3QuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2VsZWN0TWVudUl0ZW1CeUluZGV4KG1lbnVJdGVtSW5kZXg6IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLiNzZWxlY3RNZW51SXRlbSgoX2l0ZW06IEhUTUxFbGVtZW50LCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICByZXR1cm4gaW5kZXggPT09IG1lbnVJdGVtSW5kZXg7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRW5zdXJlcyB0aGUgc29ydCBtZW51IGlzIG9wZW4gYW5kIHNlbGVjdHMgdGhlIG1lbnUgaXRlbSB3aXRoIHRoZSBzcGVjaWZpZWQgdGV4dCxcbiAgICogaWYgYSBtYXRjaGluZyBpdGVtIGlzIGF2YWlsYWJsZS5cbiAgICogQHBhcmFtIG1lbnVJdGVtVGV4dCBUaGUgdGV4dCBvZiB0aGUgbWVudSBpdGVtIHRvIHNlbGVjdC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBzZWxlY3RNZW51SXRlbUJ5VGV4dChcbiAgICBtZW51SXRlbVRleHQ6IHN0cmluZyB8IHVuZGVmaW5lZFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChtZW51SXRlbVRleHQpIHtcbiAgICAgIHJldHVybiB0aGlzLiNzZWxlY3RNZW51SXRlbSgoaXRlbTogSFRNTEVsZW1lbnQpID0+IHtcbiAgICAgICAgcmV0dXJuIFNreUFwcFRlc3RVdGlsaXR5LmdldFRleHQoaXRlbSkgPT09IG1lbnVJdGVtVGV4dDtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgLy8jcmVnaW9uIGhlbHBlcnNcblxuICAjZ2V0RHJvcGRvd25CdXR0b25FbCgpOiBIVE1MQnV0dG9uRWxlbWVudCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI2RlYnVnRWwucXVlcnkoQnkuY3NzKCcuc2t5LWRyb3Bkb3duLWJ1dHRvbicpKS5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgI2dldERyb3Bkb3duTWVudUVsKCk6IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gICAgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3NreS1vdmVybGF5IC5za3ktZHJvcGRvd24tbWVudScpO1xuICB9XG5cbiAgI2dldFNvcnRCdXR0b25UZXh0RWwoKTogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNkZWJ1Z0VsLnF1ZXJ5KEJ5LmNzcygnLnNreS1zb3J0LWJ0bi10ZXh0JykpLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICAjZ2V0U29ydEl0ZW1zKCk6IEhUTUxFbGVtZW50W10ge1xuICAgIGNvbnN0IHJlc3VsdE5vZGVzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnc2t5LW92ZXJsYXkgLnNreS1zb3J0LWl0ZW0nKTtcbiAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwocmVzdWx0Tm9kZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVuc3VyZXMgdGhlIHNvcnQgbWVudSBpcyBvcGVuIGFuZCBzZWxlY3RzIHRoZSBtZW51IGl0ZW0gdmlhIGEgc2VsZWN0aW9uIHByZWRpY2F0ZSxcbiAgICogaWYgYSBtYXRjaGluZyBpdGVtIGlzIGF2YWlsYWJsZS5cbiAgICogQHBhcmFtIHNlbGVjdGlvblByZWRpY2F0ZSBUaGUgbWVudSBpdGVtIHNlbGVjdG9yIG1ldGhvZCB0byB1c2UuXG4gICAqL1xuICBhc3luYyAjc2VsZWN0TWVudUl0ZW0oXG4gICAgc2VsZWN0aW9uUHJlZGljYXRlOiAoaXRlbTogSFRNTEVsZW1lbnQsIGluZGV4OiBudW1iZXIpID0+IGJvb2xlYW5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gbWFrZSBzdXJlIHRoZSBzb3J0IG1lbnUgaXMgb3BlblxuICAgIGlmICghdGhpcy5tZW51Py5pc09wZW4pIHtcbiAgICAgIGF3YWl0IHRoaXMub3Blbk1lbnUoKTtcbiAgICB9XG5cbiAgICAvLyBmaW5kIHRoZSByZXF1ZXN0ZWQgbWVudSBpdGVtIHVzaW5nIHRoZSBzZWxlY3Rpb25QcmVkaWNhdGUgcGFyYW1ldGVyXG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLiNnZXRTb3J0SXRlbXMoKTtcbiAgICBjb25zdCB0YXJnZXRJdGVtID0gaXRlbXMuZmluZCgoaXRlbTogSFRNTEVsZW1lbnQsIGluZGV4OiBudW1iZXIpID0+XG4gICAgICBzZWxlY3Rpb25QcmVkaWNhdGUoaXRlbSwgaW5kZXgpXG4gICAgKTtcblxuICAgIC8vIGlmIHdlIGZvdW5kIHRoZSBpdGVtLCBzZWxlY3QgaXRcbiAgICBpZiAodGFyZ2V0SXRlbSkge1xuICAgICAgLy8gd2UndmUgZ290IHRoZSAnLnNreS1zb3J0LWl0ZW0nIGRpdiwgYnV0IHdlIHdhbnQgdG8gY2xpY2sgaXQncyBjaGlsZCBidXR0b24gZWxlbWVudFxuICAgICAgY29uc3QgdGFyZ2V0QnV0dG9uID0gdGFyZ2V0SXRlbS5xdWVyeVNlbGVjdG9yKCdidXR0b24nKTtcbiAgICAgIHRhcmdldEJ1dHRvbj8uY2xpY2soKTtcblxuICAgICAgdGhpcy5maXh0dXJlLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIHJldHVybiB0aGlzLmZpeHR1cmUud2hlblN0YWJsZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxufVxuIl19
@@ -366,6 +366,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
366
366
  }]
367
367
  }] });
368
368
 
369
+ var _SkySortFixture_instances, _SkySortFixture_debugEl, _SkySortFixture_getDropdownButtonEl, _SkySortFixture_getDropdownMenuEl, _SkySortFixture_getSortButtonTextEl, _SkySortFixture_getSortItems, _SkySortFixture_selectMenuItem;
369
370
  /**
370
371
  * Provides information for and interaction with a SKY UX sort component.
371
372
  * By using the fixture API, a test insulates itself against updates to the internals
@@ -375,7 +376,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
375
376
  class SkySortFixture {
376
377
  constructor(fixture, skyTestId) {
377
378
  this.fixture = fixture;
378
- this._debugEl = SkyAppTestUtility.getDebugElementByTestId(fixture, skyTestId, 'sky-sort');
379
+ _SkySortFixture_instances.add(this);
380
+ _SkySortFixture_debugEl.set(this, void 0);
381
+ __classPrivateFieldSet(this, _SkySortFixture_debugEl, SkyAppTestUtility.getDebugElementByTestId(fixture, skyTestId, 'sky-sort'), "f");
379
382
  }
380
383
  /**
381
384
  * The active sort menu item, if one exists. Menu items are only available when the menu dropdown
@@ -389,22 +392,34 @@ class SkySortFixture {
389
392
  * The sort menu's properties.
390
393
  */
391
394
  get menu() {
392
- return {
393
- buttonText: SkyAppTestUtility.getText(this.getSortButtonTextEl()),
394
- isOpen: this.getDropdownMenuEl() !== null,
395
- };
395
+ const sortButtonTextEl = __classPrivateFieldGet(this, _SkySortFixture_instances, "m", _SkySortFixture_getSortButtonTextEl).call(this);
396
+ const buttonText = SkyAppTestUtility.getText(sortButtonTextEl);
397
+ /* istanbul ignore else */
398
+ if (sortButtonTextEl && buttonText) {
399
+ return {
400
+ buttonText: buttonText,
401
+ isOpen: __classPrivateFieldGet(this, _SkySortFixture_instances, "m", _SkySortFixture_getDropdownMenuEl).call(this) !== null,
402
+ };
403
+ }
404
+ else {
405
+ return {
406
+ buttonText: '',
407
+ isOpen: __classPrivateFieldGet(this, _SkySortFixture_instances, "m", _SkySortFixture_getDropdownMenuEl).call(this) !== null,
408
+ };
409
+ }
396
410
  }
397
411
  /**
398
412
  * The properties of each sort menu item. Menu items are only available when the menu dropdown
399
413
  * is open. If the menu dropdown is closed, this property will be undefined.
400
414
  */
401
415
  get menuItems() {
416
+ var _a;
402
417
  // Return undefined when we can't determine what the options are.
403
418
  // We do this to avoid any confusion with an empty set of options.
404
- if (!this.menu.isOpen) {
419
+ if (!((_a = this.menu) === null || _a === void 0 ? void 0 : _a.isOpen)) {
405
420
  return;
406
421
  }
407
- return this.getSortItems().map((item, i) => {
422
+ return __classPrivateFieldGet(this, _SkySortFixture_instances, "m", _SkySortFixture_getSortItems).call(this).map((item, i) => {
408
423
  const itemButton = item.querySelector('button');
409
424
  return {
410
425
  index: i,
@@ -417,12 +432,13 @@ class SkySortFixture {
417
432
  * Closes the sort dropdown menu if it isn't closed already.
418
433
  */
419
434
  closeMenu() {
435
+ var _a;
420
436
  return __awaiter(this, void 0, void 0, function* () {
421
437
  // if the menu is already closed, do nothing
422
- if (!this.menu.isOpen) {
438
+ if (!((_a = this.menu) === null || _a === void 0 ? void 0 : _a.isOpen)) {
423
439
  return;
424
440
  }
425
- const menu = this.getDropdownButtonEl();
441
+ const menu = __classPrivateFieldGet(this, _SkySortFixture_instances, "m", _SkySortFixture_getDropdownButtonEl).call(this);
426
442
  if (menu !== undefined && !menu.disabled) {
427
443
  menu.click();
428
444
  this.fixture.detectChanges();
@@ -436,12 +452,13 @@ class SkySortFixture {
436
452
  * Opens the sort dropdown menu if it isn't open already.
437
453
  */
438
454
  openMenu() {
455
+ var _a;
439
456
  return __awaiter(this, void 0, void 0, function* () {
440
457
  // if the menu is already open, do nothing
441
- if (this.menu.isOpen) {
458
+ if ((_a = this.menu) === null || _a === void 0 ? void 0 : _a.isOpen) {
442
459
  return;
443
460
  }
444
- const menu = this.getDropdownButtonEl();
461
+ const menu = __classPrivateFieldGet(this, _SkySortFixture_instances, "m", _SkySortFixture_getDropdownButtonEl).call(this);
445
462
  if (menu !== undefined && !menu.disabled) {
446
463
  menu.click();
447
464
  this.fixture.detectChanges();
@@ -457,7 +474,7 @@ class SkySortFixture {
457
474
  */
458
475
  selectMenuItemByIndex(menuItemIndex) {
459
476
  return __awaiter(this, void 0, void 0, function* () {
460
- return this.selectMenuItem((_item, index) => {
477
+ return __classPrivateFieldGet(this, _SkySortFixture_instances, "m", _SkySortFixture_selectMenuItem).call(this, (_item, index) => {
461
478
  return index === menuItemIndex;
462
479
  });
463
480
  });
@@ -469,52 +486,53 @@ class SkySortFixture {
469
486
  */
470
487
  selectMenuItemByText(menuItemText) {
471
488
  return __awaiter(this, void 0, void 0, function* () {
472
- return this.selectMenuItem((item) => {
473
- return SkyAppTestUtility.getText(item) === menuItemText;
474
- });
489
+ /* istanbul ignore else */
490
+ if (menuItemText) {
491
+ return __classPrivateFieldGet(this, _SkySortFixture_instances, "m", _SkySortFixture_selectMenuItem).call(this, (item) => {
492
+ return SkyAppTestUtility.getText(item) === menuItemText;
493
+ });
494
+ }
495
+ else {
496
+ return;
497
+ }
475
498
  });
476
499
  }
477
- //#region helpers
478
- getDropdownButtonEl() {
479
- var _a;
480
- return (_a = this._debugEl.query(By.css('.sky-dropdown-button'))) === null || _a === void 0 ? void 0 : _a.nativeElement;
481
- }
482
- getDropdownMenuEl() {
483
- return document.querySelector('sky-overlay .sky-dropdown-menu');
484
- }
485
- getSortButtonTextEl() {
486
- var _a;
487
- return (_a = this._debugEl.query(By.css('.sky-sort-btn-text'))) === null || _a === void 0 ? void 0 : _a.nativeElement;
488
- }
489
- getSortItems() {
490
- const resultNodes = document.querySelectorAll('sky-overlay .sky-sort-item');
491
- return Array.prototype.slice.call(resultNodes);
492
- }
500
+ }
501
+ _SkySortFixture_debugEl = new WeakMap(), _SkySortFixture_instances = new WeakSet(), _SkySortFixture_getDropdownButtonEl = function _SkySortFixture_getDropdownButtonEl() {
502
+ return __classPrivateFieldGet(this, _SkySortFixture_debugEl, "f").query(By.css('.sky-dropdown-button')).nativeElement;
503
+ }, _SkySortFixture_getDropdownMenuEl = function _SkySortFixture_getDropdownMenuEl() {
504
+ return document.querySelector('sky-overlay .sky-dropdown-menu');
505
+ }, _SkySortFixture_getSortButtonTextEl = function _SkySortFixture_getSortButtonTextEl() {
506
+ return __classPrivateFieldGet(this, _SkySortFixture_debugEl, "f").query(By.css('.sky-sort-btn-text')).nativeElement;
507
+ }, _SkySortFixture_getSortItems = function _SkySortFixture_getSortItems() {
508
+ const resultNodes = document.querySelectorAll('sky-overlay .sky-sort-item');
509
+ return Array.prototype.slice.call(resultNodes);
510
+ }, _SkySortFixture_selectMenuItem =
493
511
  /**
494
512
  * Ensures the sort menu is open and selects the menu item via a selection predicate,
495
513
  * if a matching item is available.
496
514
  * @param selectionPredicate The menu item selector method to use.
497
515
  */
498
- selectMenuItem(selectionPredicate) {
516
+ function _SkySortFixture_selectMenuItem(selectionPredicate) {
517
+ var _a;
499
518
  return __awaiter(this, void 0, void 0, function* () {
500
519
  // make sure the sort menu is open
501
- if (!this.menu.isOpen) {
520
+ if (!((_a = this.menu) === null || _a === void 0 ? void 0 : _a.isOpen)) {
502
521
  yield this.openMenu();
503
522
  }
504
523
  // find the requested menu item using the selectionPredicate parameter
505
- const items = this.getSortItems();
524
+ const items = __classPrivateFieldGet(this, _SkySortFixture_instances, "m", _SkySortFixture_getSortItems).call(this);
506
525
  const targetItem = items.find((item, index) => selectionPredicate(item, index));
507
526
  // if we found the item, select it
508
527
  if (targetItem) {
509
528
  // we've got the '.sky-sort-item' div, but we want to click it's child button element
510
529
  const targetButton = targetItem.querySelector('button');
511
- targetButton.click();
530
+ targetButton === null || targetButton === void 0 ? void 0 : targetButton.click();
512
531
  this.fixture.detectChanges();
513
532
  return this.fixture.whenStable();
514
533
  }
515
534
  });
516
- }
517
- }
535
+ };
518
536
 
519
537
  /**
520
538
  * @internal
@@ -1 +1 @@
1
- {"version":3,"file":"skyux-lists-testing.mjs","sources":["../../../../../libs/components/lists/testing/src/filter/filter-testing.module.ts","../../../../../libs/components/lists/testing/src/filter/filter-fixture-summary.ts","../../../../../libs/components/lists/testing/src/filter/filter-fixture-button.ts","../../../../../libs/components/lists/testing/src/paging/paging-testing.module.ts","../../../../../libs/components/lists/testing/src/paging/paging-fixture.ts","../../../../../libs/components/lists/testing/src/repeater/repeater-item-harness.ts","../../../../../libs/components/lists/testing/src/repeater/repeater-harness.ts","../../../../../libs/components/lists/testing/src/sort/sort-testing.module.ts","../../../../../libs/components/lists/testing/src/sort/sort-fixture.ts","../../../../../libs/components/lists/testing/src/infinite-scroll/infinite-scroll-testing.module.ts","../../../../../libs/components/lists/testing/src/infinite-scroll/infinite-scroll-fixture.ts","../../../../../libs/components/lists/testing/src/infinite-scroll/infinite-scroll-harness.ts","../../../../../libs/components/lists/testing/src/skyux-lists-testing.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { SkyFilterModule } from '@skyux/lists';\n\n/**\n * @internal\n */\n@NgModule({\n exports: [SkyFilterModule],\n})\nexport class SkyFilterTestingModule {}\n","import { DebugElement } from '@angular/core';\nimport { ComponentFixture } from '@angular/core/testing';\nimport { SkyAppTestUtility } from '@skyux-sdk/testing';\n\n/**\n * Provides information for and interaction with a SKY UX filter summary component.\n * By using the fixture API, a test insulates itself against updates to the internals\n * of a component, such as changing its DOM structure.\n * @internal\n */\nexport class SkyFilterFixtureSummary {\n #debugElement: DebugElement;\n #fixture: ComponentFixture<any>;\n\n constructor(fixture: ComponentFixture<any>, skyTestId: string) {\n this.#fixture = fixture;\n this.#debugElement = SkyAppTestUtility.getDebugElementByTestId(\n this.#fixture,\n skyTestId,\n 'sky-filter-summary'\n );\n }\n\n public async filterCloseClick(index: number): Promise<any> {\n const summaryItems = this.#debugElement.nativeElement.querySelectorAll(\n 'sky-filter-summary-item'\n );\n if (summaryItems.length > index) {\n const summaryItem = summaryItems[index];\n if (summaryItem instanceof HTMLElement) {\n const closeButton = summaryItem.querySelector('.sky-token-btn-close');\n if (closeButton instanceof HTMLElement) {\n closeButton.click();\n this.#fixture.detectChanges();\n return this.#fixture.whenStable();\n }\n }\n }\n throw new Error(`Unable to click close for a filter index ${index}`);\n }\n}\n","import { DebugElement } from '@angular/core';\nimport { ComponentFixture } from '@angular/core/testing';\nimport { SkyAppTestUtility } from '@skyux-sdk/testing';\n\nimport { SkyListsFilterFixtureButton } from './lists-filter-fixture-button';\n\n/**\n * Provides information for and interaction with a SKY UX filter button component.\n * By using the fixture API, a test insulates itself against updates to the internals\n * of a component, such as changing its DOM structure.\n * @internal\n */\nexport class SkyFilterFixtureButton {\n private debugElement: DebugElement;\n\n constructor(private fixture: ComponentFixture<any>, skyTestId: string) {\n this.debugElement = SkyAppTestUtility.getDebugElementByTestId(\n this.fixture,\n skyTestId,\n 'sky-filter-button'\n );\n }\n\n /**\n * Click the button to apply the filter.\n */\n public async clickFilterButton(): Promise<any> {\n const button = this.#getButtonElement();\n if (button instanceof HTMLButtonElement && !button.disabled) {\n button.click();\n }\n this.fixture.detectChanges();\n return this.fixture.whenStable();\n }\n\n public get button(): SkyListsFilterFixtureButton {\n const buttonElement = this.#getButtonElement();\n return {\n ariaControls: buttonElement?.getAttribute('aria-controls') ?? undefined,\n ariaExpanded: buttonElement?.getAttribute('aria-expanded') === 'true',\n disabled: !!buttonElement?.disabled,\n id: buttonElement?.id,\n };\n }\n /**\n * Get the button text.\n */\n public get buttonText(): string {\n const text = this.#getButtonElement()?.innerText;\n return this.#normalizeText(text);\n }\n\n #getButtonElement(): HTMLButtonElement | null {\n return this.debugElement.nativeElement.querySelector('.sky-filter-btn');\n }\n\n #normalizeText(text: string | undefined): string {\n let retVal = '';\n if (text) {\n retVal = text?.trim().replace(/\\s+/g, ' ');\n }\n return retVal;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { SkyPagingModule } from '@skyux/lists';\n\n/**\n * @internal\n */\n@NgModule({\n exports: [SkyPagingModule],\n})\nexport class SkyPagingTestingModule {}\n","import { DebugElement } from '@angular/core';\nimport { ComponentFixture } from '@angular/core/testing';\nimport { By } from '@angular/platform-browser';\nimport { SkyAppTestUtility } from '@skyux-sdk/testing';\n\nimport { SkyPagingFixtureButton } from './paging-fixture-button';\n\n/**\n * Provides information for and interaction with a SKY UX paging component.\n * By using the fixture API, a test insulates itself against updates to the internals\n * of a component, such as changing its DOM structure.\n * @internal\n */\nexport class SkyPagingFixture {\n private _debugEl: DebugElement;\n\n /**\n * The id of the active page, if available.\n */\n public get activePageId(): string {\n return this.getPageId(this.activePageButton);\n }\n\n /**\n * Properties of the page links displayed in the paging component.\n */\n public get pageLinks(): SkyPagingFixtureButton[] {\n return this.pagingLinks.map((page: DebugElement) => {\n return {\n id: this.getPageId(page.nativeElement),\n isActive: page.nativeElement.classList.contains('sky-paging-current'),\n isEnabled: !page.nativeElement.disabled,\n };\n });\n }\n\n constructor(private fixture: ComponentFixture<any>, skyTestId: string) {\n this._debugEl = SkyAppTestUtility.getDebugElementByTestId(\n fixture,\n skyTestId,\n 'sky-paging'\n );\n\n this.waitForComponentInitialization();\n }\n\n /**\n * Selects the specified page by id, if it is enabled.\n */\n public async selectPage(id: string | number): Promise<void> {\n const pageButton = this.getPageLink(id.toString());\n\n if (pageButton !== undefined && !pageButton.disabled) {\n pageButton.click();\n\n this.fixture.detectChanges();\n return this.fixture.whenStable();\n }\n }\n\n /**\n * Clicks the next page button, if it is enabled.\n */\n public async selectNextPage(): Promise<void> {\n const nextButton = this.nextPageButton;\n\n if (nextButton !== undefined && !nextButton.disabled) {\n nextButton.click();\n\n this.fixture.detectChanges();\n return this.fixture.whenStable();\n }\n }\n\n /**\n * Clicks the previous page button, if it is enabled.\n */\n public async selectPreviousPage(): Promise<void> {\n const previousButton = this.previousPageButton;\n\n if (previousButton !== undefined && !previousButton.disabled) {\n previousButton.click();\n\n this.fixture.detectChanges();\n return this.fixture.whenStable();\n }\n }\n\n //#region helpers\n\n private get activePageButton(): HTMLButtonElement {\n return this._debugEl.query(\n By.css('.sky-list-paging-link .sky-paging-current')\n )?.nativeElement as HTMLButtonElement;\n }\n\n private get nextPageButton(): HTMLButtonElement {\n return this._debugEl.query(By.css('.sky-paging-btn[sky-cmp-id=\"next\"]'))\n ?.nativeElement as HTMLButtonElement;\n }\n\n private get previousPageButton(): HTMLButtonElement {\n return this._debugEl.query(By.css('.sky-paging-btn[sky-cmp-id=\"previous\"]'))\n ?.nativeElement as HTMLButtonElement;\n }\n\n private get pagingLinks(): DebugElement[] {\n return this._debugEl.queryAll(By.css('.sky-list-paging-link button'));\n }\n\n private getPageLink(id: string): HTMLButtonElement {\n return this._debugEl.query(\n By.css(`.sky-list-paging-link button[sky-cmp-id=\"${id}\"]`)\n )?.nativeElement as HTMLButtonElement;\n }\n\n private getPageId(page: HTMLButtonElement): string {\n return page?.getAttribute('sky-cmp-id') ?? '';\n }\n\n private async waitForComponentInitialization(): Promise<void> {\n this.fixture.detectChanges();\n await this.fixture.whenStable();\n\n this.fixture.detectChanges();\n return this.fixture.whenStable();\n }\n\n //#endregion\n}\n","import {\n ComponentHarness,\n HarnessPredicate,\n HarnessQuery,\n} from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\nimport { SkyCheckboxHarness } from '@skyux/forms/testing';\n\nimport { SkyRepeaterItemHarnessFilters } from './repeater-item-harness-filters';\n\n/**\n * Harness for interacting with a repeater item component in tests.\n * @internal\n */\nexport class SkyRepeaterItemHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-repeater-item';\n\n #getCheckbox = this.locatorForOptional(SkyCheckboxHarness);\n\n #getContent = this.locatorFor('.sky-repeater-item-content');\n\n #getTitle = this.locatorFor('.sky-repeater-item-title');\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyRepeaterItemHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyRepeaterItemHarnessFilters\n ): HarnessPredicate<SkyRepeaterItemHarness> {\n return SkyRepeaterItemHarness.getDataSkyIdPredicate(filters)\n .addOption('contentText', filters.contentText, async (harness, text) =>\n HarnessPredicate.stringMatches(await harness.getContentText(), text)\n )\n .addOption('titleText', filters.titleText, async (harness, text) =>\n HarnessPredicate.stringMatches(await harness.getTitleText(), text)\n );\n }\n\n /**\n * Whether the repeater item is selectable.\n */\n public async isSelectable(): Promise<boolean> {\n return !!(await this.#getCheckbox());\n }\n\n /**\n * Whether the repeater item is selected.\n */\n public async isSelected(): Promise<boolean> {\n if (!(await this.isSelectable())) {\n throw new Error(\n 'Could not determine if repeater item is selected because it is not selectable.'\n );\n }\n\n return (await this.#getCheckbox()).isChecked();\n }\n\n /**\n * Returns a child harness.\n */\n public async queryHarness<T extends ComponentHarness>(\n query: HarnessQuery<T>\n ): Promise<T | null> {\n return this.locatorForOptional(query)();\n }\n\n /**\n * Selects the repeater item.\n */\n public async select() {\n if (!(await this.isSelectable())) {\n throw new Error(\n 'Could not select the repeater item because it is not selectable.'\n );\n }\n\n await (await this.#getCheckbox()).check();\n }\n\n /**\n * Deselects the repeater item.\n */\n public async deselect(): Promise<void> {\n if (!(await this.isSelectable())) {\n throw new Error(\n 'Could not deselect the repeater item because it is not selectable.'\n );\n }\n\n await (await this.#getCheckbox()).uncheck();\n }\n\n /**\n * Gets the text of the repeater item content.\n */\n public async getContentText(): Promise<string> {\n return (await this.#getContent()).text();\n }\n\n /**\n * Gets the text of the repeater item title.\n */\n public async getTitleText(): Promise<string> {\n return (await this.#getTitle()).text();\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\n\nimport { SkyRepeaterHarnessFilters } from './repeater-harness-filters';\nimport { SkyRepeaterItemHarness } from './repeater-item-harness';\nimport { SkyRepeaterItemHarnessFilters } from './repeater-item-harness-filters';\n\n/**\n * Harness for interacting with a repeater component in tests.\n * @internal\n */\nexport class SkyRepeaterHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-repeater';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyRepeaterHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyRepeaterHarnessFilters\n ): HarnessPredicate<SkyRepeaterHarness> {\n return SkyRepeaterHarness.getDataSkyIdPredicate(filters);\n }\n\n /**\n * Gets a list of child repeater items.\n */\n public async getRepeaterItems(\n filters?: SkyRepeaterItemHarnessFilters\n ): Promise<SkyRepeaterItemHarness[]> {\n return this.locatorForAll(SkyRepeaterItemHarness.with(filters || {}))();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { NoopAnimationsModule } from '@angular/platform-browser/animations';\nimport { SkySortModule } from '@skyux/lists';\n\n/**\n * @internal\n */\n@NgModule({\n imports: [NoopAnimationsModule],\n exports: [SkySortModule],\n})\nexport class SkySortTestingModule {}\n","import { DebugElement } from '@angular/core';\nimport { ComponentFixture } from '@angular/core/testing';\nimport { By } from '@angular/platform-browser';\nimport { SkyAppTestUtility } from '@skyux-sdk/testing';\n\nimport { SkySortFixtureMenu } from './sort-fixture-menu';\nimport { SkySortFixtureMenuItem } from './sort-fixture-menu-item';\n\n/**\n * Provides information for and interaction with a SKY UX sort component.\n * By using the fixture API, a test insulates itself against updates to the internals\n * of a component, such as changing its DOM structure.\n * @internal\n */\nexport class SkySortFixture {\n /**\n * The active sort menu item, if one exists. Menu items are only available when the menu dropdown\n * is open. If the menu dropdown is closed, this property will be undefined.\n */\n public get activeMenuItem(): SkySortFixtureMenuItem {\n return this.menuItems?.find((x) => x.isActive);\n }\n\n /**\n * The sort menu's properties.\n */\n public get menu(): SkySortFixtureMenu {\n return {\n buttonText: SkyAppTestUtility.getText(this.getSortButtonTextEl()),\n isOpen: this.getDropdownMenuEl() !== null,\n };\n }\n\n /**\n * The properties of each sort menu item. Menu items are only available when the menu dropdown\n * is open. If the menu dropdown is closed, this property will be undefined.\n */\n public get menuItems(): SkySortFixtureMenuItem[] {\n // Return undefined when we can't determine what the options are.\n // We do this to avoid any confusion with an empty set of options.\n if (!this.menu.isOpen) {\n return;\n }\n\n return this.getSortItems().map((item: HTMLElement, i: number) => {\n const itemButton = item.querySelector('button');\n\n return {\n index: i,\n isActive: item.classList.contains('sky-sort-item-selected'),\n text: SkyAppTestUtility.getText(itemButton),\n };\n });\n }\n\n private _debugEl: DebugElement;\n\n constructor(private fixture: ComponentFixture<any>, skyTestId: string) {\n this._debugEl = SkyAppTestUtility.getDebugElementByTestId(\n fixture,\n skyTestId,\n 'sky-sort'\n );\n }\n\n /**\n * Closes the sort dropdown menu if it isn't closed already.\n */\n public async closeMenu(): Promise<void> {\n // if the menu is already closed, do nothing\n if (!this.menu.isOpen) {\n return;\n }\n\n const menu = this.getDropdownButtonEl();\n if (menu !== undefined && !menu.disabled) {\n menu.click();\n\n this.fixture.detectChanges();\n await this.fixture.whenStable();\n\n this.fixture.detectChanges();\n return this.fixture.whenStable();\n }\n }\n\n /**\n * Opens the sort dropdown menu if it isn't open already.\n */\n public async openMenu(): Promise<void> {\n // if the menu is already open, do nothing\n if (this.menu.isOpen) {\n return;\n }\n\n const menu = this.getDropdownButtonEl();\n\n if (menu !== undefined && !menu.disabled) {\n menu.click();\n\n this.fixture.detectChanges();\n await this.fixture.whenStable();\n\n this.fixture.detectChanges();\n return this.fixture.whenStable();\n }\n }\n\n /**\n * Ensures the sort menu is open and selects the menu item with the specified index, if it exists.\n * @param menuItemIndex The index of the menu item to select.\n */\n public async selectMenuItemByIndex(menuItemIndex: number): Promise<void> {\n return this.selectMenuItem((_item: HTMLElement, index: number) => {\n return index === menuItemIndex;\n });\n }\n\n /**\n * Ensures the sort menu is open and selects the menu item with the specified text,\n * if a matching item is available.\n * @param menuItemText The text of the menu item to select.\n */\n public async selectMenuItemByText(menuItemText: string): Promise<void> {\n return this.selectMenuItem((item: HTMLElement) => {\n return SkyAppTestUtility.getText(item) === menuItemText;\n });\n }\n\n //#region helpers\n\n private getDropdownButtonEl(): HTMLButtonElement {\n return this._debugEl.query(By.css('.sky-dropdown-button'))\n ?.nativeElement as HTMLButtonElement;\n }\n\n private getDropdownMenuEl(): HTMLElement {\n return document.querySelector('sky-overlay .sky-dropdown-menu');\n }\n\n private getSortButtonTextEl(): HTMLElement {\n return this._debugEl.query(By.css('.sky-sort-btn-text'))\n ?.nativeElement as HTMLElement;\n }\n\n private getSortItems(): HTMLElement[] {\n const resultNodes = document.querySelectorAll('sky-overlay .sky-sort-item');\n return Array.prototype.slice.call(resultNodes);\n }\n\n /**\n * Ensures the sort menu is open and selects the menu item via a selection predicate,\n * if a matching item is available.\n * @param selectionPredicate The menu item selector method to use.\n */\n private async selectMenuItem(\n selectionPredicate: (item: HTMLElement, index: number) => boolean\n ): Promise<void> {\n // make sure the sort menu is open\n if (!this.menu.isOpen) {\n await this.openMenu();\n }\n\n // find the requested menu item using the selectionPredicate parameter\n const items = this.getSortItems();\n const targetItem = items.find((item: HTMLElement, index: number) =>\n selectionPredicate(item, index)\n );\n\n // if we found the item, select it\n if (targetItem) {\n // we've got the '.sky-sort-item' div, but we want to click it's child button element\n const targetButton = targetItem.querySelector('button');\n targetButton.click();\n\n this.fixture.detectChanges();\n return this.fixture.whenStable();\n }\n }\n\n //#endregion\n}\n","import { NgModule } from '@angular/core';\nimport { SkyInfiniteScrollModule } from '@skyux/lists';\n\n/**\n * @internal\n */\n@NgModule({\n exports: [SkyInfiniteScrollModule],\n})\nexport class SkyInfiniteScrollTestingModule {}\n","import { DebugElement } from '@angular/core';\nimport { ComponentFixture } from '@angular/core/testing';\nimport { SkyAppTestUtility } from '@skyux-sdk/testing';\n\n/**\n * Provides information for and interaction with a SKY UX infinite scroll component.\n * By using the fixture API, a test insulates itself against updates to the internals\n * of a component, such as changing its DOM structure.\n * @deprecated Use `SkyInfiniteScrollHarness` instead.\n * @internal\n */\nexport class SkyInfiniteScrollFixture {\n private debugElement: DebugElement;\n\n constructor(private fixture: ComponentFixture<any>, skyTestId: string) {\n this.debugElement = SkyAppTestUtility.getDebugElementByTestId(\n fixture,\n skyTestId,\n 'sky-infinite-scroll'\n );\n }\n\n public get loadMoreButtonIsVisible(): boolean {\n return this.getButton() instanceof HTMLButtonElement;\n }\n\n public async clickLoadMoreButton(): Promise<any> {\n const button = this.getButton();\n if (button instanceof HTMLButtonElement) {\n button.click();\n }\n this.fixture.detectChanges();\n return this.fixture.whenStable();\n }\n\n private getButton() {\n return this.debugElement.nativeElement.querySelector(\n '.sky-infinite-scroll .sky-btn'\n );\n }\n}\n","import { SkyComponentHarness } from '@skyux/core/testing';\n\nimport { SkyInfiniteScrollHarnessFilters } from './infinite-scroll-harness-filters';\n\n/**\n * Harness for interacting with an infinite scroll component in tests.\n * @internal\n */\nexport class SkyInfiniteScrollHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-infinite-scroll';\n\n #showMoreButton = this.locatorForOptional(\n 'button.sky-infinite-scroll-load-more-button'\n );\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyInfiniteScrollHarness` that meets certain criteria.\n */\n public static with(filters: SkyInfiniteScrollHarnessFilters) {\n return this.getDataSkyIdPredicate(filters);\n }\n\n /**\n * Whether the infinite scroll is enabled.\n */\n public async isEnabled(): Promise<boolean> {\n return (await this.locatorForOptional('.sky-infinite-scroll')()) !== null;\n }\n\n /**\n * Whether the infinite scroll is loading.\n */\n public async isLoading(): Promise<boolean> {\n return (await this.isEnabled()) && (await this.#showMoreButton()) === null;\n }\n\n /**\n * Clicks the \"Load more\" button.\n */\n public async loadMore(): Promise<void> {\n const button = await this.#showMoreButton();\n if (button) {\n await button.click();\n } else {\n if (!(await this.isEnabled())) {\n throw new Error(\n 'Unable to click the \"Load more\" button because the infinite scroll is not enabled.'\n );\n } else {\n throw new Error(\n 'Unable to click the \"Load more\" button because the infinite scroll is loading.'\n );\n }\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skyux-lists-testing.mjs","sources":["../../../../../libs/components/lists/testing/src/filter/filter-testing.module.ts","../../../../../libs/components/lists/testing/src/filter/filter-fixture-summary.ts","../../../../../libs/components/lists/testing/src/filter/filter-fixture-button.ts","../../../../../libs/components/lists/testing/src/paging/paging-testing.module.ts","../../../../../libs/components/lists/testing/src/paging/paging-fixture.ts","../../../../../libs/components/lists/testing/src/repeater/repeater-item-harness.ts","../../../../../libs/components/lists/testing/src/repeater/repeater-harness.ts","../../../../../libs/components/lists/testing/src/sort/sort-testing.module.ts","../../../../../libs/components/lists/testing/src/sort/sort-fixture.ts","../../../../../libs/components/lists/testing/src/infinite-scroll/infinite-scroll-testing.module.ts","../../../../../libs/components/lists/testing/src/infinite-scroll/infinite-scroll-fixture.ts","../../../../../libs/components/lists/testing/src/infinite-scroll/infinite-scroll-harness.ts","../../../../../libs/components/lists/testing/src/skyux-lists-testing.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { SkyFilterModule } from '@skyux/lists';\n\n/**\n * @internal\n */\n@NgModule({\n exports: [SkyFilterModule],\n})\nexport class SkyFilterTestingModule {}\n","import { DebugElement } from '@angular/core';\nimport { ComponentFixture } from '@angular/core/testing';\nimport { SkyAppTestUtility } from '@skyux-sdk/testing';\n\n/**\n * Provides information for and interaction with a SKY UX filter summary component.\n * By using the fixture API, a test insulates itself against updates to the internals\n * of a component, such as changing its DOM structure.\n * @internal\n */\nexport class SkyFilterFixtureSummary {\n #debugElement: DebugElement;\n #fixture: ComponentFixture<any>;\n\n constructor(fixture: ComponentFixture<any>, skyTestId: string) {\n this.#fixture = fixture;\n this.#debugElement = SkyAppTestUtility.getDebugElementByTestId(\n this.#fixture,\n skyTestId,\n 'sky-filter-summary'\n );\n }\n\n public async filterCloseClick(index: number): Promise<any> {\n const summaryItems = this.#debugElement.nativeElement.querySelectorAll(\n 'sky-filter-summary-item'\n );\n if (summaryItems.length > index) {\n const summaryItem = summaryItems[index];\n if (summaryItem instanceof HTMLElement) {\n const closeButton = summaryItem.querySelector('.sky-token-btn-close');\n if (closeButton instanceof HTMLElement) {\n closeButton.click();\n this.#fixture.detectChanges();\n return this.#fixture.whenStable();\n }\n }\n }\n throw new Error(`Unable to click close for a filter index ${index}`);\n }\n}\n","import { DebugElement } from '@angular/core';\nimport { ComponentFixture } from '@angular/core/testing';\nimport { SkyAppTestUtility } from '@skyux-sdk/testing';\n\nimport { SkyListsFilterFixtureButton } from './lists-filter-fixture-button';\n\n/**\n * Provides information for and interaction with a SKY UX filter button component.\n * By using the fixture API, a test insulates itself against updates to the internals\n * of a component, such as changing its DOM structure.\n * @internal\n */\nexport class SkyFilterFixtureButton {\n private debugElement: DebugElement;\n\n constructor(private fixture: ComponentFixture<any>, skyTestId: string) {\n this.debugElement = SkyAppTestUtility.getDebugElementByTestId(\n this.fixture,\n skyTestId,\n 'sky-filter-button'\n );\n }\n\n /**\n * Click the button to apply the filter.\n */\n public async clickFilterButton(): Promise<any> {\n const button = this.#getButtonElement();\n if (button instanceof HTMLButtonElement && !button.disabled) {\n button.click();\n }\n this.fixture.detectChanges();\n return this.fixture.whenStable();\n }\n\n public get button(): SkyListsFilterFixtureButton {\n const buttonElement = this.#getButtonElement();\n return {\n ariaControls: buttonElement?.getAttribute('aria-controls') ?? undefined,\n ariaExpanded: buttonElement?.getAttribute('aria-expanded') === 'true',\n disabled: !!buttonElement?.disabled,\n id: buttonElement?.id,\n };\n }\n /**\n * Get the button text.\n */\n public get buttonText(): string {\n const text = this.#getButtonElement()?.innerText;\n return this.#normalizeText(text);\n }\n\n #getButtonElement(): HTMLButtonElement | null {\n return this.debugElement.nativeElement.querySelector('.sky-filter-btn');\n }\n\n #normalizeText(text: string | undefined): string {\n let retVal = '';\n if (text) {\n retVal = text?.trim().replace(/\\s+/g, ' ');\n }\n return retVal;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { SkyPagingModule } from '@skyux/lists';\n\n/**\n * @internal\n */\n@NgModule({\n exports: [SkyPagingModule],\n})\nexport class SkyPagingTestingModule {}\n","import { DebugElement } from '@angular/core';\nimport { ComponentFixture } from '@angular/core/testing';\nimport { By } from '@angular/platform-browser';\nimport { SkyAppTestUtility } from '@skyux-sdk/testing';\n\nimport { SkyPagingFixtureButton } from './paging-fixture-button';\n\n/**\n * Provides information for and interaction with a SKY UX paging component.\n * By using the fixture API, a test insulates itself against updates to the internals\n * of a component, such as changing its DOM structure.\n * @internal\n */\nexport class SkyPagingFixture {\n private _debugEl: DebugElement;\n\n /**\n * The id of the active page, if available.\n */\n public get activePageId(): string {\n return this.getPageId(this.activePageButton);\n }\n\n /**\n * Properties of the page links displayed in the paging component.\n */\n public get pageLinks(): SkyPagingFixtureButton[] {\n return this.pagingLinks.map((page: DebugElement) => {\n return {\n id: this.getPageId(page.nativeElement),\n isActive: page.nativeElement.classList.contains('sky-paging-current'),\n isEnabled: !page.nativeElement.disabled,\n };\n });\n }\n\n constructor(private fixture: ComponentFixture<any>, skyTestId: string) {\n this._debugEl = SkyAppTestUtility.getDebugElementByTestId(\n fixture,\n skyTestId,\n 'sky-paging'\n );\n\n this.waitForComponentInitialization();\n }\n\n /**\n * Selects the specified page by id, if it is enabled.\n */\n public async selectPage(id: string | number): Promise<void> {\n const pageButton = this.getPageLink(id.toString());\n\n if (pageButton !== undefined && !pageButton.disabled) {\n pageButton.click();\n\n this.fixture.detectChanges();\n return this.fixture.whenStable();\n }\n }\n\n /**\n * Clicks the next page button, if it is enabled.\n */\n public async selectNextPage(): Promise<void> {\n const nextButton = this.nextPageButton;\n\n if (nextButton !== undefined && !nextButton.disabled) {\n nextButton.click();\n\n this.fixture.detectChanges();\n return this.fixture.whenStable();\n }\n }\n\n /**\n * Clicks the previous page button, if it is enabled.\n */\n public async selectPreviousPage(): Promise<void> {\n const previousButton = this.previousPageButton;\n\n if (previousButton !== undefined && !previousButton.disabled) {\n previousButton.click();\n\n this.fixture.detectChanges();\n return this.fixture.whenStable();\n }\n }\n\n //#region helpers\n\n private get activePageButton(): HTMLButtonElement {\n return this._debugEl.query(\n By.css('.sky-list-paging-link .sky-paging-current')\n )?.nativeElement as HTMLButtonElement;\n }\n\n private get nextPageButton(): HTMLButtonElement {\n return this._debugEl.query(By.css('.sky-paging-btn[sky-cmp-id=\"next\"]'))\n ?.nativeElement as HTMLButtonElement;\n }\n\n private get previousPageButton(): HTMLButtonElement {\n return this._debugEl.query(By.css('.sky-paging-btn[sky-cmp-id=\"previous\"]'))\n ?.nativeElement as HTMLButtonElement;\n }\n\n private get pagingLinks(): DebugElement[] {\n return this._debugEl.queryAll(By.css('.sky-list-paging-link button'));\n }\n\n private getPageLink(id: string): HTMLButtonElement {\n return this._debugEl.query(\n By.css(`.sky-list-paging-link button[sky-cmp-id=\"${id}\"]`)\n )?.nativeElement as HTMLButtonElement;\n }\n\n private getPageId(page: HTMLButtonElement): string {\n return page?.getAttribute('sky-cmp-id') ?? '';\n }\n\n private async waitForComponentInitialization(): Promise<void> {\n this.fixture.detectChanges();\n await this.fixture.whenStable();\n\n this.fixture.detectChanges();\n return this.fixture.whenStable();\n }\n\n //#endregion\n}\n","import {\n ComponentHarness,\n HarnessPredicate,\n HarnessQuery,\n} from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\nimport { SkyCheckboxHarness } from '@skyux/forms/testing';\n\nimport { SkyRepeaterItemHarnessFilters } from './repeater-item-harness-filters';\n\n/**\n * Harness for interacting with a repeater item component in tests.\n * @internal\n */\nexport class SkyRepeaterItemHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-repeater-item';\n\n #getCheckbox = this.locatorForOptional(SkyCheckboxHarness);\n\n #getContent = this.locatorFor('.sky-repeater-item-content');\n\n #getTitle = this.locatorFor('.sky-repeater-item-title');\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyRepeaterItemHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyRepeaterItemHarnessFilters\n ): HarnessPredicate<SkyRepeaterItemHarness> {\n return SkyRepeaterItemHarness.getDataSkyIdPredicate(filters)\n .addOption('contentText', filters.contentText, async (harness, text) =>\n HarnessPredicate.stringMatches(await harness.getContentText(), text)\n )\n .addOption('titleText', filters.titleText, async (harness, text) =>\n HarnessPredicate.stringMatches(await harness.getTitleText(), text)\n );\n }\n\n /**\n * Whether the repeater item is selectable.\n */\n public async isSelectable(): Promise<boolean> {\n return !!(await this.#getCheckbox());\n }\n\n /**\n * Whether the repeater item is selected.\n */\n public async isSelected(): Promise<boolean> {\n if (!(await this.isSelectable())) {\n throw new Error(\n 'Could not determine if repeater item is selected because it is not selectable.'\n );\n }\n\n return (await this.#getCheckbox()).isChecked();\n }\n\n /**\n * Returns a child harness.\n */\n public async queryHarness<T extends ComponentHarness>(\n query: HarnessQuery<T>\n ): Promise<T | null> {\n return this.locatorForOptional(query)();\n }\n\n /**\n * Selects the repeater item.\n */\n public async select() {\n if (!(await this.isSelectable())) {\n throw new Error(\n 'Could not select the repeater item because it is not selectable.'\n );\n }\n\n await (await this.#getCheckbox()).check();\n }\n\n /**\n * Deselects the repeater item.\n */\n public async deselect(): Promise<void> {\n if (!(await this.isSelectable())) {\n throw new Error(\n 'Could not deselect the repeater item because it is not selectable.'\n );\n }\n\n await (await this.#getCheckbox()).uncheck();\n }\n\n /**\n * Gets the text of the repeater item content.\n */\n public async getContentText(): Promise<string> {\n return (await this.#getContent()).text();\n }\n\n /**\n * Gets the text of the repeater item title.\n */\n public async getTitleText(): Promise<string> {\n return (await this.#getTitle()).text();\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\n\nimport { SkyRepeaterHarnessFilters } from './repeater-harness-filters';\nimport { SkyRepeaterItemHarness } from './repeater-item-harness';\nimport { SkyRepeaterItemHarnessFilters } from './repeater-item-harness-filters';\n\n/**\n * Harness for interacting with a repeater component in tests.\n * @internal\n */\nexport class SkyRepeaterHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-repeater';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyRepeaterHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyRepeaterHarnessFilters\n ): HarnessPredicate<SkyRepeaterHarness> {\n return SkyRepeaterHarness.getDataSkyIdPredicate(filters);\n }\n\n /**\n * Gets a list of child repeater items.\n */\n public async getRepeaterItems(\n filters?: SkyRepeaterItemHarnessFilters\n ): Promise<SkyRepeaterItemHarness[]> {\n return this.locatorForAll(SkyRepeaterItemHarness.with(filters || {}))();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { NoopAnimationsModule } from '@angular/platform-browser/animations';\nimport { SkySortModule } from '@skyux/lists';\n\n/**\n * @internal\n */\n@NgModule({\n imports: [NoopAnimationsModule],\n exports: [SkySortModule],\n})\nexport class SkySortTestingModule {}\n","import { DebugElement } from '@angular/core';\nimport { ComponentFixture } from '@angular/core/testing';\nimport { By } from '@angular/platform-browser';\nimport { SkyAppTestUtility } from '@skyux-sdk/testing';\n\nimport { SkySortFixtureMenu } from './sort-fixture-menu';\nimport { SkySortFixtureMenuItem } from './sort-fixture-menu-item';\n\n/**\n * Provides information for and interaction with a SKY UX sort component.\n * By using the fixture API, a test insulates itself against updates to the internals\n * of a component, such as changing its DOM structure.\n * @internal\n */\nexport class SkySortFixture {\n /**\n * The active sort menu item, if one exists. Menu items are only available when the menu dropdown\n * is open. If the menu dropdown is closed, this property will be undefined.\n */\n public get activeMenuItem(): SkySortFixtureMenuItem | undefined {\n return this.menuItems?.find((x) => x.isActive);\n }\n\n /**\n * The sort menu's properties.\n */\n public get menu(): SkySortFixtureMenu | undefined {\n const sortButtonTextEl = this.#getSortButtonTextEl();\n const buttonText = SkyAppTestUtility.getText(sortButtonTextEl);\n /* istanbul ignore else */\n if (sortButtonTextEl && buttonText) {\n return {\n buttonText: buttonText,\n isOpen: this.#getDropdownMenuEl() !== null,\n };\n } else {\n return {\n buttonText: '',\n isOpen: this.#getDropdownMenuEl() !== null,\n };\n }\n }\n\n /**\n * The properties of each sort menu item. Menu items are only available when the menu dropdown\n * is open. If the menu dropdown is closed, this property will be undefined.\n */\n public get menuItems(): SkySortFixtureMenuItem[] | undefined {\n // Return undefined when we can't determine what the options are.\n // We do this to avoid any confusion with an empty set of options.\n if (!this.menu?.isOpen) {\n return;\n }\n\n return this.#getSortItems().map((item: HTMLElement, i: number) => {\n const itemButton = item.querySelector('button');\n\n return {\n index: i,\n isActive: item.classList.contains('sky-sort-item-selected'),\n text: SkyAppTestUtility.getText(itemButton),\n };\n });\n }\n\n #debugEl: DebugElement;\n\n constructor(private fixture: ComponentFixture<any>, skyTestId: string) {\n this.#debugEl = SkyAppTestUtility.getDebugElementByTestId(\n fixture,\n skyTestId,\n 'sky-sort'\n );\n }\n\n /**\n * Closes the sort dropdown menu if it isn't closed already.\n */\n public async closeMenu(): Promise<void> {\n // if the menu is already closed, do nothing\n if (!this.menu?.isOpen) {\n return;\n }\n\n const menu = this.#getDropdownButtonEl();\n if (menu !== undefined && !menu.disabled) {\n menu.click();\n\n this.fixture.detectChanges();\n await this.fixture.whenStable();\n\n this.fixture.detectChanges();\n return this.fixture.whenStable();\n }\n }\n\n /**\n * Opens the sort dropdown menu if it isn't open already.\n */\n public async openMenu(): Promise<void> {\n // if the menu is already open, do nothing\n if (this.menu?.isOpen) {\n return;\n }\n\n const menu = this.#getDropdownButtonEl();\n\n if (menu !== undefined && !menu.disabled) {\n menu.click();\n\n this.fixture.detectChanges();\n await this.fixture.whenStable();\n\n this.fixture.detectChanges();\n return this.fixture.whenStable();\n }\n }\n\n /**\n * Ensures the sort menu is open and selects the menu item with the specified index, if it exists.\n * @param menuItemIndex The index of the menu item to select.\n */\n public async selectMenuItemByIndex(menuItemIndex: number): Promise<void> {\n return this.#selectMenuItem((_item: HTMLElement, index: number) => {\n return index === menuItemIndex;\n });\n }\n\n /**\n * Ensures the sort menu is open and selects the menu item with the specified text,\n * if a matching item is available.\n * @param menuItemText The text of the menu item to select.\n */\n public async selectMenuItemByText(\n menuItemText: string | undefined\n ): Promise<void> {\n /* istanbul ignore else */\n if (menuItemText) {\n return this.#selectMenuItem((item: HTMLElement) => {\n return SkyAppTestUtility.getText(item) === menuItemText;\n });\n } else {\n return;\n }\n }\n\n //#region helpers\n\n #getDropdownButtonEl(): HTMLButtonElement | undefined {\n return this.#debugEl.query(By.css('.sky-dropdown-button')).nativeElement;\n }\n\n #getDropdownMenuEl(): HTMLElement | null {\n return document.querySelector('sky-overlay .sky-dropdown-menu');\n }\n\n #getSortButtonTextEl(): HTMLElement | undefined {\n return this.#debugEl.query(By.css('.sky-sort-btn-text')).nativeElement;\n }\n\n #getSortItems(): HTMLElement[] {\n const resultNodes = document.querySelectorAll('sky-overlay .sky-sort-item');\n return Array.prototype.slice.call(resultNodes);\n }\n\n /**\n * Ensures the sort menu is open and selects the menu item via a selection predicate,\n * if a matching item is available.\n * @param selectionPredicate The menu item selector method to use.\n */\n async #selectMenuItem(\n selectionPredicate: (item: HTMLElement, index: number) => boolean\n ): Promise<void> {\n // make sure the sort menu is open\n if (!this.menu?.isOpen) {\n await this.openMenu();\n }\n\n // find the requested menu item using the selectionPredicate parameter\n const items = this.#getSortItems();\n const targetItem = items.find((item: HTMLElement, index: number) =>\n selectionPredicate(item, index)\n );\n\n // if we found the item, select it\n if (targetItem) {\n // we've got the '.sky-sort-item' div, but we want to click it's child button element\n const targetButton = targetItem.querySelector('button');\n targetButton?.click();\n\n this.fixture.detectChanges();\n return this.fixture.whenStable();\n }\n }\n\n //#endregion\n}\n","import { NgModule } from '@angular/core';\nimport { SkyInfiniteScrollModule } from '@skyux/lists';\n\n/**\n * @internal\n */\n@NgModule({\n exports: [SkyInfiniteScrollModule],\n})\nexport class SkyInfiniteScrollTestingModule {}\n","import { DebugElement } from '@angular/core';\nimport { ComponentFixture } from '@angular/core/testing';\nimport { SkyAppTestUtility } from '@skyux-sdk/testing';\n\n/**\n * Provides information for and interaction with a SKY UX infinite scroll component.\n * By using the fixture API, a test insulates itself against updates to the internals\n * of a component, such as changing its DOM structure.\n * @deprecated Use `SkyInfiniteScrollHarness` instead.\n * @internal\n */\nexport class SkyInfiniteScrollFixture {\n private debugElement: DebugElement;\n\n constructor(private fixture: ComponentFixture<any>, skyTestId: string) {\n this.debugElement = SkyAppTestUtility.getDebugElementByTestId(\n fixture,\n skyTestId,\n 'sky-infinite-scroll'\n );\n }\n\n public get loadMoreButtonIsVisible(): boolean {\n return this.getButton() instanceof HTMLButtonElement;\n }\n\n public async clickLoadMoreButton(): Promise<any> {\n const button = this.getButton();\n if (button instanceof HTMLButtonElement) {\n button.click();\n }\n this.fixture.detectChanges();\n return this.fixture.whenStable();\n }\n\n private getButton() {\n return this.debugElement.nativeElement.querySelector(\n '.sky-infinite-scroll .sky-btn'\n );\n }\n}\n","import { SkyComponentHarness } from '@skyux/core/testing';\n\nimport { SkyInfiniteScrollHarnessFilters } from './infinite-scroll-harness-filters';\n\n/**\n * Harness for interacting with an infinite scroll component in tests.\n * @internal\n */\nexport class SkyInfiniteScrollHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-infinite-scroll';\n\n #showMoreButton = this.locatorForOptional(\n 'button.sky-infinite-scroll-load-more-button'\n );\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyInfiniteScrollHarness` that meets certain criteria.\n */\n public static with(filters: SkyInfiniteScrollHarnessFilters) {\n return this.getDataSkyIdPredicate(filters);\n }\n\n /**\n * Whether the infinite scroll is enabled.\n */\n public async isEnabled(): Promise<boolean> {\n return (await this.locatorForOptional('.sky-infinite-scroll')()) !== null;\n }\n\n /**\n * Whether the infinite scroll is loading.\n */\n public async isLoading(): Promise<boolean> {\n return (await this.isEnabled()) && (await this.#showMoreButton()) === null;\n }\n\n /**\n * Clicks the \"Load more\" button.\n */\n public async loadMore(): Promise<void> {\n const button = await this.#showMoreButton();\n if (button) {\n await button.click();\n } else {\n if (!(await this.isEnabled())) {\n throw new Error(\n 'Unable to click the \"Load more\" button because the infinite scroll is not enabled.'\n );\n } else {\n throw new Error(\n 'Unable to click the \"Load more\" button because the infinite scroll is loading.'\n );\n }\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}