@konoma-development/react-components 0.3.14 → 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
|
-
|
|
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
|
-
})
|
|
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: /* @__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);
|
|
@@ -17052,7 +16971,7 @@ function Row({ index, entry, onDragRow, onDropRow, onRowClick, onRowDoubleClick,
|
|
|
17052
16971
|
className: "sticky left-0 flex flex-row border-r",
|
|
17053
16972
|
children: [detailsRow && /* @__PURE__ */ jsx("div", {
|
|
17054
16973
|
className: ["flex items-center justify-center w-12", rowLeftWrapperClasses].join(" "),
|
|
17055
|
-
children: /* @__PURE__ */ jsx("button", {
|
|
16974
|
+
children: detailsRow?.(entry) && /* @__PURE__ */ jsx("button", {
|
|
17056
16975
|
className: "w-8 cursor-pointer",
|
|
17057
16976
|
onClick: (e) => {
|
|
17058
16977
|
e.stopPropagation();
|
|
@@ -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
|
|