@ctlyst.id/internal-ui 5.1.0 → 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 CHANGED
@@ -260,6 +260,8 @@ interface DataTableProps<T> {
260
260
  disabledRow?: (row: T) => boolean;
261
261
  highlightedRow?: (row: T) => boolean;
262
262
  highlightRowColor?: BackgroundProps['bg'];
263
+ /** paddingRowX in px */
264
+ paddingRowX?: number;
263
265
  }
264
266
  declare const isCellDisabled: (row: DisabledRowData, cellId: string) => boolean;
265
267
  type DataTableRefs<T> = Pick<RowSelectionInstance<T>, 'toggleAllRowsSelected'>;
package/dist/index.d.ts CHANGED
@@ -260,6 +260,8 @@ interface DataTableProps<T> {
260
260
  disabledRow?: (row: T) => boolean;
261
261
  highlightedRow?: (row: T) => boolean;
262
262
  highlightRowColor?: BackgroundProps['bg'];
263
+ /** paddingRowX in px */
264
+ paddingRowX?: number;
263
265
  }
264
266
  declare const isCellDisabled: (row: DisabledRowData, cellId: string) => boolean;
265
267
  type DataTableRefs<T> = Pick<RowSelectionInstance<T>, 'toggleAllRowsSelected'>;
package/dist/index.js CHANGED
@@ -1355,23 +1355,23 @@ var isCellDisabled = (row, cellId) => {
1355
1355
  }
1356
1356
  return false;
1357
1357
  };
