@konoma-development/react-components 0.3.15 → 0.3.16

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.
@@ -16630,11 +16630,15 @@ var baseClasses$2 = {
16630
16630
  columnsRightClasses: "flex flex-row h-fit overflow-x-auto border-l first:rounded-tl-krc-table last:rounded-tr-krc-table",
16631
16631
  noDataClasses: "flex h-16 items-center justify-start pl-16 rounded-b-krc-table bg-white text-secondary-500 w-full text-sm",
16632
16632
  rowClasses: "group relative flex flex-row justify-between bg-white last:rounded-b-krc-table hover:bg-primary-100 h-fit",
16633
+ subRowClasses: "group relative flex flex-row justify-between bg-base-200 last:rounded-b-krc-table hover:bg-primary-100 h-fit",
16633
16634
  rowLeftWrapperClasses: "bg-white group-hover:bg-primary-100 h-fit",
16634
16635
  rowCenterWrapperClasses: "bg-white first:grow group-hover:bg-primary-100 h-fit",
16635
- rowRightWrapperClasses: "bg-white group-hover:bg-primary-100 h-fit"
16636
+ rowRightWrapperClasses: "bg-white group-hover:bg-primary-100 h-fit",
16637
+ subRowLeftWrapperClasses: "bg-base-200 group-hover:bg-primary-100 h-fit",
16638
+ subRowCenterWrapperClasses: "bg-base-200 first:grow group-hover:bg-primary-100 h-fit",
16639
+ subRowRightWrapperClasses: "bg-base-200 group-hover:bg-primary-100 h-fit"
16636
16640
  };
16637
- function Table({ noDataClasses = baseClasses$2.noDataClasses, wrapperClasses = baseClasses$2.wrapperClasses, tableClasses = baseClasses$2.tableClasses, rowClasses = baseClasses$2.rowClasses, rowLeftWrapperClasses = baseClasses$2.rowLeftWrapperClasses, rowCenterWrapperClasses = baseClasses$2.rowCenterWrapperClasses, rowRightWrapperClasses = baseClasses$2.rowRightWrapperClasses, headerClasses = baseClasses$2.headerClasses, paginationClasses, filterComponents, columnsCenter, columnsRight, columnsLeft, cellRenderer, filters = {}, data, pagination, totalRows, totalPagesProp, detailsRow, currentPage = 0, noEntryLabel, allowReorder, showFilters, pagesize = 10, xToY, isInfinite = true, name = "", firstPageIconName, firstPageIconPath, previousPageIconName, previousPageIconPath, nextPageIconName, nextPageIconPath, lastPageIconName, lastPageIconPath, sortingAscIconName, sortingAscIconPath, sortingDescIconName, sortingDescIconPath, removeFilterIconName, removeFilterIconPath, triggeredFilter, setTriggeredFilter, onDragRow = () => {}, onDropRow = () => {}, onRowClick = () => {}, onRowDoubleClick = () => {}, onScroll = () => {}, onUpdateFilters = async () => {}, onSort = () => {}, onFirstPage = () => {}, onPreviousPage = () => {}, onNextPage = () => {}, onLastPage = () => {}, toPage = (page) => {} }) {
16641
+ function Table({ noDataClasses = baseClasses$2.noDataClasses, wrapperClasses = baseClasses$2.wrapperClasses, tableClasses = baseClasses$2.tableClasses, rowClasses = baseClasses$2.rowClasses, rowLeftWrapperClasses = baseClasses$2.rowLeftWrapperClasses, rowCenterWrapperClasses = baseClasses$2.rowCenterWrapperClasses, rowRightWrapperClasses = baseClasses$2.rowRightWrapperClasses, subRowClasses = baseClasses$2.subRowClasses, subRowLeftWrapperClasses = baseClasses$2.subRowLeftWrapperClasses, subRowCenterWrapperClasses = baseClasses$2.subRowCenterWrapperClasses, subRowRightWrapperClasses = baseClasses$2.subRowRightWrapperClasses, headerClasses = baseClasses$2.headerClasses, paginationClasses, filterComponents, columnsCenter, columnsRight, columnsLeft, cellRenderer, filters = {}, data, pagination, totalRows, totalPagesProp, detailsRow, currentPage = 0, noEntryLabel, allowReorder, showFilters, pagesize = 10, xToY, isInfinite = true, name = "", firstPageIconName, firstPageIconPath, previousPageIconName, previousPageIconPath, nextPageIconName, nextPageIconPath, lastPageIconName, lastPageIconPath, sortingAscIconName, sortingAscIconPath, sortingDescIconName, sortingDescIconPath, removeFilterIconName, removeFilterIconPath, triggeredFilter, setTriggeredFilter, onDragRow = () => {}, onDropRow = () => {}, onRowClick = () => {}, onRowDoubleClick = () => {}, onScroll = () => {}, onUpdateFilters = async () => {}, onSort = () => {}, onFirstPage = () => {}, onPreviousPage = () => {}, onNextPage = () => {}, onLastPage = () => {}, toPage = (page) => {} }) {
16638
16642
  const { locale } = useContext(i18nContext);
16639
16643
  const hasFilters = !!(showFilters && (columnsCenter.some((column) => column.filterable) || columnsLeft?.some((column) => column.filterable) || columnsRight?.some((column) => column.filterable)));
16640
16644
  const totalPages = totalPagesProp || Math.ceil(totalRows / pagesize);
@@ -16846,7 +16850,7 @@ function Table({ noDataClasses = baseClasses$2.noDataClasses, wrapperClasses = b
16846
16850
  })
16847
16851
  ]
16848
16852
  }, locale),
