@spectrum-web-components/table 0.0.2-table.2695 → 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 +9 -0
  4. package/elements.dev.js.map +7 -0
  5. package/elements.js +2 -19
  6. package/elements.js.map +7 -1
  7. package/package.json +80 -18
  8. package/sp-table-body.dev.js +4 -0
  9. package/sp-table-body.dev.js.map +7 -0
  10. package/sp-table-body.js +2 -14
  11. package/sp-table-body.js.map +7 -1
  12. package/sp-table-cell.dev.js +4 -0
  13. package/sp-table-cell.dev.js.map +7 -0
  14. package/sp-table-cell.js +2 -14
  15. package/sp-table-cell.js.map +7 -1
  16. package/sp-table-checkbox-cell.dev.js +4 -0
  17. package/sp-table-checkbox-cell.dev.js.map +7 -0
  18. package/sp-table-checkbox-cell.js +2 -14
  19. package/sp-table-checkbox-cell.js.map +7 -1
  20. package/sp-table-head-cell.dev.js +4 -0
  21. package/sp-table-head-cell.dev.js.map +7 -0
  22. package/sp-table-head-cell.js +2 -14
  23. package/sp-table-head-cell.js.map +7 -1
  24. package/sp-table-head.dev.js +4 -0
  25. package/sp-table-head.dev.js.map +7 -0
  26. package/sp-table-head.js +2 -14
  27. package/sp-table-head.js.map +7 -1
  28. package/sp-table-row.dev.js +4 -0
  29. package/sp-table-row.dev.js.map +7 -0
  30. package/sp-table-row.js +2 -14
  31. package/sp-table-row.js.map +7 -1
  32. package/sp-table.dev.js +4 -0
  33. package/sp-table.dev.js.map +7 -0
  34. package/sp-table.js +2 -14
  35. package/sp-table.js.map +7 -1
  36. package/src/Table.d.ts +1 -0
  37. package/src/Table.dev.js +392 -0
  38. package/src/Table.dev.js.map +7 -0
  39. package/src/Table.js +13 -383
  40. package/src/Table.js.map +7 -1
  41. package/src/TableBody.d.ts +2 -0
  42. package/src/TableBody.dev.js +55 -0
  43. package/src/TableBody.dev.js.map +7 -0
  44. package/src/TableBody.js +3 -35
  45. package/src/TableBody.js.map +7 -1
  46. package/src/TableCell.dev.js +36 -0
  47. package/src/TableCell.dev.js.map +7 -0
  48. package/src/TableCell.js +3 -35
  49. package/src/TableCell.js.map +7 -1
  50. package/src/TableCheckboxCell.dev.js +71 -0
  51. package/src/TableCheckboxCell.dev.js.map +7 -0
  52. package/src/TableCheckboxCell.js +4 -62
  53. package/src/TableCheckboxCell.js.map +7 -1
  54. package/src/TableHead.dev.js +55 -0
  55. package/src/TableHead.dev.js.map +7 -0
  56. package/src/TableHead.js +3 -52
  57. package/src/TableHead.js.map +7 -1
  58. package/src/TableHeadCell.dev.js +93 -0
  59. package/src/TableHeadCell.dev.js.map +7 -0
  60. package/src/TableHeadCell.js +5 -92
  61. package/src/TableHeadCell.js.map +7 -1
  62. package/src/TableRow.dev.js +104 -0
  63. package/src/TableRow.dev.js.map +7 -0
  64. package/src/TableRow.js +3 -96
  65. package/src/TableRow.js.map +7 -1
  66. package/src/index.d.ts +6 -0
  67. package/src/index.dev.js +9 -0
  68. package/src/index.dev.js.map +7 -0
  69. package/src/index.js +2 -13
  70. package/src/index.js.map +7 -1
  71. package/src/spectrum-table-body.css.dev.js +17 -0
  72. package/src/spectrum-table-body.css.dev.js.map +7 -0
  73. package/src/spectrum-table-body.css.js +3 -16
  74. package/src/spectrum-table-body.css.js.map +7 -1
  75. package/src/spectrum-table-cell.css.dev.js +27 -0
  76. package/src/spectrum-table-cell.css.dev.js.map +7 -0
  77. package/src/spectrum-table-cell.css.js +3 -16
  78. package/src/spectrum-table-cell.css.js.map +7 -1
  79. package/src/spectrum-table-checkbox-cell.css.dev.js +13 -0
  80. package/src/spectrum-table-checkbox-cell.css.dev.js.map +7 -0
  81. package/src/spectrum-table-checkbox-cell.css.js +3 -16
  82. package/src/spectrum-table-checkbox-cell.css.js.map +7 -1
  83. package/src/spectrum-table-head-cell.css.dev.js +61 -0
  84. package/src/spectrum-table-head-cell.css.dev.js.map +7 -0
  85. package/src/spectrum-table-head-cell.css.js +3 -16
  86. package/src/spectrum-table-head-cell.css.js.map +7 -1
  87. package/src/spectrum-table-head.css.dev.js +7 -0
  88. package/src/spectrum-table-head.css.dev.js.map +7 -0
  89. package/src/spectrum-table-head.css.js +3 -16
  90. package/src/spectrum-table-head.css.js.map +7 -1
  91. package/src/spectrum-table-row.css.dev.js +33 -0
  92. package/src/spectrum-table-row.css.dev.js.map +7 -0
  93. package/src/spectrum-table-row.css.js +3 -16
  94. package/src/spectrum-table-row.css.js.map +7 -1
  95. package/src/spectrum-table.css.dev.js +513 -0
  96. package/src/spectrum-table.css.dev.js.map +7 -0
  97. package/src/spectrum-table.css.js +3 -16
  98. package/src/spectrum-table.css.js.map +7 -1
  99. package/src/table-body.css.dev.js +17 -0
  100. package/src/table-body.css.dev.js.map +7 -0
  101. package/src/table-body.css.js +4 -17
  102. package/src/table-body.css.js.map +7 -1
  103. package/src/table-cell.css.dev.js +27 -0
  104. package/src/table-cell.css.dev.js.map +7 -0
  105. package/src/table-cell.css.js +3 -16
  106. package/src/table-cell.css.js.map +7 -1
  107. package/src/table-checkbox-cell.css.dev.js +13 -0
  108. package/src/table-checkbox-cell.css.dev.js.map +7 -0
  109. package/src/table-checkbox-cell.css.js +3 -16
  110. package/src/table-checkbox-cell.css.js.map +7 -1
  111. package/src/table-head-cell.css.dev.js +61 -0
  112. package/src/table-head-cell.css.dev.js.map +7 -0
  113. package/src/table-head-cell.css.js +3 -16
  114. package/src/table-head-cell.css.js.map +7 -1
  115. package/src/table-head.css.dev.js +7 -0
  116. package/src/table-head.css.dev.js.map +7 -0
  117. package/src/table-head.css.js +3 -16
  118. package/src/table-head.css.js.map +7 -1
  119. package/src/table-row.css.dev.js +33 -0
  120. package/src/table-row.css.dev.js.map +7 -0
  121. package/src/table-row.css.js +3 -16
  122. package/src/table-row.css.js.map +7 -1
  123. package/src/table.css.dev.js +513 -0
  124. package/src/table.css.dev.js.map +7 -0
  125. package/src/table.css.js +4 -17
  126. package/src/table.css.js.map +7 -1
  127. package/stories/index.js +17 -27
  128. package/stories/index.js.map +7 -1
  129. package/stories/table-elements.stories.js +58 -102
  130. package/stories/table-elements.stories.js.map +7 -1
  131. package/stories/table-virtualized.stories.js +142 -128
  132. package/stories/table-virtualized.stories.js.map +7 -1
  133. package/test/benchmark/basic-test.js +7 -17
  134. package/test/benchmark/basic-test.js.map +7 -1
  135. package/test/table-elements.test-vrt.js +5 -15
  136. package/test/table-elements.test-vrt.js.map +7 -1
  137. package/test/table-selects.test.js +193 -170
  138. package/test/table-selects.test.js.map +7 -1
  139. package/test/table-virtualized.test-vrt.js +5 -15
  140. package/test/table-virtualized.test-vrt.js.map +7 -1
  141. package/test/table.test.js +117 -101
  142. package/test/table.test.js.map +7 -1
  143. package/test/virtualized-table-selects.test.js +386 -300
  144. package/test/virtualized-table-selects.test.js.map +7 -1
  145. package/test/virtualized-table.test.js +213 -182
  146. package/test/virtualized-table.test.js.map +7 -1