1358
- var getCommonPinningStyles = (column) => {
1358
+ var getCommonPinningStyles = (column, paddingRowX) => {
1359
1359
  const isPinned = column.getIsPinned();
1360
1360
  const isFirstLeftPinnedColumn = isPinned === "left" && column.getIsFirstColumn("left");
1361
1361
  const isLastLeftPinnedColumn = isPinned === "left" && column.getIsLastColumn("left");
1362
1362
  const isFirstRightPinnedColumn = isPinned === "right" && column.getIsFirstColumn("right");
1363
1363
  const isLastRightPinnedColumn = isPinned === "right" && column.getIsLastColumn("right");
1364
1364
  return {
1365
- left: isPinned === "left" ? `${column.getStart("left") + (!isFirstLeftPinnedColumn ? 8 : 0)}px` : void 0,
1366
- right: isPinned === "right" ? `${column.getAfter("right") + (!isLastRightPinnedColumn ? 8 : 0)}px` : void 0,
1365
+ left: isPinned === "left" ? `${column.getStart("left") + (!isFirstLeftPinnedColumn ? paddingRowX : 0)}px` : void 0,
1366
+ right: isPinned === "right" ? `${column.getAfter("right") + (!isLastRightPinnedColumn ? paddingRowX : 0)}px` : void 0,
1367
1367
  position: isPinned ? "sticky" : "relative",
1368
1368
  zIndex: isPinned ? 1 : 0,
1369
1369
  ...isFirstLeftPinnedColumn ? {
1370
- pl: "16px"
1371
- } : { pl: "8px" },
1370
+ pl: `${paddingRowX + 8}px`
1371
+ } : {},
1372
1372
  ...isLastRightPinnedColumn ? {
1373
- pr: "16px"
1374
- } : { pr: "8px" },
1373
+ pr: `${paddingRowX + 8}px`
1374
+ } : {},
1375
1375
  ...isLastLeftPinnedColumn ? {
1376
1376
  py: "16px",
1377
1377
  pr: "8px",
@@ -1528,7 +1528,7 @@ var useDataTable = ({
1528
1528
  };
1529
1529
  };
1530
1530
  var DataTable = React5.forwardRef((props, ref) => {
1531
- var _a, _b, _c, _d, _e, _f, _g;
1531
+ var _a, _b, _c, _d, _e;
1532
1532
  const {
1533
1533
  isLoading,
1534
1534
  styles,
@@ -1540,7 +1540,8 @@ var DataTable = React5.forwardRef((props, ref) => {
1540
1540
  highlightedRow,
1541
1541
  withSelectedRow,
1542
1542
  highlightRowColor,
1543
- cellLineClamp = 2
1543
+ cellLineClamp = 2,
1544
+ paddingRowX = 8
1544
1545
  } = props;
1545
1546
  const { clickOrDragged, getDragOrClickProps } = useDragOrClick();
1546
1547
  const { table, action, toggleAllRowsSelected, generateColumn } = useDataTable(props);
@@ -1587,18 +1588,28 @@ var DataTable = React5.forwardRef((props, ref) => {
1587
1588
  };
1588
1589
  }, []);
1589
1590
  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);
1591
+ const getTableHeaderSize = (header, index, totalColumn) => {
1592
+ if (header.column.getIsFirstColumn("left") || header.column.getIsLastColumn("right")) {
1593
+ return { width: `${header.getSize() + paddingRowX}px` };
1594
+ }
1595
+ if (index === 0) {
1596
+ return { width: `${header.getSize() + paddingRowX}px`, paddingLeft: `${8 + paddingRowX}` };
1597
+ }
1598
+ if (index === totalColumn - 1) {
1599
+ return { width: `${header.getSize() + paddingRowX}px`, paddingRight: `${8 + paddingRowX}` };
1600
+ }
1601
+ return { width: `${header.getSize()}px` };
1602
+ };
1590
1603
  return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
1591
1604
  import_react29.Box,
1592
1605
  {
1593
1606
  overflowX: "auto",
1594
1607
  overflowY: "hidden",
1595
1608
  position: "relative",
1596
- pl: ((_e = columnPinning == null ? void 0 : columnPinning.left) == null ? void 0 : _e.length) ? 0 : 2,
1597
- pr: ((_f = columnPinning == null ? void 0 : columnPinning.right) == null ? void 0 : _f.length) ? 0 : 2,
1598
1609
  maxW: "100%",
1599
1610
  w: "full",
1600
1611
  ref: refTable,
1601
- ...((_g = columnPinning == null ? void 0 : columnPinning.right) == null ? void 0 : _g.length) && hasScroll ? { "data-pin-right": true } : {},
1612
+ ...((_e = columnPinning == null ? void 0 : columnPinning.right) == null ? void 0 : _e.length) && hasScroll ? { "data-pin-right": true } : {},
1602
1613
  ...container,
1603
1614
  children: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_react29.Table, { ...styles == null ? void 0 : styles.table, "data-loading": "true", children: [
1604
1615
  /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_react29.Thead, { ...(styles == null ? void 0 : styles.tableHead, headerSticky ? { position: "sticky", top: 0, bg: "white", zIndex: 1 } : {}), children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_react29.Tr, { mx: "2", ...styles == null ? void 0 : styles.tableRow, children: headerGroup.headers.map((header, index) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
@@ -1636,8 +1647,10 @@ var DataTable = React5.forwardRef((props, ref) => {
1636
1647
  import_react29.Th,
1637
1648
  {
1638
1649
  colSpan: header.colSpan,
1639
- sx: getCommonPinningStyles(header.column),
1640
- width: header.column.getIsFirstColumn("left") || header.column.getIsLastColumn("right") ? `${header.getSize() + 8}px` : `${header.getSize()}px`,
1650
+ _first: { paddingLeft: `${paddingRowX + 8}px` },
1651
+ _last: { paddingRight: `${paddingRowX + 8}px` },
1652
+ sx: getCommonPinningStyles(header.column, paddingRowX),
1653
+ ...getTableHeaderSize(header, index, headerGroup.headers.length),
1641
1654
  ...styles == null ? void 0 : styles.tableColumnHeader,
1642
1655
  children: /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
1643
1656
  import_react29.Flex,
@@ -1673,7 +1686,7 @@ var DataTable = React5.forwardRef((props, ref) => {
1673
1686
  }) }, headerGroup.id))
1674
1687
  }
1675
1688
  ),
1676
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_react29.Tbody, { ...styles == null ? void 0 : styles.tableBody, children: table.getRowModel().rows.map((row) => {
1689
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_react29.Tbody, { ...styles == null ? void 0 : styles.tableBody, children: table.getRowModel().rows.map((row, index) => {
1677
1690
  const isDisabledRow = disabledRow && disabledRow(row.original);
1678
1691
  const isHighlightedRow = highlightedRow && highlightedRow(row.original);
1679
1692
  return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
@@ -1722,8 +1735,10 @@ var DataTable = React5.forwardRef((props, ref) => {
1722
1735
  {
1723
1736
  "data-test-id": `CT_Component_TableCell_${cell.id}`,
1724
1737
  fontSize: "text.sm",
1738
+ _first: { paddingLeft: `${paddingRowX + 8}px` },
1739
+ _last: { paddingRight: `${paddingRowX + 8}px` },
1725
1740
  sx: {
1726
- ...getCommonPinningStyles(cell.column)
1741
+ ...getCommonPinningStyles(cell.column, paddingRowX)
1727
1742
  },
1728
1743
  ...styles == null ? void 0 : styles.tableCell,
1729
1744
  children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
@@ -1735,14 +1750,22 @@ var DataTable = React5.forwardRef((props, ref) => {
1735
1750
  align: "center",
1736
1751
  "data-test-id": `CT_Component_TableCell_Content-${cell.id}`,
1737
1752
  opacity: isDisabled ? 0.5 : 1,
1738
- ...cellLineClamp > 0 ? {
1739
- noOfLines: cellLineClamp,
1740
- sx: {
1741
- display: "-webkit-inline-box"
1742
- }
1743
- } : {},
1744
1753
  sx: { ...meta && meta.columnStyles ? meta.columnStyles : {} },
1745
- children: (0, import_react_table.flexRender)(cell.column.columnDef.cell, cell.getContext())
1754
+ children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
1755
+ import_react29.Box,
1756
+ {
1757
+ onMouseUp: (e) => {
1758
+ e.stopPropagation();
1759
+ },
1760
+ ...cellLineClamp > 0 ? {
1761
+ noOfLines: cellLineClamp,
1762
+ sx: {
1763
+ display: "-webkit-inline-box"
1764
+ }
1765
+ } : {},
1766
+ children: (0, import_react_table.flexRender)(cell.column.columnDef.cell, cell.getContext())
1767
+ }
1768
+ )
1746
1769
  }
1747
1770
  )
1748
1771
  },