tabler-react-2 0.1.158 → 0.1.159
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/alert/index.js +1 -1
- package/dist/table-v2/index.js +78 -37
- package/package.json +1 -1
package/dist/alert/index.js
CHANGED
|
@@ -28,7 +28,7 @@ var Alert = exports.Alert = function Alert(_ref) {
|
|
|
28
28
|
}, icon), /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("h4", {
|
|
29
29
|
className: "alert-title alert-heading"
|
|
30
30
|
}, title), /*#__PURE__*/_react["default"].createElement("div", {
|
|
31
|
-
className: "text-secondary"
|
|
31
|
+
className: "text-secondary ".concat(props.contentClassName)
|
|
32
32
|
}, children))), onDismiss && /*#__PURE__*/_react["default"].createElement("a", {
|
|
33
33
|
className: "btn-close",
|
|
34
34
|
"data-bs-dismiss": "alert",
|
package/dist/table-v2/index.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
@@ -11,11 +10,15 @@ var _reactTable = require("@tanstack/react-table");
|
|
|
11
10
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
12
11
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
13
12
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
14
|
-
|
|
13
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
14
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
15
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
16
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
17
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
18
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } // TableV2.jsx
|
|
15
19
|
// TanStack Table v8 styled like the Original component's Tabler look.
|
|
16
20
|
// Adds `dense` mode for a compact layout.
|
|
17
21
|
// Controlled (server-side) pagination & sorting. ES modules, named exports, arrow functions only.
|
|
18
|
-
|
|
19
22
|
/** Small utilities */
|
|
20
23
|
|
|
21
24
|
var SortIcon = exports.SortIcon = function SortIcon(_ref) {
|
|
@@ -49,7 +52,7 @@ var PageSizeSelect = exports.PageSizeSelect = function PageSizeSelect(_ref3) {
|
|
|
49
52
|
options = _ref3$options === void 0 ? [10, 25, 50, 100] : _ref3$options,
|
|
50
53
|
dense = _ref3.dense;
|
|
51
54
|
return /*#__PURE__*/_react["default"].createElement("select", {
|
|
52
|
-
className:
|
|
55
|
+
className: "form-select form-select-sm",
|
|
53
56
|
value: value,
|
|
54
57
|
onChange: function onChange(e) {
|
|
55
58
|
return _onChange(Number(e.target.value));
|
|
@@ -106,24 +109,29 @@ var isEmptyRender = function isEmptyRender(node) {
|
|
|
106
109
|
if (typeof node === "string" && node.trim() === "") return true;
|
|
107
110
|
return false;
|
|
108
111
|
};
|
|
109
|
-
var renderCellWithFallback = function renderCellWithFallback(cell) {
|
|
112
|
+
var renderCellWithFallback = function renderCellWithFallback(cell, fallbackText) {
|
|
110
113
|
var _cell$getValue;
|
|
111
|
-
// If the column provided a custom cell renderer, use it first.
|
|
112
114
|
var rendered = (0, _reactTable.flexRender)(cell.column.columnDef.cell, cell.getContext());
|
|
113
|
-
|
|
114
|
-
// If the renderer returned something empty-ish, or if there's no renderer,
|
|
115
|
-
// fall back to the raw value.
|
|
116
115
|
var finalNode = isEmptyRender(rendered) ? (_cell$getValue = cell.getValue) === null || _cell$getValue === void 0 ? void 0 : _cell$getValue.call(cell) : rendered;
|
|
117
|
-
|
|
118
|
-
// If the final node is still null/undefined/empty string, show a placeholder.
|
|
119
116
|
if (finalNode === null || finalNode === undefined || typeof finalNode === "string" && finalNode.trim() === "") {
|
|
120
117
|
return /*#__PURE__*/_react["default"].createElement("span", {
|
|
121
118
|
className: "text-muted"
|
|
122
|
-
},
|
|
119
|
+
}, fallbackText);
|
|
123
120
|
}
|
|
124
121
|
return finalNode;
|
|
125
122
|
};
|
|
126
123
|
|
|
124
|
+
/** Skeletons */
|
|
125
|
+
|
|
126
|
+
var SkeletonCSS = function SkeletonCSS() {
|
|
127
|
+
return /*#__PURE__*/_react["default"].createElement("style", null, "\n /* TableV2 skeletons */\n .tblv2-skel {\n display: inline-block;\n vertical-align: middle;\n border-radius: 9999px;\n background: linear-gradient(90deg, #e9ecef 25%, #f1f3f5 37%, #e9ecef 63%);\n background-size: 400% 100%;\n animation: tblv2-shimmer 1.2s ease-in-out infinite;\n }\n @keyframes tblv2-shimmer {\n 0% { background-position: 100% 0; }\n 100% { background-position: 0 0; }\n }\n ");
|
|
128
|
+
};
|
|
129
|
+
var skeletonWidthAt = function skeletonWidthAt(rowIdx, colIdx) {
|
|
130
|
+
// Cycle through some natural-looking widths
|
|
131
|
+
var widths = [48, 72, 96, 120, 64, 88, 140];
|
|
132
|
+
return widths[(rowIdx + colIdx) % widths.length];
|
|
133
|
+
};
|
|
134
|
+
|
|
127
135
|
/** Main table */
|
|
128
136
|
|
|
129
137
|
var TableV2 = exports.TableV2 = function TableV2(_ref5) {
|
|
@@ -166,22 +174,30 @@ var TableV2 = exports.TableV2 = function TableV2(_ref5) {
|
|
|
166
174
|
var table = (0, _reactTable.useReactTable)({
|
|
167
175
|
data: data,
|
|
168
176
|
columns: columns,
|
|
169
|
-
state: {
|
|
170
|
-
sorting: sorting
|
|
171
|
-
|
|
172
|
-
|
|
177
|
+
state: _objectSpread({
|
|
178
|
+
sorting: sorting
|
|
179
|
+
}, rowSelection !== undefined ? {
|
|
180
|
+
rowSelection: rowSelection
|
|
181
|
+
} : {}),
|
|
173
182
|
getCoreRowModel: (0, _reactTable.getCoreRowModel)(),
|
|
174
183
|
manualSorting: true,
|
|
175
184
|
enableSortingRemoval: false,
|
|
176
|
-
|
|
177
|
-
|
|
185
|
+
/** Selection essentials */
|
|
186
|
+
enableRowSelection: true,
|
|
178
187
|
onRowSelectionChange: onRowSelectionChange,
|
|
179
|
-
|
|
180
|
-
//
|
|
188
|
+
getRowId: getRowId,
|
|
189
|
+
// IMPORTANT: provide a stable id (e.g., row => row.id) when paginating
|
|
190
|
+
autoResetRowSelection: false,
|
|
191
|
+
onSortingChange: onSortingChange,
|
|
181
192
|
renderFallbackValue: /*#__PURE__*/_react["default"].createElement("span", {
|
|
182
193
|
className: "text-muted"
|
|
183
194
|
}, fallbackText)
|
|
184
195
|
});
|
|
196
|
+
|
|
197
|
+
/** Make memoization responsive to internal table state, not just the instance ref */
|
|
198
|
+
var _table$getState = table.getState(),
|
|
199
|
+
rs = _table$getState.rowSelection,
|
|
200
|
+
currentSorting = _table$getState.sorting;
|
|
185
201
|
var headerCell = function headerCell(_ref6) {
|
|
186
202
|
var header = _ref6.header;
|
|
187
203
|
var canSort = header.column.getCanSort();
|
|
@@ -215,10 +231,40 @@ var TableV2 = exports.TableV2 = function TableV2(_ref5) {
|
|
|
215
231
|
state: sortState || false
|
|
216
232
|
}));
|
|
217
233
|
};
|
|
234
|
+
var total = totalRows !== null && totalRows !== void 0 ? totalRows : 0;
|
|
235
|
+
var leafCols = table.getAllLeafColumns().length;
|
|
218
236
|
var content = (0, _react.useMemo)(function () {
|
|
237
|
+
if (loading) {
|
|
238
|
+
var rowCount = Math.max(1, size || data.length || 10);
|
|
239
|
+
var rowClass = [dense ? "align-middle" : ""].filter(Boolean).join(" ");
|
|
240
|
+
var cellClass = [dense ? "py-1" : ""].filter(Boolean).join(" ");
|
|
241
|
+
var pillHeight = dense ? 16 : 18;
|
|
242
|
+
return Array.from({
|
|
243
|
+
length: rowCount
|
|
244
|
+
}).map(function (_, r) {
|
|
245
|
+
return /*#__PURE__*/_react["default"].createElement("tr", {
|
|
246
|
+
key: "skel-".concat(r),
|
|
247
|
+
className: rowClass,
|
|
248
|
+
"aria-hidden": "true"
|
|
249
|
+
}, Array.from({
|
|
250
|
+
length: leafCols
|
|
251
|
+
}).map(function (__, c) {
|
|
252
|
+
return /*#__PURE__*/_react["default"].createElement("td", {
|
|
253
|
+
key: "skel-".concat(r, "-").concat(c),
|
|
254
|
+
className: cellClass
|
|
255
|
+
}, /*#__PURE__*/_react["default"].createElement("span", {
|
|
256
|
+
className: "tblv2-skel",
|
|
257
|
+
style: {
|
|
258
|
+
height: pillHeight,
|
|
259
|
+
width: skeletonWidthAt(r, c)
|
|
260
|
+
}
|
|
261
|
+
}));
|
|
262
|
+
}));
|
|
263
|
+
});
|
|
264
|
+
}
|
|
219
265
|
if (!loading && data.length === 0) {
|
|
220
266
|
return /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", {
|
|
221
|
-
colSpan:
|
|
267
|
+
colSpan: leafCols,
|
|
222
268
|
className: "text-center ".concat(dense ? "py-3 small" : "py-3", " text-muted")
|
|
223
269
|
}, typeof emptyState === "function" ? emptyState() : emptyState));
|
|
224
270
|
}
|
|
@@ -230,14 +276,14 @@ var TableV2 = exports.TableV2 = function TableV2(_ref5) {
|
|
|
230
276
|
return /*#__PURE__*/_react["default"].createElement("td", {
|
|
231
277
|
key: cell.id,
|
|
232
278
|
className: [cell.column.columnDef.className || "", dense ? "py-1" : ""].filter(Boolean).join(" ")
|
|
233
|
-
}, renderCellWithFallback(cell));
|
|
279
|
+
}, renderCellWithFallback(cell, fallbackText));
|
|
234
280
|
}));
|
|
235
281
|
});
|
|
236
|
-
|
|
237
|
-
|
|
282
|
+
// Depend on internal table state so selection/sorting changes trigger re-render
|
|
283
|
+
}, [loading, size, data, dense, table, rs, currentSorting, emptyState, leafCols, fallbackText]);
|
|
238
284
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
239
285
|
className: parentClassName
|
|
240
|
-
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
286
|
+
}, /*#__PURE__*/_react["default"].createElement(SkeletonCSS, null), /*#__PURE__*/_react["default"].createElement("div", {
|
|
241
287
|
className: "table-responsive ".concat(nowrap ? "table-nowrap" : "", " ").concat(className)
|
|
242
288
|
}, /*#__PURE__*/_react["default"].createElement("table", {
|
|
243
289
|
className: ["table table-vcenter", stickyHeader ? "sticky-top" : "", dense ? "table-sm" : "", tableClassName].filter(Boolean).join(" ")
|
|
@@ -249,17 +295,8 @@ var TableV2 = exports.TableV2 = function TableV2(_ref5) {
|
|
|
249
295
|
header: h
|
|
250
296
|
});
|
|
251
297
|
}));
|
|
252
|
-
})), /*#__PURE__*/_react["default"].createElement("tbody", null,
|
|
253
|
-
|
|
254
|
-
className: "text-center ".concat(dense ? "py-2" : "py-3")
|
|
255
|
-
}, /*#__PURE__*/_react["default"].createElement("span", {
|
|
256
|
-
className: "spinner-border spinner-border-sm me-2",
|
|
257
|
-
role: "status",
|
|
258
|
-
"aria-hidden": true
|
|
259
|
-
}), /*#__PURE__*/_react["default"].createElement("span", {
|
|
260
|
-
className: dense ? "small text-muted" : "text-muted"
|
|
261
|
-
}, "Loading\u2026"))), content))), showPagination && /*#__PURE__*/_react["default"].createElement("div", {
|
|
262
|
-
className: "d-flex justify-content-between align-items-center ".concat(dense ? "mt-1" : "mt-2", " ").concat(paginationClassName)
|
|
298
|
+
})), /*#__PURE__*/_react["default"].createElement("tbody", null, content))), showPagination && /*#__PURE__*/_react["default"].createElement("div", {
|
|
299
|
+
className: "d-flex justify-content-between align-items-center mx-2 ".concat(dense ? "my-1" : "my-2", " ").concat(paginationClassName)
|
|
263
300
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
264
301
|
className: "d-flex align-items-center ".concat(dense ? "gap-2" : "")
|
|
265
302
|
}, /*#__PURE__*/_react["default"].createElement(Pager, {
|
|
@@ -334,6 +371,7 @@ TableV2.propTypes = {
|
|
|
334
371
|
parentClassName: _propTypes["default"].string,
|
|
335
372
|
emptyState: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].func]),
|
|
336
373
|
loading: _propTypes["default"].bool,
|
|
374
|
+
// now shows skeleton pills per cell
|
|
337
375
|
showPagination: _propTypes["default"].bool,
|
|
338
376
|
pageSizeOptions: _propTypes["default"].arrayOf(_propTypes["default"].number),
|
|
339
377
|
dense: _propTypes["default"].bool
|
|
@@ -352,7 +390,10 @@ TableV2.propTypes = {
|
|
|
352
390
|
* onSizeChange={(n)=>{ setPage(1); setSize(n); }}
|
|
353
391
|
* sorting={sorting}
|
|
354
392
|
* onSortingChange={(next)=>{ setPage(1); setSorting(next); }}
|
|
355
|
-
*
|
|
393
|
+
* rowSelection={rowSelection} // { [rowId]: true }
|
|
394
|
+
* onRowSelectionChange={setRowSelection}
|
|
395
|
+
* getRowId={(row) => row.id} // <<< stable id across pages
|
|
396
|
+
* loading={loading} // <<< skeletons instead of spinner row
|
|
356
397
|
* nowrap
|
|
357
398
|
* stickyHeader
|
|
358
399
|
* />
|