16849
- allowReorder ? /* @__PURE__ */ jsx(DndProvider, {
16853
+ /* @__PURE__ */ jsx(DndProvider, {
16850
16854
  backend: HTML5Backend,
16851
16855
  debugMode: true,
16852
16856
  children: data.map((entry, i) => {
@@ -16868,99 +16872,14 @@ function Table({ noDataClasses = baseClasses$2.noDataClasses, wrapperClasses = b
16868
16872
  rowLeftWrapperClasses,
16869
16873
  rowCenterWrapperClasses,
16870
16874
  rowRightWrapperClasses,
16875
+ subRowClasses,
16876
+ subRowLeftWrapperClasses,
16877
+ subRowCenterWrapperClasses,
16878
+ subRowRightWrapperClasses,
16871
16879
  detailsRow
16872
16880
  }, i);
16873
16881
  })
16874
- }) : /* @__PURE__ */ jsx(Fragment$1, { children: data.map((entry, i) => {
16875
- return /* @__PURE__ */ jsxs("div", {
16876
- className: "flex flex-col",
16877
- children: [/* @__PURE__ */ jsxs("div", {
16878
- "data-testid": `${name}-table-row`,
16879
- "data-foo": "bar",
16880
- className: rowClasses,
16881
- onClick: () => onRowClick(entry),
16882
- onDoubleClick: () => onRowDoubleClick(entry),
16883
- children: [
16884
- (detailsRow || !!currentColumnsLeft.length) && /* @__PURE__ */ jsxs("div", {
16885
- className: "sticky left-0 flex flex-row border-r",
16886
- children: [detailsRow && /* @__PURE__ */ jsx("div", {
16887
- className: ["flex items-center justify-center w-12", rowLeftWrapperClasses].join(" "),
16888
- children: detailsRow(entry) && /* @__PURE__ */ jsx("button", {
16889
- className: "w-8 cursor-pointer",
16890
- onClick: (e) => {
16891
- e.stopPropagation();
16892
- e.preventDefault();
16893
- setDetailsOpen((prev) => {
16894
- const newDetailsOpen = [...prev];
16895
- newDetailsOpen[i] = !newDetailsOpen[i];
16896
- return newDetailsOpen;
16897
- });
16898
- },
16899
- children: /* @__PURE__ */ jsx(Icon, {
16900
- name: detailsOpen[i] ? "heroicons:chevron-down" : "heroicons:chevron-right",
16901
- className: "h-5 w-5"
16902
- })
16903
- })
16904
- }), currentColumnsLeft.map((column) => {
16905
- return /* @__PURE__ */ jsx("div", {
16906
- style: {
16907
- minWidth: column.initialWidth,
16908
- maxWidth: !column.grow ? column.initialWidth : void 0
16909
- },
16910
- className: [rowLeftWrapperClasses, column.grow ? "grow" : ""].join(" "),
16911
- title: entry[column.id] || "",
16912
- children: cellRenderer?.[column.id]?.(entry) || /* @__PURE__ */ jsx("div", {
16913
- "data-testid": `${name}-table-row-left-${column.id.toString()}`,
16914
- className: "h-14 truncate p-4 text-sm",
16915
- children: entry[column.id] || "-"
16916
- })
16917
- }, column.id.toString());
16918
- })]
16919
- }),
16920
- currentColumnsCenter.map((column) => {
16921
- return /* @__PURE__ */ jsx("div", {
16922
- style: {
16923
- minWidth: column.initialWidth,
16924
- maxWidth: !column.grow ? column.initialWidth : void 0
16925
- },
16926
- className: [rowCenterWrapperClasses, column.grow ? "grow" : ""].join(" "),
16927
- title: entry[column.id] ? entry[column.id].toString() : "",
16928
- children: cellRenderer?.[column.id]?.(entry) || /* @__PURE__ */ jsx("div", {
16929
- "data-testid": `${name}-table-row-center-${column.id.toString()}}`,
16930
- className: "h-14 truncate p-4 text-sm",
16931
- children: entry[column.id] || "-"
16932
- })
16933
- }, column.id.toString());
16934
- }),
16935
- !!currentColumnsRight.length && /* @__PURE__ */ jsx("div", {
16936
- className: "sticky -right-px flex flex-row border-l",
16937
- children: currentColumnsRight.map((column) => {
16938
- return /* @__PURE__ */ jsx("div", {
16939
- style: {
16940
- minWidth: column.initialWidth,
16941
- maxWidth: !column.grow ? column.initialWidth : void 0
16942
- },
16943
- className: [rowRightWrapperClasses, column.grow ? "grow" : ""].join(" "),
16944
- title: entry[column.id] || "",
16945
- children: cellRenderer?.[column.id]?.(entry) || /* @__PURE__ */ jsx("div", {
16946
- "data-testid": `${name}-table-row-right-${column.id.toString()}`,
16947
- className: "h-14 truncate p-4 text-sm",
16948
- children: entry[column.id] || "-"
16949
- })
16950
- }, column.id.toString());
16951
- })
16952
- }),
16953
- /* @__PURE__ */ jsx("div", {
16954
- style: { width: `${(header.current?.scrollWidth || 0) - 1}px` },
16955
- className: "absolute bottom-0 left-0 -right-px h-px bg-krc-table-header"
16956
- })
16957
- ]
16958
- }), detailsRow && detailsOpen[i] && /* @__PURE__ */ jsx("div", {
16959
- className: "ml-12",
16960
- children: detailsRow(entry)
16961
- })]
16962
- }, i);
16963
- }) }),
16882
+ }),
16964
16883
  data.length === 0 && /* @__PURE__ */ jsx("div", {
16965
16884
  "data-testid": name + "-table-no-data",
16966
16885
  className: noDataClasses,
@@ -16994,7 +16913,7 @@ function Table({ noDataClasses = baseClasses$2.noDataClasses, wrapperClasses = b
16994
16913
  })]
16995
16914
  });
