@fusion.dev/helix-headless 0.23.0 → 0.24.1
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/custom-elements.json +50579 -26954
- package/dist/announcement/root/announcement-root.d.ts +19 -5
- package/dist/area-chart/index.d.ts +1 -0
- package/dist/area-chart/index.js +1 -0
- package/dist/area-chart/root/area-chart-root.d.ts +182 -0
- package/dist/area-chart/root/area-chart-root.js +205 -0
- package/dist/avatar/group/avatar-group.d.ts +1 -0
- package/dist/avatar/group/avatar-group.js +5 -1
- package/dist/avatar/root/avatar-root.d.ts +1 -0
- package/dist/avatar/root/avatar-root.js +11 -0
- package/dist/carousel/root/carousel-root.d.ts +3 -0
- package/dist/carousel/root/carousel-root.js +23 -4
- package/dist/chat/index.d.ts +1 -1
- package/dist/chat/message/chat-message.d.ts +7 -0
- package/dist/chat/message/chat-message.js +2 -1
- package/dist/chat/root/chat-root.d.ts +195 -4
- package/dist/chat/root/chat-root.js +316 -23
- package/dist/checkbox-group/root/checkbox-group-root.d.ts +2 -0
- package/dist/checkbox-group/root/checkbox-group-root.js +12 -2
- package/dist/code-block/index.d.ts +1 -0
- package/dist/code-block/index.js +1 -0
- package/dist/code-block/patch.d.ts +62 -0
- package/dist/code-block/patch.js +93 -0
- package/dist/code-block/root/code-block-root.d.ts +82 -17
- package/dist/code-block/root/code-block-root.js +83 -6
- package/dist/color-picker/root/color-picker-root.d.ts +4 -3
- package/dist/color-picker/root/color-picker-root.js +4 -1
- package/dist/combobox/root/combobox-root.d.ts +1 -0
- package/dist/combobox/root/combobox-root.js +6 -1
- package/dist/command/root/command-root.d.ts +7 -0
- package/dist/command/root/command-root.js +10 -0
- package/dist/data-table/root/data-table-root.d.ts +195 -23
- package/dist/data-table/root/data-table-root.js +308 -27
- package/dist/description-list/index.d.ts +2 -0
- package/dist/description-list/index.js +2 -0
- package/dist/description-list/item/description-list-item.d.ts +39 -0
- package/dist/description-list/item/description-list-item.js +26 -0
- package/dist/description-list/root/description-list-root.d.ts +56 -0
- package/dist/description-list/root/description-list-root.js +21 -0
- package/dist/element-events.generated.js +27 -6
- package/dist/filter-input/chip/filter-chip.d.ts +114 -0
- package/dist/filter-input/chip/filter-chip.js +61 -0
- package/dist/filter-input/field/filter-field.d.ts +128 -0
- package/dist/filter-input/field/filter-field.js +70 -0
- package/dist/filter-input/grammar.d.ts +96 -0
- package/dist/filter-input/grammar.js +133 -0
- package/dist/filter-input/index.d.ts +5 -0
- package/dist/filter-input/index.js +5 -0
- package/dist/filter-input/menu/filter-menu.d.ts +153 -0
- package/dist/filter-input/menu/filter-menu.js +164 -0
- package/dist/filter-input/operator/filter-operator.d.ts +105 -0
- package/dist/filter-input/operator/filter-operator.js +39 -0
- package/dist/filter-input/root/filter-input-root.d.ts +118 -9
- package/dist/filter-input/root/filter-input-root.js +96 -2
- package/dist/format-date/root/format-date-root.js +5 -2
- package/dist/image/root/image-root.d.ts +9 -0
- package/dist/image/root/image-root.js +16 -3
- package/dist/index.d.ts +5 -0
- package/dist/index.js +5 -0
- package/dist/kbd/root/kbd-root.d.ts +9 -2
- package/dist/kbd/root/kbd-root.js +7 -2
- package/dist/line-chart/root/line-chart-root.d.ts +9 -2
- package/dist/listbox/root/listbox-root.d.ts +8 -7
- package/dist/listbox/root/listbox-root.js +7 -2
- package/dist/menu/item/menu-item.d.ts +31 -6
- package/dist/menu/item/menu-item.js +18 -5
- package/dist/menu/root/menu-root.js +7 -2
- package/dist/notifications/group/notification-group.d.ts +129 -0
- package/dist/notifications/group/notification-group.js +106 -0
- package/dist/notifications/index.d.ts +1 -0
- package/dist/notifications/index.js +1 -0
- package/dist/notifications/notification/notification.d.ts +39 -13
- package/dist/notifications/notification/notification.js +11 -8
- package/dist/notifications/root/notifications-root.d.ts +57 -1
- package/dist/notifications/root/notifications-root.js +35 -4
- package/dist/number-input/root/number-input-root.d.ts +21 -1
- package/dist/number-input/root/number-input-root.js +18 -5
- package/dist/object-inspector/index.d.ts +1 -0
- package/dist/object-inspector/index.js +1 -0
- package/dist/object-inspector/root/object-inspector-root.d.ts +183 -0
- package/dist/object-inspector/root/object-inspector-root.js +348 -0
- package/dist/option/root/option-root.d.ts +17 -0
- package/dist/option/root/option-root.js +4 -0
- package/dist/outline/root/outline-root.d.ts +16 -1
- package/dist/outline/root/outline-root.js +27 -9
- package/dist/qr-code/root/qr-code-root.d.ts +3 -1
- package/dist/qr-code/root/qr-code-root.js +11 -1
- package/dist/radio/group/radio-group.d.ts +1 -0
- package/dist/rating/root/rating-root.d.ts +3 -0
- package/dist/rating/root/rating-root.js +9 -0
- package/dist/scatter-chart/index.d.ts +1 -0
- package/dist/scatter-chart/index.js +1 -0
- package/dist/scatter-chart/root/scatter-chart-root.d.ts +144 -0
- package/dist/scatter-chart/root/scatter-chart-root.js +205 -0
- package/dist/select/root/select-root.d.ts +8 -0
- package/dist/select/root/select-root.js +8 -6
- package/dist/skip-link/index.d.ts +1 -0
- package/dist/skip-link/index.js +1 -0
- package/dist/skip-link/root/skip-link-root.d.ts +81 -0
- package/dist/skip-link/root/skip-link-root.js +58 -0
- package/dist/speed-dial/root/speed-dial-root.d.ts +1 -0
- package/dist/speed-dial/root/speed-dial-root.js +6 -2
- package/dist/steps/root/steps-root.d.ts +1 -0
- package/dist/steps/root/steps-root.js +5 -2
- package/dist/table/column/table-column.d.ts +79 -0
- package/dist/table/column/table-column.js +125 -5
- package/dist/table/root/table-root.d.ts +2 -0
- package/dist/table/root/table-root.js +12 -3
- package/dist/time-picker/root/time-picker-root.d.ts +9 -0
- package/dist/time-picker/root/time-picker-root.js +5 -0
- package/dist/toast/root/toast-root.d.ts +2 -0
- package/dist/tooltip/root/tooltip-root.js +1 -1
- package/dist/tour/root/tour-root.d.ts +14 -0
- package/dist/tour/root/tour-root.js +43 -18
- package/dist/tree/item/tree-item.d.ts +7 -4
- package/dist/tree/item/tree-item.js +4 -1
- package/dist/video/root/video-root.d.ts +23 -1
- package/dist/video/root/video-root.js +46 -23
- package/dist/virtual-list/root/virtual-list-root.d.ts +10 -6
- package/dist/virtual-list/root/virtual-list-root.js +10 -4
- package/package.json +5 -5
- package/types/jsx.d.ts +4536 -346
- package/types/svelte.d.ts +11 -0
- package/types/vue.d.ts +738 -39
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { HelixElement } from '@fusion.dev/helix-core';
|
|
2
2
|
import { type PropertyValues, type TemplateResult } from 'lit';
|
|
3
|
-
import type
|
|
3
|
+
import { type HelixHeadlessTableColumn } from '../../table/column/table-column.js';
|
|
4
|
+
import '../../checkbox/index.js';
|
|
4
5
|
import '../../pagination/index.js';
|
|
5
6
|
import { type DataRow } from './order.js';
|
|
6
7
|
declare const HelixHeadlessDataTable_base: (new (...args: any[]) => import("@fusion.dev/helix-core").CollectionElement) & typeof HelixElement;
|
|
@@ -32,6 +33,25 @@ declare const HelixHeadlessDataTable_base: (new (...args: any[]) => import("@fus
|
|
|
32
33
|
* right shape with nothing in it. That is the cost of the first paragraph: use
|
|
33
34
|
* `helix-table` where the served HTML has to carry the values.
|
|
34
35
|
*
|
|
36
|
+
* **`selectable` adds a column of checkboxes, keyed on `row-key`.** A row is
|
|
37
|
+
* selected by its identity rather than its position, so a selection survives a
|
|
38
|
+
* sort, a filter and a page. `selected` is the chosen keys, comma separated, the
|
|
39
|
+
* shape Listbox uses for a multiple choice, and like `sort` it is controlled
|
|
40
|
+
* when set and seeded by `default-selected`. The box in the heading selects every
|
|
41
|
+
* row in the result, across pages, and shows a dash while only some are chosen.
|
|
42
|
+
* Choosing one of many, rather than several, is opening a row, and that is a
|
|
43
|
+
* link or a button in a cell rather than a selection.
|
|
44
|
+
*
|
|
45
|
+
* **A reader can size and order the columns.** `resizable` on a column puts a
|
|
46
|
+
* separator on its edge; `reorderable` on the table puts a grip on each heading
|
|
47
|
+
* that has a `field`, moved by dragging or with the arrow keys. The order lands
|
|
48
|
+
* in `order` as fields, and the consumer's own markup is never rewritten: the
|
|
49
|
+
* table assigns the headings to its header in that order instead.
|
|
50
|
+
*
|
|
51
|
+
* **`csv()` hands back the result as text**: every row the filter lets through,
|
|
52
|
+
* in the order on screen, in the columns on screen. Saving it is the page's
|
|
53
|
+
* business, the same as any other file.
|
|
54
|
+
*
|
|
35
55
|
* @since 0.1.0
|
|
36
56
|
* @status experimental
|
|
37
57
|
* @category data
|
|
@@ -44,17 +64,29 @@ declare const HelixHeadlessDataTable_base: (new (...args: any[]) => import("@fus
|
|
|
44
64
|
*
|
|
45
65
|
* @event {HelixFilterEvent} helix-filter - Fired when the query changes, and cancelable.
|
|
46
66
|
* @event {HelixNavigateEvent} helix-navigate - Fired when a reader asks for another page, and cancelable.
|
|
67
|
+
* @event {HelixReorderEvent} helix-reorder - Fired when a reader asks for the columns in another order, with every field in the new one, and cancelable.
|
|
68
|
+
* @event {HelixSelectEvent} helix-select - Fired when a reader changes which rows are selected, with every selected key comma separated, and cancelable.
|
|
47
69
|
* @event {HelixSortEvent} helix-sort - Fired when a reader asks for a different order, and cancelable.
|
|
48
70
|
*
|
|
49
71
|
* @csspart after - The room the rows below the window would have taken. Windowed only.
|
|
50
72
|
* @csspart before - The room the rows above the window would have taken. Windowed only.
|
|
51
73
|
* @csspart cell - One cell.
|
|
74
|
+
* @csspart checkbox - A row's checkbox, or the one in the heading that selects them all.
|
|
75
|
+
* @csspart checkbox-box - The frame the checkbox's input is painted as.
|
|
76
|
+
* @csspart checkbox-control - The checkbox's input.
|
|
77
|
+
* @csspart checkbox-feedback - Forwarded from the checkbox, and never drawn here.
|
|
78
|
+
* @csspart checkbox-field - The row the checkbox's box sits in.
|
|
79
|
+
* @csspart checkbox-hint - Forwarded from the checkbox, and never drawn here.
|
|
80
|
+
* @csspart checkbox-label - Forwarded from the checkbox; the label is spoken, not shown.
|
|
81
|
+
* @csspart checkbox-mark - The tick, or the dash while some rows are selected.
|
|
52
82
|
* @csspart empty - Shown when no rows match.
|
|
53
83
|
* @csspart footer - The region below the grid.
|
|
54
84
|
* @csspart head - The row the column headings sit in. `display: contents`, so it takes no space.
|
|
55
85
|
* @csspart loading - Shown while the rows are still on their way.
|
|
56
86
|
* @csspart pagination - The pagination, where this draws one.
|
|
57
87
|
* @csspart row - One row of data.
|
|
88
|
+
* @csspart select - The cell holding a row's checkbox.
|
|
89
|
+
* @csspart select-all - The heading holding the checkbox that selects every row.
|
|
58
90
|
* @csspart table - The grid.
|
|
59
91
|
* @csspart toolbar - The region above the grid.
|
|
60
92
|
*
|
|
@@ -75,6 +107,10 @@ export declare class HelixHeadlessDataTable extends HelixHeadlessDataTable_base
|
|
|
75
107
|
* Query to open with, where nothing declared one.
|
|
76
108
|
*/
|
|
77
109
|
defaultFilter: string;
|
|
110
|
+
/**
|
|
111
|
+
* Column order to open with, where nothing declared one.
|
|
112
|
+
*/
|
|
113
|
+
defaultOrder: string;
|
|
78
114
|
/**
|
|
79
115
|
* Page to open on, where nothing declared one.
|
|
80
116
|
*/
|
|
@@ -83,6 +119,10 @@ export declare class HelixHeadlessDataTable extends HelixHeadlessDataTable_base
|
|
|
83
119
|
* Page size to open with, where nothing declared one.
|
|
84
120
|
*/
|
|
85
121
|
defaultPageSize: number;
|
|
122
|
+
/**
|
|
123
|
+
* Keys to open with selected, comma separated, where nothing declared any.
|
|
124
|
+
*/
|
|
125
|
+
defaultSelected: string;
|
|
86
126
|
/**
|
|
87
127
|
* Order to open on, where nothing declared one.
|
|
88
128
|
*/
|
|
@@ -107,16 +147,9 @@ export declare class HelixHeadlessDataTable extends HelixHeadlessDataTable_base
|
|
|
107
147
|
get sort(): string;
|
|
108
148
|
set sort(next: string);
|
|
109
149
|
/**
|
|
110
|
-
*
|
|
111
|
-
*
|
|
112
|
-
* **Needed before selection exists, not after.** Lit keys the rendered rows by
|
|
113
|
-
* it, so a sort moves a row's element rather than rewriting every cell in
|
|
114
|
-
* place, which is what keeps focus inside a cell and keeps a CSS transition
|
|
115
|
-
* attached to the row it belongs to. Left unset the index is the key, which is
|
|
116
|
-
* correct only while nothing reorders: it is why this defaults to something
|
|
117
|
-
* that works and is worth setting anyway.
|
|
150
|
+
* Accessible name for the grid.
|
|
118
151
|
*/
|
|
119
|
-
|
|
152
|
+
label: string;
|
|
120
153
|
/**
|
|
121
154
|
* What the rows are narrowed to, as one query across every column.
|
|
122
155
|
*
|
|
@@ -127,9 +160,16 @@ export declare class HelixHeadlessDataTable extends HelixHeadlessDataTable_base
|
|
|
127
160
|
get filter(): string;
|
|
128
161
|
set filter(next: string);
|
|
129
162
|
/**
|
|
130
|
-
*
|
|
163
|
+
* Whether this element does the work or asks the consumer to.
|
|
164
|
+
*
|
|
165
|
+
* `client` filters, sorts and pages `rows` itself. `server` applies none of
|
|
166
|
+
* them: `rows` is the page, `total` is the size of the whole result, and the
|
|
167
|
+
* three events are requests the consumer answers by fetching. Past some size
|
|
168
|
+
* the client cannot hold the data, so this is not an optimization, it is the
|
|
169
|
+
* only mode that works, and it is here from the start because adding it later
|
|
170
|
+
* inverts the data flow.
|
|
131
171
|
*/
|
|
132
|
-
|
|
172
|
+
mode: 'client' | 'server';
|
|
133
173
|
/**
|
|
134
174
|
* The page on show, from 1.
|
|
135
175
|
*
|
|
@@ -140,16 +180,38 @@ export declare class HelixHeadlessDataTable extends HelixHeadlessDataTable_base
|
|
|
140
180
|
get page(): number;
|
|
141
181
|
set page(next: number);
|
|
142
182
|
/**
|
|
143
|
-
* Whether
|
|
183
|
+
* Whether a reader may move the columns.
|
|
144
184
|
*
|
|
145
|
-
* `
|
|
146
|
-
*
|
|
147
|
-
* three events are requests the consumer answers by fetching. Past some size
|
|
148
|
-
* the client cannot hold the data, so this is not an optimization, it is the
|
|
149
|
-
* only mode that works, and it is here from the start because adding it later
|
|
150
|
-
* inverts the data flow.
|
|
185
|
+
* Each heading with a `field` gets a grip, dragged along the header or moved a
|
|
186
|
+
* place at a time with the arrow keys once it has focus.
|
|
151
187
|
*/
|
|
152
|
-
|
|
188
|
+
reorderable: boolean;
|
|
189
|
+
/**
|
|
190
|
+
* The columns' order, as their fields separated by spaces.
|
|
191
|
+
*
|
|
192
|
+
* A reader's move fires `helix-reorder` first, and refusing it leaves the
|
|
193
|
+
* columns where they were, which is how a consumer who stores the order takes
|
|
194
|
+
* the decision. `default-order` seeds an order this element then owns. A field not named
|
|
195
|
+
* keeps its place after the named ones, and a column with no field never
|
|
196
|
+
* moves.
|
|
197
|
+
*/
|
|
198
|
+
get order(): string;
|
|
199
|
+
set order(next: string);
|
|
200
|
+
/**
|
|
201
|
+
* The field naming a row's stable identity.
|
|
202
|
+
*
|
|
203
|
+
* **Needed before selection exists, not after.** Lit keys the rendered rows by
|
|
204
|
+
* it, so a sort moves a row's element rather than rewriting every cell in
|
|
205
|
+
* place, which is what keeps focus inside a cell and keeps a CSS transition
|
|
206
|
+
* attached to the row it belongs to. Left unset the index is the key, which is
|
|
207
|
+
* correct only while nothing reorders: it is why this defaults to something
|
|
208
|
+
* that works and is worth setting anyway.
|
|
209
|
+
*
|
|
210
|
+
* **`row-key` and not `key`**, which is what it was called until selection
|
|
211
|
+
* needed it from React: `key` is reserved there, and a JSX `key` never reaches
|
|
212
|
+
* the element, so a React page could not tell the table which field a row is.
|
|
213
|
+
*/
|
|
214
|
+
rowKey: string;
|
|
153
215
|
/**
|
|
154
216
|
* The whole result, in the order it arrived.
|
|
155
217
|
*
|
|
@@ -162,6 +224,24 @@ export declare class HelixHeadlessDataTable extends HelixHeadlessDataTable_base
|
|
|
162
224
|
* holds and reordering it under them is a mutation they did not ask for.
|
|
163
225
|
*/
|
|
164
226
|
rows: readonly DataRow[];
|
|
227
|
+
/**
|
|
228
|
+
* Whether a reader may select rows, with a column of checkboxes.
|
|
229
|
+
*
|
|
230
|
+
* Wants `row-key`: a selection is a set of identities, and without one the rows
|
|
231
|
+
* are known by their place in the result, which a sort changes.
|
|
232
|
+
*/
|
|
233
|
+
selectable: boolean;
|
|
234
|
+
/**
|
|
235
|
+
* The keys of the selected rows, comma separated.
|
|
236
|
+
*
|
|
237
|
+
* A string rather than an array, so it is an attribute a server writes and a
|
|
238
|
+
* framework's hydration keeps, and the shape a multiple Listbox already uses.
|
|
239
|
+
* A key holding a comma cannot be told apart from two keys, which is the
|
|
240
|
+
* price of the shape. A reader's choice fires `helix-select` first, and
|
|
241
|
+
* refusing it leaves the selection as it was.
|
|
242
|
+
*/
|
|
243
|
+
get selected(): string;
|
|
244
|
+
set selected(next: string);
|
|
165
245
|
/**
|
|
166
246
|
* How many rows a page holds. Zero is every row, which is what "no paging" means.
|
|
167
247
|
*
|
|
@@ -217,6 +297,14 @@ export declare class HelixHeadlessDataTable extends HelixHeadlessDataTable_base
|
|
|
217
297
|
private pageState;
|
|
218
298
|
private pageSizeState;
|
|
219
299
|
private paginatedState;
|
|
300
|
+
private orderState;
|
|
301
|
+
private selectedState;
|
|
302
|
+
/** The order while a grip is being dragged, before anybody has been asked. */
|
|
303
|
+
private dragOrder;
|
|
304
|
+
/** The column a grip is dragging, and the pointer doing it. */
|
|
305
|
+
private dragging;
|
|
306
|
+
/** Said once, so a table that re-renders does not repeat it. */
|
|
307
|
+
private warnedAboutKey;
|
|
220
308
|
private readonly virtualize;
|
|
221
309
|
/**
|
|
222
310
|
* The rows in the shadow tree, each with the row of the page it drew.
|
|
@@ -259,6 +347,16 @@ export declare class HelixHeadlessDataTable extends HelixHeadlessDataTable_base
|
|
|
259
347
|
private windowOf;
|
|
260
348
|
/** The columns declared as children, in the order they are written. */
|
|
261
349
|
get tableColumns(): HelixHeadlessTableColumn[];
|
|
350
|
+
/**
|
|
351
|
+
* The columns in the order a reader arranged them.
|
|
352
|
+
*
|
|
353
|
+
* The ones with a field are put in `order`'s order, those it does not name
|
|
354
|
+
* after them in the order they were written, and a column with no field stays
|
|
355
|
+
* where it was written: it has nothing to be named by.
|
|
356
|
+
*/
|
|
357
|
+
get orderedColumns(): HelixHeadlessTableColumn[];
|
|
358
|
+
/** The fields in the order on screen. */
|
|
359
|
+
private get fields();
|
|
262
360
|
/** The columns reduced to what the ordering needs. */
|
|
263
361
|
private get axes();
|
|
264
362
|
/** The track list, from the columns if there are any. */
|
|
@@ -337,6 +435,47 @@ export declare class HelixHeadlessDataTable extends HelixHeadlessDataTable_base
|
|
|
337
435
|
* consumer refuses the local reorder, fetches, and hands back a new set.
|
|
338
436
|
*/
|
|
339
437
|
private requestSort;
|
|
438
|
+
/** Asks for the columns in a different order, as every field in the new one. */
|
|
439
|
+
private requestOrder;
|
|
440
|
+
/** Asks for a different set of selected rows. */
|
|
441
|
+
private requestSelected;
|
|
442
|
+
/** The keys selected now. */
|
|
443
|
+
private get chosen();
|
|
444
|
+
/**
|
|
445
|
+
* A row's identity: its `row-key` field, or its place in the whole result.
|
|
446
|
+
*
|
|
447
|
+
* The place is a fallback that is right only while nothing reorders, and a
|
|
448
|
+
* selection outlives an order, so `selectable` without a `row-key` says so once.
|
|
449
|
+
*/
|
|
450
|
+
private keyOf;
|
|
451
|
+
/**
|
|
452
|
+
* Every key the box in the heading answers for: the whole result in `client`
|
|
453
|
+
* mode, across every page, and the page it was handed in `server` mode, which
|
|
454
|
+
* is all it holds.
|
|
455
|
+
*/
|
|
456
|
+
private get everyKey();
|
|
457
|
+
/** Ticks or clears one row, which the checkbox asked for and was refused. */
|
|
458
|
+
private readonly toggleRow;
|
|
459
|
+
/** Selects every row, or clears them all where every one already was. */
|
|
460
|
+
private readonly toggleAll;
|
|
461
|
+
/** Moves a column by some places among the ones that move. */
|
|
462
|
+
private moveColumn;
|
|
463
|
+
/**
|
|
464
|
+
* The result as CSV: every row the filter lets through, in the order on
|
|
465
|
+
* screen, in the columns on screen, headed by their headings.
|
|
466
|
+
*
|
|
467
|
+
* **Values, not cells.** A cell may be a template, a badge or a link, so each
|
|
468
|
+
* column gives its field's value, which is what a spreadsheet wants anyway.
|
|
469
|
+
* A column with no field has no value and is left out. In `server` mode this
|
|
470
|
+
* is the page it holds, which is all it can know.
|
|
471
|
+
*
|
|
472
|
+
* **A text value that a spreadsheet would run is quoted as text.** A cell
|
|
473
|
+
* opening with `=`, `+`, `-` or `@` is a formula to a spreadsheet, and a
|
|
474
|
+
* result is often something a reader did not write: those values gain a
|
|
475
|
+
* leading apostrophe, the mark spreadsheets read as "this is text". Numbers are
|
|
476
|
+
* left alone, so a negative one stays a number.
|
|
477
|
+
*/
|
|
478
|
+
csv(): string;
|
|
340
479
|
/** Asks for a different query. */
|
|
341
480
|
private requestFilter;
|
|
342
481
|
/** Asks for a different page. */
|
|
@@ -402,6 +541,13 @@ export declare class HelixHeadlessDataTable extends HelixHeadlessDataTable_base
|
|
|
402
541
|
/** Columns arrive from the light DOM, which changes no property here. */
|
|
403
542
|
private readonly handleSlotChange;
|
|
404
543
|
private renderCell;
|
|
544
|
+
/**
|
|
545
|
+
* A checkbox, named for what it chooses, whose change the table takes.
|
|
546
|
+
*
|
|
547
|
+
* Refused and re-asked rather than left to tick itself: the selection is the
|
|
548
|
+
* table's, so the box only ever shows what `selected` says.
|
|
549
|
+
*/
|
|
550
|
+
private renderCheckbox;
|
|
405
551
|
private renderRows;
|
|
406
552
|
/**
|
|
407
553
|
* A row's place in the whole result, counting the header as row 1.
|
|
@@ -439,6 +585,8 @@ export declare class HelixHeadlessDataTable extends HelixHeadlessDataTable_base
|
|
|
439
585
|
private renderSpacer;
|
|
440
586
|
/** The controller owns the geometry; this is only what tells it to look again. */
|
|
441
587
|
private readonly handleScroll;
|
|
588
|
+
/** The heading of the checkbox column, which selects the whole result. */
|
|
589
|
+
private renderSelectAll;
|
|
442
590
|
protected render(): TemplateResult;
|
|
443
591
|
/**
|
|
444
592
|
* Listens on the host, not on the slot the columns are assigned to.
|
|
@@ -457,10 +605,34 @@ export declare class HelixHeadlessDataTable extends HelixHeadlessDataTable_base
|
|
|
457
605
|
*/
|
|
458
606
|
connectedCallback(): void;
|
|
459
607
|
disconnectedCallback(): void;
|
|
460
|
-
/**
|
|
608
|
+
/**
|
|
609
|
+
* A click on a sortable heading, anywhere but its grip or its edge.
|
|
610
|
+
*
|
|
611
|
+
* Enter and Space arrive here too, as the click the heading's sort button
|
|
612
|
+
* makes of them, so a keyboard needs nothing of its own.
|
|
613
|
+
*/
|
|
461
614
|
private readonly handleHeadClick;
|
|
462
|
-
/**
|
|
463
|
-
private
|
|
615
|
+
/** Whether the event passed through a part of that name on its way here. */
|
|
616
|
+
private partIn;
|
|
617
|
+
/** The arrow keys on a grip move its column a place, along the writing direction. */
|
|
618
|
+
private readonly handleGripKey;
|
|
619
|
+
/**
|
|
620
|
+
* A grip taken hold of: the headings follow the pointer and the order is asked
|
|
621
|
+
* for once it lets go.
|
|
622
|
+
*
|
|
623
|
+
* Previewed without an event, because a drag passes through a dozen orders on
|
|
624
|
+
* its way to the one the reader meant, and a consumer should hear the one.
|
|
625
|
+
*/
|
|
626
|
+
private readonly handleGripDown;
|
|
627
|
+
private readonly handleGripMove;
|
|
628
|
+
private readonly handleGripUp;
|
|
629
|
+
private readonly handleGripCancel;
|
|
630
|
+
private stopDrag;
|
|
631
|
+
/**
|
|
632
|
+
* A column asked for a width. The column keeps its own, so all this does is
|
|
633
|
+
* draw the grid again once it has, a microtask on, when the width has landed.
|
|
634
|
+
*/
|
|
635
|
+
private readonly handleResize;
|
|
464
636
|
private columnFrom;
|
|
465
637
|
/**
|
|
466
638
|
* The composed pagination's request, relayed as this element's own.
|