@lax-wp/design-system 0.13.33-beta.7 → 0.13.34
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/components/data-display/infinite-table/body/cell/ActionCell.cjs.js +1 -1
- package/dist/components/data-display/infinite-table/body/cell/ActionCell.cjs.js.map +1 -1
- package/dist/components/data-display/infinite-table/body/cell/ActionCell.es.js +11 -11
- package/dist/components/data-display/infinite-table/body/cell/ActionCell.es.js.map +1 -1
- package/dist/components/data-display/infinite-table/body/cell/CheckboxCell.cjs.js +1 -1
- package/dist/components/data-display/infinite-table/body/cell/CheckboxCell.cjs.js.map +1 -1
- package/dist/components/data-display/infinite-table/body/cell/CheckboxCell.es.js +10 -10
- package/dist/components/data-display/infinite-table/body/cell/CheckboxCell.es.js.map +1 -1
- package/dist/components/data-display/infinite-table/body/cell/DataCell.cjs.js +1 -1
- package/dist/components/data-display/infinite-table/body/cell/DataCell.cjs.js.map +1 -1
- package/dist/components/data-display/infinite-table/body/cell/DataCell.es.js +23 -23
- package/dist/components/data-display/infinite-table/body/cell/DataCell.es.js.map +1 -1
- package/dist/components/data-display/infinite-table/body/cell/LoaderCell.cjs.js +1 -1
- package/dist/components/data-display/infinite-table/body/cell/LoaderCell.cjs.js.map +1 -1
- package/dist/components/data-display/infinite-table/body/cell/LoaderCell.es.js +6 -6
- package/dist/components/data-display/infinite-table/body/cell/LoaderCell.es.js.map +1 -1
- package/dist/components/data-display/infinite-table/body/cell/PendingEditCell.cjs.js +1 -1
- package/dist/components/data-display/infinite-table/body/cell/PendingEditCell.cjs.js.map +1 -1
- package/dist/components/data-display/infinite-table/body/cell/PendingEditCell.es.js +4 -4
- package/dist/components/data-display/infinite-table/body/cell/PendingEditCell.es.js.map +1 -1
- package/dist/components/data-display/infinite-table/body/cell/RowActionCell.cjs.js +1 -1
- package/dist/components/data-display/infinite-table/body/cell/RowActionCell.cjs.js.map +1 -1
- package/dist/components/data-display/infinite-table/body/cell/RowActionCell.es.js +3 -3
- package/dist/components/data-display/infinite-table/body/cell/RowActionCell.es.js.map +1 -1
- package/dist/components/data-display/infinite-table/body/cell/RowOptionsCell.cjs.js +1 -1
- package/dist/components/data-display/infinite-table/body/cell/RowOptionsCell.cjs.js.map +1 -1
- package/dist/components/data-display/infinite-table/body/cell/RowOptionsCell.es.js +24 -24
- package/dist/components/data-display/infinite-table/body/cell/RowOptionsCell.es.js.map +1 -1
- package/dist/components/data-display/infinite-table/body/cell/SpinnerCell.cjs.js +1 -1
- package/dist/components/data-display/infinite-table/body/cell/SpinnerCell.cjs.js.map +1 -1
- package/dist/components/data-display/infinite-table/body/cell/SpinnerCell.es.js +1 -1
- package/dist/components/data-display/infinite-table/body/cell/SpinnerCell.es.js.map +1 -1
- package/dist/components/data-display/infinite-table/body/rows/index.cjs.js +1 -1
- package/dist/components/data-display/infinite-table/body/rows/index.cjs.js.map +1 -1
- package/dist/components/data-display/infinite-table/body/rows/index.es.js +104 -101
- package/dist/components/data-display/infinite-table/body/rows/index.es.js.map +1 -1
- package/dist/components/data-display/infinite-table/body/rows/row.cjs.js +1 -1
- package/dist/components/data-display/infinite-table/body/rows/row.cjs.js.map +1 -1
- package/dist/components/data-display/infinite-table/body/rows/row.es.js +2 -2
- package/dist/components/data-display/infinite-table/body/rows/row.es.js.map +1 -1
- package/dist/components/data-display/infinite-table/constants.cjs.js +1 -1
- package/dist/components/data-display/infinite-table/constants.cjs.js.map +1 -1
- package/dist/components/data-display/infinite-table/constants.d.ts +6 -0
- package/dist/components/data-display/infinite-table/constants.es.js +17 -16
- package/dist/components/data-display/infinite-table/constants.es.js.map +1 -1
- package/dist/components/data-display/infinite-table/head/CheckAll.cjs.js +1 -1
- package/dist/components/data-display/infinite-table/head/CheckAll.cjs.js.map +1 -1
- package/dist/components/data-display/infinite-table/head/CheckAll.es.js +1 -1
- package/dist/components/data-display/infinite-table/head/CheckAll.es.js.map +1 -1
- package/dist/components/data-display/infinite-table/head/cell/index.cjs.js +1 -1
- package/dist/components/data-display/infinite-table/head/cell/index.cjs.js.map +1 -1
- package/dist/components/data-display/infinite-table/head/cell/index.es.js +2 -2
- package/dist/components/data-display/infinite-table/head/cell/index.es.js.map +1 -1
- package/dist/components/data-display/infinite-table/head/index.cjs.js +1 -1
- package/dist/components/data-display/infinite-table/head/index.cjs.js.map +1 -1
- package/dist/components/data-display/infinite-table/head/index.es.js +20 -20
- package/dist/components/data-display/infinite-table/head/index.es.js.map +1 -1
- package/dist/components/data-display/infinite-table/index.cjs.js +1 -1
- package/dist/components/data-display/infinite-table/index.cjs.js.map +1 -1
- package/dist/components/data-display/infinite-table/index.es.js +188 -187
- package/dist/components/data-display/infinite-table/index.es.js.map +1 -1
- package/dist/components/data-display/infinite-table/useRowHeight.cjs.js +2 -0
- package/dist/components/data-display/infinite-table/useRowHeight.cjs.js.map +1 -0
- package/dist/components/data-display/infinite-table/useRowHeight.d.ts +15 -0
- package/dist/components/data-display/infinite-table/useRowHeight.es.js +24 -0
- package/dist/components/data-display/infinite-table/useRowHeight.es.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,71 +1,74 @@
|
|
|
1
|
-
import { jsx as l, jsxs as
|
|
2
|
-
import { escapeRegExp as
|
|
3
|
-
import { useTableConfig as
|
|
4
|
-
import { CustomScrollbar as
|
|
5
|
-
import { useRef as
|
|
6
|
-
import { VariableSizeList as
|
|
7
|
-
import { TableContext as
|
|
8
|
-
import { Row as
|
|
9
|
-
|
|
10
|
-
|
|
1
|
+
import { jsx as l, jsxs as G } from "react/jsx-runtime";
|
|
2
|
+
import { escapeRegExp as J } from "../../../../../utils/table.es.js";
|
|
3
|
+
import { useTableConfig as P } from "../../../../../providers/design-system-provider/hooks.es.js";
|
|
4
|
+
import { CustomScrollbar as K } from "../../../../layout/CustomScrollbar.es.js";
|
|
5
|
+
import { useRef as u, useContext as Q, useEffect as y, useCallback as p, forwardRef as X, useState as Z } from "react";
|
|
6
|
+
import { VariableSizeList as ee } from "react-window";
|
|
7
|
+
import { TableContext as te } from "../../context.es.js";
|
|
8
|
+
import { Row as re } from "./row.es.js";
|
|
9
|
+
import { useRowHeight as ne, getRowSlotHeight as se } from "../../useRowHeight.es.js";
|
|
10
|
+
const ce = ({ onScroll: s, forwardedRef: c, style: a, children: g, dispatchEvent: f }) => {
|
|
11
|
+
const [h, _] = Z(null), d = p(
|
|
11
12
|
(m) => {
|
|
12
|
-
const
|
|
13
|
-
if (
|
|
14
|
-
const
|
|
15
|
-
|
|
13
|
+
const E = m;
|
|
14
|
+
if (E) {
|
|
15
|
+
const S = E.getInstance;
|
|
16
|
+
_(S), c(S?.view ?? E.view ?? null);
|
|
16
17
|
} else
|
|
17
18
|
c(null);
|
|
18
19
|
},
|
|
19
20
|
[c]
|
|
20
21
|
);
|
|
21
|
-
return
|
|
22
|
-
|
|
23
|
-
}, [
|
|
24
|
-
},
|
|
25
|
-
const a =
|
|
26
|
-
return /* @__PURE__ */ l(
|
|
27
|
-
}),
|
|
28
|
-
const
|
|
29
|
-
tableWrapper:
|
|
30
|
-
tableBodyWrapper:
|
|
22
|
+
return y(() => {
|
|
23
|
+
h && f && f("SET_SCROLLBAR_REF_FOR_INFINITY_TABLE", { scrollbarsInstance: h });
|
|
24
|
+
}, [h, f]), /* @__PURE__ */ l(K, { ref: d, style: { ...a, overflow: "hidden" }, onScroll: s, renderViewClassName: "!h-[calc(100%+5px)]", children: g });
|
|
25
|
+
}, oe = X((s, c) => {
|
|
26
|
+
const a = P();
|
|
27
|
+
return /* @__PURE__ */ l(ce, { ...s, forwardedRef: c, dispatchEvent: a?.dispatchEvent });
|
|
28
|
+
}), me = ({ rows: s, prepareRow: c, isLoading: a, onScroll: g, columns: f, width: h, height: _, onScrolling: d, level: m = 0, allowAstarSearch: E = !1 }) => {
|
|
29
|
+
const S = u(null), x = u(null), C = P(), {
|
|
30
|
+
tableWrapper: V,
|
|
31
|
+
tableBodyWrapper: j,
|
|
31
32
|
search: o,
|
|
32
33
|
expandedRows: R,
|
|
33
|
-
setActiveInlineEdit:
|
|
34
|
-
activeInlineEdit:
|
|
35
|
-
closeCurrencyDropdown:
|
|
36
|
-
currencyDropdownConfig:
|
|
37
|
-
} =
|
|
38
|
-
|
|
39
|
-
if (
|
|
40
|
-
return
|
|
34
|
+
setActiveInlineEdit: L,
|
|
35
|
+
activeInlineEdit: O,
|
|
36
|
+
closeCurrencyDropdown: W,
|
|
37
|
+
currencyDropdownConfig: $
|
|
38
|
+
} = Q(te), w = u(C);
|
|
39
|
+
w.current = C, y(() => {
|
|
40
|
+
if (w.current?.onEvent)
|
|
41
|
+
return w.current.onEvent("SET_SCROLLBAR_REF_FOR_INFINITY_TABLE", (e) => {
|
|
41
42
|
const { scrollbarsInstance: t } = e;
|
|
42
|
-
|
|
43
|
+
S.current = t;
|
|
43
44
|
});
|
|
44
45
|
}, [C?.onEvent]);
|
|
45
|
-
const I =
|
|
46
|
-
|
|
47
|
-
if (
|
|
48
|
-
return
|
|
46
|
+
const I = u(null);
|
|
47
|
+
y(() => {
|
|
48
|
+
if (w.current?.onEvent)
|
|
49
|
+
return w.current.onEvent("SCROLL_TO_TABLE_ROW", (e) => {
|
|
49
50
|
const { rowIndex: t } = e;
|
|
50
51
|
I.current && typeof t == "number" && I.current.scrollToItem(t, "center");
|
|
51
52
|
});
|
|
52
53
|
}, [C?.onEvent]);
|
|
53
|
-
const
|
|
54
|
-
|
|
54
|
+
const T = u({}), D = ne(), b = se(D), A = u(b);
|
|
55
|
+
A.current = b;
|
|
56
|
+
const N = p((e, t) => 0, [R]), k = p(() => {
|
|
57
|
+
const e = { ...T.current };
|
|
55
58
|
for (const t of s) {
|
|
56
|
-
const
|
|
57
|
-
if (R[
|
|
58
|
-
const
|
|
59
|
-
e[t.index] =
|
|
59
|
+
const r = t.original.id;
|
|
60
|
+
if (R[r]?.isOpen) {
|
|
61
|
+
const v = N(r, 0);
|
|
62
|
+
e[t.index] = b * (v + 1);
|
|
60
63
|
} else
|
|
61
|
-
e[t.index] =
|
|
64
|
+
e[t.index] = b * 1;
|
|
62
65
|
}
|
|
63
|
-
|
|
64
|
-
}, [R, s,
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
}, [
|
|
68
|
-
const
|
|
66
|
+
T.current = e, I.current?.resetAfterIndex(0);
|
|
67
|
+
}, [R, s, N, b]);
|
|
68
|
+
y(() => {
|
|
69
|
+
k();
|
|
70
|
+
}, [k]);
|
|
71
|
+
const M = p((e) => T.current[e] || A.current, []), z = p(
|
|
69
72
|
(e) => {
|
|
70
73
|
a || e && (x.current && x.current.disconnect(), x.current = new IntersectionObserver(
|
|
71
74
|
(t) => {
|
|
@@ -75,93 +78,93 @@ const ee = ({ onScroll: s, forwardedRef: c, style: a, children: g, dispatchEvent
|
|
|
75
78
|
), x.current.observe(e));
|
|
76
79
|
},
|
|
77
80
|
[a, g, s.length]
|
|
78
|
-
),
|
|
81
|
+
), Y = (e) => e.split(/(<span[^>]*>.*?<\/span>)/g).map((t, r) => {
|
|
79
82
|
if (t.startsWith("<span")) {
|
|
80
|
-
const
|
|
81
|
-
return /* @__PURE__ */ l("span", { className: "bg-yellow-300 dark:bg-primary-100 dark:text-black-900", children:
|
|
83
|
+
const n = t.replace(/<[^>]+>/g, "");
|
|
84
|
+
return /* @__PURE__ */ l("span", { className: "bg-yellow-300 dark:bg-primary-100 dark:text-black-900", children: n }, r);
|
|
82
85
|
}
|
|
83
|
-
return /* @__PURE__ */ l("span", { children: t },
|
|
84
|
-
}),
|
|
86
|
+
return /* @__PURE__ */ l("span", { children: t }, r);
|
|
87
|
+
}), B = p((e) => {
|
|
85
88
|
if (!o || !e || typeof e != "string" && typeof e != "number") return e;
|
|
86
|
-
const t =
|
|
89
|
+
const t = J(o);
|
|
87
90
|
if (o.includes("*")) {
|
|
88
|
-
const
|
|
89
|
-
let
|
|
91
|
+
const r = o.replace(/[.+?^${}()|[\]\\]/g, "\\$&");
|
|
92
|
+
let n;
|
|
90
93
|
if (o.startsWith("*") && o.endsWith("*")) {
|
|
91
|
-
const i =
|
|
92
|
-
|
|
94
|
+
const i = r.slice(1, -1).replace(/\*/g, ".*");
|
|
95
|
+
n = new RegExp(`(${i})`, "gi");
|
|
93
96
|
} else if (o.startsWith("*")) {
|
|
94
|
-
const i =
|
|
95
|
-
|
|
97
|
+
const i = r.slice(1).replace(/\*/g, ".*");
|
|
98
|
+
n = new RegExp(`(${i})$`, "gi");
|
|
96
99
|
} else if (o.endsWith("*")) {
|
|
97
|
-
const i =
|
|
98
|
-
|
|
100
|
+
const i = r.slice(0, -1).replace(/\*/g, ".*");
|
|
101
|
+
n = new RegExp(`^(${i})`, "gi");
|
|
99
102
|
} else {
|
|
100
|
-
const i =
|
|
101
|
-
|
|
103
|
+
const i = r.replace(/\*/g, ".*");
|
|
104
|
+
n = new RegExp(`^(${i})$`, "gi");
|
|
102
105
|
}
|
|
103
|
-
const
|
|
104
|
-
return /* @__PURE__ */ l("span", { children:
|
|
106
|
+
const v = e?.toString().replace(n, (i) => `<span class="highlight">${i}</span>`);
|
|
107
|
+
return /* @__PURE__ */ l("span", { children: Y(v) });
|
|
105
108
|
} else {
|
|
106
|
-
const
|
|
107
|
-
return /* @__PURE__ */
|
|
108
|
-
|
|
109
|
-
/* @__PURE__ */ l("span", { className: "bg-yellow-300 dark:bg-primary-100 dark:text-black-900", children:
|
|
110
|
-
|
|
109
|
+
const r = new RegExp(`(${t?.trim()})`, "gi"), n = e?.toString()?.split(r);
|
|
110
|
+
return /* @__PURE__ */ G("span", { className: "overflow-clip text-ellipsis", children: [
|
|
111
|
+
n[0],
|
|
112
|
+
/* @__PURE__ */ l("span", { className: "bg-yellow-300 dark:bg-primary-100 dark:text-black-900", children: n[1] }),
|
|
113
|
+
n?.slice(2)?.join("")
|
|
111
114
|
] });
|
|
112
115
|
}
|
|
113
|
-
}, [o]),
|
|
116
|
+
}, [o]), q = p(
|
|
114
117
|
({ index: e, style: t }) => {
|
|
115
|
-
const
|
|
116
|
-
if (!
|
|
117
|
-
const
|
|
118
|
-
return c(
|
|
119
|
-
|
|
118
|
+
const r = s[e];
|
|
119
|
+
if (!r) return /* @__PURE__ */ l("span", { children: "Loading" });
|
|
120
|
+
const n = !a && e >= s.length - 6;
|
|
121
|
+
return c(r), /* @__PURE__ */ l(
|
|
122
|
+
re,
|
|
120
123
|
{
|
|
121
|
-
row:
|
|
122
|
-
isLastRow:
|
|
123
|
-
lastRow:
|
|
124
|
+
row: r,
|
|
125
|
+
isLastRow: n,
|
|
126
|
+
lastRow: z,
|
|
124
127
|
prepareRow: c,
|
|
125
|
-
highlightSubstring:
|
|
128
|
+
highlightSubstring: B,
|
|
126
129
|
index: e,
|
|
127
130
|
style: t,
|
|
128
131
|
rowsLength: s.length,
|
|
129
|
-
level: m ||
|
|
132
|
+
level: m || r?.original?.__level,
|
|
130
133
|
columns: f,
|
|
131
134
|
expandedRows: R,
|
|
132
135
|
rows: s
|
|
133
136
|
}
|
|
134
137
|
);
|
|
135
138
|
},
|
|
136
|
-
[f, s, a,
|
|
137
|
-
),
|
|
138
|
-
|
|
139
|
-
const
|
|
140
|
-
|
|
141
|
-
const
|
|
139
|
+
[f, s, a, z, c, R, B, m]
|
|
140
|
+
), F = u(O);
|
|
141
|
+
F.current = O;
|
|
142
|
+
const H = u(!!$);
|
|
143
|
+
H.current = !!$;
|
|
144
|
+
const U = p(
|
|
142
145
|
(e) => {
|
|
143
|
-
e.scrollUpdateWasRequested || (
|
|
146
|
+
e.scrollUpdateWasRequested || (F.current && L?.(null), H.current && W?.()), d && d(e);
|
|
144
147
|
},
|
|
145
|
-
[
|
|
148
|
+
[d, L, W]
|
|
146
149
|
);
|
|
147
150
|
return /* @__PURE__ */ l(
|
|
148
|
-
|
|
151
|
+
ee,
|
|
149
152
|
{
|
|
150
|
-
outerElementType:
|
|
151
|
-
width:
|
|
152
|
-
height:
|
|
153
|
+
outerElementType: oe,
|
|
154
|
+
width: h - 2,
|
|
155
|
+
height: _ - 2,
|
|
153
156
|
ref: I,
|
|
154
|
-
innerElementType: m ?
|
|
157
|
+
innerElementType: m ? j : V,
|
|
155
158
|
itemCount: s.length,
|
|
156
|
-
itemSize:
|
|
159
|
+
itemSize: M,
|
|
157
160
|
layout: "vertical",
|
|
158
161
|
overscanCount: 20,
|
|
159
|
-
onScroll:
|
|
160
|
-
children:
|
|
162
|
+
onScroll: U,
|
|
163
|
+
children: q
|
|
161
164
|
}
|
|
162
165
|
);
|
|
163
166
|
};
|
|
164
167
|
export {
|
|
165
|
-
|
|
168
|
+
me as Rows
|
|
166
169
|
};
|
|
167
170
|
//# sourceMappingURL=index.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","sources":["../../../../../../src/components/data-display/infinite-table/body/rows/index.tsx"],"sourcesContent":["import { escapeRegExp } from '../../../../../utils/table';\nimport { useTableConfig } from '../../../../../providers/design-system-provider/hooks';\nimport { CustomScrollbar } from '../../../../layout/CustomScrollbar';\nimport React, { forwardRef, useCallback, useContext, useEffect, useRef, useState } from 'react';\nimport { VariableSizeList } from 'react-window';\nimport type { ListOnScrollProps } from 'react-window';\n\nimport { TableContext } from '../../context';\nimport { Row } from './row';\n\ninterface TableRow {\n original: Record<string, unknown>;\n index: number;\n [key: string]: unknown;\n}\n\ninterface CustomScrollbarsProps {\n onScroll?: (e: React.UIEvent) => void;\n forwardedRef: (node: HTMLElement | null) => void;\n style?: React.CSSProperties;\n children?: React.ReactNode;\n dispatchEvent?: (eventName: string, payload: Record<string, unknown>) => void;\n}\n\nconst CustomScrollbars = ({ onScroll, forwardedRef, style, children, dispatchEvent }: CustomScrollbarsProps) => {\n const [scrollbarsInstance, setScrollbarInstance] = useState<unknown>(null);\n const refSetter = useCallback(\n (scrollbarsRef: unknown) => {\n const ref = scrollbarsRef as { getInstance?: { view?: HTMLElement }; view?: HTMLElement } | null;\n if (ref) {\n const instance = ref.getInstance;\n setScrollbarInstance(instance);\n forwardedRef(instance?.view ?? ref.view ?? null);\n } else {\n forwardedRef(null);\n }\n },\n [forwardedRef],\n );\n\n useEffect(() => {\n if (scrollbarsInstance && dispatchEvent) {\n dispatchEvent('SET_SCROLLBAR_REF_FOR_INFINITY_TABLE', { scrollbarsInstance });\n }\n }, [scrollbarsInstance, dispatchEvent]);\n\n return (\n <CustomScrollbar ref={refSetter} style={{ ...style, overflow: 'hidden' }} onScroll={onScroll} renderViewClassName='!h-[calc(100%+5px)]'>\n {children}\n </CustomScrollbar>\n );\n};\n\nconst CustomScrollbarsVirtualList = forwardRef((props: Record<string, unknown>, ref: React.Ref<HTMLElement>) => {\n const tableConfig = useTableConfig();\n return <CustomScrollbars {...(props as unknown as CustomScrollbarsProps)} forwardedRef={ref as (node: HTMLElement | null) => void} dispatchEvent={tableConfig?.dispatchEvent} />;\n});\n\ninterface RowsProps {\n rows: TableRow[];\n prepareRow: (row: TableRow) => void;\n isLoading: boolean;\n onScroll?: () => void;\n columns: unknown[];\n width: number;\n height: number;\n onScrolling?: (value: ListOnScrollProps) => void;\n level?: number;\n allowAstarSearch?: boolean;\n}\n\nexport const Rows = ({ rows, prepareRow, isLoading, onScroll, columns, width, height, onScrolling, level = 0, allowAstarSearch = false }: RowsProps) => {\n void allowAstarSearch;\n const scrollbarRef = useRef<unknown>(null);\n const observer = useRef<IntersectionObserver | null>(null);\n const tableConfig = useTableConfig();\n const {\n tableWrapper,\n tableBodyWrapper,\n search,\n expandedRows,\n setActiveInlineEdit,\n activeInlineEdit,\n closeCurrencyDropdown,\n currencyDropdownConfig,\n } = useContext(TableContext);\n\n const tableConfigRef = useRef(tableConfig);\n tableConfigRef.current = tableConfig;\n\n useEffect(() => {\n if (!tableConfigRef.current?.onEvent) return;\n return tableConfigRef.current.onEvent('SET_SCROLLBAR_REF_FOR_INFINITY_TABLE', (payload: unknown) => {\n const { scrollbarsInstance } = payload as { scrollbarsInstance: unknown };\n scrollbarRef.current = scrollbarsInstance;\n });\n }, [tableConfig?.onEvent]);\n\n const listRef = useRef<VariableSizeList>(null);\n\n useEffect(() => {\n if (!tableConfigRef.current?.onEvent) return;\n return tableConfigRef.current.onEvent('SCROLL_TO_TABLE_ROW', (payload: unknown) => {\n const { rowIndex } = payload as { rowIndex: number };\n if (listRef.current && typeof rowIndex === 'number') {\n listRef.current.scrollToItem(rowIndex, 'center');\n }\n });\n }, [tableConfig?.onEvent]);\n\n const sizeMap = useRef<Record<number, number>>({});\n\n const calculateRowHeightWithChildren = useCallback((rowId: string | number, rowCounts: number): number => {\n return 0;\n\n const children = expandedRows[rowId];\n if (!children?.isOpen) return rowCounts;\n if (children?.isOpen) {\n rowCounts += children.data.length;\n for (const child of children.data) {\n rowCounts = calculateRowHeightWithChildren(child.id, rowCounts);\n }\n }\n return rowCounts;\n }, [expandedRows]);\n\n const setMultipleRowSize = useCallback(() => {\n const newSizeMap: Record<number, number> = { ...sizeMap.current };\n\n for (const row of rows) {\n const rowId = row.original.id as string | number;\n const children = expandedRows[rowId];\n if (children?.isOpen) {\n const additionalRowCounts = calculateRowHeightWithChildren(rowId, 0);\n newSizeMap[row.index] = (40 + 1) * (additionalRowCounts + 1);\n } else {\n newSizeMap[row.index] = (40 + 1) * 1;\n }\n }\n\n sizeMap.current = newSizeMap;\n listRef.current?.resetAfterIndex(0);\n }, [expandedRows, rows, calculateRowHeightWithChildren]);\n\n useEffect(() => {\n setMultipleRowSize();\n }, [setMultipleRowSize]);\n\n const getSize = useCallback((index: number) => {\n return sizeMap.current[index] || 40 + 1;\n }, []);\n\n const lastRow = useCallback(\n (node: HTMLElement | null) => {\n if (isLoading) return;\n if (!node) return;\n if (observer.current) observer.current.disconnect();\n observer.current = new IntersectionObserver(\n (entries) => {\n if (entries[0].isIntersecting) {\n if (onScroll) onScroll();\n }\n },\n { threshold: 0.00001 },\n );\n observer.current.observe(node);\n },\n [isLoading, onScroll, rows.length],\n );\n\n const parseString = (input: string) =>\n input.split(/(<span[^>]*>.*?<\\/span>)/g).map((segment: string, index: number) => {\n if (segment.startsWith('<span')) {\n const value = segment.replace(/<[^>]+>/g, '');\n return (\n <span key={index} className='bg-yellow-300 dark:bg-primary-100 dark:text-black-900'>\n {value}\n </span>\n );\n }\n return <span key={index}>{segment}</span>;\n });\n\n const highlightSubstring = useCallback((value: string | number | null | undefined): JSX.Element | string | number | null | undefined => {\n if (!search) return value;\n if (!value || (typeof value !== 'string' && typeof value !== 'number')) return value;\n const escapedSearch = escapeRegExp(search);\n\n if (search.includes('*')) {\n const escapedPattern = search.replace(/[.+?^${}()|[\\]\\\\]/g, '\\\\$&');\n let regex;\n if (search.startsWith('*') && search.endsWith('*')) {\n const middlePattern = escapedPattern.slice(1, -1).replace(/\\*/g, '.*');\n regex = new RegExp(`(${middlePattern})`, 'gi');\n } else if (search.startsWith('*')) {\n const endPattern = escapedPattern.slice(1).replace(/\\*/g, '.*');\n regex = new RegExp(`(${endPattern})$`, 'gi');\n } else if (search.endsWith('*')) {\n const startPattern = escapedPattern.slice(0, -1).replace(/\\*/g, '.*');\n regex = new RegExp(`^(${startPattern})`, 'gi');\n } else {\n const exactPattern = escapedPattern.replace(/\\*/g, '.*');\n regex = new RegExp(`^(${exactPattern})$`, 'gi');\n }\n\n const highlightedText = value?.toString().replace(regex, (match) => `<span class=\"highlight\">${match}</span>`);\n return <span>{parseString(highlightedText)}</span>;\n } else {\n const regex = new RegExp(`(${escapedSearch?.trim()})`, 'gi');\n const searchValue = value?.toString()?.split(regex);\n return (\n <span className='overflow-clip text-ellipsis'>\n {searchValue[0]}\n <span className='bg-yellow-300 dark:bg-primary-100 dark:text-black-900'>{searchValue[1]}</span>\n {searchValue?.slice(2)?.join('')}\n </span>\n );\n }\n }, [search]);\n\n const RenderRow = useCallback(\n ({ index, style }: { index: number; style: React.CSSProperties }) => {\n const row = rows[index];\n if (!row) return <span>Loading</span>;\n const isLastRow = !isLoading && index >= rows.length - 6;\n prepareRow(row);\n\n return (\n <Row\n {...({\n row,\n isLastRow,\n lastRow,\n prepareRow,\n highlightSubstring,\n index,\n style,\n rowsLength: rows.length,\n level: level || row?.original?.__level,\n columns,\n expandedRows,\n rows,\n } as unknown as React.ComponentProps<typeof Row>)}\n />\n );\n },\n [columns, rows, isLoading, lastRow, prepareRow, expandedRows, highlightSubstring, level],\n );\n\n const activeInlineEditRef = useRef(activeInlineEdit);\n activeInlineEditRef.current = activeInlineEdit;\n\n const currencyDropdownOpenRef = useRef(!!currencyDropdownConfig);\n currencyDropdownOpenRef.current = !!currencyDropdownConfig;\n\n const handleScroll = useCallback(\n (value: ListOnScrollProps) => {\n if (!value.scrollUpdateWasRequested) {\n if (activeInlineEditRef.current) setActiveInlineEdit?.(null);\n if (currencyDropdownOpenRef.current) closeCurrencyDropdown?.();\n }\n if (onScrolling) onScrolling(value);\n },\n [onScrolling, setActiveInlineEdit, closeCurrencyDropdown],\n );\n\n return (\n <VariableSizeList\n outerElementType={CustomScrollbarsVirtualList}\n width={width - 2}\n height={height - 2}\n ref={listRef}\n innerElementType={level ? tableBodyWrapper : tableWrapper}\n itemCount={rows.length}\n itemSize={getSize}\n layout='vertical'\n overscanCount={20}\n onScroll={handleScroll}\n >\n {RenderRow}\n </VariableSizeList>\n );\n};\n"],"names":["CustomScrollbars","onScroll","forwardedRef","style","children","dispatchEvent","scrollbarsInstance","setScrollbarInstance","useState","refSetter","useCallback","scrollbarsRef","ref","instance","useEffect","jsx","CustomScrollbar","CustomScrollbarsVirtualList","forwardRef","props","tableConfig","useTableConfig","Rows","rows","prepareRow","isLoading","columns","width","height","onScrolling","level","allowAstarSearch","scrollbarRef","useRef","observer","tableWrapper","tableBodyWrapper","search","expandedRows","setActiveInlineEdit","activeInlineEdit","closeCurrencyDropdown","currencyDropdownConfig","useContext","TableContext","tableConfigRef","payload","listRef","rowIndex","sizeMap","calculateRowHeightWithChildren","rowId","rowCounts","setMultipleRowSize","newSizeMap","row","additionalRowCounts","getSize","index","lastRow","node","entries","parseString","input","segment","value","highlightSubstring","escapedSearch","escapeRegExp","escapedPattern","regex","middlePattern","endPattern","startPattern","exactPattern","highlightedText","match","searchValue","jsxs","RenderRow","isLastRow","Row","activeInlineEditRef","currencyDropdownOpenRef","handleScroll","VariableSizeList"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../../../../../../src/components/data-display/infinite-table/body/rows/index.tsx"],"sourcesContent":["import { escapeRegExp } from '../../../../../utils/table';\nimport { useTableConfig } from '../../../../../providers/design-system-provider/hooks';\nimport { CustomScrollbar } from '../../../../layout/CustomScrollbar';\nimport React, { forwardRef, useCallback, useContext, useEffect, useRef, useState } from 'react';\nimport { VariableSizeList } from 'react-window';\nimport type { ListOnScrollProps } from 'react-window';\n\nimport { TableContext } from '../../context';\nimport { Row } from './row';\nimport { getRowSlotHeight, useRowHeight } from '../../useRowHeight';\n\ninterface TableRow {\n original: Record<string, unknown>;\n index: number;\n [key: string]: unknown;\n}\n\ninterface CustomScrollbarsProps {\n onScroll?: (e: React.UIEvent) => void;\n forwardedRef: (node: HTMLElement | null) => void;\n style?: React.CSSProperties;\n children?: React.ReactNode;\n dispatchEvent?: (eventName: string, payload: Record<string, unknown>) => void;\n}\n\nconst CustomScrollbars = ({ onScroll, forwardedRef, style, children, dispatchEvent }: CustomScrollbarsProps) => {\n const [scrollbarsInstance, setScrollbarInstance] = useState<unknown>(null);\n const refSetter = useCallback(\n (scrollbarsRef: unknown) => {\n const ref = scrollbarsRef as { getInstance?: { view?: HTMLElement }; view?: HTMLElement } | null;\n if (ref) {\n const instance = ref.getInstance;\n setScrollbarInstance(instance);\n forwardedRef(instance?.view ?? ref.view ?? null);\n } else {\n forwardedRef(null);\n }\n },\n [forwardedRef],\n );\n\n useEffect(() => {\n if (scrollbarsInstance && dispatchEvent) {\n dispatchEvent('SET_SCROLLBAR_REF_FOR_INFINITY_TABLE', { scrollbarsInstance });\n }\n }, [scrollbarsInstance, dispatchEvent]);\n\n return (\n <CustomScrollbar ref={refSetter} style={{ ...style, overflow: 'hidden' }} onScroll={onScroll} renderViewClassName='!h-[calc(100%+5px)]'>\n {children}\n </CustomScrollbar>\n );\n};\n\nconst CustomScrollbarsVirtualList = forwardRef((props: Record<string, unknown>, ref: React.Ref<HTMLElement>) => {\n const tableConfig = useTableConfig();\n return <CustomScrollbars {...(props as unknown as CustomScrollbarsProps)} forwardedRef={ref as (node: HTMLElement | null) => void} dispatchEvent={tableConfig?.dispatchEvent} />;\n});\n\ninterface RowsProps {\n rows: TableRow[];\n prepareRow: (row: TableRow) => void;\n isLoading: boolean;\n onScroll?: () => void;\n columns: unknown[];\n width: number;\n height: number;\n onScrolling?: (value: ListOnScrollProps) => void;\n level?: number;\n allowAstarSearch?: boolean;\n}\n\nexport const Rows = ({ rows, prepareRow, isLoading, onScroll, columns, width, height, onScrolling, level = 0, allowAstarSearch = false }: RowsProps) => {\n void allowAstarSearch;\n const scrollbarRef = useRef<unknown>(null);\n const observer = useRef<IntersectionObserver | null>(null);\n const tableConfig = useTableConfig();\n const {\n tableWrapper,\n tableBodyWrapper,\n search,\n expandedRows,\n setActiveInlineEdit,\n activeInlineEdit,\n closeCurrencyDropdown,\n currencyDropdownConfig,\n } = useContext(TableContext);\n\n const tableConfigRef = useRef(tableConfig);\n tableConfigRef.current = tableConfig;\n\n useEffect(() => {\n if (!tableConfigRef.current?.onEvent) return;\n return tableConfigRef.current.onEvent('SET_SCROLLBAR_REF_FOR_INFINITY_TABLE', (payload: unknown) => {\n const { scrollbarsInstance } = payload as { scrollbarsInstance: unknown };\n scrollbarRef.current = scrollbarsInstance;\n });\n }, [tableConfig?.onEvent]);\n\n const listRef = useRef<VariableSizeList>(null);\n\n useEffect(() => {\n if (!tableConfigRef.current?.onEvent) return;\n return tableConfigRef.current.onEvent('SCROLL_TO_TABLE_ROW', (payload: unknown) => {\n const { rowIndex } = payload as { rowIndex: number };\n if (listRef.current && typeof rowIndex === 'number') {\n listRef.current.scrollToItem(rowIndex, 'center');\n }\n });\n }, [tableConfig?.onEvent]);\n\n const sizeMap = useRef<Record<number, number>>({});\n\n // Row height tracks the `h-row` viewport clamp; keep a ref so `getSize` (stable\n // identity for react-window) always reads the latest measured value.\n const rowHeight = useRowHeight();\n const rowSlotHeight = getRowSlotHeight(rowHeight);\n const rowSlotHeightRef = useRef(rowSlotHeight);\n rowSlotHeightRef.current = rowSlotHeight;\n\n const calculateRowHeightWithChildren = useCallback((rowId: string | number, rowCounts: number): number => {\n return 0;\n\n const children = expandedRows[rowId];\n if (!children?.isOpen) return rowCounts;\n if (children?.isOpen) {\n rowCounts += children.data.length;\n for (const child of children.data) {\n rowCounts = calculateRowHeightWithChildren(child.id, rowCounts);\n }\n }\n return rowCounts;\n }, [expandedRows]);\n\n const setMultipleRowSize = useCallback(() => {\n const newSizeMap: Record<number, number> = { ...sizeMap.current };\n\n for (const row of rows) {\n const rowId = row.original.id as string | number;\n const children = expandedRows[rowId];\n if (children?.isOpen) {\n const additionalRowCounts = calculateRowHeightWithChildren(rowId, 0);\n newSizeMap[row.index] = rowSlotHeight * (additionalRowCounts + 1);\n } else {\n newSizeMap[row.index] = rowSlotHeight * 1;\n }\n }\n\n sizeMap.current = newSizeMap;\n listRef.current?.resetAfterIndex(0);\n }, [expandedRows, rows, calculateRowHeightWithChildren, rowSlotHeight]);\n\n useEffect(() => {\n setMultipleRowSize();\n }, [setMultipleRowSize]);\n\n const getSize = useCallback((index: number) => {\n return sizeMap.current[index] || rowSlotHeightRef.current;\n }, []);\n\n const lastRow = useCallback(\n (node: HTMLElement | null) => {\n if (isLoading) return;\n if (!node) return;\n if (observer.current) observer.current.disconnect();\n observer.current = new IntersectionObserver(\n (entries) => {\n if (entries[0].isIntersecting) {\n if (onScroll) onScroll();\n }\n },\n { threshold: 0.00001 },\n );\n observer.current.observe(node);\n },\n [isLoading, onScroll, rows.length],\n );\n\n const parseString = (input: string) =>\n input.split(/(<span[^>]*>.*?<\\/span>)/g).map((segment: string, index: number) => {\n if (segment.startsWith('<span')) {\n const value = segment.replace(/<[^>]+>/g, '');\n return (\n <span key={index} className='bg-yellow-300 dark:bg-primary-100 dark:text-black-900'>\n {value}\n </span>\n );\n }\n return <span key={index}>{segment}</span>;\n });\n\n const highlightSubstring = useCallback((value: string | number | null | undefined): JSX.Element | string | number | null | undefined => {\n if (!search) return value;\n if (!value || (typeof value !== 'string' && typeof value !== 'number')) return value;\n const escapedSearch = escapeRegExp(search);\n\n if (search.includes('*')) {\n const escapedPattern = search.replace(/[.+?^${}()|[\\]\\\\]/g, '\\\\$&');\n let regex;\n if (search.startsWith('*') && search.endsWith('*')) {\n const middlePattern = escapedPattern.slice(1, -1).replace(/\\*/g, '.*');\n regex = new RegExp(`(${middlePattern})`, 'gi');\n } else if (search.startsWith('*')) {\n const endPattern = escapedPattern.slice(1).replace(/\\*/g, '.*');\n regex = new RegExp(`(${endPattern})$`, 'gi');\n } else if (search.endsWith('*')) {\n const startPattern = escapedPattern.slice(0, -1).replace(/\\*/g, '.*');\n regex = new RegExp(`^(${startPattern})`, 'gi');\n } else {\n const exactPattern = escapedPattern.replace(/\\*/g, '.*');\n regex = new RegExp(`^(${exactPattern})$`, 'gi');\n }\n\n const highlightedText = value?.toString().replace(regex, (match) => `<span class=\"highlight\">${match}</span>`);\n return <span>{parseString(highlightedText)}</span>;\n } else {\n const regex = new RegExp(`(${escapedSearch?.trim()})`, 'gi');\n const searchValue = value?.toString()?.split(regex);\n return (\n <span className='overflow-clip text-ellipsis'>\n {searchValue[0]}\n <span className='bg-yellow-300 dark:bg-primary-100 dark:text-black-900'>{searchValue[1]}</span>\n {searchValue?.slice(2)?.join('')}\n </span>\n );\n }\n }, [search]);\n\n const RenderRow = useCallback(\n ({ index, style }: { index: number; style: React.CSSProperties }) => {\n const row = rows[index];\n if (!row) return <span>Loading</span>;\n const isLastRow = !isLoading && index >= rows.length - 6;\n prepareRow(row);\n\n return (\n <Row\n {...({\n row,\n isLastRow,\n lastRow,\n prepareRow,\n highlightSubstring,\n index,\n style,\n rowsLength: rows.length,\n level: level || row?.original?.__level,\n columns,\n expandedRows,\n rows,\n } as unknown as React.ComponentProps<typeof Row>)}\n />\n );\n },\n [columns, rows, isLoading, lastRow, prepareRow, expandedRows, highlightSubstring, level],\n );\n\n const activeInlineEditRef = useRef(activeInlineEdit);\n activeInlineEditRef.current = activeInlineEdit;\n\n const currencyDropdownOpenRef = useRef(!!currencyDropdownConfig);\n currencyDropdownOpenRef.current = !!currencyDropdownConfig;\n\n const handleScroll = useCallback(\n (value: ListOnScrollProps) => {\n if (!value.scrollUpdateWasRequested) {\n if (activeInlineEditRef.current) setActiveInlineEdit?.(null);\n if (currencyDropdownOpenRef.current) closeCurrencyDropdown?.();\n }\n if (onScrolling) onScrolling(value);\n },\n [onScrolling, setActiveInlineEdit, closeCurrencyDropdown],\n );\n\n return (\n <VariableSizeList\n outerElementType={CustomScrollbarsVirtualList}\n width={width - 2}\n height={height - 2}\n ref={listRef}\n innerElementType={level ? tableBodyWrapper : tableWrapper}\n itemCount={rows.length}\n itemSize={getSize}\n layout='vertical'\n overscanCount={20}\n onScroll={handleScroll}\n >\n {RenderRow}\n </VariableSizeList>\n );\n};\n"],"names":["CustomScrollbars","onScroll","forwardedRef","style","children","dispatchEvent","scrollbarsInstance","setScrollbarInstance","useState","refSetter","useCallback","scrollbarsRef","ref","instance","useEffect","jsx","CustomScrollbar","CustomScrollbarsVirtualList","forwardRef","props","tableConfig","useTableConfig","Rows","rows","prepareRow","isLoading","columns","width","height","onScrolling","level","allowAstarSearch","scrollbarRef","useRef","observer","tableWrapper","tableBodyWrapper","search","expandedRows","setActiveInlineEdit","activeInlineEdit","closeCurrencyDropdown","currencyDropdownConfig","useContext","TableContext","tableConfigRef","payload","listRef","rowIndex","sizeMap","rowHeight","useRowHeight","rowSlotHeight","getRowSlotHeight","rowSlotHeightRef","calculateRowHeightWithChildren","rowId","rowCounts","setMultipleRowSize","newSizeMap","row","additionalRowCounts","getSize","index","lastRow","node","entries","parseString","input","segment","value","highlightSubstring","escapedSearch","escapeRegExp","escapedPattern","regex","middlePattern","endPattern","startPattern","exactPattern","highlightedText","match","searchValue","jsxs","RenderRow","isLastRow","Row","activeInlineEditRef","currencyDropdownOpenRef","handleScroll","VariableSizeList"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),l=require("react"),pi=require("../../../../../constants/table.cjs.js"),$i=require("../../../../../providers/design-system-provider/hooks.cjs.js"),Mi=require("@dnd-kit/core"),wi=require("@dnd-kit/sortable"),ie=require("@dnd-kit/utilities"),Fi=require("@mui/icons-material"),ee=require("@mui/icons-material/AddRounded"),Ci=require("../../../../../_virtual/index.cjs.js"),ne=require("react-dom"),Ni=require("../../context.cjs.js"),te=require("../cell/ActionCell.cjs.js"),le=require("../cell/CheckboxCell.cjs.js"),ae=require("../cell/DataCell.cjs.js"),Hi=require("../../validateCell.cjs.js"),se=require("../cell/LoaderCell.cjs.js"),oe=require("../cell/PendingEditCell.cjs.js"),de=require("../cell/RowActionCell.cjs.js"),re=require("../cell/RowOptionsCell.cjs.js"),ge=({row:i,isLastRow:$,lastRow:w,highlightSubstring:ii,index:z,style:xi,level:e=0,expandedRows:c,rows:ei})=>{const{lastNonStickyColumnIndex:M,checkboxConfig:s,onRowClick:E,rowOptions:b,disableOptionsForRowIndex:F=null,getSumOfNextVisibleColumnWidth:ni,onRowEdit:H,inlineEditColumns:vi,tableActions:ti,dndSortableUtils:li,withSortable:f,withDraggable:N,getInnerRowData:ai,showNewItem:W,rawData:O,dragConfig:p,getFullRowDataOnClick:si,selectedRowId:r,rowWrapper:U,isCellClickDisabled:hi,rowAdditionalActions:j,hoverConfig:oi,addPendingEdit:D,removePendingEdit:P,fieldOperationLoading:di,clearRowPendingEdits:q,saveRowPendingEdits:K,pendingEdits:A}=l.useContext(Ni.TableContext),B=$i.useTableConfig(),ri=!!s,{activeInlineEdit:gi,setActiveInlineEdit:L}=l.useContext(Ni.TableContext),a=gi?.rowId===i.original.id?gi?.columnKey:null,u=!!a,ci=n=>{L?.(n===null?null:{rowId:String(i.original.id),columnKey:n})},[C,Y]=l.useState(null),[ui,_]=l.useState(null),[R,G]=l.useState(null),[x,S]=l.useState(!1),[y,J]=l.useState(!1),_i=l.useRef(null);l.useEffect(()=>{const n=_i.current,g=a;if(n&&!g){const h=A?.[i.original.id]?.[n];if(h){const d=i.cells?.find(m=>m.column?.key===n);if(d){const m=Hi.validateCellValue(h.value,d.column);!m.isValid&&D&&D(String(i.original.id),n,{...h,validationError:m.error})}}}_i.current=g??null},[a,i.original.id,i.cells,A,D]),l.useEffect(()=>{if(O){const n=String(i?.original?.id);G(O[n]?.[i?.cells[0].column.Header]||O[n]?.[0])}},[O,i?.original?.id,i?.cells]);const o=wi.useSortable({id:i.original.id,data:{...i.original},disabled:!f}),v=Mi.useDraggable({id:i.original.id,data:{...i.original},disabled:!!f}),{listeners:fi,transform:mi,setNodeRef:bi,isDragging:T,attributes:Ri,active:V,over:I,...Ui}=f?o:v,{setNodeRef:ji}=Mi.useDroppable({id:`table-file-dropzone-${i?.original?.id}`,data:{type:"table-file-dropzone",folderId:i?.original?.id,isFolder:i?.original?.type==="folder"}}),Ki={transform:ie.CSS.Transform.toString(mi),transition:f?Ui.transition:void 0,cursor:T?"grabbing":"grab",opacity:T?"0.5":"1"},Yi=()=>!V||!I||!f?!1:li?.checkOverEachItem?li.checkOverEachItem(V,I)&&!!I:V.data.current?.type!==I.data.current?.type&&!!I,Di=n=>{_(n.target.value)},Gi=()=>{di||ci(null)},Si=l.useRef(null),Ii=l.useCallback(n=>{Si.current=n},[]),Pi=l.useRef(B);Pi.current=B;const Bi=l.useCallback(()=>{q&&q(String(i.original.id))},[q,i.original.id]),Oi=l.useCallback(()=>{if(Si.current){const n=Si.current();if(!n.isValid)return;a&&n.value!==void 0&&D&&D(String(i.original.id),a,{value:n.value,originalValue:i.original[a],meta:n.meta||void 0})}else if(a){const n=i.cells?.find(g=>g.column?.key===a);if(n){const g=A?.[i.original.id]?.[a]?.value,h=g!==void 0?g:n.value,d=Hi.validateCellValue(h,n.column);if(!d.isValid){Pi.current?.showNotification?.("error",d.error||"Validation failed");return}}}K&&K(String(i.original.id))},[K,i.original,i.cells,a,D,A]),qi=(n,g)=>{const h={...i.original},d=n!==void 0?n:ui;a&&d!==void 0&&(h[a]=d,H&&H(h,z,a,d,g),P&&P(String(i.original.id),a)),Gi()},Ai=l.useRef(null),Li=(n,g,h,d)=>{if(!hi&&(n?.stopPropagation(),a!==d)){if(H){if(vi?.includes(d))ci(d),_(String(i.original[d]));else{const m=B?.getSystemMessage?.("notAllowedInlineEdit")||"Inline Edit is not allowed for this column";B?.showNotification?.("error",m)}return}if(E)E(g,h,i.original,ei?.map(m=>m.original)||[]);else if(!E&&s){const m=i.original.id,Zi={target:{checked:!s.checkedIds.includes(m)}};s.onItemCheck(Zi,m)}}},Ti=async()=>{S(!0),ai&&await ai(i?.original?.id,i?.original,!(c?.[i?.original?.id]?.isOpen??!1),i?.original?.__level||0),S(!1)},Ji=l.useMemo(()=>i.cells.filter(n=>n.column?.visible).map(n=>n.column?.width??0).reduce((n,g)=>n+g,0),[i.cells]),Q=l.useMemo(()=>p?.draggingOver&&p?.draggingOver===i?.original?.id,[p,i?.original?.id]),yi=l.useMemo(()=>Q?p?.dropPosition||"inside":null,[Q,p?.dropPosition]),X=!!(Q&&yi==="inside"),k=i?.original?.__rowMetadata||i?.original?._meta,Z=C!==i?.original?.id,ki=!i?.original?.__isLoading,Vi=!!(k?.__is_new||k?.__is_added||i?.original?.is_added||R?.is_added||k?.is_added||k?.is_new),Qi=!!(i?.original?.is_deleted||k?.__is_deleted||R?.is_deleted||k?.is_deleted),Xi=!!(i?.original?.is_modified||i?.original?.is_row_modified||k?.__is_modified||k?.__is_edited||R?.is_row_modified||k?.is_modified)&&!Vi,Ei=r!=null&&String(r)===String(i?.original?.id),zi=Ci({"bg-neutral-100 dark:bg-black-600":C===i?.original?.id&&!u,"bg-primary-100 dark:bg-primary-950":Ei&&Z&&!u,"bg-primary-50 dark:bg-black-700":!i?.original?.is_read&&W&&!i?.original?.__isLoading&&Z&&!u,"bg-warning-50 dark:bg-warning-975":Xi&&ki&&Z&&!u,"bg-error-50 dark:bg-error-975":Qi&&ki&&Z&&!u,"bg-success-50 dark:bg-success-975":Vi&&ki&&Z&&!u,"bg-primary-50 dark:bg-primary-900":u,[pi.getTableRowBgClassNamesByStatus[i?.original?.__rowBgStatus]]:i?.original?.__rowBgStatus&&!u});return l.createElement("tr",{...i.getRowProps(),ref:N||f?bi:null,key:i.original.id,"data-row-id":i.original.id,className:Ci(`text-neutral-900 dark:text-white cursor-pointer min-w-full relative ${s?.selectionDisabledRowIds?.includes(i?.original?.id)?"opacity-50":""} border-t`,T?"z-40":"",Yi()?"shadow-dnd-drop":"",N&&I&&I?.data?.current?.type==="table-file-dropzone"&&I?.data?.current?.folderId===i?.original?.id&&i?.original?.type==="folder"?"bg-primary-50":"",i?.original?.isDefinedActionRow?"bg-primary-50":"",X?"z-50":"",zi||"bg-white dark:bg-black-800"),style:{...xi,...f?Ki:{},width:"max-content"},...N||f?Ri:{},...N||f?fi:{}},X&&p?.dragOperation?t.jsx("div",{className:"absolute right-2 h-10 flex items-center z-20 pointer-events-none",children:t.jsx("div",{className:"bg-primary-200 px-2 py-1 rounded",children:p?.dragOperation==="COPY"?t.jsx(ee,{sx:{fontSize:12},className:"text-primary-700"}):t.jsx(Fi.SubdirectoryArrowLeftRounded,{sx:{fontSize:12},className:"text-primary-700"})})}):null,X&&!p?.dragOperation?t.jsx("div",{className:"absolute right-2 h-10 flex items-center z-20 pointer-events-none",children:t.jsx(Fi.SubdirectoryArrowLeftRounded,{sx:{fontSize:16},className:"text-primary-500"})}):null,Q&&yi==="before"&&!i?.original?.isDefinedActionRow?t.jsx("div",{className:"absolute -top-[1px] left-0 right-0 h-[2px] bg-primary-500 z-20 pointer-events-none",children:t.jsx("div",{className:"absolute left-0 top-1/2 -translate-y-1/2 w-2 h-2 rounded-full bg-primary-500"})}):null,Q&&yi==="after"&&!i?.original?.isDefinedActionRow?t.jsx("div",{className:"absolute -bottom-[1px] left-0 right-0 h-[2px] bg-primary-500 z-20 pointer-events-none",children:t.jsx("div",{className:"absolute left-0 top-1/2 -translate-y-1/2 w-2 h-2 rounded-full bg-primary-500"})}):null,i?.original?.isDefinedActionRow?t.jsx(te.ActionCell,{cells:i.cells,id:i?.original?.id,isCheckbox:s,level:e,name:i?.original?.name,onClick:i?.original?.onClick,rowHovering:C||"",isRoot:i?.original?.isRoot,totalWidth:Ji,row:i.original,uploadCell:i?.original?.uploadCell,disabled:i?.original?.disabled,disabledTooltip:i?.original?.disabledTooltip}):U?t.jsx(U,{data:i.original,setIsDraggingFile:J,children:t.jsx(Wi,{isDraggingOver:X,level:e,withDraggable:N,setDroppableNodeRef:ji,isLastRow:$,lastRow:w,isCheckbox:ri,checkboxConfig:s,row:i,rowHovering:C,tableActions:ti,disableOptionsForRowIndex:F,index:z,showNewItem:W,currentData:R,lastNonStickyColumnIndex:M,getSumOfNextVisibleColumnWidth:ni,toggleRowExpand:Ti,loadingExpand:x,cellRef:Ai,handleCellClick:Li,getFullRowDataOnClick:si,handleCellValueChange:Di,handleUpdateCellData:qi,handleRowCancelEdit:Bi,handleRowConfirmEdit:Oi,registerValidation:Ii,inlineEditing:a,isInlineEditing:u,setRowHovering:Y,highlightSubstring:ii,rowOptions:b,isDraggingFile:y,rowAdditionalActions:j,hoverConfig:oi,isSelected:Ei})}):t.jsx(Wi,{level:e,withDraggable:N,setDroppableNodeRef:ji,isLastRow:$,lastRow:w,isCheckbox:ri,checkboxConfig:s,row:i,rowHovering:C,tableActions:ti,disableOptionsForRowIndex:F,index:z,showNewItem:W,currentData:R,lastNonStickyColumnIndex:M,getSumOfNextVisibleColumnWidth:ni,toggleRowExpand:Ti,loadingExpand:x,cellRef:Ai,handleCellClick:Li,getFullRowDataOnClick:si,handleCellValueChange:Di,handleUpdateCellData:qi,handleRowCancelEdit:Bi,handleRowConfirmEdit:Oi,registerValidation:Ii,inlineEditing:a,isInlineEditing:u,setRowHovering:Y,highlightSubstring:ii,rowOptions:b,isDraggingFile:y,isDraggingOver:X,rowAdditionalActions:j,hoverConfig:oi,isSelected:Ei}))},Wi=({withDraggable:i,setDroppableNodeRef:$,isLastRow:w,lastRow:ii,isCheckbox:z,checkboxConfig:xi,row:e,rowHovering:c,tableActions:ei,disableOptionsForRowIndex:M,index:s,showNewItem:E,currentData:b,lastNonStickyColumnIndex:F,getSumOfNextVisibleColumnWidth:ni,toggleRowExpand:H,loadingExpand:vi,cellRef:ti,handleCellClick:li,getFullRowDataOnClick:f,handleCellValueChange:N,handleUpdateCellData:ai,handleRowCancelEdit:W,handleRowConfirmEdit:O,registerValidation:p,inlineEditing:si,isInlineEditing:r,setRowHovering:U,highlightSubstring:hi,rowOptions:j,level:oi,isDraggingFile:D,isDraggingOver:P,rowAdditionalActions:di,hoverConfig:q,isSelected:K})=>{const[A,B]=l.useState(!1),{getPendingEdit:ri,hasPendingEdit:gi,pendingEdits:L,tableHeaders:a,pendingEditsCount:u,scrollToCell:ci}=l.useContext(Ni.TableContext),C=L?.[e.original.id]&&Object.keys(L[e.original.id]).length>0,Y=(u??0)>0,ui=l.useMemo(()=>{if(Array.isArray(j))return j;if(typeof j=="function"){const o=j({...e.original,rowIndex:s});return Array.isArray(o)?o:[]}return[]},[j,e.original,s]),_=e?.original?.__rowMetadata||e?.original?._meta,R=c!==e?.original?.id,G=!e?.original?.__isLoading,x=!!(_?.__is_new||_?.__is_added||e?.original?.is_added||b?.is_added||_?.is_added||_?.is_new),S=!!(e?.original?.is_deleted||_?.__is_deleted||b?.is_deleted||_?.is_deleted),y=!!(e?.original?.is_modified||e?.original?.is_row_modified||_?.__is_modified||_?.__is_edited||b?.is_row_modified||_?.is_deleted)&&!x,J=K&&!r&&c!==e?.original?.id?"bg-primary-100 dark:bg-primary-950":void 0,_i=Ci({"border-l-[3px] border-l-success-400 dark:border-l-success-500":x&&G&&R&&!r,"border-l-[3px] border-l-error-400 dark:border-l-error-500":S&&G&&R&&!r,"border-l-[3px] border-l-warning-400 dark:border-l-warning-500":y&&G&&R&&!r});return t.jsx("div",{ref:i?$:null,className:P?"border-2 border-primary-400 dark:border-primary-500 rounded-sm":"",children:t.jsxs("div",{className:Ci("flex",_i),ref:w?ii:null,children:[Y&&t.jsx(oe.PendingEditCell,{rowId:String(e.original.id),rowIndex:s,pendingEdits:L,tableHeaders:a,rowHasPendingEdits:!!C,rowHovering:c!=null?String(c):void 0,isInlineEditing:r,is_read:!!e.original.is_read,is_modified:y,is_row_modified:!!e.original.is_row_modified,is_deleted:S,is_added:x,is_incomplete:e?.original?.status==="Incomplete",showNewItem:E,onScrollToCell:ci}),z&&t.jsx(le.CheckboxCell,{checkboxConfig:xi,id:String(e.original.id),rowHovering:c!=null?String(c):void 0,isDisabled:!!e?.original?.__isLoading,isDraggingOver:P,is_added:x,is_deleted:S,is_incomplete:e?.original?.status==="Incomplete",is_modified:y,is_read:!!e.original.is_read,is_row_modified:!!e.original.is_row_modified,showNewItem:E,currentData:b??{},bgColor:e?.original?.__rowBgStatus?pi.getTableRowBgClassNamesByStatus[e?.original?.__rowBgStatus]:J,isInlineEditing:r,hasPendingEditsColumn:Y,rowHasPendingEdits:C}),ei?t.jsx(de.RowActionCell,{tableActions:ei,disableOptionsForRowIndex:M??null,id:String(e.original.id),index:s,is_read:!!e?.original?.is_read,is_incomplete:e?.original?.status==="Incomplete",showNewItem:!!E,is_modified:y,is_row_modified:!!e?.original?.is_row_modified,is_deleted:S,currentData:b??{},is_added:x,rowData:e.original,rowHovering:c,isDisabled:!!e?.original?.__isLoading,bgColor:D?"bg-primary-50":e?.original?.__rowBgStatus?pi.getTableRowBgClassNamesByStatus[e?.original?.__rowBgStatus]:J,isInlineEditing:r,rowHasPendingEdits:C}):null,t.jsxs("div",{className:"relative flex-1",id:`row-${e.original.id}`,onMouseEnter:()=>B(!0),onMouseLeave:()=>B(!1),children:[e.cells.filter(o=>o?.column?.visible!==!1).map((o,v)=>{const fi=v===F?.(),mi=v===(F?.()??-1)+1,bi=o?.column?.sticky?ni?.(v)??0:0;if(e.original?.__isLoading)return t.jsx(se.LoaderCell,{cell:o,id:v,nextWidthSum:bi,isLastCell:fi,rowHovering:c,index:v,isFirstStickyCell:mi},v);const T=ri?.(String(e.original.id),o?.column?.key||""),Ri=gi?.(String(e.original.id),o?.column?.key||"");return t.jsx(ae.DataCell,{cell:o,rowHovering:c,isFirstStickyCell:mi,level:oi??0,toggleRowExpand:H,loadingExpand:vi,index:v,cellRef:ti,currentData:b,handleCellClick:V=>{V&&li(V,f?e.original:String(e.original.id),v,o?.column?.key||"")},handleCellValueChange:N,handleUpdateCellData:ai,registerValidation:p,id:e.original.id,inlineEditing:si,isInlineEditing:r,isLastCell:fi,is_incomplete:e?.original?.status==="Incomplete",is_added:x,is_deleted:S,is_modified:y,is_read:!!e.original.is_read,is_row_modified:!!e.original.is_row_modified,nextWidthSum:bi,setRowHovering:U,highlightSubstring:hi,isDraggingOver:P,isLoading:!!e?.original?.__isLoading,pendingEdit:T,hasPendingEdit:Ri,pendingValidationError:T?.validationError},o?.column?.key)}),q?.onHover&&A&&ne.createPortal(t.jsx("div",{className:"absolute top-full left-10 z-50 bg-white dark:bg-black-800 rounded-xl",children:q.onHover(e.original)}),document.getElementById(`row-${e.original.id}`))]}),(ui.length>0||!!di)&&t.jsx(re.RowOptionsCell,{rowId:e.original.id,rowOptions:ui,disableOption:M!==null||!!e?.original?.__isLoading,rowHovering:c,setRowHovering:U,is_read:!!e.original.is_read,showNewItem:!!E,is_modified:y,is_row_modified:!!e.original.is_row_modified,is_incomplete:e?.original?.status==="Incomplete",currentData:b??{},is_deleted:S,is_added:x,isDraggingOver:!!P,rowAdditionalActions:di,rowData:e.original,index:s,bgColor:e?.original?.__rowBgStatus?pi.getTableRowBgClassNamesByStatus[e?.original?.__rowBgStatus]:J,isInlineEditing:r,onConfirmEdit:O,onCancelEdit:W,rowHasPendingEdits:C})]})})};exports.Row=ge;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),l=require("react"),pi=require("../../../../../constants/table.cjs.js"),$i=require("../../../../../providers/design-system-provider/hooks.cjs.js"),Mi=require("@dnd-kit/core"),wi=require("@dnd-kit/sortable"),ie=require("@dnd-kit/utilities"),Fi=require("@mui/icons-material"),ee=require("@mui/icons-material/AddRounded"),Ci=require("../../../../../_virtual/index.cjs.js"),ne=require("react-dom"),Ni=require("../../context.cjs.js"),te=require("../cell/ActionCell.cjs.js"),le=require("../cell/CheckboxCell.cjs.js"),ae=require("../cell/DataCell.cjs.js"),Hi=require("../../validateCell.cjs.js"),se=require("../cell/LoaderCell.cjs.js"),oe=require("../cell/PendingEditCell.cjs.js"),de=require("../cell/RowActionCell.cjs.js"),re=require("../cell/RowOptionsCell.cjs.js"),ge=({row:i,isLastRow:$,lastRow:w,highlightSubstring:ii,index:z,style:xi,level:e=0,expandedRows:c,rows:ei})=>{const{lastNonStickyColumnIndex:M,checkboxConfig:s,onRowClick:E,rowOptions:b,disableOptionsForRowIndex:F=null,getSumOfNextVisibleColumnWidth:ni,onRowEdit:H,inlineEditColumns:vi,tableActions:ti,dndSortableUtils:li,withSortable:f,withDraggable:N,getInnerRowData:ai,showNewItem:W,rawData:O,dragConfig:p,getFullRowDataOnClick:si,selectedRowId:r,rowWrapper:U,isCellClickDisabled:hi,rowAdditionalActions:j,hoverConfig:oi,addPendingEdit:D,removePendingEdit:P,fieldOperationLoading:di,clearRowPendingEdits:q,saveRowPendingEdits:K,pendingEdits:A}=l.useContext(Ni.TableContext),B=$i.useTableConfig(),ri=!!s,{activeInlineEdit:gi,setActiveInlineEdit:L}=l.useContext(Ni.TableContext),a=gi?.rowId===i.original.id?gi?.columnKey:null,u=!!a,ci=n=>{L?.(n===null?null:{rowId:String(i.original.id),columnKey:n})},[C,Y]=l.useState(null),[ui,_]=l.useState(null),[R,G]=l.useState(null),[x,S]=l.useState(!1),[y,J]=l.useState(!1),_i=l.useRef(null);l.useEffect(()=>{const n=_i.current,g=a;if(n&&!g){const h=A?.[i.original.id]?.[n];if(h){const d=i.cells?.find(m=>m.column?.key===n);if(d){const m=Hi.validateCellValue(h.value,d.column);!m.isValid&&D&&D(String(i.original.id),n,{...h,validationError:m.error})}}}_i.current=g??null},[a,i.original.id,i.cells,A,D]),l.useEffect(()=>{if(O){const n=String(i?.original?.id);G(O[n]?.[i?.cells[0].column.Header]||O[n]?.[0])}},[O,i?.original?.id,i?.cells]);const o=wi.useSortable({id:i.original.id,data:{...i.original},disabled:!f}),v=Mi.useDraggable({id:i.original.id,data:{...i.original},disabled:!!f}),{listeners:fi,transform:mi,setNodeRef:bi,isDragging:T,attributes:Ri,active:V,over:I,...Ui}=f?o:v,{setNodeRef:ji}=Mi.useDroppable({id:`table-file-dropzone-${i?.original?.id}`,data:{type:"table-file-dropzone",folderId:i?.original?.id,isFolder:i?.original?.type==="folder"}}),Ki={transform:ie.CSS.Transform.toString(mi),transition:f?Ui.transition:void 0,cursor:T?"grabbing":"grab",opacity:T?"0.5":"1"},Yi=()=>!V||!I||!f?!1:li?.checkOverEachItem?li.checkOverEachItem(V,I)&&!!I:V.data.current?.type!==I.data.current?.type&&!!I,Di=n=>{_(n.target.value)},Gi=()=>{di||ci(null)},Si=l.useRef(null),Ii=l.useCallback(n=>{Si.current=n},[]),Pi=l.useRef(B);Pi.current=B;const Bi=l.useCallback(()=>{q&&q(String(i.original.id))},[q,i.original.id]),Oi=l.useCallback(()=>{if(Si.current){const n=Si.current();if(!n.isValid)return;a&&n.value!==void 0&&D&&D(String(i.original.id),a,{value:n.value,originalValue:i.original[a],meta:n.meta||void 0})}else if(a){const n=i.cells?.find(g=>g.column?.key===a);if(n){const g=A?.[i.original.id]?.[a]?.value,h=g!==void 0?g:n.value,d=Hi.validateCellValue(h,n.column);if(!d.isValid){Pi.current?.showNotification?.("error",d.error||"Validation failed");return}}}K&&K(String(i.original.id))},[K,i.original,i.cells,a,D,A]),qi=(n,g)=>{const h={...i.original},d=n!==void 0?n:ui;a&&d!==void 0&&(h[a]=d,H&&H(h,z,a,d,g),P&&P(String(i.original.id),a)),Gi()},Ai=l.useRef(null),Li=(n,g,h,d)=>{if(!hi&&(n?.stopPropagation(),a!==d)){if(H){if(vi?.includes(d))ci(d),_(String(i.original[d]));else{const m=B?.getSystemMessage?.("notAllowedInlineEdit")||"Inline Edit is not allowed for this column";B?.showNotification?.("error",m)}return}if(E)E(g,h,i.original,ei?.map(m=>m.original)||[]);else if(!E&&s){const m=i.original.id,Zi={target:{checked:!s.checkedIds.includes(m)}};s.onItemCheck(Zi,m)}}},Ti=async()=>{S(!0),ai&&await ai(i?.original?.id,i?.original,!(c?.[i?.original?.id]?.isOpen??!1),i?.original?.__level||0),S(!1)},Ji=l.useMemo(()=>i.cells.filter(n=>n.column?.visible).map(n=>n.column?.width??0).reduce((n,g)=>n+g,0),[i.cells]),Q=l.useMemo(()=>p?.draggingOver&&p?.draggingOver===i?.original?.id,[p,i?.original?.id]),yi=l.useMemo(()=>Q?p?.dropPosition||"inside":null,[Q,p?.dropPosition]),X=!!(Q&&yi==="inside"),k=i?.original?.__rowMetadata||i?.original?._meta,Z=C!==i?.original?.id,ki=!i?.original?.__isLoading,Vi=!!(k?.__is_new||k?.__is_added||i?.original?.is_added||R?.is_added||k?.is_added||k?.is_new),Qi=!!(i?.original?.is_deleted||k?.__is_deleted||R?.is_deleted||k?.is_deleted),Xi=!!(i?.original?.is_modified||i?.original?.is_row_modified||k?.__is_modified||k?.__is_edited||R?.is_row_modified||k?.is_modified)&&!Vi,Ei=r!=null&&String(r)===String(i?.original?.id),zi=Ci({"bg-neutral-100 dark:bg-black-600":C===i?.original?.id&&!u,"bg-primary-100 dark:bg-primary-950":Ei&&Z&&!u,"bg-primary-50 dark:bg-black-700":!i?.original?.is_read&&W&&!i?.original?.__isLoading&&Z&&!u,"bg-warning-50 dark:bg-warning-975":Xi&&ki&&Z&&!u,"bg-error-50 dark:bg-error-975":Qi&&ki&&Z&&!u,"bg-success-50 dark:bg-success-975":Vi&&ki&&Z&&!u,"bg-primary-50 dark:bg-primary-900":u,[pi.getTableRowBgClassNamesByStatus[i?.original?.__rowBgStatus]]:i?.original?.__rowBgStatus&&!u});return l.createElement("tr",{...i.getRowProps(),ref:N||f?bi:null,key:i.original.id,"data-row-id":i.original.id,className:Ci(`text-neutral-900 dark:text-white cursor-pointer min-w-full relative ${s?.selectionDisabledRowIds?.includes(i?.original?.id)?"opacity-50":""} border-t`,T?"z-40":"",Yi()?"shadow-dnd-drop":"",N&&I&&I?.data?.current?.type==="table-file-dropzone"&&I?.data?.current?.folderId===i?.original?.id&&i?.original?.type==="folder"?"bg-primary-50":"",i?.original?.isDefinedActionRow?"bg-primary-50":"",X?"z-50":"",zi||"bg-white dark:bg-black-800"),style:{...xi,...f?Ki:{},width:"max-content"},...N||f?Ri:{},...N||f?fi:{}},X&&p?.dragOperation?t.jsx("div",{className:"absolute right-2 h-row flex items-center z-20 pointer-events-none",children:t.jsx("div",{className:"bg-primary-200 px-2 py-1 rounded",children:p?.dragOperation==="COPY"?t.jsx(ee,{sx:{fontSize:12},className:"text-primary-700"}):t.jsx(Fi.SubdirectoryArrowLeftRounded,{sx:{fontSize:12},className:"text-primary-700"})})}):null,X&&!p?.dragOperation?t.jsx("div",{className:"absolute right-2 h-row flex items-center z-20 pointer-events-none",children:t.jsx(Fi.SubdirectoryArrowLeftRounded,{sx:{fontSize:16},className:"text-primary-500"})}):null,Q&&yi==="before"&&!i?.original?.isDefinedActionRow?t.jsx("div",{className:"absolute -top-[1px] left-0 right-0 h-[2px] bg-primary-500 z-20 pointer-events-none",children:t.jsx("div",{className:"absolute left-0 top-1/2 -translate-y-1/2 w-2 h-2 rounded-full bg-primary-500"})}):null,Q&&yi==="after"&&!i?.original?.isDefinedActionRow?t.jsx("div",{className:"absolute -bottom-[1px] left-0 right-0 h-[2px] bg-primary-500 z-20 pointer-events-none",children:t.jsx("div",{className:"absolute left-0 top-1/2 -translate-y-1/2 w-2 h-2 rounded-full bg-primary-500"})}):null,i?.original?.isDefinedActionRow?t.jsx(te.ActionCell,{cells:i.cells,id:i?.original?.id,isCheckbox:s,level:e,name:i?.original?.name,onClick:i?.original?.onClick,rowHovering:C||"",isRoot:i?.original?.isRoot,totalWidth:Ji,row:i.original,uploadCell:i?.original?.uploadCell,disabled:i?.original?.disabled,disabledTooltip:i?.original?.disabledTooltip}):U?t.jsx(U,{data:i.original,setIsDraggingFile:J,children:t.jsx(Wi,{isDraggingOver:X,level:e,withDraggable:N,setDroppableNodeRef:ji,isLastRow:$,lastRow:w,isCheckbox:ri,checkboxConfig:s,row:i,rowHovering:C,tableActions:ti,disableOptionsForRowIndex:F,index:z,showNewItem:W,currentData:R,lastNonStickyColumnIndex:M,getSumOfNextVisibleColumnWidth:ni,toggleRowExpand:Ti,loadingExpand:x,cellRef:Ai,handleCellClick:Li,getFullRowDataOnClick:si,handleCellValueChange:Di,handleUpdateCellData:qi,handleRowCancelEdit:Bi,handleRowConfirmEdit:Oi,registerValidation:Ii,inlineEditing:a,isInlineEditing:u,setRowHovering:Y,highlightSubstring:ii,rowOptions:b,isDraggingFile:y,rowAdditionalActions:j,hoverConfig:oi,isSelected:Ei})}):t.jsx(Wi,{level:e,withDraggable:N,setDroppableNodeRef:ji,isLastRow:$,lastRow:w,isCheckbox:ri,checkboxConfig:s,row:i,rowHovering:C,tableActions:ti,disableOptionsForRowIndex:F,index:z,showNewItem:W,currentData:R,lastNonStickyColumnIndex:M,getSumOfNextVisibleColumnWidth:ni,toggleRowExpand:Ti,loadingExpand:x,cellRef:Ai,handleCellClick:Li,getFullRowDataOnClick:si,handleCellValueChange:Di,handleUpdateCellData:qi,handleRowCancelEdit:Bi,handleRowConfirmEdit:Oi,registerValidation:Ii,inlineEditing:a,isInlineEditing:u,setRowHovering:Y,highlightSubstring:ii,rowOptions:b,isDraggingFile:y,isDraggingOver:X,rowAdditionalActions:j,hoverConfig:oi,isSelected:Ei}))},Wi=({withDraggable:i,setDroppableNodeRef:$,isLastRow:w,lastRow:ii,isCheckbox:z,checkboxConfig:xi,row:e,rowHovering:c,tableActions:ei,disableOptionsForRowIndex:M,index:s,showNewItem:E,currentData:b,lastNonStickyColumnIndex:F,getSumOfNextVisibleColumnWidth:ni,toggleRowExpand:H,loadingExpand:vi,cellRef:ti,handleCellClick:li,getFullRowDataOnClick:f,handleCellValueChange:N,handleUpdateCellData:ai,handleRowCancelEdit:W,handleRowConfirmEdit:O,registerValidation:p,inlineEditing:si,isInlineEditing:r,setRowHovering:U,highlightSubstring:hi,rowOptions:j,level:oi,isDraggingFile:D,isDraggingOver:P,rowAdditionalActions:di,hoverConfig:q,isSelected:K})=>{const[A,B]=l.useState(!1),{getPendingEdit:ri,hasPendingEdit:gi,pendingEdits:L,tableHeaders:a,pendingEditsCount:u,scrollToCell:ci}=l.useContext(Ni.TableContext),C=L?.[e.original.id]&&Object.keys(L[e.original.id]).length>0,Y=(u??0)>0,ui=l.useMemo(()=>{if(Array.isArray(j))return j;if(typeof j=="function"){const o=j({...e.original,rowIndex:s});return Array.isArray(o)?o:[]}return[]},[j,e.original,s]),_=e?.original?.__rowMetadata||e?.original?._meta,R=c!==e?.original?.id,G=!e?.original?.__isLoading,x=!!(_?.__is_new||_?.__is_added||e?.original?.is_added||b?.is_added||_?.is_added||_?.is_new),S=!!(e?.original?.is_deleted||_?.__is_deleted||b?.is_deleted||_?.is_deleted),y=!!(e?.original?.is_modified||e?.original?.is_row_modified||_?.__is_modified||_?.__is_edited||b?.is_row_modified||_?.is_deleted)&&!x,J=K&&!r&&c!==e?.original?.id?"bg-primary-100 dark:bg-primary-950":void 0,_i=Ci({"border-l-[3px] border-l-success-400 dark:border-l-success-500":x&&G&&R&&!r,"border-l-[3px] border-l-error-400 dark:border-l-error-500":S&&G&&R&&!r,"border-l-[3px] border-l-warning-400 dark:border-l-warning-500":y&&G&&R&&!r});return t.jsx("div",{ref:i?$:null,className:P?"border-2 border-primary-400 dark:border-primary-500 rounded-sm":"",children:t.jsxs("div",{className:Ci("flex",_i),ref:w?ii:null,children:[Y&&t.jsx(oe.PendingEditCell,{rowId:String(e.original.id),rowIndex:s,pendingEdits:L,tableHeaders:a,rowHasPendingEdits:!!C,rowHovering:c!=null?String(c):void 0,isInlineEditing:r,is_read:!!e.original.is_read,is_modified:y,is_row_modified:!!e.original.is_row_modified,is_deleted:S,is_added:x,is_incomplete:e?.original?.status==="Incomplete",showNewItem:E,onScrollToCell:ci}),z&&t.jsx(le.CheckboxCell,{checkboxConfig:xi,id:String(e.original.id),rowHovering:c!=null?String(c):void 0,isDisabled:!!e?.original?.__isLoading,isDraggingOver:P,is_added:x,is_deleted:S,is_incomplete:e?.original?.status==="Incomplete",is_modified:y,is_read:!!e.original.is_read,is_row_modified:!!e.original.is_row_modified,showNewItem:E,currentData:b??{},bgColor:e?.original?.__rowBgStatus?pi.getTableRowBgClassNamesByStatus[e?.original?.__rowBgStatus]:J,isInlineEditing:r,hasPendingEditsColumn:Y,rowHasPendingEdits:C}),ei?t.jsx(de.RowActionCell,{tableActions:ei,disableOptionsForRowIndex:M??null,id:String(e.original.id),index:s,is_read:!!e?.original?.is_read,is_incomplete:e?.original?.status==="Incomplete",showNewItem:!!E,is_modified:y,is_row_modified:!!e?.original?.is_row_modified,is_deleted:S,currentData:b??{},is_added:x,rowData:e.original,rowHovering:c,isDisabled:!!e?.original?.__isLoading,bgColor:D?"bg-primary-50":e?.original?.__rowBgStatus?pi.getTableRowBgClassNamesByStatus[e?.original?.__rowBgStatus]:J,isInlineEditing:r,rowHasPendingEdits:C}):null,t.jsxs("div",{className:"relative flex-1",id:`row-${e.original.id}`,onMouseEnter:()=>B(!0),onMouseLeave:()=>B(!1),children:[e.cells.filter(o=>o?.column?.visible!==!1).map((o,v)=>{const fi=v===F?.(),mi=v===(F?.()??-1)+1,bi=o?.column?.sticky?ni?.(v)??0:0;if(e.original?.__isLoading)return t.jsx(se.LoaderCell,{cell:o,id:v,nextWidthSum:bi,isLastCell:fi,rowHovering:c,index:v,isFirstStickyCell:mi},v);const T=ri?.(String(e.original.id),o?.column?.key||""),Ri=gi?.(String(e.original.id),o?.column?.key||"");return t.jsx(ae.DataCell,{cell:o,rowHovering:c,isFirstStickyCell:mi,level:oi??0,toggleRowExpand:H,loadingExpand:vi,index:v,cellRef:ti,currentData:b,handleCellClick:V=>{V&&li(V,f?e.original:String(e.original.id),v,o?.column?.key||"")},handleCellValueChange:N,handleUpdateCellData:ai,registerValidation:p,id:e.original.id,inlineEditing:si,isInlineEditing:r,isLastCell:fi,is_incomplete:e?.original?.status==="Incomplete",is_added:x,is_deleted:S,is_modified:y,is_read:!!e.original.is_read,is_row_modified:!!e.original.is_row_modified,nextWidthSum:bi,setRowHovering:U,highlightSubstring:hi,isDraggingOver:P,isLoading:!!e?.original?.__isLoading,pendingEdit:T,hasPendingEdit:Ri,pendingValidationError:T?.validationError},o?.column?.key)}),q?.onHover&&A&&ne.createPortal(t.jsx("div",{className:"absolute top-full left-10 z-50 bg-white dark:bg-black-800 rounded-xl",children:q.onHover(e.original)}),document.getElementById(`row-${e.original.id}`))]}),(ui.length>0||!!di)&&t.jsx(re.RowOptionsCell,{rowId:e.original.id,rowOptions:ui,disableOption:M!==null||!!e?.original?.__isLoading,rowHovering:c,setRowHovering:U,is_read:!!e.original.is_read,showNewItem:!!E,is_modified:y,is_row_modified:!!e.original.is_row_modified,is_incomplete:e?.original?.status==="Incomplete",currentData:b??{},is_deleted:S,is_added:x,isDraggingOver:!!P,rowAdditionalActions:di,rowData:e.original,index:s,bgColor:e?.original?.__rowBgStatus?pi.getTableRowBgClassNamesByStatus[e?.original?.__rowBgStatus]:J,isInlineEditing:r,onConfirmEdit:O,onCancelEdit:W,rowHasPendingEdits:C})]})})};exports.Row=ge;
|
|
2
2
|
//# sourceMappingURL=row.cjs.js.map
|