@@ -1 +1,7 @@
1
- {"version":3,"file":"virtualized-table-selects.test.js","sourceRoot":"","sources":["virtualized-table-selects.test.ts"],"names":[],"mappings":"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","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"]}
1
+ {
2
+ "version": 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';\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
+ "names": []
7
+ }
@@ -1,51 +1,62 @@
1
- /*
2
- Copyright 2022 Adobe. All rights reserved.
3
- This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
- you may not use this file except in compliance with the License. You may obtain a copy
5
- of the License at http://www.apache.org/licenses/LICENSE-2.0
6
-
7
- Unless required by applicable law or agreed to in writing, software distributed under
8
- the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
- OF ANY KIND, either express or implied. See the License for the specific language
10
- governing permissions and limitations under the License.
11
- */
12
- import { elementUpdated, expect, fixture, html, nextFrame, oneEvent, } from '@open-wc/testing';
13
- import '../sp-table.js';
14
- import '../sp-table-head.js';
15
- import '../sp-table-head-cell.js';
16
- import '../sp-table-body.js';
17
- import '../sp-table-row.js';
18
- import '../sp-table-cell.js';
19
- import { virtualized } from '../stories/table-virtualized.stories.js';
20
- import { makeItems, renderItem } from '../stories/index.js';
21
- import { sendKeys } from '@web/test-runner-commands';
22
- import { spy } from 'sinon';
23
- let globalErrorHandler = undefined;
24
- before(function () {
25
- // Save Mocha's handler.
26
- Mocha.process.removeListener('uncaughtException');
27
- globalErrorHandler = window.onerror;
28
- addEventListener('error', (error) => {
29
- var _a, _b;
30
- if ((_b = (_a = error.message) === null || _a === void 0 ? void 0 : _a.match) === null || _b === void 0 ? void 0 : _b.call(_a, /ResizeObserver loop limit exceeded/)) {
31
- return;
32
- }
33
- else {
34
- globalErrorHandler === null || globalErrorHandler === void 0 ? void 0 : globalErrorHandler(error);
35
- }
36
- });
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/theme/sp-theme.js";
11
+ import "@spectrum-web-components/theme/src/themes.js";
12
+ import "@spectrum-web-components/table/sp-table.js";
13
+ import "@spectrum-web-components/table/sp-table-head.js";
14
+ import "@spectrum-web-components/table/sp-table-head-cell.js";
15
+ import "@spectrum-web-components/table/sp-table-body.js";
16
+ import "@spectrum-web-components/table/sp-table-row.js";
17
+ import "@spectrum-web-components/table/sp-table-cell.js";
18
+ import { virtualized } from "../stories/table-virtualized.stories.js";
19
+ import { makeItems, renderItem } from "../stories/index.js";
20
+ import { sendKeys } from "@web/test-runner-commands";
21
+ import { spy } from "sinon";
22
+ let globalErrorHandler = void 0;
23
+ before(function() {
24
+ Mocha.process.removeListener("uncaughtException");
25
+ globalErrorHandler = window.onerror;
26
+ addEventListener("error", (error) => {
27
+ var _a, _b;
28
+ if ((_b = (_a = error.message) == null ? void 0 : _a.match) == null ? void 0 : _b.call(_a, /ResizeObserver loop limit exceeded/)) {
29
+ return;
30
+ } else {
31
+ globalErrorHandler == null ? void 0 : globalErrorHandler(error);
32
+ }
33
+ });
37
34
  });
38
- after(function () {
39
- window.onerror = globalErrorHandler;
35
+ after(function() {
36
+ window.onerror = globalErrorHandler;
40
37
  });
41
- describe('Virtualized Table', () => {
42
- const virtualItems = makeItems(50);
43
- it('loads virtualized table accessibly', async () => {
44
- const el = await fixture(virtualized());
45
- await expect(el).to.be.accessible();
46
- });
47
- it('can be size `s`', async () => {
48
- const el = await fixture(html `
38
+ async function styledFixture(story) {
39
+ const test = await fixture(html`
40
+ <sp-theme theme="classic" scale="medium" color="light">
41
+ ${story}
42
+ </sp-theme>
43
+ `);
44
+ return test.children[0];
45
+ }
46
+ describe("Virtualized Table", () => {
47
+ const virtualItems = makeItems(50);
48
+ it("loads virtualized table accessibly", async () => {
49
+ const el = await styledFixture(virtualized());
50
+ await nextFrame();
51
+ await nextFrame();
52
+ await nextFrame();
53
+ await nextFrame();
54
+ await nextFrame();
55
+ await nextFrame();
56
+ await expect(el).to.be.accessible();
57
+ });
58
+ it("can be size `s`", async () => {
59
+ const el = await fixture(html`
49
60
  <sp-table
50
61
  size="s"
51
62
  style="height: 120px"
@@ -60,96 +71,112 @@ describe('Virtualized Table', () => {
60
71
  </sp-table-head>
61
72
  </sp-table>
62
73
  `);
63
- await oneEvent(el, 'rangeChanged');
64
- await elementUpdated(el);
65
- expect(el.size).to.equal('s');
74
+ await oneEvent(el, "rangeChanged");
75
+ await elementUpdated(el);
76
+ expect(el.size).to.equal("s");
77
+ });
78
+ it("creates tab stops for `<sp-table-head-cell sortable>`", async () => {
79
+ var _a, _b, _c;
80
+ const input = document.createElement("input");
81
+ const test = await fixture(virtualized());
82
+ const el = (_a = test.shadowRoot) == null ? void 0 : _a.querySelector("sp-table");
83
+ test.insertAdjacentElement("beforebegin", input);
84
+ input.focus();
85
+ expect(input === document.activeElement).to.be.true;
86
+ const firstSortable = el.querySelector(
87
+ "[sortable]:nth-of-type(1)"
88
+ );
89
+ const secondSortable = el.querySelector(
90
+ "[sortable]:nth-of-type(2)"
91
+ );
92
+ await sendKeys({
93
+ press: "Tab"
66
94
  });
67
- it('creates tab stops for `<sp-table-head-cell sortable>`', async () => {
68
- var _a, _b, _c;
69
- const input = document.createElement('input');
70
- const test = await fixture(virtualized());
71
- const el = (_a = test.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('sp-table');
72
- test.insertAdjacentElement('beforebegin', input);
73
- input.focus();
74
- expect(input === document.activeElement).to.be.true;
75
- const firstSortable = el.querySelector('[sortable]:nth-of-type(1)');
76
- const secondSortable = el.querySelector('[sortable]:nth-of-type(2)');
77
- await sendKeys({
78
- press: 'Tab',
79
- });
80
- expect(firstSortable === ((_b = test.shadowRoot) === null || _b === void 0 ? void 0 : _b.activeElement)).to.be.true;
81
- await sendKeys({
82
- press: 'Tab',
83
- });
84
- expect(secondSortable === ((_c = test.shadowRoot) === null || _c === void 0 ? void 0 : _c.activeElement)).to.be.true;
95
+ expect(firstSortable === ((_b = test.shadowRoot) == null ? void 0 : _b.activeElement)).to.be.true;
96
+ await sendKeys({
97
+ press: "Tab"
85
98
  });
86
- it('does not tab stop on non-sortable `<sp-table-head-cell>`s', async () => {
87
- var _a, _b, _c, _d;
88
- const input = document.createElement('input');
89
- const test = await fixture(virtualized());
90
- const el = (_a = test.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('sp-table');
91
- test.insertAdjacentElement('beforebegin', input);
92
- input.focus();
93
- expect(input === document.activeElement).to.be.true;
94
- const firstHeadCell = el.querySelector('sp-table-head-cell:nth-of-type(1)');
95
- const secondHeadCell = el.querySelector('sp-table-head-cell:nth-of-type(2)');
96
- const thirdHeadCell = el.querySelector('sp-table-head-cell:nth-of-type(3)');
97
- await sendKeys({
98
- press: 'Tab',
99
- });
100
- expect(firstHeadCell === ((_b = test.shadowRoot) === null || _b === void 0 ? void 0 : _b.activeElement)).to.be.true;
101
- await sendKeys({
102
- press: 'Tab',
103
- });
104
- expect(secondHeadCell === ((_c = test.shadowRoot) === null || _c === void 0 ? void 0 : _c.activeElement)).to.be.true;
105
- await sendKeys({
106
- press: 'Tab',
107
- });
108
- expect(thirdHeadCell === ((_d = test.shadowRoot) === null || _d === void 0 ? void 0 : _d.activeElement)).to.be.false;
99
+ expect(secondSortable === ((_c = test.shadowRoot) == null ? void 0 : _c.activeElement)).to.be.true;
100
+ });
101
+ it("does not tab stop on non-sortable `<sp-table-head-cell>`s", async () => {
102
+ var _a, _b, _c, _d;
103
+ const input = document.createElement("input");
104
+ const test = await fixture(virtualized());
105
+ const el = (_a = test.shadowRoot) == null ? void 0 : _a.querySelector("sp-table");
106
+ test.insertAdjacentElement("beforebegin", input);
107
+ input.focus();
108
+ expect(input === document.activeElement).to.be.true;
109
+ const firstHeadCell = el.querySelector(
110
+ "sp-table-head-cell:nth-of-type(1)"
111
+ );
112
+ const secondHeadCell = el.querySelector(
113
+ "sp-table-head-cell:nth-of-type(2)"
114
+ );
115
+ const thirdHeadCell = el.querySelector(
116
+ "sp-table-head-cell:nth-of-type(3)"
117
+ );
118
+ await sendKeys({
119
+ press: "Tab"
109
120
  });
110
- it('can be focus()ed from the `<sp-table>`', async () => {
111
- var _a, _b;
112
- const test = await fixture(virtualized());
113
- const el = (_a = test.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('sp-table');
114
- el.focus();
115
- const firstSortable = el.querySelector('[sortable]:nth-of-type(1)');
116
- expect(firstSortable === ((_b = test.shadowRoot) === null || _b === void 0 ? void 0 : _b.activeElement)).to.be.true;
121
+ expect(firstHeadCell === ((_b = test.shadowRoot) == null ? void 0 : _b.activeElement)).to.be.true;
122
+ await sendKeys({
123
+ press: "Tab"
117
124
  });
118
- it('dispatches `sorted` events', async () => {
119
- var _a;
120
- const test = await fixture(virtualized());
121
- const el = (_a = test.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('sp-table');
122
- const tableHeadCell1 = el.querySelector('[sortable][sort-direction]');
123
- const tableHeadCell2 = el.querySelector('[sortable]:not([sort-direction])');
124
- tableHeadCell2.click();
125
- await nextFrame();
126
- expect(tableHeadCell1.hasAttribute('sort-direction')).to.be.false;
127
- expect(tableHeadCell2.hasAttribute('sort-direction')).to.be.true;
128
- expect(tableHeadCell2.getAttribute('sort-direction')).to.equal('asc');
129
- tableHeadCell2.click();
130
- await nextFrame();
131
- expect(tableHeadCell1.hasAttribute('sort-direction')).to.be.false;
132
- expect(tableHeadCell2.hasAttribute('sort-direction')).to.be.true;
133
- expect(tableHeadCell2.getAttribute('sort-direction')).to.equal('desc');
134
- tableHeadCell1.click();
135
- await nextFrame();
136
- expect(tableHeadCell2.hasAttribute('sort-direction')).to.be.false;
137
- expect(tableHeadCell1.hasAttribute('sort-direction')).to.be.true;
138
- expect(tableHeadCell1.getAttribute('sort-direction')).to.equal('asc');
125
+ expect(secondHeadCell === ((_c = test.shadowRoot) == null ? void 0 : _c.activeElement)).to.be.true;
126
+ await sendKeys({
127
+ press: "Tab"
139
128
  });
140
- it('dispatches `change` events', async () => {
141
- const changeSpy = spy();
142
- const el = await fixture(html `
129
+ expect(thirdHeadCell === ((_d = test.shadowRoot) == null ? void 0 : _d.activeElement)).to.be.false;
130
+ });
131
+ it("can be focus()ed from the `<sp-table>`", async () => {
132
+ var _a, _b;
133
+ const test = await fixture(virtualized());
134
+ const el = (_a = test.shadowRoot) == null ? void 0 : _a.querySelector("sp-table");
135
+ el.focus();
136
+ const firstSortable = el.querySelector(
137
+ "[sortable]:nth-of-type(1)"
138
+ );
139
+ expect(firstSortable === ((_b = test.shadowRoot) == null ? void 0 : _b.activeElement)).to.be.true;
140
+ });
141
+ it("dispatches `sorted` events", async () => {
142
+ var _a;
143
+ const test = await fixture(virtualized());
144
+ const el = (_a = test.shadowRoot) == null ? void 0 : _a.querySelector("sp-table");
145
+ const tableHeadCell1 = el.querySelector(
146
+ "[sortable][sort-direction]"
147
+ );
148
+ const tableHeadCell2 = el.querySelector(
149
+ "[sortable]:not([sort-direction])"
150
+ );
151
+ tableHeadCell2.click();
152
+ await nextFrame();
153
+ expect(tableHeadCell1.hasAttribute("sort-direction")).to.be.false;
154
+ expect(tableHeadCell2.hasAttribute("sort-direction")).to.be.true;
155
+ expect(tableHeadCell2.getAttribute("sort-direction")).to.equal("asc");
156
+ tableHeadCell2.click();
157
+ await nextFrame();
158
+ expect(tableHeadCell1.hasAttribute("sort-direction")).to.be.false;
159
+ expect(tableHeadCell2.hasAttribute("sort-direction")).to.be.true;
160
+ expect(tableHeadCell2.getAttribute("sort-direction")).to.equal("desc");
161
+ tableHeadCell1.click();
162
+ await nextFrame();
163
+ expect(tableHeadCell2.hasAttribute("sort-direction")).to.be.false;
164
+ expect(tableHeadCell1.hasAttribute("sort-direction")).to.be.true;
165
+ expect(tableHeadCell1.getAttribute("sort-direction")).to.equal("asc");
166
+ });
167
+ it("dispatches `change` events", async () => {
168
+ const changeSpy = spy();
169
+ const el = await fixture(html`
143
170
  <sp-table
144
- .selected=${['0', '22']}
171
+ .selected=${["0", "22"]}
145
172
  selects="multiple"
146
173
  style="height: 120px"
147
174
  .items=${virtualItems}
148
175
  .renderItem=${renderItem}
149
176
  scroller?="true"
150
177
  @change=${({ target }) => {
151
- changeSpy(target);
152
- }}
178
+ changeSpy(target);
179
+ }}
153
180
  >
154
181
  <sp-table-head>
155
182
  <sp-table-head-cell>Column Title</sp-table-head-cell>
@@ -158,28 +185,30 @@ describe('Virtualized Table', () => {
158
185
  </sp-table-head>
159
186
  </sp-table>
160
187
  `);
161
- await oneEvent(el, 'rangeChanged');
162
- await elementUpdated(el);
163
- expect(el.selected).to.deep.equal(['0', '22']);
164
- await nextFrame;
165
- const rowTwo = el.querySelector('[value="3"]');
166
- const rowTwoCheckboxCell = rowTwo.querySelector('sp-table-checkbox-cell');
167
- rowTwoCheckboxCell.checkbox.click();
168
- expect(el.selected).to.deep.equal(['0', '22', '3']);
169
- });
170
- it('accepts change events dispatched from TableHead `<sp-table-checkbox-cell>`', async () => {
171
- const changeSpy = spy();
172
- const el = await fixture(html `
188
+ await oneEvent(el, "rangeChanged");
189
+ await elementUpdated(el);
190
+ expect(el.selected).to.deep.equal(["0", "22"]);
191
+ await nextFrame;
192
+ const rowTwo = el.querySelector('[value="3"]');
193
+ const rowTwoCheckboxCell = rowTwo.querySelector(
194
+ "sp-table-checkbox-cell"
195
+ );
196
+ rowTwoCheckboxCell.checkbox.click();
197
+ expect(el.selected).to.deep.equal(["0", "22", "3"]);
198
+ });
199
+ it("accepts change events dispatched from TableHead `<sp-table-checkbox-cell>`", async () => {
200
+ const changeSpy = spy();
201
+ const el = await fixture(html`
173
202
  <sp-table
174
- .selected=${['0', '22']}
203
+ .selected=${["0", "22"]}
175
204
  selects="multiple"
176
205
  style="height: 120px"
177
206
  .items=${virtualItems}
178
207
  .renderItem=${renderItem}
179
208
  scroller?="true"
180
209
  @change=${({ target }) => {
181
- changeSpy(target);
182
- }}
210
+ changeSpy(target);
211
+ }}
183
212
  >
184
213
  <sp-table-head>
185
214
  <sp-table-head-cell>Column Title</sp-table-head-cell>
@@ -188,21 +217,23 @@ describe('Virtualized Table', () => {
188
217
  </sp-table-head>
189
218
  </sp-table>
190
219
  `);
191
- await oneEvent(el, 'rangeChanged');
192
- await elementUpdated(el);
193
- const tableHeadCheckboxCell = el.querySelector('sp-table-head sp-table-checkbox-cell');
194
- expect(el.selected).to.deep.equal(['0', '22']);
195
- tableHeadCheckboxCell.checkbox.click();
196
- expect(changeSpy.calledOnce).to.be.true;
197
- expect(changeSpy.calledWithExactly(el)).to.be.true;
198
- expect(el.selected.length).to.equal(50);
199
- expect(tableHeadCheckboxCell.checkbox.checked).to.be.true;
200
- });
201
- it('dispatches `rangeChanged` events on Virtualized Table', async () => {
202
- const el = await fixture(html `
220
+ await oneEvent(el, "rangeChanged");
221
+ await elementUpdated(el);
222
+ const tableHeadCheckboxCell = el.querySelector(
223
+ "sp-table-head sp-table-checkbox-cell"
224
+ );
225
+ expect(el.selected).to.deep.equal(["0", "22"]);
226
+ tableHeadCheckboxCell.checkbox.click();
227
+ expect(changeSpy.calledOnce).to.be.true;
228
+ expect(changeSpy.calledWithExactly(el)).to.be.true;
229
+ expect(el.selected.length).to.equal(50);
230
+ expect(tableHeadCheckboxCell.checkbox.checked).to.be.true;
231
+ });
232
+ it("dispatches `rangeChanged` events on Virtualized Table", async () => {
233
+ const el = await fixture(html`
203
234
  <sp-table
204
235
  selects="multiple"
205
- .selected=${['1', '47']}
236
+ .selected=${["1", "47"]}
206
237
  style="height: 120px"
207
238
  .items=${makeItems(50)}
208
239
  .renderItem=${renderItem}
@@ -215,31 +246,33 @@ describe('Virtualized Table', () => {
215
246
  </sp-table-head>
216
247
  </sp-table>
217
248
  `);
218
- await oneEvent(el, 'rangeChanged');
219
- await elementUpdated(el);
220
- expect(el.selected).to.deep.equal(['1', '47']);
221
- const rangeChanged = oneEvent(el, 'rangeChanged');
222
- let tableRow = el.querySelector('sp-table-row');
223
- const initialValue = tableRow.value;
224
- el.scrollToIndex(47);
225
- await rangeChanged;
226
- tableRow = el.querySelector('sp-table-row');
227
- const newValue = tableRow.value;
228
- expect(newValue).to.not.equal(initialValue);
229
- });
230
- it('dispatches `visibilityChanged` events on Virtualized Table', async () => {
231
- const visibilityChangedSpy = spy();
232
- const el = await fixture(html `
249
+ await oneEvent(el, "rangeChanged");
250
+ await elementUpdated(el);
251
+ expect(el.selected).to.deep.equal(["1", "47"]);
252
+ const rangeChanged = oneEvent(el, "rangeChanged");
253
+ let tableRow = el.querySelector("sp-table-row");
254
+ const initialValue = tableRow.value;
255
+ el.scrollToIndex(47);
256
+ await rangeChanged;
257
+ tableRow = el.querySelector("sp-table-row");
258
+ const newValue = tableRow.value;
259
+ expect(newValue).to.not.equal(initialValue);
260
+ });
261
+ it("dispatches `visibilityChanged` events on Virtualized Table", async () => {
262
+ const visibilityChangedSpy = spy();
263
+ const el = await fixture(html`
233
264
  <sp-table
234
265
  selects="multiple"
235
- .selected=${['1', '47']}
266
+ .selected=${["1", "47"]}
236
267
  style="height: 120px"
237
268
  .items=${virtualItems}
238
269
  .renderItem=${renderItem}
239
270
  scroller?="true"
240
- @visibilityChanged=${({ target, }) => {
241
- visibilityChangedSpy(target);
242
- }}
271
+ @visibilityChanged=${({
272
+ target
273
+ }) => {
274
+ visibilityChangedSpy(target);
275
+ }}
243
276
  >
244
277
  <sp-table-head>
245
278
  <sp-table-head-cell>Column Title</sp-table-head-cell>
@@ -248,15 +281,13 @@ describe('Virtualized Table', () => {
248
281
  </sp-table-head>
249
282
  </sp-table>
250
283
  `);
251
- await nextFrame();
252
- expect(el.selected).to.deep.equal(['1', '47']);
253
- el.scrollToIndex(47);
254
- // waiting for table body
255
- await nextFrame();
256
- // waiting for virtualizer
257
- await nextFrame();
258
- await elementUpdated(el);
259
- expect(visibilityChangedSpy.called).to.be.true;
260
- });
284
+ await nextFrame();
285
+ expect(el.selected).to.deep.equal(["1", "47"]);
286
+ el.scrollToIndex(47);
287
+ await nextFrame();
288
+ await nextFrame();
289
+ await elementUpdated(el);
290
+ expect(visibilityChangedSpy.called).to.be.true;
291
+ });
261
292
  });
262
- //# sourceMappingURL=virtualized-table.test.js.map
293
+ //# sourceMappingURL=virtualized-table.test.js.map