@spectrum-web-components/table 0.0.2-table.2715 → 0.1.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 (146) hide show
  1. package/README.md +5 -5
  2. package/custom-elements.json +20 -0
  3. package/elements.dev.js +1 -0
  4. package/elements.dev.js.map +1 -1
  5. package/elements.js +1 -1
  6. package/elements.js.map +1 -1
  7. package/package.json +79 -17
  8. package/sp-table-body.dev.js +1 -0
  9. package/sp-table-body.dev.js.map +1 -1
  10. package/sp-table-body.js +1 -1
  11. package/sp-table-body.js.map +2 -2
  12. package/sp-table-cell.dev.js +1 -0
  13. package/sp-table-cell.dev.js.map +1 -1
  14. package/sp-table-cell.js +1 -1
  15. package/sp-table-cell.js.map +2 -2
  16. package/sp-table-checkbox-cell.dev.js +1 -0
  17. package/sp-table-checkbox-cell.dev.js.map +1 -1
  18. package/sp-table-checkbox-cell.js +1 -1
  19. package/sp-table-checkbox-cell.js.map +2 -2
  20. package/sp-table-head-cell.dev.js +1 -0
  21. package/sp-table-head-cell.dev.js.map +1 -1
  22. package/sp-table-head-cell.js +1 -1
  23. package/sp-table-head-cell.js.map +2 -2
  24. package/sp-table-head.dev.js +1 -0
  25. package/sp-table-head.dev.js.map +1 -1
  26. package/sp-table-head.js +1 -1
  27. package/sp-table-head.js.map +2 -2
  28. package/sp-table-row.dev.js +1 -0
  29. package/sp-table-row.dev.js.map +1 -1
  30. package/sp-table-row.js +1 -1
  31. package/sp-table-row.js.map +2 -2
  32. package/sp-table.dev.js +1 -0
  33. package/sp-table.dev.js.map +1 -1
  34. package/sp-table.js +1 -1
  35. package/sp-table.js.map +2 -2
  36. package/src/Table.d.ts +1 -0
  37. package/src/Table.dev.js +74 -46
  38. package/src/Table.dev.js.map +3 -3
  39. package/src/Table.js +8 -8
  40. package/src/Table.js.map +3 -3
  41. package/src/TableBody.d.ts +2 -0
  42. package/src/TableBody.dev.js +21 -1
  43. package/src/TableBody.dev.js.map +2 -2
  44. package/src/TableBody.js +2 -2
  45. package/src/TableBody.js.map +3 -3
  46. package/src/TableCell.dev.js +1 -0
  47. package/src/TableCell.dev.js.map +1 -1
  48. package/src/TableCell.js +1 -1
  49. package/src/TableCell.js.map +2 -2
  50. package/src/TableCheckboxCell.dev.js +1 -0
  51. package/src/TableCheckboxCell.dev.js.map +1 -1
  52. package/src/TableCheckboxCell.js +2 -2
  53. package/src/TableCheckboxCell.js.map +2 -2
  54. package/src/TableHead.dev.js +1 -0
  55. package/src/TableHead.dev.js.map +1 -1
  56. package/src/TableHead.js +1 -1
  57. package/src/TableHead.js.map +2 -2
  58. package/src/TableHeadCell.dev.js +11 -8
  59. package/src/TableHeadCell.dev.js.map +2 -2
  60. package/src/TableHeadCell.js +2 -2
  61. package/src/TableHeadCell.js.map +3 -3
  62. package/src/TableRow.dev.js +8 -3
  63. package/src/TableRow.dev.js.map +2 -2
  64. package/src/TableRow.js +2 -2
  65. package/src/TableRow.js.map +3 -3
  66. package/src/index.d.ts +6 -0
  67. package/src/index.dev.js +7 -0
  68. package/src/index.dev.js.map +2 -2
  69. package/src/index.js +1 -1
  70. package/src/index.js.map +2 -2
  71. package/src/spectrum-table-body.css.dev.js +1 -0
  72. package/src/spectrum-table-body.css.dev.js.map +1 -1
  73. package/src/spectrum-table-body.css.js +1 -1
  74. package/src/spectrum-table-body.css.js.map +2 -2
  75. package/src/spectrum-table-cell.css.dev.js +1 -0
  76. package/src/spectrum-table-cell.css.dev.js.map +1 -1
  77. package/src/spectrum-table-cell.css.js +1 -1
  78. package/src/spectrum-table-cell.css.js.map +2 -2
  79. package/src/spectrum-table-checkbox-cell.css.dev.js +1 -0
  80. package/src/spectrum-table-checkbox-cell.css.dev.js.map +1 -1
  81. package/src/spectrum-table-checkbox-cell.css.js +1 -1
  82. package/src/spectrum-table-checkbox-cell.css.js.map +2 -2
  83. package/src/spectrum-table-head-cell.css.dev.js +1 -0
  84. package/src/spectrum-table-head-cell.css.dev.js.map +1 -1
  85. package/src/spectrum-table-head-cell.css.js +1 -1
  86. package/src/spectrum-table-head-cell.css.js.map +2 -2
  87. package/src/spectrum-table-head.css.dev.js +1 -0
  88. package/src/spectrum-table-head.css.dev.js.map +1 -1
  89. package/src/spectrum-table-head.css.js +1 -1
  90. package/src/spectrum-table-head.css.js.map +2 -2
  91. package/src/spectrum-table-row.css.dev.js +1 -0
  92. package/src/spectrum-table-row.css.dev.js.map +1 -1
  93. package/src/spectrum-table-row.css.js +1 -1
  94. package/src/spectrum-table-row.css.js.map +2 -2
  95. package/src/spectrum-table.css.dev.js +1 -0
  96. package/src/spectrum-table.css.dev.js.map +1 -1
  97. package/src/spectrum-table.css.js +1 -1
  98. package/src/spectrum-table.css.js.map +2 -2
  99. package/src/table-body.css.dev.js +2 -1
  100. package/src/table-body.css.dev.js.map +2 -2
  101. package/src/table-body.css.js +2 -2
  102. package/src/table-body.css.js.map +3 -3
  103. package/src/table-cell.css.dev.js +1 -0
  104. package/src/table-cell.css.dev.js.map +1 -1
  105. package/src/table-cell.css.js +1 -1
  106. package/src/table-cell.css.js.map +2 -2
  107. package/src/table-checkbox-cell.css.dev.js +1 -0
  108. package/src/table-checkbox-cell.css.dev.js.map +1 -1
  109. package/src/table-checkbox-cell.css.js +1 -1
  110. package/src/table-checkbox-cell.css.js.map +2 -2
  111. package/src/table-head-cell.css.dev.js +1 -0
  112. package/src/table-head-cell.css.dev.js.map +1 -1
  113. package/src/table-head-cell.css.js +1 -1
  114. package/src/table-head-cell.css.js.map +2 -2
  115. package/src/table-head.css.dev.js +1 -0
  116. package/src/table-head.css.dev.js.map +1 -1
  117. package/src/table-head.css.js +1 -1
  118. package/src/table-head.css.js.map +2 -2
  119. package/src/table-row.css.dev.js +1 -0
  120. package/src/table-row.css.dev.js.map +1 -1
  121. package/src/table-row.css.js +1 -1
  122. package/src/table-row.css.js.map +2 -2
  123. package/src/table.css.dev.js +2 -1
  124. package/src/table.css.dev.js.map +2 -2
  125. package/src/table.css.js +2 -2
  126. package/src/table.css.js.map +3 -3
  127. package/stories/index.js +24 -5
  128. package/stories/index.js.map +2 -2
  129. package/stories/table-elements.stories.js +75 -9
  130. package/stories/table-elements.stories.js.map +2 -2
  131. package/stories/table-virtualized.stories.js +198 -34
  132. package/stories/table-virtualized.stories.js.map +2 -2
  133. package/test/benchmark/basic-test.js +6 -2
  134. package/test/benchmark/basic-test.js.map +1 -1
  135. package/test/table-elements.test-vrt.js +4 -1
  136. package/test/table-elements.test-vrt.js.map +1 -1
  137. package/test/table-selects.test.js +199 -3
  138. package/test/table-selects.test.js.map +2 -2
  139. package/test/table-virtualized.test-vrt.js +4 -1
  140. package/test/table-virtualized.test-vrt.js.map +1 -1
  141. package/test/table.test.js +124 -8
  142. package/test/table.test.js.map +2 -2
  143. package/test/virtualized-table-selects.test.js +395 -25
  144. package/test/virtualized-table-selects.test.js.map +2 -2
  145. package/test/virtualized-table.test.js +237 -23
  146. package/test/virtualized-table.test.js.map +2 -2
