@spectrum-web-components/table 0.0.2-table.2625 → 0.0.2-table.2715
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/README.md +212 -40
- package/custom-elements.json +88 -35
- package/elements.d.ts +7 -0
- package/elements.dev.js +8 -0
- package/elements.dev.js.map +7 -0
- package/elements.js +2 -0
- package/elements.js.map +7 -0
- package/package.json +12 -9
- package/sp-table-body.dev.js +3 -0
- package/sp-table-body.dev.js.map +7 -0
- package/sp-table-body.js +2 -14
- package/sp-table-body.js.map +7 -1
- package/sp-table-cell.dev.js +3 -0
- package/sp-table-cell.dev.js.map +7 -0
- package/sp-table-cell.js +2 -14
- package/sp-table-cell.js.map +7 -1
- package/sp-table-checkbox-cell.dev.js +3 -0
- package/sp-table-checkbox-cell.dev.js.map +7 -0
- package/sp-table-checkbox-cell.js +2 -14
- package/sp-table-checkbox-cell.js.map +7 -1
- package/sp-table-head-cell.dev.js +3 -0
- package/sp-table-head-cell.dev.js.map +7 -0
- package/sp-table-head-cell.js +2 -14
- package/sp-table-head-cell.js.map +7 -1
- package/sp-table-head.dev.js +3 -0
- package/sp-table-head.dev.js.map +7 -0
- package/sp-table-head.js +2 -14
- package/sp-table-head.js.map +7 -1
- package/sp-table-row.dev.js +3 -0
- package/sp-table-row.dev.js.map +7 -0
- package/sp-table-row.js +2 -14
- package/sp-table-row.js.map +7 -1
- package/sp-table.dev.js +3 -0
- package/sp-table.dev.js.map +7 -0
- package/sp-table.js +2 -14
- package/sp-table.js.map +7 -1
- package/src/Table.d.ts +14 -1
- package/src/Table.dev.js +364 -0
- package/src/Table.dev.js.map +7 -0
- package/src/Table.js +13 -360
- package/src/Table.js.map +7 -1
- package/src/TableBody.dev.js +35 -0
- package/src/TableBody.dev.js.map +7 -0
- package/src/TableBody.js +3 -35
- package/src/TableBody.js.map +7 -1
- package/src/TableCell.dev.js +35 -0
- package/src/TableCell.dev.js.map +7 -0
- package/src/TableCell.js +3 -35
- package/src/TableCell.js.map +7 -1
- package/src/TableCheckboxCell.d.ts +1 -1
- package/src/TableCheckboxCell.dev.js +70 -0
- package/src/TableCheckboxCell.dev.js.map +7 -0
- package/src/TableCheckboxCell.js +4 -67
- package/src/TableCheckboxCell.js.map +7 -1
- package/src/TableHead.dev.js +54 -0
- package/src/TableHead.dev.js.map +7 -0
- package/src/TableHead.js +3 -52
- package/src/TableHead.js.map +7 -1
- package/src/TableHeadCell.dev.js +90 -0
- package/src/TableHeadCell.dev.js.map +7 -0
- package/src/TableHeadCell.js +5 -92
- package/src/TableHeadCell.js.map +7 -1
- package/src/TableRow.d.ts +6 -1
- package/src/TableRow.dev.js +99 -0
- package/src/TableRow.dev.js.map +7 -0
- package/src/TableRow.js +7 -66
- package/src/TableRow.js.map +7 -1
- package/src/index.dev.js +2 -0
- package/src/index.dev.js.map +7 -0
- package/src/index.js +2 -13
- package/src/index.js.map +7 -1
- package/src/spectrum-table-body.css.dev.js +16 -0
- package/src/spectrum-table-body.css.dev.js.map +7 -0
- package/src/spectrum-table-body.css.js +3 -16
- package/src/spectrum-table-body.css.js.map +7 -1
- package/src/spectrum-table-cell.css.dev.js +26 -0
- package/src/spectrum-table-cell.css.dev.js.map +7 -0
- package/src/spectrum-table-cell.css.js +3 -16
- package/src/spectrum-table-cell.css.js.map +7 -1
- package/src/spectrum-table-checkbox-cell.css.dev.js +12 -0
- package/src/spectrum-table-checkbox-cell.css.dev.js.map +7 -0
- package/src/spectrum-table-checkbox-cell.css.js +3 -16
- package/src/spectrum-table-checkbox-cell.css.js.map +7 -1
- package/src/spectrum-table-head-cell.css.dev.js +60 -0
- package/src/spectrum-table-head-cell.css.dev.js.map +7 -0
- package/src/spectrum-table-head-cell.css.js +3 -16
- package/src/spectrum-table-head-cell.css.js.map +7 -1
- package/src/spectrum-table-head.css.dev.js +6 -0
- package/src/spectrum-table-head.css.dev.js.map +7 -0
- package/src/spectrum-table-head.css.js +3 -16
- package/src/spectrum-table-head.css.js.map +7 -1
- package/src/spectrum-table-row.css.dev.js +32 -0
- package/src/spectrum-table-row.css.dev.js.map +7 -0
- package/src/spectrum-table-row.css.js +3 -16
- package/src/spectrum-table-row.css.js.map +7 -1
- package/src/spectrum-table.css.dev.js +512 -0
- package/src/spectrum-table.css.dev.js.map +7 -0
- package/src/spectrum-table.css.js +3 -16
- package/src/spectrum-table.css.js.map +7 -1
- package/src/table-body.css.dev.js +16 -0
- package/src/table-body.css.dev.js.map +7 -0
- package/src/table-body.css.js +4 -17
- package/src/table-body.css.js.map +7 -1
- package/src/table-cell.css.dev.js +26 -0
- package/src/table-cell.css.dev.js.map +7 -0
- package/src/table-cell.css.js +3 -16
- package/src/table-cell.css.js.map +7 -1
- package/src/table-checkbox-cell.css.dev.js +12 -0
- package/src/table-checkbox-cell.css.dev.js.map +7 -0
- package/src/table-checkbox-cell.css.js +3 -16
- package/src/table-checkbox-cell.css.js.map +7 -1
- package/src/table-head-cell.css.dev.js +60 -0
- package/src/table-head-cell.css.dev.js.map +7 -0
- package/src/table-head-cell.css.js +3 -16
- package/src/table-head-cell.css.js.map +7 -1
- package/src/table-head.css.dev.js +6 -0
- package/src/table-head.css.dev.js.map +7 -0
- package/src/table-head.css.js +3 -16
- package/src/table-head.css.js.map +7 -1
- package/src/table-row.css.dev.js +32 -0
- package/src/table-row.css.dev.js.map +7 -0
- package/src/table-row.css.js +3 -16
- package/src/table-row.css.js.map +7 -1
- package/src/table.css.dev.js +512 -0
- package/src/table.css.dev.js.map +7 -0
- package/src/table.css.js +4 -17
- package/src/table.css.js.map +7 -1
- package/stories/index.js +7 -31
- package/stories/index.js.map +7 -1
- package/stories/table-elements.stories.js +45 -117
- package/stories/table-elements.stories.js.map +7 -1
- package/stories/table-virtualized.stories.js +48 -165
- package/stories/table-virtualized.stories.js.map +7 -1
- package/test/benchmark/basic-test.js +3 -17
- package/test/benchmark/basic-test.js.map +7 -1
- package/test/table-elements.test-vrt.js +2 -15
- package/test/table-elements.test-vrt.js.map +7 -1
- package/test/table-selects.test.js +41 -0
- package/test/table-selects.test.js.map +7 -0
- package/test/table-virtualized.test-vrt.js +2 -15
- package/test/table-virtualized.test-vrt.js.map +7 -1
- package/test/table.test.js +43 -222
- package/test/table.test.js.map +7 -1
- package/test/virtualized-table-selects.test.js +57 -0
- package/test/virtualized-table-selects.test.js.map +7 -0
- package/test/virtualized-table.test.js +35 -450
- package/test/virtualized-table.test.js.map +7 -1
- package/stories/table.stories.js.map +0 -1
- package/test/table.test-vrt.js.map +0 -1
|
@@ -1 +1,7 @@
|
|
|
1
|
-
{"version":3,"file":"table-virtualized.stories.js","sourceRoot":"","sources":["table-virtualized.stories.ts"],"names":[],"mappings":"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","sourcesContent":["/* STORIES\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*/\nimport {\n html,\n SpectrumElement,\n TemplateResult,\n} from '@spectrum-web-components/base';\nimport { property } from '@spectrum-web-components/base/src/decorators.js';\n\nimport '../sp-table.js';\nimport '../sp-table-checkbox-cell.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 { Item, makeItems, Properties, renderItem } from './index.js';\nimport type { SortedEventDetails } from '../src/TableHeadCell.js';\nimport { RangeChangedEvent, Table } from '../src/Table.js';\n\nexport default {\n title: 'Table/Virtualized',\n component: 'sp-table',\n argTypes: {\n onChange: { action: 'change' },\n selected: {\n name: 'selected',\n description: 'The array of item values selected by the Table.',\n type: { name: '', required: false },\n control: 'text',\n },\n selects: {\n name: 'selects',\n description:\n 'If the Table accepts a \"single\" or \"multiple\" selection.',\n control: {\n type: 'inline-radio',\n options: ['', 'single', 'multiple'],\n },\n },\n },\n args: {\n selects: '',\n selected: [],\n },\n};\n\nclass VirtualTable extends SpectrumElement {\n @property({ type: Array })\n public items: {\n name: string;\n date: number;\n }[] = makeItems(50);\n\n constructor() {\n super();\n this.items.sort(this.compareItems('name', 'desc'));\n }\n\n compareItems =\n (sortKey: 'name' | 'date', sortDirection: 'asc' | 'desc') =>\n (\n a: {\n name: string;\n date: number;\n },\n b: {\n name: string;\n date: number;\n }\n ): number => {\n const doSortKey = sortKey;\n if (!isNaN(Number(a[doSortKey]))) {\n const first = Number(a[doSortKey]);\n const second = Number(b[doSortKey]);\n return sortDirection === 'asc'\n ? first - second\n : second - first;\n } else {\n const first = String(a[doSortKey]);\n const second = String(b[doSortKey]);\n return sortDirection === 'asc'\n ? first.localeCompare(second)\n : second.localeCompare(first);\n }\n };\n\n protected override render(): TemplateResult {\n return html`\n <sp-table\n aria-rowcount=\"50\"\n .items=${this.items}\n .renderItem=${renderItem}\n size=\"m\"\n scroller=\"true\"\n style=\"height: 200px\"\n @sorted=${(event: CustomEvent<SortedEventDetails>): void => {\n const { sortKey, sortDirection } = event.detail; // leveraged CustomEvent().detail, works across shadow boundaries\n const items = [...this.items];\n // depending on the column, sort asc or desc depending on the arrow direction\n items.sort(\n this.compareItems(\n sortKey as 'name' | 'date',\n sortDirection\n )\n );\n this.items = items;\n }}\n >\n <sp-table-head>\n <sp-table-head-cell\n sortable\n sort-key=\"name\"\n sort-direction=\"desc\"\n >\n Column Title\n </sp-table-head-cell>\n <sp-table-head-cell sortable sort-key=\"date\">\n Column Title\n </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\ncustomElements.define('virtual-table', VirtualTable);\n\nconst virtualItems = makeItems(50);\n\nexport const virtualized = (): TemplateResult => {\n return html`\n <virtual-table></virtual-table>\n `;\n};\n\nexport const virtualizedSingle = (args: Properties): TemplateResult => {\n const onChange =\n (args.onChange as (eventData: {\n first: number;\n last: number;\n type: string;\n }) => void) ||\n (() => {\n return;\n });\n\n return html`\n <sp-table\n size=\"m\"\n scroller=\"true\"\n style=\"height: 200px\"\n selects=${args.selects}\n .selected=${args.selected}\n @change=${({ target }: Event & { target: Table }) => {\n const next = target.nextElementSibling as HTMLDivElement;\n next.textContent = `Selected: ${JSON.stringify(\n target.selected\n )}`;\n }}\n .items=${virtualItems}\n .renderItem=${renderItem}\n @visibilityChanged=${(event: RangeChangedEvent) =>\n onChange({\n first: event.first,\n last: event.last,\n type: 'visibility',\n })}\n @rangeChanged=${(event: RangeChangedEvent) =>\n onChange({\n first: event.first,\n last: event.last,\n type: 'range',\n })}\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 <div>Selected: [\"49\"]</div>\n `;\n};\nvirtualizedSingle.args = {\n selects: 'single',\n selected: ['49'],\n};\n\nexport const virtualizedMultiple = (args: Properties): TemplateResult => {\n return html`\n <sp-table\n size=\"m\"\n scroller=\"true\"\n style=\"height: 200px\"\n selects=${args.selects}\n .selected=${args.selected}\n @change=${({ target }: Event & { target: Table }) => {\n const next = target.nextElementSibling as HTMLDivElement;\n next.textContent = `Selected: ${JSON.stringify(\n target.selected,\n null,\n ' '\n )}`;\n const nextNext = next.nextElementSibling as HTMLDivElement;\n nextNext.textContent = `Selected Count: ${target.selected.length}`;\n }}\n scroller?=\"false\"\n .items=${virtualItems}\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 <div>Selected: [\"0\", \"48\"]</div>\n <div>Selected Count: 2</div>\n `;\n};\nvirtualizedMultiple.args = {\n selects: 'multiple',\n selected: ['0', '48'],\n};\n\nexport const virtualizedCustomValue = (args: Properties): TemplateResult => {\n return html`\n <sp-table\n size=\"m\"\n scroller=\"true\"\n style=\"height: 200px\"\n selects=${args.selects}\n .selected=${args.selected}\n @change=${args.onChange}\n .items=${virtualItems}\n .itemValue=${(item: Item) => 'applied-' + item.date}\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-body></sp-table-body>\n </sp-table>\n <div>Selected: [\"0\", \"48\", \"applied-47\"]</div>\n <div>Selected Count: 2</div>\n `;\n};\nvirtualizedCustomValue.args = {\n selected: ['0', '48', 'applied-47'],\n selects: 'multiple',\n onChange: ({ target }: Event & { target: Table }) => {\n const next = target.nextElementSibling as HTMLDivElement;\n next.textContent = `Selected: ${JSON.stringify(\n target.selected,\n null,\n ' '\n )}`;\n const nextNext = next.nextElementSibling as HTMLDivElement;\n nextNext.textContent = `Selected Count: ${target.selected.length}`;\n },\n};\n\nexport const virtualizedNoScroller = (): TemplateResult => {\n return html`\n <sp-table size=\"m\" .items=${virtualItems} .renderItem=${renderItem}>\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"]}
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["table-virtualized.stories.ts"],
|
|
4
|
+
"sourcesContent": ["/* STORIES\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*/\nimport {\n html,\n SpectrumElement,\n TemplateResult,\n} from '@spectrum-web-components/base';\nimport { property } from '@spectrum-web-components/base/src/decorators.js';\n\nimport '../sp-table.js';\nimport '../sp-table-checkbox-cell.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 { Item, makeItems, Properties, renderItem } from './index.js';\nimport type { SortedEventDetails } from '../src/TableHeadCell.js';\nimport { RangeChangedEvent, Table } from '../src/Table.js';\n\nexport default {\n title: 'Table/Virtualized',\n component: 'sp-table',\n argTypes: {\n onChange: { action: 'change' },\n selected: {\n name: 'selected',\n description: 'The array of item values selected by the Table.',\n type: { name: '', required: false },\n control: 'text',\n },\n selects: {\n name: 'selects',\n description:\n 'If the Table accepts a \"single\" or \"multiple\" selection.',\n control: {\n type: 'inline-radio',\n options: ['', 'single', 'multiple'],\n },\n },\n },\n args: {\n selects: '',\n selected: [],\n },\n};\n\nclass VirtualTable extends SpectrumElement {\n @property({ type: Array })\n public items: {\n name: string;\n date: number;\n }[] = makeItems(50);\n\n constructor() {\n super();\n this.items.sort(this.compareItems('name', 'desc'));\n }\n\n compareItems =\n (sortKey: 'name' | 'date', sortDirection: 'asc' | 'desc') =>\n (\n a: {\n name: string;\n date: number;\n },\n b: {\n name: string;\n date: number;\n }\n ): number => {\n const doSortKey = sortKey;\n if (!isNaN(Number(a[doSortKey]))) {\n const first = Number(a[doSortKey]);\n const second = Number(b[doSortKey]);\n return sortDirection === 'asc'\n ? first - second\n : second - first;\n } else {\n const first = String(a[doSortKey]);\n const second = String(b[doSortKey]);\n return sortDirection === 'asc'\n ? first.localeCompare(second)\n : second.localeCompare(first);\n }\n };\n\n protected override render(): TemplateResult {\n return html`\n <sp-table\n aria-rowcount=\"50\"\n .items=${this.items}\n .renderItem=${renderItem}\n size=\"m\"\n scroller=\"true\"\n style=\"height: 200px\"\n @sorted=${(event: CustomEvent<SortedEventDetails>): void => {\n const { sortKey, sortDirection } = event.detail; // leveraged CustomEvent().detail, works across shadow boundaries\n const items = [...this.items];\n // depending on the column, sort asc or desc depending on the arrow direction\n items.sort(\n this.compareItems(\n sortKey as 'name' | 'date',\n sortDirection\n )\n );\n this.items = items;\n }}\n >\n <sp-table-head>\n <sp-table-head-cell\n sortable\n sort-key=\"name\"\n sort-direction=\"desc\"\n >\n Column Title\n </sp-table-head-cell>\n <sp-table-head-cell sortable sort-key=\"date\">\n Column Title\n </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\ncustomElements.define('virtual-table', VirtualTable);\n\nconst virtualItems = makeItems(50);\n\nexport const virtualized = (): TemplateResult => {\n return html`\n <virtual-table></virtual-table>\n `;\n};\n\nexport const virtualizedSingle = (args: Properties): TemplateResult => {\n const onChange =\n (args.onChange as (eventData: {\n first: number;\n last: number;\n type: string;\n }) => void) ||\n (() => {\n return;\n });\n\n return html`\n <sp-table\n size=\"m\"\n scroller=\"true\"\n style=\"height: 200px\"\n selects=${args.selects}\n .selected=${args.selected}\n @change=${({ target }: Event & { target: Table }) => {\n const next = target.nextElementSibling as HTMLDivElement;\n next.textContent = `Selected: ${JSON.stringify(\n target.selected\n )}`;\n }}\n .items=${virtualItems}\n .renderItem=${renderItem}\n @visibilityChanged=${(event: RangeChangedEvent) =>\n onChange({\n first: event.first,\n last: event.last,\n type: 'visibility',\n })}\n @rangeChanged=${(event: RangeChangedEvent) =>\n onChange({\n first: event.first,\n last: event.last,\n type: 'range',\n })}\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 <div>Selected: [\"49\"]</div>\n `;\n};\nvirtualizedSingle.args = {\n selects: 'single',\n selected: ['49'],\n};\n\nexport const virtualizedMultiple = (args: Properties): TemplateResult => {\n return html`\n <sp-table\n size=\"m\"\n scroller=\"true\"\n style=\"height: 200px\"\n selects=${args.selects}\n .selected=${args.selected}\n @change=${({ target }: Event & { target: Table }) => {\n const next = target.nextElementSibling as HTMLDivElement;\n next.textContent = `Selected: ${JSON.stringify(\n target.selected,\n null,\n ' '\n )}`;\n const nextNext = next.nextElementSibling as HTMLDivElement;\n nextNext.textContent = `Selected Count: ${target.selected.length}`;\n }}\n scroller?=\"false\"\n .items=${virtualItems}\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 <div>Selected: [\"0\", \"48\"]</div>\n <div>Selected Count: 2</div>\n `;\n};\nvirtualizedMultiple.args = {\n selects: 'multiple',\n selected: ['0', '48'],\n};\n\nexport const virtualizedCustomValue = (args: Properties): TemplateResult => {\n return html`\n <sp-table\n size=\"m\"\n scroller=\"true\"\n style=\"height: 200px\"\n selects=${args.selects}\n .selected=${args.selected}\n @change=${args.onChange}\n .items=${virtualItems}\n .itemValue=${(item: Item) => 'applied-' + item.date}\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-body></sp-table-body>\n </sp-table>\n <div>Selected: [\"0\", \"48\", \"applied-47\"]</div>\n <div>Selected Count: 2</div>\n `;\n};\nvirtualizedCustomValue.args = {\n selected: ['0', '48', 'applied-47'],\n selects: 'multiple',\n onChange: ({ target }: Event & { target: Table }) => {\n const next = target.nextElementSibling as HTMLDivElement;\n next.textContent = `Selected: ${JSON.stringify(\n target.selected,\n null,\n ' '\n )}`;\n const nextNext = next.nextElementSibling as HTMLDivElement;\n nextNext.textContent = `Selected Count: ${target.selected.length}`;\n },\n};\n\nexport const virtualizedCustomRow = (args: Properties): TemplateResult => {\n virtualItems.splice(3, 1, { name: 'Scoobert', date: 2, _$rowType$: 1 });\n\n return html`\n <sp-table\n size=\"m\"\n scroller=\"true\"\n style=\"height: 200px\"\n selects=${args.selects}\n .selected=${args.selected}\n @change=${({ target }: Event & { target: Table }) => {\n const next = target.nextElementSibling as HTMLDivElement;\n next.textContent = `Selected: ${JSON.stringify(\n target.selected,\n null,\n ' '\n )}`;\n const nextNext = next.nextElementSibling as HTMLDivElement;\n nextNext.textContent = `Selected Count: ${target.selected.length}`;\n }}\n scroller?=\"false\"\n .items=${virtualItems}\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 <div>Selected: [\"0\", \"48\"]</div>\n <div>Selected Count: 2</div>\n `;\n};\nvirtualizedCustomRow.args = {\n selects: 'multiple',\n selected: ['0', '48'],\n};\n\nexport const virtualizedNoScroller = (): TemplateResult => {\n return html`\n <sp-table size=\"m\" .items=${virtualItems} .renderItem=${renderItem}>\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"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,23 +1,9 @@
|
|
|
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 '@spectrum-web-components/table/sp-table.js';
|
|
13
|
-
import { html } from '@spectrum-web-components/base';
|
|
14
|
-
import { measureFixtureCreation } from '../../../../test/benchmark/helpers.js';
|
|
15
|
-
measureFixtureCreation(html `
|
|
1
|
+
import"@spectrum-web-components/table/sp-table.js";import{html as l}from"@spectrum-web-components/base";import{measureFixtureCreation as e}from"../../../../test/benchmark/helpers.js";e(l`
|
|
16
2
|
<sp-table
|
|
17
3
|
size="m"
|
|
18
4
|
style="height: 200px"
|
|
19
5
|
selects="multiple"
|
|
20
|
-
.selected=${[
|
|
6
|
+
.selected=${["row1","row2"]}
|
|
21
7
|
>
|
|
22
8
|
<sp-table-head>
|
|
23
9
|
<sp-table-head-cell>Column Title</sp-table-head-cell>
|
|
@@ -53,4 +39,4 @@ measureFixtureCreation(html `
|
|
|
53
39
|
</sp-table-body>
|
|
54
40
|
</sp-table>
|
|
55
41
|
`);
|
|
56
|
-
//# sourceMappingURL=basic-test.js.map
|
|
42
|
+
//# sourceMappingURL=basic-test.js.map
|
|
@@ -1 +1,7 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["basic-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*/\nimport '@spectrum-web-components/table/sp-table.js';\nimport { html } from '@spectrum-web-components/base';\nimport { measureFixtureCreation } from '../../../../test/benchmark/helpers.js';\n\nmeasureFixtureCreation(html`\n <sp-table\n size=\"m\"\n style=\"height: 200px\"\n selects=\"multiple\"\n .selected=${['row1', 'row2']}\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-body>\n <sp-table-row value=\"row1\">\n <sp-table-cell>Row Item Alpha</sp-table-cell>\n <sp-table-cell>Row Item Alpha</sp-table-cell>\n <sp-table-cell>Row Item Alpha</sp-table-cell>\n </sp-table-row>\n <sp-table-row value=\"row2\">\n <sp-table-cell>Row Item Bravo</sp-table-cell>\n <sp-table-cell>Row Item Bravo</sp-table-cell>\n <sp-table-cell>Row Item Bravo</sp-table-cell>\n </sp-table-row>\n <sp-table-row value=\"row3\">\n <sp-table-cell>Row Item Charlie</sp-table-cell>\n <sp-table-cell>Row Item Charlie</sp-table-cell>\n <sp-table-cell>Row Item Charlie</sp-table-cell>\n </sp-table-row>\n <sp-table-row value=\"row4\">\n <sp-table-cell>Row Item Delta</sp-table-cell>\n <sp-table-cell>Row Item Delta</sp-table-cell>\n <sp-table-cell>Row Item Delta</sp-table-cell>\n </sp-table-row>\n <sp-table-row value=\"row5\">\n <sp-table-cell>Row Item Echo</sp-table-cell>\n <sp-table-cell>Row Item Echo</sp-table-cell>\n <sp-table-cell>Row Item Echo</sp-table-cell>\n </sp-table-row>\n </sp-table-body>\n </sp-table>\n`);\n"],
|
|
5
|
+
"mappings": "AAWA,mDACA,qDACA,+EAEA,EAAuB;AAAA;AAAA;AAAA;AAAA;AAAA,oBAKH,CAAC,OAAQ,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAmClC",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,15 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
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 * as stories from '../stories/table-elements.stories.js';
|
|
13
|
-
import { regressVisuals } from '../../../test/visual/test.js';
|
|
14
|
-
regressVisuals('TableElementsStories', stories);
|
|
15
|
-
//# sourceMappingURL=table-elements.test-vrt.js.map
|
|
1
|
+
import*as s from"../stories/table-elements.stories.js";import{regressVisuals as r}from"../../../test/visual/test.js";r("TableElementsStories",s);
|
|
2
|
+
//# sourceMappingURL=table-elements.test-vrt.js.map
|
|
@@ -1 +1,7 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["table-elements.test-vrt.ts"],
|
|
4
|
+
"sourcesContent": ["/*\nCopyright 2020 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 * as stories from '../stories/table-elements.stories.js';\nimport { regressVisuals } from '../../../test/visual/test.js';\n\nregressVisuals('TableElementsStories', stories);\n"],
|
|
5
|
+
"mappings": "AAYA,uDACA,8DAEA,EAAe,uBAAwB,CAAO",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import{elementUpdated as o,expect as l,fixture as s,html as p,nextFrame as w}from"@open-wc/testing";import"../sp-table.js";import"../sp-table-head.js";import"../sp-table-head-cell.js";import"../sp-table-body.js";import"../sp-table-row.js";import"../sp-table-cell.js";import{elements as h,noSelectsSpecified as d,selectsMultiple as i,selectsSingle as n}from"../stories/table-elements.stories.js";let r;before(function(){Mocha.process.removeListener("uncaughtException"),r=window.onerror,addEventListener("error",e=>{var c,t;(t=(c=e.message)==null?void 0:c.match)!=null&&t.call(c,/ResizeObserver loop limit exceeded/)||r==null||r(e)})}),after(function(){window.onerror=r}),describe("Table Selects",()=>{it("selects items not initially visible in the <sp-table-body>",async()=>{const e=await s(h());e.selects="single",e.selected=["row5"],await o(e);const t=e.querySelector(".row5").querySelector("sp-table-checkbox-cell");e.querySelectorAll("sp-table-checkbox-cell:nth-child(n+1):nth-child(n+4)").forEach(b=>{l(b.checkbox.checked).to.be.false}),e.scrollTop=e.scrollHeight,await w(),l(t.checkbox.checked).to.be.true}),it("can prevent selection",async()=>{const e=await s(p`
|
|
2
|
+
<sp-table
|
|
3
|
+
size="m"
|
|
4
|
+
selects="single"
|
|
5
|
+
@change=${a=>{a.preventDefault()}}
|
|
6
|
+
>
|
|
7
|
+
<sp-table-head>
|
|
8
|
+
<sp-table-head-cell>Column Title</sp-table-head-cell>
|
|
9
|
+
<sp-table-head-cell>Column Title</sp-table-head-cell>
|
|
10
|
+
<sp-table-head-cell>Column Title</sp-table-head-cell>
|
|
11
|
+
</sp-table-head>
|
|
12
|
+
<sp-table-body style="height: 120px">
|
|
13
|
+
<sp-table-row value="row1" class="row1">
|
|
14
|
+
<sp-table-cell>Row Item Alpha</sp-table-cell>
|
|
15
|
+
<sp-table-cell>Row Item Alpha</sp-table-cell>
|
|
16
|
+
<sp-table-cell>Row Item Alpha</sp-table-cell>
|
|
17
|
+
</sp-table-row>
|
|
18
|
+
<sp-table-row value="row2" class="row2">
|
|
19
|
+
<sp-table-cell>Row Item Bravo</sp-table-cell>
|
|
20
|
+
<sp-table-cell>Row Item Bravo</sp-table-cell>
|
|
21
|
+
<sp-table-cell>Row Item Bravo</sp-table-cell>
|
|
22
|
+
</sp-table-row>
|
|
23
|
+
<sp-table-row value="row3" class="row3">
|
|
24
|
+
<sp-table-cell>Row Item Charlie</sp-table-cell>
|
|
25
|
+
<sp-table-cell>Row Item Charlie</sp-table-cell>
|
|
26
|
+
<sp-table-cell>Row Item Charlie</sp-table-cell>
|
|
27
|
+
</sp-table-row>
|
|
28
|
+
<sp-table-row value="row4" class="row4">
|
|
29
|
+
<sp-table-cell>Row Item Delta</sp-table-cell>
|
|
30
|
+
<sp-table-cell>Row Item Delta</sp-table-cell>
|
|
31
|
+
<sp-table-cell>Row Item Delta</sp-table-cell>
|
|
32
|
+
</sp-table-row>
|
|
33
|
+
<sp-table-row value="row5" class="row5">
|
|
34
|
+
<sp-table-cell>Row Item Echo</sp-table-cell>
|
|
35
|
+
<sp-table-cell>Row Item Echo</sp-table-cell>
|
|
36
|
+
<sp-table-cell>Row Item Echo</sp-table-cell>
|
|
37
|
+
</sp-table-row>
|
|
38
|
+
</sp-table-body>
|
|
39
|
+
</sp-table>
|
|
40
|
+
`),c=e.querySelector(".row2"),t=c.querySelector("sp-table-checkbox-cell");t.checkbox.click(),await o(e),l(t.checked).to.be.false,l(c.selected).to.be.false,l(e.selected.length).to.equal(0)}),it('surfaces [selects="single"] selection',async()=>{const e=await s(n());l(e.selected,"'Row 1 selected").to.deep.equal(["row1"])}),it('selects via `click` while [selects="single"]',async()=>{const e=await s(n()),c=e.querySelector(".row2"),t=c.querySelector("sp-table-checkbox-cell"),b=e.querySelector(".row3").querySelector("sp-table-checkbox-cell");t.checkbox.click(),await o(e),l(t.checked).to.be.true,l(e.selected).to.deep.equal(["row2"]),b.checkbox.click(),await o(e),await o(t),l(b.checkbox.checked).to.be.true,l(t.checkbox.checked).to.be.false,l(e.selected.length).to.equal(1),c.click(),await o(e),l(t.checked).to.be.true,l(e.selected).to.deep.equal(["row2"])}),it('surfaces [selects="multiple"] selection',async()=>{const e=await s(i());l(e.selected,"Rows 1 and 2 selected").to.deep.equal(["row1","row2"])}),it('selects via `click` while [selects="multiple"] selection',async()=>{const e=await s(i()),c=e.querySelector(".row4"),t=e.querySelector("sp-table-head sp-table-checkbox-cell"),a=c.querySelector("sp-table-checkbox-cell");await o(e),l(e.selected.length).to.equal(2),a.checkbox.click(),await o(e),l(a.checked).to.be.true,l(e.selected).to.deep.equal(["row1","row2","row4"]),t.checkbox.click(),await o(e),l(e.selected).to.deep.equal(["row1","row2","row4","row3","row5"])}),it("allows [selects] to be changed by the application",async()=>{const e=await s(h());l(e.selects).to.be.undefined,e.selects="single",await o(e),l(e.selects).to.equal("single"),await o(e),await w(),await w();const c=e.querySelector(".row2 sp-table-checkbox-cell"),t=e.querySelector(".row1 sp-table-checkbox-cell"),a=e.querySelector("sp-table-head sp-table-checkbox-cell");l(a.selectsSingle).to.be.true,t.checkbox.click(),await o(e),l(e.selected).to.deep.equal(["row1"]),l(t.checkbox.checked).to.be.true,l(c.checkbox.checked).to.be.false,e.selects="multiple",await o(e),l(e.selects).to.equal("multiple"),l(a.indeterminate).to.be.true,c.checkbox.click(),await o(e),await o(c),l(e.selected).to.deep.equal(["row1","row2"]),l(t.checkbox.checked).to.be.true,l(c.checkbox.checked).to.be.true,l(a.indeterminate).to.be.true}),it("selects a user-passed value for .selected array with no [selects] specified, but does not allow interaction afterwards",async()=>{const e=await s(d());await o(e),l(e.selected.length).to.equal(2),e.querySelectorAll("sp-table-row").forEach(t=>{const a=t.querySelector("sp-table-checkbox-cell");l(a).to.be.null})}),it('allows .selected values to be changed by the application when [selects="multiple"]',async()=>{const e=await s(i());await o(e);const c=e.querySelector(".row3 sp-table-checkbox-cell"),t=e.querySelector(".row1 sp-table-checkbox-cell");l(e.selected).to.deep.equal(["row1","row2"]),l(t.checkbox.checked).to.be.true,l(c.checkbox.checked).to.be.false,e.selected=["row1","row3"],await o(e),await o(c),l(e.selected).to.deep.equal(["row1","row3"]),l(t.checkbox.checked).to.be.true,l(c.checkbox.checked).to.be.true})});
|
|
41
|
+
//# sourceMappingURL=table-selects.test.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["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*/\nimport {\n elementUpdated,\n expect,\n fixture,\n html,\n nextFrame,\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 elements,\n noSelectsSpecified,\n selectsMultiple,\n selectsSingle,\n} from '../stories/table-elements.stories.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('Table Selects', () => {\n it('selects items not initially visible in the <sp-table-body>', async () => {\n const el = await fixture<Table>(elements());\n\n el.selects = 'single';\n el.selected = ['row5'];\n\n await elementUpdated(el);\n\n const rowFive = el.querySelector('.row5') as TableRow;\n const rowFiveCheckbox = rowFive.querySelector(\n 'sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n const checkboxes = el.querySelectorAll(\n 'sp-table-checkbox-cell:nth-child(n+1):nth-child(n+4)'\n ) as NodeListOf<TableCheckboxCell>;\n\n checkboxes.forEach((checkbox) => {\n expect(checkbox.checkbox.checked).to.be.false;\n });\n\n el.scrollTop = el.scrollHeight;\n\n await nextFrame();\n\n expect(rowFiveCheckbox.checkbox.checked).to.be.true;\n });\n it('can prevent selection', async () => {\n const el = await fixture<Table>(html`\n <sp-table\n size=\"m\"\n selects=\"single\"\n @change=${(event: Event) => {\n event.preventDefault();\n }}\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-body style=\"height: 120px\">\n <sp-table-row value=\"row1\" class=\"row1\">\n <sp-table-cell>Row Item Alpha</sp-table-cell>\n <sp-table-cell>Row Item Alpha</sp-table-cell>\n <sp-table-cell>Row Item Alpha</sp-table-cell>\n </sp-table-row>\n <sp-table-row value=\"row2\" class=\"row2\">\n <sp-table-cell>Row Item Bravo</sp-table-cell>\n <sp-table-cell>Row Item Bravo</sp-table-cell>\n <sp-table-cell>Row Item Bravo</sp-table-cell>\n </sp-table-row>\n <sp-table-row value=\"row3\" class=\"row3\">\n <sp-table-cell>Row Item Charlie</sp-table-cell>\n <sp-table-cell>Row Item Charlie</sp-table-cell>\n <sp-table-cell>Row Item Charlie</sp-table-cell>\n </sp-table-row>\n <sp-table-row value=\"row4\" class=\"row4\">\n <sp-table-cell>Row Item Delta</sp-table-cell>\n <sp-table-cell>Row Item Delta</sp-table-cell>\n <sp-table-cell>Row Item Delta</sp-table-cell>\n </sp-table-row>\n <sp-table-row value=\"row5\" class=\"row5\">\n <sp-table-cell>Row Item Echo</sp-table-cell>\n <sp-table-cell>Row Item Echo</sp-table-cell>\n <sp-table-cell>Row Item Echo</sp-table-cell>\n </sp-table-row>\n </sp-table-body>\n </sp-table>\n `);\n\n const rowTwo = el.querySelector('.row2') 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', async () => {\n const el = await fixture<Table>(selectsSingle());\n\n expect(el.selected, \"'Row 1 selected\").to.deep.equal(['row1']);\n });\n\n it('selects via `click` while [selects=\"single\"]', async () => {\n const el = await fixture<Table>(selectsSingle());\n const rowTwo = el.querySelector('.row2') as TableRow;\n const rowTwoCheckbox = rowTwo.querySelector(\n 'sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n\n const rowThree = el.querySelector('.row3') as TableRow;\n const rowThreeCheckbox = rowThree.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.true;\n expect(el.selected).to.deep.equal(['row2']);\n\n rowThreeCheckbox.checkbox.click();\n await elementUpdated(el);\n await elementUpdated(rowTwoCheckbox); // webkit needs this\n\n expect(rowThreeCheckbox.checkbox.checked).to.be.true;\n expect(rowTwoCheckbox.checkbox.checked).to.be.false;\n expect(el.selected.length).to.equal(1);\n\n rowTwo.click();\n await elementUpdated(el);\n\n expect(rowTwoCheckbox.checked).to.be.true;\n expect(el.selected).to.deep.equal(['row2']);\n });\n\n it('surfaces [selects=\"multiple\"] selection', async () => {\n const el = await fixture<Table>(selectsMultiple());\n\n expect(el.selected, 'Rows 1 and 2 selected').to.deep.equal([\n 'row1',\n 'row2',\n ]);\n });\n\n it('selects via `click` while [selects=\"multiple\"] selection', async () => {\n const el = await fixture<Table>(selectsMultiple());\n const rowFour = el.querySelector('.row4') as TableRow;\n const tableHeadCheckboxCell = el.querySelector(\n 'sp-table-head sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n const rowFourCheckbox = rowFour.querySelector(\n 'sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n\n await elementUpdated(el);\n expect(el.selected.length).to.equal(2);\n\n rowFourCheckbox.checkbox.click();\n await elementUpdated(el);\n\n expect(rowFourCheckbox.checked).to.be.true;\n expect(el.selected).to.deep.equal(['row1', 'row2', 'row4']);\n\n tableHeadCheckboxCell.checkbox.click();\n await elementUpdated(el);\n\n expect(el.selected).to.deep.equal([\n 'row1',\n 'row2',\n 'row4',\n 'row3',\n 'row5',\n ]);\n });\n\n it('allows [selects] to be changed by the application', async () => {\n const el = await fixture<Table>(elements());\n\n expect(el.selects).to.be.undefined;\n\n el.selects = 'single';\n\n await elementUpdated(el);\n expect(el.selects).to.equal('single');\n\n await elementUpdated(el);\n await nextFrame();\n await nextFrame();\n\n const rowTwoCheckboxCell = el.querySelector(\n '.row2 sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n const rowOneCheckboxCell = el.querySelector(\n '.row1 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(['row1']);\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(['row1', 'row2']);\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, but does not allow interaction afterwards', async () => {\n const el = await fixture<Table>(noSelectsSpecified());\n\n await elementUpdated(el);\n\n expect(el.selected.length).to.equal(2);\n\n const rows = el.querySelectorAll('sp-table-row');\n\n rows.forEach((row) => {\n const checkbox = row.querySelector('sp-table-checkbox-cell');\n expect(checkbox).to.be.null;\n });\n });\n\n it('allows .selected values to be changed by the application when [selects=\"multiple\"]', async () => {\n const el = await fixture<Table>(selectsMultiple());\n await elementUpdated(el);\n\n const rowThreeCheckboxCell = el.querySelector(\n '.row3 sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n const rowOneCheckboxCell = el.querySelector(\n '.row1 sp-table-checkbox-cell'\n ) as TableCheckboxCell;\n\n expect(el.selected).to.deep.equal(['row1', 'row2']);\n expect(rowOneCheckboxCell.checkbox.checked).to.be.true;\n expect(rowThreeCheckboxCell.checkbox.checked).to.be.false;\n\n el.selected = ['row1', 'row3'];\n\n await elementUpdated(el);\n await elementUpdated(rowThreeCheckboxCell);\n\n expect(el.selected).to.deep.equal(['row1', 'row3']);\n expect(rowOneCheckboxCell.checkbox.checked).to.be.true;\n expect(rowThreeCheckboxCell.checkbox.checked).to.be.true;\n });\n});\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,15 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
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 * as stories from '../stories/table-virtualized.stories.js';
|
|
13
|
-
import { regressVisuals } from '../../../test/visual/test.js';
|
|
14
|
-
regressVisuals('TableVirtualizedStories', stories);
|
|
15
|
-
//# sourceMappingURL=table-virtualized.test-vrt.js.map
|
|
1
|
+
import*as r from"../stories/table-virtualized.stories.js";import{regressVisuals as s}from"../../../test/visual/test.js";s("TableVirtualizedStories",r);
|
|
2
|
+
//# sourceMappingURL=table-virtualized.test-vrt.js.map
|
|
@@ -1 +1,7 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["table-virtualized.test-vrt.ts"],
|
|
4
|
+
"sourcesContent": ["/*\nCopyright 2020 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 * as stories from '../stories/table-virtualized.stories.js';\nimport { regressVisuals } from '../../../test/visual/test.js';\n\nregressVisuals('TableVirtualizedStories', stories);\n"],
|
|
5
|
+
"mappings": "AAYA,0DACA,8DAEA,EAAe,0BAA2B,CAAO",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/test/table.test.js
CHANGED
|
@@ -1,56 +1,44 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
window.onerror = globalErrorHandler;
|
|
38
|
-
});
|
|
39
|
-
describe('Table', () => {
|
|
40
|
-
it('loads default table accessibly', async () => {
|
|
41
|
-
const el = await fixture(elements());
|
|
42
|
-
await expect(el).to.be.accessible();
|
|
43
|
-
});
|
|
44
|
-
it('dispatches `change` events', async () => {
|
|
45
|
-
const changeSpy = spy();
|
|
46
|
-
const el = await fixture(html `
|
|
1
|
+
import{elementUpdated as b,expect as l,fixture as s,html as p}from"@open-wc/testing";import"../sp-table.js";import"../sp-table-head.js";import"../sp-table-head-cell.js";import"../sp-table-body.js";import"../sp-table-row.js";import"../sp-table-cell.js";import{elements as h}from"../stories/table-elements.stories.js";import{spy as r}from"sinon";let o;before(function(){Mocha.process.removeListener("uncaughtException"),o=window.onerror,addEventListener("error",t=>{var e,a;(a=(e=t.message)==null?void 0:e.match)!=null&&a.call(e,/ResizeObserver loop limit exceeded/)||o==null||o(t)})}),after(function(){window.onerror=o}),describe("Table",()=>{it("loads default table accessibly",async()=>{const t=await s(h());await l(t).to.be.accessible()}),it("can be size `s`",async()=>{const t=await s(p`
|
|
2
|
+
<sp-table size="s">
|
|
3
|
+
<sp-table-head>
|
|
4
|
+
<sp-table-head-cell>Column Title</sp-table-head-cell>
|
|
5
|
+
<sp-table-head-cell>Column Title</sp-table-head-cell>
|
|
6
|
+
<sp-table-head-cell>Column Title</sp-table-head-cell>
|
|
7
|
+
</sp-table-head>
|
|
8
|
+
<sp-table-body style="height: 120px">
|
|
9
|
+
<sp-table-row value="row1">
|
|
10
|
+
<sp-table-cell>Row Item Alpha</sp-table-cell>
|
|
11
|
+
<sp-table-cell>Row Item Alpha</sp-table-cell>
|
|
12
|
+
<sp-table-cell>Row Item Alpha</sp-table-cell>
|
|
13
|
+
</sp-table-row>
|
|
14
|
+
<sp-table-row value="row2">
|
|
15
|
+
<sp-table-cell>Row Item Bravo</sp-table-cell>
|
|
16
|
+
<sp-table-cell>Row Item Bravo</sp-table-cell>
|
|
17
|
+
<sp-table-cell>Row Item Bravo</sp-table-cell>
|
|
18
|
+
</sp-table-row>
|
|
19
|
+
<sp-table-row value="row3">
|
|
20
|
+
<sp-table-cell>Row Item Charlie</sp-table-cell>
|
|
21
|
+
<sp-table-cell>Row Item Charlie</sp-table-cell>
|
|
22
|
+
<sp-table-cell>Row Item Charlie</sp-table-cell>
|
|
23
|
+
</sp-table-row>
|
|
24
|
+
<sp-table-row value="row4">
|
|
25
|
+
<sp-table-cell>Row Item Delta</sp-table-cell>
|
|
26
|
+
<sp-table-cell>Row Item Delta</sp-table-cell>
|
|
27
|
+
<sp-table-cell>Row Item Delta</sp-table-cell>
|
|
28
|
+
</sp-table-row>
|
|
29
|
+
<sp-table-row value="row5">
|
|
30
|
+
<sp-table-cell>Row Item Echo</sp-table-cell>
|
|
31
|
+
<sp-table-cell>Row Item Echo</sp-table-cell>
|
|
32
|
+
<sp-table-cell>Row Item Echo</sp-table-cell>
|
|
33
|
+
</sp-table-row>
|
|
34
|
+
</sp-table-body>
|
|
35
|
+
</sp-table>
|
|
36
|
+
`);await b(t),l(t.size).to.equal("s")}),it("dispatches `change` events",async()=>{const t=r(),e=await s(p`
|
|
47
37
|
<sp-table
|
|
48
38
|
size="m"
|
|
49
39
|
selects="multiple"
|
|
50
|
-
.selected=${[
|
|
51
|
-
@change=${({
|
|
52
|
-
changeSpy(target);
|
|
53
|
-
}}
|
|
40
|
+
.selected=${["row1","row2"]}
|
|
41
|
+
@change=${({target:w})=>{t(w)}}
|
|
54
42
|
>
|
|
55
43
|
<sp-table-head>
|
|
56
44
|
<sp-table-head-cell>Column Title</sp-table-head-cell>
|
|
@@ -85,36 +73,12 @@ describe('Table', () => {
|
|
|
85
73
|
</sp-table-row>
|
|
86
74
|
</sp-table-body>
|
|
87
75
|
</sp-table>
|
|
88
|
-
`);
|
|
89
|
-
const rowThreeCheckboxCell = el.querySelector('[value="row3"] sp-table-checkbox-cell');
|
|
90
|
-
const tableHeadCheckboxCell = el.querySelector('sp-table-head sp-table-checkbox-cell');
|
|
91
|
-
expect(el.selected).to.deep.equal(['row1', 'row2']);
|
|
92
|
-
rowThreeCheckboxCell.checkbox.click();
|
|
93
|
-
expect(el.selected).to.deep.equal(['row1', 'row2', 'row3']);
|
|
94
|
-
expect(changeSpy.calledOnce).to.be.true;
|
|
95
|
-
expect(changeSpy.calledWithExactly(el)).to.be.true;
|
|
96
|
-
changeSpy.resetHistory();
|
|
97
|
-
tableHeadCheckboxCell.checkbox.click();
|
|
98
|
-
expect(el.selected).to.deep.equal([
|
|
99
|
-
'row1',
|
|
100
|
-
'row2',
|
|
101
|
-
'row3',
|
|
102
|
-
'row4',
|
|
103
|
-
'row5',
|
|
104
|
-
]);
|
|
105
|
-
expect(changeSpy.calledOnce).to.to.true;
|
|
106
|
-
expect(changeSpy.calledWithExactly(el)).to.be.true;
|
|
107
|
-
});
|
|
108
|
-
it('accepts change events dispatched from TableHead `<sp-table-checkbox-cell>`', async () => {
|
|
109
|
-
const changeSpy = spy();
|
|
110
|
-
const el = await fixture(html `
|
|
76
|
+
`),a=e.querySelector('[value="row3"] sp-table-checkbox-cell'),c=e.querySelector("sp-table-head sp-table-checkbox-cell");l(e.selected).to.deep.equal(["row1","row2"]),a.checkbox.click(),l(e.selected).to.deep.equal(["row1","row2","row3"]),l(t.calledOnce).to.be.true,l(t.calledWithExactly(e)).to.be.true,t.resetHistory(),c.checkbox.click(),l(e.selected).to.deep.equal(["row1","row2","row3","row4","row5"]),l(t.calledOnce).to.to.true,l(t.calledWithExactly(e)).to.be.true}),it("accepts change events dispatched from TableHead `<sp-table-checkbox-cell>`",async()=>{const t=r(),e=await s(p`
|
|
111
77
|
<sp-table
|
|
112
78
|
size="m"
|
|
113
79
|
selects="multiple"
|
|
114
|
-
.selected=${[
|
|
115
|
-
@change=${({
|
|
116
|
-
changeSpy(target);
|
|
117
|
-
}}
|
|
80
|
+
.selected=${["row1","row2"]}
|
|
81
|
+
@change=${({target:c})=>{t(c)}}
|
|
118
82
|
>
|
|
119
83
|
<sp-table-head>
|
|
120
84
|
<sp-table-head-cell>Column Title</sp-table-head-cell>
|
|
@@ -149,148 +113,5 @@ describe('Table', () => {
|
|
|
149
113
|
</sp-table-row>
|
|
150
114
|
</sp-table-body>
|
|
151
115
|
</sp-table>
|
|
152
|
-
`);
|
|
153
|
-
|
|
154
|
-
expect(el.selected).to.deep.equal(['row1', 'row2']);
|
|
155
|
-
expect(tableHeadCheckboxCell.checkbox.indeterminate).to.be.true;
|
|
156
|
-
expect(tableHeadCheckboxCell.checkbox.checked).to.be.false;
|
|
157
|
-
tableHeadCheckboxCell.checkbox.click();
|
|
158
|
-
await elementUpdated(el);
|
|
159
|
-
expect(changeSpy.calledOnce).to.be.true;
|
|
160
|
-
expect(changeSpy.calledWithExactly(el)).to.be.true;
|
|
161
|
-
expect(tableHeadCheckboxCell.checkbox.checked).to.be.true;
|
|
162
|
-
expect(tableHeadCheckboxCell.checkbox.indeterminate).to.be.false;
|
|
163
|
-
expect(el.selected).to.deep.equal([
|
|
164
|
-
'row1',
|
|
165
|
-
'row2',
|
|
166
|
-
'row3',
|
|
167
|
-
'row4',
|
|
168
|
-
'row5',
|
|
169
|
-
]);
|
|
170
|
-
tableHeadCheckboxCell.checkbox.click();
|
|
171
|
-
await elementUpdated(el);
|
|
172
|
-
expect(el.selected).to.deep.equal([]);
|
|
173
|
-
expect(tableHeadCheckboxCell.checkbox.checked).to.be.false;
|
|
174
|
-
expect(tableHeadCheckboxCell.checkbox.indeterminate).to.be.false;
|
|
175
|
-
});
|
|
176
|
-
it('selects items not initially visible in the <sp-table-body>', async () => {
|
|
177
|
-
const el = await fixture(elements());
|
|
178
|
-
el.selects = 'single';
|
|
179
|
-
el.selected = ['row5'];
|
|
180
|
-
await elementUpdated(el);
|
|
181
|
-
const rowFive = el.querySelector('.row5');
|
|
182
|
-
const rowFiveCheckbox = rowFive.querySelector('sp-table-checkbox-cell');
|
|
183
|
-
const checkboxes = el.querySelectorAll('sp-table-checkbox-cell:nth-child(n+1):nth-child(n+4)');
|
|
184
|
-
checkboxes.forEach((checkbox) => {
|
|
185
|
-
expect(checkbox.checkbox.checked).to.be.false;
|
|
186
|
-
});
|
|
187
|
-
el.scrollTop = el.scrollHeight;
|
|
188
|
-
await nextFrame();
|
|
189
|
-
expect(rowFiveCheckbox.checkbox.checked).to.be.true;
|
|
190
|
-
});
|
|
191
|
-
it('surfaces [selects="single"] selection', async () => {
|
|
192
|
-
const el = await fixture(selectsSingle());
|
|
193
|
-
expect(el.selected, "'Row 1 selected").to.deep.equal(['row1']);
|
|
194
|
-
});
|
|
195
|
-
it('selects via `click` while [selects="single"]', async () => {
|
|
196
|
-
const el = await fixture(selectsSingle());
|
|
197
|
-
const rowTwo = el.querySelector('.row2');
|
|
198
|
-
const rowTwoCheckbox = rowTwo.querySelector('sp-table-checkbox-cell');
|
|
199
|
-
const rowThree = el.querySelector('.row3');
|
|
200
|
-
const rowThreeCheckbox = rowThree.querySelector('sp-table-checkbox-cell');
|
|
201
|
-
rowTwoCheckbox.checkbox.click();
|
|
202
|
-
await elementUpdated(el);
|
|
203
|
-
expect(rowTwoCheckbox.checked).to.be.true;
|
|
204
|
-
expect(el.selected).to.deep.equal(['row2']);
|
|
205
|
-
rowThreeCheckbox.checkbox.click();
|
|
206
|
-
await elementUpdated(el);
|
|
207
|
-
await elementUpdated(rowTwoCheckbox); // webkit needs this
|
|
208
|
-
expect(rowThreeCheckbox.checkbox.checked).to.be.true;
|
|
209
|
-
expect(rowTwoCheckbox.checkbox.checked).to.be.false;
|
|
210
|
-
expect(el.selected.length).to.equal(1);
|
|
211
|
-
});
|
|
212
|
-
it('surfaces [selects="multiple"] selection', async () => {
|
|
213
|
-
const el = await fixture(selectsMultiple());
|
|
214
|
-
expect(el.selected, 'Rows 1 and 2 selected').to.deep.equal([
|
|
215
|
-
'row1',
|
|
216
|
-
'row2',
|
|
217
|
-
]);
|
|
218
|
-
});
|
|
219
|
-
it('selects via `click` while [selects="multiple"] selection', async () => {
|
|
220
|
-
const el = await fixture(selectsMultiple());
|
|
221
|
-
const rowFour = el.querySelector('.row4');
|
|
222
|
-
const tableHeadCheckboxCell = el.querySelector('sp-table-head sp-table-checkbox-cell');
|
|
223
|
-
const rowFourCheckbox = rowFour.querySelector('sp-table-checkbox-cell');
|
|
224
|
-
await elementUpdated(el);
|
|
225
|
-
expect(el.selected.length).to.equal(2);
|
|
226
|
-
rowFourCheckbox.checkbox.click();
|
|
227
|
-
await elementUpdated(el);
|
|
228
|
-
expect(rowFourCheckbox.checked).to.be.true;
|
|
229
|
-
expect(el.selected).to.deep.equal(['row1', 'row2', 'row4']);
|
|
230
|
-
tableHeadCheckboxCell.checkbox.click();
|
|
231
|
-
await elementUpdated(el);
|
|
232
|
-
expect(el.selected).to.deep.equal([
|
|
233
|
-
'row1',
|
|
234
|
-
'row2',
|
|
235
|
-
'row4',
|
|
236
|
-
'row3',
|
|
237
|
-
'row5',
|
|
238
|
-
]);
|
|
239
|
-
});
|
|
240
|
-
it('allows [selects] to be changed by the application', async () => {
|
|
241
|
-
const el = await fixture(elements());
|
|
242
|
-
expect(el.selects).to.be.undefined;
|
|
243
|
-
el.selects = 'single';
|
|
244
|
-
await elementUpdated(el);
|
|
245
|
-
expect(el.selects).to.equal('single');
|
|
246
|
-
await elementUpdated(el);
|
|
247
|
-
await nextFrame();
|
|
248
|
-
await nextFrame();
|
|
249
|
-
const rowTwoCheckboxCell = el.querySelector('.row2 sp-table-checkbox-cell');
|
|
250
|
-
const rowOneCheckboxCell = el.querySelector('.row1 sp-table-checkbox-cell');
|
|
251
|
-
const tableHeadCheckboxCell = el.querySelector('sp-table-head sp-table-checkbox-cell');
|
|
252
|
-
expect(tableHeadCheckboxCell.selectsSingle).to.be.true;
|
|
253
|
-
rowOneCheckboxCell.checkbox.click();
|
|
254
|
-
await elementUpdated(el);
|
|
255
|
-
expect(el.selected).to.deep.equal(['row1']);
|
|
256
|
-
expect(rowOneCheckboxCell.checkbox.checked).to.be.true;
|
|
257
|
-
expect(rowTwoCheckboxCell.checkbox.checked).to.be.false;
|
|
258
|
-
el.selects = 'multiple';
|
|
259
|
-
await elementUpdated(el);
|
|
260
|
-
expect(el.selects).to.equal('multiple');
|
|
261
|
-
expect(tableHeadCheckboxCell.indeterminate).to.be.true;
|
|
262
|
-
rowTwoCheckboxCell.checkbox.click();
|
|
263
|
-
await elementUpdated(el);
|
|
264
|
-
await elementUpdated(rowTwoCheckboxCell);
|
|
265
|
-
expect(el.selected).to.deep.equal(['row1', 'row2']);
|
|
266
|
-
expect(rowOneCheckboxCell.checkbox.checked).to.be.true;
|
|
267
|
-
expect(rowTwoCheckboxCell.checkbox.checked).to.be.true;
|
|
268
|
-
expect(tableHeadCheckboxCell.indeterminate).to.be.true;
|
|
269
|
-
});
|
|
270
|
-
it('selects a user-passed value for .selected array with no [selects] specified, but does not allow interaction afterwards', async () => {
|
|
271
|
-
const el = await fixture(noSelectsSpecified());
|
|
272
|
-
await elementUpdated(el);
|
|
273
|
-
expect(el.selected.length).to.equal(2);
|
|
274
|
-
const rows = el.querySelectorAll('sp-table-row');
|
|
275
|
-
rows.forEach((row) => {
|
|
276
|
-
const checkbox = row.querySelector('sp-table-checkbox-cell');
|
|
277
|
-
expect(checkbox).to.be.null;
|
|
278
|
-
});
|
|
279
|
-
});
|
|
280
|
-
it('allows .selected values to be changed by the application when [selects="multiple"]', async () => {
|
|
281
|
-
const el = await fixture(selectsMultiple());
|
|
282
|
-
await elementUpdated(el);
|
|
283
|
-
const rowThreeCheckboxCell = el.querySelector('.row3 sp-table-checkbox-cell');
|
|
284
|
-
const rowOneCheckboxCell = el.querySelector('.row1 sp-table-checkbox-cell');
|
|
285
|
-
expect(el.selected).to.deep.equal(['row1', 'row2']);
|
|
286
|
-
expect(rowOneCheckboxCell.checkbox.checked).to.be.true;
|
|
287
|
-
expect(rowThreeCheckboxCell.checkbox.checked).to.be.false;
|
|
288
|
-
el.selected = ['row1', 'row3'];
|
|
289
|
-
await elementUpdated(el);
|
|
290
|
-
await elementUpdated(rowThreeCheckboxCell);
|
|
291
|
-
expect(el.selected).to.deep.equal(['row1', 'row3']);
|
|
292
|
-
expect(rowOneCheckboxCell.checkbox.checked).to.be.true;
|
|
293
|
-
expect(rowThreeCheckboxCell.checkbox.checked).to.be.true;
|
|
294
|
-
});
|
|
295
|
-
});
|
|
296
|
-
//# sourceMappingURL=table.test.js.map
|
|
116
|
+
`),a=e.querySelector("sp-table-head sp-table-checkbox-cell");l(e.selected).to.deep.equal(["row1","row2"]),l(a.checkbox.indeterminate).to.be.true,l(a.checkbox.checked).to.be.false,a.checkbox.click(),await b(e),l(t.calledOnce).to.be.true,l(t.calledWithExactly(e)).to.be.true,l(a.checkbox.checked).to.be.true,l(a.checkbox.indeterminate).to.be.false,l(e.selected).to.deep.equal(["row1","row2","row3","row4","row5"]),a.checkbox.click(),await b(e),l(e.selected).to.deep.equal([]),l(a.checkbox.checked).to.be.false,l(a.checkbox.indeterminate).to.be.false})});
|
|
117
|
+
//# sourceMappingURL=table.test.js.map
|