tabler-react-2 0.1.126 → 0.1.128
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/input/dropdown.js +2 -2
- package/dist/table/index.js +98 -36
- package/docs/src/docs/changelog.mdx +5 -1
- package/package.json +1 -1
package/dist/input/dropdown.js
CHANGED
|
@@ -113,7 +113,7 @@ var DropdownInput = exports.DropdownInput = function DropdownInput(_ref) {
|
|
|
113
113
|
var dropdownContent = /*#__PURE__*/_react["default"].createElement("div", _extends({
|
|
114
114
|
className: "dropdown"
|
|
115
115
|
}, props), /*#__PURE__*/_react["default"].createElement("a", _extends({
|
|
116
|
-
href: "
|
|
116
|
+
href: "javascript:void(0)",
|
|
117
117
|
className: "btn dropdown-toggle ".concat(props.disabled ? "disabled" : "", " ").concat(color ? "btn-".concat(outline ? "outline-" : "").concat(color) : ""),
|
|
118
118
|
"data-bs-toggle": "dropdown"
|
|
119
119
|
}, aprops), selectedValue ? selectedValue.label : prompt), /*#__PURE__*/_react["default"].createElement("div", {
|
|
@@ -156,7 +156,7 @@ var DropdownInput = exports.DropdownInput = function DropdownInput(_ref) {
|
|
|
156
156
|
style: {
|
|
157
157
|
cursor: isItemDisabled ? "not-allowed" : "pointer"
|
|
158
158
|
},
|
|
159
|
-
href: v.href || "
|
|
159
|
+
href: v.href || "javascript:void(0)"
|
|
160
160
|
}, v.icon && /*#__PURE__*/_react["default"].createElement("span", {
|
|
161
161
|
className: "dropdown-item-icon"
|
|
162
162
|
}, v.icon), (_v$dropdownText = v.dropdownText) !== null && _v$dropdownText !== void 0 ? _v$dropdownText : v.label);
|
package/dist/table/index.js
CHANGED
|
@@ -4,9 +4,10 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.Table = void 0;
|
|
7
|
+
exports.Table = exports.IconSortDescending = exports.IconSortAscending = exports.IconArrowsSort = void 0;
|
|
8
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
9
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
|
+
var _index = require("../index");
|
|
10
11
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
11
12
|
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); }
|
|
12
13
|
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; }
|
|
@@ -20,7 +21,7 @@ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r)
|
|
|
20
21
|
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
21
22
|
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
22
23
|
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
23
|
-
var IconSortDescending = function IconSortDescending(_ref) {
|
|
24
|
+
var IconSortDescending = exports.IconSortDescending = function IconSortDescending(_ref) {
|
|
24
25
|
var size = _ref.size;
|
|
25
26
|
return /*#__PURE__*/_react["default"].createElement("svg", {
|
|
26
27
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -49,7 +50,7 @@ var IconSortDescending = function IconSortDescending(_ref) {
|
|
|
49
50
|
d: "M18 6l0 12"
|
|
50
51
|
}));
|
|
51
52
|
};
|
|
52
|
-
var IconSortAscending = function IconSortAscending(_ref2) {
|
|
53
|
+
var IconSortAscending = exports.IconSortAscending = function IconSortAscending(_ref2) {
|
|
53
54
|
var size = _ref2.size;
|
|
54
55
|
return /*#__PURE__*/_react["default"].createElement("svg", {
|
|
55
56
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -78,7 +79,7 @@ var IconSortAscending = function IconSortAscending(_ref2) {
|
|
|
78
79
|
d: "M18 6l0 12"
|
|
79
80
|
}));
|
|
80
81
|
};
|
|
81
|
-
var IconArrowsSort = function IconArrowsSort(_ref3) {
|
|
82
|
+
var IconArrowsSort = exports.IconArrowsSort = function IconArrowsSort(_ref3) {
|
|
82
83
|
var size = _ref3.size;
|
|
83
84
|
return /*#__PURE__*/_react["default"].createElement("svg", {
|
|
84
85
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -109,9 +110,18 @@ var getValueByAccessor = function getValueByAccessor(object, accessor) {
|
|
|
109
110
|
var Table = exports.Table = function Table(_ref4) {
|
|
110
111
|
var columns = _ref4.columns,
|
|
111
112
|
data = _ref4.data,
|
|
112
|
-
nowrap = _ref4.nowrap,
|
|
113
|
-
|
|
114
|
-
|
|
113
|
+
_ref4$nowrap = _ref4.nowrap,
|
|
114
|
+
nowrap = _ref4$nowrap === void 0 ? false : _ref4$nowrap,
|
|
115
|
+
_ref4$stickyHeader = _ref4.stickyHeader,
|
|
116
|
+
stickyHeader = _ref4$stickyHeader === void 0 ? false : _ref4$stickyHeader,
|
|
117
|
+
_ref4$className = _ref4.className,
|
|
118
|
+
className = _ref4$className === void 0 ? "" : _ref4$className,
|
|
119
|
+
_ref4$showPagination = _ref4.showPagination,
|
|
120
|
+
showPagination = _ref4$showPagination === void 0 ? false : _ref4$showPagination,
|
|
121
|
+
_ref4$defaultRowsPerP = _ref4.defaultRowsPerPage,
|
|
122
|
+
defaultRowsPerPage = _ref4$defaultRowsPerP === void 0 ? 10 : _ref4$defaultRowsPerP,
|
|
123
|
+
_ref4$tableClassName = _ref4.tableClassName,
|
|
124
|
+
tableClassName = _ref4$tableClassName === void 0 ? "" : _ref4$tableClassName;
|
|
115
125
|
var _useState = (0, _react.useState)({
|
|
116
126
|
key: null,
|
|
117
127
|
direction: "asc"
|
|
@@ -119,6 +129,14 @@ var Table = exports.Table = function Table(_ref4) {
|
|
|
119
129
|
_useState2 = _slicedToArray(_useState, 2),
|
|
120
130
|
sortConfig = _useState2[0],
|
|
121
131
|
setSortConfig = _useState2[1];
|
|
132
|
+
var _useState3 = (0, _react.useState)(1),
|
|
133
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
134
|
+
currentPage = _useState4[0],
|
|
135
|
+
setCurrentPage = _useState4[1];
|
|
136
|
+
var _useState5 = (0, _react.useState)(defaultRowsPerPage),
|
|
137
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
138
|
+
pageSize = _useState6[0],
|
|
139
|
+
setPageSize = _useState6[1];
|
|
122
140
|
var defaultSortFn = function defaultSortFn(a, b) {
|
|
123
141
|
if (a === b) return 0;
|
|
124
142
|
return a > b ? 1 : -1;
|
|
@@ -132,24 +150,32 @@ var Table = exports.Table = function Table(_ref4) {
|
|
|
132
150
|
key: accessor,
|
|
133
151
|
direction: direction
|
|
134
152
|
});
|
|
153
|
+
setCurrentPage(1);
|
|
135
154
|
};
|
|
136
|
-
var sortedData = _react
|
|
137
|
-
if (sortConfig.key)
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
}
|
|
151
|
-
return data;
|
|
155
|
+
var sortedData = (0, _react.useMemo)(function () {
|
|
156
|
+
if (!sortConfig.key) return data;
|
|
157
|
+
var key = sortConfig.key,
|
|
158
|
+
direction = sortConfig.direction;
|
|
159
|
+
var sortColumn = columns.find(function (col) {
|
|
160
|
+
return col.accessor === key;
|
|
161
|
+
});
|
|
162
|
+
var sortFunction = (sortColumn === null || sortColumn === void 0 ? void 0 : sortColumn.sortFn) || defaultSortFn;
|
|
163
|
+
var order = direction === "asc" ? 1 : -1;
|
|
164
|
+
return _toConsumableArray(data).sort(function (a, b) {
|
|
165
|
+
var aValue = getValueByAccessor(a, key);
|
|
166
|
+
var bValue = getValueByAccessor(b, key);
|
|
167
|
+
return sortFunction(aValue, bValue) * order;
|
|
168
|
+
});
|
|
152
169
|
}, [data, sortConfig, columns]);
|
|
170
|
+
var pageSizeOptions = [10, 25, 50, 100];
|
|
171
|
+
var totalPages = (0, _react.useMemo)(function () {
|
|
172
|
+
return Math.max(1, Math.ceil(sortedData.length / pageSize));
|
|
173
|
+
}, [sortedData, pageSize]);
|
|
174
|
+
var paginatedData = (0, _react.useMemo)(function () {
|
|
175
|
+
if (!showPagination) return sortedData;
|
|
176
|
+
var start = (currentPage - 1) * pageSize;
|
|
177
|
+
return sortedData.slice(start, start + pageSize);
|
|
178
|
+
}, [sortedData, currentPage, pageSize, showPagination]);
|
|
153
179
|
var getSortIcon = function getSortIcon(column) {
|
|
154
180
|
if (sortConfig.key === column.accessor) {
|
|
155
181
|
return sortConfig.direction === "asc" ? /*#__PURE__*/_react["default"].createElement(IconSortAscending, {
|
|
@@ -165,27 +191,27 @@ var Table = exports.Table = function Table(_ref4) {
|
|
|
165
191
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
166
192
|
className: "table-responsive ".concat(nowrap ? "table-nowrap" : "", " ").concat(className)
|
|
167
193
|
}, /*#__PURE__*/_react["default"].createElement("table", {
|
|
168
|
-
className: "table table-vcenter ".concat(stickyHeader ? "sticky-top" : "")
|
|
169
|
-
}, /*#__PURE__*/_react["default"].createElement("thead", null, /*#__PURE__*/_react["default"].createElement("tr", null, columns.map(function (column,
|
|
194
|
+
className: "table table-vcenter ".concat(stickyHeader ? "sticky-top" : "", " ").concat(tableClassName)
|
|
195
|
+
}, /*#__PURE__*/_react["default"].createElement("thead", null, /*#__PURE__*/_react["default"].createElement("tr", null, columns.map(function (column, idx) {
|
|
170
196
|
return /*#__PURE__*/_react["default"].createElement("th", {
|
|
171
|
-
key:
|
|
197
|
+
key: idx,
|
|
172
198
|
className: "".concat(column.className || "", " ").concat(column.sortable ? "sortable" : ""),
|
|
173
199
|
onClick: column.sortable ? function () {
|
|
174
|
-
return handleSort(column.accessor, column
|
|
200
|
+
return handleSort(column.accessor, column.sortFn);
|
|
175
201
|
} : undefined,
|
|
176
202
|
style: {
|
|
177
203
|
cursor: column.sortable ? "pointer" : "default"
|
|
178
204
|
}
|
|
179
205
|
}, column.icon && /*#__PURE__*/_react["default"].createElement("span", {
|
|
180
206
|
style: {
|
|
181
|
-
marginRight:
|
|
207
|
+
marginRight: 8
|
|
182
208
|
}
|
|
183
209
|
}, column.icon), /*#__PURE__*/_react["default"].createElement("span", {
|
|
184
210
|
style: {
|
|
185
|
-
marginRight:
|
|
211
|
+
marginRight: 8
|
|
186
212
|
}
|
|
187
213
|
}, column.label), column.sortable && getSortIcon(column));
|
|
188
|
-
}))), /*#__PURE__*/_react["default"].createElement("tbody", null,
|
|
214
|
+
}))), /*#__PURE__*/_react["default"].createElement("tbody", null, paginatedData.map(function (row, rowIndex) {
|
|
189
215
|
return /*#__PURE__*/_react["default"].createElement("tr", {
|
|
190
216
|
key: rowIndex
|
|
191
217
|
}, columns.map(function (column, colIndex) {
|
|
@@ -194,21 +220,57 @@ var Table = exports.Table = function Table(_ref4) {
|
|
|
194
220
|
className: column.className || ""
|
|
195
221
|
}, column.render ? column.render(getValueByAccessor(row, column.accessor), row) : getValueByAccessor(row, column.accessor));
|
|
196
222
|
}));
|
|
197
|
-
})))
|
|
223
|
+
}))), showPagination && /*#__PURE__*/_react["default"].createElement("div", {
|
|
224
|
+
className: "d-flex justify-content-between align-items-center mt-2"
|
|
225
|
+
}, /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_index.Button, {
|
|
226
|
+
onClick: function onClick() {
|
|
227
|
+
return setCurrentPage(function (p) {
|
|
228
|
+
return Math.max(p - 1, 1);
|
|
229
|
+
});
|
|
230
|
+
},
|
|
231
|
+
disabled: currentPage === 1
|
|
232
|
+
}, "Previous"), /*#__PURE__*/_react["default"].createElement(_index.Button, {
|
|
233
|
+
onClick: function onClick() {
|
|
234
|
+
return setCurrentPage(function (p) {
|
|
235
|
+
return Math.min(p + 1, totalPages);
|
|
236
|
+
});
|
|
237
|
+
},
|
|
238
|
+
disabled: currentPage === totalPages,
|
|
239
|
+
style: {
|
|
240
|
+
marginLeft: 8
|
|
241
|
+
}
|
|
242
|
+
}, "Next"), /*#__PURE__*/_react["default"].createElement("span", {
|
|
243
|
+
style: {
|
|
244
|
+
marginLeft: 16
|
|
245
|
+
}
|
|
246
|
+
}, "Page ", currentPage, " of ", totalPages)), /*#__PURE__*/_react["default"].createElement(_index.DropdownInput, {
|
|
247
|
+
prompt: "Rows per page",
|
|
248
|
+
items: pageSizeOptions.map(function (size) {
|
|
249
|
+
return {
|
|
250
|
+
id: size,
|
|
251
|
+
label: size
|
|
252
|
+
};
|
|
253
|
+
}),
|
|
254
|
+
onChange: function onChange(selected) {
|
|
255
|
+
setPageSize(selected.id);
|
|
256
|
+
setCurrentPage(1);
|
|
257
|
+
}
|
|
258
|
+
})));
|
|
198
259
|
};
|
|
199
260
|
Table.propTypes = {
|
|
200
261
|
columns: _propTypes["default"].arrayOf(_propTypes["default"].shape({
|
|
201
262
|
label: _propTypes["default"].string.isRequired,
|
|
202
263
|
accessor: _propTypes["default"].string.isRequired,
|
|
203
264
|
className: _propTypes["default"].string,
|
|
204
|
-
// Optional: For adding specific CSS classes
|
|
205
265
|
render: _propTypes["default"].func,
|
|
206
|
-
// Optional: Custom render function for the cell content
|
|
207
266
|
sortable: _propTypes["default"].bool,
|
|
208
|
-
|
|
209
|
-
|
|
267
|
+
sortFn: _propTypes["default"].func,
|
|
268
|
+
icon: _propTypes["default"].node
|
|
210
269
|
})).isRequired,
|
|
211
270
|
data: _propTypes["default"].arrayOf(_propTypes["default"].object).isRequired,
|
|
212
271
|
nowrap: _propTypes["default"].bool,
|
|
213
|
-
stickyHeader: _propTypes["default"].bool
|
|
272
|
+
stickyHeader: _propTypes["default"].bool,
|
|
273
|
+
className: _propTypes["default"].string,
|
|
274
|
+
showPagination: _propTypes["default"].bool,
|
|
275
|
+
defaultRowsPerPage: _propTypes["default"].number
|
|
214
276
|
};
|