@vuecs/table 1.0.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/LICENSE +201 -0
- package/README.md +59 -0
- package/dist/components/Table.vue.d.ts +511 -0
- package/dist/components/Table.vue.d.ts.map +1 -0
- package/dist/components/TableBody.vue.d.ts +43 -0
- package/dist/components/TableBody.vue.d.ts.map +1 -0
- package/dist/components/TableCell.vue.d.ts +182 -0
- package/dist/components/TableCell.vue.d.ts.map +1 -0
- package/dist/components/TableEmpty.vue.d.ts +104 -0
- package/dist/components/TableEmpty.vue.d.ts.map +1 -0
- package/dist/components/TableFooter.vue.d.ts +40 -0
- package/dist/components/TableFooter.vue.d.ts.map +1 -0
- package/dist/components/TableHeadCell.vue.d.ts +267 -0
- package/dist/components/TableHeadCell.vue.d.ts.map +1 -0
- package/dist/components/TableHeader.vue.d.ts +40 -0
- package/dist/components/TableHeader.vue.d.ts.map +1 -0
- package/dist/components/TableLite.vue.d.ts +250 -0
- package/dist/components/TableLite.vue.d.ts.map +1 -0
- package/dist/components/TableLoading.vue.d.ts +88 -0
- package/dist/components/TableLoading.vue.d.ts.map +1 -0
- package/dist/components/TableRow.vue.d.ts +116 -0
- package/dist/components/TableRow.vue.d.ts.map +1 -0
- package/dist/components/TableSortIndicators.vue.d.ts +335 -0
- package/dist/components/TableSortIndicators.vue.d.ts.map +1 -0
- package/dist/components/index.d.ts +23 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/composables/context.d.ts +104 -0
- package/dist/composables/context.d.ts.map +1 -0
- package/dist/composables/define-table.d.ts +48 -0
- package/dist/composables/define-table.d.ts.map +1 -0
- package/dist/composables/index.d.ts +5 -0
- package/dist/composables/index.d.ts.map +1 -0
- package/dist/composables/selection.d.ts +10 -0
- package/dist/composables/selection.d.ts.map +1 -0
- package/dist/composables/sort.d.ts +61 -0
- package/dist/composables/sort.d.ts.map +1 -0
- package/dist/defaults.d.ts +41 -0
- package/dist/defaults.d.ts.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.mjs +2081 -0
- package/dist/index.mjs.map +1 -0
- package/dist/style.css +145 -0
- package/dist/theme.d.ts +13 -0
- package/dist/theme.d.ts.map +1 -0
- package/dist/types.d.ts +248 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/utils/auto-render.d.ts +31 -0
- package/dist/utils/auto-render.d.ts.map +1 -0
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/render-utils.d.ts +49 -0
- package/dist/utils/render-utils.d.ts.map +1 -0
- package/dist/utils/sort-rows.d.ts +29 -0
- package/dist/utils/sort-rows.d.ts.map +1 -0
- package/dist/vue.d.ts +27 -0
- package/dist/vue.d.ts.map +1 -0
- package/package.json +62 -0
|
@@ -0,0 +1,511 @@
|
|
|
1
|
+
import type { ExtractPublicPropTypes, PropType, SlotsType } from 'vue';
|
|
2
|
+
import type { RowSelectionKey, RowSelectionMode, RowSelectionValue } from '../composables/selection';
|
|
3
|
+
import type { TableColumnRaw, TableSlotProps, TableSortState, TableThemeClasses } from '../types';
|
|
4
|
+
declare const tableProps: {
|
|
5
|
+
themeClass: {
|
|
6
|
+
type: PropType<import("@vuecs/core").ThemeClassesOverride<TableThemeClasses>>;
|
|
7
|
+
default: any;
|
|
8
|
+
};
|
|
9
|
+
themeVariant: {
|
|
10
|
+
type: PropType<import("@vuecs/core").VariantValues>;
|
|
11
|
+
default: any;
|
|
12
|
+
};
|
|
13
|
+
/** Row data array. */
|
|
14
|
+
data: {
|
|
15
|
+
type: PropType<unknown[]>;
|
|
16
|
+
default: () => any[];
|
|
17
|
+
};
|
|
18
|
+
/** Column definitions (TableColumn or bare-string shorthand). When omitted, columns are derived from `Object.keys(data[0])`. */
|
|
19
|
+
columns: {
|
|
20
|
+
type: PropType<TableColumnRaw<unknown>[]>;
|
|
21
|
+
default: any;
|
|
22
|
+
};
|
|
23
|
+
/** Busy flag — drives `aria-busy` on the `<table>` and gates the loading-band render. */
|
|
24
|
+
busy: {
|
|
25
|
+
type: BooleanConstructor;
|
|
26
|
+
default: boolean;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Controlled sort state as `SortDescriptor[]`. Use `v-model:sort`.
|
|
30
|
+
* Empty array means "no sort". Since v1.x-B this is always an
|
|
31
|
+
* array (BREAKING change from v0.1's `{ key, direction } | null`).
|
|
32
|
+
* Single-column sort is just an array of length 0 or 1.
|
|
33
|
+
*/
|
|
34
|
+
sort: {
|
|
35
|
+
type: PropType<TableSortState>;
|
|
36
|
+
default: () => any[];
|
|
37
|
+
};
|
|
38
|
+
/** When `true`, the cycle skips the `null` step: `null → asc → desc → asc`. */
|
|
39
|
+
mustSort: {
|
|
40
|
+
type: BooleanConstructor;
|
|
41
|
+
default: boolean;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Enable multi-column sort. When `true`, Shift-click on a
|
|
45
|
+
* sortable header adds it as a secondary descriptor (or cycles
|
|
46
|
+
* its direction if already present). Plain click without Shift
|
|
47
|
+
* replaces multi-sort with single-sort of the clicked column.
|
|
48
|
+
* Default `false` — Shift-click behaves identically to plain
|
|
49
|
+
* click and the sort array stays length 0–1.
|
|
50
|
+
*/
|
|
51
|
+
multiSort: {
|
|
52
|
+
type: BooleanConstructor;
|
|
53
|
+
default: boolean;
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Maximum number of sort keys retained when `:multi-sort` is on.
|
|
57
|
+
* Adding a key past the cap drops the oldest descriptor. `0`
|
|
58
|
+
* means unlimited. Default `3` (matches Excel / bvnext / TanStack
|
|
59
|
+
* convention).
|
|
60
|
+
*/
|
|
61
|
+
maxSortKeys: {
|
|
62
|
+
type: NumberConstructor;
|
|
63
|
+
default: number;
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* When `true`, the table reorders `:data` internally using
|
|
67
|
+
* `accessor` (or `formatter` output if `column.sortByFormatted`),
|
|
68
|
+
* honoring `column.sortFn` / `nullsFirst` if set. `v-model:sort`
|
|
69
|
+
* still emits intent so consumers stay observable. Default
|
|
70
|
+
* `false` — v0.1 controlled-sort behaviour preserved.
|
|
71
|
+
*/
|
|
72
|
+
clientSort: {
|
|
73
|
+
type: BooleanConstructor;
|
|
74
|
+
default: boolean;
|
|
75
|
+
};
|
|
76
|
+
/** Wrap the `<table>` in an overflow scroll container. */
|
|
77
|
+
scrollable: {
|
|
78
|
+
type: BooleanConstructor;
|
|
79
|
+
default: boolean;
|
|
80
|
+
};
|
|
81
|
+
/** When `:scrollable`, sticks the `<thead>` to the top of the scroll container. */
|
|
82
|
+
stickyHeader: {
|
|
83
|
+
type: BooleanConstructor;
|
|
84
|
+
default: boolean;
|
|
85
|
+
};
|
|
86
|
+
/** When `:scrollable`, applied as `max-height` on the scroll container (any CSS length, e.g. `'24rem'`). */
|
|
87
|
+
maxHeight: {
|
|
88
|
+
type: StringConstructor;
|
|
89
|
+
default: any;
|
|
90
|
+
};
|
|
91
|
+
/** Opt-in row-click affordance — adds `tabindex` + cursor-pointer on every row and emits `@row-click`. */
|
|
92
|
+
rowClickable: {
|
|
93
|
+
type: BooleanConstructor;
|
|
94
|
+
default: boolean;
|
|
95
|
+
};
|
|
96
|
+
/**
|
|
97
|
+
* Row selection mode (plan 033 v1.x-A). When set, the table flips
|
|
98
|
+
* to ARIA `role="grid"` (+ `aria-multiselectable` for multi) and
|
|
99
|
+
* rows render with `aria-selected`. `undefined` keeps the v0.1
|
|
100
|
+
* plain-table semantics.
|
|
101
|
+
*/
|
|
102
|
+
selectionMode: {
|
|
103
|
+
type: PropType<RowSelectionMode>;
|
|
104
|
+
default: any;
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* Controlled selection state. Use `v-model:selection`. Type is
|
|
108
|
+
* `string|number` for single mode, `(string|number)[]` for multi.
|
|
109
|
+
* `null` clears the selection.
|
|
110
|
+
*/
|
|
111
|
+
selection: {
|
|
112
|
+
type: PropType<RowSelectionValue<RowSelectionMode> | null>;
|
|
113
|
+
default: any;
|
|
114
|
+
};
|
|
115
|
+
/**
|
|
116
|
+
* Resolve a row's selection key. Defaults to `row.id` (falling
|
|
117
|
+
* back to the row index when absent). Pass a function for richer
|
|
118
|
+
* mappings (e.g. `(row) => row.uuid`).
|
|
119
|
+
*/
|
|
120
|
+
getRowKey: {
|
|
121
|
+
type: PropType<(row: unknown, index: number) => RowSelectionKey>;
|
|
122
|
+
default: any;
|
|
123
|
+
};
|
|
124
|
+
/**
|
|
125
|
+
* Stacked responsive mode (v0.2-D). When `true`, sets
|
|
126
|
+
* `data-responsive="true"` on the `<table>` so the structural CSS
|
|
127
|
+
* (and any theme-specific overrides) can collapse the table into
|
|
128
|
+
* per-row cards at narrow viewports. Uses each cell's `data-label`
|
|
129
|
+
* as the per-row column label.
|
|
130
|
+
*/
|
|
131
|
+
responsive: {
|
|
132
|
+
type: BooleanConstructor;
|
|
133
|
+
default: boolean;
|
|
134
|
+
};
|
|
135
|
+
/** Density shorthand for `themeVariant.density`. */
|
|
136
|
+
density: {
|
|
137
|
+
type: PropType<"compact" | "normal" | "spacious">;
|
|
138
|
+
default: any;
|
|
139
|
+
};
|
|
140
|
+
/** Alternating row backgrounds — shorthand for `themeVariant.striped`. */
|
|
141
|
+
striped: {
|
|
142
|
+
type: BooleanConstructor;
|
|
143
|
+
default: any;
|
|
144
|
+
};
|
|
145
|
+
/** Cell borders — shorthand for `themeVariant.bordered`. */
|
|
146
|
+
bordered: {
|
|
147
|
+
type: BooleanConstructor;
|
|
148
|
+
default: any;
|
|
149
|
+
};
|
|
150
|
+
/** Row hover highlight — shorthand for `themeVariant.hover`. */
|
|
151
|
+
hover: {
|
|
152
|
+
type: BooleanConstructor;
|
|
153
|
+
default: any;
|
|
154
|
+
};
|
|
155
|
+
/** HTML tag to render. */
|
|
156
|
+
tag: {
|
|
157
|
+
type: StringConstructor;
|
|
158
|
+
default: string;
|
|
159
|
+
};
|
|
160
|
+
};
|
|
161
|
+
export type TableProps = ExtractPublicPropTypes<typeof tableProps>;
|
|
162
|
+
declare const _default: typeof __VLS_export;
|
|
163
|
+
export default _default;
|
|
164
|
+
declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
165
|
+
themeClass: {
|
|
166
|
+
type: PropType<import("@vuecs/core").ThemeClassesOverride<TableThemeClasses>>;
|
|
167
|
+
default: any;
|
|
168
|
+
};
|
|
169
|
+
themeVariant: {
|
|
170
|
+
type: PropType<import("@vuecs/core").VariantValues>;
|
|
171
|
+
default: any;
|
|
172
|
+
};
|
|
173
|
+
/** Row data array. */
|
|
174
|
+
data: {
|
|
175
|
+
type: PropType<unknown[]>;
|
|
176
|
+
default: () => any[];
|
|
177
|
+
};
|
|
178
|
+
/** Column definitions (TableColumn or bare-string shorthand). When omitted, columns are derived from `Object.keys(data[0])`. */
|
|
179
|
+
columns: {
|
|
180
|
+
type: PropType<TableColumnRaw<unknown>[]>;
|
|
181
|
+
default: any;
|
|
182
|
+
};
|
|
183
|
+
/** Busy flag — drives `aria-busy` on the `<table>` and gates the loading-band render. */
|
|
184
|
+
busy: {
|
|
185
|
+
type: BooleanConstructor;
|
|
186
|
+
default: boolean;
|
|
187
|
+
};
|
|
188
|
+
/**
|
|
189
|
+
* Controlled sort state as `SortDescriptor[]`. Use `v-model:sort`.
|
|
190
|
+
* Empty array means "no sort". Since v1.x-B this is always an
|
|
191
|
+
* array (BREAKING change from v0.1's `{ key, direction } | null`).
|
|
192
|
+
* Single-column sort is just an array of length 0 or 1.
|
|
193
|
+
*/
|
|
194
|
+
sort: {
|
|
195
|
+
type: PropType<TableSortState>;
|
|
196
|
+
default: () => any[];
|
|
197
|
+
};
|
|
198
|
+
/** When `true`, the cycle skips the `null` step: `null → asc → desc → asc`. */
|
|
199
|
+
mustSort: {
|
|
200
|
+
type: BooleanConstructor;
|
|
201
|
+
default: boolean;
|
|
202
|
+
};
|
|
203
|
+
/**
|
|
204
|
+
* Enable multi-column sort. When `true`, Shift-click on a
|
|
205
|
+
* sortable header adds it as a secondary descriptor (or cycles
|
|
206
|
+
* its direction if already present). Plain click without Shift
|
|
207
|
+
* replaces multi-sort with single-sort of the clicked column.
|
|
208
|
+
* Default `false` — Shift-click behaves identically to plain
|
|
209
|
+
* click and the sort array stays length 0–1.
|
|
210
|
+
*/
|
|
211
|
+
multiSort: {
|
|
212
|
+
type: BooleanConstructor;
|
|
213
|
+
default: boolean;
|
|
214
|
+
};
|
|
215
|
+
/**
|
|
216
|
+
* Maximum number of sort keys retained when `:multi-sort` is on.
|
|
217
|
+
* Adding a key past the cap drops the oldest descriptor. `0`
|
|
218
|
+
* means unlimited. Default `3` (matches Excel / bvnext / TanStack
|
|
219
|
+
* convention).
|
|
220
|
+
*/
|
|
221
|
+
maxSortKeys: {
|
|
222
|
+
type: NumberConstructor;
|
|
223
|
+
default: number;
|
|
224
|
+
};
|
|
225
|
+
/**
|
|
226
|
+
* When `true`, the table reorders `:data` internally using
|
|
227
|
+
* `accessor` (or `formatter` output if `column.sortByFormatted`),
|
|
228
|
+
* honoring `column.sortFn` / `nullsFirst` if set. `v-model:sort`
|
|
229
|
+
* still emits intent so consumers stay observable. Default
|
|
230
|
+
* `false` — v0.1 controlled-sort behaviour preserved.
|
|
231
|
+
*/
|
|
232
|
+
clientSort: {
|
|
233
|
+
type: BooleanConstructor;
|
|
234
|
+
default: boolean;
|
|
235
|
+
};
|
|
236
|
+
/** Wrap the `<table>` in an overflow scroll container. */
|
|
237
|
+
scrollable: {
|
|
238
|
+
type: BooleanConstructor;
|
|
239
|
+
default: boolean;
|
|
240
|
+
};
|
|
241
|
+
/** When `:scrollable`, sticks the `<thead>` to the top of the scroll container. */
|
|
242
|
+
stickyHeader: {
|
|
243
|
+
type: BooleanConstructor;
|
|
244
|
+
default: boolean;
|
|
245
|
+
};
|
|
246
|
+
/** When `:scrollable`, applied as `max-height` on the scroll container (any CSS length, e.g. `'24rem'`). */
|
|
247
|
+
maxHeight: {
|
|
248
|
+
type: StringConstructor;
|
|
249
|
+
default: any;
|
|
250
|
+
};
|
|
251
|
+
/** Opt-in row-click affordance — adds `tabindex` + cursor-pointer on every row and emits `@row-click`. */
|
|
252
|
+
rowClickable: {
|
|
253
|
+
type: BooleanConstructor;
|
|
254
|
+
default: boolean;
|
|
255
|
+
};
|
|
256
|
+
/**
|
|
257
|
+
* Row selection mode (plan 033 v1.x-A). When set, the table flips
|
|
258
|
+
* to ARIA `role="grid"` (+ `aria-multiselectable` for multi) and
|
|
259
|
+
* rows render with `aria-selected`. `undefined` keeps the v0.1
|
|
260
|
+
* plain-table semantics.
|
|
261
|
+
*/
|
|
262
|
+
selectionMode: {
|
|
263
|
+
type: PropType<RowSelectionMode>;
|
|
264
|
+
default: any;
|
|
265
|
+
};
|
|
266
|
+
/**
|
|
267
|
+
* Controlled selection state. Use `v-model:selection`. Type is
|
|
268
|
+
* `string|number` for single mode, `(string|number)[]` for multi.
|
|
269
|
+
* `null` clears the selection.
|
|
270
|
+
*/
|
|
271
|
+
selection: {
|
|
272
|
+
type: PropType<RowSelectionValue<RowSelectionMode> | null>;
|
|
273
|
+
default: any;
|
|
274
|
+
};
|
|
275
|
+
/**
|
|
276
|
+
* Resolve a row's selection key. Defaults to `row.id` (falling
|
|
277
|
+
* back to the row index when absent). Pass a function for richer
|
|
278
|
+
* mappings (e.g. `(row) => row.uuid`).
|
|
279
|
+
*/
|
|
280
|
+
getRowKey: {
|
|
281
|
+
type: PropType<(row: unknown, index: number) => RowSelectionKey>;
|
|
282
|
+
default: any;
|
|
283
|
+
};
|
|
284
|
+
/**
|
|
285
|
+
* Stacked responsive mode (v0.2-D). When `true`, sets
|
|
286
|
+
* `data-responsive="true"` on the `<table>` so the structural CSS
|
|
287
|
+
* (and any theme-specific overrides) can collapse the table into
|
|
288
|
+
* per-row cards at narrow viewports. Uses each cell's `data-label`
|
|
289
|
+
* as the per-row column label.
|
|
290
|
+
*/
|
|
291
|
+
responsive: {
|
|
292
|
+
type: BooleanConstructor;
|
|
293
|
+
default: boolean;
|
|
294
|
+
};
|
|
295
|
+
/** Density shorthand for `themeVariant.density`. */
|
|
296
|
+
density: {
|
|
297
|
+
type: PropType<"compact" | "normal" | "spacious">;
|
|
298
|
+
default: any;
|
|
299
|
+
};
|
|
300
|
+
/** Alternating row backgrounds — shorthand for `themeVariant.striped`. */
|
|
301
|
+
striped: {
|
|
302
|
+
type: BooleanConstructor;
|
|
303
|
+
default: any;
|
|
304
|
+
};
|
|
305
|
+
/** Cell borders — shorthand for `themeVariant.bordered`. */
|
|
306
|
+
bordered: {
|
|
307
|
+
type: BooleanConstructor;
|
|
308
|
+
default: any;
|
|
309
|
+
};
|
|
310
|
+
/** Row hover highlight — shorthand for `themeVariant.hover`. */
|
|
311
|
+
hover: {
|
|
312
|
+
type: BooleanConstructor;
|
|
313
|
+
default: any;
|
|
314
|
+
};
|
|
315
|
+
/** HTML tag to render. */
|
|
316
|
+
tag: {
|
|
317
|
+
type: StringConstructor;
|
|
318
|
+
default: string;
|
|
319
|
+
};
|
|
320
|
+
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
321
|
+
[key: string]: any;
|
|
322
|
+
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("update:sort" | "update:selection" | "row-click")[], "update:sort" | "update:selection" | "row-click", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
323
|
+
themeClass: {
|
|
324
|
+
type: PropType<import("@vuecs/core").ThemeClassesOverride<TableThemeClasses>>;
|
|
325
|
+
default: any;
|
|
326
|
+
};
|
|
327
|
+
themeVariant: {
|
|
328
|
+
type: PropType<import("@vuecs/core").VariantValues>;
|
|
329
|
+
default: any;
|
|
330
|
+
};
|
|
331
|
+
/** Row data array. */
|
|
332
|
+
data: {
|
|
333
|
+
type: PropType<unknown[]>;
|
|
334
|
+
default: () => any[];
|
|
335
|
+
};
|
|
336
|
+
/** Column definitions (TableColumn or bare-string shorthand). When omitted, columns are derived from `Object.keys(data[0])`. */
|
|
337
|
+
columns: {
|
|
338
|
+
type: PropType<TableColumnRaw<unknown>[]>;
|
|
339
|
+
default: any;
|
|
340
|
+
};
|
|
341
|
+
/** Busy flag — drives `aria-busy` on the `<table>` and gates the loading-band render. */
|
|
342
|
+
busy: {
|
|
343
|
+
type: BooleanConstructor;
|
|
344
|
+
default: boolean;
|
|
345
|
+
};
|
|
346
|
+
/**
|
|
347
|
+
* Controlled sort state as `SortDescriptor[]`. Use `v-model:sort`.
|
|
348
|
+
* Empty array means "no sort". Since v1.x-B this is always an
|
|
349
|
+
* array (BREAKING change from v0.1's `{ key, direction } | null`).
|
|
350
|
+
* Single-column sort is just an array of length 0 or 1.
|
|
351
|
+
*/
|
|
352
|
+
sort: {
|
|
353
|
+
type: PropType<TableSortState>;
|
|
354
|
+
default: () => any[];
|
|
355
|
+
};
|
|
356
|
+
/** When `true`, the cycle skips the `null` step: `null → asc → desc → asc`. */
|
|
357
|
+
mustSort: {
|
|
358
|
+
type: BooleanConstructor;
|
|
359
|
+
default: boolean;
|
|
360
|
+
};
|
|
361
|
+
/**
|
|
362
|
+
* Enable multi-column sort. When `true`, Shift-click on a
|
|
363
|
+
* sortable header adds it as a secondary descriptor (or cycles
|
|
364
|
+
* its direction if already present). Plain click without Shift
|
|
365
|
+
* replaces multi-sort with single-sort of the clicked column.
|
|
366
|
+
* Default `false` — Shift-click behaves identically to plain
|
|
367
|
+
* click and the sort array stays length 0–1.
|
|
368
|
+
*/
|
|
369
|
+
multiSort: {
|
|
370
|
+
type: BooleanConstructor;
|
|
371
|
+
default: boolean;
|
|
372
|
+
};
|
|
373
|
+
/**
|
|
374
|
+
* Maximum number of sort keys retained when `:multi-sort` is on.
|
|
375
|
+
* Adding a key past the cap drops the oldest descriptor. `0`
|
|
376
|
+
* means unlimited. Default `3` (matches Excel / bvnext / TanStack
|
|
377
|
+
* convention).
|
|
378
|
+
*/
|
|
379
|
+
maxSortKeys: {
|
|
380
|
+
type: NumberConstructor;
|
|
381
|
+
default: number;
|
|
382
|
+
};
|
|
383
|
+
/**
|
|
384
|
+
* When `true`, the table reorders `:data` internally using
|
|
385
|
+
* `accessor` (or `formatter` output if `column.sortByFormatted`),
|
|
386
|
+
* honoring `column.sortFn` / `nullsFirst` if set. `v-model:sort`
|
|
387
|
+
* still emits intent so consumers stay observable. Default
|
|
388
|
+
* `false` — v0.1 controlled-sort behaviour preserved.
|
|
389
|
+
*/
|
|
390
|
+
clientSort: {
|
|
391
|
+
type: BooleanConstructor;
|
|
392
|
+
default: boolean;
|
|
393
|
+
};
|
|
394
|
+
/** Wrap the `<table>` in an overflow scroll container. */
|
|
395
|
+
scrollable: {
|
|
396
|
+
type: BooleanConstructor;
|
|
397
|
+
default: boolean;
|
|
398
|
+
};
|
|
399
|
+
/** When `:scrollable`, sticks the `<thead>` to the top of the scroll container. */
|
|
400
|
+
stickyHeader: {
|
|
401
|
+
type: BooleanConstructor;
|
|
402
|
+
default: boolean;
|
|
403
|
+
};
|
|
404
|
+
/** When `:scrollable`, applied as `max-height` on the scroll container (any CSS length, e.g. `'24rem'`). */
|
|
405
|
+
maxHeight: {
|
|
406
|
+
type: StringConstructor;
|
|
407
|
+
default: any;
|
|
408
|
+
};
|
|
409
|
+
/** Opt-in row-click affordance — adds `tabindex` + cursor-pointer on every row and emits `@row-click`. */
|
|
410
|
+
rowClickable: {
|
|
411
|
+
type: BooleanConstructor;
|
|
412
|
+
default: boolean;
|
|
413
|
+
};
|
|
414
|
+
/**
|
|
415
|
+
* Row selection mode (plan 033 v1.x-A). When set, the table flips
|
|
416
|
+
* to ARIA `role="grid"` (+ `aria-multiselectable` for multi) and
|
|
417
|
+
* rows render with `aria-selected`. `undefined` keeps the v0.1
|
|
418
|
+
* plain-table semantics.
|
|
419
|
+
*/
|
|
420
|
+
selectionMode: {
|
|
421
|
+
type: PropType<RowSelectionMode>;
|
|
422
|
+
default: any;
|
|
423
|
+
};
|
|
424
|
+
/**
|
|
425
|
+
* Controlled selection state. Use `v-model:selection`. Type is
|
|
426
|
+
* `string|number` for single mode, `(string|number)[]` for multi.
|
|
427
|
+
* `null` clears the selection.
|
|
428
|
+
*/
|
|
429
|
+
selection: {
|
|
430
|
+
type: PropType<RowSelectionValue<RowSelectionMode> | null>;
|
|
431
|
+
default: any;
|
|
432
|
+
};
|
|
433
|
+
/**
|
|
434
|
+
* Resolve a row's selection key. Defaults to `row.id` (falling
|
|
435
|
+
* back to the row index when absent). Pass a function for richer
|
|
436
|
+
* mappings (e.g. `(row) => row.uuid`).
|
|
437
|
+
*/
|
|
438
|
+
getRowKey: {
|
|
439
|
+
type: PropType<(row: unknown, index: number) => RowSelectionKey>;
|
|
440
|
+
default: any;
|
|
441
|
+
};
|
|
442
|
+
/**
|
|
443
|
+
* Stacked responsive mode (v0.2-D). When `true`, sets
|
|
444
|
+
* `data-responsive="true"` on the `<table>` so the structural CSS
|
|
445
|
+
* (and any theme-specific overrides) can collapse the table into
|
|
446
|
+
* per-row cards at narrow viewports. Uses each cell's `data-label`
|
|
447
|
+
* as the per-row column label.
|
|
448
|
+
*/
|
|
449
|
+
responsive: {
|
|
450
|
+
type: BooleanConstructor;
|
|
451
|
+
default: boolean;
|
|
452
|
+
};
|
|
453
|
+
/** Density shorthand for `themeVariant.density`. */
|
|
454
|
+
density: {
|
|
455
|
+
type: PropType<"compact" | "normal" | "spacious">;
|
|
456
|
+
default: any;
|
|
457
|
+
};
|
|
458
|
+
/** Alternating row backgrounds — shorthand for `themeVariant.striped`. */
|
|
459
|
+
striped: {
|
|
460
|
+
type: BooleanConstructor;
|
|
461
|
+
default: any;
|
|
462
|
+
};
|
|
463
|
+
/** Cell borders — shorthand for `themeVariant.bordered`. */
|
|
464
|
+
bordered: {
|
|
465
|
+
type: BooleanConstructor;
|
|
466
|
+
default: any;
|
|
467
|
+
};
|
|
468
|
+
/** Row hover highlight — shorthand for `themeVariant.hover`. */
|
|
469
|
+
hover: {
|
|
470
|
+
type: BooleanConstructor;
|
|
471
|
+
default: any;
|
|
472
|
+
};
|
|
473
|
+
/** HTML tag to render. */
|
|
474
|
+
tag: {
|
|
475
|
+
type: StringConstructor;
|
|
476
|
+
default: string;
|
|
477
|
+
};
|
|
478
|
+
}>> & Readonly<{
|
|
479
|
+
"onUpdate:sort"?: (...args: any[]) => any;
|
|
480
|
+
"onUpdate:selection"?: (...args: any[]) => any;
|
|
481
|
+
"onRow-click"?: (...args: any[]) => any;
|
|
482
|
+
}>, {
|
|
483
|
+
columns: TableColumnRaw<unknown>[];
|
|
484
|
+
mustSort: boolean;
|
|
485
|
+
maxSortKeys: number;
|
|
486
|
+
sort: TableSortState;
|
|
487
|
+
themeClass: import("@vuecs/core").ThemeClassesOverride<TableThemeClasses>;
|
|
488
|
+
themeVariant: import("@vuecs/core").VariantValues;
|
|
489
|
+
data: unknown[];
|
|
490
|
+
busy: boolean;
|
|
491
|
+
multiSort: boolean;
|
|
492
|
+
clientSort: boolean;
|
|
493
|
+
scrollable: boolean;
|
|
494
|
+
stickyHeader: boolean;
|
|
495
|
+
maxHeight: string;
|
|
496
|
+
rowClickable: boolean;
|
|
497
|
+
selectionMode: RowSelectionMode;
|
|
498
|
+
selection: RowSelectionValue<RowSelectionMode>;
|
|
499
|
+
getRowKey: (row: unknown, index: number) => RowSelectionKey;
|
|
500
|
+
responsive: boolean;
|
|
501
|
+
density: "compact" | "normal" | "spacious";
|
|
502
|
+
striped: boolean;
|
|
503
|
+
bordered: boolean;
|
|
504
|
+
hover: boolean;
|
|
505
|
+
tag: string;
|
|
506
|
+
}, SlotsType<{
|
|
507
|
+
default(props: TableSlotProps): unknown;
|
|
508
|
+
caption(): unknown;
|
|
509
|
+
colgroup(): unknown;
|
|
510
|
+
}>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
511
|
+
//# sourceMappingURL=Table.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Table.vue.d.ts","sourceRoot":"","sources":["../../src/components/Table.vue"],"names":[],"mappings":"AA0ZA,OAAO,KAAK,EAAE,sBAAsB,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAOvE,OAAO,KAAK,EACR,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACpB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAGR,cAAc,EACd,cAAc,EACd,cAAc,EACd,iBAAiB,EACpB,MAAM,UAAU,CAAC;AAYlB,QAAA,MAAM,UAAU;;;;;;;;;IACZ,sBAAsB;;cACC,QAAQ,CAAC,OAAO,EAAE,CAAC;;;IAC1C,gIAAgI;;cACtG,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;;;IAC7D,yFAAyF;;;;;IAEzF;;;;;OAKG;;cACoB,QAAQ,CAAC,cAAc,CAAC;;;IAC/C,+EAA+E;;;;;IAE/E;;;;;;;OAOG;;;;;IAEH;;;;;OAKG;;;;;IAEH;;;;;;OAMG;;;;;IAEH,0DAA0D;;;;;IAE1D,mFAAmF;;;;;IAEnF,4GAA4G;;;;;IAE5G,0GAA0G;;;;;IAE1G;;;;;OAKG;;cAC8B,QAAQ,CAAC,gBAAgB,CAAC;;;IAC3D;;;;OAIG;;cAEwC,QAAQ,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC;;;IAG/F;;;;OAIG;;cAEmB,QAAQ,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,KAAK,eAAe,CAAC;;;IAGhF;;;;;;OAMG;;;;;IAEH,oDAAoD;;cACzB,QAAQ,CAAC,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC;;;IACtE,0EAA0E;;;;;IAE1E,4DAA4D;;;;;IAE5D,gEAAgE;;;;;IAEhE,0BAA0B;;;;;CAG7B,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,sBAAsB,CAAC,OAAO,UAAU,CAAC,CAAC;wBAE9C,OAAO,YAAY;AAAxC,wBAAyC;AAQzC,QAAA,MAAM,YAAY;;;;;;;;;IAvGd,sBAAsB;;cACC,QAAQ,CAAC,OAAO,EAAE,CAAC;;;IAC1C,gIAAgI;;cACtG,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;;;IAC7D,yFAAyF;;;;;IAEzF;;;;;OAKG;;cACoB,QAAQ,CAAC,cAAc,CAAC;;;IAC/C,+EAA+E;;;;;IAE/E;;;;;;;OAOG;;;;;IAEH;;;;;OAKG;;;;;IAEH;;;;;;OAMG;;;;;IAEH,0DAA0D;;;;;IAE1D,mFAAmF;;;;;IAEnF,4GAA4G;;;;;IAE5G,0GAA0G;;;;;IAE1G;;;;;OAKG;;cAC8B,QAAQ,CAAC,gBAAgB,CAAC;;;IAC3D;;;;OAIG;;cAEwC,QAAQ,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC;;;IAG/F;;;;OAIG;;cAEmB,QAAQ,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,KAAK,eAAe,CAAC;;;IAGhF;;;;;;OAMG;;;;;IAEH,oDAAoD;;cACzB,QAAQ,CAAC,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC;;;IACtE,0EAA0E;;;;;IAE1E,4DAA4D;;;;;IAE5D,gEAAgE;;;;;IAEhE,0BAA0B;;;;;;;;;;;;;;;;IAxF1B,sBAAsB;;cACC,QAAQ,CAAC,OAAO,EAAE,CAAC;;;IAC1C,gIAAgI;;cACtG,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;;;IAC7D,yFAAyF;;;;;IAEzF;;;;;OAKG;;cACoB,QAAQ,CAAC,cAAc,CAAC;;;IAC/C,+EAA+E;;;;;IAE/E;;;;;;;OAOG;;;;;IAEH;;;;;OAKG;;;;;IAEH;;;;;;OAMG;;;;;IAEH,0DAA0D;;;;;IAE1D,mFAAmF;;;;;IAEnF,4GAA4G;;;;;IAE5G,0GAA0G;;;;;IAE1G;;;;;OAKG;;cAC8B,QAAQ,CAAC,gBAAgB,CAAC;;;IAC3D;;;;OAIG;;cAEwC,QAAQ,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC;;;IAG/F;;;;OAIG;;cAEmB,QAAQ,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,KAAK,eAAe,CAAC;;;IAGhF;;;;;;OAMG;;;;;IAEH,oDAAoD;;cACzB,QAAQ,CAAC,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC;;;IACtE,0EAA0E;;;;;IAE1E,4DAA4D;;;;;IAE5D,gEAAgE;;;;;IAEhE,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;qBAnBW,OAAO,SAAS,MAAM,KAAK,eAAe;;;;;;;;mBAwC5D,cAAc,GAAG,OAAO;eAC5B,OAAO;gBACN,OAAO;yEAsPzB,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { ExtractPublicPropTypes, SlotsType } from 'vue';
|
|
2
|
+
import type { TableBodyRowSlotProps, TableBodyThemeClasses } from '../types';
|
|
3
|
+
declare const tableBodyProps: {
|
|
4
|
+
themeClass: {
|
|
5
|
+
type: import("vue").PropType<import("@vuecs/core").ThemeClassesOverride<TableBodyThemeClasses>>;
|
|
6
|
+
default: any;
|
|
7
|
+
};
|
|
8
|
+
themeVariant: {
|
|
9
|
+
type: import("vue").PropType<import("@vuecs/core").VariantValues>;
|
|
10
|
+
default: any;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
export type TableBodyProps = ExtractPublicPropTypes<typeof tableBodyProps>;
|
|
14
|
+
declare const _default: typeof __VLS_export;
|
|
15
|
+
export default _default;
|
|
16
|
+
declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
17
|
+
themeClass: {
|
|
18
|
+
type: import("vue").PropType<import("@vuecs/core").ThemeClassesOverride<TableBodyThemeClasses>>;
|
|
19
|
+
default: any;
|
|
20
|
+
};
|
|
21
|
+
themeVariant: {
|
|
22
|
+
type: import("vue").PropType<import("@vuecs/core").VariantValues>;
|
|
23
|
+
default: any;
|
|
24
|
+
};
|
|
25
|
+
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
26
|
+
[key: string]: any;
|
|
27
|
+
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
28
|
+
themeClass: {
|
|
29
|
+
type: import("vue").PropType<import("@vuecs/core").ThemeClassesOverride<TableBodyThemeClasses>>;
|
|
30
|
+
default: any;
|
|
31
|
+
};
|
|
32
|
+
themeVariant: {
|
|
33
|
+
type: import("vue").PropType<import("@vuecs/core").VariantValues>;
|
|
34
|
+
default: any;
|
|
35
|
+
};
|
|
36
|
+
}>> & Readonly<{}>, {
|
|
37
|
+
themeClass: import("@vuecs/core").ThemeClassesOverride<TableBodyThemeClasses>;
|
|
38
|
+
themeVariant: import("@vuecs/core").VariantValues;
|
|
39
|
+
}, SlotsType<{
|
|
40
|
+
row(props: TableBodyRowSlotProps): unknown;
|
|
41
|
+
default(): unknown;
|
|
42
|
+
}>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
43
|
+
//# sourceMappingURL=TableBody.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TableBody.vue.d.ts","sourceRoot":"","sources":["../../src/components/TableBody.vue"],"names":[],"mappings":"AA+DA,OAAO,KAAK,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAG7D,OAAO,KAAK,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAI7E,QAAA,MAAM,cAAc;;;;;;;;;CAAgD,CAAC;AAErE,MAAM,MAAM,cAAc,GAAG,sBAAsB,CAAC,OAAO,cAAc,CAAC,CAAC;wBAEtD,OAAO,YAAY;AAAxC,wBAAyC;AAQzC,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;eAKC,qBAAqB,GAAG,OAAO;eAC/B,OAAO;yEAsCxB,CAAC"}
|