16996
16915
  }
16997
- function Row({ index, entry, onDragRow, onDropRow, onRowClick, onRowDoubleClick, currentColumnsLeft, currentColumnsCenter, currentColumnsRight, cellRenderer, header, rowClasses, rowLeftWrapperClasses, rowCenterWrapperClasses, rowRightWrapperClasses, allowReorder, detailsRow, name }) {
16916
+ function Row({ index, entry, onDragRow, onDropRow, onRowClick, onRowDoubleClick, currentColumnsLeft, currentColumnsCenter, currentColumnsRight, cellRenderer, header, rowClasses, rowLeftWrapperClasses, rowCenterWrapperClasses, rowRightWrapperClasses, subRowClasses, subRowLeftWrapperClasses, subRowCenterWrapperClasses, subRowRightWrapperClasses, allowReorder, detailsRow, name }) {
16998
16917
  const dragRef = useRef(null);
16999
16918
  const previewRef = useRef(null);
17000
16919
  const [detailsOpen, setDetailsOpen] = useState(false);
@@ -17124,10 +17043,32 @@ function Row({ index, entry, onDragRow, onDropRow, onRowClick, onRowDoubleClick,
17124
17043
  className: "absolute bottom-0 left-0 -right-px h-px bg-secondary-50"
17125
17044
  })
17126
17045
  ]
17127
- }), detailsRow && detailsOpen && /* @__PURE__ */ jsx("div", {
17046
+ }), detailsRow && detailsOpen && (Array.isArray(detailsRow(entry)) ? detailsRow(entry)?.map((e, i) => /* @__PURE__ */ jsx("div", {
17047
+ className: "group",
17048
+ children: /* @__PURE__ */ jsx(Row, {
17049
+ index: i,
17050
+ name,
17051
+ entry: e,
17052
+ allowReorder,
17053
+ onDragRow,
17054
+ onDropRow,
17055
+ currentColumnsCenter,
17056
+ currentColumnsLeft,
17057
+ currentColumnsRight,
17058
+ cellRenderer,
17059
+ header,
17060
+ onRowClick,
17061
+ onRowDoubleClick,
17062
+ rowClasses: subRowClasses || rowClasses,
17063
+ rowLeftWrapperClasses: subRowLeftWrapperClasses || rowLeftWrapperClasses,
17064
+ rowCenterWrapperClasses: subRowCenterWrapperClasses || rowCenterWrapperClasses,
17065
+ rowRightWrapperClasses: subRowRightWrapperClasses || rowRightWrapperClasses,
17066
+ detailsRow: () => void 0
17067
+ })
17068
+ }, i)) : /* @__PURE__ */ jsx("div", {
17128
17069
  className: "ml-12",
17129
17070
  children: detailsRow(entry)
17130
- })]
17071
+ }))]
17131
17072
  });
17132
17073
  }
17133
17074