@pathscale/ui 1.1.13 → 1.1.14
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/dist/components/glass-panel/GlassPanel.js +5 -3
- package/dist/components/select/Select.css +244 -0
- package/dist/components/select/Select.d.ts +44 -13
- package/dist/components/select/Select.js +618 -41
- package/dist/components/select/index.d.ts +2 -1
- package/dist/components/table/EnhancedTable.js +79 -160
- package/dist/components/table/Table.css +50 -9
- package/dist/components/table/Table.d.ts +19 -1
- package/dist/components/table/Table.js +100 -18
- package/dist/components/table/hooks/helpers.d.ts +7 -0
- package/dist/components/table/hooks/helpers.js +26 -0
- package/dist/components/table/hooks/index.d.ts +9 -0
- package/dist/components/table/hooks/index.js +18 -0
- package/dist/components/table/hooks/useAnchoredOverlayPosition.d.ts +16 -0
- package/dist/components/table/hooks/useAnchoredOverlayPosition.js +61 -0
- package/dist/components/table/hooks/useTableExpansion.d.ts +13 -0
- package/dist/components/table/hooks/useTableExpansion.js +17 -0
- package/dist/components/table/hooks/useTableFiltering.d.ts +30 -0
- package/dist/components/table/hooks/useTableFiltering.js +67 -0
- package/dist/components/table/hooks/useTableModel.d.ts +27 -0
- package/dist/components/table/hooks/useTableModel.js +56 -0
- package/dist/components/table/hooks/useTablePagination.d.ts +20 -0
- package/dist/components/table/hooks/useTablePagination.js +48 -0
- package/dist/components/table/hooks/useTableSelection.d.ts +14 -0
- package/dist/components/table/hooks/useTableSelection.js +17 -0
- package/dist/components/table/hooks/useTableSorting.d.ts +19 -0
- package/dist/components/table/hooks/useTableSorting.js +21 -0
- package/dist/components/table/index.d.ts +4 -2
- package/dist/components/table/index.js +13 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +10 -1
- package/package.json +2 -1
- package/dist/components/select/select.css +0 -351
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export { default
|
|
1
|
+
export { default } from "./Select";
|
|
2
|
+
export type { SelectProps, SelectRootProps, SelectValueType, SelectVariant, SelectSelectionMode, SelectTriggerProps, SelectValueProps, SelectIndicatorProps, SelectPopoverProps, SelectListboxProps, SelectOptionProps, } from "./Select";
|
|
@@ -10,6 +10,7 @@ import * as __WEBPACK_EXTERNAL_MODULE__input_Input_js_ae745814__ from "../input/
|
|
|
10
10
|
import * as __WEBPACK_EXTERNAL_MODULE__dropdown_Dropdown_js_1eafe997__ from "../dropdown/Dropdown.js";
|
|
11
11
|
import * as __WEBPACK_EXTERNAL_MODULE__loading_Loading_js_1fa096bd__ from "../loading/Loading.js";
|
|
12
12
|
import * as __WEBPACK_EXTERNAL_MODULE__menu_Menu_js_2e8cbfbf__ from "../menu/Menu.js";
|
|
13
|
+
import * as __WEBPACK_EXTERNAL_MODULE__hooks_index_js_ea54ea0e__ from "./hooks/index.js";
|
|
13
14
|
var _tmpl$ = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)('<span class="cursor-pointer ml-auto shrink-0">'), _tmpl$2 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)('<div><div class=mb-2></div><div class="flex gap-2 justify-end">'), _tmpl$3 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)('<div><div class="flex items-center gap-2"><span class=opacity-70>Rows per page</span></div><div class="flex items-center gap-3 ml-4"><span class=opacity-70>Page <!> of </span><div class=join>'), _tmpl$4 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)('<div class="flex items-center gap-2"><div class=truncate>'), _tmpl$5 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)('<div class="flex gap-2">');
|
|
14
15
|
function EnhancedTable_EnhancedTable(props) {
|
|
15
16
|
const [local, tableProps] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.splitProps)(props, [
|
|
@@ -48,67 +49,64 @@ function EnhancedTable_EnhancedTable(props) {
|
|
|
48
49
|
"nextPageIcon",
|
|
49
50
|
"lastPageIcon"
|
|
50
51
|
]);
|
|
51
|
-
const [openFilterFor, setOpenFilterFor] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createSignal)(null);
|
|
52
52
|
const [pageSizeMenuOpen, setPageSizeMenuOpen] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createSignal)(false);
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
53
|
+
const sortingModel = (0, __WEBPACK_EXTERNAL_MODULE__hooks_index_js_ea54ea0e__.useTableSorting)({
|
|
54
|
+
sorting: local.sorting,
|
|
55
|
+
setSorting: local.setSorting,
|
|
56
|
+
initialSorting: []
|
|
57
|
+
});
|
|
58
|
+
const paginationModel = (0, __WEBPACK_EXTERNAL_MODULE__hooks_index_js_ea54ea0e__.useTablePagination)({
|
|
59
|
+
pagination: local.pagination,
|
|
60
|
+
setPagination: local.setPagination,
|
|
61
|
+
initialPagination: {
|
|
62
|
+
pageIndex: 0,
|
|
63
|
+
pageSize: 10
|
|
64
|
+
},
|
|
65
|
+
pageSizeOptions: [
|
|
66
|
+
10,
|
|
67
|
+
25,
|
|
68
|
+
50,
|
|
69
|
+
100
|
|
70
|
+
]
|
|
71
|
+
});
|
|
72
|
+
const selectionModel = (0, __WEBPACK_EXTERNAL_MODULE__hooks_index_js_ea54ea0e__.useTableSelection)({
|
|
73
|
+
rowSelection: local.rowSelection,
|
|
74
|
+
setRowSelection: local.setRowSelection,
|
|
75
|
+
initialRowSelection: {}
|
|
76
|
+
});
|
|
77
|
+
const filteringModel = (0, __WEBPACK_EXTERNAL_MODULE__hooks_index_js_ea54ea0e__.useTableFiltering)({
|
|
78
|
+
columnFilters: local.columnFilters,
|
|
79
|
+
setColumnFilters: local.setColumnFilters,
|
|
80
|
+
initialColumnFilters: [],
|
|
81
|
+
globalFilter: local.globalFilter,
|
|
82
|
+
setGlobalFilter: local.setGlobalFilter,
|
|
83
|
+
initialGlobalFilter: ""
|
|
84
|
+
});
|
|
85
|
+
const expansionModel = (0, __WEBPACK_EXTERNAL_MODULE__hooks_index_js_ea54ea0e__.useTableExpansion)({
|
|
86
|
+
expanded: local.expanded,
|
|
87
|
+
setExpanded: local.setExpanded,
|
|
88
|
+
initialExpanded: {}
|
|
59
89
|
});
|
|
60
|
-
const pageSizeOptions = [
|
|
61
|
-
10,
|
|
62
|
-
25,
|
|
63
|
-
50,
|
|
64
|
-
100
|
|
65
|
-
];
|
|
66
90
|
let pageSizeToggleRef;
|
|
67
91
|
let pageSizeMenuRef;
|
|
68
|
-
const table = (0,
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
return local.pagination?.() || {
|
|
84
|
-
pageIndex: 0,
|
|
85
|
-
pageSize: 10
|
|
86
|
-
};
|
|
87
|
-
},
|
|
88
|
-
get globalFilter () {
|
|
89
|
-
return local.globalFilter?.() || "";
|
|
90
|
-
},
|
|
91
|
-
get rowSelection () {
|
|
92
|
-
return local.rowSelection?.() || {};
|
|
93
|
-
},
|
|
94
|
-
get expanded () {
|
|
95
|
-
return local.expanded?.() || {};
|
|
96
|
-
}
|
|
97
|
-
},
|
|
98
|
-
onSortingChange: local.setSorting,
|
|
99
|
-
onColumnFiltersChange: local.setColumnFilters,
|
|
100
|
-
onPaginationChange: local.setPagination,
|
|
101
|
-
onGlobalFilterChange: local.setGlobalFilter,
|
|
102
|
-
onRowSelectionChange: local.setRowSelection,
|
|
103
|
-
onExpandedChange: local.setExpanded,
|
|
104
|
-
getCoreRowModel: (0, __WEBPACK_EXTERNAL_MODULE__tanstack_solid_table_1239d047__.getCoreRowModel)(),
|
|
105
|
-
getSortedRowModel: (0, __WEBPACK_EXTERNAL_MODULE__tanstack_solid_table_1239d047__.getSortedRowModel)(),
|
|
106
|
-
getFilteredRowModel: (0, __WEBPACK_EXTERNAL_MODULE__tanstack_solid_table_1239d047__.getFilteredRowModel)(),
|
|
107
|
-
getPaginationRowModel: (0, __WEBPACK_EXTERNAL_MODULE__tanstack_solid_table_1239d047__.getPaginationRowModel)(),
|
|
108
|
-
getExpandedRowModel: (0, __WEBPACK_EXTERNAL_MODULE__tanstack_solid_table_1239d047__.getExpandedRowModel)(),
|
|
92
|
+
const table = (0, __WEBPACK_EXTERNAL_MODULE__hooks_index_js_ea54ea0e__.useTableModel)({
|
|
93
|
+
data: ()=>local.data,
|
|
94
|
+
columns: ()=>local.columns,
|
|
95
|
+
sorting: sortingModel.sorting,
|
|
96
|
+
setSorting: sortingModel.setSorting,
|
|
97
|
+
columnFilters: filteringModel.columnFilters,
|
|
98
|
+
setColumnFilters: filteringModel.setColumnFilters,
|
|
99
|
+
pagination: paginationModel.pagination,
|
|
100
|
+
setPagination: paginationModel.setPagination,
|
|
101
|
+
globalFilter: filteringModel.globalFilter,
|
|
102
|
+
setGlobalFilter: filteringModel.setGlobalFilter,
|
|
103
|
+
rowSelection: selectionModel.rowSelection,
|
|
104
|
+
setRowSelection: selectionModel.setRowSelection,
|
|
105
|
+
expanded: expansionModel.expanded,
|
|
106
|
+
setExpanded: expansionModel.setExpanded,
|
|
109
107
|
enableSorting: false !== local.enableSorting,
|
|
110
108
|
enableFilters: !!local.enableFilters,
|
|
111
|
-
|
|
109
|
+
enablePagination: !!local.enablePagination,
|
|
112
110
|
enableRowSelection: !!local.enableRowSelection,
|
|
113
111
|
enableExpanding: true,
|
|
114
112
|
getRowCanExpand: ()=>!!local.expandable
|
|
@@ -127,82 +125,37 @@ function EnhancedTable_EnhancedTable(props) {
|
|
|
127
125
|
return pageCount > 1 || totalRows > pageSize;
|
|
128
126
|
});
|
|
129
127
|
const headerGroups = ()=>table.getHeaderGroups();
|
|
130
|
-
const sortDescriptor =
|
|
131
|
-
|
|
132
|
-
if (!activeSort) return;
|
|
133
|
-
return {
|
|
134
|
-
column: activeSort.id,
|
|
135
|
-
direction: activeSort.desc ? "descending" : "ascending"
|
|
136
|
-
};
|
|
137
|
-
});
|
|
138
|
-
const handleSortChange = (descriptor)=>{
|
|
139
|
-
table.setSorting([
|
|
140
|
-
{
|
|
141
|
-
id: descriptor.column,
|
|
142
|
-
desc: "descending" === descriptor.direction
|
|
143
|
-
}
|
|
144
|
-
]);
|
|
145
|
-
};
|
|
128
|
+
const sortDescriptor = sortingModel.sortDescriptor;
|
|
129
|
+
const handleSortChange = sortingModel.setSortDescriptor;
|
|
146
130
|
const totalColumns = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createMemo)(()=>table.getVisibleLeafColumns().length + (local.enableRowSelection ? 1 : 0) + (local.expandable ? 1 : 0));
|
|
147
131
|
const filterTriggerRefs = new Map();
|
|
148
|
-
const [filterPanelStyle, setFilterPanelStyle] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createSignal)({
|
|
149
|
-
position: "fixed",
|
|
150
|
-
top: "0px",
|
|
151
|
-
left: "0px",
|
|
152
|
-
"z-index": 1300
|
|
153
|
-
});
|
|
154
132
|
let filterPanelRef;
|
|
155
|
-
const
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
if (top + panelHeight > window.innerHeight - viewportPadding) {
|
|
170
|
-
const above = rect.top - panelHeight - offset;
|
|
171
|
-
top = above >= viewportPadding ? above : Math.max(viewportPadding, window.innerHeight - panelHeight - viewportPadding);
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
setFilterPanelStyle({
|
|
175
|
-
position: "fixed",
|
|
176
|
-
top: `${top}px`,
|
|
177
|
-
left: `${left}px`,
|
|
178
|
-
"z-index": 1300
|
|
179
|
-
});
|
|
180
|
-
};
|
|
181
|
-
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createEffect)(()=>{
|
|
182
|
-
if (!openFilterFor()) return;
|
|
183
|
-
requestAnimationFrame(()=>{
|
|
184
|
-
updateFilterPanelPosition();
|
|
185
|
-
requestAnimationFrame(updateFilterPanelPosition);
|
|
186
|
-
});
|
|
187
|
-
const onViewportChange = ()=>updateFilterPanelPosition();
|
|
188
|
-
window.addEventListener("resize", onViewportChange);
|
|
189
|
-
window.addEventListener("scroll", onViewportChange, true);
|
|
190
|
-
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.onCleanup)(()=>{
|
|
191
|
-
window.removeEventListener("resize", onViewportChange);
|
|
192
|
-
window.removeEventListener("scroll", onViewportChange, true);
|
|
193
|
-
});
|
|
133
|
+
const filterPanelAnchor = ()=>filteringModel.openFilterFor() ? filterTriggerRefs.get(filteringModel.openFilterFor()) : void 0;
|
|
134
|
+
const filterPanelPosition = (0, __WEBPACK_EXTERNAL_MODULE__hooks_index_js_ea54ea0e__.useAnchoredOverlayPosition)({
|
|
135
|
+
isOpen: ()=>Boolean(filteringModel.openFilterFor()),
|
|
136
|
+
getAnchor: filterPanelAnchor,
|
|
137
|
+
getOverlay: ()=>filterPanelRef,
|
|
138
|
+
width: 224,
|
|
139
|
+
zIndex: 1300
|
|
140
|
+
});
|
|
141
|
+
const pageSizeMenuPosition = (0, __WEBPACK_EXTERNAL_MODULE__hooks_index_js_ea54ea0e__.useAnchoredOverlayPosition)({
|
|
142
|
+
isOpen: pageSizeMenuOpen,
|
|
143
|
+
getAnchor: ()=>pageSizeToggleRef,
|
|
144
|
+
getOverlay: ()=>pageSizeMenuRef,
|
|
145
|
+
minWidth: ()=>pageSizeToggleRef ? Math.max(pageSizeToggleRef.getBoundingClientRect().width, 96) : 96,
|
|
146
|
+
zIndex: 1300
|
|
194
147
|
});
|
|
195
148
|
const FilterIconTrigger = (props)=>(()=>{
|
|
196
149
|
var _el$ = _tmpl$();
|
|
197
150
|
_el$.$$click = (e)=>{
|
|
198
151
|
e.stopPropagation();
|
|
199
|
-
if (!props.disabled)
|
|
152
|
+
if (!props.disabled) filteringModel.toggleFilter(props.colId);
|
|
200
153
|
};
|
|
201
154
|
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.use)((el)=>filterTriggerRefs.set(props.colId, el), _el$);
|
|
202
155
|
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$, ()=>local.filterIcon);
|
|
203
156
|
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.effect)((_$p)=>(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.classList)(_el$, {
|
|
204
157
|
"opacity-50 pointer-events-none": props.disabled,
|
|
205
|
-
"text-primary": openFilterFor() === props.colId
|
|
158
|
+
"text-primary": filteringModel.openFilterFor() === props.colId
|
|
206
159
|
}, _$p));
|
|
207
160
|
return _el$;
|
|
208
161
|
})();
|
|
@@ -211,7 +164,7 @@ function EnhancedTable_EnhancedTable(props) {
|
|
|
211
164
|
const colId = col.id;
|
|
212
165
|
return (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(__WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.Show, {
|
|
213
166
|
get when () {
|
|
214
|
-
return openFilterFor() === colId;
|
|
167
|
+
return filteringModel.openFilterFor() === colId;
|
|
215
168
|
},
|
|
216
169
|
get children () {
|
|
217
170
|
return (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(__WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.Portal, {
|
|
@@ -232,18 +185,18 @@ function EnhancedTable_EnhancedTable(props) {
|
|
|
232
185
|
variant: "outline",
|
|
233
186
|
onClick: ()=>{
|
|
234
187
|
col.setFilterValue(void 0);
|
|
235
|
-
|
|
188
|
+
filteringModel.closeFilter();
|
|
236
189
|
},
|
|
237
190
|
children: "Clear"
|
|
238
191
|
}), null);
|
|
239
192
|
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$4, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(__WEBPACK_EXTERNAL_MODULE__button_Button_js_6d750473__["default"], {
|
|
240
193
|
size: "sm",
|
|
241
194
|
variant: "primary",
|
|
242
|
-
onClick: ()=>
|
|
195
|
+
onClick: ()=>filteringModel.closeFilter(),
|
|
243
196
|
children: "Apply"
|
|
244
197
|
}), null);
|
|
245
198
|
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.effect)((_p$)=>{
|
|
246
|
-
var _v$ =
|
|
199
|
+
var _v$ = filterPanelPosition.style(), _v$2 = local.filterPanelClass ?? "z-[1300] w-56 border border-nf-border bg-nf-surface-1 shadow-lg rounded-box p-2";
|
|
247
200
|
_p$.e = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.style)(_el$2, _v$, _p$.e);
|
|
248
201
|
_v$2 !== _p$.t && (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.className)(_el$2, _p$.t = _v$2);
|
|
249
202
|
return _p$;
|
|
@@ -266,33 +219,6 @@ function EnhancedTable_EnhancedTable(props) {
|
|
|
266
219
|
document.body.append(root);
|
|
267
220
|
return root;
|
|
268
221
|
};
|
|
269
|
-
const updatePageSizeMenuPosition = ()=>{
|
|
270
|
-
const toggleEl = pageSizeToggleRef;
|
|
271
|
-
const menuEl = pageSizeMenuRef;
|
|
272
|
-
if (!toggleEl || !menuEl) return;
|
|
273
|
-
const viewportPadding = 8;
|
|
274
|
-
const gap = 4;
|
|
275
|
-
const toggleRect = toggleEl.getBoundingClientRect();
|
|
276
|
-
const menuRect = menuEl.getBoundingClientRect();
|
|
277
|
-
const menuWidth = menuRect.width || Math.max(toggleRect.width, 96);
|
|
278
|
-
const menuHeight = menuRect.height || 0;
|
|
279
|
-
const viewportWidth = window.innerWidth;
|
|
280
|
-
const viewportHeight = window.innerHeight;
|
|
281
|
-
let left = toggleRect.right - menuWidth;
|
|
282
|
-
left = Math.max(viewportPadding, Math.min(left, viewportWidth - menuWidth - viewportPadding));
|
|
283
|
-
const spaceBelow = viewportHeight - toggleRect.bottom;
|
|
284
|
-
const spaceAbove = toggleRect.top;
|
|
285
|
-
const shouldOpenUp = spaceBelow < menuHeight + gap && spaceAbove > menuHeight + gap;
|
|
286
|
-
let top = shouldOpenUp ? toggleRect.top - menuHeight - gap : toggleRect.bottom + gap;
|
|
287
|
-
top = Math.max(viewportPadding, Math.min(top, viewportHeight - menuHeight - viewportPadding));
|
|
288
|
-
setPageSizeMenuStyle({
|
|
289
|
-
position: "fixed",
|
|
290
|
-
top: `${top}px`,
|
|
291
|
-
left: `${left}px`,
|
|
292
|
-
"min-width": `${Math.max(toggleRect.width, 96)}px`,
|
|
293
|
-
"z-index": 1300
|
|
294
|
-
});
|
|
295
|
-
};
|
|
296
222
|
const closePageSizeMenu = ()=>setPageSizeMenuOpen(false);
|
|
297
223
|
const togglePageSizeMenu = ()=>setPageSizeMenuOpen((current)=>!current);
|
|
298
224
|
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createEffect)(()=>{
|
|
@@ -301,10 +227,6 @@ function EnhancedTable_EnhancedTable(props) {
|
|
|
301
227
|
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createEffect)(()=>{
|
|
302
228
|
if (!pageSizeMenuOpen()) return;
|
|
303
229
|
ensurePortalRoot();
|
|
304
|
-
requestAnimationFrame(()=>{
|
|
305
|
-
updatePageSizeMenuPosition();
|
|
306
|
-
requestAnimationFrame(updatePageSizeMenuPosition);
|
|
307
|
-
});
|
|
308
230
|
const onPointerDown = (event)=>{
|
|
309
231
|
const target = event.target;
|
|
310
232
|
if (!target) return;
|
|
@@ -315,16 +237,11 @@ function EnhancedTable_EnhancedTable(props) {
|
|
|
315
237
|
const onKeyDown = (event)=>{
|
|
316
238
|
if ("Escape" === event.key) closePageSizeMenu();
|
|
317
239
|
};
|
|
318
|
-
const onViewportChange = ()=>updatePageSizeMenuPosition();
|
|
319
240
|
document.addEventListener("pointerdown", onPointerDown);
|
|
320
241
|
document.addEventListener("keydown", onKeyDown);
|
|
321
|
-
window.addEventListener("resize", onViewportChange);
|
|
322
|
-
window.addEventListener("scroll", onViewportChange, true);
|
|
323
242
|
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.onCleanup)(()=>{
|
|
324
243
|
document.removeEventListener("pointerdown", onPointerDown);
|
|
325
244
|
document.removeEventListener("keydown", onKeyDown);
|
|
326
|
-
window.removeEventListener("resize", onViewportChange);
|
|
327
|
-
window.removeEventListener("scroll", onViewportChange, true);
|
|
328
245
|
});
|
|
329
246
|
});
|
|
330
247
|
return [
|
|
@@ -676,14 +593,16 @@ function EnhancedTable_EnhancedTable(props) {
|
|
|
676
593
|
pageSizeMenuRef = el;
|
|
677
594
|
},
|
|
678
595
|
get style () {
|
|
679
|
-
return
|
|
596
|
+
return pageSizeMenuPosition.style();
|
|
680
597
|
},
|
|
681
598
|
class: "p-2 shadow bg-base-100 rounded-box border border-base-300 w-24",
|
|
682
599
|
role: "menu",
|
|
683
600
|
"aria-label": "Rows per page",
|
|
684
601
|
get children () {
|
|
685
602
|
return (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(__WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.For, {
|
|
686
|
-
each
|
|
603
|
+
get each () {
|
|
604
|
+
return paginationModel.pageSizeOptions();
|
|
605
|
+
},
|
|
687
606
|
children: (size)=>(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(__WEBPACK_EXTERNAL_MODULE__button_Button_js_6d750473__["default"], {
|
|
688
607
|
type: "button",
|
|
689
608
|
size: "sm",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
background-color: var(--color-base-200);
|
|
19
19
|
padding-inline: 0.25rem;
|
|
20
20
|
padding-bottom: 0.25rem;
|
|
21
|
-
border-radius:
|
|
21
|
+
border-radius: calc(var(--radius-box, 1rem) * 1.25);
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
/* --------------------------------------------------------------------------
|
|
@@ -102,13 +102,13 @@
|
|
|
102
102
|
}
|
|
103
103
|
|
|
104
104
|
.table-root--secondary .table__column:first-child {
|
|
105
|
-
border-top-left-radius:
|
|
106
|
-
border-bottom-left-radius:
|
|
105
|
+
border-top-left-radius: 1rem;
|
|
106
|
+
border-bottom-left-radius: 1rem;
|
|
107
107
|
}
|
|
108
108
|
|
|
109
109
|
.table-root--secondary .table__column:last-child {
|
|
110
|
-
border-top-right-radius:
|
|
111
|
-
border-bottom-right-radius:
|
|
110
|
+
border-top-right-radius: 1rem;
|
|
111
|
+
border-bottom-right-radius: 1rem;
|
|
112
112
|
}
|
|
113
113
|
|
|
114
114
|
.table-root--secondary .table__body tr:first-child td:first-child,
|
|
@@ -210,19 +210,19 @@
|
|
|
210
210
|
Table Body (<tbody>)
|
|
211
211
|
-------------------------------------------------------------------------- */
|
|
212
212
|
.table__body tr:first-child td:first-child {
|
|
213
|
-
border-top-left-radius:
|
|
213
|
+
border-top-left-radius: 1rem;
|
|
214
214
|
}
|
|
215
215
|
|
|
216
216
|
.table__body tr:first-child td:last-child {
|
|
217
|
-
border-top-right-radius:
|
|
217
|
+
border-top-right-radius: 1rem;
|
|
218
218
|
}
|
|
219
219
|
|
|
220
220
|
.table__body tr:last-child td:first-child {
|
|
221
|
-
border-bottom-left-radius:
|
|
221
|
+
border-bottom-left-radius: 1rem;
|
|
222
222
|
}
|
|
223
223
|
|
|
224
224
|
.table__body tr:last-child td:last-child {
|
|
225
|
-
border-bottom-right-radius:
|
|
225
|
+
border-bottom-right-radius: 1rem;
|
|
226
226
|
}
|
|
227
227
|
|
|
228
228
|
/* --------------------------------------------------------------------------
|
|
@@ -287,6 +287,14 @@
|
|
|
287
287
|
box-shadow: inset 0 0 0 2px var(--color-accent);
|
|
288
288
|
}
|
|
289
289
|
|
|
290
|
+
.table__expanded-row .table__expanded-cell {
|
|
291
|
+
background-color: color-mix(in oklch, var(--color-base-200) 75%, var(--color-base-100));
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
.table__expanded-cell {
|
|
295
|
+
padding-block: 0.875rem;
|
|
296
|
+
}
|
|
297
|
+
|
|
290
298
|
/* --------------------------------------------------------------------------
|
|
291
299
|
Table Footer (div outside <table>)
|
|
292
300
|
-------------------------------------------------------------------------- */
|
|
@@ -297,6 +305,39 @@
|
|
|
297
305
|
padding-block: 0.625rem;
|
|
298
306
|
}
|
|
299
307
|
|
|
308
|
+
.table__page-size {
|
|
309
|
+
display: inline-flex;
|
|
310
|
+
align-items: center;
|
|
311
|
+
gap: 0.5rem;
|
|
312
|
+
font-size: 0.75rem;
|
|
313
|
+
font-weight: 600;
|
|
314
|
+
letter-spacing: 0.16em;
|
|
315
|
+
text-transform: uppercase;
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
.table__page-size-label {
|
|
319
|
+
opacity: 0.7;
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
.table__page-size-select {
|
|
323
|
+
min-width: 4.5rem;
|
|
324
|
+
border-radius: 0.75rem;
|
|
325
|
+
border: 1px solid color-mix(in oklch, var(--color-base-content) 10%, transparent);
|
|
326
|
+
background-color: var(--color-base-100);
|
|
327
|
+
padding-inline: 0.75rem;
|
|
328
|
+
padding-block: 0.5rem;
|
|
329
|
+
font-size: 0.875rem;
|
|
330
|
+
font-weight: 500;
|
|
331
|
+
letter-spacing: normal;
|
|
332
|
+
text-transform: none;
|
|
333
|
+
color: var(--color-base-content);
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
.table__page-size-select:focus-visible {
|
|
337
|
+
outline: none;
|
|
338
|
+
box-shadow: 0 0 0 2px var(--color-accent);
|
|
339
|
+
}
|
|
340
|
+
|
|
300
341
|
/* --------------------------------------------------------------------------
|
|
301
342
|
Resizable Container
|
|
302
343
|
-------------------------------------------------------------------------- */
|
|
@@ -45,8 +45,24 @@ export type TableRowProps = JSX.HTMLAttributes<HTMLTableRowElement> & IComponent
|
|
|
45
45
|
declare const TableRow: Component<TableRowProps>;
|
|
46
46
|
export type TableCellProps = JSX.TdHTMLAttributes<HTMLTableCellElement> & IComponentBaseProps;
|
|
47
47
|
declare const TableCell: Component<TableCellProps>;
|
|
48
|
+
export type TableExpandedRowProps = JSX.HTMLAttributes<HTMLTableRowElement> & IComponentBaseProps & {
|
|
49
|
+
colSpan: number;
|
|
50
|
+
cellClass?: string;
|
|
51
|
+
cellClassName?: string;
|
|
52
|
+
cellDataTheme?: string;
|
|
53
|
+
};
|
|
54
|
+
declare const TableExpandedRow: Component<TableExpandedRowProps>;
|
|
48
55
|
export type TableFooterProps = JSX.HTMLAttributes<HTMLDivElement> & IComponentBaseProps;
|
|
49
56
|
declare const TableFooter: Component<TableFooterProps>;
|
|
57
|
+
export type TablePageSizeProps = Omit<JSX.SelectHTMLAttributes<HTMLSelectElement>, "onChange"> & IComponentBaseProps & {
|
|
58
|
+
value: number;
|
|
59
|
+
options: readonly number[];
|
|
60
|
+
onChange: (value: number) => void;
|
|
61
|
+
label?: JSX.Element;
|
|
62
|
+
selectClass?: string;
|
|
63
|
+
selectClassName?: string;
|
|
64
|
+
};
|
|
65
|
+
declare const TablePageSize: Component<TablePageSizeProps>;
|
|
50
66
|
export type TableResizableContainerProps = JSX.HTMLAttributes<HTMLDivElement> & IComponentBaseProps;
|
|
51
67
|
declare const TableResizableContainer: Component<TableResizableContainerProps>;
|
|
52
68
|
export type TableColumnResizerProps = JSX.HTMLAttributes<HTMLDivElement> & IComponentBaseProps;
|
|
@@ -56,7 +72,7 @@ declare const TableLoadMore: Component<TableLoadMoreProps>;
|
|
|
56
72
|
export type TableLoadMoreContentProps = JSX.HTMLAttributes<HTMLDivElement> & IComponentBaseProps;
|
|
57
73
|
declare const TableLoadMoreContent: Component<TableLoadMoreContentProps>;
|
|
58
74
|
export type { TableVariant, TableSortDirection, TableSortDescriptor, TableColumnRenderProps, };
|
|
59
|
-
export { TableRoot, TableScrollContainer, TableContent, TableHeader, TableColumn, TableBody, TableRow, TableCell, TableFooter, TableResizableContainer, TableColumnResizer, TableLoadMore, TableLoadMoreContent, };
|
|
75
|
+
export { TableRoot, TableScrollContainer, TableContent, TableHeader, TableColumn, TableBody, TableRow, TableCell, TableExpandedRow, TableFooter, TablePageSize, TableResizableContainer, TableColumnResizer, TableLoadMore, TableLoadMoreContent, };
|
|
60
76
|
declare const _default: Component<TableRootProps> & {
|
|
61
77
|
Root: Component<TableRootProps>;
|
|
62
78
|
ScrollContainer: Component<TableScrollContainerProps>;
|
|
@@ -66,7 +82,9 @@ declare const _default: Component<TableRootProps> & {
|
|
|
66
82
|
Body: Component<TableBodyProps>;
|
|
67
83
|
Row: Component<TableRowProps>;
|
|
68
84
|
Cell: Component<TableCellProps>;
|
|
85
|
+
ExpandedRow: Component<TableExpandedRowProps>;
|
|
69
86
|
Footer: Component<TableFooterProps>;
|
|
87
|
+
PageSize: Component<TablePageSizeProps>;
|
|
70
88
|
ResizableContainer: Component<TableResizableContainerProps>;
|
|
71
89
|
ColumnResizer: Component<TableColumnResizerProps>;
|
|
72
90
|
LoadMore: Component<TableLoadMoreProps>;
|