@bridge-ui/vue 0.2.0 → 0.3.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/ai/skills/bridge-ui-components/SKILL.md +3 -1
- package/dist/Components/Autocomplete/composables/useAutocomplete.d.ts +1 -1
- package/dist/Components/ColorField/composables/useColorField.d.ts +2 -1
- package/dist/Components/DataTable/DataTable.js +5 -0
- package/dist/Components/DataTable/DataTable.vue.d.ts +43 -0
- package/dist/Components/DataTable/DataTable.vue_vue_type_script_setup_true_lang.js +382 -0
- package/dist/Components/DataTable/DataTableCellContent.js +5 -0
- package/dist/Components/DataTable/DataTableCellContent.vue.d.ts +23 -0
- package/dist/Components/DataTable/DataTableCellContent.vue_vue_type_script_setup_true_lang.js +38 -0
- package/dist/Components/DataTable/DataTableColumnsMenu.js +5 -0
- package/dist/Components/DataTable/DataTableColumnsMenu.vue.d.ts +11 -0
- package/dist/Components/DataTable/DataTableColumnsMenu.vue_vue_type_script_setup_true_lang.js +47 -0
- package/dist/Components/DataTable/DataTableFilterMenu.js +5 -0
- package/dist/Components/DataTable/DataTableFilterMenu.vue.d.ts +17 -0
- package/dist/Components/DataTable/DataTableFilterMenu.vue_vue_type_script_setup_true_lang.js +132 -0
- package/dist/Components/DataTable/DataTableFilterOptions.js +5 -0
- package/dist/Components/DataTable/DataTableFilterOptions.vue.d.ts +14 -0
- package/dist/Components/DataTable/DataTableFilterOptions.vue_vue_type_script_setup_true_lang.js +73 -0
- package/dist/Components/DataTable/DataTableSearch.js +5 -0
- package/dist/Components/DataTable/DataTableSearch.vue.d.ts +12 -0
- package/dist/Components/DataTable/DataTableSearch.vue_vue_type_script_setup_true_lang.js +39 -0
- package/dist/Components/DataTable/DataTableSelection.js +5 -0
- package/dist/Components/DataTable/DataTableSelection.vue.d.ts +20 -0
- package/dist/Components/DataTable/DataTableSelection.vue_vue_type_script_setup_true_lang.js +55 -0
- package/dist/Components/DataTable/DataTableSortButton.js +5 -0
- package/dist/Components/DataTable/DataTableSortButton.vue.d.ts +17 -0
- package/dist/Components/DataTable/DataTableSortButton.vue_vue_type_script_setup_true_lang.js +43 -0
- package/dist/Components/DataTable/DataTableToolbarButton.js +5 -0
- package/dist/Components/DataTable/DataTableToolbarButton.vue.d.ts +13 -0
- package/dist/Components/DataTable/DataTableToolbarButton.vue_vue_type_script_setup_true_lang.js +31 -0
- package/dist/Components/DataTable/composables/useDataTable.d.ts +557 -0
- package/dist/Components/DataTable/composables/useDataTable.js +479 -0
- package/dist/Components/DataTable/dataTable.types.d.ts +480 -0
- package/dist/Components/DataTable/index.d.ts +3 -0
- package/dist/Components/DataTable/index.js +3 -0
- package/dist/Components/DateField/composables/useDateField.d.ts +2 -1
- package/dist/Components/DateRangeField/composables/useDateRangeField.d.ts +2 -1
- package/dist/Components/DateTimeField/composables/useDateTimeField.d.ts +2 -1
- package/dist/Components/DateTimeRangeField/composables/useDateTimeRangeField.d.ts +2 -1
- package/dist/Components/FormField/composables/useFormField.d.ts +1 -1
- package/dist/Components/Menu/Menu.vue_vue_type_script_setup_true_lang.js +1 -0
- package/dist/Components/Menu/composables/useMenu.d.ts +1 -1
- package/dist/Components/Menu/composables/useMenu.js +7 -3
- package/dist/Components/Menu/menu.types.d.ts +6 -0
- package/dist/Components/NumberField/composables/useNumberField.d.ts +1 -1
- package/dist/Components/PasswordField/composables/usePasswordField.d.ts +1 -1
- package/dist/Components/Radio/Radio.vue_vue_type_script_setup_true_lang.js +9 -9
- package/dist/Components/Radio/composables/useRadio.js +57 -54
- package/dist/Components/Select/composables/useSelect.d.ts +1 -1
- package/dist/Components/Slider/composables/useSlider.d.ts +2 -2
- package/dist/Components/Snackbar/composables/useSnackbar.d.ts +1 -1
- package/dist/Components/Table/Table.js +5 -0
- package/dist/Components/Table/Table.vue.d.ts +16 -0
- package/dist/Components/Table/Table.vue_vue_type_script_setup_true_lang.js +44 -0
- package/dist/Components/Table/TableBody.js +5 -0
- package/dist/Components/Table/TableBody.vue.d.ts +11 -0
- package/dist/Components/Table/TableBody.vue_vue_type_script_setup_true_lang.js +17 -0
- package/dist/Components/Table/TableCaption.js +5 -0
- package/dist/Components/Table/TableCaption.vue.d.ts +11 -0
- package/dist/Components/Table/TableCaption.vue_vue_type_script_setup_true_lang.js +17 -0
- package/dist/Components/Table/TableCell.js +5 -0
- package/dist/Components/Table/TableCell.vue.d.ts +11 -0
- package/dist/Components/Table/TableCell.vue_vue_type_script_setup_true_lang.js +19 -0
- package/dist/Components/Table/TableFooter.js +5 -0
- package/dist/Components/Table/TableFooter.vue.d.ts +11 -0
- package/dist/Components/Table/TableFooter.vue_vue_type_script_setup_true_lang.js +17 -0
- package/dist/Components/Table/TableHead.js +5 -0
- package/dist/Components/Table/TableHead.vue.d.ts +11 -0
- package/dist/Components/Table/TableHead.vue_vue_type_script_setup_true_lang.js +19 -0
- package/dist/Components/Table/TableHeader.js +5 -0
- package/dist/Components/Table/TableHeader.vue.d.ts +11 -0
- package/dist/Components/Table/TableHeader.vue_vue_type_script_setup_true_lang.js +17 -0
- package/dist/Components/Table/TableRow.js +5 -0
- package/dist/Components/Table/TableRow.vue.d.ts +11 -0
- package/dist/Components/Table/TableRow.vue_vue_type_script_setup_true_lang.js +17 -0
- package/dist/Components/Table/composables/useTable.d.ts +16 -0
- package/dist/Components/Table/composables/useTable.js +88 -0
- package/dist/Components/Table/composables/useTableCell.d.ts +12 -0
- package/dist/Components/Table/composables/useTableCell.js +40 -0
- package/dist/Components/Table/composables/useTablePart.d.ts +12 -0
- package/dist/Components/Table/composables/useTablePart.js +32 -0
- package/dist/Components/Table/composables/useTableRow.d.ts +6 -0
- package/dist/Components/Table/composables/useTableRow.js +29 -0
- package/dist/Components/Table/index.d.ts +14 -0
- package/dist/Components/Table/index.js +14 -0
- package/dist/Components/Table/table.types.d.ts +416 -0
- package/dist/Components/Table/tableInjectionKey.d.ts +114 -0
- package/dist/Components/Table/tableInjectionKey.js +4 -0
- package/dist/Components/TextField/composables/useTextField.d.ts +1 -1
- package/dist/Components/Textarea/composables/useTextarea.d.ts +1 -1
- package/dist/Components/TimeField/composables/useTimeField.d.ts +2 -1
- package/dist/Components/TimeRangeField/composables/useTimeRangeField.d.ts +2 -1
- package/docs/README.md +2 -0
- package/docs/components/CalendarDate.md +1 -1
- package/docs/components/DataTable.md +345 -0
- package/docs/components/DateField.md +2 -2
- package/docs/components/DatePicker.md +3 -3
- package/docs/components/DateRangePicker.md +1 -1
- package/docs/components/Pagination.md +2 -2
- package/docs/components/Table.md +122 -0
- package/docs/examples/i18n-dictionary.ts +4 -0
- package/docs/examples/icon-fontawesome.ts +8 -0
- package/docs/examples/icon-heroicons.ts +8 -0
- package/docs/examples/icon-lucide.ts +8 -0
- package/docs/examples/icon-phosphor.ts +8 -0
- package/docs/examples/icon-tabler.ts +8 -0
- package/package.json +9 -2
|
@@ -0,0 +1,479 @@
|
|
|
1
|
+
import { mergePartBind as e, useBridgeUIComponent as t, useBridgeUIMergedRegistryClasses as n } from "../../../Utils/index.js";
|
|
2
|
+
import { computed as r, getCurrentInstance as i, onBeforeUnmount as a, ref as ee, useAttrs as te, useSlots as ne } from "vue";
|
|
3
|
+
import { compact as re, fromPairs as ie, get as o, head as s, isArray as ae, isEmpty as oe, isFunction as c, isNil as se, isString as ce, keyBy as le, map as l, omit as ue } from "es-toolkit/compat";
|
|
4
|
+
import { DATATABLE_EXPAND_COLUMN_ID as u, DATATABLE_SELECTION_COLUMN_ID as d, getDataTableAriaSort as de, getDataTableColumnAccessor as f, getDataTableColumnCssWidth as fe, getDataTableColumnFilterValues as pe, getDataTableColumnSearch as me, getDataTableDefaultCellContent as he, getDataTablePaginationAlignClass as ge, getDataTablePaginationVariant as _e, getDataTablePerPageSelectOptions as ve, getDataTableResolvedPageCount as ye, getDataTableResolvedPerPage as be, getDataTableSelectAllState as xe, getDataTableSortIcon as Se, getDataTableStickyInsets as p, getDataTableStickyPing as Ce, isDataTableClientPaged as we, isDataTableColumnFilterable as Te, isDataTableColumnFiltered as Ee, isDataTableColumnSearchable as m, isDataTableColumnSearched as De, isDataTableExpandEnabled as Oe, isDataTablePerPageEnabled as ke, isDataTableSearchEnabled as Ae, isDataTableSelectionEnabled as je, isDataTableSelectionMultiple as Me, isDataTableServerPaged as Ne, isDataTableStickyHeader as Pe, isDataTableStickyHeaderBoxed as Fe, isDataTableVisibilityEnabled as Ie, matchDataTableSearch as Le, resolveDataTableRowId as Re, rowMatchesDataTableColumnSearch as ze, rowSelectionToIds as Be, selectionToRowSelection as Ve, setDataTableColumnFilter as He, setDataTableColumnSearch as Ue, setDataTableRowSelection as We, sliceDataTablePage as Ge, toggleDataTableColumnVisibility as Ke, toggleDataTablePageSelection as qe, toggleDataTableRowExpansion as Je, toggleDataTableSorting as Ye } from "@bridge-ui/core/Domain";
|
|
5
|
+
import { tableVariantProps as Xe } from "@bridge-ui/core/Tokens";
|
|
6
|
+
import { cn as h, mergeBridgeUILayeredClasses as Ze, splitComponentProps as Qe } from "@bridge-ui/core/Utils";
|
|
7
|
+
import { getCoreRowModel as $e, getFilteredRowModel as g, getSortedRowModel as _, useVueTable as et } from "@tanstack/vue-table";
|
|
8
|
+
//#region src/Components/DataTable/composables/useDataTable.ts
|
|
9
|
+
var tt = /* @__PURE__ */ "full.page.rows.size.search.classes.columns.filters.loading.perPage.rounded.sorting.striped.variant.expanded.getRowId.hoverable.pageCount.selection.totalCount.customProps.columnSearch.stickyHeader.hiddenColumns.selectionMode.loadingVariant.perPageOptions.paginationAlign".split(".");
|
|
10
|
+
function v(e) {
|
|
11
|
+
let t = e.target;
|
|
12
|
+
return t instanceof Element && !!t.closest("button, input, a");
|
|
13
|
+
}
|
|
14
|
+
var y = {
|
|
15
|
+
enableHiding: !1,
|
|
16
|
+
enableSorting: !1,
|
|
17
|
+
cell: () => null,
|
|
18
|
+
header: () => null
|
|
19
|
+
}, nt = [], rt = [], it = [], at = $e(), ot = _(), st = g();
|
|
20
|
+
function b($e, g, _) {
|
|
21
|
+
let b = te(), x = ne(), ct = i(), S = r(() => Qe({
|
|
22
|
+
bridgeKeys: tt,
|
|
23
|
+
props: {
|
|
24
|
+
...b,
|
|
25
|
+
...$e,
|
|
26
|
+
page: _.page.value,
|
|
27
|
+
perPage: _.perPage.value,
|
|
28
|
+
filters: _.filters.value,
|
|
29
|
+
sorting: _.sorting.value,
|
|
30
|
+
expanded: _.expanded.value,
|
|
31
|
+
selection: _.selection.value,
|
|
32
|
+
columnSearch: _.columnSearch.value,
|
|
33
|
+
hiddenColumns: _.hiddenColumns.value
|
|
34
|
+
}
|
|
35
|
+
})), { merged: C, components: lt, entry: ut } = t({
|
|
36
|
+
libDefaults: g,
|
|
37
|
+
componentName: "DataTable",
|
|
38
|
+
props: () => S.value.componentProps
|
|
39
|
+
}), w = r(() => C.value.customProps), dt = r(() => ue(S.value.inheritedAttrs, ["children"])), T = n({
|
|
40
|
+
entry: ut,
|
|
41
|
+
props: () => S.value.componentProps
|
|
42
|
+
}), ft = r(() => Ze(Xe, o(lt.value, [
|
|
43
|
+
"Table",
|
|
44
|
+
"tokens",
|
|
45
|
+
"variant"
|
|
46
|
+
]))), E = r(() => o(ft.value, C.value.variant)), D = r(() => C.value.columns ?? rt), O = r(() => le(D.value, "id")), pt = r(() => C.value.rows ?? nt), k = r(() => je(_.selection.value, b["onUpdate:selection"] !== void 0)), mt = r(() => Oe(_.expanded.value, b["onUpdate:expanded"] !== void 0, x.expanded !== void 0)), A = r(() => Ie(_.hiddenColumns.value, b["onUpdate:hiddenColumns"] !== void 0)), j = r(() => Me(C.value.selectionMode)), M = r(() => Ne(_.page.value, C.value.pageCount, C.value.totalCount)), N = r(() => we(_.page.value, _.perPage.value, C.value.pageCount, C.value.totalCount)), P = r(() => be(_.perPage.value)), F = r(() => Pe(C.value.stickyHeader)), I = r(() => Fe(C.value.stickyHeader)), L = r(() => _.sorting.value ? [{
|
|
47
|
+
id: _.sorting.value.id,
|
|
48
|
+
desc: _.sorting.value.desc
|
|
49
|
+
}] : []), ht = r(() => l(_.filters.value ?? {}, (e, t) => ({
|
|
50
|
+
id: t,
|
|
51
|
+
value: e
|
|
52
|
+
}))), R = r(() => Ve(_.selection.value)), z = r(() => _.hiddenColumns.value ?? it), gt = r(() => ie(z.value.map((e) => [e, !1]))), _t = r(() => {
|
|
53
|
+
let e = D.value.map((e) => ({
|
|
54
|
+
id: e.id,
|
|
55
|
+
enableSorting: e.sortable === !0,
|
|
56
|
+
enableHiding: e.hideable !== !1,
|
|
57
|
+
enableColumnFilter: Te(e),
|
|
58
|
+
header: () => e.header,
|
|
59
|
+
cell: (t) => e.cell?.(t.row.original) ?? null,
|
|
60
|
+
accessorFn: (t) => f(t, e),
|
|
61
|
+
filterFn: (e, t, n) => {
|
|
62
|
+
let r = ae(n) ? n : [];
|
|
63
|
+
return oe(r) ? !0 : r.includes(String(e.getValue(t) ?? ""));
|
|
64
|
+
}
|
|
65
|
+
}));
|
|
66
|
+
return re([
|
|
67
|
+
k.value ? {
|
|
68
|
+
...y,
|
|
69
|
+
id: d
|
|
70
|
+
} : void 0,
|
|
71
|
+
mt.value ? {
|
|
72
|
+
...y,
|
|
73
|
+
id: u
|
|
74
|
+
} : void 0,
|
|
75
|
+
...e
|
|
76
|
+
]);
|
|
77
|
+
}), B = et({
|
|
78
|
+
data: pt,
|
|
79
|
+
enableSortingRemoval: !0,
|
|
80
|
+
getCoreRowModel: at,
|
|
81
|
+
get columns() {
|
|
82
|
+
return _t.value;
|
|
83
|
+
},
|
|
84
|
+
get manualSorting() {
|
|
85
|
+
return M.value;
|
|
86
|
+
},
|
|
87
|
+
get manualFiltering() {
|
|
88
|
+
return M.value;
|
|
89
|
+
},
|
|
90
|
+
get enableHiding() {
|
|
91
|
+
return A.value;
|
|
92
|
+
},
|
|
93
|
+
get enableRowSelection() {
|
|
94
|
+
return k.value;
|
|
95
|
+
},
|
|
96
|
+
get enableMultiRowSelection() {
|
|
97
|
+
return j.value;
|
|
98
|
+
},
|
|
99
|
+
get getSortedRowModel() {
|
|
100
|
+
return M.value ? void 0 : ot;
|
|
101
|
+
},
|
|
102
|
+
getRowId: (e, t) => Re(e, t, C.value.getRowId),
|
|
103
|
+
get getFilteredRowModel() {
|
|
104
|
+
return M.value ? void 0 : st;
|
|
105
|
+
},
|
|
106
|
+
onRowSelectionChange: (e) => {
|
|
107
|
+
let t = c(e) ? e(R.value) : e;
|
|
108
|
+
_.selection.value = Be(t);
|
|
109
|
+
},
|
|
110
|
+
onSortingChange: (e) => {
|
|
111
|
+
let t = c(e) ? e(L.value) : e, n = s(t);
|
|
112
|
+
_.sorting.value = n ? {
|
|
113
|
+
id: n.id,
|
|
114
|
+
desc: n.desc
|
|
115
|
+
} : null;
|
|
116
|
+
},
|
|
117
|
+
state: {
|
|
118
|
+
get sorting() {
|
|
119
|
+
return L.value;
|
|
120
|
+
},
|
|
121
|
+
get rowSelection() {
|
|
122
|
+
return R.value;
|
|
123
|
+
},
|
|
124
|
+
get columnFilters() {
|
|
125
|
+
return ht.value;
|
|
126
|
+
},
|
|
127
|
+
get columnVisibility() {
|
|
128
|
+
return gt.value;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}), V = r(() => {
|
|
132
|
+
let e = B.getRowModel().rows;
|
|
133
|
+
if (M.value) return e;
|
|
134
|
+
let t = _.search.value ?? "", n = z.value;
|
|
135
|
+
return e.filter((e) => ze(e.original, D.value, _.columnSearch.value, n) ? t.trim().length === 0 || D.value.some((r) => !n.includes(r.id) && Le(f(e.original, r), t)) : !1);
|
|
136
|
+
}), H = r(() => N.value ? Ge(V.value, _.page.value ?? 1, P.value) : V.value), U = r(() => l(H.value, "id")), vt = r(() => xe(U.value, _.selection.value ?? [])), W = r(() => {
|
|
137
|
+
let e = (s(B.getHeaderGroups())?.headers ?? []).map((e) => {
|
|
138
|
+
let t = o(O.value, e.column.id);
|
|
139
|
+
return {
|
|
140
|
+
column: t,
|
|
141
|
+
id: e.column.id,
|
|
142
|
+
width: t?.width,
|
|
143
|
+
sticky: t?.sticky,
|
|
144
|
+
isExpand: e.column.id === u,
|
|
145
|
+
isSelection: e.column.id === d
|
|
146
|
+
};
|
|
147
|
+
}), t = p(e, F.value ? 20 : 10);
|
|
148
|
+
return e.map((e) => {
|
|
149
|
+
let n = o(t, e.id), r = e.column?.sortable ? de(_.sorting.value ?? null, e.id) : "none";
|
|
150
|
+
return {
|
|
151
|
+
ariaSort: r,
|
|
152
|
+
id: e.id,
|
|
153
|
+
width: e.width,
|
|
154
|
+
sticky: n?.sticky,
|
|
155
|
+
isExpand: e.isExpand,
|
|
156
|
+
align: e.column?.align,
|
|
157
|
+
stickyStyle: n?.style,
|
|
158
|
+
header: e.column?.header,
|
|
159
|
+
isSelection: e.isSelection,
|
|
160
|
+
stickyEdge: n?.edge === !0,
|
|
161
|
+
ellipsis: e.column?.ellipsis === !0,
|
|
162
|
+
sortable: e.column?.sortable === !0,
|
|
163
|
+
sortIcon: Se(r),
|
|
164
|
+
hideable: e.column?.hideable !== !1,
|
|
165
|
+
filterOptions: e.column?.filters ?? [],
|
|
166
|
+
filterable: Te(e.column),
|
|
167
|
+
searchable: m(e.column),
|
|
168
|
+
filterMultiple: e.column?.filterMultiple !== !1,
|
|
169
|
+
searchQuery: me(_.columnSearch.value, e.id),
|
|
170
|
+
filterValues: pe(_.filters.value, e.id),
|
|
171
|
+
filterActive: Ee(_.filters.value, e.id) || De(_.columnSearch.value, e.id)
|
|
172
|
+
};
|
|
173
|
+
});
|
|
174
|
+
}), G = r(() => {
|
|
175
|
+
let e = p(W.value.map((e) => ({
|
|
176
|
+
id: e.id,
|
|
177
|
+
width: e.width,
|
|
178
|
+
sticky: e.sticky,
|
|
179
|
+
isExpand: e.isExpand,
|
|
180
|
+
isSelection: e.isSelection
|
|
181
|
+
})), 1);
|
|
182
|
+
return H.value.map((t) => ({
|
|
183
|
+
id: t.id,
|
|
184
|
+
original: t.original,
|
|
185
|
+
expanded: (_.expanded.value ?? []).includes(t.id),
|
|
186
|
+
selected: (_.selection.value ?? []).includes(t.id),
|
|
187
|
+
cells: t.getVisibleCells().map((n) => {
|
|
188
|
+
let r = o(O.value, n.column.id), i = o(e, n.column.id), a = r ? f(t.original, r) : void 0;
|
|
189
|
+
return {
|
|
190
|
+
tooltip: r?.ellipsis === !0 && !se(a) && a !== "" ? String(a) : void 0,
|
|
191
|
+
value: a,
|
|
192
|
+
id: n.column.id,
|
|
193
|
+
width: r?.width,
|
|
194
|
+
align: r?.align,
|
|
195
|
+
sticky: i?.sticky,
|
|
196
|
+
stickyStyle: i?.style,
|
|
197
|
+
stickyEdge: i?.edge === !0,
|
|
198
|
+
ellipsis: r?.ellipsis === !0,
|
|
199
|
+
isExpand: n.column.id === u,
|
|
200
|
+
isSelection: n.column.id === d,
|
|
201
|
+
content: r?.cell ? r.cell(t.original) : he(a)
|
|
202
|
+
};
|
|
203
|
+
})
|
|
204
|
+
}));
|
|
205
|
+
}), yt = r(() => W.value.length), bt = r(() => !!x.pagination || !!x.perPage || M.value || N.value), K = r(() => ke(_.perPage.value, ct?.vnode.props?.["onUpdate:perPage"] !== void 0, !!x.perPage)), q = r(() => ye({
|
|
206
|
+
perPage: _.perPage.value,
|
|
207
|
+
clientPaged: N.value,
|
|
208
|
+
pageCount: C.value.pageCount,
|
|
209
|
+
totalCount: C.value.totalCount,
|
|
210
|
+
filteredCount: V.value.length
|
|
211
|
+
})), xt = r(() => G.value.length === 0), J = r(() => _e(C.value.variant)), St = r(() => e(w.value?.root, dt.value, { class: h({ [I.value ? "" : o(T.value, "root") ?? ""]: !0 }) })), Ct = r(() => W.value.some((e) => !!e.stickyStyle)), Y = ee({
|
|
212
|
+
end: !1,
|
|
213
|
+
start: !1
|
|
214
|
+
}), X;
|
|
215
|
+
function Z(e) {
|
|
216
|
+
let t = e ? Ce(e.scrollLeft, e.scrollWidth, e.clientWidth) : {
|
|
217
|
+
end: !1,
|
|
218
|
+
start: !1
|
|
219
|
+
};
|
|
220
|
+
(Y.value.end !== t.end || Y.value.start !== t.start) && (Y.value = t);
|
|
221
|
+
}
|
|
222
|
+
function Q(e) {
|
|
223
|
+
X?.disconnect(), X = void 0, Z(e), !(!e || typeof ResizeObserver > "u") && (X = new ResizeObserver(() => {
|
|
224
|
+
Z(e);
|
|
225
|
+
}), X.observe(e));
|
|
226
|
+
}
|
|
227
|
+
function wt(e) {
|
|
228
|
+
let t = w.value?.wrapper?.onScroll;
|
|
229
|
+
c(t) && t(e);
|
|
230
|
+
let n = e.currentTarget;
|
|
231
|
+
n instanceof HTMLElement && Z(n);
|
|
232
|
+
}
|
|
233
|
+
function Tt(e, t) {
|
|
234
|
+
let n = w.value?.wrapper?.[e];
|
|
235
|
+
c(n) && n(t);
|
|
236
|
+
}
|
|
237
|
+
function Et(e) {
|
|
238
|
+
Tt("onVnodeMounted", e);
|
|
239
|
+
let t = e.el;
|
|
240
|
+
Q(t instanceof HTMLElement ? t : null);
|
|
241
|
+
}
|
|
242
|
+
function Dt(e) {
|
|
243
|
+
Tt("onVnodeUnmounted", e), Q(null);
|
|
244
|
+
}
|
|
245
|
+
a(() => {
|
|
246
|
+
Q(null);
|
|
247
|
+
});
|
|
248
|
+
let Ot = r(() => ({
|
|
249
|
+
size: C.value.size,
|
|
250
|
+
variant: C.value.variant,
|
|
251
|
+
rounded: C.value.rounded,
|
|
252
|
+
full: C.value.full !== !1,
|
|
253
|
+
striped: C.value.striped === !0,
|
|
254
|
+
stickyHeader: F.value,
|
|
255
|
+
hoverable: C.value.hoverable === !0,
|
|
256
|
+
customProps: {
|
|
257
|
+
table: {
|
|
258
|
+
...w.value?.table,
|
|
259
|
+
"aria-busy": C.value.loading || void 0
|
|
260
|
+
},
|
|
261
|
+
root: {
|
|
262
|
+
...w.value?.wrapper,
|
|
263
|
+
onScroll: wt,
|
|
264
|
+
onVnodeMounted: Et,
|
|
265
|
+
onVnodeUnmounted: Dt
|
|
266
|
+
}
|
|
267
|
+
},
|
|
268
|
+
classes: {
|
|
269
|
+
row: o(T.value, "row"),
|
|
270
|
+
body: o(T.value, "body"),
|
|
271
|
+
cell: o(T.value, "cell"),
|
|
272
|
+
head: o(T.value, "head"),
|
|
273
|
+
header: h({
|
|
274
|
+
"relative z-40": C.value.loading && C.value.loadingVariant === "bar",
|
|
275
|
+
[o(T.value, "header") ?? ""]: !0
|
|
276
|
+
}),
|
|
277
|
+
table: h({
|
|
278
|
+
"border-separate border-spacing-0": Ct.value && !F.value,
|
|
279
|
+
[o(T.value, "table") ?? ""]: !0
|
|
280
|
+
}),
|
|
281
|
+
root: h({
|
|
282
|
+
"overflow-auto": I.value,
|
|
283
|
+
[o(T.value, "wrapper") ?? ""]: !0,
|
|
284
|
+
[I.value ? o(T.value, "root") ?? "" : ""]: !0
|
|
285
|
+
})
|
|
286
|
+
}
|
|
287
|
+
}));
|
|
288
|
+
function kt(e, t = !1) {
|
|
289
|
+
let n = fe(e.width, e.isExpand || e.isSelection), r = t && F.value;
|
|
290
|
+
return {
|
|
291
|
+
...n ? {
|
|
292
|
+
width: n,
|
|
293
|
+
minWidth: n
|
|
294
|
+
} : {},
|
|
295
|
+
...e.stickyStyle,
|
|
296
|
+
...t && e.stickyStyle && !r ? { zIndex: 20 } : {},
|
|
297
|
+
...r ? {
|
|
298
|
+
top: 0,
|
|
299
|
+
position: "sticky",
|
|
300
|
+
zIndex: e.stickyStyle ? 20 : 11
|
|
301
|
+
} : {}
|
|
302
|
+
};
|
|
303
|
+
}
|
|
304
|
+
function At(e) {
|
|
305
|
+
return e.isSelection || e.isExpand ? "center" : e.align ?? "start";
|
|
306
|
+
}
|
|
307
|
+
function jt(e) {
|
|
308
|
+
return e.isSelection || e.isExpand ? "center" : e.align ?? "start";
|
|
309
|
+
}
|
|
310
|
+
function Mt(t) {
|
|
311
|
+
let n = t.isSelection || t.isExpand;
|
|
312
|
+
return e(w.value?.head, {}, {
|
|
313
|
+
style: kt(t, !0),
|
|
314
|
+
tabindex: t.sortable ? 0 : void 0,
|
|
315
|
+
"aria-sort": t.sortable ? t.ariaSort : void 0,
|
|
316
|
+
onClick: t.sortable ? (e) => {
|
|
317
|
+
v(e) || $(t.id);
|
|
318
|
+
} : void 0,
|
|
319
|
+
onKeydown: t.sortable ? (e) => {
|
|
320
|
+
v(e) || (e.key === "Enter" || e.key === " ") && (e.preventDefault(), $(t.id));
|
|
321
|
+
} : void 0,
|
|
322
|
+
class: h({
|
|
323
|
+
"min-w-0": !0,
|
|
324
|
+
relative: t.sortable,
|
|
325
|
+
"border-e-0": n,
|
|
326
|
+
"sticky z-20": !!t.stickyStyle,
|
|
327
|
+
"after:hidden": n,
|
|
328
|
+
"cursor-pointer hover:bg-dark-500/10 dark:hover:bg-dark-500/15": t.sortable,
|
|
329
|
+
[o(E.value, "cellStickyEdgeStart") ?? ""]: t.sticky === "start" && t.stickyEdge && Y.value.start,
|
|
330
|
+
[o(E.value, "cellStickyEdgeEnd") ?? ""]: t.sticky === "end" && t.stickyEdge && Y.value.end
|
|
331
|
+
})
|
|
332
|
+
});
|
|
333
|
+
}
|
|
334
|
+
function Nt(t) {
|
|
335
|
+
let n = t.isSelection || t.isExpand;
|
|
336
|
+
return e(w.value?.cell, {}, {
|
|
337
|
+
style: kt(t),
|
|
338
|
+
class: h({
|
|
339
|
+
"min-w-0": !0,
|
|
340
|
+
"border-e-0": n,
|
|
341
|
+
"after:hidden": n,
|
|
342
|
+
[o(E.value, "cellSticky") ?? ""]: !!t.stickyStyle,
|
|
343
|
+
[o(E.value, "cellStickyEdgeStart") ?? ""]: t.sticky === "start" && t.stickyEdge && Y.value.start,
|
|
344
|
+
[o(E.value, "cellStickyEdgeEnd") ?? ""]: t.sticky === "end" && t.stickyEdge && Y.value.end
|
|
345
|
+
})
|
|
346
|
+
});
|
|
347
|
+
}
|
|
348
|
+
let Pt = r(() => e(w.value?.toolbar, {}, { class: h({
|
|
349
|
+
"flex items-center justify-between gap-3 pb-3": !0,
|
|
350
|
+
[o(T.value, "toolbar") ?? ""]: !0
|
|
351
|
+
}) })), Ft = r(() => e(w.value?.empty, {}, { class: h({
|
|
352
|
+
"flex flex-col items-center justify-center gap-2 py-12 text-sm text-dark-400 dark:text-dark-500": !0,
|
|
353
|
+
[o(T.value, "empty") ?? ""]: !0
|
|
354
|
+
}) })), It = r(() => e(w.value?.loading, {}, { class: h({
|
|
355
|
+
"absolute inset-0 z-30 bg-white/50 dark:bg-dark-900/50": !0,
|
|
356
|
+
"flex items-center justify-center": C.value.loadingVariant !== "bar",
|
|
357
|
+
[o(T.value, "loading") ?? ""]: !0
|
|
358
|
+
}) })), Lt = r(() => e({}, {}, { class: h({ "pointer-events-none absolute inset-x-0 top-0 z-40": !0 }) })), Rt = r(() => e(w.value?.footer, {}, { class: h({
|
|
359
|
+
"border-t border-dark-200 bg-dark-50 px-3 py-2.5 text-sm text-dark-600 dark:border-dark-700 dark:bg-dark-800 dark:text-dark-300": !0,
|
|
360
|
+
[o(T.value, "footer") ?? ""]: !0
|
|
361
|
+
}) })), zt = r(() => e({}, {}, { class: h({
|
|
362
|
+
"flex w-full items-center gap-4 py-3": !0,
|
|
363
|
+
"justify-between": K.value,
|
|
364
|
+
[ge(C.value.paginationAlign)]: !K.value,
|
|
365
|
+
[o(T.value, "pagination") ?? ""]: !0
|
|
366
|
+
}) }));
|
|
367
|
+
function $(e) {
|
|
368
|
+
_.sorting.value = Ye(_.sorting.value ?? null, e);
|
|
369
|
+
}
|
|
370
|
+
function Bt(e, t) {
|
|
371
|
+
_.selection.value = We(_.selection.value ?? [], e, t, C.value.selectionMode);
|
|
372
|
+
}
|
|
373
|
+
function Vt(e) {
|
|
374
|
+
_.perPage.value = e, _.page.value !== 1 && (_.page.value = 1);
|
|
375
|
+
}
|
|
376
|
+
function Ht(e) {
|
|
377
|
+
_.search.value = e, _.page.value !== 1 && (_.page.value = 1);
|
|
378
|
+
}
|
|
379
|
+
let Ut = r(() => ({
|
|
380
|
+
page: _.page.value ?? 1,
|
|
381
|
+
variant: J.value,
|
|
382
|
+
count: q.value ?? 1,
|
|
383
|
+
onPageChange: (e) => {
|
|
384
|
+
_.page.value = e;
|
|
385
|
+
}
|
|
386
|
+
})), Wt = r(() => ({
|
|
387
|
+
perPage: P.value,
|
|
388
|
+
onPerPageChange: Vt,
|
|
389
|
+
options: ve(P.value, C.value.perPageOptions)
|
|
390
|
+
}));
|
|
391
|
+
function Gt(e) {
|
|
392
|
+
_.selection.value = qe(_.selection.value ?? [], U.value, e);
|
|
393
|
+
}
|
|
394
|
+
function Kt(e, t, n) {
|
|
395
|
+
let r = o(O.value, e);
|
|
396
|
+
r?.filters && r.filters.length > 0 && (_.filters.value = He(_.filters.value, e, t)), m(r) && (_.columnSearch.value = Ue(_.columnSearch.value, e, n)), _.page.value !== 1 && (_.page.value = 1);
|
|
397
|
+
}
|
|
398
|
+
function qt(e, t) {
|
|
399
|
+
_.expanded.value = Je(_.expanded.value ?? [], e, t);
|
|
400
|
+
}
|
|
401
|
+
function Jt(e, t) {
|
|
402
|
+
_.hiddenColumns.value = Ke(_.hiddenColumns.value ?? [], e, t, l(D.value, "id"));
|
|
403
|
+
}
|
|
404
|
+
let Yt = r(() => {
|
|
405
|
+
if (!D.value.some((e) => e.summary !== void 0)) return null;
|
|
406
|
+
let e = l(V.value, "original");
|
|
407
|
+
return W.value.map((t) => {
|
|
408
|
+
let n = o(O.value, t.id);
|
|
409
|
+
return {
|
|
410
|
+
id: t.id,
|
|
411
|
+
ellipsis: !1,
|
|
412
|
+
value: void 0,
|
|
413
|
+
tooltip: void 0,
|
|
414
|
+
width: t.width,
|
|
415
|
+
align: t.align,
|
|
416
|
+
sticky: t.sticky,
|
|
417
|
+
isExpand: t.isExpand,
|
|
418
|
+
stickyEdge: t.stickyEdge,
|
|
419
|
+
stickyStyle: t.stickyStyle,
|
|
420
|
+
isSelection: t.isSelection,
|
|
421
|
+
content: t.isSelection || t.isExpand ? null : n?.summary?.(e) ?? null
|
|
422
|
+
};
|
|
423
|
+
});
|
|
424
|
+
}), Xt = r(() => D.value.map((e) => ({
|
|
425
|
+
id: e.id,
|
|
426
|
+
hideable: e.hideable !== !1,
|
|
427
|
+
hidden: z.value.includes(e.id),
|
|
428
|
+
label: ce(e.header) ? e.header : e.id
|
|
429
|
+
}))), Zt = r(() => Ae(_.search.value, ct?.vnode.props?.["onUpdate:search"] !== void 0, x.search !== void 0));
|
|
430
|
+
return {
|
|
431
|
+
merged: C,
|
|
432
|
+
pageIds: U,
|
|
433
|
+
rowViews: G,
|
|
434
|
+
rootBind: St,
|
|
435
|
+
emptyBind: Ft,
|
|
436
|
+
showEmpty: xt,
|
|
437
|
+
tableProps: Ot,
|
|
438
|
+
footerBind: Rt,
|
|
439
|
+
showSearch: Zt,
|
|
440
|
+
getHeadBind: Mt,
|
|
441
|
+
headerViews: W,
|
|
442
|
+
loadingBind: It,
|
|
443
|
+
onToggleRow: Bt,
|
|
444
|
+
toolbarBind: Pt,
|
|
445
|
+
getCellBind: Nt,
|
|
446
|
+
columnCount: yt,
|
|
447
|
+
clientPaged: N,
|
|
448
|
+
serverPaged: M,
|
|
449
|
+
showPerPage: K,
|
|
450
|
+
showToolbar: r(() => !!x.toolbar || !!x.toolbarActions || A.value || Zt.value),
|
|
451
|
+
getHeadAlign: At,
|
|
452
|
+
getCellAlign: jt,
|
|
453
|
+
onTogglePage: Gt,
|
|
454
|
+
onToggleSort: $,
|
|
455
|
+
summaryCells: Yt,
|
|
456
|
+
expandEnabled: mt,
|
|
457
|
+
onChangeSearch: Ht,
|
|
458
|
+
loadingBarBind: Lt,
|
|
459
|
+
paginationBind: zt,
|
|
460
|
+
selectAllState: vt,
|
|
461
|
+
showPagination: bt,
|
|
462
|
+
onToggleExpand: qt,
|
|
463
|
+
visibilityItems: Xt,
|
|
464
|
+
onChangePerPage: Vt,
|
|
465
|
+
resolvedPerPage: P,
|
|
466
|
+
selectionEnabled: k,
|
|
467
|
+
perPageSlotProps: Wt,
|
|
468
|
+
paginationVariant: J,
|
|
469
|
+
resolvedPageCount: q,
|
|
470
|
+
selectionMultiple: j,
|
|
471
|
+
visibilityEnabled: A,
|
|
472
|
+
paginationSlotProps: Ut,
|
|
473
|
+
onCommitColumnFilter: Kt,
|
|
474
|
+
onToggleColumnVisibility: Jt,
|
|
475
|
+
loadingBar: r(() => C.value.loadingVariant === "bar")
|
|
476
|
+
};
|
|
477
|
+
}
|
|
478
|
+
//#endregion
|
|
479
|
+
export { b as useDataTable };
|