@spectrum-web-components/table 1.0.0-rc.0 → 1.0.0-rc.2
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.
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@spectrum-web-components/table",
|
|
3
|
-
"version": "1.0.0-rc.
|
|
3
|
+
"version": "1.0.0-rc.2",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -123,10 +123,10 @@
|
|
|
123
123
|
"dependencies": {
|
|
124
124
|
"@lit-labs/observers": "^2.0.2",
|
|
125
125
|
"@lit-labs/virtualizer": "^2.0.12",
|
|
126
|
-
"@spectrum-web-components/base": "^1.0.0-rc.
|
|
127
|
-
"@spectrum-web-components/checkbox": "^1.0.0-rc.
|
|
128
|
-
"@spectrum-web-components/icon": "^1.0.0-rc.
|
|
129
|
-
"@spectrum-web-components/icons-ui": "^1.0.0-rc.
|
|
126
|
+
"@spectrum-web-components/base": "^1.0.0-rc.2",
|
|
127
|
+
"@spectrum-web-components/checkbox": "^1.0.0-rc.2",
|
|
128
|
+
"@spectrum-web-components/icon": "^1.0.0-rc.2",
|
|
129
|
+
"@spectrum-web-components/icons-ui": "^1.0.0-rc.2"
|
|
130
130
|
},
|
|
131
131
|
"devDependencies": {
|
|
132
132
|
"@spectrum-css/table": "^7.0.0-s2-foundations.17"
|
|
@@ -138,5 +138,5 @@
|
|
|
138
138
|
"./elements.js",
|
|
139
139
|
"./**/*.dev.js"
|
|
140
140
|
],
|
|
141
|
-
"gitHead": "
|
|
141
|
+
"gitHead": "45ad539f37a4325a83d02253ea9135c90e1b8b3d"
|
|
142
142
|
}
|
package/test/helpers.js
CHANGED
|
@@ -3,7 +3,7 @@ import { fixture, html } from "@open-wc/testing";
|
|
|
3
3
|
import { virtualizerRef } from "@lit-labs/virtualizer/virtualize.js";
|
|
4
4
|
export async function styledFixture(story) {
|
|
5
5
|
const test = await fixture(html`
|
|
6
|
-
<sp-theme
|
|
6
|
+
<sp-theme system="spectrum" scale="medium" color="light">
|
|
7
7
|
${story}
|
|
8
8
|
</sp-theme>
|
|
9
9
|
`);
|
package/test/helpers.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["helpers.ts"],
|
|
4
|
-
"sourcesContent": ["/*\nCopyright 2023 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*/\nimport { TemplateResult } from '@spectrum-web-components/base';\nimport type { Table, TableBody } from '@spectrum-web-components/table';\nimport type { Theme } from '@spectrum-web-components/theme';\nimport { fixture, html } from '@open-wc/testing';\nimport { virtualizerRef } from '@lit-labs/virtualizer/virtualize.js';\nimport { Virtualizer } from '@lit-labs/virtualizer/Virtualizer.js';\n\nexport async function styledFixture<T extends Element>(\n story: TemplateResult\n): Promise<T> {\n const test = await fixture<Theme>(html`\n <sp-theme
|
|
4
|
+
"sourcesContent": ["/*\nCopyright 2023 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*/\nimport { TemplateResult } from '@spectrum-web-components/base';\nimport type { Table, TableBody } from '@spectrum-web-components/table';\nimport type { Theme } from '@spectrum-web-components/theme';\nimport { fixture, html } from '@open-wc/testing';\nimport { virtualizerRef } from '@lit-labs/virtualizer/virtualize.js';\nimport { Virtualizer } from '@lit-labs/virtualizer/Virtualizer.js';\n\nexport async function styledFixture<T extends Element>(\n story: TemplateResult\n): Promise<T> {\n const test = await fixture<Theme>(html`\n <sp-theme system=\"spectrum\" scale=\"medium\" color=\"light\">\n ${story}\n </sp-theme>\n `);\n return test.children[0] as T;\n}\n\n/* awaiting a `rangeChanged` event does not guarantee that the component has updated. We need to use\n ** layout complete to ensure the TableBody has updated for tests involving scrolling.\n */\nexport async function tableLayoutComplete(table: Table): Promise<void> {\n const body = table.querySelector(\n 'sp-table-body'\n ) as unknown as TableBody & {\n [virtualizerRef]: Virtualizer;\n };\n await body[virtualizerRef].layoutComplete;\n}\n"],
|
|
5
5
|
"mappings": ";AAcA,SAAS,SAAS,YAAY;AAC9B,SAAS,sBAAsB;AAG/B,sBAAsB,cAClB,OACU;AACV,QAAM,OAAO,MAAM,QAAe;AAAA;AAAA,cAExB,KAAK;AAAA;AAAA,KAEd;AACD,SAAO,KAAK,SAAS,CAAC;AAC1B;AAKA,sBAAsB,oBAAoB,OAA6B;AACnE,QAAM,OAAO,MAAM;AAAA,IACf;AAAA,EACJ;AAGA,QAAM,KAAK,cAAc,EAAE;AAC/B;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -28,15 +28,11 @@ import { styledFixture, tableLayoutComplete } from "./helpers.js";
|
|
|
28
28
|
ignoreResizeObserverLoopError(before, after);
|
|
29
29
|
describe("Virtualized Table Selects", () => {
|
|
30
30
|
it("selects and deselects all checkboxes in Virtualized Table when clicking the TableHeadCheckboxCell", async () => {
|
|
31
|
-
const test = await fixture(
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
)}
|
|
37
|
-
</div>
|
|
38
|
-
`
|
|
39
|
-
);
|
|
31
|
+
const test = await fixture(html`
|
|
32
|
+
<div>
|
|
33
|
+
${virtualizedMultiple(virtualizedMultiple.args)}
|
|
34
|
+
</div>
|
|
35
|
+
`);
|
|
40
36
|
const el = test.querySelector("sp-table");
|
|
41
37
|
await oneEvent(el, "rangeChanged");
|
|
42
38
|
await elementUpdated(el);
|
|
@@ -66,26 +62,24 @@ describe("Virtualized Table Selects", () => {
|
|
|
66
62
|
expect(el.selected).to.deep.equal(["applied-1"]);
|
|
67
63
|
});
|
|
68
64
|
it("can prevent selection", async () => {
|
|
69
|
-
const el = await fixture(
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
>
|
|
81
|
-
<sp-table-head>
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
`
|
|
88
|
-
);
|
|
65
|
+
const el = await fixture(html`
|
|
66
|
+
<sp-table
|
|
67
|
+
size="m"
|
|
68
|
+
style="height: 200px"
|
|
69
|
+
selects="single"
|
|
70
|
+
@change=${(event) => {
|
|
71
|
+
event.preventDefault();
|
|
72
|
+
}}
|
|
73
|
+
.items=${makeItems(50)}
|
|
74
|
+
.renderItem=${renderItem}
|
|
75
|
+
>
|
|
76
|
+
<sp-table-head>
|
|
77
|
+
<sp-table-head-cell>Column Title</sp-table-head-cell>
|
|
78
|
+
<sp-table-head-cell>Column Title</sp-table-head-cell>
|
|
79
|
+
<sp-table-head-cell>Column Title</sp-table-head-cell>
|
|
80
|
+
</sp-table-head>
|
|
81
|
+
</sp-table>
|
|
82
|
+
`);
|
|
89
83
|
await oneEvent(el, "rangeChanged");
|
|
90
84
|
await elementUpdated(el);
|
|
91
85
|
const rowTwo = el.querySelector('[value="2"]');
|
|
@@ -99,13 +93,11 @@ describe("Virtualized Table Selects", () => {
|
|
|
99
93
|
expect(el.selected.length).to.equal(0);
|
|
100
94
|
});
|
|
101
95
|
it('surfaces [selects="single"] selection on Virtualized Table', async () => {
|
|
102
|
-
const test = await fixture(
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
`
|
|
108
|
-
);
|
|
96
|
+
const test = await fixture(html`
|
|
97
|
+
<sp-theme system="spectrum" scale="medium" color="light">
|
|
98
|
+
${virtualizedSingle(virtualizedSingle.args)}
|
|
99
|
+
</sp-theme>
|
|
100
|
+
`);
|
|
109
101
|
const el = test.querySelector("sp-table");
|
|
110
102
|
const body = el.querySelector("sp-table-body");
|
|
111
103
|
await tableLayoutComplete(el);
|
|
@@ -123,13 +115,11 @@ describe("Virtualized Table Selects", () => {
|
|
|
123
115
|
expect(lastRowCheckboxCell.checked).to.be.true;
|
|
124
116
|
});
|
|
125
117
|
it('selects via `click` while [selects="single"]', async () => {
|
|
126
|
-
const test = await fixture(
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
`
|
|
132
|
-
);
|
|
118
|
+
const test = await fixture(html`
|
|
119
|
+
<sp-theme system="spectrum" scale="medium" color="light">
|
|
120
|
+
${virtualizedSingle(virtualizedSingle.args)}
|
|
121
|
+
</sp-theme>
|
|
122
|
+
`);
|
|
133
123
|
const el = test.querySelector("sp-table");
|
|
134
124
|
el.selected = [];
|
|
135
125
|
await tableLayoutComplete(el);
|
|
@@ -154,15 +144,11 @@ describe("Virtualized Table Selects", () => {
|
|
|
154
144
|
expect(el.selected).to.deep.equal(["1"]);
|
|
155
145
|
});
|
|
156
146
|
it('surfaces [selects="multiple"] selection on Virtualized Table', async () => {
|
|
157
|
-
const test = await fixture(
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
)}
|
|
163
|
-
</sp-theme>
|
|
164
|
-
`
|
|
165
|
-
);
|
|
147
|
+
const test = await fixture(html`
|
|
148
|
+
<sp-theme system="spectrum" scale="medium" color="light">
|
|
149
|
+
${virtualizedMultiple(virtualizedMultiple.args)}
|
|
150
|
+
</sp-theme>
|
|
151
|
+
`);
|
|
166
152
|
const el = test.querySelector("sp-table");
|
|
167
153
|
const body = el.querySelector("sp-table-body");
|
|
168
154
|
await tableLayoutComplete(el);
|
|
@@ -177,15 +163,11 @@ describe("Virtualized Table Selects", () => {
|
|
|
177
163
|
expect(unseenRowCheckboxCell.checked).to.be.true;
|
|
178
164
|
});
|
|
179
165
|
it('selects via `click` while [selects="multiple"] selection', async () => {
|
|
180
|
-
const test = await styledFixture(
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
)}
|
|
186
|
-
</div>
|
|
187
|
-
`
|
|
188
|
-
);
|
|
166
|
+
const test = await styledFixture(html`
|
|
167
|
+
<div>
|
|
168
|
+
${virtualizedMultiple(virtualizedMultiple.args)}
|
|
169
|
+
</div>
|
|
170
|
+
`);
|
|
189
171
|
const el = test.querySelector("sp-table");
|
|
190
172
|
el.selected = [];
|
|
191
173
|
await tableLayoutComplete(el);
|
|
@@ -207,15 +189,11 @@ describe("Virtualized Table Selects", () => {
|
|
|
207
189
|
expect(el.selected.length).to.equal(49);
|
|
208
190
|
});
|
|
209
191
|
it('allows .selected values to be changed by the application when [selects="multiple"]', async () => {
|
|
210
|
-
const test = await styledFixture(
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
)}
|
|
216
|
-
</div>
|
|
217
|
-
`
|
|
218
|
-
);
|
|
192
|
+
const test = await styledFixture(html`
|
|
193
|
+
<div>
|
|
194
|
+
${virtualizedMultiple(virtualizedMultiple.args)}
|
|
195
|
+
</div>
|
|
196
|
+
`);
|
|
219
197
|
const el = test.querySelector("sp-table");
|
|
220
198
|
el.selected = ["1"];
|
|
221
199
|
await tableLayoutComplete(el);
|
|
@@ -304,15 +282,11 @@ describe("Virtualized Table Selects", () => {
|
|
|
304
282
|
expect(rowTwoCheckbox).to.be.null;
|
|
305
283
|
});
|
|
306
284
|
it("ensures that virtualized elements with values in .selected are visually selected when brought into view using scrollTop", async () => {
|
|
307
|
-
const test = await fixture(
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
)}
|
|
313
|
-
</sp-theme>
|
|
314
|
-
`
|
|
315
|
-
);
|
|
285
|
+
const test = await fixture(html`
|
|
286
|
+
<sp-theme system="spectrum" scale="medium" color="light">
|
|
287
|
+
${virtualizedMultiple(virtualizedMultiple.args)}
|
|
288
|
+
</sp-theme>
|
|
289
|
+
`);
|
|
316
290
|
const el = test.querySelector("sp-table");
|
|
317
291
|
const body = el.querySelector("sp-table-body");
|
|
318
292
|
await tableLayoutComplete(el);
|
|
@@ -336,15 +310,11 @@ describe("Virtualized Table Selects", () => {
|
|
|
336
310
|
expect(unseenRowCheckboxCell.checkbox.checked).to.be.true;
|
|
337
311
|
});
|
|
338
312
|
it("ensures that virtualized elements with values in .selected are visually selected when brought into view using scrollToIndex", async () => {
|
|
339
|
-
const test = await fixture(
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
)}
|
|
345
|
-
</div>
|
|
346
|
-
`
|
|
347
|
-
);
|
|
313
|
+
const test = await fixture(html`
|
|
314
|
+
<div>
|
|
315
|
+
${virtualizedMultiple(virtualizedMultiple.args)}
|
|
316
|
+
</div>
|
|
317
|
+
`);
|
|
348
318
|
const el = test.querySelector("sp-table");
|
|
349
319
|
await tableLayoutComplete(el);
|
|
350
320
|
const rowOne = el.querySelector('[value="0"]');
|
|
@@ -366,15 +336,11 @@ describe("Virtualized Table Selects", () => {
|
|
|
366
336
|
expect(unseenRowCheckboxCell.checkbox.checked).to.be.true;
|
|
367
337
|
});
|
|
368
338
|
it("does not set `allSelected` to true by default on Virtualised `<sp-table>`", async () => {
|
|
369
|
-
const test = await fixture(
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
)}
|
|
375
|
-
</div>
|
|
376
|
-
`
|
|
377
|
-
);
|
|
339
|
+
const test = await fixture(html`
|
|
340
|
+
<div>
|
|
341
|
+
${virtualizedMultiple(virtualizedMultiple.args)}
|
|
342
|
+
</div>
|
|
343
|
+
`);
|
|
378
344
|
const el = test.querySelector("sp-table");
|
|
379
345
|
await oneEvent(el, "rangeChanged");
|
|
380
346
|
await elementUpdated(el);
|
|
@@ -388,13 +354,11 @@ describe("Virtualized Table Selects", () => {
|
|
|
388
354
|
});
|
|
389
355
|
});
|
|
390
356
|
it("renders custom content at a particular row and does not select it", async () => {
|
|
391
|
-
const test = await fixture(
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
`
|
|
397
|
-
);
|
|
357
|
+
const test = await fixture(html`
|
|
358
|
+
<div>
|
|
359
|
+
${virtualizedCustomRow(virtualizedCustomRow.args)}
|
|
360
|
+
</div>
|
|
361
|
+
`);
|
|
398
362
|
const el = test.querySelector("sp-table");
|
|
399
363
|
await oneEvent(el, "rangeChanged");
|
|
400
364
|
await elementUpdated(el);
|
|
@@ -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 '@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 '@spectrum-web-components/theme/sp-theme.js';\nimport '@spectrum-web-components/theme/src/themes.js';\nimport type {\n Table,\n TableBody,\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';\nimport { ignoreResizeObserverLoopError } from '../../../test/testing-helpers.js';\nimport { styledFixture, tableLayoutComplete } from './helpers.js';\n\nignoreResizeObserverLoopError(before, after);\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 <sp-theme theme=\"spectrum\" scale=\"medium\" color=\"light\">\n ${virtualizedSingle(virtualizedSingle.args as Properties)}\n </sp-theme>\n `\n );\n const el = test.querySelector('sp-table') as Table;\n const body = el.querySelector('sp-table-body') as TableBody;\n\n await tableLayoutComplete(el);\n\n expect(el.selected, \"'Row 50 selected\").to.deep.equal(['49']);\n\n body.scrollTop = body.scrollHeight;\n\n await nextFrame();\n await nextFrame();\n await elementUpdated(el);\n await elementUpdated(body);\n\n const lastRow = el.querySelector('[value=\"49\"]') as TableRow;\n expect(lastRow).to.not.be.null;\n\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 <sp-theme theme=\"spectrum\" scale=\"medium\" color=\"light\">\n ${virtualizedSingle(virtualizedSingle.args as Properties)}\n </sp-theme>\n `\n );\n const el = test.querySelector('sp-table') as Table;\n el.selected = [];\n\n await tableLayoutComplete(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 <sp-theme theme=\"spectrum\" scale=\"medium\" color=\"light\">\n ${virtualizedMultiple(\n virtualizedMultiple.args as Properties\n )}\n </sp-theme>\n `\n );\n const el = test.querySelector('sp-table') as Table;\n const body = el.querySelector('sp-table-body') as TableBody;\n\n await tableLayoutComplete(el);\n\n expect(el.selected).to.deep.equal(['0', '48']);\n\n body.scrollTop = body.scrollHeight;\n\n await tableLayoutComplete(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 styledFixture<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\n await tableLayoutComplete(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 styledFixture<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 tableLayoutComplete(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\n await tableLayoutComplete(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\n el.selected = ['0'];\n\n await tableLayoutComplete(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 <sp-theme theme=\"spectrum\" scale=\"medium\" color=\"light\">\n ${virtualizedMultiple(\n virtualizedMultiple.args as Properties\n )}\n </sp-theme>\n `\n );\n const el = test.querySelector('sp-table') as Table;\n const body = el.querySelector('sp-table-body') as TableBody;\n\n await tableLayoutComplete(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 body.scrollTop = body.scrollHeight;\n\n await nextFrame();\n await nextFrame();\n await elementUpdated(el);\n await elementUpdated(body);\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 tableLayoutComplete(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": ";AAYA;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AAEP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AAOP;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AACP,SAAS,WAAuB,kBAAkB;AAClD,SAAS,qCAAqC;AAC9C,SAAS,eAAe,2BAA2B;AAEnD,8BAA8B,QAAQ,KAAK;AAE3C,SAAS,6BAA6B,MAAM;AACxC,KAAG,qGAAqG,YAAY;AAChH,UAAM,OAAO,MAAM
|
|
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 '@spectrum-web-components/theme/sp-theme.js';\nimport '@spectrum-web-components/theme/src/themes.js';\nimport type {\n Table,\n TableBody,\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';\nimport { ignoreResizeObserverLoopError } from '../../../test/testing-helpers.js';\nimport { styledFixture, tableLayoutComplete } from './helpers.js';\n\nignoreResizeObserverLoopError(before, after);\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>(html`\n <div>\n ${virtualizedMultiple(virtualizedMultiple.args as Properties)}\n </div>\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>(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 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>(html`\n <sp-theme system=\"spectrum\" scale=\"medium\" color=\"light\">\n ${virtualizedSingle(virtualizedSingle.args as Properties)}\n </sp-theme>\n `);\n const el = test.querySelector('sp-table') as Table;\n const body = el.querySelector('sp-table-body') as TableBody;\n\n await tableLayoutComplete(el);\n\n expect(el.selected, \"'Row 50 selected\").to.deep.equal(['49']);\n\n body.scrollTop = body.scrollHeight;\n\n await nextFrame();\n await nextFrame();\n await elementUpdated(el);\n await elementUpdated(body);\n\n const lastRow = el.querySelector('[value=\"49\"]') as TableRow;\n expect(lastRow).to.not.be.null;\n\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>(html`\n <sp-theme system=\"spectrum\" scale=\"medium\" color=\"light\">\n ${virtualizedSingle(virtualizedSingle.args as Properties)}\n </sp-theme>\n `);\n const el = test.querySelector('sp-table') as Table;\n el.selected = [];\n\n await tableLayoutComplete(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>(html`\n <sp-theme system=\"spectrum\" scale=\"medium\" color=\"light\">\n ${virtualizedMultiple(virtualizedMultiple.args as Properties)}\n </sp-theme>\n `);\n const el = test.querySelector('sp-table') as Table;\n const body = el.querySelector('sp-table-body') as TableBody;\n\n await tableLayoutComplete(el);\n\n expect(el.selected).to.deep.equal(['0', '48']);\n\n body.scrollTop = body.scrollHeight;\n\n await tableLayoutComplete(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 styledFixture<Table>(html`\n <div>\n ${virtualizedMultiple(virtualizedMultiple.args as Properties)}\n </div>\n `);\n const el = test.querySelector('sp-table') as Table;\n el.selected = [];\n\n await tableLayoutComplete(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 styledFixture<Table>(html`\n <div>\n ${virtualizedMultiple(virtualizedMultiple.args as Properties)}\n </div>\n `);\n const el = test.querySelector('sp-table') as Table;\n el.selected = ['1'];\n await tableLayoutComplete(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\n await tableLayoutComplete(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\n el.selected = ['0'];\n\n await tableLayoutComplete(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>(html`\n <sp-theme system=\"spectrum\" scale=\"medium\" color=\"light\">\n ${virtualizedMultiple(virtualizedMultiple.args as Properties)}\n </sp-theme>\n `);\n const el = test.querySelector('sp-table') as Table;\n const body = el.querySelector('sp-table-body') as TableBody;\n\n await tableLayoutComplete(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 body.scrollTop = body.scrollHeight;\n\n await nextFrame();\n await nextFrame();\n await elementUpdated(el);\n await elementUpdated(body);\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>(html`\n <div>\n ${virtualizedMultiple(virtualizedMultiple.args as Properties)}\n </div>\n `);\n const el = test.querySelector('sp-table') as Table;\n\n await tableLayoutComplete(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>(html`\n <div>\n ${virtualizedMultiple(virtualizedMultiple.args as Properties)}\n </div>\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>(html`\n <div>\n ${virtualizedCustomRow(virtualizedCustomRow.args as Properties)}\n </div>\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
|
}
|