@spectrum-web-components/table 0.1.2 → 0.1.3
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": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -113,9 +113,9 @@
|
|
|
113
113
|
"dependencies": {
|
|
114
114
|
"@lit-labs/virtualizer": "^0.7.1",
|
|
115
115
|
"@spectrum-web-components/base": "^0.7.0",
|
|
116
|
-
"@spectrum-web-components/checkbox": "^0.14.
|
|
117
|
-
"@spectrum-web-components/icon": "^0.12.
|
|
118
|
-
"@spectrum-web-components/icons-ui": "^0.9.
|
|
116
|
+
"@spectrum-web-components/checkbox": "^0.14.3",
|
|
117
|
+
"@spectrum-web-components/icon": "^0.12.2",
|
|
118
|
+
"@spectrum-web-components/icons-ui": "^0.9.2",
|
|
119
119
|
"tslib": "^2.0.0"
|
|
120
120
|
},
|
|
121
121
|
"devDependencies": {
|
|
@@ -128,5 +128,5 @@
|
|
|
128
128
|
"./elements.js",
|
|
129
129
|
"./**/*.dev.js"
|
|
130
130
|
],
|
|
131
|
-
"gitHead": "
|
|
131
|
+
"gitHead": "31d083d1eb61a1382335030c190c85d85f41e15d"
|
|
132
132
|
}
|
|
@@ -13,6 +13,8 @@ import "@spectrum-web-components/table/sp-table-head-cell.js";
|
|
|
13
13
|
import "@spectrum-web-components/table/sp-table-body.js";
|
|
14
14
|
import "@spectrum-web-components/table/sp-table-row.js";
|
|
15
15
|
import "@spectrum-web-components/table/sp-table-cell.js";
|
|
16
|
+
import "@spectrum-web-components/theme/sp-theme.js";
|
|
17
|
+
import "@spectrum-web-components/theme/src/themes.js";
|
|
16
18
|
import {
|
|
17
19
|
virtualized,
|
|
18
20
|
virtualizedCustomRow,
|
|
@@ -98,19 +100,21 @@ describe("Virtualized Table Selects", () => {
|
|
|
98
100
|
it('surfaces [selects="single"] selection on Virtualized Table', async () => {
|
|
99
101
|
const test = await fixture(
|
|
100
102
|
html`
|
|
101
|
-
<
|
|
103
|
+
<sp-theme theme="spectrum" scale="medium" color="light">
|
|
102
104
|
${virtualizedSingle(virtualizedSingle.args)}
|
|
103
|
-
</
|
|
105
|
+
</sp-theme>
|
|
104
106
|
`
|
|
105
107
|
);
|
|
106
108
|
const el = test.querySelector("sp-table");
|
|
107
109
|
await oneEvent(el, "rangeChanged");
|
|
108
110
|
await elementUpdated(el);
|
|
109
111
|
expect(el.selected, "'Row 50 selected").to.deep.equal(["49"]);
|
|
110
|
-
|
|
112
|
+
const body = el.querySelector("sp-table-body");
|
|
113
|
+
body.scrollTop = body.scrollHeight;
|
|
111
114
|
await nextFrame();
|
|
112
115
|
await nextFrame();
|
|
113
116
|
await elementUpdated(el);
|
|
117
|
+
await elementUpdated(body);
|
|
114
118
|
const lastRow = el.querySelector('[value="49"]');
|
|
115
119
|
const lastRowCheckboxCell = lastRow.querySelector(
|
|
116
120
|
"sp-table-checkbox-cell"
|
|
@@ -120,9 +124,9 @@ describe("Virtualized Table Selects", () => {
|
|
|
120
124
|
it('selects via `click` while [selects="single"]', async () => {
|
|
121
125
|
const test = await fixture(
|
|
122
126
|
html`
|
|
123
|
-
<
|
|
127
|
+
<sp-theme theme="spectrum" scale="medium" color="light">
|
|
124
128
|
${virtualizedSingle(virtualizedSingle.args)}
|
|
125
|
-
</
|
|
129
|
+
</sp-theme>
|
|
126
130
|
`
|
|
127
131
|
);
|
|
128
132
|
const el = test.querySelector("sp-table");
|
|
@@ -152,21 +156,23 @@ describe("Virtualized Table Selects", () => {
|
|
|
152
156
|
it('surfaces [selects="multiple"] selection on Virtualized Table', async () => {
|
|
153
157
|
const test = await fixture(
|
|
154
158
|
html`
|
|
155
|
-
<
|
|
159
|
+
<sp-theme theme="spectrum" scale="medium" color="light">
|
|
156
160
|
${virtualizedMultiple(
|
|
157
161
|
virtualizedMultiple.args
|
|
158
162
|
)}
|
|
159
|
-
</
|
|
163
|
+
</sp-theme>
|
|
160
164
|
`
|
|
161
165
|
);
|
|
162
166
|
const el = test.querySelector("sp-table");
|
|
163
167
|
await oneEvent(el, "rangeChanged");
|
|
164
168
|
await elementUpdated(el);
|
|
165
169
|
expect(el.selected).to.deep.equal(["0", "48"]);
|
|
166
|
-
|
|
170
|
+
const body = el.querySelector("sp-table-body");
|
|
171
|
+
body.scrollTop = body.scrollHeight;
|
|
167
172
|
await nextFrame();
|
|
168
173
|
await nextFrame();
|
|
169
174
|
await elementUpdated(el);
|
|
175
|
+
await elementUpdated(body);
|
|
170
176
|
const unseenRow = el.querySelector('[value="48"]');
|
|
171
177
|
expect(unseenRow).to.not.be.null;
|
|
172
178
|
const unseenRowCheckboxCell = unseenRow.querySelector(
|
|
@@ -308,11 +314,11 @@ describe("Virtualized Table Selects", () => {
|
|
|
308
314
|
it("ensures that virtualized elements with values in .selected are visually selected when brought into view using scrollTop", async () => {
|
|
309
315
|
const test = await fixture(
|
|
310
316
|
html`
|
|
311
|
-
<
|
|
317
|
+
<sp-theme theme="spectrum" scale="medium" color="light">
|
|
312
318
|
${virtualizedMultiple(
|
|
313
319
|
virtualizedMultiple.args
|
|
314
320
|
)}
|
|
315
|
-
</
|
|
321
|
+
</sp-theme>
|
|
316
322
|
`
|
|
317
323
|
);
|
|
318
324
|
const el = test.querySelector("sp-table");
|
|
@@ -325,10 +331,12 @@ describe("Virtualized Table Selects", () => {
|
|
|
325
331
|
expect(el.selected).to.deep.equal(["0", "48"]);
|
|
326
332
|
expect(rowOne.selected).to.be.true;
|
|
327
333
|
expect(rowOneCheckboxCell.checkbox.checked).to.be.true;
|
|
328
|
-
|
|
334
|
+
const body = el.querySelector("sp-table-body");
|
|
335
|
+
body.scrollTop = body.scrollHeight;
|
|
329
336
|
await nextFrame();
|
|
330
337
|
await nextFrame();
|
|
331
338
|
await elementUpdated(el);
|
|
339
|
+
await elementUpdated(body);
|
|
332
340
|
const unseenRow = el.querySelector('[value="48"]');
|
|
333
341
|
const unseenRowCheckboxCell = unseenRow.querySelector(
|
|
334
342
|
"sp-table-checkbox-cell"
|
|
@@ -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 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';\nimport { ignoreResizeObserverLoopError } from '../../../test/testing-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 <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": ";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;
|
|
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';\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\n await oneEvent(el, 'rangeChanged');\n await elementUpdated(el);\n\n expect(el.selected, \"'Row 50 selected\").to.deep.equal(['49']);\n\n const body = el.querySelector('sp-table-body') as TableBody;\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 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 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 <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\n await oneEvent(el, 'rangeChanged');\n await elementUpdated(el);\n\n expect(el.selected).to.deep.equal(['0', '48']);\n\n const body = el.querySelector('sp-table-body') as TableBody;\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 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 <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\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 const body = el.querySelector('sp-table-body') as TableBody;\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 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
|
}
|