@dreamtree-org/twreact-ui 1.0.70 → 1.0.71
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/index.esm.js +58 -75
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +58 -75
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.esm.js
CHANGED
|
@@ -3863,7 +3863,7 @@ var Select = /*#__PURE__*/React__default.forwardRef(function (_ref, forwardedRef
|
|
|
3863
3863
|
}, error));
|
|
3864
3864
|
});
|
|
3865
3865
|
|
|
3866
|
-
var _excluded$k = ["data", "columns", "sortable", "filterable", "selectable", "pagination", "pageSize", "onSort", "onFilter", "onFetch", "onFilterChange", "onSelectionChange", "onRowClick", "hasDetails", "DetailsComponent", "className", "withAction", "onAction", "actions", "showSerial", "cellClass", "rowClass", "globalSearch", "limitOptions", "showLimitSelector", "onLimitChange", "showReloadButton", "renderReloadButton", "onReload", "stripedRows", "stripedColors", "responsiveBreakpoint"];
|
|
3866
|
+
var _excluded$k = ["data", "columns", "sortable", "filterable", "selectable", "pagination", "pageSize", "onSort", "onFilter", "onFetch", "onFilterChange", "onSelectionChange", "onRowClick", "hasDetails", "DetailsComponent", "className", "withAction", "onAction", "actions", "showSerial", "cellClass", "rowClass", "globalSearch", "limitOptions", "showLimitSelector", "onLimitChange", "showReloadButton", "renderReloadButton", "onReload", "stripedRows", "stripedColors", "responsiveBreakpoint", "serverSide", "totalRecords", "pageNumber", "onPageChange"];
|
|
3867
3867
|
function ownKeys$9(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; }
|
|
3868
3868
|
function _objectSpread$9(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$9(Object(t), true).forEach(function (r) { _defineProperty$4(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$9(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
3869
3869
|
var Table = function Table(_ref) {
|
|
@@ -3917,7 +3917,13 @@ var Table = function Table(_ref) {
|
|
|
3917
3917
|
stripedColors = _ref$stripedColors === void 0 ? ["#ffffff", "#f7fafc"] : _ref$stripedColors,
|
|
3918
3918
|
_ref$responsiveBreakp = _ref.responsiveBreakpoint,
|
|
3919
3919
|
responsiveBreakpoint = _ref$responsiveBreakp === void 0 ? 768 : _ref$responsiveBreakp,
|
|
3920
|
-
|
|
3920
|
+
_ref$serverSide = _ref.serverSide,
|
|
3921
|
+
serverSide = _ref$serverSide === void 0 ? false : _ref$serverSide,
|
|
3922
|
+
_ref$totalRecords = _ref.totalRecords,
|
|
3923
|
+
totalRecords = _ref$totalRecords === void 0 ? 0 : _ref$totalRecords,
|
|
3924
|
+
pageNumber = _ref.pageNumber;
|
|
3925
|
+
_ref.onPageChange;
|
|
3926
|
+
var props = _objectWithoutProperties$1(_ref, _excluded$k);
|
|
3921
3927
|
// State for responsive view
|
|
3922
3928
|
var _useState = useState(false),
|
|
3923
3929
|
_useState2 = _slicedToArray(_useState, 2),
|
|
@@ -3978,7 +3984,7 @@ var Table = function Table(_ref) {
|
|
|
3978
3984
|
_useState16 = _slicedToArray(_useState15, 2),
|
|
3979
3985
|
expandedRows = _useState16[0],
|
|
3980
3986
|
setExpandedRows = _useState16[1];
|
|
3981
|
-
var _useState17 = useState(1),
|
|
3987
|
+
var _useState17 = useState(typeof pageNumber === "number" ? pageNumber : 1),
|
|
3982
3988
|
_useState18 = _slicedToArray(_useState17, 2),
|
|
3983
3989
|
currentPage = _useState18[0],
|
|
3984
3990
|
setCurrentPage = _useState18[1];
|
|
@@ -4008,6 +4014,14 @@ var Table = function Table(_ref) {
|
|
|
4008
4014
|
openActionKey = _useState28[0],
|
|
4009
4015
|
setOpenActionKey = _useState28[1];
|
|
4010
4016
|
var openRef = useRef(null);
|
|
4017
|
+
useEffect(function () {
|
|
4018
|
+
if (typeof pageNumber === "number" && pageNumber !== currentPage) {
|
|
4019
|
+
setCurrentPage(pageNumber);
|
|
4020
|
+
}
|
|
4021
|
+
}, [pageNumber]);
|
|
4022
|
+
useEffect(function () {
|
|
4023
|
+
setLimit(pageSize);
|
|
4024
|
+
}, [pageSize]);
|
|
4011
4025
|
|
|
4012
4026
|
// Check if mobile view
|
|
4013
4027
|
useEffect(function () {
|
|
@@ -4027,9 +4041,6 @@ var Table = function Table(_ref) {
|
|
|
4027
4041
|
var isValidList = function isValidList(d) {
|
|
4028
4042
|
return Array.isArray(d);
|
|
4029
4043
|
};
|
|
4030
|
-
var setDataForExternal = function setDataForExternal(newData) {
|
|
4031
|
-
if (isValidList(newData)) setTableData(newData);else setTableData([]);
|
|
4032
|
-
};
|
|
4033
4044
|
|
|
4034
4045
|
// Close column menu when clicking outside
|
|
4035
4046
|
useEffect(function () {
|
|
@@ -4126,70 +4137,42 @@ var Table = function Table(_ref) {
|
|
|
4126
4137
|
|
|
4127
4138
|
// Sorting
|
|
4128
4139
|
var sortedData = useMemo(function () {
|
|
4129
|
-
if (!sortConfig.key) return tableData;
|
|
4140
|
+
if (serverSide || !sortConfig.key) return tableData;
|
|
4130
4141
|
var key = sortConfig.key,
|
|
4131
4142
|
direction = sortConfig.direction;
|
|
4132
4143
|
return _toConsumableArray$1(tableData).sort(function (a, b) {
|
|
4133
|
-
var
|
|
4134
|
-
var
|
|
4135
|
-
if (
|
|
4136
|
-
if (
|
|
4137
|
-
|
|
4138
|
-
if (typeof aValue === "number" && typeof bValue === "number") {
|
|
4139
|
-
return direction === "asc" ? aValue - bValue : bValue - aValue;
|
|
4140
|
-
}
|
|
4141
|
-
var aStr = String(aValue).toLowerCase();
|
|
4142
|
-
var bStr = String(bValue).toLowerCase();
|
|
4143
|
-
if (aStr < bStr) return direction === "asc" ? -1 : 1;
|
|
4144
|
-
if (aStr > bStr) return direction === "asc" ? 1 : -1;
|
|
4145
|
-
return 0;
|
|
4144
|
+
var av = a === null || a === void 0 ? void 0 : a[key];
|
|
4145
|
+
var bv = b === null || b === void 0 ? void 0 : b[key];
|
|
4146
|
+
if (av == null || bv == null) return 0;
|
|
4147
|
+
if (typeof av === "number") return direction === "asc" ? av - bv : bv - av;
|
|
4148
|
+
return direction === "asc" ? String(av).localeCompare(String(bv)) : String(bv).localeCompare(String(av));
|
|
4146
4149
|
});
|
|
4147
|
-
}, [tableData, sortConfig]);
|
|
4150
|
+
}, [tableData, sortConfig, serverSide]);
|
|
4148
4151
|
|
|
4149
4152
|
// Filtering
|
|
4150
4153
|
var filteredData = useMemo(function () {
|
|
4151
|
-
if (!filterable || Object.keys(filters).length
|
|
4152
|
-
var
|
|
4154
|
+
if (serverSide || !filterable || !Object.keys(filters).length) return sortedData;
|
|
4155
|
+
var q = (filters.global || "").toLowerCase();
|
|
4153
4156
|
return sortedData.filter(function (row) {
|
|
4154
|
-
|
|
4155
|
-
|
|
4156
|
-
var _ref3 = _slicedToArray(_ref2, 2),
|
|
4157
|
-
key = _ref3[0],
|
|
4158
|
-
value = _ref3[1];
|
|
4159
|
-
if (key === "global") return true;
|
|
4160
|
-
if (!value) return true;
|
|
4161
|
-
var cell = row === null || row === void 0 ? void 0 : row[key];
|
|
4162
|
-
if (cell == null) return false;
|
|
4163
|
-
return String(cell).toLowerCase().includes(String(value).toLowerCase());
|
|
4157
|
+
return Object.values(row || {}).some(function (v) {
|
|
4158
|
+
return String(v).toLowerCase().includes(q);
|
|
4164
4159
|
});
|
|
4165
|
-
if (!perColumnOk) return false;
|
|
4166
|
-
|
|
4167
|
-
// Global filter
|
|
4168
|
-
if (globalQuery) {
|
|
4169
|
-
var matchesVisible = visibleColumns.some(function (col) {
|
|
4170
|
-
var v = row === null || row === void 0 ? void 0 : row[col.key];
|
|
4171
|
-
if (v == null) return false;
|
|
4172
|
-
return String(v).toLowerCase().includes(globalQuery);
|
|
4173
|
-
});
|
|
4174
|
-
if (matchesVisible) return true;
|
|
4175
|
-
return Object.values(row || {}).some(function (v) {
|
|
4176
|
-
return v != null ? String(v).toLowerCase().includes(globalQuery) : false;
|
|
4177
|
-
});
|
|
4178
|
-
}
|
|
4179
|
-
return true;
|
|
4180
4160
|
});
|
|
4181
|
-
}, [sortedData, filters, filterable,
|
|
4182
|
-
|
|
4161
|
+
}, [sortedData, filters, filterable, serverSide]);
|
|
4183
4162
|
// Pagination indices
|
|
4184
4163
|
var startIndex = pagination ? (currentPage - 1) * limit : 0;
|
|
4185
4164
|
var endIndex = pagination ? startIndex + limit : filteredData.length;
|
|
4186
4165
|
|
|
4187
4166
|
// Paginated view
|
|
4188
4167
|
var paginatedData = useMemo(function () {
|
|
4189
|
-
if (!pagination) return filteredData;
|
|
4190
|
-
|
|
4191
|
-
|
|
4192
|
-
|
|
4168
|
+
if (!pagination || serverSide) return filteredData;
|
|
4169
|
+
var start = (currentPage - 1) * limit;
|
|
4170
|
+
return filteredData.slice(start, start + limit);
|
|
4171
|
+
}, [filteredData, pagination, serverSide, currentPage, limit]);
|
|
4172
|
+
var totalPages = useMemo(function () {
|
|
4173
|
+
if (!pagination) return 1;
|
|
4174
|
+
return serverSide ? Math.max(1, Math.ceil((totalRecords || 0) / limit)) : Math.max(1, Math.ceil(filteredData.length / limit));
|
|
4175
|
+
}, [pagination, serverSide, totalRecords, filteredData.length, limit]);
|
|
4193
4176
|
|
|
4194
4177
|
// Sorting handler
|
|
4195
4178
|
var handleSort = function handleSort(key) {
|
|
@@ -4304,17 +4287,19 @@ var Table = function Table(_ref) {
|
|
|
4304
4287
|
useEffect(function () {
|
|
4305
4288
|
if (!onFetch) return;
|
|
4306
4289
|
onFetch({
|
|
4307
|
-
setData:
|
|
4308
|
-
|
|
4290
|
+
setData: function setData(rows) {
|
|
4291
|
+
return setTableData(Array.isArray(rows) ? rows : []);
|
|
4292
|
+
},
|
|
4309
4293
|
setLoading: setLoading,
|
|
4310
|
-
|
|
4311
|
-
|
|
4312
|
-
|
|
4313
|
-
|
|
4314
|
-
nextRecords: paginatedData
|
|
4315
|
-
}
|
|
4294
|
+
filters: filters,
|
|
4295
|
+
page: currentPage,
|
|
4296
|
+
limit: limit,
|
|
4297
|
+
sort: sortConfig
|
|
4316
4298
|
});
|
|
4317
|
-
}, [filters, currentPage, limit]);
|
|
4299
|
+
}, [onFetch, filters, currentPage, limit, sortConfig]);
|
|
4300
|
+
useEffect(function () {
|
|
4301
|
+
if (!serverSide) setTableData(data);
|
|
4302
|
+
}, [data, serverSide]);
|
|
4318
4303
|
useEffect(function () {
|
|
4319
4304
|
if (!onFetch && isValidList(data)) setTableData(data);
|
|
4320
4305
|
}, [data, onFetch]);
|
|
@@ -4332,13 +4317,11 @@ var Table = function Table(_ref) {
|
|
|
4332
4317
|
applyGlobalSearch();
|
|
4333
4318
|
}
|
|
4334
4319
|
};
|
|
4335
|
-
useEffect(function () {
|
|
4336
|
-
setLimit(pageSize);
|
|
4337
|
-
}, [pageSize]);
|
|
4338
4320
|
var handleLimitChange = function handleLimitChange(nextLimit) {
|
|
4339
4321
|
var parsed = Number(nextLimit);
|
|
4340
4322
|
if (!Number.isFinite(parsed) || parsed <= 0) return;
|
|
4341
4323
|
setLimit(parsed);
|
|
4324
|
+
setCurrentPage(1);
|
|
4342
4325
|
onLimitChange === null || onLimitChange === void 0 || onLimitChange(parsed);
|
|
4343
4326
|
};
|
|
4344
4327
|
|
|
@@ -4681,7 +4664,7 @@ var Table = function Table(_ref) {
|
|
|
4681
4664
|
}, /*#__PURE__*/React__default.createElement("input", {
|
|
4682
4665
|
type: "text",
|
|
4683
4666
|
placeholder: "Filter ".concat(column.label),
|
|
4684
|
-
className: "w-full rounded-md border border-gray-300 px-3 py-1.5 text-sm",
|
|
4667
|
+
className: "w-full rounded-md border border-gray-300 px-3 py-1.5 text-sm font-normal",
|
|
4685
4668
|
value: filters[column.key] || "",
|
|
4686
4669
|
onChange: function onChange(e) {
|
|
4687
4670
|
return handleFilter(column.key, e.target.value);
|
|
@@ -4881,14 +4864,14 @@ var Table = function Table(_ref) {
|
|
|
4881
4864
|
}
|
|
4882
4865
|
}, "Next")))));
|
|
4883
4866
|
};
|
|
4884
|
-
function ActionMenuPortal(
|
|
4885
|
-
var anchorElem =
|
|
4886
|
-
anchorRow =
|
|
4887
|
-
|
|
4888
|
-
actions =
|
|
4889
|
-
|
|
4890
|
-
var onAction =
|
|
4891
|
-
menuRef =
|
|
4867
|
+
function ActionMenuPortal(_ref2) {
|
|
4868
|
+
var anchorElem = _ref2.anchorElem,
|
|
4869
|
+
anchorRow = _ref2.anchorRow,
|
|
4870
|
+
_ref2$actions = _ref2.actions,
|
|
4871
|
+
actions = _ref2$actions === void 0 ? [] : _ref2$actions;
|
|
4872
|
+
_ref2.onClose;
|
|
4873
|
+
var onAction = _ref2.onAction,
|
|
4874
|
+
menuRef = _ref2.menuRef;
|
|
4892
4875
|
var _useState29 = useState({
|
|
4893
4876
|
left: 0,
|
|
4894
4877
|
top: 0,
|