@@ -1,15 +1,93 @@
1
- import{elementUpdated as l,expect as t,fixture as i,html as d,nextFrame as u,oneEvent as n}from"@open-wc/testing";import"../sp-table.js";import"../sp-table-head.js";import"../sp-table-head-cell.js";import"../sp-table-body.js";import"../sp-table-row.js";import"../sp-table-cell.js";import{virtualized as C,virtualizedCustomRow as x,virtualizedCustomValue as T,virtualizedMultiple as b,virtualizedSingle as w}from"../stories/table-virtualized.stories.js";import{makeItems as q,renderItem as y}from"../stories/index.js";let h;before(function(){Mocha.process.removeListener("uncaughtException"),h=window.onerror,addEventListener("error",o=>{var e,a;(a=(e=o.message)==null?void 0:e.match)!=null&&a.call(e,/ResizeObserver loop limit exceeded/)||h==null||h(o)})}),after(function(){window.onerror=h}),describe("Virtualized Table Selects",()=>{it("selects and deselects all checkboxes in Virtualized Table when clicking the TableHeadCheckboxCell",async()=>{const e=(await i(d`
1
+ "use strict";
2
+ import {
3
+ elementUpdated,
4
+ expect,
5
+ fixture,
6
+ html,
7
+ nextFrame,
8
+ oneEvent
9
+ } from "@open-wc/testing";
10
+ import "@spectrum-web-components/table/sp-table.js";
11
+ import "@spectrum-web-components/table/sp-table-head.js";
12
+ import "@spectrum-web-components/table/sp-table-head-cell.js";
13
+ import "@spectrum-web-components/table/sp-table-body.js";
14
+ import "@spectrum-web-components/table/sp-table-row.js";
15
+ import "@spectrum-web-components/table/sp-table-cell.js";
16
+ import {
17
+ virtualized,
18
+ virtualizedCustomRow,
19
+ virtualizedCustomValue,
20
+ virtualizedMultiple,
21
+ virtualizedSingle
22
+ } from "../stories/table-virtualized.stories.js";
23
+ import { makeItems, renderItem } from "../stories/index.js";
24
+ let globalErrorHandler = void 0;
25
+ before(function() {
26
+ Mocha.process.removeListener("uncaughtException");
27
+ globalErrorHandler = window.onerror;
28
+ addEventListener("error", (error) => {
29
+ var _a, _b;
30
+ if ((_b = (_a = error.message) == null ? void 0 : _a.match) == null ? void 0 : _b.call(_a, /ResizeObserver loop limit exceeded/)) {
31
+ return;
32
+ } else {
33
+ globalErrorHandler == null ? void 0 : globalErrorHandler(error);
34
+ }
35
+ });
36
+ });
37
+ after(function() {
38
+ window.onerror = globalErrorHandler;
39
+ });
40
+ describe("Virtualized Table Selects", () => {
41
+ it("selects and deselects all checkboxes in Virtualized Table when clicking the TableHeadCheckboxCell", async () => {
42
+ const test = await fixture(
43
+ html`
2
44
  <div>
3
- ${b(b.args)}
45
+ ${virtualizedMultiple(
46
+ virtualizedMultiple.args
47
+ )}
4
48
  </div>
5
- `)).querySelector("sp-table");await n(e,"rangeChanged"),await l(e),t(e.selected).to.deep.equal(["0","48"]),t(e.selected.length).to.equal(2);const a=e.querySelector("sp-table-head sp-table-checkbox-cell");a.checkbox.click(),await l(e),t(e.selected.length).to.equal(49),a.checkbox.click(),await l(e),await l(a),t(e.selected.length).to.equal(0)}),it("validates `value` property to make sure it matches the values in `selected`",async()=>{const o=await i(T(T.args));t(o.selected).to.deep.equal(["applied-47"]),o.selected=["0"];const e=o.querySelector('[value="0"]');t(e).to.be.null}),it("can prevent selection",async()=>{const o=await i(d`
49
+ `
50
+ );
51
+ const el = test.querySelector("sp-table");
52
+ await oneEvent(el, "rangeChanged");
53
+ await elementUpdated(el);
54
+ expect(el.selected).to.deep.equal(["0", "48"]);
55
+ expect(el.selected.length).to.equal(2);
56
+ const tableHeadCheckboxCell = el.querySelector(
57
+ "sp-table-head sp-table-checkbox-cell"
58
+ );
59
+ tableHeadCheckboxCell.checkbox.click();
60
+ await elementUpdated(el);
61
+ expect(el.selected.length).to.equal(49);
62
+ tableHeadCheckboxCell.checkbox.click();
63
+ await elementUpdated(el);
64
+ await elementUpdated(tableHeadCheckboxCell);
65
+ expect(el.selected.length).to.equal(0);
66
+ });
67
+ it("validates `value` property to make sure it matches the values in `selected`", async () => {
68
+ const el = await fixture(
69
+ virtualizedCustomValue(virtualizedCustomValue.args)
70
+ );
71
+ expect(el.selected).to.deep.equal(["applied-47"]);
72
+ el.selected = ["0"];
73
+ await elementUpdated(el);
74
+ expect(el.selected).to.deep.equal([]);
75
+ el.selected = ["applied-1"];
76
+ await elementUpdated(el);
77
+ expect(el.selected).to.deep.equal(["applied-1"]);
78
+ });
79
+ it("can prevent selection", async () => {
80
+ const el = await fixture(
81
+ html`
6
82
  <sp-table
7
83
  size="m"
8
84
  style="height: 200px"
9
85
  selects="single"
10
- @change=${c=>{c.preventDefault()}}
11
- .items=${q(50)}
12
- .renderItem=${y}
86
+ @change=${(event) => {
87
+ event.preventDefault();
88
+ }}
89
+ .items=${makeItems(50)}
90
+ .renderItem=${renderItem}
13
91
  >
14
92
  <sp-table-head>
15
93
  <sp-table-head-cell>Column Title</sp-table-head-cell>
@@ -17,41 +95,333 @@ import{elementUpdated as l,expect as t,fixture as i,html as d,nextFrame as u,one
17
95
  <sp-table-head-cell>Column Title</sp-table-head-cell>
18
96
  </sp-table-head>
19
97
  </sp-table>
20
- `);await n(o,"rangeChanged"),await l(o);const e=o.querySelector('[value="2"]'),a=e.querySelector("sp-table-checkbox-cell");a.checkbox.click(),await l(o),t(a.checked).to.be.false,t(e.selected).to.be.false,t(o.selected.length).to.equal(0)}),it('surfaces [selects="single"] selection on Virtualized Table',async()=>{const e=(await i(d`
98
+ `
99
+ );
100
+ await oneEvent(el, "rangeChanged");
101
+ await elementUpdated(el);
102
+ const rowTwo = el.querySelector('[value="2"]');
103
+ const rowTwoCheckbox = rowTwo.querySelector(
104
+ "sp-table-checkbox-cell"
105
+ );
106
+ rowTwoCheckbox.checkbox.click();
107
+ await elementUpdated(el);
108
+ expect(rowTwoCheckbox.checked).to.be.false;
109
+ expect(rowTwo.selected).to.be.false;
110
+ expect(el.selected.length).to.equal(0);
111
+ });
112
+ it('surfaces [selects="single"] selection on Virtualized Table', async () => {
113
+ const test = await fixture(
114
+ html`
21
115
  <div>
22
- ${w(w.args)}
116
+ ${virtualizedSingle(virtualizedSingle.args)}
23
117
  </div>
24
- `)).querySelector("sp-table");await n(e,"rangeChanged"),await l(e),t(e.selected,"'Row 50 selected").to.deep.equal(["49"]),e.scrollTop=e.scrollHeight,await u(),await u(),await l(e);const c=e.querySelector('[value="49"]').querySelector("sp-table-checkbox-cell");t(c.checked).to.be.true}),it('selects via `click` while [selects="single"]',async()=>{const e=(await i(d`
118
+ `
119
+ );
120
+ const el = test.querySelector("sp-table");
121
+ await oneEvent(el, "rangeChanged");
122
+ await elementUpdated(el);
123
+ expect(el.selected, "'Row 50 selected").to.deep.equal(["49"]);
124
+ el.scrollTop = el.scrollHeight;
125
+ await nextFrame();
126
+ await nextFrame();
127
+ await elementUpdated(el);
128
+ const lastRow = el.querySelector('[value="49"]');
129
+ const lastRowCheckboxCell = lastRow.querySelector(
130
+ "sp-table-checkbox-cell"
131
+ );
132
+ expect(lastRowCheckboxCell.checked).to.be.true;
133
+ });
134
+ it('selects via `click` while [selects="single"]', async () => {
135
+ const test = await fixture(
136
+ html`
25
137
  <div>
26
- ${w(w.args)}
138
+ ${virtualizedSingle(virtualizedSingle.args)}
27
139
  </div>
28
- `)).querySelector("sp-table");e.selected=[],await n(e,"rangeChanged"),await l(e);const a=e.querySelector('[value="1"]'),c=a.querySelector("sp-table-checkbox-cell"),s=e.querySelector('[value="2"]').querySelector("sp-table-checkbox-cell");await l(e),t(e.selected.length).to.equal(0),c.checkbox.click(),await l(e),t(e.selected).to.deep.equal(["1"]),s.checkbox.click(),await l(e),t(e.selected).to.deep.equal(["2"]),a.click(),await l(e),t(e.selected).to.deep.equal(["1"])}),it('surfaces [selects="multiple"] selection on Virtualized Table',async()=>{const e=(await i(d`
140
+ `
141
+ );
142
+ const el = test.querySelector("sp-table");
143
+ el.selected = [];
144
+ await oneEvent(el, "rangeChanged");
145
+ await elementUpdated(el);
146
+ const rowTwo = el.querySelector('[value="1"]');
147
+ const rowTwoCheckbox = rowTwo.querySelector(
148
+ "sp-table-checkbox-cell"
149
+ );
150
+ const rowThree = el.querySelector('[value="2"]');
151
+ const rowThreeCheckbox = rowThree.querySelector(
152
+ "sp-table-checkbox-cell"
153
+ );
154
+ await elementUpdated(el);
155
+ expect(el.selected.length).to.equal(0);
156
+ rowTwoCheckbox.checkbox.click();
157
+ await elementUpdated(el);
158
+ expect(el.selected).to.deep.equal(["1"]);
159
+ rowThreeCheckbox.click();
160
+ await elementUpdated(el);
161
+ expect(el.selected).to.deep.equal(["2"]);
162
+ rowTwo.click();
163
+ await elementUpdated(el);
164
+ expect(el.selected).to.deep.equal(["1"]);
165
+ });
166
+ it('surfaces [selects="multiple"] selection on Virtualized Table', async () => {
167
+ const test = await fixture(
168
+ html`
29
169
  <div>
30
- ${b(b.args)}
170
+ ${virtualizedMultiple(
171
+ virtualizedMultiple.args
172
+ )}
31
173
  </div>
32
- `)).querySelector("sp-table");await n(e,"rangeChanged"),await l(e),t(e.selected).to.deep.equal(["0","48"]),e.scrollTop=e.scrollHeight,await u(),await u(),await l(e);const a=e.querySelector('[value="48"]');t(a).to.not.be.null;const c=a.querySelector("sp-table-checkbox-cell");t(c.checked).to.be.true}),it('selects via `click` while [selects="multiple"] selection',async()=>{const e=(await i(d`
174
+ `
175
+ );
176
+ const el = test.querySelector("sp-table");
177
+ await oneEvent(el, "rangeChanged");
178
+ await elementUpdated(el);
179
+ expect(el.selected).to.deep.equal(["0", "48"]);
180
+ el.scrollTop = el.scrollHeight;
181
+ await nextFrame();
182
+ await nextFrame();
183
+ await elementUpdated(el);
184
+ const unseenRow = el.querySelector('[value="48"]');
185
+ expect(unseenRow).to.not.be.null;
186
+ const unseenRowCheckboxCell = unseenRow.querySelector(
187
+ "sp-table-checkbox-cell"
188
+ );
189
+ expect(unseenRowCheckboxCell.checked).to.be.true;
190
+ });
191
+ it('selects via `click` while [selects="multiple"] selection', async () => {
192
+ const test = await fixture(
193
+ html`
33
194
  <div>
34
- ${b(b.args)}
195
+ ${virtualizedMultiple(
196
+ virtualizedMultiple.args
197
+ )}
35
198
  </div>
36
- `)).querySelector("sp-table");e.selected=[],await n(e,"rangeChanged"),await l(e);const a=e.querySelector('[value="2"]'),c=e.querySelector("sp-table-head sp-table-checkbox-cell"),r=a.querySelector("sp-table-checkbox-cell");await l(e),t(e.selected.length).to.equal(0),r.checkbox.click(),await l(e),t(r.checked).to.be.true,t(e.selected).to.deep.equal(["2"]),c.checkbox.click(),await l(e),t(e.selected.length).to.equal(49)}),it('allows .selected values to be changed by the application when [selects="multiple"]',async()=>{const e=(await i(d`
199
+ `
200
+ );
201
+ const el = test.querySelector("sp-table");
202
+ el.selected = [];
203
+ await oneEvent(el, "rangeChanged");
204
+ await elementUpdated(el);
205
+ const rowTwo = el.querySelector('[value="2"]');
206
+ const tableHeadCheckboxCell = el.querySelector(
207
+ "sp-table-head sp-table-checkbox-cell"
208
+ );
209
+ const rowTwoCheckbox = rowTwo.querySelector(
210
+ "sp-table-checkbox-cell"
211
+ );
212
+ await elementUpdated(el);
213
+ expect(el.selected.length).to.equal(0);
214
+ rowTwoCheckbox.checkbox.click();
215
+ await elementUpdated(el);
216
+ expect(rowTwoCheckbox.checked).to.be.true;
217
+ expect(el.selected).to.deep.equal(["2"]);
218
+ tableHeadCheckboxCell.checkbox.click();
219
+ await elementUpdated(el);
220
+ expect(el.selected.length).to.equal(49);
221
+ });
222
+ it('allows .selected values to be changed by the application when [selects="multiple"]', async () => {
223
+ const test = await fixture(
224
+ html`
37
225
  <div>
38
- ${b(b.args)}
226
+ ${virtualizedMultiple(
227
+ virtualizedMultiple.args
228
+ )}
39
229
  </div>
40
- `)).querySelector("sp-table");e.selected=["1"],await n(e,"rangeChanged"),await l(e);const c=e.querySelector('[value="1"]').querySelector("sp-table-checkbox-cell"),r=e.querySelector('[value="2"]'),s=r.querySelector("sp-table-checkbox-cell");t(e.selected).to.deep.equal(["1"]),t(c.checkbox.checked).to.be.true,t(s.checkbox.checked).to.be.false,e.selected=["1","2"],await u,await u,await l(e),await l(s),t(e.selected).to.deep.equal(["1","2"]),t(c.checkbox.checked).to.be.true,t(r.selected).to.be.true,t(s.checkbox.checked).to.be.true}),it("allows [selects] to be changed by the application",async()=>{var p;const e=(p=(await i(C())).shadowRoot)==null?void 0:p.querySelector("sp-table");await n(e,"rangeChanged"),await l(e),t(e.selects).to.be.undefined,e.selects="single",await l(e),t(e.selects).to.equal("single"),await u(),await u(),await l(e);const c=e.querySelector('[value="0"]').querySelector("sp-table-checkbox-cell"),s=e.querySelector('[value="1"]').querySelector("sp-table-checkbox-cell"),k=e.querySelector("sp-table-head sp-table-checkbox-cell");t(k.selectsSingle).to.be.true,c.checkbox.click(),await l(e),t(e.selected).to.deep.equal(["0"]),t(c.checkbox.checked).to.be.true,t(s.checkbox.checked).to.be.false,e.selects="multiple",await l(e),t(e.selects).to.equal("multiple"),t(k.indeterminate).to.be.true,s.checkbox.click(),await l(e),await l(s),t(e.selected).to.deep.equal(["0","1"]),t(c.checkbox.checked).to.be.true,t(s.checkbox.checked).to.be.true,t(k.indeterminate).to.be.true}),it("selects a user-passed value for .selected array with no [selects] specified on Virtualized `<sp-table>`, but does not allow interaction afterwards",async()=>{var s;const e=(s=(await i(C())).shadowRoot)==null?void 0:s.querySelector("sp-table");e.selected=["0"],await n(e,"rangeChanged"),await l(e),t(e.selected.length).to.equal(1);const a=e.querySelector('[value="0"]'),c=e.querySelector('[value="1"]'),r=c.querySelector("sp-table-checkbox-cell");t(a.selected).to.be.true,t(c.selected).to.be.false,t(r).to.be.null}),it("ensures that virtualized elements with values in .selected are visually selected when brought into view using scrollTop",async()=>{const e=(await i(d`
230
+ `
231
+ );
232
+ const el = test.querySelector("sp-table");
233
+ el.selected = ["1"];
234
+ await oneEvent(el, "rangeChanged");
235
+ await elementUpdated(el);
236
+ const rowOne = el.querySelector('[value="1"]');
237
+ const rowOneCheckboxCell = rowOne.querySelector(
238
+ "sp-table-checkbox-cell"
239
+ );
240
+ const rowTwo = el.querySelector('[value="2"]');
241
+ const rowTwoCheckboxCell = rowTwo.querySelector(
242
+ "sp-table-checkbox-cell"
243
+ );
244
+ expect(el.selected).to.deep.equal(["1"]);
245
+ expect(rowOneCheckboxCell.checkbox.checked).to.be.true;
246
+ expect(rowTwoCheckboxCell.checkbox.checked).to.be.false;
247
+ el.selected = ["1", "2"];
248
+ await nextFrame;
249
+ await nextFrame;
250
+ await elementUpdated(el);
251
+ await elementUpdated(rowTwoCheckboxCell);
252
+ expect(el.selected).to.deep.equal(["1", "2"]);
253
+ expect(rowOneCheckboxCell.checkbox.checked).to.be.true;
254
+ expect(rowTwo.selected).to.be.true;
255
+ expect(rowTwoCheckboxCell.checkbox.checked).to.be.true;
256
+ });
257
+ it("allows [selects] to be changed by the application", async () => {
258
+ var _a;
259
+ const test = await fixture(virtualized());
260
+ const el = (_a = test.shadowRoot) == null ? void 0 : _a.querySelector("sp-table");
261
+ await oneEvent(el, "rangeChanged");
262
+ await elementUpdated(el);
263
+ expect(el.selects).to.be.undefined;
264
+ el.selects = "single";
265
+ await elementUpdated(el);
266
+ expect(el.selects).to.equal("single");
267
+ await nextFrame();
268
+ await nextFrame();
269
+ await elementUpdated(el);
270
+ const rowOne = el.querySelector('[value="0"]');
271
+ const rowOneCheckboxCell = rowOne.querySelector(
272
+ "sp-table-checkbox-cell"
273
+ );
274
+ const rowTwo = el.querySelector('[value="1"]');
275
+ const rowTwoCheckboxCell = rowTwo.querySelector(
276
+ "sp-table-checkbox-cell"
277
+ );
278
+ const tableHeadCheckboxCell = el.querySelector(
279
+ "sp-table-head sp-table-checkbox-cell"
280
+ );
281
+ expect(tableHeadCheckboxCell.selectsSingle).to.be.true;
282
+ rowOneCheckboxCell.checkbox.click();
283
+ await elementUpdated(el);
284
+ expect(el.selected).to.deep.equal(["0"]);
285
+ expect(rowOneCheckboxCell.checkbox.checked).to.be.true;
286
+ expect(rowTwoCheckboxCell.checkbox.checked).to.be.false;
287
+ el.selects = "multiple";
288
+ await elementUpdated(el);
289
+ expect(el.selects).to.equal("multiple");
290
+ expect(tableHeadCheckboxCell.indeterminate).to.be.true;
291
+ rowTwoCheckboxCell.checkbox.click();
292
+ await elementUpdated(el);
293
+ await elementUpdated(rowTwoCheckboxCell);
294
+ expect(el.selected).to.deep.equal(["0", "1"]);
295
+ expect(rowOneCheckboxCell.checkbox.checked).to.be.true;
296
+ expect(rowTwoCheckboxCell.checkbox.checked).to.be.true;
297
+ expect(tableHeadCheckboxCell.indeterminate).to.be.true;
298
+ el.removeAttribute("selects");
299
+ await elementUpdated(el);
300
+ expect(el.selects).to.be.null;
301
+ expect(tableHeadCheckboxCell.indeterminate).to.be.true;
302
+ const checkboxes = el.querySelectorAll(
303
+ "sp-table-checkbox-cell"
304
+ );
305
+ expect(checkboxes.length).to.equal(0);
306
+ });
307
+ it("selects a user-passed value for .selected array with no [selects] specified on Virtualized `<sp-table>`, but does not allow interaction afterwards", async () => {
308
+ var _a;
309
+ const test = await fixture(virtualized());
310
+ const el = (_a = test.shadowRoot) == null ? void 0 : _a.querySelector("sp-table");
311
+ el.selected = ["0"];
312
+ await oneEvent(el, "rangeChanged");
313
+ await elementUpdated(el);
314
+ expect(el.selected.length).to.equal(1);
315
+ const rowOne = el.querySelector('[value="0"]');
316
+ const rowTwo = el.querySelector('[value="1"]');
317
+ const rowTwoCheckbox = rowTwo.querySelector("sp-table-checkbox-cell");
318
+ expect(rowOne.selected).to.be.true;
319
+ expect(rowTwo.selected).to.be.false;
320
+ expect(rowTwoCheckbox).to.be.null;
321
+ });
322
+ it("ensures that virtualized elements with values in .selected are visually selected when brought into view using scrollTop", async () => {
323
+ const test = await fixture(
324
+ html`
41
325
  <div>
42
- ${b(b.args)}
326
+ ${virtualizedMultiple(
327
+ virtualizedMultiple.args
328
+ )}
43
329
  </div>
44
- `)).querySelector("sp-table");await n(e,"rangeChanged"),await l(e);const a=e.querySelector('[value="0"]'),c=a.querySelector("sp-table-checkbox-cell");t(e.selected).to.deep.equal(["0","48"]),t(a.selected).to.be.true,t(c.checkbox.checked).to.be.true,e.scrollTop=e.scrollHeight,await u(),await u(),await l(e);const r=e.querySelector('[value="48"]'),s=r.querySelector("sp-table-checkbox-cell");t(r.selected).to.be.true,t(s.checkbox.checked).to.be.true}),it("ensures that virtualized elements with values in .selected are visually selected when brought into view using scrollToIndex",async()=>{const e=(await i(d`
330
+ `
331
+ );
332
+ const el = test.querySelector("sp-table");
333
+ await oneEvent(el, "rangeChanged");
334
+ await elementUpdated(el);
335
+ const rowOne = el.querySelector('[value="0"]');
336
+ const rowOneCheckboxCell = rowOne.querySelector(
337
+ "sp-table-checkbox-cell"
338
+ );
339
+ expect(el.selected).to.deep.equal(["0", "48"]);
340
+ expect(rowOne.selected).to.be.true;
341
+ expect(rowOneCheckboxCell.checkbox.checked).to.be.true;
342
+ el.scrollTop = el.scrollHeight;
343
+ await nextFrame();
344
+ await nextFrame();
345
+ await elementUpdated(el);
346
+ const unseenRow = el.querySelector('[value="48"]');
347
+ const unseenRowCheckboxCell = unseenRow.querySelector(
348
+ "sp-table-checkbox-cell"
349
+ );
350
+ expect(unseenRow.selected).to.be.true;
351
+ expect(unseenRowCheckboxCell.checkbox.checked).to.be.true;
352
+ });
353
+ it("ensures that virtualized elements with values in .selected are visually selected when brought into view using scrollToIndex", async () => {
354
+ const test = await fixture(
355
+ html`
45
356
  <div>
46
- ${b(b.args)}
357
+ ${virtualizedMultiple(
358
+ virtualizedMultiple.args
359
+ )}
47
360
  </div>
48
- `)).querySelector("sp-table");await n(e,"rangeChanged"),await l(e);const a=e.querySelector('[value="0"]'),c=a.querySelector("sp-table-checkbox-cell");t(e.selected).to.deep.equal(["0","48"]),t(a.selected).to.be.true,t(c.checkbox.checked).to.be.true,e.scrollToIndex(47),await u(),await u(),await l(e);const r=e.querySelector('[value="48"]'),s=r.querySelector("sp-table-checkbox-cell");t(r.selected).to.be.true,t(s.checkbox.checked).to.be.true}),it("does not set `allSelected` to true by default on Virtualised `<sp-table>`",async()=>{const e=(await i(d`
361
+ `
362
+ );
363
+ const el = test.querySelector("sp-table");
364
+ await oneEvent(el, "rangeChanged");
365
+ await elementUpdated(el);
366
+ const rowOne = el.querySelector('[value="0"]');
367
+ const rowOneCheckboxCell = rowOne.querySelector(
368
+ "sp-table-checkbox-cell"
369
+ );
370
+ expect(el.selected).to.deep.equal(["0", "48"]);
371
+ expect(rowOne.selected).to.be.true;
372
+ expect(rowOneCheckboxCell.checkbox.checked).to.be.true;
373
+ el.scrollToIndex(47);
374
+ await nextFrame();
375
+ await nextFrame();
376
+ await elementUpdated(el);
377
+ const unseenRow = el.querySelector('[value="48"]');
378
+ const unseenRowCheckboxCell = unseenRow.querySelector(
379
+ "sp-table-checkbox-cell"
380
+ );
381
+ expect(unseenRow.selected).to.be.true;
382
+ expect(unseenRowCheckboxCell.checkbox.checked).to.be.true;
383
+ });
384
+ it("does not set `allSelected` to true by default on Virtualised `<sp-table>`", async () => {
385
+ const test = await fixture(
386
+ html`
49
387
  <div>
50
- ${b(b.args)}
388
+ ${virtualizedMultiple(
389
+ virtualizedMultiple.args
390
+ )}
51
391
  </div>
52
- `)).querySelector("sp-table");await n(e,"rangeChanged"),await l(e),await l(e);const a=e.querySelector("sp-table-head sp-table-checkbox-cell");t(e.selected).to.deep.equal(["0","48"]),t(a.checkbox.checked).to.be.false,t(a.checkbox.indeterminate).to.be.true})}),it("renders custom content at a particular row and does not select it",async()=>{const e=(await i(d`
392
+ `
393
+ );
394
+ const el = test.querySelector("sp-table");
395
+ await oneEvent(el, "rangeChanged");
396
+ await elementUpdated(el);
397
+ await elementUpdated(el);
398
+ const tableHeadCheckboxCell = el.querySelector(
399
+ "sp-table-head sp-table-checkbox-cell"
400
+ );
401
+ expect(el.selected).to.deep.equal(["0", "48"]);
402
+ expect(tableHeadCheckboxCell.checkbox.checked).to.be.false;
403
+ expect(tableHeadCheckboxCell.checkbox.indeterminate).to.be.true;
404
+ });
405
+ });
406
+ it("renders custom content at a particular row and does not select it", async () => {
407
+ const test = await fixture(
408
+ html`
53
409
  <div>
54
- ${x(x.args)}
410
+ ${virtualizedCustomRow(virtualizedCustomRow.args)}
55
411
  </div>
56
- `)).querySelector("sp-table");await n(e,"rangeChanged"),await l(e);const a=e.querySelector('[value="3"]'),c=a.querySelector("sp-checkbox-cell");t(c).to.be.null,e.querySelector("sp-table-head sp-table-checkbox-cell").checkbox.click(),await l(e),t(a.selected).to.be.false});
412
+ `
413
+ );
414
+ const el = test.querySelector("sp-table");
415
+ await oneEvent(el, "rangeChanged");
416
+ await elementUpdated(el);
417
+ const customRow = el.querySelector('[value="3"]');
418
+ const customRowCheckbox = customRow.querySelector("sp-checkbox-cell");
419
+ expect(customRowCheckbox).to.be.null;
420
+ const tableHeadCheckboxCell = el.querySelector(
421
+ "sp-table-head sp-table-checkbox-cell"
422
+ );
423
+ tableHeadCheckboxCell.checkbox.click();
424
+ await elementUpdated(el);
425
+ expect(customRow.selected).to.be.false;
426
+ });
57
427
  //# sourceMappingURL=virtualized-table-selects.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["virtualized-table-selects.test.ts"],
4
- "sourcesContent": ["/*\nCopyright 2022 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport {\n elementUpdated,\n expect,\n fixture,\n html,\n nextFrame,\n oneEvent,\n} from '@open-wc/testing';\n\nimport '../sp-table.js';\nimport '../sp-table-head.js';\nimport '../sp-table-head-cell.js';\nimport '../sp-table-body.js';\nimport '../sp-table-row.js';\nimport '../sp-table-cell.js';\nimport { Table } from '../';\nimport {\n virtualized,\n virtualizedCustomRow,\n virtualizedCustomValue,\n virtualizedMultiple,\n virtualizedSingle,\n} from '../stories/table-virtualized.stories.js';\nimport { makeItems, Properties, renderItem } from '../stories/index.js';\nimport { TableRow } from '../src/TableRow.js';\nimport { TableCheckboxCell } from '../src/TableCheckboxCell.js';\n\nlet globalErrorHandler: undefined | OnErrorEventHandler = undefined;\nbefore(function () {\n // Save Mocha's handler.\n (\n Mocha as unknown as { process: { removeListener(name: string): void } }\n ).process.removeListener('uncaughtException');\n globalErrorHandler = window.onerror;\n addEventListener('error', (error) => {\n if (error.message?.match?.(/ResizeObserver loop limit exceeded/)) {\n return;\n } else {\n globalErrorHandler?.(error);\n }\n });\n});\nafter(function () {\n window.onerror = globalErrorHandler as OnErrorEventHandler;\n});\n\ndescribe('Virtualized Table Selects', () => {\n it('selects and deselects all checkboxes in Virtualized Table when clicking the TableHeadCheckboxCell', async () => {\n const test = await fixture<Table>(\n html`\n <div>\n ${virtualizedMultiple(\n virtualizedMultiple.args as Properties\n )}\n </div>\n `\n );\n const el = test.querySelector('sp-table') as Table;\n\n await oneEvent(el, 'rangeChanged');\n await elementUpdated(el);\n\n expect(el.selected).to.deep.equal(['0', '48']);\n expect(el.selected.length).to.equal(2);\n\n const tableHeadCheckboxCell = el.querySelector(\n 'sp-table-head sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n\n tableHeadCheckboxCell.checkbox.click();\n\n await elementUpdated(el);\n\n expect(el.selected.length).to.equal(49);\n\n tableHeadCheckboxCell.checkbox.click();\n\n await elementUpdated(el);\n await elementUpdated(tableHeadCheckboxCell);\n\n expect(el.selected.length).to.equal(0);\n });\n\n it('validates `value` property to make sure it matches the values in `selected`', async () => {\n const el = await fixture<Table>(\n virtualizedCustomValue(virtualizedCustomValue.args as Properties)\n );\n\n expect(el.selected).to.deep.equal(['applied-47']);\n\n el.selected = ['0'];\n\n const rowOne = el.querySelector('[value=\"0\"]') as TableRow;\n expect(rowOne).to.be.null;\n });\n\n it('can prevent selection', async () => {\n const el = await fixture<Table>(\n html`\n <sp-table\n size=\"m\"\n style=\"height: 200px\"\n selects=\"single\"\n @change=${(event: Event) => {\n event.preventDefault();\n }}\n .items=${makeItems(50)}\n .renderItem=${renderItem}\n >\n <sp-table-head>\n <sp-table-head-cell>Column Title</sp-table-head-cell>\n <sp-table-head-cell>Column Title</sp-table-head-cell>\n <sp-table-head-cell>Column Title</sp-table-head-cell>\n </sp-table-head>\n </sp-table>\n `\n );\n\n await oneEvent(el, 'rangeChanged');\n await elementUpdated(el);\n\n const rowTwo = el.querySelector('[value=\"2\"]') as TableRow;\n const rowTwoCheckbox = rowTwo.querySelector(\n 'sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n\n rowTwoCheckbox.checkbox.click();\n await elementUpdated(el);\n\n expect(rowTwoCheckbox.checked).to.be.false;\n expect(rowTwo.selected).to.be.false;\n expect(el.selected.length).to.equal(0);\n });\n\n it('surfaces [selects=\"single\"] selection on Virtualized Table', async () => {\n const test = await fixture<Table>(\n html`\n <div>\n ${virtualizedSingle(virtualizedSingle.args as Properties)}\n </div>\n `\n );\n const el = test.querySelector('sp-table') as Table;\n\n await oneEvent(el, 'rangeChanged');\n await elementUpdated(el);\n\n expect(el.selected, \"'Row 50 selected\").to.deep.equal(['49']);\n\n el.scrollTop = el.scrollHeight;\n\n await nextFrame();\n await nextFrame();\n await elementUpdated(el);\n\n const lastRow = el.querySelector('[value=\"49\"]') as TableRow;\n const lastRowCheckboxCell = lastRow.querySelector(\n 'sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n\n expect(lastRowCheckboxCell.checked).to.be.true;\n });\n\n it('selects via `click` while [selects=\"single\"]', async () => {\n const test = await fixture<Table>(\n html`\n <div>\n ${virtualizedSingle(virtualizedSingle.args as Properties)}\n </div>\n `\n );\n const el = test.querySelector('sp-table') as Table;\n el.selected = [];\n await oneEvent(el, 'rangeChanged');\n await elementUpdated(el);\n\n const rowTwo = el.querySelector('[value=\"1\"]') as TableRow;\n const rowTwoCheckbox = rowTwo.querySelector(\n 'sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n const rowThree = el.querySelector('[value=\"2\"]') as TableRow;\n const rowThreeCheckbox = rowThree.querySelector(\n 'sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n\n await elementUpdated(el);\n expect(el.selected.length).to.equal(0);\n\n rowTwoCheckbox.checkbox.click();\n await elementUpdated(el);\n\n expect(el.selected).to.deep.equal(['1']);\n\n rowThreeCheckbox.checkbox.click();\n await elementUpdated(el);\n\n expect(el.selected).to.deep.equal(['2']);\n\n rowTwo.click();\n await elementUpdated(el);\n\n expect(el.selected).to.deep.equal(['1']);\n });\n\n it('surfaces [selects=\"multiple\"] selection on Virtualized Table', async () => {\n const test = await fixture<Table>(\n html`\n <div>\n ${virtualizedMultiple(\n virtualizedMultiple.args as Properties\n )}\n </div>\n `\n );\n const el = test.querySelector('sp-table') as Table;\n\n await oneEvent(el, 'rangeChanged');\n await elementUpdated(el);\n\n expect(el.selected).to.deep.equal(['0', '48']);\n\n el.scrollTop = el.scrollHeight;\n\n await nextFrame();\n await nextFrame();\n await elementUpdated(el);\n\n const unseenRow = el.querySelector('[value=\"48\"]') as TableRow;\n expect(unseenRow).to.not.be.null;\n const unseenRowCheckboxCell = unseenRow.querySelector(\n 'sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n\n expect(unseenRowCheckboxCell.checked).to.be.true;\n });\n\n it('selects via `click` while [selects=\"multiple\"] selection', async () => {\n const test = await fixture<Table>(\n html`\n <div>\n ${virtualizedMultiple(\n virtualizedMultiple.args as Properties\n )}\n </div>\n `\n );\n const el = test.querySelector('sp-table') as Table;\n el.selected = [];\n await oneEvent(el, 'rangeChanged');\n await elementUpdated(el);\n\n const rowTwo = el.querySelector('[value=\"2\"]') as TableRow;\n const tableHeadCheckboxCell = el.querySelector(\n 'sp-table-head sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n const rowTwoCheckbox = rowTwo.querySelector(\n 'sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n\n await elementUpdated(el);\n expect(el.selected.length).to.equal(0);\n\n rowTwoCheckbox.checkbox.click();\n await elementUpdated(el);\n\n expect(rowTwoCheckbox.checked).to.be.true;\n expect(el.selected).to.deep.equal(['2']);\n\n tableHeadCheckboxCell.checkbox.click();\n await elementUpdated(el);\n\n expect(el.selected.length).to.equal(49);\n });\n\n it('allows .selected values to be changed by the application when [selects=\"multiple\"]', async () => {\n const test = await fixture<Table>(\n html`\n <div>\n ${virtualizedMultiple(\n virtualizedMultiple.args as Properties\n )}\n </div>\n `\n );\n const el = test.querySelector('sp-table') as Table;\n el.selected = ['1'];\n await oneEvent(el, 'rangeChanged');\n await elementUpdated(el);\n\n const rowOne = el.querySelector('[value=\"1\"]') as TableRow;\n const rowOneCheckboxCell = rowOne.querySelector(\n 'sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n const rowTwo = el.querySelector('[value=\"2\"]') as TableRow;\n const rowTwoCheckboxCell = rowTwo.querySelector(\n 'sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n\n expect(el.selected).to.deep.equal(['1']);\n expect(rowOneCheckboxCell.checkbox.checked).to.be.true;\n expect(rowTwoCheckboxCell.checkbox.checked).to.be.false;\n\n el.selected = ['1', '2'];\n\n await nextFrame;\n await nextFrame;\n await elementUpdated(el);\n await elementUpdated(rowTwoCheckboxCell);\n\n expect(el.selected).to.deep.equal(['1', '2']);\n expect(rowOneCheckboxCell.checkbox.checked).to.be.true;\n expect(rowTwo.selected).to.be.true;\n expect(rowTwoCheckboxCell.checkbox.checked).to.be.true;\n });\n\n it('allows [selects] to be changed by the application', async () => {\n const test = await fixture<HTMLElement>(virtualized());\n const el = test.shadowRoot?.querySelector('sp-table') as Table;\n await oneEvent(el, 'rangeChanged');\n await elementUpdated(el);\n\n expect(el.selects).to.be.undefined;\n\n el.selects = 'single';\n await elementUpdated(el);\n\n expect(el.selects).to.equal('single');\n\n // render table body\n await nextFrame();\n // render checkboxes\n await nextFrame();\n await elementUpdated(el);\n\n const rowOne = el.querySelector('[value=\"0\"]') as TableRow;\n const rowOneCheckboxCell = rowOne.querySelector(\n 'sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n\n const rowTwo = el.querySelector('[value=\"1\"]') as TableRow;\n const rowTwoCheckboxCell = rowTwo.querySelector(\n 'sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n const tableHeadCheckboxCell = el.querySelector(\n 'sp-table-head sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n\n expect(tableHeadCheckboxCell.selectsSingle).to.be.true;\n\n rowOneCheckboxCell.checkbox.click();\n await elementUpdated(el);\n\n expect(el.selected).to.deep.equal(['0']);\n expect(rowOneCheckboxCell.checkbox.checked).to.be.true;\n expect(rowTwoCheckboxCell.checkbox.checked).to.be.false;\n\n el.selects = 'multiple';\n await elementUpdated(el);\n\n expect(el.selects).to.equal('multiple');\n expect(tableHeadCheckboxCell.indeterminate).to.be.true;\n\n rowTwoCheckboxCell.checkbox.click();\n\n await elementUpdated(el);\n await elementUpdated(rowTwoCheckboxCell);\n\n expect(el.selected).to.deep.equal(['0', '1']);\n expect(rowOneCheckboxCell.checkbox.checked).to.be.true;\n expect(rowTwoCheckboxCell.checkbox.checked).to.be.true;\n expect(tableHeadCheckboxCell.indeterminate).to.be.true;\n });\n\n it('selects a user-passed value for .selected array with no [selects] specified on Virtualized `<sp-table>`, but does not allow interaction afterwards', async () => {\n const test = await fixture<HTMLElement>(virtualized());\n const el = test.shadowRoot?.querySelector('sp-table') as Table;\n el.selected = ['0'];\n await oneEvent(el, 'rangeChanged');\n await elementUpdated(el);\n\n expect(el.selected.length).to.equal(1);\n\n const rowOne = el.querySelector('[value=\"0\"]') as TableRow;\n const rowTwo = el.querySelector('[value=\"1\"]') as TableRow;\n const rowTwoCheckbox = rowTwo.querySelector('sp-table-checkbox-cell');\n\n expect(rowOne.selected).to.be.true;\n expect(rowTwo.selected).to.be.false;\n\n expect(rowTwoCheckbox).to.be.null;\n });\n\n it('ensures that virtualized elements with values in .selected are visually selected when brought into view using scrollTop', async () => {\n const test = await fixture<Table>(\n html`\n <div>\n ${virtualizedMultiple(\n virtualizedMultiple.args as Properties\n )}\n </div>\n `\n );\n const el = test.querySelector('sp-table') as Table;\n\n await oneEvent(el, 'rangeChanged');\n await elementUpdated(el);\n\n const rowOne = el.querySelector('[value=\"0\"]') as TableRow;\n const rowOneCheckboxCell = rowOne.querySelector(\n 'sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n\n expect(el.selected).to.deep.equal(['0', '48']);\n expect(rowOne.selected).to.be.true;\n expect(rowOneCheckboxCell.checkbox.checked).to.be.true;\n\n el.scrollTop = el.scrollHeight;\n\n await nextFrame();\n await nextFrame();\n await elementUpdated(el);\n\n const unseenRow = el.querySelector('[value=\"48\"]') as TableRow;\n const unseenRowCheckboxCell = unseenRow.querySelector(\n 'sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n\n expect(unseenRow.selected).to.be.true;\n expect(unseenRowCheckboxCell.checkbox.checked).to.be.true;\n });\n\n it('ensures that virtualized elements with values in .selected are visually selected when brought into view using scrollToIndex', async () => {\n const test = await fixture<Table>(\n html`\n <div>\n ${virtualizedMultiple(\n virtualizedMultiple.args as Properties\n )}\n </div>\n `\n );\n const el = test.querySelector('sp-table') as Table;\n\n await oneEvent(el, 'rangeChanged');\n await elementUpdated(el);\n\n const rowOne = el.querySelector('[value=\"0\"]') as TableRow;\n const rowOneCheckboxCell = rowOne.querySelector(\n 'sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n\n expect(el.selected).to.deep.equal(['0', '48']);\n expect(rowOne.selected).to.be.true;\n expect(rowOneCheckboxCell.checkbox.checked).to.be.true;\n\n el.scrollToIndex(47);\n\n await nextFrame();\n await nextFrame();\n await elementUpdated(el);\n\n const unseenRow = el.querySelector('[value=\"48\"]') as TableRow;\n const unseenRowCheckboxCell = unseenRow.querySelector(\n 'sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n\n expect(unseenRow.selected).to.be.true;\n expect(unseenRowCheckboxCell.checkbox.checked).to.be.true;\n });\n\n it('does not set `allSelected` to true by default on Virtualised `<sp-table>`', async () => {\n const test = await fixture<Table>(\n html`\n <div>\n ${virtualizedMultiple(\n virtualizedMultiple.args as Properties\n )}\n </div>\n `\n );\n const el = test.querySelector('sp-table') as Table;\n\n await oneEvent(el, 'rangeChanged');\n await elementUpdated(el);\n await elementUpdated(el);\n\n const tableHeadCheckboxCell = el.querySelector(\n 'sp-table-head sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n\n expect(el.selected).to.deep.equal(['0', '48']);\n expect(tableHeadCheckboxCell.checkbox.checked).to.be.false;\n expect(tableHeadCheckboxCell.checkbox.indeterminate).to.be.true;\n });\n});\n\nit('renders custom content at a particular row and does not select it', async () => {\n const test = await fixture<Table>(\n html`\n <div>\n ${virtualizedCustomRow(virtualizedCustomRow.args as Properties)}\n </div>\n `\n );\n const el = test.querySelector('sp-table') as Table;\n\n await oneEvent(el, 'rangeChanged');\n await elementUpdated(el);\n\n const customRow = el.querySelector('[value=\"3\"]') as TableRow;\n const customRowCheckbox = customRow.querySelector('sp-checkbox-cell');\n\n expect(customRowCheckbox).to.be.null;\n\n const tableHeadCheckboxCell = el.querySelector(\n 'sp-table-head sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n tableHeadCheckboxCell.checkbox.click();\n await elementUpdated(el);\n\n expect(customRow.selected).to.be.false;\n});\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/*\nCopyright 2022 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport {\n elementUpdated,\n expect,\n fixture,\n html,\n nextFrame,\n oneEvent,\n} from '@open-wc/testing';\n\nimport '@spectrum-web-components/table/sp-table.js';\nimport '@spectrum-web-components/table/sp-table-head.js';\nimport '@spectrum-web-components/table/sp-table-head-cell.js';\nimport '@spectrum-web-components/table/sp-table-body.js';\nimport '@spectrum-web-components/table/sp-table-row.js';\nimport '@spectrum-web-components/table/sp-table-cell.js';\nimport type {\n Table,\n TableCheckboxCell,\n TableRow,\n} from '@spectrum-web-components/table';\nimport {\n virtualized,\n virtualizedCustomRow,\n virtualizedCustomValue,\n virtualizedMultiple,\n virtualizedSingle,\n} from '../stories/table-virtualized.stories.js';\nimport { makeItems, Properties, renderItem } from '../stories/index.js';\n\nlet globalErrorHandler: undefined | OnErrorEventHandler = undefined;\nbefore(function () {\n // Save Mocha's handler.\n (\n Mocha as unknown as { process: { removeListener(name: string): void } }\n ).process.removeListener('uncaughtException');\n globalErrorHandler = window.onerror;\n addEventListener('error', (error) => {\n if (error.message?.match?.(/ResizeObserver loop limit exceeded/)) {\n return;\n } else {\n globalErrorHandler?.(error);\n }\n });\n});\nafter(function () {\n window.onerror = globalErrorHandler as OnErrorEventHandler;\n});\n\ndescribe('Virtualized Table Selects', () => {\n it('selects and deselects all checkboxes in Virtualized Table when clicking the TableHeadCheckboxCell', async () => {\n const test = await fixture<Table>(\n html`\n <div>\n ${virtualizedMultiple(\n virtualizedMultiple.args as Properties\n )}\n </div>\n `\n );\n const el = test.querySelector('sp-table') as Table;\n\n await oneEvent(el, 'rangeChanged');\n await elementUpdated(el);\n\n expect(el.selected).to.deep.equal(['0', '48']);\n expect(el.selected.length).to.equal(2);\n\n const tableHeadCheckboxCell = el.querySelector(\n 'sp-table-head sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n\n tableHeadCheckboxCell.checkbox.click();\n\n await elementUpdated(el);\n\n expect(el.selected.length).to.equal(49);\n\n tableHeadCheckboxCell.checkbox.click();\n\n await elementUpdated(el);\n await elementUpdated(tableHeadCheckboxCell);\n\n expect(el.selected.length).to.equal(0);\n });\n\n it('validates `value` property to make sure it matches the values in `selected`', async () => {\n const el = await fixture<Table>(\n virtualizedCustomValue(virtualizedCustomValue.args as Properties)\n );\n\n expect(el.selected).to.deep.equal(['applied-47']);\n\n el.selected = ['0'];\n await elementUpdated(el);\n\n expect(el.selected).to.deep.equal([]);\n\n el.selected = ['applied-1'];\n await elementUpdated(el);\n\n expect(el.selected).to.deep.equal(['applied-1']);\n });\n\n it('can prevent selection', async () => {\n const el = await fixture<Table>(\n html`\n <sp-table\n size=\"m\"\n style=\"height: 200px\"\n selects=\"single\"\n @change=${(event: Event) => {\n event.preventDefault();\n }}\n .items=${makeItems(50)}\n .renderItem=${renderItem}\n >\n <sp-table-head>\n <sp-table-head-cell>Column Title</sp-table-head-cell>\n <sp-table-head-cell>Column Title</sp-table-head-cell>\n <sp-table-head-cell>Column Title</sp-table-head-cell>\n </sp-table-head>\n </sp-table>\n `\n );\n\n await oneEvent(el, 'rangeChanged');\n await elementUpdated(el);\n\n const rowTwo = el.querySelector('[value=\"2\"]') as TableRow;\n const rowTwoCheckbox = rowTwo.querySelector(\n 'sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n\n rowTwoCheckbox.checkbox.click();\n await elementUpdated(el);\n\n expect(rowTwoCheckbox.checked).to.be.false;\n expect(rowTwo.selected).to.be.false;\n expect(el.selected.length).to.equal(0);\n });\n\n it('surfaces [selects=\"single\"] selection on Virtualized Table', async () => {\n const test = await fixture<Table>(\n html`\n <div>\n ${virtualizedSingle(virtualizedSingle.args as Properties)}\n </div>\n `\n );\n const el = test.querySelector('sp-table') as Table;\n\n await oneEvent(el, 'rangeChanged');\n await elementUpdated(el);\n\n expect(el.selected, \"'Row 50 selected\").to.deep.equal(['49']);\n\n el.scrollTop = el.scrollHeight;\n\n await nextFrame();\n await nextFrame();\n await elementUpdated(el);\n\n const lastRow = el.querySelector('[value=\"49\"]') as TableRow;\n const lastRowCheckboxCell = lastRow.querySelector(\n 'sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n\n expect(lastRowCheckboxCell.checked).to.be.true;\n });\n\n it('selects via `click` while [selects=\"single\"]', async () => {\n const test = await fixture<Table>(\n html`\n <div>\n ${virtualizedSingle(virtualizedSingle.args as Properties)}\n </div>\n `\n );\n const el = test.querySelector('sp-table') as Table;\n el.selected = [];\n await oneEvent(el, 'rangeChanged');\n await elementUpdated(el);\n\n const rowTwo = el.querySelector('[value=\"1\"]') as TableRow;\n const rowTwoCheckbox = rowTwo.querySelector(\n 'sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n const rowThree = el.querySelector('[value=\"2\"]') as TableRow;\n const rowThreeCheckbox = rowThree.querySelector(\n 'sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n\n await elementUpdated(el);\n expect(el.selected.length).to.equal(0);\n\n rowTwoCheckbox.checkbox.click();\n await elementUpdated(el);\n\n expect(el.selected).to.deep.equal(['1']);\n\n rowThreeCheckbox.click();\n await elementUpdated(el);\n\n expect(el.selected).to.deep.equal(['2']);\n\n rowTwo.click();\n await elementUpdated(el);\n\n expect(el.selected).to.deep.equal(['1']);\n });\n\n it('surfaces [selects=\"multiple\"] selection on Virtualized Table', async () => {\n const test = await fixture<Table>(\n html`\n <div>\n ${virtualizedMultiple(\n virtualizedMultiple.args as Properties\n )}\n </div>\n `\n );\n const el = test.querySelector('sp-table') as Table;\n\n await oneEvent(el, 'rangeChanged');\n await elementUpdated(el);\n\n expect(el.selected).to.deep.equal(['0', '48']);\n\n el.scrollTop = el.scrollHeight;\n\n await nextFrame();\n await nextFrame();\n await elementUpdated(el);\n\n const unseenRow = el.querySelector('[value=\"48\"]') as TableRow;\n expect(unseenRow).to.not.be.null;\n const unseenRowCheckboxCell = unseenRow.querySelector(\n 'sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n\n expect(unseenRowCheckboxCell.checked).to.be.true;\n });\n\n it('selects via `click` while [selects=\"multiple\"] selection', async () => {\n const test = await fixture<Table>(\n html`\n <div>\n ${virtualizedMultiple(\n virtualizedMultiple.args as Properties\n )}\n </div>\n `\n );\n const el = test.querySelector('sp-table') as Table;\n el.selected = [];\n await oneEvent(el, 'rangeChanged');\n await elementUpdated(el);\n\n const rowTwo = el.querySelector('[value=\"2\"]') as TableRow;\n const tableHeadCheckboxCell = el.querySelector(\n 'sp-table-head sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n const rowTwoCheckbox = rowTwo.querySelector(\n 'sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n\n await elementUpdated(el);\n expect(el.selected.length).to.equal(0);\n\n rowTwoCheckbox.checkbox.click();\n await elementUpdated(el);\n\n expect(rowTwoCheckbox.checked).to.be.true;\n expect(el.selected).to.deep.equal(['2']);\n\n tableHeadCheckboxCell.checkbox.click();\n await elementUpdated(el);\n\n expect(el.selected.length).to.equal(49);\n });\n\n it('allows .selected values to be changed by the application when [selects=\"multiple\"]', async () => {\n const test = await fixture<Table>(\n html`\n <div>\n ${virtualizedMultiple(\n virtualizedMultiple.args as Properties\n )}\n </div>\n `\n );\n const el = test.querySelector('sp-table') as Table;\n el.selected = ['1'];\n await oneEvent(el, 'rangeChanged');\n await elementUpdated(el);\n\n const rowOne = el.querySelector('[value=\"1\"]') as TableRow;\n const rowOneCheckboxCell = rowOne.querySelector(\n 'sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n const rowTwo = el.querySelector('[value=\"2\"]') as TableRow;\n const rowTwoCheckboxCell = rowTwo.querySelector(\n 'sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n\n expect(el.selected).to.deep.equal(['1']);\n expect(rowOneCheckboxCell.checkbox.checked).to.be.true;\n expect(rowTwoCheckboxCell.checkbox.checked).to.be.false;\n\n el.selected = ['1', '2'];\n\n await nextFrame;\n await nextFrame;\n await elementUpdated(el);\n await elementUpdated(rowTwoCheckboxCell);\n\n expect(el.selected).to.deep.equal(['1', '2']);\n expect(rowOneCheckboxCell.checkbox.checked).to.be.true;\n expect(rowTwo.selected).to.be.true;\n expect(rowTwoCheckboxCell.checkbox.checked).to.be.true;\n });\n\n it('allows [selects] to be changed by the application', async () => {\n const test = await fixture<HTMLElement>(virtualized());\n const el = test.shadowRoot?.querySelector('sp-table') as Table;\n await oneEvent(el, 'rangeChanged');\n await elementUpdated(el);\n\n expect(el.selects).to.be.undefined;\n\n el.selects = 'single';\n await elementUpdated(el);\n\n expect(el.selects).to.equal('single');\n\n // render table body\n await nextFrame();\n // render checkboxes\n await nextFrame();\n await elementUpdated(el);\n\n const rowOne = el.querySelector('[value=\"0\"]') as TableRow;\n const rowOneCheckboxCell = rowOne.querySelector(\n 'sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n\n const rowTwo = el.querySelector('[value=\"1\"]') as TableRow;\n const rowTwoCheckboxCell = rowTwo.querySelector(\n 'sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n const tableHeadCheckboxCell = el.querySelector(\n 'sp-table-head sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n\n expect(tableHeadCheckboxCell.selectsSingle).to.be.true;\n\n rowOneCheckboxCell.checkbox.click();\n await elementUpdated(el);\n\n expect(el.selected).to.deep.equal(['0']);\n expect(rowOneCheckboxCell.checkbox.checked).to.be.true;\n expect(rowTwoCheckboxCell.checkbox.checked).to.be.false;\n\n el.selects = 'multiple';\n await elementUpdated(el);\n\n expect(el.selects).to.equal('multiple');\n expect(tableHeadCheckboxCell.indeterminate).to.be.true;\n\n rowTwoCheckboxCell.checkbox.click();\n\n await elementUpdated(el);\n await elementUpdated(rowTwoCheckboxCell);\n\n expect(el.selected).to.deep.equal(['0', '1']);\n expect(rowOneCheckboxCell.checkbox.checked).to.be.true;\n expect(rowTwoCheckboxCell.checkbox.checked).to.be.true;\n expect(tableHeadCheckboxCell.indeterminate).to.be.true;\n\n el.removeAttribute('selects');\n await elementUpdated(el);\n\n expect(el.selects).to.be.null;\n expect(tableHeadCheckboxCell.indeterminate).to.be.true;\n\n const checkboxes = el.querySelectorAll(\n 'sp-table-checkbox-cell'\n ) as NodeListOf<TableCheckboxCell>;\n\n expect(checkboxes.length).to.equal(0);\n });\n\n it('selects a user-passed value for .selected array with no [selects] specified on Virtualized `<sp-table>`, but does not allow interaction afterwards', async () => {\n const test = await fixture<HTMLElement>(virtualized());\n const el = test.shadowRoot?.querySelector('sp-table') as Table;\n el.selected = ['0'];\n await oneEvent(el, 'rangeChanged');\n await elementUpdated(el);\n\n expect(el.selected.length).to.equal(1);\n\n const rowOne = el.querySelector('[value=\"0\"]') as TableRow;\n const rowTwo = el.querySelector('[value=\"1\"]') as TableRow;\n const rowTwoCheckbox = rowTwo.querySelector('sp-table-checkbox-cell');\n\n expect(rowOne.selected).to.be.true;\n expect(rowTwo.selected).to.be.false;\n\n expect(rowTwoCheckbox).to.be.null;\n });\n\n it('ensures that virtualized elements with values in .selected are visually selected when brought into view using scrollTop', async () => {\n const test = await fixture<Table>(\n html`\n <div>\n ${virtualizedMultiple(\n virtualizedMultiple.args as Properties\n )}\n </div>\n `\n );\n const el = test.querySelector('sp-table') as Table;\n\n await oneEvent(el, 'rangeChanged');\n await elementUpdated(el);\n\n const rowOne = el.querySelector('[value=\"0\"]') as TableRow;\n const rowOneCheckboxCell = rowOne.querySelector(\n 'sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n\n expect(el.selected).to.deep.equal(['0', '48']);\n expect(rowOne.selected).to.be.true;\n expect(rowOneCheckboxCell.checkbox.checked).to.be.true;\n\n el.scrollTop = el.scrollHeight;\n\n await nextFrame();\n await nextFrame();\n await elementUpdated(el);\n\n const unseenRow = el.querySelector('[value=\"48\"]') as TableRow;\n const unseenRowCheckboxCell = unseenRow.querySelector(\n 'sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n\n expect(unseenRow.selected).to.be.true;\n expect(unseenRowCheckboxCell.checkbox.checked).to.be.true;\n });\n\n it('ensures that virtualized elements with values in .selected are visually selected when brought into view using scrollToIndex', async () => {\n const test = await fixture<Table>(\n html`\n <div>\n ${virtualizedMultiple(\n virtualizedMultiple.args as Properties\n )}\n </div>\n `\n );\n const el = test.querySelector('sp-table') as Table;\n\n await oneEvent(el, 'rangeChanged');\n await elementUpdated(el);\n\n const rowOne = el.querySelector('[value=\"0\"]') as TableRow;\n const rowOneCheckboxCell = rowOne.querySelector(\n 'sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n\n expect(el.selected).to.deep.equal(['0', '48']);\n expect(rowOne.selected).to.be.true;\n expect(rowOneCheckboxCell.checkbox.checked).to.be.true;\n\n el.scrollToIndex(47);\n\n await nextFrame();\n await nextFrame();\n await elementUpdated(el);\n\n const unseenRow = el.querySelector('[value=\"48\"]') as TableRow;\n const unseenRowCheckboxCell = unseenRow.querySelector(\n 'sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n\n expect(unseenRow.selected).to.be.true;\n expect(unseenRowCheckboxCell.checkbox.checked).to.be.true;\n });\n\n it('does not set `allSelected` to true by default on Virtualised `<sp-table>`', async () => {\n const test = await fixture<Table>(\n html`\n <div>\n ${virtualizedMultiple(\n virtualizedMultiple.args as Properties\n )}\n </div>\n `\n );\n const el = test.querySelector('sp-table') as Table;\n\n await oneEvent(el, 'rangeChanged');\n await elementUpdated(el);\n await elementUpdated(el);\n\n const tableHeadCheckboxCell = el.querySelector(\n 'sp-table-head sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n\n expect(el.selected).to.deep.equal(['0', '48']);\n expect(tableHeadCheckboxCell.checkbox.checked).to.be.false;\n expect(tableHeadCheckboxCell.checkbox.indeterminate).to.be.true;\n });\n});\n\nit('renders custom content at a particular row and does not select it', async () => {\n const test = await fixture<Table>(\n html`\n <div>\n ${virtualizedCustomRow(virtualizedCustomRow.args as Properties)}\n </div>\n `\n );\n const el = test.querySelector('sp-table') as Table;\n\n await oneEvent(el, 'rangeChanged');\n await elementUpdated(el);\n\n const customRow = el.querySelector('[value=\"3\"]') as TableRow;\n const customRowCheckbox = customRow.querySelector('sp-checkbox-cell');\n\n expect(customRowCheckbox).to.be.null;\n\n const tableHeadCheckboxCell = el.querySelector(\n 'sp-table-head sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n tableHeadCheckboxCell.checkbox.click();\n await elementUpdated(el);\n\n expect(customRow.selected).to.be.false;\n});\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }