argus-table 0.2.2 → 0.4.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 +1 -1
- package/dist/argus-column-group.js +66 -0
- package/dist/argus-column-group.js.map +1 -0
- package/dist/argus-column.js +28 -26
- package/dist/argus-column.js.map +1 -1
- package/dist/argus-table.js +1497 -285
- package/dist/argus-table.js.map +1 -1
- package/dist/attributes.js +21 -0
- package/dist/attributes.js.map +1 -0
- package/dist/cdn/argus-table.js +120 -61
- package/dist/cdn/argus-table.js.map +1 -1
- package/dist/column-registry.js +23 -0
- package/dist/column-registry.js.map +1 -0
- package/dist/controllers/auto-width.js +16 -4
- package/dist/controllers/auto-width.js.map +1 -1
- package/dist/controllers/column-children.js +32 -9
- package/dist/controllers/column-children.js.map +1 -1
- package/dist/controllers/column-window.js +135 -0
- package/dist/controllers/column-window.js.map +1 -0
- package/dist/controllers/data-controller.js +9 -4
- package/dist/controllers/data-controller.js.map +1 -1
- package/dist/controllers/plugins.js +121 -0
- package/dist/controllers/plugins.js.map +1 -0
- package/dist/controllers/reorder-drag.js +19 -17
- package/dist/controllers/reorder-drag.js.map +1 -1
- package/dist/controllers/row-measure.js +122 -0
- package/dist/controllers/row-measure.js.map +1 -0
- package/dist/controllers/virtual-controller.js +315 -21
- package/dist/controllers/virtual-controller.js.map +1 -1
- package/dist/core/src/columns/column-groups.js +129 -0
- package/dist/core/src/columns/column-groups.js.map +1 -0
- package/dist/core/src/columns/column-order.js +125 -27
- package/dist/core/src/columns/column-order.js.map +1 -1
- package/dist/core/src/columns/resolve-columns.js +18 -5
- package/dist/core/src/columns/resolve-columns.js.map +1 -1
- package/dist/core/src/columns/spread-width.js +43 -0
- package/dist/core/src/columns/spread-width.js.map +1 -0
- package/dist/core/src/data/page-cache.js +4 -0
- package/dist/core/src/data/page-cache.js.map +1 -1
- package/dist/core/src/filters/filter.js +183 -0
- package/dist/core/src/filters/filter.js.map +1 -0
- package/dist/core/src/grid/row-layout.js +19 -11
- package/dist/core/src/grid/row-layout.js.map +1 -1
- package/dist/core/src/state/selection.js +71 -0
- package/dist/core/src/state/selection.js.map +1 -0
- package/dist/core/src/table/create-table.js +276 -66
- package/dist/core/src/table/create-table.js.map +1 -1
- package/dist/core/src/table/filtered-row-model.js +48 -0
- package/dist/core/src/table/filtered-row-model.js.map +1 -0
- package/dist/core/src/table/sorted-row-model.js +13 -2
- package/dist/core/src/table/sorted-row-model.js.map +1 -1
- package/dist/core/src/virtual/column-window.js +72 -0
- package/dist/core/src/virtual/column-window.js.map +1 -0
- package/dist/core/src/virtual/row-pool.js +2 -1
- package/dist/core/src/virtual/row-pool.js.map +1 -1
- package/dist/core/src/virtual/row-sizes.js +152 -0
- package/dist/core/src/virtual/row-sizes.js.map +1 -0
- package/dist/core/src/virtual/scroll-scale.js +41 -3
- package/dist/core/src/virtual/scroll-scale.js.map +1 -1
- package/dist/custom-elements.json +1683 -211
- package/dist/events.js +16 -8
- package/dist/events.js.map +1 -1
- package/dist/index.d.ts +808 -127
- package/dist/index.js +4 -2
- package/dist/interactive.js +22 -0
- package/dist/interactive.js.map +1 -0
- package/dist/max-height.js +22 -8
- package/dist/max-height.js.map +1 -1
- package/dist/render/body.js +48 -8
- package/dist/render/body.js.map +1 -1
- package/dist/render/cells.js +22 -11
- package/dist/render/cells.js.map +1 -1
- package/dist/render/content-directive.js +115 -0
- package/dist/render/content-directive.js.map +1 -0
- package/dist/render/content.js +33 -10
- package/dist/render/content.js.map +1 -1
- package/dist/render/header.js +104 -22
- package/dist/render/header.js.map +1 -1
- package/dist/render/pinned-rows.js +1 -1
- package/dist/render/pinned-rows.js.map +1 -1
- package/dist/styles/base.js +1 -1
- package/dist/styles/base.js.map +1 -1
- package/package.json +1 -1
|
@@ -44,52 +44,104 @@
|
|
|
44
44
|
},
|
|
45
45
|
{
|
|
46
46
|
"kind": "javascript-module",
|
|
47
|
-
"path": "src/argus-column.ts",
|
|
47
|
+
"path": "src/argus-column-group.ts",
|
|
48
48
|
"declarations": [
|
|
49
49
|
{
|
|
50
|
-
"kind": "
|
|
51
|
-
"
|
|
52
|
-
"
|
|
53
|
-
|
|
54
|
-
"text": "void"
|
|
55
|
-
}
|
|
56
|
-
},
|
|
57
|
-
"parameters": [
|
|
50
|
+
"kind": "class",
|
|
51
|
+
"description": "A header over the `<argus-column>` children it wraps, written as markup instead\nof an entry in the table's `columnGroups` property. Groups nest: a group inside\na group adds a header row. It is data only and renders nothing.\n\nOnly direct children of the table or of another group count. A non-empty\n`columnGroups` property wins over the children, and a non-empty `columns`\nproperty turns all column and group children off.",
|
|
52
|
+
"name": "ArgusColumnGroup",
|
|
53
|
+
"members": [
|
|
58
54
|
{
|
|
59
|
-
"
|
|
55
|
+
"kind": "field",
|
|
56
|
+
"name": "groupId",
|
|
60
57
|
"type": {
|
|
61
|
-
"text": "
|
|
62
|
-
}
|
|
58
|
+
"text": "string"
|
|
59
|
+
},
|
|
60
|
+
"default": "''",
|
|
61
|
+
"description": "Stable key. Must be unique among the table's groups; it may equal a column id.",
|
|
62
|
+
"attribute": "group-id"
|
|
63
63
|
},
|
|
64
64
|
{
|
|
65
|
-
"
|
|
65
|
+
"kind": "field",
|
|
66
|
+
"name": "header",
|
|
66
67
|
"type": {
|
|
67
|
-
"text": "() =>
|
|
68
|
-
}
|
|
68
|
+
"text": "CellContent | (() => CellContent) | undefined"
|
|
69
|
+
},
|
|
70
|
+
"description": "Header content: text as an attribute; a Lit template, a node or a function as a property. Default: the id.",
|
|
71
|
+
"attribute": "header"
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"kind": "field",
|
|
75
|
+
"name": "reorderable",
|
|
76
|
+
"type": {
|
|
77
|
+
"text": "boolean | undefined"
|
|
78
|
+
},
|
|
79
|
+
"description": "Whether the group can be moved as a whole. Default: `true`; `reorderable=\"false\"` turns it off.",
|
|
80
|
+
"attribute": "reorderable"
|
|
69
81
|
}
|
|
70
82
|
],
|
|
71
|
-
"
|
|
72
|
-
},
|
|
73
|
-
{
|
|
74
|
-
"kind": "function",
|
|
75
|
-
"name": "unwatchColumns",
|
|
76
|
-
"return": {
|
|
77
|
-
"type": {
|
|
78
|
-
"text": "void"
|
|
79
|
-
}
|
|
80
|
-
},
|
|
81
|
-
"parameters": [
|
|
83
|
+
"attributes": [
|
|
82
84
|
{
|
|
83
|
-
"name": "
|
|
85
|
+
"name": "group-id",
|
|
84
86
|
"type": {
|
|
85
|
-
"text": "
|
|
86
|
-
}
|
|
87
|
+
"text": "string"
|
|
88
|
+
},
|
|
89
|
+
"default": "''",
|
|
90
|
+
"description": "Stable key. Must be unique among the table's groups; it may equal a column id.",
|
|
91
|
+
"fieldName": "groupId"
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"name": "header",
|
|
95
|
+
"type": {
|
|
96
|
+
"text": "CellContent | (() => CellContent) | undefined"
|
|
97
|
+
},
|
|
98
|
+
"description": "Header content: text as an attribute; a Lit template, a node or a function as a property. Default: the id.",
|
|
99
|
+
"fieldName": "header"
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"name": "reorderable",
|
|
103
|
+
"type": {
|
|
104
|
+
"text": "boolean | undefined"
|
|
105
|
+
},
|
|
106
|
+
"description": "Whether the group can be moved as a whole. Default: `true`; `reorderable=\"false\"` turns it off.",
|
|
107
|
+
"fieldName": "reorderable"
|
|
87
108
|
}
|
|
88
|
-
]
|
|
109
|
+
],
|
|
110
|
+
"superclass": {
|
|
111
|
+
"name": "ReactiveElement",
|
|
112
|
+
"package": "lit"
|
|
113
|
+
},
|
|
114
|
+
"summary": "Declarative column group of an `<argus-table>`.",
|
|
115
|
+
"tagName": "argus-column-group",
|
|
116
|
+
"customElement": true
|
|
117
|
+
}
|
|
118
|
+
],
|
|
119
|
+
"exports": [
|
|
120
|
+
{
|
|
121
|
+
"kind": "js",
|
|
122
|
+
"name": "ArgusColumnGroup",
|
|
123
|
+
"declaration": {
|
|
124
|
+
"name": "ArgusColumnGroup",
|
|
125
|
+
"module": "src/argus-column-group.ts"
|
|
126
|
+
}
|
|
89
127
|
},
|
|
128
|
+
{
|
|
129
|
+
"kind": "custom-element-definition",
|
|
130
|
+
"name": "argus-column-group",
|
|
131
|
+
"declaration": {
|
|
132
|
+
"name": "ArgusColumnGroup",
|
|
133
|
+
"module": "src/argus-column-group.ts"
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
]
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
"kind": "javascript-module",
|
|
140
|
+
"path": "src/argus-column.ts",
|
|
141
|
+
"declarations": [
|
|
90
142
|
{
|
|
91
143
|
"kind": "class",
|
|
92
|
-
"description": "One column of the parent `<argus-table>`, written as markup instead of an entry in\nits `columns` property. It is data only and renders nothing.\n\nOnly direct children of the table count, in
|
|
144
|
+
"description": "One column of the parent `<argus-table>`, written as markup instead of an entry in\nits `columns` property. It is data only and renders nothing.\n\nOnly direct children of the table or of an `<argus-column-group>` count, in\ndocument order. A non-empty `columns` property wins over the children. Adding, removing, moving or changing a column\nupdates the table; sizes, order and sorting are kept by `column-id`.\n\nA `<template>` child is the content of every cell in the column (static: the same\nfor each row). Set the `cell` property for content that depends on the row.\n\nThe standard `hidden` attribute (or property) hides the column, like `hidden` in\n`columns`; the table's `columnVisibility` overrides it.",
|
|
93
145
|
"name": "ArgusColumn",
|
|
94
146
|
"members": [
|
|
95
147
|
{
|
|
@@ -120,6 +172,15 @@
|
|
|
120
172
|
"description": "How to read the cell value: a property path such as `customer.name`, or (as a\nproperty) a function of the row and its index.",
|
|
121
173
|
"attribute": "accessor"
|
|
122
174
|
},
|
|
175
|
+
{
|
|
176
|
+
"kind": "field",
|
|
177
|
+
"name": "formula",
|
|
178
|
+
"type": {
|
|
179
|
+
"text": "string | undefined"
|
|
180
|
+
},
|
|
181
|
+
"description": "A spreadsheet formula computed per row from other columns, such as\n`[price] * [quantity]`. Needs the `formulas()` plugin from `@argus-table/formulas`.",
|
|
182
|
+
"attribute": "formula"
|
|
183
|
+
},
|
|
123
184
|
{
|
|
124
185
|
"kind": "field",
|
|
125
186
|
"name": "cell",
|
|
@@ -161,9 +222,27 @@
|
|
|
161
222
|
"type": {
|
|
162
223
|
"text": "ColumnPin | undefined"
|
|
163
224
|
},
|
|
164
|
-
"description": "Pins the column to the `start` or `end` side.",
|
|
225
|
+
"description": "Pins the column to the `start` or `end` side. The table's `columnPinning` overrides it.",
|
|
165
226
|
"attribute": "pin"
|
|
166
227
|
},
|
|
228
|
+
{
|
|
229
|
+
"kind": "field",
|
|
230
|
+
"name": "pinnable",
|
|
231
|
+
"type": {
|
|
232
|
+
"text": "boolean | undefined"
|
|
233
|
+
},
|
|
234
|
+
"description": "Whether the user can pin or unpin the column. Default: `true`; `pinnable=\"false\"` turns it off.",
|
|
235
|
+
"attribute": "pinnable"
|
|
236
|
+
},
|
|
237
|
+
{
|
|
238
|
+
"kind": "field",
|
|
239
|
+
"name": "hideable",
|
|
240
|
+
"type": {
|
|
241
|
+
"text": "boolean | undefined"
|
|
242
|
+
},
|
|
243
|
+
"description": "Whether the user can hide the column. Default: `true`; `hideable=\"false\"` turns it off.",
|
|
244
|
+
"attribute": "hideable"
|
|
245
|
+
},
|
|
167
246
|
{
|
|
168
247
|
"kind": "field",
|
|
169
248
|
"name": "align",
|
|
@@ -173,6 +252,15 @@
|
|
|
173
252
|
"description": "Text alignment: `start`, `center` or `end`. Default: `start`.",
|
|
174
253
|
"attribute": "align"
|
|
175
254
|
},
|
|
255
|
+
{
|
|
256
|
+
"kind": "field",
|
|
257
|
+
"name": "wrap",
|
|
258
|
+
"type": {
|
|
259
|
+
"text": "boolean | undefined"
|
|
260
|
+
},
|
|
261
|
+
"description": "Wraps the cell text onto more lines instead of cutting it off. Default:\n`false`. With a fixed row height, text that doesn't fit is clipped.",
|
|
262
|
+
"attribute": "wrap"
|
|
263
|
+
},
|
|
176
264
|
{
|
|
177
265
|
"kind": "field",
|
|
178
266
|
"name": "sortable",
|
|
@@ -201,17 +289,35 @@
|
|
|
201
289
|
"attribute": "reorderable"
|
|
202
290
|
},
|
|
203
291
|
{
|
|
204
|
-
"kind": "
|
|
205
|
-
"name": "
|
|
206
|
-
"
|
|
207
|
-
"
|
|
208
|
-
|
|
209
|
-
|
|
292
|
+
"kind": "field",
|
|
293
|
+
"name": "filter",
|
|
294
|
+
"type": {
|
|
295
|
+
"text": "FilterKind | undefined"
|
|
296
|
+
},
|
|
297
|
+
"description": "The kind of filter users can set, e.g. from the column menu: `text`, `number`,\n`date` or `set`. Unset: users can't filter the column.",
|
|
298
|
+
"attribute": "filter"
|
|
299
|
+
},
|
|
300
|
+
{
|
|
301
|
+
"kind": "field",
|
|
302
|
+
"name": "filterFn",
|
|
303
|
+
"type": {
|
|
304
|
+
"text": "ColumnDef<T>['filterFn'] | undefined"
|
|
305
|
+
},
|
|
306
|
+
"description": "Replaces the built-in matching for this column's filter. Property only."
|
|
307
|
+
},
|
|
308
|
+
{
|
|
309
|
+
"kind": "field",
|
|
310
|
+
"name": "filterOptions",
|
|
311
|
+
"type": {
|
|
312
|
+
"text": "readonly FilterValue[] | undefined"
|
|
210
313
|
},
|
|
211
|
-
"description": "The
|
|
314
|
+
"description": "The values a `set` filter offers; needed with a `dataSource`. Property only."
|
|
212
315
|
}
|
|
213
316
|
],
|
|
214
317
|
"attributes": [
|
|
318
|
+
{
|
|
319
|
+
"name": "hidden"
|
|
320
|
+
},
|
|
215
321
|
{
|
|
216
322
|
"name": "column-id",
|
|
217
323
|
"type": {
|
|
@@ -237,6 +343,14 @@
|
|
|
237
343
|
"description": "How to read the cell value: a property path such as `customer.name`, or (as a\nproperty) a function of the row and its index.",
|
|
238
344
|
"fieldName": "accessor"
|
|
239
345
|
},
|
|
346
|
+
{
|
|
347
|
+
"name": "formula",
|
|
348
|
+
"type": {
|
|
349
|
+
"text": "string | undefined"
|
|
350
|
+
},
|
|
351
|
+
"description": "A spreadsheet formula computed per row from other columns, such as\n`[price] * [quantity]`. Needs the `formulas()` plugin from `@argus-table/formulas`.",
|
|
352
|
+
"fieldName": "formula"
|
|
353
|
+
},
|
|
240
354
|
{
|
|
241
355
|
"name": "width",
|
|
242
356
|
"type": {
|
|
@@ -266,9 +380,25 @@
|
|
|
266
380
|
"type": {
|
|
267
381
|
"text": "ColumnPin | undefined"
|
|
268
382
|
},
|
|
269
|
-
"description": "Pins the column to the `start` or `end` side.",
|
|
383
|
+
"description": "Pins the column to the `start` or `end` side. The table's `columnPinning` overrides it.",
|
|
270
384
|
"fieldName": "pin"
|
|
271
385
|
},
|
|
386
|
+
{
|
|
387
|
+
"name": "pinnable",
|
|
388
|
+
"type": {
|
|
389
|
+
"text": "boolean | undefined"
|
|
390
|
+
},
|
|
391
|
+
"description": "Whether the user can pin or unpin the column. Default: `true`; `pinnable=\"false\"` turns it off.",
|
|
392
|
+
"fieldName": "pinnable"
|
|
393
|
+
},
|
|
394
|
+
{
|
|
395
|
+
"name": "hideable",
|
|
396
|
+
"type": {
|
|
397
|
+
"text": "boolean | undefined"
|
|
398
|
+
},
|
|
399
|
+
"description": "Whether the user can hide the column. Default: `true`; `hideable=\"false\"` turns it off.",
|
|
400
|
+
"fieldName": "hideable"
|
|
401
|
+
},
|
|
272
402
|
{
|
|
273
403
|
"name": "align",
|
|
274
404
|
"type": {
|
|
@@ -277,6 +407,14 @@
|
|
|
277
407
|
"description": "Text alignment: `start`, `center` or `end`. Default: `start`.",
|
|
278
408
|
"fieldName": "align"
|
|
279
409
|
},
|
|
410
|
+
{
|
|
411
|
+
"name": "wrap",
|
|
412
|
+
"type": {
|
|
413
|
+
"text": "boolean | undefined"
|
|
414
|
+
},
|
|
415
|
+
"description": "Wraps the cell text onto more lines instead of cutting it off. Default:\n`false`. With a fixed row height, text that doesn't fit is clipped.",
|
|
416
|
+
"fieldName": "wrap"
|
|
417
|
+
},
|
|
280
418
|
{
|
|
281
419
|
"name": "sortable",
|
|
282
420
|
"type": {
|
|
@@ -300,6 +438,14 @@
|
|
|
300
438
|
},
|
|
301
439
|
"description": "Whether the column can be moved. Default: `true`; `reorderable=\"false\"` turns it off.",
|
|
302
440
|
"fieldName": "reorderable"
|
|
441
|
+
},
|
|
442
|
+
{
|
|
443
|
+
"name": "filter",
|
|
444
|
+
"type": {
|
|
445
|
+
"text": "FilterKind | undefined"
|
|
446
|
+
},
|
|
447
|
+
"description": "The kind of filter users can set, e.g. from the column menu: `text`, `number`,\n`date` or `set`. Unset: users can't filter the column.",
|
|
448
|
+
"fieldName": "filter"
|
|
303
449
|
}
|
|
304
450
|
],
|
|
305
451
|
"superclass": {
|
|
@@ -312,22 +458,6 @@
|
|
|
312
458
|
}
|
|
313
459
|
],
|
|
314
460
|
"exports": [
|
|
315
|
-
{
|
|
316
|
-
"kind": "js",
|
|
317
|
-
"name": "watchColumns",
|
|
318
|
-
"declaration": {
|
|
319
|
-
"name": "watchColumns",
|
|
320
|
-
"module": "src/argus-column.ts"
|
|
321
|
-
}
|
|
322
|
-
},
|
|
323
|
-
{
|
|
324
|
-
"kind": "js",
|
|
325
|
-
"name": "unwatchColumns",
|
|
326
|
-
"declaration": {
|
|
327
|
-
"name": "unwatchColumns",
|
|
328
|
-
"module": "src/argus-column.ts"
|
|
329
|
-
}
|
|
330
|
-
},
|
|
331
461
|
{
|
|
332
462
|
"kind": "js",
|
|
333
463
|
"name": "ArgusColumn",
|
|
@@ -352,7 +482,7 @@
|
|
|
352
482
|
"declarations": [
|
|
353
483
|
{
|
|
354
484
|
"kind": "class",
|
|
355
|
-
"description": "A virtualized data table.\n\nSet `columns`, and `data` or `dataSource`, as properties. Columns can also be\nwritten as `<argus-column>` children; a non-empty `columns` wins over them.\nHeader and cell content is rendered into the element's light DOM and slotted\ninto the cells, so page CSS and the page's own components work inside cells.\n\nAny number of rows scrolls to the end. Browsers limit an element's height\n(about 800k rows of 40 px in Chromium and Safari, 400k in Firefox), so a taller\nbody renders shorter and its scroll position is scaled onto the rows: the\nscrollbar still spans every row, and a wheel step covers a few more of them.\nUse `scrollToRow()` rather than setting the scroll container's `scrollTop`.",
|
|
485
|
+
"description": "A virtualized data table.\n\nSet `columns`, and `data` or `dataSource`, as properties. Columns can also be\nwritten as `<argus-column>` children; a non-empty `columns` wins over them.\n`columnGroups` (or `<argus-column-group>` children) adds headers over several\ncolumns, a header row per level of nesting.\nHeader and cell content is rendered into the element's light DOM and slotted\ninto the cells, so page CSS and the page's own components work inside cells.\n\nAny number of rows scrolls to the end. Browsers limit an element's height\n(about 800k rows of 40 px in Chromium and Safari, 400k in Firefox), so a taller\nbody renders shorter and its scroll position is scaled onto the rows: the\nscrollbar still spans every row, and a wheel step covers a few more of them.\nUse `scrollToRow()` rather than setting the scroll container's `scrollTop`.",
|
|
356
486
|
"name": "ArgusTable",
|
|
357
487
|
"cssProperties": [
|
|
358
488
|
{
|
|
@@ -389,26 +519,30 @@
|
|
|
389
519
|
"default": "1px"
|
|
390
520
|
},
|
|
391
521
|
{
|
|
392
|
-
"description": "Border around the whole table, as a `border` shorthand (`1px solid …`). Inside the element's size.",
|
|
393
|
-
"name": "--argus-
|
|
522
|
+
"description": "Border around the whole table, as a `border` shorthand (`1px solid …`). Inside the element's size. The lines between rows are `--argus-border-width` and `--argus-border-color`.",
|
|
523
|
+
"name": "--argus-border",
|
|
394
524
|
"default": "none"
|
|
395
525
|
},
|
|
396
526
|
{
|
|
397
527
|
"description": "Corner radius of the table. Header, rows and pinned columns are clipped to it.",
|
|
398
|
-
"name": "--argus-radius",
|
|
528
|
+
"name": "--argus-border-radius",
|
|
399
529
|
"default": "0"
|
|
400
530
|
},
|
|
401
531
|
{
|
|
402
|
-
"description": "Height of a row. Default per density: 32px, 40px, 52px.",
|
|
532
|
+
"description": "Height of a row, and of each header row. Default per density: 32px, 40px, 52px. With `rowHeight: 'auto'`: the height of each header row and the least a body or pinned row is.",
|
|
403
533
|
"name": "--argus-row-height"
|
|
404
534
|
},
|
|
405
535
|
{
|
|
406
536
|
"description": "Inline padding of cells. Default per density: 8px, 12px, 16px.",
|
|
407
537
|
"name": "--argus-cell-padding-inline"
|
|
408
538
|
},
|
|
539
|
+
{
|
|
540
|
+
"description": "Block padding of body and pinned-row cells with `rowHeight: 'auto'`, where content sits at the top of the cell. Default: what centres one line of text in `--argus-row-height`.",
|
|
541
|
+
"name": "--argus-cell-padding-block"
|
|
542
|
+
},
|
|
409
543
|
{
|
|
410
544
|
"description": "Background of odd rows. Default: no stripes.",
|
|
411
|
-
"name": "--argus-row-
|
|
545
|
+
"name": "--argus-row-odd-bg"
|
|
412
546
|
},
|
|
413
547
|
{
|
|
414
548
|
"description": "Shadow on the pinned edge, as a `box-shadow` falling toward the end side (`4px 0 6px -4px …`). Mirrored for the end edge and in RTL; `none` removes it.",
|
|
@@ -423,6 +557,11 @@
|
|
|
423
557
|
"name": "--argus-focus-ring",
|
|
424
558
|
"default": "2px solid Highlight"
|
|
425
559
|
},
|
|
560
|
+
{
|
|
561
|
+
"description": "Colour of the mark in the header of a filtered column.",
|
|
562
|
+
"name": "--argus-filter-indicator-color",
|
|
563
|
+
"default": "currentColor"
|
|
564
|
+
},
|
|
426
565
|
{
|
|
427
566
|
"description": "Colour of the line that marks where a dragged column would land.",
|
|
428
567
|
"name": "--argus-drop-indicator-color",
|
|
@@ -434,7 +573,7 @@
|
|
|
434
573
|
},
|
|
435
574
|
{
|
|
436
575
|
"description": "Background of the pinned rows, pinned columns included.",
|
|
437
|
-
"name": "--argus-pinned-
|
|
576
|
+
"name": "--argus-row-pinned-bg",
|
|
438
577
|
"default": "var(--argus-bg)"
|
|
439
578
|
},
|
|
440
579
|
{
|
|
@@ -442,7 +581,7 @@
|
|
|
442
581
|
"name": "--argus-skeleton-bg"
|
|
443
582
|
},
|
|
444
583
|
{
|
|
445
|
-
"description": "
|
|
584
|
+
"description": "Background of selected rows, pinned columns included. Default: the system highlight colour, mixed into `--argus-bg`. It wins over `--argus-row-hover-bg`.",
|
|
446
585
|
"name": "--argus-row-selected-bg"
|
|
447
586
|
}
|
|
448
587
|
],
|
|
@@ -456,27 +595,71 @@
|
|
|
456
595
|
"name": "header"
|
|
457
596
|
},
|
|
458
597
|
{
|
|
459
|
-
"description": "The header row.",
|
|
598
|
+
"description": "The row of column headers: the last header row when there are column groups.",
|
|
460
599
|
"name": "header-row"
|
|
461
600
|
},
|
|
462
601
|
{
|
|
463
|
-
"description": "
|
|
602
|
+
"description": "A row of column group headers (`columnGroups`), one per level of nesting, above `header-row`.",
|
|
603
|
+
"name": "header-group-row"
|
|
604
|
+
},
|
|
605
|
+
{
|
|
606
|
+
"description": "A column group's header, spanning its columns.",
|
|
607
|
+
"name": "header-group-cell"
|
|
608
|
+
},
|
|
609
|
+
{
|
|
610
|
+
"description": "Added to `header-group-cell` on the group being dragged to a new position.",
|
|
611
|
+
"name": "header-group-cell-dragging"
|
|
612
|
+
},
|
|
613
|
+
{
|
|
614
|
+
"description": "The empty cell of a group row over columns without a group at that level.",
|
|
615
|
+
"name": "header-group-filler"
|
|
616
|
+
},
|
|
617
|
+
{
|
|
618
|
+
"description": "Every column header.",
|
|
464
619
|
"name": "header-cell"
|
|
465
620
|
},
|
|
466
621
|
{
|
|
467
|
-
"description": "
|
|
622
|
+
"description": "Added to `header-cell` on the headers of sorted columns. The direction is also in `aria-sort`.",
|
|
468
623
|
"name": "header-cell-sorted"
|
|
469
624
|
},
|
|
470
625
|
{
|
|
471
|
-
"description": "Added to `header-cell` on the
|
|
626
|
+
"description": "Added to `header-cell` on the headers of columns sorted ascending, next to `header-cell-sorted`.",
|
|
627
|
+
"name": "header-cell-sorted-asc"
|
|
628
|
+
},
|
|
629
|
+
{
|
|
630
|
+
"description": "Added to `header-cell` on the headers of columns sorted descending, next to `header-cell-sorted`.",
|
|
631
|
+
"name": "header-cell-sorted-desc"
|
|
632
|
+
},
|
|
633
|
+
{
|
|
634
|
+
"description": "Added to `header-cell` on the headers of pinned columns, on either side.",
|
|
635
|
+
"name": "header-cell-pinned"
|
|
636
|
+
},
|
|
637
|
+
{
|
|
638
|
+
"description": "Added to `header-cell-pinned` on the pinned header next to the scrolling columns (one per pinned side).",
|
|
639
|
+
"name": "header-cell-pinned-edge"
|
|
640
|
+
},
|
|
641
|
+
{
|
|
642
|
+
"description": "The chevron in a sortable column's header, shown while it is sorted and pointing the way it sorts. It is drawn with borders in `currentColor`.",
|
|
643
|
+
"name": "sort-indicator"
|
|
644
|
+
},
|
|
645
|
+
{
|
|
646
|
+
"description": "Added to `header-cell` on the headers of filtered columns.",
|
|
647
|
+
"name": "header-cell-filtered"
|
|
648
|
+
},
|
|
649
|
+
{
|
|
650
|
+
"description": "The mark in the header of a filtered column, after the sort indicator.",
|
|
651
|
+
"name": "filter-indicator"
|
|
652
|
+
},
|
|
653
|
+
{
|
|
654
|
+
"description": "Added to `header-cell` on the header being dragged to a new position, and on the headers of a dragged group's columns.",
|
|
472
655
|
"name": "header-cell-dragging"
|
|
473
656
|
},
|
|
474
657
|
{
|
|
475
|
-
"description": "The line on the edge of the header where a dragged column would land.",
|
|
658
|
+
"description": "The line on the edge of the header where a dragged column or group would land.",
|
|
476
659
|
"name": "drop-indicator"
|
|
477
660
|
},
|
|
478
661
|
{
|
|
479
|
-
"description": "The drag handle on the inline-end edge of a resizable column's header. A double-click fits the column to its content.",
|
|
662
|
+
"description": "The drag handle on the inline-end edge of a resizable column's header, and of a column group's header with resizable columns. A double-click fits the column (or the group's columns) to its content.",
|
|
480
663
|
"name": "resize-handle"
|
|
481
664
|
},
|
|
482
665
|
{
|
|
@@ -499,6 +682,26 @@
|
|
|
499
682
|
"description": "Body rows whose `dataSource` page hasn't loaded yet, or failed.",
|
|
500
683
|
"name": "row-loading"
|
|
501
684
|
},
|
|
685
|
+
{
|
|
686
|
+
"description": "Added to `row-loading` on body rows whose `dataSource` page failed to load.",
|
|
687
|
+
"name": "row-error"
|
|
688
|
+
},
|
|
689
|
+
{
|
|
690
|
+
"description": "Body rows whose id is in `selection`.",
|
|
691
|
+
"name": "row-selected"
|
|
692
|
+
},
|
|
693
|
+
{
|
|
694
|
+
"description": "Added to `cell` in the checkbox column (`selectionCheckboxes`), pinned rows included.",
|
|
695
|
+
"name": "cell-selection"
|
|
696
|
+
},
|
|
697
|
+
{
|
|
698
|
+
"description": "Added to `header-cell` on the checkbox column's header.",
|
|
699
|
+
"name": "header-cell-selection"
|
|
700
|
+
},
|
|
701
|
+
{
|
|
702
|
+
"description": "The checkboxes of the checkbox column: one per selectable row, and the select-all one in the header (`multi` mode).",
|
|
703
|
+
"name": "selection-checkbox"
|
|
704
|
+
},
|
|
502
705
|
{
|
|
503
706
|
"description": "Every row from `pinnedRows`, on either side. Also has `row`, but no `row-even`/`row-odd`.",
|
|
504
707
|
"name": "row-pinned"
|
|
@@ -513,22 +716,22 @@
|
|
|
513
716
|
},
|
|
514
717
|
{
|
|
515
718
|
"description": "Every cell of a pinned row (next to `cell`).",
|
|
516
|
-
"name": "cell-pinned-row"
|
|
719
|
+
"name": "cell-in-pinned-row"
|
|
517
720
|
},
|
|
518
721
|
{
|
|
519
722
|
"description": "Every body cell.",
|
|
520
723
|
"name": "cell"
|
|
521
724
|
},
|
|
522
725
|
{
|
|
523
|
-
"description": "Body cells in the sorted column.",
|
|
726
|
+
"description": "Body and pinned-row cells in the sorted column.",
|
|
524
727
|
"name": "cell-sorted"
|
|
525
728
|
},
|
|
526
729
|
{
|
|
527
|
-
"description": "Body cells in a pinned column, on either side.",
|
|
730
|
+
"description": "Body and pinned-row cells in a pinned column, on either side.",
|
|
528
731
|
"name": "cell-pinned"
|
|
529
732
|
},
|
|
530
733
|
{
|
|
531
|
-
"description": "The pinned
|
|
734
|
+
"description": "The pinned cell next to the scrolling columns (one per pinned side), in body and pinned rows.",
|
|
532
735
|
"name": "cell-pinned-edge"
|
|
533
736
|
},
|
|
534
737
|
{
|
|
@@ -563,6 +766,14 @@
|
|
|
563
766
|
},
|
|
564
767
|
"description": "Column definitions. Property only: functions can't be attributes. While empty,\nthe table reads its `<argus-column>` children instead. `null` or `undefined`\nmeans `[]`."
|
|
565
768
|
},
|
|
769
|
+
{
|
|
770
|
+
"kind": "field",
|
|
771
|
+
"name": "columnGroups",
|
|
772
|
+
"type": {
|
|
773
|
+
"text": "readonly ColumnGroup[]"
|
|
774
|
+
},
|
|
775
|
+
"description": "Headers over several columns: `{ id, header, columns }`, where `columns` lists\ncolumn ids and nested groups. Each level of nesting adds a header row. A group's\ncolumns stay next to each other: they move within the group, and the group\nmoves as a whole (drag its header, or Alt+Shift+Arrow). A group whose columns\nare pinned to different sides shows on each side. Property only. While empty\nand `columns` is too, the table reads its `<argus-column-group>` children.\n`null` or `undefined` means `[]`."
|
|
776
|
+
},
|
|
566
777
|
{
|
|
567
778
|
"kind": "field",
|
|
568
779
|
"name": "data",
|
|
@@ -577,7 +788,7 @@
|
|
|
577
788
|
"type": {
|
|
578
789
|
"text": "DataSource<T> | undefined"
|
|
579
790
|
},
|
|
580
|
-
"description": "Loads rows page by page as they scroll into view, instead of `data`:\n`{ getRows({ start, end, sorting, signal }), pageSize? }
|
|
791
|
+
"description": "Loads rows page by page as they scroll into view, instead of `data`:\n`{ getRows({ start, end, sorting, filters, quickFilter, signal }), pageSize? }`,\nwhere `end` is exclusive and `getRows` resolves to `{ rows, total? }`. Without a\n`total`, the table grows as pages arrive and a short page marks the end. Sorting\nand filtering happen on the server: a new order or filter reloads from the top.\nWhile set, it wins over `data`. Replace the object to change `getRows` or\n`pageSize`."
|
|
581
792
|
},
|
|
582
793
|
{
|
|
583
794
|
"kind": "field",
|
|
@@ -599,9 +810,9 @@
|
|
|
599
810
|
"kind": "field",
|
|
600
811
|
"name": "rowHeight",
|
|
601
812
|
"type": {
|
|
602
|
-
"text": "number | undefined"
|
|
813
|
+
"text": "number | 'auto' | undefined"
|
|
603
814
|
},
|
|
604
|
-
"description": "Row height in px
|
|
815
|
+
"description": "Row height in px, or `'auto'` to fit each row to its content (`row-height=\"auto\"`).\nUnset: the density (or the `--argus-row-height` token) decides. With\n`'auto'`, that height is the header's and the least a body or pinned row is;\nrows grow to fit wrapped text (`wrap` columns) and taller content, and cell\ncontent sits at the top. Rows are measured as they render: a row's height\ncounts the columns rendered (see `virtualizeColumns`), and rows not seen yet\ncount as one line. Give images a size, so rows don't move when they load.",
|
|
605
816
|
"attribute": "row-height"
|
|
606
817
|
},
|
|
607
818
|
{
|
|
@@ -624,13 +835,23 @@
|
|
|
624
835
|
"description": "Rows rendered above and below the visible ones. `null` or `undefined` means the default, 6.",
|
|
625
836
|
"attribute": "overscan"
|
|
626
837
|
},
|
|
838
|
+
{
|
|
839
|
+
"kind": "field",
|
|
840
|
+
"name": "virtualizeColumns",
|
|
841
|
+
"type": {
|
|
842
|
+
"text": "boolean"
|
|
843
|
+
},
|
|
844
|
+
"default": "false",
|
|
845
|
+
"description": "Renders only the scrolling columns in view (plus two on each side), for\nwide tables: a few dozen columns and more. Pinned columns, the checkbox\ncolumn and the focused cell's column always render. Off by default: then\nevery column renders, as before. Cells are placed in their grid column\nexplicitly, so page CSS that relies on their order in the DOM (`:nth-child`\non cells) doesn't apply. `autosizeColumns()` and `width: 'auto'` columns\nstill measure columns out of view: they render for the measurement.\nAs an attribute, `virtualize-columns=\"false\"` is off, like no attribute.",
|
|
846
|
+
"attribute": "virtualize-columns"
|
|
847
|
+
},
|
|
627
848
|
{
|
|
628
849
|
"kind": "field",
|
|
629
850
|
"name": "sorting",
|
|
630
851
|
"type": {
|
|
631
852
|
"text": "SortState"
|
|
632
853
|
},
|
|
633
|
-
"description": "The sort order, e.g. `[{ id: 'total', desc: true }]`; `[]` when unsorted. Unset,\nthe table keeps it itself and header clicks change it. Once set, it is\ncontrolled: a click only fires `argus-
|
|
854
|
+
"description": "The sort order, e.g. `[{ id: 'total', desc: true }]`; `[]` when unsorted. Unset,\nthe table keeps it itself and header clicks change it. Once set, it is\ncontrolled: a click only fires `argus-sorting-change` with the proposed order,\nand nothing changes until you set the property. Set `undefined` to hand it back."
|
|
634
855
|
},
|
|
635
856
|
{
|
|
636
857
|
"kind": "field",
|
|
@@ -638,7 +859,7 @@
|
|
|
638
859
|
"type": {
|
|
639
860
|
"text": "ColumnSizingState"
|
|
640
861
|
},
|
|
641
|
-
"description": "Resized widths in px by column id, e.g. `{ name: 240 }`. A resized flex column\nbecomes fixed. Uncontrolled until set, like `sorting`: once set, a resize only\nfires `argus-column-
|
|
862
|
+
"description": "Resized widths in px by column id, e.g. `{ name: 240 }`. A resized flex column\nbecomes fixed. Uncontrolled until set, like `sorting`: once set, a resize only\nfires `argus-column-sizing-change` with the proposed widths. `undefined` hands it back."
|
|
642
863
|
},
|
|
643
864
|
{
|
|
644
865
|
"kind": "field",
|
|
@@ -646,47 +867,124 @@
|
|
|
646
867
|
"type": {
|
|
647
868
|
"text": "ColumnOrderState"
|
|
648
869
|
},
|
|
649
|
-
"description": "The column order: column ids as the table shows them, e.g.\n`['id', 'total', 'customer']`. `[]` (the default) keeps the order of `columns`.\nEach pin group (start-pinned, scrolling, end-pinned) takes its columns in this\norder; unknown ids are ignored and columns it doesn't list follow the listed\nones of their group. After a move it holds every column id. Uncontrolled\nuntil set, like `sorting`: once set, a move only fires `argus-column-
|
|
870
|
+
"description": "The column order: column ids as the table shows them, e.g.\n`['id', 'total', 'customer']`. `[]` (the default) keeps the order of `columns`.\nEach pin group (start-pinned, scrolling, end-pinned) takes its columns in this\norder; unknown ids are ignored and columns it doesn't list follow the listed\nones of their group. After a move it holds every column id. Uncontrolled\nuntil set, like `sorting`: once set, a move only fires `argus-column-order-change`\nwith the proposed order. `undefined` hands it back."
|
|
650
871
|
},
|
|
651
872
|
{
|
|
652
|
-
"kind": "
|
|
653
|
-
"name": "
|
|
654
|
-
"
|
|
655
|
-
"
|
|
656
|
-
"text": "Promise<void>"
|
|
657
|
-
}
|
|
873
|
+
"kind": "field",
|
|
874
|
+
"name": "columnPinning",
|
|
875
|
+
"type": {
|
|
876
|
+
"text": "ColumnPinningState"
|
|
658
877
|
},
|
|
659
|
-
"description": "
|
|
878
|
+
"description": "Pins by column id, over the columns' own `pin`: `'start'` or `'end'` pins a\ncolumn, `false` unpins one whose definition pins it, e.g.\n`{ total: 'end', id: false }`. Columns it doesn't list keep their `pin`. A pinned\ncolumn joins the edge of its group nearest its place in `columnOrder`, and stops\nflexing. Uncontrolled until set, like `sorting`: once set, pinning from a plugin\nonly fires `argus-column-pinning-change` with the proposed pins. `undefined` hands it back."
|
|
660
879
|
},
|
|
661
880
|
{
|
|
662
|
-
"kind": "
|
|
663
|
-
"name": "
|
|
664
|
-
"
|
|
665
|
-
"
|
|
666
|
-
"text": "Promise<void>"
|
|
667
|
-
}
|
|
881
|
+
"kind": "field",
|
|
882
|
+
"name": "columnVisibility",
|
|
883
|
+
"type": {
|
|
884
|
+
"text": "ColumnVisibilityState"
|
|
668
885
|
},
|
|
669
|
-
"
|
|
670
|
-
{
|
|
671
|
-
"name": "ids",
|
|
672
|
-
"optional": true,
|
|
673
|
-
"type": {
|
|
674
|
-
"text": "readonly string[]"
|
|
675
|
-
}
|
|
676
|
-
}
|
|
677
|
-
],
|
|
678
|
-
"description": "Fits columns to their content: the header, the pinned rows and the body rows\nrendered now (rows out of view aren't measured). It resizes them like a drag\nwould, so `argus-column-resize` fires for each column that changes, and with a\ncontrolled `columnSizing` nothing changes until you set it. Without `ids`, fits\nevery resizable column; columns with `resizable: false` keep their width.\nResolves once the table has re-rendered."
|
|
886
|
+
"description": "Visibility by column id, over the columns' own `hidden`: `false` hides a column,\n`true` shows one defined as `hidden`, e.g. `{ email: false }`. Columns it\ndoesn't list keep their `hidden`. A hidden column isn't rendered, but sorting by\nit still works and it keeps its place in `columnOrder`. Uncontrolled until set,\nlike `sorting`: once set, hiding or showing from a plugin only fires\n`argus-column-visibility-change` with the proposed visibility. `undefined` hands it back."
|
|
679
887
|
},
|
|
680
888
|
{
|
|
681
|
-
"kind": "
|
|
682
|
-
"name": "
|
|
683
|
-
"
|
|
684
|
-
"
|
|
685
|
-
"text": "Promise<void>"
|
|
686
|
-
}
|
|
889
|
+
"kind": "field",
|
|
890
|
+
"name": "columnFilters",
|
|
891
|
+
"type": {
|
|
892
|
+
"text": "ColumnFilterState"
|
|
687
893
|
},
|
|
688
|
-
"
|
|
689
|
-
|
|
894
|
+
"description": "Filters by column id, e.g. `{ city: { kind: 'set', values: ['Berlin'] } }` or\n`{ total: { kind: 'number', op: 'gt', value: 100 } }`. A row shows when it passes\nevery filter and `quickFilter`. Filters on hidden columns still apply; unknown ids\nare ignored. A column's `filterFn` replaces the built-in matching. With a\n`dataSource`, the filters go to `getRows()` and the server filters. Users set\nfilters through plugins (the column menu) on columns with a `filter` kind.\nUncontrolled until set, like `sorting`: once set, a change from a plugin only\nfires `argus-column-filters-change` with the proposed filters. `undefined` hands it back."
|
|
895
|
+
},
|
|
896
|
+
{
|
|
897
|
+
"kind": "field",
|
|
898
|
+
"name": "quickFilter",
|
|
899
|
+
"type": {
|
|
900
|
+
"text": "string"
|
|
901
|
+
},
|
|
902
|
+
"description": "Shows only rows that contain each word of this text in one of their shown\ncolumns, ignoring case, e.g. from a search box. Values are matched as text\n(dates as `2026-11-10`); objects aren't searched. With a `dataSource`, it goes\nto `getRows()` and the server filters. `''` (the default) shows every row.",
|
|
903
|
+
"attribute": "quick-filter"
|
|
904
|
+
},
|
|
905
|
+
{
|
|
906
|
+
"kind": "field",
|
|
907
|
+
"name": "selectionMode",
|
|
908
|
+
"type": {
|
|
909
|
+
"text": "SelectionMode"
|
|
910
|
+
},
|
|
911
|
+
"default": "'none'",
|
|
912
|
+
"description": "How rows can be selected: `none` (the default), `single` or `multi`. A click\non a body row selects it; in `multi` mode Ctrl/Cmd+click toggles a row,\nShift+click selects the range from the last clicked row, and Ctrl/Cmd+A\nselects every row. Space toggles the focused row. Clicks on buttons, links\nand inputs inside cells don't select. Pinned rows, and `dataSource` rows not\nloaded yet, can't be selected.",
|
|
913
|
+
"attribute": "selection-mode"
|
|
914
|
+
},
|
|
915
|
+
{
|
|
916
|
+
"kind": "field",
|
|
917
|
+
"name": "selectionCheckboxes",
|
|
918
|
+
"type": {
|
|
919
|
+
"text": "boolean"
|
|
920
|
+
},
|
|
921
|
+
"default": "false",
|
|
922
|
+
"description": "Adds a checkbox column, pinned first at the start, while `selectionMode` is\n`single` or `multi`. A row's checkbox toggles it (Shift+click adds the range\nfrom the last row clicked); in `multi` mode the header's checkbox selects\nevery row, or clears the selection when all are selected. Space on a\nfocused checkbox cell does the same. The column isn't part of `columns`,\n`columnOrder` or `columnSizing`, and it fires no `argus-cell-click`.\nAs an attribute, `selection-checkboxes=\"false\"` is off, like no attribute.",
|
|
923
|
+
"attribute": "selection-checkboxes"
|
|
924
|
+
},
|
|
925
|
+
{
|
|
926
|
+
"kind": "field",
|
|
927
|
+
"name": "selection",
|
|
928
|
+
"type": {
|
|
929
|
+
"text": "SelectionState"
|
|
930
|
+
},
|
|
931
|
+
"description": "The selected rows, as row ids (from `getRowId`, or the row's index as a\nstring), e.g. `['p4', 'p7']`. Uncontrolled until set, like `sorting`: once\nset, a click only fires `argus-selection-change` with the proposed ids.\n`undefined` hands it back. The table never drops ids on its own: they stay\nthrough sorting, a new `data` or reloaded pages. With a `dataSource`,\nCtrl/Cmd+A selects the loaded rows only."
|
|
932
|
+
},
|
|
933
|
+
{
|
|
934
|
+
"kind": "field",
|
|
935
|
+
"name": "contentRenderer",
|
|
936
|
+
"type": {
|
|
937
|
+
"text": "ContentRenderer | undefined"
|
|
938
|
+
},
|
|
939
|
+
"description": "Renders header and cell content the table can't render itself, such as React\nelements, Vue VNodes or Angular templates: `{ render(target, content),\nrelease(target), flush?() }`. A `header` or `cell` that returns anything other\nthan a string, a number, a DOM node or a Lit template hands it to the renderer,\nwith a target element the table keeps while the cell is reused for other rows.\nThe framework wrappers set it; set it yourself only for another framework."
|
|
940
|
+
},
|
|
941
|
+
{
|
|
942
|
+
"kind": "field",
|
|
943
|
+
"name": "plugins",
|
|
944
|
+
"type": {
|
|
945
|
+
"text": "readonly ArgusPlugin<T>[]"
|
|
946
|
+
},
|
|
947
|
+
"description": "Add-ons, such as `headerMenu()` from `@argus-table/header-menu`. Each one can\nchange the column definitions, handle keys on a focused header or cell, and\nuse the table through a small API. They run in array order. Replace the\narray to change them; an array with the same plugins in the same order\nchanges nothing. `null` or `undefined` means `[]`."
|
|
948
|
+
},
|
|
949
|
+
{
|
|
950
|
+
"kind": "method",
|
|
951
|
+
"name": "refresh",
|
|
952
|
+
"return": {
|
|
953
|
+
"type": {
|
|
954
|
+
"text": "Promise<void>"
|
|
955
|
+
}
|
|
956
|
+
},
|
|
957
|
+
"description": "With a `dataSource`, drops every loaded page and loads the rows in view\nagain, keeping the scroll position. With `data`, re-renders the cells (after\nchanging row objects in place). Resolves once the table has re-rendered;\nreloaded rows arrive as their pages load."
|
|
958
|
+
},
|
|
959
|
+
{
|
|
960
|
+
"kind": "method",
|
|
961
|
+
"name": "autosizeColumns",
|
|
962
|
+
"return": {
|
|
963
|
+
"type": {
|
|
964
|
+
"text": "Promise<void>"
|
|
965
|
+
}
|
|
966
|
+
},
|
|
967
|
+
"parameters": [
|
|
968
|
+
{
|
|
969
|
+
"name": "ids",
|
|
970
|
+
"optional": true,
|
|
971
|
+
"type": {
|
|
972
|
+
"text": "readonly string[]"
|
|
973
|
+
}
|
|
974
|
+
}
|
|
975
|
+
],
|
|
976
|
+
"description": "Fits columns to their content: the header, the pinned rows and the body rows\nrendered now (rows out of view aren't measured). It resizes them like a drag\nwould, so `argus-column-sizing-change` fires for each column that changes, and with a\ncontrolled `columnSizing` nothing changes until you set it. Without `ids`, fits\nevery resizable column; columns with `resizable: false` keep their width.\nWith `virtualizeColumns`, columns out of view render for the measurement.\nResolves once the table has re-rendered."
|
|
977
|
+
},
|
|
978
|
+
{
|
|
979
|
+
"kind": "method",
|
|
980
|
+
"name": "scrollToRow",
|
|
981
|
+
"return": {
|
|
982
|
+
"type": {
|
|
983
|
+
"text": "Promise<void>"
|
|
984
|
+
}
|
|
985
|
+
},
|
|
986
|
+
"parameters": [
|
|
987
|
+
{
|
|
690
988
|
"name": "index",
|
|
691
989
|
"type": {
|
|
692
990
|
"text": "number"
|
|
@@ -694,35 +992,91 @@
|
|
|
694
992
|
}
|
|
695
993
|
],
|
|
696
994
|
"description": "Scrolls so that the row at `index` (in the current row order) is at the top."
|
|
995
|
+
},
|
|
996
|
+
{
|
|
997
|
+
"kind": "method",
|
|
998
|
+
"name": "getState",
|
|
999
|
+
"return": {
|
|
1000
|
+
"type": {
|
|
1001
|
+
"text": "Required<TableState>"
|
|
1002
|
+
}
|
|
1003
|
+
},
|
|
1004
|
+
"description": "The state users change, as one object of plain JSON for saving a user's\nlayout: `sorting`, `columnSizing`, `columnOrder`, `columnPinning`,\n`columnVisibility`, `columnFilters`, `selection`, `quickFilter`, and `scroll`\n(the row at the top and the inline offset), with `version: 1`. Controlled properties are\nincluded with the values you set. The object is a copy: changing it changes\nnothing in the table."
|
|
1005
|
+
},
|
|
1006
|
+
{
|
|
1007
|
+
"kind": "method",
|
|
1008
|
+
"name": "setState",
|
|
1009
|
+
"return": {
|
|
1010
|
+
"type": {
|
|
1011
|
+
"text": "Promise<void>"
|
|
1012
|
+
}
|
|
1013
|
+
},
|
|
1014
|
+
"parameters": [
|
|
1015
|
+
{
|
|
1016
|
+
"name": "state",
|
|
1017
|
+
"type": {
|
|
1018
|
+
"text": "TableState"
|
|
1019
|
+
}
|
|
1020
|
+
}
|
|
1021
|
+
],
|
|
1022
|
+
"description": "Restores state from `getState()`, for example a layout saved in\n`localStorage`. Only the keys given change; ids of columns that no longer\nexist are ignored. State of another `version` is ignored as a whole. Properties you control are left alone (set them\nyourself), and the others stay uncontrolled. No change events fire.\n`quickFilter` is set like the property: a search box of yours shows it only\nif you read it back. `scroll` is applied after the rest, so with a\n`dataSource` the restored rows load where it points. Resolves once the table\nhas re-rendered there."
|
|
697
1023
|
}
|
|
698
1024
|
],
|
|
699
1025
|
"events": [
|
|
700
1026
|
{
|
|
701
1027
|
"type": {
|
|
702
|
-
"text": "CustomEvent<
|
|
1028
|
+
"text": "CustomEvent<SortingChangeDetail>"
|
|
1029
|
+
},
|
|
1030
|
+
"description": "`sorting` changed: a sortable header was clicked, or activated with Enter or Space. `detail: { sorting }`. The new value fires after the update that applied it; when the property is controlled, the proposed value fires right away and nothing changes until the host sets it.",
|
|
1031
|
+
"name": "argus-sorting-change"
|
|
1032
|
+
},
|
|
1033
|
+
{
|
|
1034
|
+
"type": {
|
|
1035
|
+
"text": "CustomEvent<ColumnSizingChangeDetail>"
|
|
703
1036
|
},
|
|
704
|
-
"description": "
|
|
705
|
-
"name": "argus-
|
|
1037
|
+
"description": "`columnSizing` changed: a column was resized by dragging its handle, with Alt+Arrow on its header, by a double-click on its handle (fit to content) or by `autosizeColumns()`. `detail: { columnSizing, columnId, width }`. Fires on every frame of a drag, and once per column that changes (a group resize, `autosizeColumns()`). The new value fires after the update that applied it; when the property is controlled, the proposed value fires right away and nothing changes until the host sets it.",
|
|
1038
|
+
"name": "argus-column-sizing-change"
|
|
706
1039
|
},
|
|
707
1040
|
{
|
|
708
1041
|
"type": {
|
|
709
|
-
"text": "CustomEvent<
|
|
1042
|
+
"text": "CustomEvent<ColumnOrderChangeDetail>"
|
|
710
1043
|
},
|
|
711
|
-
"description": "
|
|
712
|
-
"name": "argus-column-
|
|
1044
|
+
"description": "`columnOrder` changed: a column or column group was moved by dragging its header, or with Alt+Shift+Arrow on its focused header. Columns move within their pin side (start-pinned, scrolling, end-pinned) and their column group; groups move as a whole. `detail: { columnOrder, columnId, groupId? }`: `groupId` is set when a group moved, and `columnId` is then its first column. Fires once per move, on drop. The new value fires after the update that applied it; when the property is controlled, the proposed value fires right away and nothing changes until the host sets it.",
|
|
1045
|
+
"name": "argus-column-order-change"
|
|
713
1046
|
},
|
|
714
1047
|
{
|
|
715
1048
|
"type": {
|
|
716
|
-
"text": "CustomEvent<
|
|
1049
|
+
"text": "CustomEvent<ColumnPinningChangeDetail>"
|
|
717
1050
|
},
|
|
718
|
-
"description": "
|
|
719
|
-
"name": "argus-column-
|
|
1051
|
+
"description": "`columnPinning` changed: a column was pinned to a side or unpinned, through a plugin such as the column menu. `detail: { columnPinning, columnId, pin }`: `pin` is `'start'`, `'end'` or `false`. The new value fires after the update that applied it; when the property is controlled, the proposed value fires right away and nothing changes until the host sets it.",
|
|
1052
|
+
"name": "argus-column-pinning-change"
|
|
1053
|
+
},
|
|
1054
|
+
{
|
|
1055
|
+
"type": {
|
|
1056
|
+
"text": "CustomEvent<ColumnVisibilityChangeDetail>"
|
|
1057
|
+
},
|
|
1058
|
+
"description": "`columnVisibility` changed: a column was hidden or shown, through a plugin such as the column menu. `detail: { columnVisibility, columnId, visible }`: `visible` is `false` when it was hidden. The new value fires after the update that applied it; when the property is controlled, the proposed value fires right away and nothing changes until the host sets it.",
|
|
1059
|
+
"name": "argus-column-visibility-change"
|
|
1060
|
+
},
|
|
1061
|
+
{
|
|
1062
|
+
"type": {
|
|
1063
|
+
"text": "CustomEvent<ColumnFiltersChangeDetail>"
|
|
1064
|
+
},
|
|
1065
|
+
"description": "`columnFilters` changed: a column's filter was set, changed or cleared, through a plugin such as the column menu. `detail: { columnFilters, columnId, columnFilter }`: `columnFilter` is the column's new filter, or `undefined` when it was cleared. The new value fires after the update that applied it; when the property is controlled, the proposed value fires right away and nothing changes until the host sets it.",
|
|
1066
|
+
"name": "argus-column-filters-change"
|
|
1067
|
+
},
|
|
1068
|
+
{
|
|
1069
|
+
"type": {
|
|
1070
|
+
"text": "CustomEvent<SelectionChangeDetail>"
|
|
1071
|
+
},
|
|
1072
|
+
"description": "`selection` changed: by a click on a row (Ctrl/Cmd toggles, Shift selects a range), with Space, Shift+Arrow or Shift+PageUp/PageDown on a body cell, or with Ctrl/Cmd+A. Only with a `selectionMode`. `detail: { selection }`. The new value fires after the update that applied it; when the property is controlled, the proposed value fires right away and nothing changes until the host sets it.",
|
|
1073
|
+
"name": "argus-selection-change"
|
|
720
1074
|
},
|
|
721
1075
|
{
|
|
722
1076
|
"type": {
|
|
723
1077
|
"text": "CustomEvent<CellClickDetail<T>>"
|
|
724
1078
|
},
|
|
725
|
-
"description": "A body or pinned-row cell was clicked, or Enter was pressed on it. `detail: { row, columnId, value, pinned? }`; `pinned` is `'top'` or `'bottom'` for a pinned row. Fires before `argus-row-click`.",
|
|
1079
|
+
"description": "A body or pinned-row cell was clicked, or Enter was pressed on it. `detail: { row, rowId, index, columnId, value, pinned? }`; `pinned` is `'top'` or `'bottom'` for a pinned row, and `index` is then its index in its list. Fires before `argus-row-click`.",
|
|
726
1080
|
"name": "argus-cell-click"
|
|
727
1081
|
},
|
|
728
1082
|
{
|
|
@@ -736,7 +1090,7 @@
|
|
|
736
1090
|
"type": {
|
|
737
1091
|
"text": "CustomEvent<RangeChangeDetail>"
|
|
738
1092
|
},
|
|
739
|
-
"description": "The
|
|
1093
|
+
"description": "The rows in view changed (rows rendered ahead of the scroll position not counted). `detail: { first, last }` (row indices in the current order, both inclusive).",
|
|
740
1094
|
"name": "argus-range-change"
|
|
741
1095
|
},
|
|
742
1096
|
{
|
|
@@ -751,9 +1105,9 @@
|
|
|
751
1105
|
{
|
|
752
1106
|
"name": "row-height",
|
|
753
1107
|
"type": {
|
|
754
|
-
"text": "number | undefined"
|
|
1108
|
+
"text": "number | 'auto' | undefined"
|
|
755
1109
|
},
|
|
756
|
-
"description": "Row height in px
|
|
1110
|
+
"description": "Row height in px, or `'auto'` to fit each row to its content (`row-height=\"auto\"`).\nUnset: the density (or the `--argus-row-height` token) decides. With\n`'auto'`, that height is the header's and the least a body or pinned row is;\nrows grow to fit wrapped text (`wrap` columns) and taller content, and cell\ncontent sits at the top. Rows are measured as they render: a row's height\ncounts the columns rendered (see `virtualizeColumns`), and rows not seen yet\ncount as one line. Give images a size, so rows don't move when they load.",
|
|
757
1111
|
"fieldName": "rowHeight"
|
|
758
1112
|
},
|
|
759
1113
|
{
|
|
@@ -772,6 +1126,41 @@
|
|
|
772
1126
|
},
|
|
773
1127
|
"description": "Rows rendered above and below the visible ones. `null` or `undefined` means the default, 6.",
|
|
774
1128
|
"fieldName": "overscan"
|
|
1129
|
+
},
|
|
1130
|
+
{
|
|
1131
|
+
"name": "virtualize-columns",
|
|
1132
|
+
"type": {
|
|
1133
|
+
"text": "boolean"
|
|
1134
|
+
},
|
|
1135
|
+
"default": "false",
|
|
1136
|
+
"description": "Renders only the scrolling columns in view (plus two on each side), for\nwide tables: a few dozen columns and more. Pinned columns, the checkbox\ncolumn and the focused cell's column always render. Off by default: then\nevery column renders, as before. Cells are placed in their grid column\nexplicitly, so page CSS that relies on their order in the DOM (`:nth-child`\non cells) doesn't apply. `autosizeColumns()` and `width: 'auto'` columns\nstill measure columns out of view: they render for the measurement.\nAs an attribute, `virtualize-columns=\"false\"` is off, like no attribute.",
|
|
1137
|
+
"fieldName": "virtualizeColumns"
|
|
1138
|
+
},
|
|
1139
|
+
{
|
|
1140
|
+
"name": "quick-filter",
|
|
1141
|
+
"type": {
|
|
1142
|
+
"text": "string"
|
|
1143
|
+
},
|
|
1144
|
+
"description": "Shows only rows that contain each word of this text in one of their shown\ncolumns, ignoring case, e.g. from a search box. Values are matched as text\n(dates as `2026-11-10`); objects aren't searched. With a `dataSource`, it goes\nto `getRows()` and the server filters. `''` (the default) shows every row.",
|
|
1145
|
+
"fieldName": "quickFilter"
|
|
1146
|
+
},
|
|
1147
|
+
{
|
|
1148
|
+
"name": "selection-mode",
|
|
1149
|
+
"type": {
|
|
1150
|
+
"text": "SelectionMode"
|
|
1151
|
+
},
|
|
1152
|
+
"default": "'none'",
|
|
1153
|
+
"description": "How rows can be selected: `none` (the default), `single` or `multi`. A click\non a body row selects it; in `multi` mode Ctrl/Cmd+click toggles a row,\nShift+click selects the range from the last clicked row, and Ctrl/Cmd+A\nselects every row. Space toggles the focused row. Clicks on buttons, links\nand inputs inside cells don't select. Pinned rows, and `dataSource` rows not\nloaded yet, can't be selected.",
|
|
1154
|
+
"fieldName": "selectionMode"
|
|
1155
|
+
},
|
|
1156
|
+
{
|
|
1157
|
+
"name": "selection-checkboxes",
|
|
1158
|
+
"type": {
|
|
1159
|
+
"text": "boolean"
|
|
1160
|
+
},
|
|
1161
|
+
"default": "false",
|
|
1162
|
+
"description": "Adds a checkbox column, pinned first at the start, while `selectionMode` is\n`single` or `multi`. A row's checkbox toggles it (Shift+click adds the range\nfrom the last row clicked); in `multi` mode the header's checkbox selects\nevery row, or clears the selection when all are selected. Space on a\nfocused checkbox cell does the same. The column isn't part of `columns`,\n`columnOrder` or `columnSizing`, and it fires no `argus-cell-click`.\nAs an attribute, `selection-checkboxes=\"false\"` is off, like no attribute.",
|
|
1163
|
+
"fieldName": "selectionCheckboxes"
|
|
775
1164
|
}
|
|
776
1165
|
],
|
|
777
1166
|
"superclass": {
|
|
@@ -802,6 +1191,103 @@
|
|
|
802
1191
|
}
|
|
803
1192
|
]
|
|
804
1193
|
},
|
|
1194
|
+
{
|
|
1195
|
+
"kind": "javascript-module",
|
|
1196
|
+
"path": "src/attributes.ts",
|
|
1197
|
+
"declarations": [],
|
|
1198
|
+
"exports": []
|
|
1199
|
+
},
|
|
1200
|
+
{
|
|
1201
|
+
"kind": "javascript-module",
|
|
1202
|
+
"path": "src/column-registry.ts",
|
|
1203
|
+
"declarations": [
|
|
1204
|
+
{
|
|
1205
|
+
"kind": "function",
|
|
1206
|
+
"name": "watchColumns",
|
|
1207
|
+
"return": {
|
|
1208
|
+
"type": {
|
|
1209
|
+
"text": "void"
|
|
1210
|
+
}
|
|
1211
|
+
},
|
|
1212
|
+
"parameters": [
|
|
1213
|
+
{
|
|
1214
|
+
"name": "host",
|
|
1215
|
+
"type": {
|
|
1216
|
+
"text": "Element"
|
|
1217
|
+
}
|
|
1218
|
+
},
|
|
1219
|
+
{
|
|
1220
|
+
"name": "onChange",
|
|
1221
|
+
"type": {
|
|
1222
|
+
"text": "() => void"
|
|
1223
|
+
}
|
|
1224
|
+
}
|
|
1225
|
+
],
|
|
1226
|
+
"description": "Calls `onChange` whenever a column or group child of `host` is added, removed, moved or changed."
|
|
1227
|
+
},
|
|
1228
|
+
{
|
|
1229
|
+
"kind": "function",
|
|
1230
|
+
"name": "unwatchColumns",
|
|
1231
|
+
"return": {
|
|
1232
|
+
"type": {
|
|
1233
|
+
"text": "void"
|
|
1234
|
+
}
|
|
1235
|
+
},
|
|
1236
|
+
"parameters": [
|
|
1237
|
+
{
|
|
1238
|
+
"name": "host",
|
|
1239
|
+
"type": {
|
|
1240
|
+
"text": "Element"
|
|
1241
|
+
}
|
|
1242
|
+
}
|
|
1243
|
+
]
|
|
1244
|
+
},
|
|
1245
|
+
{
|
|
1246
|
+
"kind": "function",
|
|
1247
|
+
"name": "notify",
|
|
1248
|
+
"return": {
|
|
1249
|
+
"type": {
|
|
1250
|
+
"text": "void"
|
|
1251
|
+
}
|
|
1252
|
+
},
|
|
1253
|
+
"parameters": [
|
|
1254
|
+
{
|
|
1255
|
+
"name": "parent",
|
|
1256
|
+
"type": {
|
|
1257
|
+
"text": "Element | null"
|
|
1258
|
+
}
|
|
1259
|
+
}
|
|
1260
|
+
],
|
|
1261
|
+
"description": "Tells a column's or group's parent that it changed."
|
|
1262
|
+
}
|
|
1263
|
+
],
|
|
1264
|
+
"exports": [
|
|
1265
|
+
{
|
|
1266
|
+
"kind": "js",
|
|
1267
|
+
"name": "watchColumns",
|
|
1268
|
+
"declaration": {
|
|
1269
|
+
"name": "watchColumns",
|
|
1270
|
+
"module": "src/column-registry.ts"
|
|
1271
|
+
}
|
|
1272
|
+
},
|
|
1273
|
+
{
|
|
1274
|
+
"kind": "js",
|
|
1275
|
+
"name": "unwatchColumns",
|
|
1276
|
+
"declaration": {
|
|
1277
|
+
"name": "unwatchColumns",
|
|
1278
|
+
"module": "src/column-registry.ts"
|
|
1279
|
+
}
|
|
1280
|
+
},
|
|
1281
|
+
{
|
|
1282
|
+
"kind": "js",
|
|
1283
|
+
"name": "notify",
|
|
1284
|
+
"declaration": {
|
|
1285
|
+
"name": "notify",
|
|
1286
|
+
"module": "src/column-registry.ts"
|
|
1287
|
+
}
|
|
1288
|
+
}
|
|
1289
|
+
]
|
|
1290
|
+
},
|
|
805
1291
|
{
|
|
806
1292
|
"kind": "javascript-module",
|
|
807
1293
|
"path": "src/events.ts",
|
|
@@ -813,34 +1299,70 @@
|
|
|
813
1299
|
"text": "string"
|
|
814
1300
|
},
|
|
815
1301
|
"default": "'argus-range-change'",
|
|
816
|
-
"description": "Fired after an update when the
|
|
1302
|
+
"description": "Fired after an update when the rows in view changed."
|
|
1303
|
+
},
|
|
1304
|
+
{
|
|
1305
|
+
"kind": "variable",
|
|
1306
|
+
"name": "SORTING_CHANGE",
|
|
1307
|
+
"type": {
|
|
1308
|
+
"text": "string"
|
|
1309
|
+
},
|
|
1310
|
+
"default": "'argus-sorting-change'",
|
|
1311
|
+
"description": "`sorting` changed (uncontrolled), or the proposed order (controlled)."
|
|
817
1312
|
},
|
|
818
1313
|
{
|
|
819
1314
|
"kind": "variable",
|
|
820
|
-
"name": "
|
|
1315
|
+
"name": "COLUMN_SIZING_CHANGE",
|
|
821
1316
|
"type": {
|
|
822
1317
|
"text": "string"
|
|
823
1318
|
},
|
|
824
|
-
"default": "'argus-
|
|
825
|
-
"description": "
|
|
1319
|
+
"default": "'argus-column-sizing-change'",
|
|
1320
|
+
"description": "`columnSizing` changed (uncontrolled), or the proposed widths (controlled). Once per column."
|
|
826
1321
|
},
|
|
827
1322
|
{
|
|
828
1323
|
"kind": "variable",
|
|
829
|
-
"name": "
|
|
1324
|
+
"name": "COLUMN_ORDER_CHANGE",
|
|
830
1325
|
"type": {
|
|
831
1326
|
"text": "string"
|
|
832
1327
|
},
|
|
833
|
-
"default": "'argus-column-
|
|
834
|
-
"description": "
|
|
1328
|
+
"default": "'argus-column-order-change'",
|
|
1329
|
+
"description": "`columnOrder` changed (uncontrolled), or the proposed order (controlled)."
|
|
835
1330
|
},
|
|
836
1331
|
{
|
|
837
1332
|
"kind": "variable",
|
|
838
|
-
"name": "
|
|
1333
|
+
"name": "COLUMN_PINNING_CHANGE",
|
|
839
1334
|
"type": {
|
|
840
1335
|
"text": "string"
|
|
841
1336
|
},
|
|
842
|
-
"default": "'argus-column-
|
|
843
|
-
"description": "
|
|
1337
|
+
"default": "'argus-column-pinning-change'",
|
|
1338
|
+
"description": "`columnPinning` changed (uncontrolled), or the proposed pins (controlled)."
|
|
1339
|
+
},
|
|
1340
|
+
{
|
|
1341
|
+
"kind": "variable",
|
|
1342
|
+
"name": "COLUMN_VISIBILITY_CHANGE",
|
|
1343
|
+
"type": {
|
|
1344
|
+
"text": "string"
|
|
1345
|
+
},
|
|
1346
|
+
"default": "'argus-column-visibility-change'",
|
|
1347
|
+
"description": "`columnVisibility` changed (uncontrolled), or the proposed visibility (controlled)."
|
|
1348
|
+
},
|
|
1349
|
+
{
|
|
1350
|
+
"kind": "variable",
|
|
1351
|
+
"name": "COLUMN_FILTERS_CHANGE",
|
|
1352
|
+
"type": {
|
|
1353
|
+
"text": "string"
|
|
1354
|
+
},
|
|
1355
|
+
"default": "'argus-column-filters-change'",
|
|
1356
|
+
"description": "`columnFilters` changed (uncontrolled), or the proposed filters (controlled)."
|
|
1357
|
+
},
|
|
1358
|
+
{
|
|
1359
|
+
"kind": "variable",
|
|
1360
|
+
"name": "SELECTION_CHANGE",
|
|
1361
|
+
"type": {
|
|
1362
|
+
"text": "string"
|
|
1363
|
+
},
|
|
1364
|
+
"default": "'argus-selection-change'",
|
|
1365
|
+
"description": "`selection` changed (uncontrolled), or the proposed ids (controlled)."
|
|
844
1366
|
},
|
|
845
1367
|
{
|
|
846
1368
|
"kind": "variable",
|
|
@@ -911,25 +1433,57 @@
|
|
|
911
1433
|
},
|
|
912
1434
|
{
|
|
913
1435
|
"kind": "js",
|
|
914
|
-
"name": "
|
|
1436
|
+
"name": "SORTING_CHANGE",
|
|
1437
|
+
"declaration": {
|
|
1438
|
+
"name": "SORTING_CHANGE",
|
|
1439
|
+
"module": "src/events.ts"
|
|
1440
|
+
}
|
|
1441
|
+
},
|
|
1442
|
+
{
|
|
1443
|
+
"kind": "js",
|
|
1444
|
+
"name": "COLUMN_SIZING_CHANGE",
|
|
1445
|
+
"declaration": {
|
|
1446
|
+
"name": "COLUMN_SIZING_CHANGE",
|
|
1447
|
+
"module": "src/events.ts"
|
|
1448
|
+
}
|
|
1449
|
+
},
|
|
1450
|
+
{
|
|
1451
|
+
"kind": "js",
|
|
1452
|
+
"name": "COLUMN_ORDER_CHANGE",
|
|
1453
|
+
"declaration": {
|
|
1454
|
+
"name": "COLUMN_ORDER_CHANGE",
|
|
1455
|
+
"module": "src/events.ts"
|
|
1456
|
+
}
|
|
1457
|
+
},
|
|
1458
|
+
{
|
|
1459
|
+
"kind": "js",
|
|
1460
|
+
"name": "COLUMN_PINNING_CHANGE",
|
|
915
1461
|
"declaration": {
|
|
916
|
-
"name": "
|
|
1462
|
+
"name": "COLUMN_PINNING_CHANGE",
|
|
917
1463
|
"module": "src/events.ts"
|
|
918
1464
|
}
|
|
919
1465
|
},
|
|
920
1466
|
{
|
|
921
1467
|
"kind": "js",
|
|
922
|
-
"name": "
|
|
1468
|
+
"name": "COLUMN_VISIBILITY_CHANGE",
|
|
923
1469
|
"declaration": {
|
|
924
|
-
"name": "
|
|
1470
|
+
"name": "COLUMN_VISIBILITY_CHANGE",
|
|
925
1471
|
"module": "src/events.ts"
|
|
926
1472
|
}
|
|
927
1473
|
},
|
|
928
1474
|
{
|
|
929
1475
|
"kind": "js",
|
|
930
|
-
"name": "
|
|
1476
|
+
"name": "COLUMN_FILTERS_CHANGE",
|
|
931
1477
|
"declaration": {
|
|
932
|
-
"name": "
|
|
1478
|
+
"name": "COLUMN_FILTERS_CHANGE",
|
|
1479
|
+
"module": "src/events.ts"
|
|
1480
|
+
}
|
|
1481
|
+
},
|
|
1482
|
+
{
|
|
1483
|
+
"kind": "js",
|
|
1484
|
+
"name": "SELECTION_CHANGE",
|
|
1485
|
+
"declaration": {
|
|
1486
|
+
"name": "SELECTION_CHANGE",
|
|
933
1487
|
"module": "src/events.ts"
|
|
934
1488
|
}
|
|
935
1489
|
},
|
|
@@ -980,6 +1534,14 @@
|
|
|
980
1534
|
"module": "./argus-column.js"
|
|
981
1535
|
}
|
|
982
1536
|
},
|
|
1537
|
+
{
|
|
1538
|
+
"kind": "js",
|
|
1539
|
+
"name": "ArgusColumnGroup",
|
|
1540
|
+
"declaration": {
|
|
1541
|
+
"name": "ArgusColumnGroup",
|
|
1542
|
+
"module": "./argus-column-group.js"
|
|
1543
|
+
}
|
|
1544
|
+
},
|
|
983
1545
|
{
|
|
984
1546
|
"kind": "js",
|
|
985
1547
|
"name": "ArgusTable",
|
|
@@ -988,6 +1550,14 @@
|
|
|
988
1550
|
"module": "./argus-table.js"
|
|
989
1551
|
}
|
|
990
1552
|
},
|
|
1553
|
+
{
|
|
1554
|
+
"kind": "js",
|
|
1555
|
+
"name": "content",
|
|
1556
|
+
"declaration": {
|
|
1557
|
+
"name": "content",
|
|
1558
|
+
"module": "./render/content-directive.js"
|
|
1559
|
+
}
|
|
1560
|
+
},
|
|
991
1561
|
{
|
|
992
1562
|
"kind": "js",
|
|
993
1563
|
"name": "CELL_CLICK",
|
|
@@ -998,17 +1568,41 @@
|
|
|
998
1568
|
},
|
|
999
1569
|
{
|
|
1000
1570
|
"kind": "js",
|
|
1001
|
-
"name": "
|
|
1571
|
+
"name": "COLUMN_FILTERS_CHANGE",
|
|
1572
|
+
"declaration": {
|
|
1573
|
+
"name": "COLUMN_FILTERS_CHANGE",
|
|
1574
|
+
"module": "./events.js"
|
|
1575
|
+
}
|
|
1576
|
+
},
|
|
1577
|
+
{
|
|
1578
|
+
"kind": "js",
|
|
1579
|
+
"name": "COLUMN_ORDER_CHANGE",
|
|
1580
|
+
"declaration": {
|
|
1581
|
+
"name": "COLUMN_ORDER_CHANGE",
|
|
1582
|
+
"module": "./events.js"
|
|
1583
|
+
}
|
|
1584
|
+
},
|
|
1585
|
+
{
|
|
1586
|
+
"kind": "js",
|
|
1587
|
+
"name": "COLUMN_PINNING_CHANGE",
|
|
1588
|
+
"declaration": {
|
|
1589
|
+
"name": "COLUMN_PINNING_CHANGE",
|
|
1590
|
+
"module": "./events.js"
|
|
1591
|
+
}
|
|
1592
|
+
},
|
|
1593
|
+
{
|
|
1594
|
+
"kind": "js",
|
|
1595
|
+
"name": "COLUMN_SIZING_CHANGE",
|
|
1002
1596
|
"declaration": {
|
|
1003
|
-
"name": "
|
|
1597
|
+
"name": "COLUMN_SIZING_CHANGE",
|
|
1004
1598
|
"module": "./events.js"
|
|
1005
1599
|
}
|
|
1006
1600
|
},
|
|
1007
1601
|
{
|
|
1008
1602
|
"kind": "js",
|
|
1009
|
-
"name": "
|
|
1603
|
+
"name": "COLUMN_VISIBILITY_CHANGE",
|
|
1010
1604
|
"declaration": {
|
|
1011
|
-
"name": "
|
|
1605
|
+
"name": "COLUMN_VISIBILITY_CHANGE",
|
|
1012
1606
|
"module": "./events.js"
|
|
1013
1607
|
}
|
|
1014
1608
|
},
|
|
@@ -1038,9 +1632,17 @@
|
|
|
1038
1632
|
},
|
|
1039
1633
|
{
|
|
1040
1634
|
"kind": "js",
|
|
1041
|
-
"name": "
|
|
1635
|
+
"name": "SELECTION_CHANGE",
|
|
1636
|
+
"declaration": {
|
|
1637
|
+
"name": "SELECTION_CHANGE",
|
|
1638
|
+
"module": "./events.js"
|
|
1639
|
+
}
|
|
1640
|
+
},
|
|
1641
|
+
{
|
|
1642
|
+
"kind": "js",
|
|
1643
|
+
"name": "SORTING_CHANGE",
|
|
1042
1644
|
"declaration": {
|
|
1043
|
-
"name": "
|
|
1645
|
+
"name": "SORTING_CHANGE",
|
|
1044
1646
|
"module": "./events.js"
|
|
1045
1647
|
}
|
|
1046
1648
|
},
|
|
@@ -1054,6 +1656,63 @@
|
|
|
1054
1656
|
}
|
|
1055
1657
|
]
|
|
1056
1658
|
},
|
|
1659
|
+
{
|
|
1660
|
+
"kind": "javascript-module",
|
|
1661
|
+
"path": "src/interactive.ts",
|
|
1662
|
+
"declarations": [
|
|
1663
|
+
{
|
|
1664
|
+
"kind": "variable",
|
|
1665
|
+
"name": "INTERACTIVE",
|
|
1666
|
+
"type": {
|
|
1667
|
+
"text": "string"
|
|
1668
|
+
},
|
|
1669
|
+
"default": "'button,input,select,textarea,a[href],label,[contenteditable],[popover],dialog'",
|
|
1670
|
+
"description": "Interactive content a page may put in a header or cell. A press on it belongs\nto that content: it doesn't sort, start a column drag or select a row. A\npopover or a dialog (a menu or an editor a plugin opens from a header) counts\nas a whole, padding included."
|
|
1671
|
+
},
|
|
1672
|
+
{
|
|
1673
|
+
"kind": "function",
|
|
1674
|
+
"name": "fromInteractive",
|
|
1675
|
+
"return": {
|
|
1676
|
+
"type": {
|
|
1677
|
+
"text": "boolean"
|
|
1678
|
+
}
|
|
1679
|
+
},
|
|
1680
|
+
"parameters": [
|
|
1681
|
+
{
|
|
1682
|
+
"name": "path",
|
|
1683
|
+
"type": {
|
|
1684
|
+
"text": "readonly EventTarget[]"
|
|
1685
|
+
}
|
|
1686
|
+
},
|
|
1687
|
+
{
|
|
1688
|
+
"name": "stop",
|
|
1689
|
+
"type": {
|
|
1690
|
+
"text": "Element"
|
|
1691
|
+
}
|
|
1692
|
+
}
|
|
1693
|
+
],
|
|
1694
|
+
"description": "Whether an event path reaches interactive content before `stop` (the cell or\nrow the table handles the event for)."
|
|
1695
|
+
}
|
|
1696
|
+
],
|
|
1697
|
+
"exports": [
|
|
1698
|
+
{
|
|
1699
|
+
"kind": "js",
|
|
1700
|
+
"name": "INTERACTIVE",
|
|
1701
|
+
"declaration": {
|
|
1702
|
+
"name": "INTERACTIVE",
|
|
1703
|
+
"module": "src/interactive.ts"
|
|
1704
|
+
}
|
|
1705
|
+
},
|
|
1706
|
+
{
|
|
1707
|
+
"kind": "js",
|
|
1708
|
+
"name": "fromInteractive",
|
|
1709
|
+
"declaration": {
|
|
1710
|
+
"name": "fromInteractive",
|
|
1711
|
+
"module": "src/interactive.ts"
|
|
1712
|
+
}
|
|
1713
|
+
}
|
|
1714
|
+
]
|
|
1715
|
+
},
|
|
1057
1716
|
{
|
|
1058
1717
|
"kind": "javascript-module",
|
|
1059
1718
|
"path": "src/max-height.ts",
|
|
@@ -1146,11 +1805,57 @@
|
|
|
1146
1805
|
}
|
|
1147
1806
|
]
|
|
1148
1807
|
},
|
|
1808
|
+
{
|
|
1809
|
+
"kind": "javascript-module",
|
|
1810
|
+
"path": "src/plugins.ts",
|
|
1811
|
+
"declarations": [],
|
|
1812
|
+
"exports": []
|
|
1813
|
+
},
|
|
1149
1814
|
{
|
|
1150
1815
|
"kind": "javascript-module",
|
|
1151
1816
|
"path": "src/types.ts",
|
|
1152
1817
|
"declarations": [],
|
|
1153
1818
|
"exports": [
|
|
1819
|
+
{
|
|
1820
|
+
"kind": "js",
|
|
1821
|
+
"name": "ArgusPlugin",
|
|
1822
|
+
"declaration": {
|
|
1823
|
+
"name": "ArgusPlugin",
|
|
1824
|
+
"module": "./plugins.js"
|
|
1825
|
+
}
|
|
1826
|
+
},
|
|
1827
|
+
{
|
|
1828
|
+
"kind": "js",
|
|
1829
|
+
"name": "CellTarget",
|
|
1830
|
+
"declaration": {
|
|
1831
|
+
"name": "CellTarget",
|
|
1832
|
+
"module": "./plugins.js"
|
|
1833
|
+
}
|
|
1834
|
+
},
|
|
1835
|
+
{
|
|
1836
|
+
"kind": "js",
|
|
1837
|
+
"name": "ColumnInfo",
|
|
1838
|
+
"declaration": {
|
|
1839
|
+
"name": "ColumnInfo",
|
|
1840
|
+
"module": "./plugins.js"
|
|
1841
|
+
}
|
|
1842
|
+
},
|
|
1843
|
+
{
|
|
1844
|
+
"kind": "js",
|
|
1845
|
+
"name": "PluginHost",
|
|
1846
|
+
"declaration": {
|
|
1847
|
+
"name": "PluginHost",
|
|
1848
|
+
"module": "./plugins.js"
|
|
1849
|
+
}
|
|
1850
|
+
},
|
|
1851
|
+
{
|
|
1852
|
+
"kind": "js",
|
|
1853
|
+
"name": "ContentRenderer",
|
|
1854
|
+
"declaration": {
|
|
1855
|
+
"name": "ContentRenderer",
|
|
1856
|
+
"module": "./render/content-directive.js"
|
|
1857
|
+
}
|
|
1858
|
+
},
|
|
1154
1859
|
{
|
|
1155
1860
|
"kind": "js",
|
|
1156
1861
|
"name": "CellClickDetail",
|
|
@@ -1175,6 +1880,38 @@
|
|
|
1175
1880
|
"package": "@argus-table/core"
|
|
1176
1881
|
}
|
|
1177
1882
|
},
|
|
1883
|
+
{
|
|
1884
|
+
"kind": "js",
|
|
1885
|
+
"name": "ColumnFilter",
|
|
1886
|
+
"declaration": {
|
|
1887
|
+
"name": "ColumnFilter",
|
|
1888
|
+
"package": "@argus-table/core"
|
|
1889
|
+
}
|
|
1890
|
+
},
|
|
1891
|
+
{
|
|
1892
|
+
"kind": "js",
|
|
1893
|
+
"name": "ColumnFiltersChangeDetail",
|
|
1894
|
+
"declaration": {
|
|
1895
|
+
"name": "ColumnFiltersChangeDetail",
|
|
1896
|
+
"package": "@argus-table/core"
|
|
1897
|
+
}
|
|
1898
|
+
},
|
|
1899
|
+
{
|
|
1900
|
+
"kind": "js",
|
|
1901
|
+
"name": "ColumnFilterState",
|
|
1902
|
+
"declaration": {
|
|
1903
|
+
"name": "ColumnFilterState",
|
|
1904
|
+
"package": "@argus-table/core"
|
|
1905
|
+
}
|
|
1906
|
+
},
|
|
1907
|
+
{
|
|
1908
|
+
"kind": "js",
|
|
1909
|
+
"name": "ColumnOrderChangeDetail",
|
|
1910
|
+
"declaration": {
|
|
1911
|
+
"name": "ColumnOrderChangeDetail",
|
|
1912
|
+
"package": "@argus-table/core"
|
|
1913
|
+
}
|
|
1914
|
+
},
|
|
1178
1915
|
{
|
|
1179
1916
|
"kind": "js",
|
|
1180
1917
|
"name": "ColumnOrderState",
|
|
@@ -1193,17 +1930,25 @@
|
|
|
1193
1930
|
},
|
|
1194
1931
|
{
|
|
1195
1932
|
"kind": "js",
|
|
1196
|
-
"name": "
|
|
1933
|
+
"name": "ColumnPinningChangeDetail",
|
|
1197
1934
|
"declaration": {
|
|
1198
|
-
"name": "
|
|
1935
|
+
"name": "ColumnPinningChangeDetail",
|
|
1199
1936
|
"package": "@argus-table/core"
|
|
1200
1937
|
}
|
|
1201
1938
|
},
|
|
1202
1939
|
{
|
|
1203
1940
|
"kind": "js",
|
|
1204
|
-
"name": "
|
|
1941
|
+
"name": "ColumnPinningState",
|
|
1205
1942
|
"declaration": {
|
|
1206
|
-
"name": "
|
|
1943
|
+
"name": "ColumnPinningState",
|
|
1944
|
+
"package": "@argus-table/core"
|
|
1945
|
+
}
|
|
1946
|
+
},
|
|
1947
|
+
{
|
|
1948
|
+
"kind": "js",
|
|
1949
|
+
"name": "ColumnSizingChangeDetail",
|
|
1950
|
+
"declaration": {
|
|
1951
|
+
"name": "ColumnSizingChangeDetail",
|
|
1207
1952
|
"package": "@argus-table/core"
|
|
1208
1953
|
}
|
|
1209
1954
|
},
|
|
@@ -1215,6 +1960,22 @@
|
|
|
1215
1960
|
"package": "@argus-table/core"
|
|
1216
1961
|
}
|
|
1217
1962
|
},
|
|
1963
|
+
{
|
|
1964
|
+
"kind": "js",
|
|
1965
|
+
"name": "ColumnVisibilityChangeDetail",
|
|
1966
|
+
"declaration": {
|
|
1967
|
+
"name": "ColumnVisibilityChangeDetail",
|
|
1968
|
+
"package": "@argus-table/core"
|
|
1969
|
+
}
|
|
1970
|
+
},
|
|
1971
|
+
{
|
|
1972
|
+
"kind": "js",
|
|
1973
|
+
"name": "ColumnVisibilityState",
|
|
1974
|
+
"declaration": {
|
|
1975
|
+
"name": "ColumnVisibilityState",
|
|
1976
|
+
"package": "@argus-table/core"
|
|
1977
|
+
}
|
|
1978
|
+
},
|
|
1218
1979
|
{
|
|
1219
1980
|
"kind": "js",
|
|
1220
1981
|
"name": "ColumnWidth",
|
|
@@ -1231,6 +1992,30 @@
|
|
|
1231
1992
|
"package": "@argus-table/core"
|
|
1232
1993
|
}
|
|
1233
1994
|
},
|
|
1995
|
+
{
|
|
1996
|
+
"kind": "js",
|
|
1997
|
+
"name": "DateFilter",
|
|
1998
|
+
"declaration": {
|
|
1999
|
+
"name": "DateFilter",
|
|
2000
|
+
"package": "@argus-table/core"
|
|
2001
|
+
}
|
|
2002
|
+
},
|
|
2003
|
+
{
|
|
2004
|
+
"kind": "js",
|
|
2005
|
+
"name": "FilterKind",
|
|
2006
|
+
"declaration": {
|
|
2007
|
+
"name": "FilterKind",
|
|
2008
|
+
"package": "@argus-table/core"
|
|
2009
|
+
}
|
|
2010
|
+
},
|
|
2011
|
+
{
|
|
2012
|
+
"kind": "js",
|
|
2013
|
+
"name": "FilterValue",
|
|
2014
|
+
"declaration": {
|
|
2015
|
+
"name": "FilterValue",
|
|
2016
|
+
"package": "@argus-table/core"
|
|
2017
|
+
}
|
|
2018
|
+
},
|
|
1234
2019
|
{
|
|
1235
2020
|
"kind": "js",
|
|
1236
2021
|
"name": "LoadErrorDetail",
|
|
@@ -1239,6 +2024,14 @@
|
|
|
1239
2024
|
"package": "@argus-table/core"
|
|
1240
2025
|
}
|
|
1241
2026
|
},
|
|
2027
|
+
{
|
|
2028
|
+
"kind": "js",
|
|
2029
|
+
"name": "NumberFilter",
|
|
2030
|
+
"declaration": {
|
|
2031
|
+
"name": "NumberFilter",
|
|
2032
|
+
"package": "@argus-table/core"
|
|
2033
|
+
}
|
|
2034
|
+
},
|
|
1242
2035
|
{
|
|
1243
2036
|
"kind": "js",
|
|
1244
2037
|
"name": "PinnedRows",
|
|
@@ -1255,6 +2048,14 @@
|
|
|
1255
2048
|
"package": "@argus-table/core"
|
|
1256
2049
|
}
|
|
1257
2050
|
},
|
|
2051
|
+
{
|
|
2052
|
+
"kind": "js",
|
|
2053
|
+
"name": "RangeFilterOp",
|
|
2054
|
+
"declaration": {
|
|
2055
|
+
"name": "RangeFilterOp",
|
|
2056
|
+
"package": "@argus-table/core"
|
|
2057
|
+
}
|
|
2058
|
+
},
|
|
1258
2059
|
{
|
|
1259
2060
|
"kind": "js",
|
|
1260
2061
|
"name": "RowClickDetail",
|
|
@@ -1289,9 +2090,57 @@
|
|
|
1289
2090
|
},
|
|
1290
2091
|
{
|
|
1291
2092
|
"kind": "js",
|
|
1292
|
-
"name": "
|
|
2093
|
+
"name": "ScrollState",
|
|
2094
|
+
"declaration": {
|
|
2095
|
+
"name": "ScrollState",
|
|
2096
|
+
"package": "@argus-table/core"
|
|
2097
|
+
}
|
|
2098
|
+
},
|
|
2099
|
+
{
|
|
2100
|
+
"kind": "js",
|
|
2101
|
+
"name": "SelectionChangeDetail",
|
|
2102
|
+
"declaration": {
|
|
2103
|
+
"name": "SelectionChangeDetail",
|
|
2104
|
+
"package": "@argus-table/core"
|
|
2105
|
+
}
|
|
2106
|
+
},
|
|
2107
|
+
{
|
|
2108
|
+
"kind": "js",
|
|
2109
|
+
"name": "SelectionMode",
|
|
2110
|
+
"declaration": {
|
|
2111
|
+
"name": "SelectionMode",
|
|
2112
|
+
"package": "@argus-table/core"
|
|
2113
|
+
}
|
|
2114
|
+
},
|
|
2115
|
+
{
|
|
2116
|
+
"kind": "js",
|
|
2117
|
+
"name": "SelectionState",
|
|
2118
|
+
"declaration": {
|
|
2119
|
+
"name": "SelectionState",
|
|
2120
|
+
"package": "@argus-table/core"
|
|
2121
|
+
}
|
|
2122
|
+
},
|
|
2123
|
+
{
|
|
2124
|
+
"kind": "js",
|
|
2125
|
+
"name": "SetFilter",
|
|
2126
|
+
"declaration": {
|
|
2127
|
+
"name": "SetFilter",
|
|
2128
|
+
"package": "@argus-table/core"
|
|
2129
|
+
}
|
|
2130
|
+
},
|
|
2131
|
+
{
|
|
2132
|
+
"kind": "js",
|
|
2133
|
+
"name": "SortDirection",
|
|
2134
|
+
"declaration": {
|
|
2135
|
+
"name": "SortDirection",
|
|
2136
|
+
"package": "@argus-table/core"
|
|
2137
|
+
}
|
|
2138
|
+
},
|
|
2139
|
+
{
|
|
2140
|
+
"kind": "js",
|
|
2141
|
+
"name": "SortingChangeDetail",
|
|
1293
2142
|
"declaration": {
|
|
1294
|
-
"name": "
|
|
2143
|
+
"name": "SortingChangeDetail",
|
|
1295
2144
|
"package": "@argus-table/core"
|
|
1296
2145
|
}
|
|
1297
2146
|
},
|
|
@@ -1310,6 +2159,30 @@
|
|
|
1310
2159
|
"name": "SortState",
|
|
1311
2160
|
"package": "@argus-table/core"
|
|
1312
2161
|
}
|
|
2162
|
+
},
|
|
2163
|
+
{
|
|
2164
|
+
"kind": "js",
|
|
2165
|
+
"name": "TableState",
|
|
2166
|
+
"declaration": {
|
|
2167
|
+
"name": "TableState",
|
|
2168
|
+
"package": "@argus-table/core"
|
|
2169
|
+
}
|
|
2170
|
+
},
|
|
2171
|
+
{
|
|
2172
|
+
"kind": "js",
|
|
2173
|
+
"name": "TextFilter",
|
|
2174
|
+
"declaration": {
|
|
2175
|
+
"name": "TextFilter",
|
|
2176
|
+
"package": "@argus-table/core"
|
|
2177
|
+
}
|
|
2178
|
+
},
|
|
2179
|
+
{
|
|
2180
|
+
"kind": "js",
|
|
2181
|
+
"name": "TextFilterOp",
|
|
2182
|
+
"declaration": {
|
|
2183
|
+
"name": "TextFilterOp",
|
|
2184
|
+
"package": "@argus-table/core"
|
|
2185
|
+
}
|
|
1313
2186
|
}
|
|
1314
2187
|
]
|
|
1315
2188
|
},
|
|
@@ -1367,11 +2240,29 @@
|
|
|
1367
2240
|
{
|
|
1368
2241
|
"name": "ids",
|
|
1369
2242
|
"type": {
|
|
1370
|
-
"text": "Iterable<string>"
|
|
2243
|
+
"text": "Iterable<string>"
|
|
2244
|
+
}
|
|
2245
|
+
}
|
|
2246
|
+
],
|
|
2247
|
+
"description": "Forgets columns that are gone or no longer `'auto'`, given the ids of the auto columns."
|
|
2248
|
+
},
|
|
2249
|
+
{
|
|
2250
|
+
"kind": "method",
|
|
2251
|
+
"name": "pending",
|
|
2252
|
+
"return": {
|
|
2253
|
+
"type": {
|
|
2254
|
+
"text": "string[]"
|
|
2255
|
+
}
|
|
2256
|
+
},
|
|
2257
|
+
"parameters": [
|
|
2258
|
+
{
|
|
2259
|
+
"name": "columns",
|
|
2260
|
+
"type": {
|
|
2261
|
+
"text": "readonly { id: string; auto: boolean }[]"
|
|
1371
2262
|
}
|
|
1372
2263
|
}
|
|
1373
2264
|
],
|
|
1374
|
-
"description": "
|
|
2265
|
+
"description": "The auto columns still to be measured: never, or without loaded rows yet.\nWith `virtualizeColumns` they render out of view until they are."
|
|
1375
2266
|
},
|
|
1376
2267
|
{
|
|
1377
2268
|
"kind": "method",
|
|
@@ -1431,7 +2322,7 @@
|
|
|
1431
2322
|
"declarations": [
|
|
1432
2323
|
{
|
|
1433
2324
|
"kind": "class",
|
|
1434
|
-
"description": "Reads the host's `<argus-column>` children into `ColumnDef`s.
|
|
2325
|
+
"description": "Reads the host's `<argus-column>` children, and those in its\n`<argus-column-group>` children, into `ColumnDef`s, and the groups into\n`ColumnGroup`s. Columns and groups tell the host when they change\n(`watchColumns`); the lists are rebuilt only then, so they keep their identity\nbetween changes.",
|
|
1435
2326
|
"name": "ColumnChildrenController",
|
|
1436
2327
|
"members": [
|
|
1437
2328
|
{
|
|
@@ -1467,7 +2358,16 @@
|
|
|
1467
2358
|
"type": {
|
|
1468
2359
|
"text": "readonly ColumnDef<T>[]"
|
|
1469
2360
|
},
|
|
1470
|
-
"description": "The children's columns, in document order.",
|
|
2361
|
+
"description": "The children's columns, in document order, those in groups included.",
|
|
2362
|
+
"readonly": true
|
|
2363
|
+
},
|
|
2364
|
+
{
|
|
2365
|
+
"kind": "field",
|
|
2366
|
+
"name": "groups",
|
|
2367
|
+
"type": {
|
|
2368
|
+
"text": "readonly ColumnGroup[]"
|
|
2369
|
+
},
|
|
2370
|
+
"description": "The `<argus-column-group>` children's groups, in document order.",
|
|
1471
2371
|
"readonly": true
|
|
1472
2372
|
}
|
|
1473
2373
|
]
|
|
@@ -1484,6 +2384,103 @@
|
|
|
1484
2384
|
}
|
|
1485
2385
|
]
|
|
1486
2386
|
},
|
|
2387
|
+
{
|
|
2388
|
+
"kind": "javascript-module",
|
|
2389
|
+
"path": "src/controllers/column-window.ts",
|
|
2390
|
+
"declarations": [
|
|
2391
|
+
{
|
|
2392
|
+
"kind": "variable",
|
|
2393
|
+
"name": "COLUMN_OVERSCAN",
|
|
2394
|
+
"type": {
|
|
2395
|
+
"text": "number"
|
|
2396
|
+
},
|
|
2397
|
+
"default": "2",
|
|
2398
|
+
"description": "Scrolling columns rendered beyond each side of the visible ones."
|
|
2399
|
+
},
|
|
2400
|
+
{
|
|
2401
|
+
"kind": "class",
|
|
2402
|
+
"description": "Column virtualization (`virtualizeColumns`): which columns render, and which\npool slot's DOM each one uses.\n\nOff, every column renders in visual order, its slot is its `colIndex` and\nits cells are keyed by column id: the DOM is what it always was.\n\nOn, the scrolling columns in view render, plus `COLUMN_OVERSCAN` on each\nside, and the pinned columns, the checkbox column and the columns the table\nkeeps (the active one, one being dragged, auto widths still to measure)\nwhatever the scroll position. They are pooled like rows (ADR 0001): a column\nentering the view reuses the cells, slots and content of one that left, so\nthe DOM is updated in place, and the window has one size, so the pool fills\non the first render and scrolling only reuses it (in WebKit, new slots\nwhile scrolling cut a wheel scroll short; see `steadyWindow`). DOM order is\nthen pool order: each cell is placed in its grid column explicitly, and\n`aria-colindex` carries the position, as `aria-rowindex` does for rows.",
|
|
2403
|
+
"name": "ColumnWindowController",
|
|
2404
|
+
"members": [
|
|
2405
|
+
{
|
|
2406
|
+
"kind": "method",
|
|
2407
|
+
"name": "hostConnected",
|
|
2408
|
+
"return": {
|
|
2409
|
+
"type": {
|
|
2410
|
+
"text": "void"
|
|
2411
|
+
}
|
|
2412
|
+
}
|
|
2413
|
+
},
|
|
2414
|
+
{
|
|
2415
|
+
"kind": "method",
|
|
2416
|
+
"name": "hostUpdated",
|
|
2417
|
+
"return": {
|
|
2418
|
+
"type": {
|
|
2419
|
+
"text": "void"
|
|
2420
|
+
}
|
|
2421
|
+
}
|
|
2422
|
+
},
|
|
2423
|
+
{
|
|
2424
|
+
"kind": "method",
|
|
2425
|
+
"name": "hostDisconnected",
|
|
2426
|
+
"return": {
|
|
2427
|
+
"type": {
|
|
2428
|
+
"text": "void"
|
|
2429
|
+
}
|
|
2430
|
+
}
|
|
2431
|
+
},
|
|
2432
|
+
{
|
|
2433
|
+
"kind": "method",
|
|
2434
|
+
"name": "compute",
|
|
2435
|
+
"return": {
|
|
2436
|
+
"type": {
|
|
2437
|
+
"text": "RenderedColumn<T>[]"
|
|
2438
|
+
}
|
|
2439
|
+
},
|
|
2440
|
+
"parameters": [
|
|
2441
|
+
{
|
|
2442
|
+
"name": "columns",
|
|
2443
|
+
"type": {
|
|
2444
|
+
"text": "readonly Column<T>[]"
|
|
2445
|
+
}
|
|
2446
|
+
},
|
|
2447
|
+
{
|
|
2448
|
+
"name": "enabled",
|
|
2449
|
+
"type": {
|
|
2450
|
+
"text": "boolean"
|
|
2451
|
+
}
|
|
2452
|
+
},
|
|
2453
|
+
{
|
|
2454
|
+
"name": "keep",
|
|
2455
|
+
"type": {
|
|
2456
|
+
"text": "Iterable<string | undefined>"
|
|
2457
|
+
}
|
|
2458
|
+
}
|
|
2459
|
+
],
|
|
2460
|
+
"description": "The columns to render, given the model's columns in visual order. With\n`enabled`, `keep` names columns to render wherever they are. Call once per\nrender."
|
|
2461
|
+
}
|
|
2462
|
+
]
|
|
2463
|
+
}
|
|
2464
|
+
],
|
|
2465
|
+
"exports": [
|
|
2466
|
+
{
|
|
2467
|
+
"kind": "js",
|
|
2468
|
+
"name": "COLUMN_OVERSCAN",
|
|
2469
|
+
"declaration": {
|
|
2470
|
+
"name": "COLUMN_OVERSCAN",
|
|
2471
|
+
"module": "src/controllers/column-window.ts"
|
|
2472
|
+
}
|
|
2473
|
+
},
|
|
2474
|
+
{
|
|
2475
|
+
"kind": "js",
|
|
2476
|
+
"name": "ColumnWindowController",
|
|
2477
|
+
"declaration": {
|
|
2478
|
+
"name": "ColumnWindowController",
|
|
2479
|
+
"module": "src/controllers/column-window.ts"
|
|
2480
|
+
}
|
|
2481
|
+
}
|
|
2482
|
+
]
|
|
2483
|
+
},
|
|
1487
2484
|
{
|
|
1488
2485
|
"kind": "javascript-module",
|
|
1489
2486
|
"path": "src/controllers/data-controller.ts",
|
|
@@ -1508,7 +2505,7 @@
|
|
|
1508
2505
|
},
|
|
1509
2506
|
{
|
|
1510
2507
|
"kind": "class",
|
|
1511
|
-
"description": "Loads `dataSource` pages for the rendered rows (infinite loading). It owns the\npage cache: a new source, sort order or row id function starts a fresh one, and\nanswers for an old cache are dropped. Requests wait until the range has been\nquiet for `LOAD_DEBOUNCE_MS`; pages that scrolled away are aborted.",
|
|
2508
|
+
"description": "Loads `dataSource` pages for the rendered rows (infinite loading). It owns the\npage cache: a new source, sort order, filter or row id function starts a fresh one, and\nanswers for an old cache are dropped. Requests wait until the range has been\nquiet for `LOAD_DEBOUNCE_MS`; pages that scrolled away are aborted.",
|
|
1512
2509
|
"name": "DataController",
|
|
1513
2510
|
"members": [
|
|
1514
2511
|
{
|
|
@@ -1554,7 +2551,7 @@
|
|
|
1554
2551
|
}
|
|
1555
2552
|
}
|
|
1556
2553
|
],
|
|
1557
|
-
"description": "Takes the source, sort order and row id function. Any change starts a
|
|
2554
|
+
"description": "Takes the source, sort order, filters and row id function. Any change starts a\nfresh cache; a sort or row id change keeps the row count (the rows are the same),\na new source or filter doesn't (the rows aren't)."
|
|
1558
2555
|
},
|
|
1559
2556
|
{
|
|
1560
2557
|
"kind": "method",
|
|
@@ -1725,6 +2722,167 @@
|
|
|
1725
2722
|
}
|
|
1726
2723
|
]
|
|
1727
2724
|
},
|
|
2725
|
+
{
|
|
2726
|
+
"kind": "javascript-module",
|
|
2727
|
+
"path": "src/controllers/plugins.ts",
|
|
2728
|
+
"declarations": [
|
|
2729
|
+
{
|
|
2730
|
+
"kind": "class",
|
|
2731
|
+
"description": "Runs the table's plugins: connects them while the table is connected (in\narray order, cleaning up in reverse), chains their column transforms, and\noffers keys to them before the table handles them. A hook that throws is\nreported and skipped, so a broken plugin can't break the update.",
|
|
2732
|
+
"name": "PluginController",
|
|
2733
|
+
"members": [
|
|
2734
|
+
{
|
|
2735
|
+
"kind": "method",
|
|
2736
|
+
"name": "set",
|
|
2737
|
+
"return": {
|
|
2738
|
+
"type": {
|
|
2739
|
+
"text": "void"
|
|
2740
|
+
}
|
|
2741
|
+
},
|
|
2742
|
+
"parameters": [
|
|
2743
|
+
{
|
|
2744
|
+
"name": "plugins",
|
|
2745
|
+
"type": {
|
|
2746
|
+
"text": "readonly ArgusPlugin<T>[]"
|
|
2747
|
+
}
|
|
2748
|
+
}
|
|
2749
|
+
],
|
|
2750
|
+
"description": "Takes a new plugin list; connects and cleans up to match it if the host is connected."
|
|
2751
|
+
},
|
|
2752
|
+
{
|
|
2753
|
+
"kind": "method",
|
|
2754
|
+
"name": "hostConnected",
|
|
2755
|
+
"return": {
|
|
2756
|
+
"type": {
|
|
2757
|
+
"text": "void"
|
|
2758
|
+
}
|
|
2759
|
+
}
|
|
2760
|
+
},
|
|
2761
|
+
{
|
|
2762
|
+
"kind": "method",
|
|
2763
|
+
"name": "hostDisconnected",
|
|
2764
|
+
"return": {
|
|
2765
|
+
"type": {
|
|
2766
|
+
"text": "void"
|
|
2767
|
+
}
|
|
2768
|
+
}
|
|
2769
|
+
},
|
|
2770
|
+
{
|
|
2771
|
+
"kind": "method",
|
|
2772
|
+
"name": "transform",
|
|
2773
|
+
"return": {
|
|
2774
|
+
"type": {
|
|
2775
|
+
"text": "readonly ColumnDef<T>[]"
|
|
2776
|
+
}
|
|
2777
|
+
},
|
|
2778
|
+
"parameters": [
|
|
2779
|
+
{
|
|
2780
|
+
"name": "input",
|
|
2781
|
+
"type": {
|
|
2782
|
+
"text": "readonly ColumnDef<T>[]"
|
|
2783
|
+
}
|
|
2784
|
+
}
|
|
2785
|
+
],
|
|
2786
|
+
"description": "The plugins' `columns` transforms applied in order; the same array while nothing changed."
|
|
2787
|
+
},
|
|
2788
|
+
{
|
|
2789
|
+
"kind": "method",
|
|
2790
|
+
"name": "transformGroups",
|
|
2791
|
+
"return": {
|
|
2792
|
+
"type": {
|
|
2793
|
+
"text": "readonly ColumnGroup[]"
|
|
2794
|
+
}
|
|
2795
|
+
},
|
|
2796
|
+
"parameters": [
|
|
2797
|
+
{
|
|
2798
|
+
"name": "input",
|
|
2799
|
+
"type": {
|
|
2800
|
+
"text": "readonly ColumnGroup[]"
|
|
2801
|
+
}
|
|
2802
|
+
}
|
|
2803
|
+
],
|
|
2804
|
+
"description": "The plugins' `columnGroups` transforms applied in order; the same array while nothing changed."
|
|
2805
|
+
},
|
|
2806
|
+
{
|
|
2807
|
+
"kind": "method",
|
|
2808
|
+
"name": "invalidate",
|
|
2809
|
+
"return": {
|
|
2810
|
+
"type": {
|
|
2811
|
+
"text": "void"
|
|
2812
|
+
}
|
|
2813
|
+
},
|
|
2814
|
+
"description": "Runs the transforms again on the next `transform()`."
|
|
2815
|
+
},
|
|
2816
|
+
{
|
|
2817
|
+
"kind": "method",
|
|
2818
|
+
"name": "keydown",
|
|
2819
|
+
"return": {
|
|
2820
|
+
"type": {
|
|
2821
|
+
"text": "boolean"
|
|
2822
|
+
}
|
|
2823
|
+
},
|
|
2824
|
+
"parameters": [
|
|
2825
|
+
{
|
|
2826
|
+
"name": "event",
|
|
2827
|
+
"type": {
|
|
2828
|
+
"text": "KeyboardEvent"
|
|
2829
|
+
}
|
|
2830
|
+
},
|
|
2831
|
+
{
|
|
2832
|
+
"name": "target",
|
|
2833
|
+
"type": {
|
|
2834
|
+
"text": "CellTarget"
|
|
2835
|
+
}
|
|
2836
|
+
}
|
|
2837
|
+
],
|
|
2838
|
+
"description": "Offers a key to the plugins in order; `true` once one claims it."
|
|
2839
|
+
}
|
|
2840
|
+
]
|
|
2841
|
+
},
|
|
2842
|
+
{
|
|
2843
|
+
"kind": "function",
|
|
2844
|
+
"name": "sameItems",
|
|
2845
|
+
"return": {
|
|
2846
|
+
"type": {
|
|
2847
|
+
"text": "boolean"
|
|
2848
|
+
}
|
|
2849
|
+
},
|
|
2850
|
+
"parameters": [
|
|
2851
|
+
{
|
|
2852
|
+
"name": "a",
|
|
2853
|
+
"type": {
|
|
2854
|
+
"text": "readonly V[]"
|
|
2855
|
+
}
|
|
2856
|
+
},
|
|
2857
|
+
{
|
|
2858
|
+
"name": "b",
|
|
2859
|
+
"type": {
|
|
2860
|
+
"text": "readonly V[]"
|
|
2861
|
+
}
|
|
2862
|
+
}
|
|
2863
|
+
],
|
|
2864
|
+
"description": "Whether two lists hold the same items in the same order."
|
|
2865
|
+
}
|
|
2866
|
+
],
|
|
2867
|
+
"exports": [
|
|
2868
|
+
{
|
|
2869
|
+
"kind": "js",
|
|
2870
|
+
"name": "PluginController",
|
|
2871
|
+
"declaration": {
|
|
2872
|
+
"name": "PluginController",
|
|
2873
|
+
"module": "src/controllers/plugins.ts"
|
|
2874
|
+
}
|
|
2875
|
+
},
|
|
2876
|
+
{
|
|
2877
|
+
"kind": "js",
|
|
2878
|
+
"name": "sameItems",
|
|
2879
|
+
"declaration": {
|
|
2880
|
+
"name": "sameItems",
|
|
2881
|
+
"module": "src/controllers/plugins.ts"
|
|
2882
|
+
}
|
|
2883
|
+
}
|
|
2884
|
+
]
|
|
2885
|
+
},
|
|
1728
2886
|
{
|
|
1729
2887
|
"kind": "javascript-module",
|
|
1730
2888
|
"path": "src/controllers/reorder-drag.ts",
|
|
@@ -1763,7 +2921,7 @@
|
|
|
1763
2921
|
}
|
|
1764
2922
|
}
|
|
1765
2923
|
],
|
|
1766
|
-
"description": "The drop target for a pointer at `x`: the gap between headers nearest to it,\ndecided by each header's midpoint. `undefined` where the column would stay\nput. `direction` is 1 in LTR and -1 in RTL, where the group runs right to left."
|
|
2924
|
+
"description": "The drop target for a pointer at `x`: the gap between headers nearest to it,\ndecided by each header's midpoint. `undefined` where the column would stay\nput. `direction` is 1 in LTR and -1 in RTL, where the group runs right to left.\nThe slots needn't be next to each other in the order: with\n`virtualizeColumns`, headers out of view aren't rendered."
|
|
1767
2925
|
},
|
|
1768
2926
|
{
|
|
1769
2927
|
"kind": "function",
|
|
@@ -1885,22 +3043,92 @@
|
|
|
1885
3043
|
}
|
|
1886
3044
|
},
|
|
1887
3045
|
{
|
|
1888
|
-
"name": "onWidth",
|
|
1889
|
-
"type": {
|
|
1890
|
-
"text": "(width: number) => void"
|
|
1891
|
-
}
|
|
3046
|
+
"name": "onWidth",
|
|
3047
|
+
"type": {
|
|
3048
|
+
"text": "(width: number) => void"
|
|
3049
|
+
}
|
|
3050
|
+
}
|
|
3051
|
+
],
|
|
3052
|
+
"description": "One pointer drag on a resize handle. The pointer is captured, so the drag keeps\nworking outside the handle, and moves are batched to one `onWidth` call per\nanimation frame (TanStack's `onChange` mode: the width updates while dragging).\n\n`direction` is 1 in LTR and -1 in RTL: the handle sits on the inline-end edge,\nso moving toward the inline end always grows the column."
|
|
3053
|
+
}
|
|
3054
|
+
],
|
|
3055
|
+
"exports": [
|
|
3056
|
+
{
|
|
3057
|
+
"kind": "js",
|
|
3058
|
+
"name": "startResizeDrag",
|
|
3059
|
+
"declaration": {
|
|
3060
|
+
"name": "startResizeDrag",
|
|
3061
|
+
"module": "src/controllers/resize-drag.ts"
|
|
3062
|
+
}
|
|
3063
|
+
}
|
|
3064
|
+
]
|
|
3065
|
+
},
|
|
3066
|
+
{
|
|
3067
|
+
"kind": "javascript-module",
|
|
3068
|
+
"path": "src/controllers/row-measure.ts",
|
|
3069
|
+
"declarations": [
|
|
3070
|
+
{
|
|
3071
|
+
"kind": "class",
|
|
3072
|
+
"description": "Rows of different heights (`rowHeight: 'auto'`): reads the heights of the\nrendered body rows and of the pinned row groups once their content has\nrendered, and watches them for changes the table doesn't render (an image\nloading, a web font, a framework component updating), which request an\nupdate that reads them again. Pooled rows show other rows as the body\nscrolls, so each update reads every rendered row that shows another row than\nat its last read (all of them after `invalidate()`): one that now shows a row\nof the same height doesn't resize, and the observer wouldn't report it.",
|
|
3073
|
+
"name": "RowMeasure",
|
|
3074
|
+
"members": [
|
|
3075
|
+
{
|
|
3076
|
+
"kind": "field",
|
|
3077
|
+
"name": "pinned",
|
|
3078
|
+
"type": {
|
|
3079
|
+
"text": "PinnedHeights"
|
|
3080
|
+
},
|
|
3081
|
+
"description": "The pinned groups' heights from the last `read()`.",
|
|
3082
|
+
"readonly": true
|
|
3083
|
+
},
|
|
3084
|
+
{
|
|
3085
|
+
"kind": "method",
|
|
3086
|
+
"name": "invalidate",
|
|
3087
|
+
"return": {
|
|
3088
|
+
"type": {
|
|
3089
|
+
"text": "void"
|
|
3090
|
+
}
|
|
3091
|
+
},
|
|
3092
|
+
"description": "The next `read()` reads every row: their content may have changed size\n(new data or columns, a resize, content that grew)."
|
|
3093
|
+
},
|
|
3094
|
+
{
|
|
3095
|
+
"kind": "method",
|
|
3096
|
+
"name": "read",
|
|
3097
|
+
"return": {
|
|
3098
|
+
"type": {
|
|
3099
|
+
"text": "{ rows: [number, number][]; pinnedChanged: boolean }"
|
|
3100
|
+
}
|
|
3101
|
+
},
|
|
3102
|
+
"parameters": [
|
|
3103
|
+
{
|
|
3104
|
+
"name": "root",
|
|
3105
|
+
"type": {
|
|
3106
|
+
"text": "ParentNode"
|
|
3107
|
+
}
|
|
3108
|
+
}
|
|
3109
|
+
],
|
|
3110
|
+
"description": "Reads the rows in `root` (the shadow root): the body rows' heights as\n`[index, px]`, and whether the pinned groups changed height. Scrolling,\nonly the pooled rows that now show another row are read."
|
|
3111
|
+
},
|
|
3112
|
+
{
|
|
3113
|
+
"kind": "method",
|
|
3114
|
+
"name": "stop",
|
|
3115
|
+
"return": {
|
|
3116
|
+
"type": {
|
|
3117
|
+
"text": "void"
|
|
3118
|
+
}
|
|
3119
|
+
},
|
|
3120
|
+
"description": "Stops watching (fixed row heights again, or the table left the page)."
|
|
1892
3121
|
}
|
|
1893
|
-
]
|
|
1894
|
-
"description": "One pointer drag on a resize handle. The pointer is captured, so the drag keeps\nworking outside the handle, and moves are batched to one `onWidth` call per\nanimation frame (TanStack's `onChange` mode: the width updates while dragging).\n\n`direction` is 1 in LTR and -1 in RTL: the handle sits on the inline-end edge,\nso moving toward the inline end always grows the column."
|
|
3122
|
+
]
|
|
1895
3123
|
}
|
|
1896
3124
|
],
|
|
1897
3125
|
"exports": [
|
|
1898
3126
|
{
|
|
1899
3127
|
"kind": "js",
|
|
1900
|
-
"name": "
|
|
3128
|
+
"name": "RowMeasure",
|
|
1901
3129
|
"declaration": {
|
|
1902
|
-
"name": "
|
|
1903
|
-
"module": "src/controllers/
|
|
3130
|
+
"name": "RowMeasure",
|
|
3131
|
+
"module": "src/controllers/row-measure.ts"
|
|
1904
3132
|
}
|
|
1905
3133
|
}
|
|
1906
3134
|
]
|
|
@@ -1942,7 +3170,7 @@
|
|
|
1942
3170
|
"declarations": [
|
|
1943
3171
|
{
|
|
1944
3172
|
"kind": "class",
|
|
1945
|
-
"description": "Row virtualization (TanStack Virtual) plus the row pool: which rows render,\nwhere, and which pool slot's DOM each one uses. The virtualizer registers itself\nwith the host and requests updates on scroll.\n\nScroll scaling: engines limit an element's height, so a body taller than the\ncap renders at the cap and its scroll position maps linearly onto the rows\n(`ScrollScale`). The virtualizer works in logical offsets: it gets a stand-in\nfor the scroller whose `scrollTop`, `scrollHeight` and `scrollTo()` are\nlogical, and everything else passes through. Rows render relative to the\nscroll position (`start` minus the difference between the logical and the\nphysical offset). Scroll through this controller (`scrollBy`, `reveal`,\n`scrollToIndex`): physical px no longer match rows once the body is scaled.",
|
|
3173
|
+
"description": "Row virtualization (TanStack Virtual) plus the row pool: which rows render,\nwhere, and which pool slot's DOM each one uses. The virtualizer registers itself\nwith the host and requests updates on scroll.\n\nScroll scaling: engines limit an element's height, so a body taller than the\ncap renders at the cap and its scroll position maps linearly onto the rows\n(`ScrollScale`). The virtualizer works in logical offsets: it gets a stand-in\nfor the scroller whose `scrollTop`, `scrollHeight` and `scrollTo()` are\nlogical, and everything else passes through. Rows render relative to the\nscroll position (`start` minus the difference between the logical and the\nphysical offset). Scroll through this controller (`scrollBy`, `reveal`,\n`scrollToIndex`): physical px no longer match rows once the body is scaled.\n\nRows of different heights (`auto`): TanStack's own measuring recomputes every\nrow below a measured one, too slow for a million rows, so in this mode the\nvirtualizer sits idle (no rows) and the controller does its part: the window\nfrom `RowSizes` (heights by index, O(log n) offsets), a scroll listener that\nre-renders when the window moves, and anchoring. Heights follow row ids, so\na sort or filter keeps them. A measured row above the top row would move\nthe rows in view: unscaled, the rows render shifted by the difference until\nscrolling stops (`#hold`); scaled, the mapping pivots at the current offset.\nNeither writes the scroll position while the user scrolls.",
|
|
1946
3174
|
"name": "VirtualController",
|
|
1947
3175
|
"members": [
|
|
1948
3176
|
{
|
|
@@ -1971,6 +3199,15 @@
|
|
|
1971
3199
|
}
|
|
1972
3200
|
}
|
|
1973
3201
|
},
|
|
3202
|
+
{
|
|
3203
|
+
"kind": "method",
|
|
3204
|
+
"name": "hostDisconnected",
|
|
3205
|
+
"return": {
|
|
3206
|
+
"type": {
|
|
3207
|
+
"text": "void"
|
|
3208
|
+
}
|
|
3209
|
+
}
|
|
3210
|
+
},
|
|
1974
3211
|
{
|
|
1975
3212
|
"kind": "method",
|
|
1976
3213
|
"name": "computeWindow",
|
|
@@ -1982,13 +3219,88 @@
|
|
|
1982
3219
|
"description": "Computes the rendered window and updates the pool. Call once per render."
|
|
1983
3220
|
},
|
|
1984
3221
|
{
|
|
1985
|
-
"kind": "
|
|
1986
|
-
"name": "
|
|
1987
|
-
"
|
|
1988
|
-
"
|
|
3222
|
+
"kind": "method",
|
|
3223
|
+
"name": "measureRows",
|
|
3224
|
+
"return": {
|
|
3225
|
+
"type": {
|
|
3226
|
+
"text": "boolean"
|
|
3227
|
+
}
|
|
1989
3228
|
},
|
|
1990
|
-
"
|
|
1991
|
-
|
|
3229
|
+
"parameters": [
|
|
3230
|
+
{
|
|
3231
|
+
"name": "measured",
|
|
3232
|
+
"type": {
|
|
3233
|
+
"text": "Iterable<readonly [number, number]>"
|
|
3234
|
+
}
|
|
3235
|
+
}
|
|
3236
|
+
],
|
|
3237
|
+
"description": "Auto mode: records the heights of rendered body rows (`[index, px]`), read\nonce their content has rendered. Heights under the row height count as it.\nReturns whether any changed; the controller then requests the update that\nplaces the rows. Rows above the top row keep the rows in view in place."
|
|
3238
|
+
},
|
|
3239
|
+
{
|
|
3240
|
+
"kind": "method",
|
|
3241
|
+
"name": "sizeOf",
|
|
3242
|
+
"return": {
|
|
3243
|
+
"type": {
|
|
3244
|
+
"text": "number"
|
|
3245
|
+
}
|
|
3246
|
+
},
|
|
3247
|
+
"parameters": [
|
|
3248
|
+
{
|
|
3249
|
+
"name": "index",
|
|
3250
|
+
"type": {
|
|
3251
|
+
"text": "number"
|
|
3252
|
+
}
|
|
3253
|
+
}
|
|
3254
|
+
],
|
|
3255
|
+
"description": "The height of the row at `index` (auto mode: measured, or the row height)."
|
|
3256
|
+
},
|
|
3257
|
+
{
|
|
3258
|
+
"kind": "method",
|
|
3259
|
+
"name": "startOf",
|
|
3260
|
+
"return": {
|
|
3261
|
+
"type": {
|
|
3262
|
+
"text": "number"
|
|
3263
|
+
}
|
|
3264
|
+
},
|
|
3265
|
+
"parameters": [
|
|
3266
|
+
{
|
|
3267
|
+
"name": "index",
|
|
3268
|
+
"type": {
|
|
3269
|
+
"text": "number"
|
|
3270
|
+
}
|
|
3271
|
+
}
|
|
3272
|
+
],
|
|
3273
|
+
"description": "The logical offset of the row at `index` in the body."
|
|
3274
|
+
},
|
|
3275
|
+
{
|
|
3276
|
+
"kind": "method",
|
|
3277
|
+
"name": "pageRows",
|
|
3278
|
+
"return": {
|
|
3279
|
+
"type": {
|
|
3280
|
+
"text": "number"
|
|
3281
|
+
}
|
|
3282
|
+
},
|
|
3283
|
+
"parameters": [
|
|
3284
|
+
{
|
|
3285
|
+
"name": "from",
|
|
3286
|
+
"type": {
|
|
3287
|
+
"text": "number"
|
|
3288
|
+
}
|
|
3289
|
+
},
|
|
3290
|
+
{
|
|
3291
|
+
"name": "down",
|
|
3292
|
+
"type": {
|
|
3293
|
+
"text": "boolean"
|
|
3294
|
+
}
|
|
3295
|
+
},
|
|
3296
|
+
{
|
|
3297
|
+
"name": "view",
|
|
3298
|
+
"type": {
|
|
3299
|
+
"text": "number"
|
|
3300
|
+
}
|
|
3301
|
+
}
|
|
3302
|
+
],
|
|
3303
|
+
"description": "Auto mode: how many rows a page moves from row `from`, the rows that fit in\n`view` px below it (`down`) or above it. At least one."
|
|
1992
3304
|
},
|
|
1993
3305
|
{
|
|
1994
3306
|
"kind": "field",
|
|
@@ -1999,6 +3311,15 @@
|
|
|
1999
3311
|
"description": "Whether the body is taller than the cap and scrolls scaled.",
|
|
2000
3312
|
"readonly": true
|
|
2001
3313
|
},
|
|
3314
|
+
{
|
|
3315
|
+
"kind": "field",
|
|
3316
|
+
"name": "topRow",
|
|
3317
|
+
"type": {
|
|
3318
|
+
"text": "number"
|
|
3319
|
+
},
|
|
3320
|
+
"description": "The index of the row at the top of the body (0 before the first layout).",
|
|
3321
|
+
"readonly": true
|
|
3322
|
+
},
|
|
2002
3323
|
{
|
|
2003
3324
|
"kind": "method",
|
|
2004
3325
|
"name": "scrollToIndex",
|
|
@@ -2148,9 +3469,27 @@
|
|
|
2148
3469
|
"type": {
|
|
2149
3470
|
"text": "Loading"
|
|
2150
3471
|
}
|
|
3472
|
+
},
|
|
3473
|
+
{
|
|
3474
|
+
"name": "selectedAt",
|
|
3475
|
+
"optional": true,
|
|
3476
|
+
"type": {
|
|
3477
|
+
"text": "SelectedAt"
|
|
3478
|
+
}
|
|
3479
|
+
},
|
|
3480
|
+
{
|
|
3481
|
+
"name": "checkboxes",
|
|
3482
|
+
"optional": true,
|
|
3483
|
+
"type": {
|
|
3484
|
+
"text": "CheckboxHandlers"
|
|
3485
|
+
}
|
|
3486
|
+
},
|
|
3487
|
+
{
|
|
3488
|
+
"name": "inset",
|
|
3489
|
+
"default": "false"
|
|
2151
3490
|
}
|
|
2152
3491
|
],
|
|
2153
|
-
"description": "The virtualized body. Rows are keyed by pool slot, so a row entering the window\nreuses the DOM of one that left (ADR 0001), and they stay in pool order: screen\nreaders get the position from `aria-rowindex`. `firstRowIndex` is the\n`aria-rowindex` of row 0: after the header and the rows pinned to the top."
|
|
3492
|
+
"description": "The virtualized body. Rows are keyed by pool slot, so a row entering the window\nreuses the DOM of one that left (ADR 0001), and they stay in pool order: screen\nreaders get the position from `aria-rowindex`. `firstRowIndex` is the\n`aria-rowindex` of row 0: after the header and the rows pinned to the top.\n`inset`: rows of different heights (`rowHeight: 'auto'`) are placed with\n`inset-block-start` and render at least their measured `size`, which is on\nthe controller's px grid, so they stay flush however far down they are."
|
|
2154
3493
|
},
|
|
2155
3494
|
{
|
|
2156
3495
|
"kind": "function",
|
|
@@ -2159,7 +3498,7 @@
|
|
|
2159
3498
|
{
|
|
2160
3499
|
"name": "c",
|
|
2161
3500
|
"type": {
|
|
2162
|
-
"text": "
|
|
3501
|
+
"text": "RenderedColumn<T>"
|
|
2163
3502
|
}
|
|
2164
3503
|
},
|
|
2165
3504
|
{
|
|
@@ -2219,7 +3558,7 @@
|
|
|
2219
3558
|
"name": "renderLightDom",
|
|
2220
3559
|
"return": {
|
|
2221
3560
|
"type": {
|
|
2222
|
-
"text": "
|
|
3561
|
+
"text": "RootPart"
|
|
2223
3562
|
}
|
|
2224
3563
|
},
|
|
2225
3564
|
"parameters": [
|
|
@@ -2241,6 +3580,18 @@
|
|
|
2241
3580
|
"text": "readonly WindowRow[]"
|
|
2242
3581
|
}
|
|
2243
3582
|
},
|
|
3583
|
+
{
|
|
3584
|
+
"name": "rendered",
|
|
3585
|
+
"type": {
|
|
3586
|
+
"text": "readonly RenderedColumn<T>[]"
|
|
3587
|
+
}
|
|
3588
|
+
},
|
|
3589
|
+
{
|
|
3590
|
+
"name": "groups",
|
|
3591
|
+
"type": {
|
|
3592
|
+
"text": "readonly (readonly HeaderGroupCell<CellContent>[])[]"
|
|
3593
|
+
}
|
|
3594
|
+
},
|
|
2244
3595
|
{
|
|
2245
3596
|
"name": "renderBefore",
|
|
2246
3597
|
"type": {
|
|
@@ -2248,7 +3599,7 @@
|
|
|
2248
3599
|
}
|
|
2249
3600
|
}
|
|
2250
3601
|
],
|
|
2251
|
-
"description": "Renders header and cell content into the host's light DOM, as direct children\n(a slot only takes the host's own children). Keyed and ordered by pool slot,\nso recycled content updates in place instead of moving (ADR 0001). The part\nends at `renderBefore`, so the host's other children (`<argus-column>`) stay\noutside it, wherever they are added."
|
|
3602
|
+
"description": "Renders header and cell content into the host's light DOM, as direct children\n(a slot only takes the host's own children). Keyed and ordered by pool slot,\nso recycled content updates in place instead of moving (ADR 0001). The part\nends at `renderBefore`, so the host's other children (`<argus-column>`) stay\noutside it, wherever they are added. `rendered` are the columns the shadow\nroot renders, with their slots and keys. What `header` and `cell` return goes\nthrough `content()`, so foreign content reaches the table's `contentRenderer`.\nGroup headers come first, one per group and pin side (`groups`, the header's\ngroup rows).\nReturns the part, which the table disconnects when it is disconnected."
|
|
2252
3603
|
}
|
|
2253
3604
|
],
|
|
2254
3605
|
"exports": [
|
|
@@ -2262,6 +3613,78 @@
|
|
|
2262
3613
|
}
|
|
2263
3614
|
]
|
|
2264
3615
|
},
|
|
3616
|
+
{
|
|
3617
|
+
"kind": "javascript-module",
|
|
3618
|
+
"path": "src/render/content-directive.ts",
|
|
3619
|
+
"declarations": [
|
|
3620
|
+
{
|
|
3621
|
+
"kind": "function",
|
|
3622
|
+
"name": "flushContent",
|
|
3623
|
+
"return": {
|
|
3624
|
+
"type": {
|
|
3625
|
+
"text": "void"
|
|
3626
|
+
}
|
|
3627
|
+
},
|
|
3628
|
+
"parameters": [
|
|
3629
|
+
{
|
|
3630
|
+
"name": "host",
|
|
3631
|
+
"type": {
|
|
3632
|
+
"text": "object"
|
|
3633
|
+
}
|
|
3634
|
+
}
|
|
3635
|
+
],
|
|
3636
|
+
"description": "Calls `flush()` on the renderers that rendered or released for `host` since the last call."
|
|
3637
|
+
},
|
|
3638
|
+
{
|
|
3639
|
+
"kind": "function",
|
|
3640
|
+
"name": "isForeign",
|
|
3641
|
+
"return": {
|
|
3642
|
+
"type": {
|
|
3643
|
+
"text": "boolean"
|
|
3644
|
+
}
|
|
3645
|
+
},
|
|
3646
|
+
"parameters": [
|
|
3647
|
+
{
|
|
3648
|
+
"name": "value",
|
|
3649
|
+
"type": {
|
|
3650
|
+
"text": "unknown"
|
|
3651
|
+
}
|
|
3652
|
+
}
|
|
3653
|
+
],
|
|
3654
|
+
"description": "Whether the table renders `value` itself: strings, numbers, Lit templates and\ndirective results, DOM nodes, `nothing` and empty values, and arrays of those.\nAnything else is foreign: it goes to the `contentRenderer`."
|
|
3655
|
+
},
|
|
3656
|
+
{
|
|
3657
|
+
"kind": "variable",
|
|
3658
|
+
"name": "content"
|
|
3659
|
+
}
|
|
3660
|
+
],
|
|
3661
|
+
"exports": [
|
|
3662
|
+
{
|
|
3663
|
+
"kind": "js",
|
|
3664
|
+
"name": "flushContent",
|
|
3665
|
+
"declaration": {
|
|
3666
|
+
"name": "flushContent",
|
|
3667
|
+
"module": "src/render/content-directive.ts"
|
|
3668
|
+
}
|
|
3669
|
+
},
|
|
3670
|
+
{
|
|
3671
|
+
"kind": "js",
|
|
3672
|
+
"name": "isForeign",
|
|
3673
|
+
"declaration": {
|
|
3674
|
+
"name": "isForeign",
|
|
3675
|
+
"module": "src/render/content-directive.ts"
|
|
3676
|
+
}
|
|
3677
|
+
},
|
|
3678
|
+
{
|
|
3679
|
+
"kind": "js",
|
|
3680
|
+
"name": "content",
|
|
3681
|
+
"declaration": {
|
|
3682
|
+
"name": "content",
|
|
3683
|
+
"module": "src/render/content-directive.ts"
|
|
3684
|
+
}
|
|
3685
|
+
}
|
|
3686
|
+
]
|
|
3687
|
+
},
|
|
2265
3688
|
{
|
|
2266
3689
|
"kind": "javascript-module",
|
|
2267
3690
|
"path": "src/render/content.ts",
|
|
@@ -2313,26 +3736,39 @@
|
|
|
2313
3736
|
}
|
|
2314
3737
|
},
|
|
2315
3738
|
{
|
|
2316
|
-
"name": "
|
|
3739
|
+
"name": "colSlot",
|
|
2317
3740
|
"type": {
|
|
2318
3741
|
"text": "number"
|
|
2319
3742
|
}
|
|
2320
3743
|
}
|
|
2321
3744
|
],
|
|
2322
|
-
"description": "Private slot names (ADR 0001): cells by pool slot and column, headers by
|
|
3745
|
+
"description": "Private slot names (ADR 0001): cells by row pool slot and column slot,\nheaders by column slot, group headers by group and pin side, pinned rows by side,\nindex and column slot. A\ncolumn's slot is its `colIndex`, or its pool slot with `virtualizeColumns`."
|
|
2323
3746
|
},
|
|
2324
3747
|
{
|
|
2325
3748
|
"kind": "function",
|
|
2326
3749
|
"name": "headerSlot",
|
|
2327
3750
|
"parameters": [
|
|
2328
3751
|
{
|
|
2329
|
-
"name": "
|
|
3752
|
+
"name": "colSlot",
|
|
2330
3753
|
"type": {
|
|
2331
3754
|
"text": "number"
|
|
2332
3755
|
}
|
|
2333
3756
|
}
|
|
2334
3757
|
]
|
|
2335
3758
|
},
|
|
3759
|
+
{
|
|
3760
|
+
"kind": "function",
|
|
3761
|
+
"name": "groupSlot",
|
|
3762
|
+
"parameters": [
|
|
3763
|
+
{
|
|
3764
|
+
"name": "slot",
|
|
3765
|
+
"type": {
|
|
3766
|
+
"text": "number"
|
|
3767
|
+
}
|
|
3768
|
+
}
|
|
3769
|
+
],
|
|
3770
|
+
"description": "A column group's header, by the group's slot number (`HeaderGroupCell.slot`)."
|
|
3771
|
+
},
|
|
2336
3772
|
{
|
|
2337
3773
|
"kind": "function",
|
|
2338
3774
|
"name": "pinnedSlot",
|
|
@@ -2350,7 +3786,7 @@
|
|
|
2350
3786
|
}
|
|
2351
3787
|
},
|
|
2352
3788
|
{
|
|
2353
|
-
"name": "
|
|
3789
|
+
"name": "colSlot",
|
|
2354
3790
|
"type": {
|
|
2355
3791
|
"text": "number"
|
|
2356
3792
|
}
|
|
@@ -2369,7 +3805,7 @@
|
|
|
2369
3805
|
{
|
|
2370
3806
|
"name": "column",
|
|
2371
3807
|
"type": {
|
|
2372
|
-
"text": "Pinnable & { sorted: 'asc' | 'desc' | false }"
|
|
3808
|
+
"text": "Pinnable & { sorted: 'asc' | 'desc' | false; kind: 'data' | 'selection' }"
|
|
2373
3809
|
}
|
|
2374
3810
|
},
|
|
2375
3811
|
{
|
|
@@ -2399,7 +3835,7 @@
|
|
|
2399
3835
|
},
|
|
2400
3836
|
{
|
|
2401
3837
|
"kind": "function",
|
|
2402
|
-
"name": "
|
|
3838
|
+
"name": "cellStyle",
|
|
2403
3839
|
"return": {
|
|
2404
3840
|
"type": {
|
|
2405
3841
|
"text": "string | undefined"
|
|
@@ -2409,11 +3845,29 @@
|
|
|
2409
3845
|
{
|
|
2410
3846
|
"name": "column",
|
|
2411
3847
|
"type": {
|
|
2412
|
-
"text": "Pinnable & { offset: number }"
|
|
3848
|
+
"text": "Pinnable & { offset: number; place: number | undefined }"
|
|
3849
|
+
}
|
|
3850
|
+
}
|
|
3851
|
+
],
|
|
3852
|
+
"description": "Inline style of a cell or header: a pinned one's sticky inset, from the\nstart or the end edge, and with `virtualizeColumns` the grid cell it is\nplaced in. Cells are in pool order there, not in column order, so the row is\nexplicit too: auto-placement would wrap a cell that comes after one of a\nlater column into a new grid row."
|
|
3853
|
+
},
|
|
3854
|
+
{
|
|
3855
|
+
"kind": "function",
|
|
3856
|
+
"name": "groupStyle",
|
|
3857
|
+
"return": {
|
|
3858
|
+
"type": {
|
|
3859
|
+
"text": "string"
|
|
3860
|
+
}
|
|
3861
|
+
},
|
|
3862
|
+
"parameters": [
|
|
3863
|
+
{
|
|
3864
|
+
"name": "cell",
|
|
3865
|
+
"type": {
|
|
3866
|
+
"text": "Pinnable & { offset: number; colIndex: number; span: number }"
|
|
2413
3867
|
}
|
|
2414
3868
|
}
|
|
2415
3869
|
],
|
|
2416
|
-
"description": "Inline style of a
|
|
3870
|
+
"description": "Inline style of a group header row's cell: the columns it spans, placed\nexplicitly (the rows are grids on every column's track), and a pinned one's\nsticky inset."
|
|
2417
3871
|
}
|
|
2418
3872
|
],
|
|
2419
3873
|
"exports": [
|
|
@@ -2449,6 +3903,14 @@
|
|
|
2449
3903
|
"module": "src/render/content.ts"
|
|
2450
3904
|
}
|
|
2451
3905
|
},
|
|
3906
|
+
{
|
|
3907
|
+
"kind": "js",
|
|
3908
|
+
"name": "groupSlot",
|
|
3909
|
+
"declaration": {
|
|
3910
|
+
"name": "groupSlot",
|
|
3911
|
+
"module": "src/render/content.ts"
|
|
3912
|
+
}
|
|
3913
|
+
},
|
|
2452
3914
|
{
|
|
2453
3915
|
"kind": "js",
|
|
2454
3916
|
"name": "pinnedSlot",
|
|
@@ -2475,9 +3937,17 @@
|
|
|
2475
3937
|
},
|
|
2476
3938
|
{
|
|
2477
3939
|
"kind": "js",
|
|
2478
|
-
"name": "
|
|
3940
|
+
"name": "cellStyle",
|
|
3941
|
+
"declaration": {
|
|
3942
|
+
"name": "cellStyle",
|
|
3943
|
+
"module": "src/render/content.ts"
|
|
3944
|
+
}
|
|
3945
|
+
},
|
|
3946
|
+
{
|
|
3947
|
+
"kind": "js",
|
|
3948
|
+
"name": "groupStyle",
|
|
2479
3949
|
"declaration": {
|
|
2480
|
-
"name": "
|
|
3950
|
+
"name": "groupStyle",
|
|
2481
3951
|
"module": "src/render/content.ts"
|
|
2482
3952
|
}
|
|
2483
3953
|
}
|
|
@@ -2489,38 +3959,40 @@
|
|
|
2489
3959
|
"declarations": [
|
|
2490
3960
|
{
|
|
2491
3961
|
"kind": "function",
|
|
2492
|
-
"name": "
|
|
3962
|
+
"name": "columnKey",
|
|
2493
3963
|
"parameters": [
|
|
2494
3964
|
{
|
|
2495
|
-
"name": "
|
|
2496
|
-
"type": {
|
|
2497
|
-
"text": "readonly ColumnView<T, CellContent>[]"
|
|
2498
|
-
}
|
|
2499
|
-
},
|
|
2500
|
-
{
|
|
2501
|
-
"name": "handlers",
|
|
2502
|
-
"type": {
|
|
2503
|
-
"text": "HeaderHandlers"
|
|
2504
|
-
}
|
|
2505
|
-
},
|
|
2506
|
-
{
|
|
2507
|
-
"name": "activeCol",
|
|
3965
|
+
"name": "columnId",
|
|
2508
3966
|
"type": {
|
|
2509
|
-
"text": "string
|
|
3967
|
+
"text": "string"
|
|
2510
3968
|
}
|
|
2511
|
-
}
|
|
3969
|
+
}
|
|
3970
|
+
],
|
|
3971
|
+
"description": "The drop slot key of a column (`c:` and its id) or a group cell (its `key`)."
|
|
3972
|
+
},
|
|
3973
|
+
{
|
|
3974
|
+
"kind": "function",
|
|
3975
|
+
"name": "renderHeader",
|
|
3976
|
+
"parameters": [
|
|
2512
3977
|
{
|
|
2513
|
-
"name": "drag",
|
|
2514
|
-
"optional": true,
|
|
3978
|
+
"name": "{\n columns,\n groups,\n handlers,\n active,\n drag,\n checkAll,\n}",
|
|
2515
3979
|
"type": {
|
|
2516
|
-
"text": "
|
|
3980
|
+
"text": "HeaderOptions<T>"
|
|
2517
3981
|
}
|
|
2518
3982
|
}
|
|
2519
3983
|
],
|
|
2520
|
-
"description": "The sticky header row. Header content is slotted from the light DOM. Pinned\nheader cells use the same private `data-pin` hooks as body cells,
|
|
3984
|
+
"description": "The sticky header: a row per level of column groups, then the row of column\nheaders. Header content is slotted from the light DOM. Pinned\nheader cells use the same private `data-pin` hooks as body cells, and the parts\n`header-cell-pinned` and `header-cell-pinned-edge`.\nEvery header carries `data-col` (its column id) and sortable ones also\n`data-sort-col`; the element's delegated handlers read them. Headers take part\nin the grid's roving tabindex: the active one is the tab stop (`activeCol`).\nResizable columns get a `resize-handle` on the header's inline-end edge; a\ndouble-click on it fits the column to its content. It is not focusable: the\nfocused header resizes with Alt+Arrow.\n\nReorderable columns carry `data-move-col`: a drag on the header moves the\ncolumn. While one is dragged (`drag`), its header adds `header-cell-dragging`\nand the target header shows a `drop-indicator` on the edge it would land at."
|
|
2521
3985
|
}
|
|
2522
3986
|
],
|
|
2523
3987
|
"exports": [
|
|
3988
|
+
{
|
|
3989
|
+
"kind": "js",
|
|
3990
|
+
"name": "columnKey",
|
|
3991
|
+
"declaration": {
|
|
3992
|
+
"name": "columnKey",
|
|
3993
|
+
"module": "src/render/header.ts"
|
|
3994
|
+
}
|
|
3995
|
+
},
|
|
2524
3996
|
{
|
|
2525
3997
|
"kind": "js",
|
|
2526
3998
|
"name": "renderHeader",
|
|
@@ -2554,7 +4026,7 @@
|
|
|
2554
4026
|
{
|
|
2555
4027
|
"name": "columns",
|
|
2556
4028
|
"type": {
|
|
2557
|
-
"text": "readonly
|
|
4029
|
+
"text": "readonly RenderedColumn<T>[]"
|
|
2558
4030
|
}
|
|
2559
4031
|
},
|
|
2560
4032
|
{
|
|
@@ -2591,7 +4063,7 @@
|
|
|
2591
4063
|
{
|
|
2592
4064
|
"kind": "variable",
|
|
2593
4065
|
"name": "baseStyles",
|
|
2594
|
-
"default": "css` @layer argus-base { :host { display: block; /* A table that virtualizes needs a bounded height; set your own on the element. */ block-size: 400px; box-sizing: border-box; contain: content; color-scheme: light dark; color: var(--argus-fg, CanvasText); background: var(--argus-bg, Canvas); font: var(--argus-font, inherit); /* contain: content clips the header, rows and pinned shadows to the rounded corners. */ border: var(--argus-outline, none); border-radius: var(--argus-radius, 0); --_row-height: var(--argus-row-height, 40px); --_pad: var(--argus-cell-padding-inline, 12px); --_border: var(--argus-border-width, 1px) solid var(--argus-border-color, light-dark(#e5e7eb, #374151)); /* 1 in LTR, -1 in RTL: mirrors the pinned-edge shadow. */ --_dir: 1; } :host(:dir(rtl)) { --_dir: -1; } :host([density='compact']) { --_row-height: var(--argus-row-height, 32px); --_pad: var(--argus-cell-padding-inline, 8px); } :host([density='spacious']) { --_row-height: var(--argus-row-height, 52px); --_pad: var(--argus-cell-padding-inline, 16px); } :host([hidden]) { display: none; } [part~='table'] { position: relative; block-size: 100%; overflow: auto; overscroll-behavior: contain; } /* * A cell focused or moved to by keyboard scrolls clear of the sticky header, the * pinned rows and the pinned columns: scroll margins on the cells that scroll. * Not scroll padding on the scroller: Chromium and WebKit measure the sticky * header and pinned rows against it too, so focusing one of them (a click, Tab, * an arrow key) scrolled the body. */ [part~='body'] > .row > [role='gridcell'] { scroll-margin-block: calc((1 + var(--_pin-top-rows, 0)) * var(--_row-height)) calc(var(--_pin-bottom-rows, 0) * var(--_row-height)); } [role='gridcell']:not([data-pin]), [role='columnheader']:not([data-pin]) { scroll-margin-inline: var(--_pin-start, 0) var(--_pin-end, 0); } .row { display: grid; grid-template-columns: var(--_cols); inline-size: var(--_width); min-inline-size: 100%; block-size: var(--_row-height); box-sizing: border-box; } [part~='header'] { position: sticky; inset-block-start: 0; z-index: 2; } [part~='body'] { position: relative; contain: layout; } [part~='body'] > .row { position: absolute; inset-block-start: 0; inset-inline-start: 0; } [part~='row'] { --_row-bg: var(--argus-bg, Canvas); --_row-surface: var(--_row-bg); background: var(--_row-surface); } [part~='row-odd'] { --_row-bg: var(--argus-row-stripe-bg, var(--argus-bg, Canvas)); } [part~='row']:hover { --_row-surface: var(--argus-row-hover-bg, var(--_row-bg)); } /* * Pinned rows: a sticky row group below the header and one at the bottom of * the view. The header is one row tall. They keep their place in the flow, * so body row i still starts i rows below the top group. */ .pinned { position: sticky; z-index: 2; } .pinned[data-side='top'] { inset-block-start: var(--_row-height); } .pinned[data-side='bottom'] { inset-block-end: 0; } [part~='row-pinned'] { --_row-bg: var(--argus-pinned-row-bg, var(--argus-bg, Canvas)); } [part~='cell'], [part~='header-cell'] { display: flex; align-items: center; min-inline-size: 0; box-sizing: border-box; padding-inline: var(--_pad); overflow: hidden; white-space: nowrap; border-block-end: var(--_border); } [part~='header-cell'] { background: var(--argus-header-bg, light-dark(#f9fafb, #111827)); color: var(--argus-header-fg, inherit); font-weight: 600; } [part~='header-cell'] { position: relative; } [part~='resize-handle'] { position: absolute; inset-block: 0; inset-inline-end: 0; inline-size: 8px; z-index: 1; cursor: col-resize; touch-action: none; } [part~='resize-handle']::after { content: ''; position: absolute; inset-block: 25%; inset-inline-end: 0; inline-size: 2px; background: var(--argus-resize-handle-color, light-dark(#9ca3af, #6b7280)); opacity: 0; } [part~='header-cell']:hover [part~='resize-handle']::after, [part~='header-cell']:focus-visible [part~='resize-handle']::after, [part~='resize-handle'][data-active]::after { opacity: 1; } [data-sort-col] { cursor: pointer; user-select: none; } /* A drag on a reorderable header moves the column, so its text isn't selectable. */ [data-move-col] { user-select: none; } [data-dragging], [data-dragging] [part~='header-cell'] { cursor: grabbing; } [part~='header-cell-dragging'] { opacity: 0.5; } /* The line where a dragged column would land, on the target header's logical edge. */ [part~='drop-indicator'] { position: absolute; inset-block: 0; inline-size: 2px; z-index: 2; background: var(--argus-drop-indicator-color, Highlight); pointer-events: none; } [part~='drop-indicator'][data-edge='start'] { inset-inline-start: 0; } [part~='drop-indicator'][data-edge='end'] { inset-inline-end: 0; } [part~='header-cell']:focus-visible, [part~='cell']:focus-visible { outline: var(--argus-focus-ring, 2px solid Highlight); outline-offset: -2px; } /* A small chevron after the header content; only the sorted column shows it. */ .sort-indicator { flex: none; inline-size: 0.35em; block-size: 0.35em; margin-inline-start: 0.4em; /* Physical sides on purpose: the chevron is rotated, so it must not mirror in RTL. */ border-right: 0.12em solid currentColor; border-bottom: 0.12em solid currentColor; visibility: hidden; } [aria-sort] .sort-indicator { visibility: visible; } [aria-sort='ascending'] .sort-indicator { transform: translateY(0.1em) rotate(-135deg); } [aria-sort='descending'] .sort-indicator { transform: translateY(-0.1em) rotate(45deg); } [data-align='end'] .sort-indicator { order: -1; margin-inline: 0 0.4em; } /* * Pinned columns: sticky inside the scroll container, with offsets from the * table model. Logical insets make RTL work without extra rules. */ [data-pin] { position: sticky; z-index: 1; } [data-pin='start'] { inset-inline-start: var(--_pin-offset); } [data-pin='end'] { inset-inline-end: var(--_pin-offset); } /* * Pinned body cells are sticky only while the table scrolls sideways * (data-hscroll on the scroller). At rest they are plain cells shifted by the * horizontal scroll offset, which vertical scrolling never changes: a sticky * cell per row is a compositing layer each, and Safari stutters moving them * (PinScrollController). Both place the cells at the same spot. */ [part~='row'] > [data-pin] { position: relative; inset-inline: auto; } [part~='row'] > [data-pin='start'] { transform: translateX(var(--_sx, 0px)); } [part~='row'] > [data-pin='end'] { transform: translateX(calc(var(--_sx, 0px) - var(--_dir) * var(--_max-x, 0px))); } [data-hscroll] [part~='row'] > [data-pin] { position: sticky; transform: none; } [data-hscroll] [part~='row'] > [data-pin='start'] { inset-inline-start: var(--_pin-offset); } [data-hscroll] [part~='row'] > [data-pin='end'] { inset-inline-end: var(--_pin-offset); } [part~='cell-pinned'] { background: var(--_row-surface); } /* * The edge shadow, once per pinned side (.pin-shadow, beside the scroller). * --argus-pinned-shadow is written for a shadow falling toward the end side; * the start edge in RTL and the end edge in LTR mirror it. */ .pin-shadow { position: absolute; inset-block-start: 0; block-size: min(var(--_view-h, 100%), var(--_content-h, 100%)); z-index: 3; pointer-events: none; } .pin-shadow[data-side='start'] { inset-inline-start: 0; } .pin-shadow[data-side='end'] { inset-inline-end: var(--_sb-x, 0px); } .pin-shadow::after { content: ''; position: absolute; inset: 0; box-shadow: var( --argus-pinned-shadow, 4px 0 6px -4px light-dark(rgb(0 0 0 / 0.2), rgb(0 0 0 / 0.6)) ); transform: scaleX(var(--_dir)); } .pin-shadow[data-side='end']::after { transform: scaleX(calc(-1 * var(--_dir))); } [data-align='center'] { justify-content: center; text-align: center; } [data-align='end'] { justify-content: flex-end; text-align: end; } ::slotted(*) { min-inline-size: 0; overflow: hidden; text-overflow: ellipsis; } /* Fitting a column to its content: set for one synchronous measurement, never painted. */ [data-measure] { inline-size: max-content; } /* Rows of a data source that haven't loaded: a bar per cell, pulsing gently. */ [part~='skeleton'] { flex: none; inline-size: min(60%, 8em); block-size: 0.6em; border-radius: 0.3em; background: var(--argus-skeleton-bg, color-mix(in srgb, currentColor 12%, transparent)); animation: argus-skeleton-pulse 1.6s ease-in-out infinite; } [part~='skeleton-error'] { animation: none; opacity: 0.5; } @keyframes argus-skeleton-pulse { 50% { opacity: 0.45; } } @media (prefers-reduced-motion: reduce) { [part~='skeleton'] { animation: none; } } [part~='retry'] { font: inherit; color: inherit; cursor: pointer; } [part~='empty'] { display: flex; align-items: center; justify-content: center; min-block-size: calc( 100% - (1 + var(--_pin-top-rows, 0) + var(--_pin-bottom-rows, 0)) * var(--_row-height) ); padding: var(--_pad); box-sizing: border-box; } /* Measures the resolved row height in px for the virtualizer. */ .probe { position: absolute; inset-block-start: 0; inline-size: 0; block-size: var(--_row-height); visibility: hidden; pointer-events: none; } } `",
|
|
4066
|
+
"default": "css` @layer argus-base { :host { display: block; /* A table that virtualizes needs a bounded height; set your own on the element. */ block-size: 400px; box-sizing: border-box; contain: content; color-scheme: light dark; color: var(--argus-fg, CanvasText); background: var(--argus-bg, Canvas); font: var(--argus-font, inherit); /* contain: content clips the header, rows and pinned shadows to the rounded corners. */ border: var(--argus-border, none); border-radius: var(--argus-border-radius, 0); --_row-height: var(--argus-row-height, 40px); --_pad: var(--argus-cell-padding-inline, 12px); --_border: var(--argus-border-width, 1px) solid var(--argus-border-color, light-dark(#e5e7eb, #374151)); /* 1 in LTR, -1 in RTL: mirrors the pinned-edge shadow. */ --_dir: 1; } :host(:dir(rtl)) { --_dir: -1; } :host([density='compact']) { --_row-height: var(--argus-row-height, 32px); --_pad: var(--argus-cell-padding-inline, 8px); } :host([density='spacious']) { --_row-height: var(--argus-row-height, 52px); --_pad: var(--argus-cell-padding-inline, 16px); } :host([hidden]) { display: none; } [part~='table'] { position: relative; block-size: 100%; overflow: auto; overscroll-behavior: contain; /* The header: one row tall, and a row more per level of column groups. */ --_header-h: calc(var(--_header-rows, 1) * var(--_row-height)); } /* * A cell focused or moved to by keyboard scrolls clear of the sticky header, the * pinned rows and the pinned columns: scroll margins on the cells that scroll. * Not scroll padding on the scroller: Chromium and WebKit measure the sticky * header and pinned rows against it too, so focusing one of them (a click, Tab, * an arrow key) scrolled the body. */ [part~='body'] > .row > [role='gridcell'] { scroll-margin-block: calc(var(--_header-h) + var(--_pin-top-rows, 0) * var(--_row-height)) calc(var(--_pin-bottom-rows, 0) * var(--_row-height)); } [role='gridcell']:not([data-pin]), [role='columnheader']:not([data-pin]) { scroll-margin-inline: var(--_pin-start, 0) var(--_pin-end, 0); } .row { display: grid; grid-template-columns: var(--_cols); inline-size: var(--_width); min-inline-size: 100%; block-size: var(--_row-height); box-sizing: border-box; } [part~='header'] { position: sticky; inset-block-start: 0; z-index: 2; } [part~='body'] { position: relative; contain: layout; } [part~='body'] > .row { position: absolute; inset-block-start: 0; inset-inline-start: 0; } [part~='row'] { --_row-bg: var(--argus-bg, Canvas); --_row-surface: var(--_row-bg); background: var(--_row-surface); } [part~='row-odd'] { --_row-bg: var(--argus-row-odd-bg, var(--argus-bg, Canvas)); } [part~='row']:hover { --_row-surface: var(--argus-row-hover-bg, var(--_row-bg)); } /* Selected wins over stripes and hover. */ [part~='row-selected'], [part~='row-selected']:hover { --_row-bg: var( --argus-row-selected-bg, color-mix(in srgb, Highlight 22%, var(--argus-bg, Canvas)) ); --_row-surface: var(--_row-bg); } @media (forced-colors: active) { [part~='row-selected'] { forced-color-adjust: none; --_row-bg: Highlight; color: HighlightText; } } /* * Pinned rows: a sticky row group below the header and one at the bottom of * the view. The header is --_header-h tall. They keep their place in the flow, * so body row i still starts i rows below the top group. */ .pinned { position: sticky; z-index: 2; } .pinned[data-side='top'] { inset-block-start: var(--_header-h); } .pinned[data-side='bottom'] { inset-block-end: 0; } [part~='row-pinned'] { --_row-bg: var(--argus-row-pinned-bg, var(--argus-bg, Canvas)); } [part~='cell'], [part~='header-cell'] { display: flex; align-items: center; min-inline-size: 0; box-sizing: border-box; padding-inline: var(--_pad); overflow: hidden; white-space: nowrap; border-block-end: var(--_border); } /* The checkbox column: the checkbox centred, no padding to squeeze it. */ [part~='cell-selection'], [part~='header-cell-selection'] { justify-content: center; padding-inline: 0; } [part~='selection-checkbox'] { margin: 0; cursor: pointer; } [part~='header-cell'] { background: var(--argus-header-bg, light-dark(#f9fafb, #111827)); color: var(--argus-header-fg, inherit); font-weight: 600; position: relative; } /* * Column groups: a cell per group over its columns, and an empty filler over * columns without a group at that level, so the header reads as one block. The * label of a group in the scrolling area stays in view while its columns scroll * past (sticky inside the cell, which clips rather than scrolls). */ [part~='header-group-cell'], [part~='header-group-filler'] { box-sizing: border-box; min-inline-size: 0; background: var(--argus-header-bg, light-dark(#f9fafb, #111827)); color: var(--argus-header-fg, inherit); } [part~='header-group-cell'] { display: flex; align-items: center; position: relative; padding-inline: var(--_pad); overflow: clip; white-space: nowrap; font-weight: 600; border-block-end: var(--_border); border-inline-end: var(--_border); } .group-label { min-inline-size: 0; overflow: hidden; text-overflow: ellipsis; } [part~='header-group-cell']:not([data-pin]) > .group-label { position: sticky; inset-inline-start: calc(var(--_pin-start, 0px) + var(--_pad)); } [data-move-group] { user-select: none; } [data-dragging] [part~='header-group-cell'] { cursor: grabbing; } [part~='header-group-cell-dragging'] { opacity: 0.5; } [part~='resize-handle'] { position: absolute; inset-block: 0; inset-inline-end: 0; inline-size: 8px; z-index: 1; cursor: col-resize; touch-action: none; } [part~='resize-handle']::after { content: ''; position: absolute; inset-block: 25%; inset-inline-end: 0; inline-size: 2px; background: var(--argus-resize-handle-color, light-dark(#9ca3af, #6b7280)); opacity: 0; } [part~='header-cell']:hover [part~='resize-handle']::after, [part~='header-cell']:focus-visible [part~='resize-handle']::after, [part~='header-group-cell']:hover [part~='resize-handle']::after, [part~='header-group-cell']:focus-visible [part~='resize-handle']::after, [part~='resize-handle'][data-active]::after { opacity: 1; } [data-sort-col] { cursor: pointer; user-select: none; } /* A drag on a reorderable header moves the column, so its text isn't selectable. */ [data-move-col] { user-select: none; } [data-dragging], [data-dragging] [part~='header-cell'] { cursor: grabbing; } [part~='header-cell-dragging'] { opacity: 0.5; } /* The line where a dragged column would land, on the target header's logical edge. */ [part~='drop-indicator'] { position: absolute; inset-block: 0; inline-size: 2px; z-index: 2; background: var(--argus-drop-indicator-color, Highlight); pointer-events: none; } [part~='drop-indicator'][data-edge='start'] { inset-inline-start: 0; } [part~='drop-indicator'][data-edge='end'] { inset-inline-end: 0; } [part~='header-cell']:focus-visible, [part~='header-group-cell']:focus-visible, [part~='cell']:focus-visible { outline: var(--argus-focus-ring, 2px solid Highlight); outline-offset: -2px; } /* A small chevron after the header content; only the sorted column shows it. */ .sort-indicator { flex: none; inline-size: 0.35em; block-size: 0.35em; margin-inline-start: 0.4em; /* Physical sides on purpose: the chevron is rotated, so it must not mirror in RTL. */ border-right: 0.12em solid currentColor; border-bottom: 0.12em solid currentColor; visibility: hidden; } [aria-sort] .sort-indicator { visibility: visible; } [aria-sort='ascending'] .sort-indicator { transform: translateY(0.1em) rotate(-135deg); } [aria-sort='descending'] .sort-indicator { transform: translateY(-0.1em) rotate(45deg); } [data-align='end'] .sort-indicator { order: -1; margin-inline: 0 0.4em; } /* A funnel: the column is filtered. */ [part~='filter-indicator'] { flex: none; inline-size: 0.7em; block-size: 0.7em; margin-inline-start: 0.35em; background: var(--argus-filter-indicator-color, currentColor); clip-path: polygon(0 0, 100% 0, 62% 48%, 62% 100%, 38% 82%, 38% 48%); } [data-align='end'] [part~='filter-indicator'] { order: -2; margin-inline: 0 0.35em; } @media (forced-colors: active) { /* Backgrounds are forced to Canvas there, which would hide the funnel. */ [part~='filter-indicator'] { forced-color-adjust: none; background: CanvasText; } } /* * Pinned columns: sticky inside the scroll container, with offsets from the * table model. Logical insets make RTL work without extra rules. */ [data-pin] { position: sticky; z-index: 1; } [data-pin='start'] { inset-inline-start: var(--_pin-offset); } [data-pin='end'] { inset-inline-end: var(--_pin-offset); } /* * Pinned body cells are sticky only while the table scrolls sideways * (data-hscroll on the scroller). At rest they are plain cells shifted by the * horizontal scroll offset, which vertical scrolling never changes: a sticky * cell per row is a compositing layer each, and Safari stutters moving them * (PinScrollController). Both place the cells at the same spot. */ [part~='row'] > [data-pin] { position: relative; inset-inline: auto; } [part~='row'] > [data-pin='start'] { transform: translateX(var(--_sx, 0px)); } [part~='row'] > [data-pin='end'] { transform: translateX(calc(var(--_sx, 0px) - var(--_dir) * var(--_max-x, 0px))); } [data-hscroll] [part~='row'] > [data-pin] { position: sticky; transform: none; } [data-hscroll] [part~='row'] > [data-pin='start'] { inset-inline-start: var(--_pin-offset); } [data-hscroll] [part~='row'] > [data-pin='end'] { inset-inline-end: var(--_pin-offset); } [part~='cell-pinned'] { background: var(--_row-surface); } /* * The edge shadow, once per pinned side (.pin-shadow, beside the scroller). * --argus-pinned-shadow is written for a shadow falling toward the end side; * the start edge in RTL and the end edge in LTR mirror it. */ .pin-shadow { position: absolute; inset-block-start: 0; block-size: min(var(--_view-h, 100%), var(--_content-h, 100%)); z-index: 3; pointer-events: none; } .pin-shadow[data-side='start'] { inset-inline-start: 0; } .pin-shadow[data-side='end'] { inset-inline-end: var(--_sb-x, 0px); } .pin-shadow::after { content: ''; position: absolute; inset: 0; box-shadow: var( --argus-pinned-shadow, 4px 0 6px -4px light-dark(rgb(0 0 0 / 0.2), rgb(0 0 0 / 0.6)) ); transform: scaleX(var(--_dir)); } .pin-shadow[data-side='end']::after { transform: scaleX(calc(-1 * var(--_dir))); } [data-align='center'] { justify-content: center; text-align: center; } [data-align='end'] { justify-content: flex-end; text-align: end; } /* * Wrapped text (ColumnDef.wrap). In a fixed-height row, text taller than the row * starts at the top (safe) and is clipped below. */ [part~='cell'][data-wrap] { white-space: normal; overflow-wrap: anywhere; align-items: center; align-items: safe center; } /* * rowHeight: 'auto'. Body and pinned rows fit their content, at least one row * tall; the header keeps its height. Content sits at the top of the cell, with * the block padding that centres one line in a one-row cell, so one-line rows * look as they do with a fixed height. The rows' heights are measured and * placed by the table: the browser's scroll anchoring would fight it. */ [data-auto-rows] { overflow-anchor: none; } [data-auto-rows] > [part~='body'] > .row, [data-auto-rows] > .pinned > .row { block-size: auto; min-block-size: var(--_row-height); grid-template-rows: minmax(var(--_row-height), auto); } /* Reading the rows' own heights: without the height each row renders at. */ [data-auto-rows] > [part~='body'] > .row[data-measure-row] { min-block-size: var(--_row-height) !important; } [data-auto-rows] [part~='cell'] { align-items: start; padding-block: var( --argus-cell-padding-block, max(0px, (var(--_row-height) - 1lh - var(--argus-border-width, 1px)) / 2) ); } /* Skeleton bars and the Retry button, centred in a one-row row as before. */ [data-auto-rows] [part~='row-loading'] > [part~='cell'] { align-items: center; padding-block: 0; } [data-auto-rows] > [part~='body'] > .row > [role='gridcell'] { scroll-margin-block: calc(var(--_header-h) + var(--_pin-top-h, 0px)) var(--_pin-bottom-h, 0px); } [data-auto-rows] > [part~='empty'] { min-block-size: calc( 100% - var(--_header-h) - var(--_pin-top-h, 0px) - var(--_pin-bottom-h, 0px) ); } ::slotted(*) { min-inline-size: 0; overflow: hidden; text-overflow: ellipsis; } /* Fitting a column to its content: set for one synchronous measurement, never painted. */ [data-measure] { inline-size: max-content; } /* Rows of a data source that haven't loaded: a bar per cell, pulsing gently. */ [part~='skeleton'] { flex: none; inline-size: min(60%, 8em); block-size: 0.6em; border-radius: 0.3em; background: var(--argus-skeleton-bg, color-mix(in srgb, currentColor 12%, transparent)); animation: argus-skeleton-pulse 1.6s ease-in-out infinite; } [part~='skeleton-error'] { animation: none; opacity: 0.5; } @keyframes argus-skeleton-pulse { 50% { opacity: 0.45; } } @media (prefers-reduced-motion: reduce) { [part~='skeleton'] { animation: none; } } [part~='retry'] { font: inherit; color: inherit; cursor: pointer; } [part~='empty'] { display: flex; align-items: center; justify-content: center; min-block-size: calc( 100% - var(--_header-h) - (var(--_pin-top-rows, 0) + var(--_pin-bottom-rows, 0)) * var(--_row-height) ); padding: var(--_pad); box-sizing: border-box; } /* Measures the resolved row height in px for the virtualizer. */ .probe { position: absolute; inset-block-start: 0; inline-size: 0; block-size: var(--_row-height); visibility: hidden; pointer-events: none; } } `",
|
|
2595
4067
|
"description": "Base styles. Everything sits in `@layer argus-base`, and every value reads a\npublic token with a neutral fallback, so themes and page CSS always win.\n`--_*` properties are private."
|
|
2596
4068
|
}
|
|
2597
4069
|
],
|