@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.
- package/README.md +5 -5
- package/custom-elements.json +20 -0
- package/elements.dev.js +9 -0
- package/elements.dev.js.map +7 -0
- package/elements.js +2 -19
- package/elements.js.map +7 -1
- package/package.json +80 -18
- package/sp-table-body.dev.js +4 -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 +4 -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 +4 -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 +4 -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 +4 -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 +4 -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 +4 -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 +1 -0
- package/src/Table.dev.js +392 -0
- package/src/Table.dev.js.map +7 -0
- package/src/Table.js +13 -383
- package/src/Table.js.map +7 -1
- package/src/TableBody.d.ts +2 -0
- package/src/TableBody.dev.js +55 -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 +36 -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.dev.js +71 -0
- package/src/TableCheckboxCell.dev.js.map +7 -0
- package/src/TableCheckboxCell.js +4 -62
- package/src/TableCheckboxCell.js.map +7 -1
- package/src/TableHead.dev.js +55 -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 +93 -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.dev.js +104 -0
- package/src/TableRow.dev.js.map +7 -0
- package/src/TableRow.js +3 -96
- package/src/TableRow.js.map +7 -1
- package/src/index.d.ts +6 -0
- package/src/index.dev.js +9 -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 +17 -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 +27 -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 +13 -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 +61 -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 +7 -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 +33 -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 +513 -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 +17 -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 +27 -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 +13 -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 +61 -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 +7 -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 +33 -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 +513 -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 +17 -27
- package/stories/index.js.map +7 -1
- package/stories/table-elements.stories.js +58 -102
- package/stories/table-elements.stories.js.map +7 -1
- package/stories/table-virtualized.stories.js +142 -128
- package/stories/table-virtualized.stories.js.map +7 -1
- package/test/benchmark/basic-test.js +7 -17
- package/test/benchmark/basic-test.js.map +7 -1
- package/test/table-elements.test-vrt.js +5 -15
- package/test/table-elements.test-vrt.js.map +7 -1
- package/test/table-selects.test.js +193 -170
- package/test/table-selects.test.js.map +7 -1
- package/test/table-virtualized.test-vrt.js +5 -15
- package/test/table-virtualized.test-vrt.js.map +7 -1
- package/test/table.test.js +117 -101
- package/test/table.test.js.map +7 -1
- package/test/virtualized-table-selects.test.js +386 -300
- package/test/virtualized-table-selects.test.js.map +7 -1
- package/test/virtualized-table.test.js +213 -182
- package/test/virtualized-table.test.js.map +7 -1
|
@@ -1,75 +1,73 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
import {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
import
|
|
18
|
-
import
|
|
19
|
-
import
|
|
20
|
-
import
|
|
21
|
-
import
|
|
22
|
-
import
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __decorateClass = (decorators, target, key, kind) => {
|
|
5
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
6
|
+
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
7
|
+
if (decorator = decorators[i])
|
|
8
|
+
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
9
|
+
if (kind && result)
|
|
10
|
+
__defProp(target, key, result);
|
|
11
|
+
return result;
|
|
12
|
+
};
|
|
13
|
+
import {
|
|
14
|
+
html,
|
|
15
|
+
SpectrumElement
|
|
16
|
+
} from "@spectrum-web-components/base";
|
|
17
|
+
import { property } from "@spectrum-web-components/base/src/decorators.js";
|
|
18
|
+
import "@spectrum-web-components/table/sp-table.js";
|
|
19
|
+
import "@spectrum-web-components/table/sp-table-checkbox-cell.js";
|
|
20
|
+
import "@spectrum-web-components/table/sp-table-head.js";
|
|
21
|
+
import "@spectrum-web-components/table/sp-table-head-cell.js";
|
|
22
|
+
import "@spectrum-web-components/table/sp-table-body.js";
|
|
23
|
+
import "@spectrum-web-components/table/sp-table-row.js";
|
|
24
|
+
import "@spectrum-web-components/table/sp-table-cell.js";
|
|
25
|
+
import { makeItems, renderItem } from "./index.js";
|
|
23
26
|
export default {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
},
|
|
34
|
-
selects: {
|
|
35
|
-
name: 'selects',
|
|
36
|
-
description: 'If the Table accepts a "single" or "multiple" selection.',
|
|
37
|
-
control: {
|
|
38
|
-
type: 'inline-radio',
|
|
39
|
-
options: ['', 'single', 'multiple'],
|
|
40
|
-
},
|
|
41
|
-
},
|
|
42
|
-
},
|
|
43
|
-
args: {
|
|
44
|
-
selects: '',
|
|
45
|
-
selected: [],
|
|
27
|
+
title: "Table/Virtualized",
|
|
28
|
+
component: "sp-table",
|
|
29
|
+
argTypes: {
|
|
30
|
+
onChange: { action: "change" },
|
|
31
|
+
selected: {
|
|
32
|
+
name: "selected",
|
|
33
|
+
description: "The array of item values selected by the Table.",
|
|
34
|
+
type: { name: "", required: false },
|
|
35
|
+
control: "text"
|
|
46
36
|
},
|
|
37
|
+
selects: {
|
|
38
|
+
name: "selects",
|
|
39
|
+
description: 'If the Table accepts a "single" or "multiple" selection.',
|
|
40
|
+
control: {
|
|
41
|
+
type: "inline-radio",
|
|
42
|
+
options: ["", "single", "multiple"]
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
args: {
|
|
47
|
+
selects: "",
|
|
48
|
+
selected: []
|
|
49
|
+
}
|
|
47
50
|
};
|
|
48
51
|
class VirtualTable extends SpectrumElement {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
};
|
|
69
|
-
this.items.sort(this.compareItems('name', 'desc'));
|
|
70
|
-
}
|
|
71
|
-
render() {
|
|
72
|
-
return html `
|
|
52
|
+
constructor() {
|
|
53
|
+
super();
|
|
54
|
+
this.items = makeItems(50);
|
|
55
|
+
this.compareItems = (sortKey, sortDirection) => (a, b) => {
|
|
56
|
+
const doSortKey = sortKey;
|
|
57
|
+
if (!isNaN(Number(a[doSortKey]))) {
|
|
58
|
+
const first = Number(a[doSortKey]);
|
|
59
|
+
const second = Number(b[doSortKey]);
|
|
60
|
+
return sortDirection === "asc" ? first - second : second - first;
|
|
61
|
+
} else {
|
|
62
|
+
const first = String(a[doSortKey]);
|
|
63
|
+
const second = String(b[doSortKey]);
|
|
64
|
+
return sortDirection === "asc" ? first.localeCompare(second) : second.localeCompare(first);
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
this.items.sort(this.compareItems("name", "desc"));
|
|
68
|
+
}
|
|
69
|
+
render() {
|
|
70
|
+
return html`
|
|
73
71
|
<sp-table
|
|
74
72
|
aria-rowcount="50"
|
|
75
73
|
.items=${this.items}
|
|
@@ -78,12 +76,16 @@ class VirtualTable extends SpectrumElement {
|
|
|
78
76
|
scroller="true"
|
|
79
77
|
style="height: 200px"
|
|
80
78
|
@sorted=${(event) => {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
79
|
+
const { sortKey, sortDirection } = event.detail;
|
|
80
|
+
const items = [...this.items];
|
|
81
|
+
items.sort(
|
|
82
|
+
this.compareItems(
|
|
83
|
+
sortKey,
|
|
84
|
+
sortDirection
|
|
85
|
+
)
|
|
86
|
+
);
|
|
87
|
+
this.items = items;
|
|
88
|
+
}}
|
|
87
89
|
>
|
|
88
90
|
<sp-table-head>
|
|
89
91
|
<sp-table-head-cell
|
|
@@ -100,24 +102,23 @@ class VirtualTable extends SpectrumElement {
|
|
|
100
102
|
</sp-table-head>
|
|
101
103
|
</sp-table>
|
|
102
104
|
`;
|
|
103
|
-
|
|
105
|
+
}
|
|
104
106
|
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
], VirtualTable.prototype, "items",
|
|
108
|
-
customElements.define(
|
|
107
|
+
__decorateClass([
|
|
108
|
+
property({ type: Array })
|
|
109
|
+
], VirtualTable.prototype, "items", 2);
|
|
110
|
+
customElements.define("virtual-table", VirtualTable);
|
|
109
111
|
const virtualItems = makeItems(50);
|
|
110
112
|
export const virtualized = () => {
|
|
111
|
-
|
|
113
|
+
return html`
|
|
112
114
|
<virtual-table></virtual-table>
|
|
113
115
|
`;
|
|
114
116
|
};
|
|
115
117
|
export const virtualizedSingle = (args) => {
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
return html `
|
|
118
|
+
const onChange = args.onChange || (() => {
|
|
119
|
+
return;
|
|
120
|
+
});
|
|
121
|
+
return html`
|
|
121
122
|
<sp-table
|
|
122
123
|
size="m"
|
|
123
124
|
scroller="true"
|
|
@@ -125,21 +126,23 @@ export const virtualizedSingle = (args) => {
|
|
|
125
126
|
selects=${args.selects}
|
|
126
127
|
.selected=${args.selected}
|
|
127
128
|
@change=${({ target }) => {
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
129
|
+
const next = target.nextElementSibling;
|
|
130
|
+
next.textContent = `Selected: ${JSON.stringify(
|
|
131
|
+
target.selected
|
|
132
|
+
)}`;
|
|
133
|
+
}}
|
|
131
134
|
.items=${virtualItems}
|
|
132
135
|
.renderItem=${renderItem}
|
|
133
136
|
@visibilityChanged=${(event) => onChange({
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
137
|
+
first: event.first,
|
|
138
|
+
last: event.last,
|
|
139
|
+
type: "visibility"
|
|
140
|
+
})}
|
|
138
141
|
@rangeChanged=${(event) => onChange({
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
142
|
+
first: event.first,
|
|
143
|
+
last: event.last,
|
|
144
|
+
type: "range"
|
|
145
|
+
})}
|
|
143
146
|
>
|
|
144
147
|
<sp-table-head>
|
|
145
148
|
<sp-table-head-cell>Column Title</sp-table-head-cell>
|
|
@@ -151,11 +154,11 @@ export const virtualizedSingle = (args) => {
|
|
|
151
154
|
`;
|
|
152
155
|
};
|
|
153
156
|
virtualizedSingle.args = {
|
|
154
|
-
|
|
155
|
-
|
|
157
|
+
selects: "single",
|
|
158
|
+
selected: ["49"]
|
|
156
159
|
};
|
|
157
160
|
export const virtualizedMultiple = (args) => {
|
|
158
|
-
|
|
161
|
+
return html`
|
|
159
162
|
<sp-table
|
|
160
163
|
size="m"
|
|
161
164
|
scroller="true"
|
|
@@ -163,12 +166,15 @@ export const virtualizedMultiple = (args) => {
|
|
|
163
166
|
selects=${args.selects}
|
|
164
167
|
.selected=${args.selected}
|
|
165
168
|
@change=${({ target }) => {
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
169
|
+
const next = target.nextElementSibling;
|
|
170
|
+
next.textContent = `Selected: ${JSON.stringify(
|
|
171
|
+
target.selected,
|
|
172
|
+
null,
|
|
173
|
+
" "
|
|
174
|
+
)}`;
|
|
175
|
+
const nextNext = next.nextElementSibling;
|
|
176
|
+
nextNext.textContent = `Selected Count: ${target.selected.length}`;
|
|
177
|
+
}}
|
|
172
178
|
.items=${virtualItems}
|
|
173
179
|
.renderItem=${renderItem}
|
|
174
180
|
>
|
|
@@ -183,11 +189,11 @@ export const virtualizedMultiple = (args) => {
|
|
|
183
189
|
`;
|
|
184
190
|
};
|
|
185
191
|
virtualizedMultiple.args = {
|
|
186
|
-
|
|
187
|
-
|
|
192
|
+
selects: "multiple",
|
|
193
|
+
selected: ["0", "48"]
|
|
188
194
|
};
|
|
189
195
|
export const virtualizedCustomValue = (args) => {
|
|
190
|
-
|
|
196
|
+
return html`
|
|
191
197
|
<sp-table
|
|
192
198
|
size="m"
|
|
193
199
|
scroller="true"
|
|
@@ -196,7 +202,7 @@ export const virtualizedCustomValue = (args) => {
|
|
|
196
202
|
.selected=${args.selected}
|
|
197
203
|
@change=${args.onChange}
|
|
198
204
|
.items=${virtualItems}
|
|
199
|
-
.itemValue=${(item) =>
|
|
205
|
+
.itemValue=${(item) => "applied-" + item.date}
|
|
200
206
|
.renderItem=${renderItem}
|
|
201
207
|
>
|
|
202
208
|
<sp-table-head>
|
|
@@ -211,18 +217,22 @@ export const virtualizedCustomValue = (args) => {
|
|
|
211
217
|
`;
|
|
212
218
|
};
|
|
213
219
|
virtualizedCustomValue.args = {
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
220
|
+
selected: ["0", "48", "applied-47"],
|
|
221
|
+
selects: "multiple",
|
|
222
|
+
onChange: ({ target }) => {
|
|
223
|
+
const next = target.nextElementSibling;
|
|
224
|
+
next.textContent = `Selected: ${JSON.stringify(
|
|
225
|
+
target.selected,
|
|
226
|
+
null,
|
|
227
|
+
" "
|
|
228
|
+
)}`;
|
|
229
|
+
const nextNext = next.nextElementSibling;
|
|
230
|
+
nextNext.textContent = `Selected Count: ${target.selected.length}`;
|
|
231
|
+
}
|
|
222
232
|
};
|
|
223
233
|
export const virtualizedCustomRow = (args) => {
|
|
224
|
-
|
|
225
|
-
|
|
234
|
+
virtualItems.splice(3, 1, { name: "Scoobert", date: 2, _$rowType$: 1 });
|
|
235
|
+
return html`
|
|
226
236
|
<sp-table
|
|
227
237
|
size="m"
|
|
228
238
|
scroller="true"
|
|
@@ -230,11 +240,15 @@ export const virtualizedCustomRow = (args) => {
|
|
|
230
240
|
selects=${args.selects}
|
|
231
241
|
.selected=${args.selected}
|
|
232
242
|
@change=${({ target }) => {
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
243
|
+
const next = target.nextElementSibling;
|
|
244
|
+
next.textContent = `Selected: ${JSON.stringify(
|
|
245
|
+
target.selected,
|
|
246
|
+
null,
|
|
247
|
+
" "
|
|
248
|
+
)}`;
|
|
249
|
+
const nextNext = next.nextElementSibling;
|
|
250
|
+
nextNext.textContent = `Selected Count: ${target.selected.length}`;
|
|
251
|
+
}}
|
|
238
252
|
scroller?="false"
|
|
239
253
|
.items=${virtualItems}
|
|
240
254
|
.renderItem=${renderItem}
|
|
@@ -250,11 +264,11 @@ export const virtualizedCustomRow = (args) => {
|
|
|
250
264
|
`;
|
|
251
265
|
};
|
|
252
266
|
virtualizedCustomRow.args = {
|
|
253
|
-
|
|
254
|
-
|
|
267
|
+
selects: "multiple",
|
|
268
|
+
selected: ["0", "48"]
|
|
255
269
|
};
|
|
256
270
|
export const virtualizedNoScroller = () => {
|
|
257
|
-
|
|
271
|
+
return html`
|
|
258
272
|
<sp-table size="m" .items=${virtualItems} .renderItem=${renderItem}>
|
|
259
273
|
<sp-table-head>
|
|
260
274
|
<sp-table-head-cell>Column Title</sp-table-head-cell>
|
|
@@ -264,4 +278,4 @@ export const virtualizedNoScroller = () => {
|
|
|
264
278
|
</sp-table>
|
|
265
279
|
`;
|
|
266
280
|
};
|
|
267
|
-
//# sourceMappingURL=table-virtualized.stories.js.map
|
|
281
|
+
//# sourceMappingURL=table-virtualized.stories.js.map
|
|
@@ -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 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"]}
|
|
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 '@spectrum-web-components/table/sp-table.js';\nimport '@spectrum-web-components/table/sp-table-checkbox-cell.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 { Item, makeItems, Properties, renderItem } from './index.js';\nimport type {\n RangeChangedEvent,\n SortedEventDetails,\n Table,\n} from '@spectrum-web-components/table';\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 .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,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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
|
+
"use strict";
|
|
2
|
+
import "@spectrum-web-components/table/sp-table.js";
|
|
3
|
+
import { html } from "@spectrum-web-components/base";
|
|
4
|
+
import { measureFixtureCreation } from "../../../../test/benchmark/helpers.js";
|
|
5
|
+
measureFixtureCreation(html`
|
|
16
6
|
<sp-table
|
|
17
7
|
size="m"
|
|
18
8
|
style="height: 200px"
|
|
19
9
|
selects="multiple"
|
|
20
|
-
.selected=${[
|
|
10
|
+
.selected=${["row1", "row2"]}
|
|
21
11
|
>
|
|
22
12
|
<sp-table-head>
|
|
23
13
|
<sp-table-head-cell>Column Title</sp-table-head-cell>
|
|
@@ -53,4 +43,4 @@ measureFixtureCreation(html `
|
|
|
53
43
|
</sp-table-body>
|
|
54
44
|
</sp-table>
|
|
55
45
|
`);
|
|
56
|
-
//# sourceMappingURL=basic-test.js.map
|
|
46
|
+
//# 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,OAAO;AACP,SAAS,YAAY;AACrB,SAAS,8BAA8B;AAEvC,uBAAuB;AAAA;AAAA;AAAA;AAAA;AAAA,oBAKH,CAAC,QAAQ,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,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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
|
+
"use strict";
|
|
2
|
+
import * as stories from "../stories/table-elements.stories.js";
|
|
3
|
+
import { regressVisuals } from "../../../test/visual/test.js";
|
|
4
|
+
regressVisuals("TableElementsStories", stories);
|
|
5
|
+
//# 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,YAAY,aAAa;AACzB,SAAS,sBAAsB;AAE/B,eAAe,wBAAwB,OAAO;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|