@ctlyst.id/internal-ui 5.0.4 → 5.2.0
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/index.d.mts +4 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.js +59 -31
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +59 -31
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
@@ -1007,23 +1007,23 @@ var isCellDisabled = (row, cellId) => {
|
|
1007
1007
|
}
|
1008
1008
|
return false;
|
1009
1009
|
};
|
1010
|
-
var getCommonPinningStyles = (column) => {
|
1010
|
+
var getCommonPinningStyles = (column, paddingRowX) => {
|
1011
1011
|
const isPinned = column.getIsPinned();
|
1012
1012
|
const isFirstLeftPinnedColumn = isPinned === "left" && column.getIsFirstColumn("left");
|
1013
1013
|
const isLastLeftPinnedColumn = isPinned === "left" && column.getIsLastColumn("left");
|
1014
1014
|
const isFirstRightPinnedColumn = isPinned === "right" && column.getIsFirstColumn("right");
|
1015
1015
|
const isLastRightPinnedColumn = isPinned === "right" && column.getIsLastColumn("right");
|
1016
1016
|
return {
|
1017
|
-
left: isPinned === "left" ? `${column.getStart("left") + (!isFirstLeftPinnedColumn ?
|
1018
|
-
right: isPinned === "right" ? `${column.getAfter("right") + (!isLastRightPinnedColumn ?
|
1017
|
+
left: isPinned === "left" ? `${column.getStart("left") + (!isFirstLeftPinnedColumn ? paddingRowX : 0)}px` : void 0,
|
1018
|
+
right: isPinned === "right" ? `${column.getAfter("right") + (!isLastRightPinnedColumn ? paddingRowX : 0)}px` : void 0,
|
1019
1019
|
position: isPinned ? "sticky" : "relative",
|
1020
1020
|
zIndex: isPinned ? 1 : 0,
|
1021
1021
|
...isFirstLeftPinnedColumn ? {
|
1022
|
-
pl:
|
1023
|
-
} : {
|
1022
|
+
pl: `${paddingRowX + 8}px`
|
1023
|
+
} : {},
|
1024
1024
|
...isLastRightPinnedColumn ? {
|
1025
|
-
pr:
|
1026
|
-
} : {
|
1025
|
+
pr: `${paddingRowX + 8}px`
|
1026
|
+
} : {},
|
1027
1027
|
...isLastLeftPinnedColumn ? {
|
1028
1028
|
py: "16px",
|
1029
1029
|
pr: "8px",
|
@@ -1079,6 +1079,7 @@ var useDataTable = ({
|
|
1079
1079
|
const [isFirstLoad, setIsFirstLoad] = React5.useState(true);
|
1080
1080
|
const [sorting, setSorting] = React5.useState(sortingState != null ? sortingState : []);
|
1081
1081
|
const dataColumns = React5.useMemo(() => columns, [columns]);
|
1082
|
+
const action = React5.useRef("");
|
1082
1083
|
const checkboxColumn = React5.useMemo(
|
1083
1084
|
() => [
|
1084
1085
|
{
|
@@ -1090,9 +1091,10 @@ var useDataTable = ({
|
|
1090
1091
|
"data-test-id": "select-header-data-table",
|
1091
1092
|
...{
|
1092
1093
|
isDisabled: table2.getPaginationRowModel().rows.filter((row) => !(disabledRow == null ? void 0 : disabledRow(row.original))).length === 0,
|
1093
|
-
isChecked: table2.
|
1094
|
-
isIndeterminate: table2.
|
1094
|
+
isChecked: table2.getIsAllPageRowsSelected(),
|
1095
|
+
isIndeterminate: table2.getIsSomePageRowsSelected(),
|
1095
1096
|
onChange: () => {
|
1097
|
+
action.current = "selectAll";
|
1096
1098
|
if (table2.getIsAllRowsSelected()) {
|
1097
1099
|
table2.toggleAllRowsSelected();
|
1098
1100
|
} else if (disabledRow) {
|
@@ -1122,7 +1124,7 @@ var useDataTable = ({
|
|
1122
1124
|
) })
|
1123
1125
|
}
|
1124
1126
|
],
|
1125
|
-
[
|
1127
|
+
[dataSource]
|
1126
1128
|
);
|
1127
1129
|
const generateColumn = () => {
|
1128
1130
|
if (withSelectedRow) {
|
@@ -1152,15 +1154,16 @@ var useDataTable = ({
|
|
1152
1154
|
});
|
1153
1155
|
const { getSelectedRowModel, toggleAllRowsSelected } = table;
|
1154
1156
|
const { flatRows } = getSelectedRowModel();
|
1155
|
-
React5.useEffect(() => {
|
1156
|
-
table.setRowSelection(selectedRow != null ? selectedRow : {});
|
1157
|
-
}, [selectedRow]);
|
1158
1157
|
React5.useEffect(() => {
|
1159
1158
|
const rowData = flatRows.map((row) => row.original);
|
1160
1159
|
if (onSelectedRow) {
|
1161
|
-
onSelectedRow(rowData);
|
1160
|
+
onSelectedRow(rowData, action.current);
|
1162
1161
|
}
|
1163
1162
|
}, [flatRows]);
|
1163
|
+
React5.useEffect(() => {
|
1164
|
+
action.current = "newData";
|
1165
|
+
table.setRowSelection(selectedRow != null ? selectedRow : {});
|
1166
|
+
}, [selectedRow]);
|
1164
1167
|
React5.useEffect(() => {
|
1165
1168
|
if (onSort && !isFirstLoad) {
|
1166
1169
|
onSort(sorting);
|
@@ -1171,12 +1174,13 @@ var useDataTable = ({
|
|
1171
1174
|
}, []);
|
1172
1175
|
return {
|
1173
1176
|
table,
|
1177
|
+
action,
|
1174
1178
|
toggleAllRowsSelected,
|
1175
1179
|
generateColumn
|
1176
1180
|
};
|
1177
1181
|
};
|
1178
1182
|
var DataTable = React5.forwardRef((props, ref) => {
|
1179
|
-
var _a, _b, _c, _d, _e
|
1183
|
+
var _a, _b, _c, _d, _e;
|
1180
1184
|
const {
|
1181
1185
|
isLoading,
|
1182
1186
|
styles,
|
@@ -1188,10 +1192,11 @@ var DataTable = React5.forwardRef((props, ref) => {
|
|
1188
1192
|
highlightedRow,
|
1189
1193
|
withSelectedRow,
|
1190
1194
|
highlightRowColor,
|
1191
|
-
cellLineClamp = 2
|
1195
|
+
cellLineClamp = 2,
|
1196
|
+
paddingRowX = 8
|
1192
1197
|
} = props;
|
1193
1198
|
const { clickOrDragged, getDragOrClickProps } = useDragOrClick();
|
1194
|
-
const { table, toggleAllRowsSelected, generateColumn } = useDataTable(props);
|
1199
|
+
const { table, action, toggleAllRowsSelected, generateColumn } = useDataTable(props);
|
1195
1200
|
const refTable = React5.useRef(null);
|
1196
1201
|
React5.useImperativeHandle(ref, () => ({
|
1197
1202
|
toggleAllRowsSelected
|
@@ -1235,18 +1240,28 @@ var DataTable = React5.forwardRef((props, ref) => {
|
|
1235
1240
|
};
|
1236
1241
|
}, []);
|
1237
1242
|
const hasScroll = ((_a = refTable == null ? void 0 : refTable.current) == null ? void 0 : _a.offsetWidth) && ((_b = refTable == null ? void 0 : refTable.current) == null ? void 0 : _b.scrollWidth) && ((_c = refTable == null ? void 0 : refTable.current) == null ? void 0 : _c.offsetWidth) < ((_d = refTable == null ? void 0 : refTable.current) == null ? void 0 : _d.scrollWidth);
|
1243
|
+
const getTableHeaderSize = (header, index, totalColumn) => {
|
1244
|
+
if (header.column.getIsFirstColumn("left") || header.column.getIsLastColumn("right")) {
|
1245
|
+
return { width: `${header.getSize() + paddingRowX}px` };
|
1246
|
+
}
|
1247
|
+
if (index === 0) {
|
1248
|
+
return { width: `${header.getSize() + paddingRowX}px`, paddingLeft: `${8 + paddingRowX}` };
|
1249
|
+
}
|
1250
|
+
if (index === totalColumn - 1) {
|
1251
|
+
return { width: `${header.getSize() + paddingRowX}px`, paddingRight: `${8 + paddingRowX}` };
|
1252
|
+
}
|
1253
|
+
return { width: `${header.getSize()}px` };
|
1254
|
+
};
|
1238
1255
|
return /* @__PURE__ */ jsx24(
|
1239
1256
|
Box11,
|
1240
1257
|
{
|
1241
1258
|
overflowX: "auto",
|
1242
1259
|
overflowY: "hidden",
|
1243
1260
|
position: "relative",
|
1244
|
-
pl: ((_e = columnPinning == null ? void 0 : columnPinning.left) == null ? void 0 : _e.length) ? 0 : 2,
|
1245
|
-
pr: ((_f = columnPinning == null ? void 0 : columnPinning.right) == null ? void 0 : _f.length) ? 0 : 2,
|
1246
1261
|
maxW: "100%",
|
1247
1262
|
w: "full",
|
1248
1263
|
ref: refTable,
|
1249
|
-
...((
|
1264
|
+
...((_e = columnPinning == null ? void 0 : columnPinning.right) == null ? void 0 : _e.length) && hasScroll ? { "data-pin-right": true } : {},
|
1250
1265
|
...container,
|
1251
1266
|
children: isLoading ? /* @__PURE__ */ jsxs8(Table, { ...styles == null ? void 0 : styles.table, "data-loading": "true", children: [
|
1252
1267
|
/* @__PURE__ */ jsx24(Thead, { ...(styles == null ? void 0 : styles.tableHead, headerSticky ? { position: "sticky", top: 0, bg: "white", zIndex: 1 } : {}), children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx24(Tr, { mx: "2", ...styles == null ? void 0 : styles.tableRow, children: headerGroup.headers.map((header, index) => /* @__PURE__ */ jsx24(
|
@@ -1284,8 +1299,10 @@ var DataTable = React5.forwardRef((props, ref) => {
|
|
1284
1299
|
Th,
|
1285
1300
|
{
|
1286
1301
|
colSpan: header.colSpan,
|
1287
|
-
|
1288
|
-
|
1302
|
+
_first: { paddingLeft: `${paddingRowX + 8}px` },
|
1303
|
+
_last: { paddingRight: `${paddingRowX + 8}px` },
|
1304
|
+
sx: getCommonPinningStyles(header.column, paddingRowX),
|
1305
|
+
...getTableHeaderSize(header, index, headerGroup.headers.length),
|
1289
1306
|
...styles == null ? void 0 : styles.tableColumnHeader,
|
1290
1307
|
children: /* @__PURE__ */ jsxs8(
|
1291
1308
|
Flex2,
|
@@ -1321,7 +1338,7 @@ var DataTable = React5.forwardRef((props, ref) => {
|
|
1321
1338
|
}) }, headerGroup.id))
|
1322
1339
|
}
|
1323
1340
|
),
|
1324
|
-
/* @__PURE__ */ jsx24(Tbody, { ...styles == null ? void 0 : styles.tableBody, children: table.getRowModel().rows.map((row) => {
|
1341
|
+
/* @__PURE__ */ jsx24(Tbody, { ...styles == null ? void 0 : styles.tableBody, children: table.getRowModel().rows.map((row, index) => {
|
1325
1342
|
const isDisabledRow = disabledRow && disabledRow(row.original);
|
1326
1343
|
const isHighlightedRow = highlightedRow && highlightedRow(row.original);
|
1327
1344
|
return /* @__PURE__ */ jsx24(
|
@@ -1352,6 +1369,7 @@ var DataTable = React5.forwardRef((props, ref) => {
|
|
1352
1369
|
(_a2 = e.currentTarget) == null ? void 0 : _a2.removeAttribute("data-active");
|
1353
1370
|
},
|
1354
1371
|
onClick: () => {
|
1372
|
+
action.current = "selectRow";
|
1355
1373
|
if (withSelectedRow) row.toggleSelected();
|
1356
1374
|
if (onRowClick) {
|
1357
1375
|
if (isDisabledRow) return;
|
@@ -1369,8 +1387,10 @@ var DataTable = React5.forwardRef((props, ref) => {
|
|
1369
1387
|
{
|
1370
1388
|
"data-test-id": `CT_Component_TableCell_${cell.id}`,
|
1371
1389
|
fontSize: "text.sm",
|
1390
|
+
_first: { paddingLeft: `${paddingRowX + 8}px` },
|
1391
|
+
_last: { paddingRight: `${paddingRowX + 8}px` },
|
1372
1392
|
sx: {
|
1373
|
-
...getCommonPinningStyles(cell.column)
|
1393
|
+
...getCommonPinningStyles(cell.column, paddingRowX)
|
1374
1394
|
},
|
1375
1395
|
...styles == null ? void 0 : styles.tableCell,
|
1376
1396
|
children: /* @__PURE__ */ jsx24(
|
@@ -1382,14 +1402,22 @@ var DataTable = React5.forwardRef((props, ref) => {
|
|
1382
1402
|
align: "center",
|
1383
1403
|
"data-test-id": `CT_Component_TableCell_Content-${cell.id}`,
|
1384
1404
|
opacity: isDisabled ? 0.5 : 1,
|
1385
|
-
...cellLineClamp > 0 ? {
|
1386
|
-
noOfLines: cellLineClamp,
|
1387
|
-
sx: {
|
1388
|
-
display: "-webkit-inline-box"
|
1389
|
-
}
|
1390
|
-
} : {},
|
1391
1405
|
sx: { ...meta && meta.columnStyles ? meta.columnStyles : {} },
|
1392
|
-
children:
|
1406
|
+
children: /* @__PURE__ */ jsx24(
|
1407
|
+
Box11,
|
1408
|
+
{
|
1409
|
+
onMouseUp: (e) => {
|
1410
|
+
e.stopPropagation();
|
1411
|
+
},
|
1412
|
+
...cellLineClamp > 0 ? {
|
1413
|
+
noOfLines: cellLineClamp,
|
1414
|
+
sx: {
|
1415
|
+
display: "-webkit-inline-box"
|
1416
|
+
}
|
1417
|
+
} : {},
|
1418
|
+
children: flexRender(cell.column.columnDef.cell, cell.getContext())
|
1419
|
+
}
|
1420
|
+
)
|
1393
1421
|
}
|
1394
1422
|
)
|
1395
1423
|
},
|