@dmsi/wedgekit-react 0.0.643 → 0.0.644

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.
Files changed (66) hide show
  1. package/dist/{chunk-FIOXWZWU.js → chunk-ECYXZZWC.js} +1 -1
  2. package/dist/{chunk-QJZ3XHNH.js → chunk-HCHKYUNQ.js} +19 -5
  3. package/dist/{chunk-SJ3SULQB.js → chunk-J2QD64F2.js} +7 -7
  4. package/dist/{chunk-YR4ZO2XL.js → chunk-K22B4L3G.js} +28 -22
  5. package/dist/{chunk-3R3AY5MT.js → chunk-LN3HVXH5.js} +1 -1
  6. package/dist/{chunk-IATOG76G.js → chunk-NUFBAJ6L.js} +1 -1
  7. package/dist/{chunk-MQB6BSRX.js → chunk-OXOMO76M.js} +1 -1
  8. package/dist/{chunk-UB3GEENN.js → chunk-OZEKRO4L.js} +1 -1
  9. package/dist/{chunk-LGX34HML.js → chunk-Q4AANHJY.js} +1 -1
  10. package/dist/{chunk-5JHKFK73.js → chunk-V2GSI3ZX.js} +2 -2
  11. package/dist/{chunk-RQMOWYB7.js → chunk-VAARSN7U.js} +3 -3
  12. package/dist/{chunk-ARWHCWG7.js → chunk-XT4BQXSX.js} +1 -1
  13. package/dist/{chunk-XX5GVIPZ.js → chunk-XVWCVBVF.js} +2 -2
  14. package/dist/{chunk-PS7MBNUT.js → chunk-YXZRGZ2I.js} +1 -1
  15. package/dist/{chunk-V7GPM6Z3.js → chunk-Z3Q7PLVD.js} +1 -1
  16. package/dist/components/CalendarRange.cjs +45 -26
  17. package/dist/components/CalendarRange.js +15 -15
  18. package/dist/components/CompactImagesPreview.js +3 -3
  19. package/dist/components/DataGrid/ColumnSelectorHeaderCell/ColumnSelectorMenuOption.cjs +45 -26
  20. package/dist/components/DataGrid/ColumnSelectorHeaderCell/ColumnSelectorMenuOption.js +15 -15
  21. package/dist/components/DataGrid/ColumnSelectorHeaderCell/index.cjs +45 -26
  22. package/dist/components/DataGrid/ColumnSelectorHeaderCell/index.js +15 -15
  23. package/dist/components/DataGrid/PinnedColumns.cjs +45 -26
  24. package/dist/components/DataGrid/PinnedColumns.js +15 -15
  25. package/dist/components/DataGrid/TableBody/LoadingCell.cjs +45 -26
  26. package/dist/components/DataGrid/TableBody/LoadingCell.js +15 -15
  27. package/dist/components/DataGrid/TableBody/TableBodyRow.cjs +45 -26
  28. package/dist/components/DataGrid/TableBody/TableBodyRow.js +15 -15
  29. package/dist/components/DataGrid/TableBody/index.cjs +45 -26
  30. package/dist/components/DataGrid/TableBody/index.js +15 -15
  31. package/dist/components/DataGrid/index.cjs +45 -26
  32. package/dist/components/DataGrid/index.js +15 -15
  33. package/dist/components/DataGrid/utils.cjs +45 -26
  34. package/dist/components/DataGrid/utils.js +15 -15
  35. package/dist/components/DataGridCell.js +6 -6
  36. package/dist/components/DateInput.cjs +45 -26
  37. package/dist/components/DateInput.js +15 -15
  38. package/dist/components/DateRangeInput.cjs +45 -26
  39. package/dist/components/DateRangeInput.js +15 -15
  40. package/dist/components/Menu.js +4 -4
  41. package/dist/components/MenuOption.js +3 -3
  42. package/dist/components/MobileDataGrid/ColumnList.js +4 -4
  43. package/dist/components/MobileDataGrid/ColumnSelector/index.cjs +45 -26
  44. package/dist/components/MobileDataGrid/ColumnSelector/index.js +15 -15
  45. package/dist/components/MobileDataGrid/MobileDataGridCard/MobileDataGridColumn.js +2 -2
  46. package/dist/components/MobileDataGrid/MobileDataGridCard/index.js +3 -3
  47. package/dist/components/MobileDataGrid/MobileDataGridHeader.cjs +45 -26
  48. package/dist/components/MobileDataGrid/MobileDataGridHeader.js +15 -15
  49. package/dist/components/MobileDataGrid/RowDetailModalProvider/ModalContent.js +3 -3
  50. package/dist/components/MobileDataGrid/RowDetailModalProvider/index.js +6 -6
  51. package/dist/components/MobileDataGrid/index.cjs +45 -26
  52. package/dist/components/MobileDataGrid/index.js +15 -15
  53. package/dist/components/Modal.js +3 -3
  54. package/dist/components/NestedMenu.js +3 -3
  55. package/dist/components/PDFViewer/index.js +3 -3
  56. package/dist/components/ProductImagePreview/index.js +3 -3
  57. package/dist/components/ProjectBar.js +2 -2
  58. package/dist/components/Time.js +1 -1
  59. package/dist/components/index.cjs +45 -26
  60. package/dist/components/index.js +15 -15
  61. package/dist/components/useMenuSystem.js +3 -3
  62. package/dist/hooks/index.cjs +48 -26
  63. package/dist/hooks/index.js +2 -2
  64. package/dist/utils/index.cjs +21 -5
  65. package/dist/utils/index.js +1 -1
  66. package/package.json +1 -1
@@ -1,21 +1,21 @@
1
1
  import {
2
2
  getSortIcon
3
- } from "../../chunk-SJ3SULQB.js";
4
- import "../../chunk-XX5GVIPZ.js";
3
+ } from "../../chunk-J2QD64F2.js";
4
+ import "../../chunk-XVWCVBVF.js";
5
5
  import "../../chunk-M7INAUAJ.js";
6
- import "../../chunk-ARWHCWG7.js";
7
- import "../../chunk-MQB6BSRX.js";
6
+ import "../../chunk-XT4BQXSX.js";
7
+ import "../../chunk-OXOMO76M.js";
8
8
  import "../../chunk-YCDDBSVU.js";
9
9
  import "../../chunk-3X3Y4TMS.js";
10
10
  import "../../chunk-BQNPOGD5.js";
11
11
  import "../../chunk-Y5GD2FJA.js";
12
12
  import "../../chunk-MBZ55T2D.js";
13
13
  import "../../chunk-2IKT6IHB.js";
14
- import "../../chunk-FIOXWZWU.js";
15
- import "../../chunk-LGX34HML.js";
14
+ import "../../chunk-ECYXZZWC.js";
15
+ import "../../chunk-Q4AANHJY.js";
16
16
  import "../../chunk-5IFPG6TS.js";
17
+ import "../../chunk-OZEKRO4L.js";
17
18
  import "../../chunk-AJ5M6MVX.js";
18
- import "../../chunk-UB3GEENN.js";
19
19
  import "../../chunk-AT4AWD6B.js";
20
20
  import "../../chunk-EWGHVZL5.js";
21
21
  import "../../chunk-UF5XGCSF.js";
@@ -24,7 +24,7 @@ import "../../chunk-L3BXRDLP.js";
24
24
  import "../../chunk-34VEVX5H.js";
25
25
  import "../../chunk-LB7UT6F3.js";
26
26
  import "../../chunk-AS57Y2D3.js";
27
- import "../../chunk-V7GPM6Z3.js";
27
+ import "../../chunk-Z3Q7PLVD.js";
28
28
  import "../../chunk-4RJKB7LC.js";
29
29
  import "../../chunk-UUKHQUSF.js";
30
30
  import "../../chunk-WVVEOCEH.js";
@@ -35,19 +35,19 @@ import "../../chunk-UAMI54FE.js";
35
35
  import "../../chunk-SJZNVG4N.js";
36
36
  import "../../chunk-75USUR3I.js";
37
37
  import "../../chunk-BWPNXY7T.js";
38
- import "../../chunk-RQMOWYB7.js";
39
- import "../../chunk-5JHKFK73.js";
40
- import "../../chunk-IATOG76G.js";
41
- import "../../chunk-PS7MBNUT.js";
38
+ import "../../chunk-VAARSN7U.js";
39
+ import "../../chunk-V2GSI3ZX.js";
40
+ import "../../chunk-NUFBAJ6L.js";
41
+ import "../../chunk-YXZRGZ2I.js";
42
42
  import "../../chunk-FHXCCVOG.js";
43
43
  import "../../chunk-7T5RGDCN.js";
44
44
  import "../../chunk-HXGJVYGQ.js";
45
45
  import "../../chunk-WVUIIBRR.js";
46
46
  import "../../chunk-M7WHWZ2J.js";
47
- import "../../chunk-3R3AY5MT.js";
48
- import "../../chunk-YR4ZO2XL.js";
47
+ import "../../chunk-LN3HVXH5.js";
48
+ import "../../chunk-K22B4L3G.js";
49
49
  import "../../chunk-VXWSAIB5.js";
50
- import "../../chunk-QJZ3XHNH.js";
50
+ import "../../chunk-HCHKYUNQ.js";
51
51
  import "../../chunk-5UH6QUFB.js";
52
52
  import "../../chunk-XJF4S3RB.js";
53
53
  import "../../chunk-ZCJWOHFN.js";
@@ -4,17 +4,17 @@ import {
4
4
  DataGridCell,
5
5
  DragAlongCell,
6
6
  DraggableCellHeader
7
- } from "../chunk-RQMOWYB7.js";
8
- import "../chunk-5JHKFK73.js";
9
- import "../chunk-IATOG76G.js";
10
- import "../chunk-PS7MBNUT.js";
7
+ } from "../chunk-VAARSN7U.js";
8
+ import "../chunk-V2GSI3ZX.js";
9
+ import "../chunk-NUFBAJ6L.js";
10
+ import "../chunk-YXZRGZ2I.js";
11
11
  import "../chunk-FHXCCVOG.js";
12
12
  import "../chunk-7T5RGDCN.js";
13
13
  import "../chunk-HXGJVYGQ.js";
14
14
  import "../chunk-WVUIIBRR.js";
15
- import "../chunk-YR4ZO2XL.js";
15
+ import "../chunk-K22B4L3G.js";
16
16
  import "../chunk-VXWSAIB5.js";
17
- import "../chunk-QJZ3XHNH.js";
17
+ import "../chunk-HCHKYUNQ.js";
18
18
  import "../chunk-5UH6QUFB.js";
19
19
  import "../chunk-PS6UJZVH.js";
20
20
  import "../chunk-WMPWWFUJ.js";
@@ -1063,11 +1063,24 @@ function formatDate(date) {
1063
1063
 
1064
1064
  // src/utils/mergeObjectArrays.ts
1065
1065
  function mergeObjectArrays(arr1, arr2) {
1066
- const maxLength = Math.max(arr1.length, arr2.length);
1067
- return Array.from(
1068
- { length: maxLength },
1069
- (_, i) => __spreadValues(__spreadValues({}, arr1[i] || {}), arr2[i] || {})
1070
- );
1066
+ const arr2Map = /* @__PURE__ */ new Map();
1067
+ for (const item of arr2) {
1068
+ const id = item.id;
1069
+ if (id !== void 0) {
1070
+ arr2Map.set(id, item);
1071
+ }
1072
+ }
1073
+ return arr1.map((item1) => {
1074
+ const id = item1.id;
1075
+ if (id !== void 0 && arr2Map.has(id)) {
1076
+ const item2 = arr2Map.get(id);
1077
+ const meta1 = item1.meta;
1078
+ const meta2 = item2.meta;
1079
+ const mergedMeta = meta1 && meta2 && typeof meta1 === "object" && typeof meta2 === "object" ? __spreadValues(__spreadValues({}, meta1), meta2) : meta2 != null ? meta2 : meta1;
1080
+ return __spreadProps(__spreadValues(__spreadValues({}, item1), item2), { meta: mergedMeta });
1081
+ }
1082
+ return item1;
1083
+ });
1071
1084
  }
1072
1085
 
1073
1086
  // src/utils/index.ts
@@ -1103,52 +1116,58 @@ var getLocalStorageKeyWithPrefix = (key) => `${LocalStoragePrefix}__${key}`;
1103
1116
  function useTableLayout(initialColumns, key, autosync = true) {
1104
1117
  const [columns, setColumns] = (0, import_react6.useState)(initialColumns);
1105
1118
  const [isReady, setIsReady] = (0, import_react6.useState)(false);
1106
- const renderCountRef = (0, import_react6.useRef)(0);
1119
+ const isReadyRef = (0, import_react6.useRef)(false);
1120
+ const keyRef = (0, import_react6.useRef)(key);
1121
+ (0, import_react6.useEffect)(() => {
1122
+ isReadyRef.current = isReady;
1123
+ keyRef.current = key;
1124
+ }, [isReady, key]);
1107
1125
  const handleSaveLayout = (0, import_react6.useCallback)(
1108
1126
  (setter, _internal) => {
1109
- if (!isReady && !_internal || !key) return;
1127
+ if (!isReadyRef.current && !_internal || !keyRef.current) return;
1110
1128
  setColumns((prevColumns) => {
1111
1129
  const newColumns = typeof setter === "function" ? setter(prevColumns) : setter;
1112
- if (JSON.stringify(newColumns) === JSON.stringify(prevColumns) && !_internal)
1130
+ if (JSON.stringify(newColumns) === JSON.stringify(prevColumns) && !_internal) {
1113
1131
  return prevColumns;
1132
+ }
1114
1133
  localStorage.setItem(
1115
- getLocalStorageKeyWithPrefix(`${key}-tableLayout`),
1134
+ getLocalStorageKeyWithPrefix(`${keyRef.current}-tableLayout`),
1116
1135
  JSON.stringify(newColumns)
1117
1136
  );
1118
1137
  return newColumns;
1119
1138
  });
1120
1139
  },
1121
- [isReady, key]
1140
+ []
1122
1141
  );
1123
1142
  (0, import_react6.useEffect)(() => {
1124
1143
  if (!autosync) return;
1125
- if (!key) return setIsReady(true);
1126
- if (renderCountRef.current > 1) {
1127
- throw new Error(
1128
- `useTableLayout should only be called once per component render cycle.
1129
- ${renderCountRef.current} Renders detected.
1130
- Check dependency stability`
1131
- );
1144
+ if (!key) {
1145
+ setIsReady(true);
1146
+ return;
1132
1147
  }
1133
- renderCountRef.current += 1;
1134
1148
  const savedLayout = localStorage.getItem(
1135
1149
  getLocalStorageKeyWithPrefix(`${key}-tableLayout`)
1136
1150
  );
1137
1151
  if (savedLayout) {
1138
- handleSaveLayout(
1152
+ setColumns(
1139
1153
  mergeObjectArrays(
1140
1154
  initialColumns,
1141
1155
  JSON.parse(savedLayout)
1142
- ),
1143
- true
1156
+ )
1157
+ );
1158
+ } else {
1159
+ localStorage.setItem(
1160
+ getLocalStorageKeyWithPrefix(`${key}-tableLayout`),
1161
+ JSON.stringify(initialColumns)
1144
1162
  );
1163
+ setColumns((prev) => {
1164
+ if (JSON.stringify(initialColumns) === JSON.stringify(prev))
1165
+ return prev;
1166
+ return initialColumns;
1167
+ });
1145
1168
  }
1146
- if (!savedLayout) handleSaveLayout(initialColumns, true);
1147
1169
  setIsReady(true);
1148
- return () => {
1149
- renderCountRef.current = 0;
1150
- };
1151
- }, [handleSaveLayout, initialColumns, key, autosync]);
1170
+ }, [initialColumns, key, autosync]);
1152
1171
  const getSavedLayout = (0, import_react6.useCallback)(() => {
1153
1172
  const savedLayout = localStorage.getItem(
1154
1173
  getLocalStorageKeyWithPrefix(`${key}-tableLayout`)
@@ -1,21 +1,21 @@
1
1
  import {
2
2
  DateInput
3
- } from "../chunk-SJ3SULQB.js";
4
- import "../chunk-XX5GVIPZ.js";
3
+ } from "../chunk-J2QD64F2.js";
4
+ import "../chunk-XVWCVBVF.js";
5
5
  import "../chunk-M7INAUAJ.js";
6
- import "../chunk-ARWHCWG7.js";
7
- import "../chunk-MQB6BSRX.js";
6
+ import "../chunk-XT4BQXSX.js";
7
+ import "../chunk-OXOMO76M.js";
8
8
  import "../chunk-YCDDBSVU.js";
9
9
  import "../chunk-3X3Y4TMS.js";
10
10
  import "../chunk-BQNPOGD5.js";
11
11
  import "../chunk-Y5GD2FJA.js";
12
12
  import "../chunk-MBZ55T2D.js";
13
13
  import "../chunk-2IKT6IHB.js";
14
- import "../chunk-FIOXWZWU.js";
15
- import "../chunk-LGX34HML.js";
14
+ import "../chunk-ECYXZZWC.js";
15
+ import "../chunk-Q4AANHJY.js";
16
16
  import "../chunk-5IFPG6TS.js";
17
+ import "../chunk-OZEKRO4L.js";
17
18
  import "../chunk-AJ5M6MVX.js";
18
- import "../chunk-UB3GEENN.js";
19
19
  import "../chunk-AT4AWD6B.js";
20
20
  import "../chunk-EWGHVZL5.js";
21
21
  import "../chunk-UF5XGCSF.js";
@@ -24,7 +24,7 @@ import "../chunk-L3BXRDLP.js";
24
24
  import "../chunk-34VEVX5H.js";
25
25
  import "../chunk-LB7UT6F3.js";
26
26
  import "../chunk-AS57Y2D3.js";
27
- import "../chunk-V7GPM6Z3.js";
27
+ import "../chunk-Z3Q7PLVD.js";
28
28
  import "../chunk-4RJKB7LC.js";
29
29
  import "../chunk-UUKHQUSF.js";
30
30
  import "../chunk-WVVEOCEH.js";
@@ -35,19 +35,19 @@ import "../chunk-UAMI54FE.js";
35
35
  import "../chunk-SJZNVG4N.js";
36
36
  import "../chunk-75USUR3I.js";
37
37
  import "../chunk-BWPNXY7T.js";
38
- import "../chunk-RQMOWYB7.js";
39
- import "../chunk-5JHKFK73.js";
40
- import "../chunk-IATOG76G.js";
41
- import "../chunk-PS7MBNUT.js";
38
+ import "../chunk-VAARSN7U.js";
39
+ import "../chunk-V2GSI3ZX.js";
40
+ import "../chunk-NUFBAJ6L.js";
41
+ import "../chunk-YXZRGZ2I.js";
42
42
  import "../chunk-FHXCCVOG.js";
43
43
  import "../chunk-7T5RGDCN.js";
44
44
  import "../chunk-HXGJVYGQ.js";
45
45
  import "../chunk-WVUIIBRR.js";
46
46
  import "../chunk-M7WHWZ2J.js";
47
- import "../chunk-3R3AY5MT.js";
48
- import "../chunk-YR4ZO2XL.js";
47
+ import "../chunk-LN3HVXH5.js";
48
+ import "../chunk-K22B4L3G.js";
49
49
  import "../chunk-VXWSAIB5.js";
50
- import "../chunk-QJZ3XHNH.js";
50
+ import "../chunk-HCHKYUNQ.js";
51
51
  import "../chunk-5UH6QUFB.js";
52
52
  import "../chunk-XJF4S3RB.js";
53
53
  import "../chunk-ZCJWOHFN.js";
@@ -1071,11 +1071,24 @@ function isValidDateRangeOrder(fromDate, toDate) {
1071
1071
 
1072
1072
  // src/utils/mergeObjectArrays.ts
1073
1073
  function mergeObjectArrays(arr1, arr2) {
1074
- const maxLength = Math.max(arr1.length, arr2.length);
1075
- return Array.from(
1076
- { length: maxLength },
1077
- (_, i) => __spreadValues(__spreadValues({}, arr1[i] || {}), arr2[i] || {})
1078
- );
1074
+ const arr2Map = /* @__PURE__ */ new Map();
1075
+ for (const item of arr2) {
1076
+ const id = item.id;
1077
+ if (id !== void 0) {
1078
+ arr2Map.set(id, item);
1079
+ }
1080
+ }
1081
+ return arr1.map((item1) => {
1082
+ const id = item1.id;
1083
+ if (id !== void 0 && arr2Map.has(id)) {
1084
+ const item2 = arr2Map.get(id);
1085
+ const meta1 = item1.meta;
1086
+ const meta2 = item2.meta;
1087
+ const mergedMeta = meta1 && meta2 && typeof meta1 === "object" && typeof meta2 === "object" ? __spreadValues(__spreadValues({}, meta1), meta2) : meta2 != null ? meta2 : meta1;
1088
+ return __spreadProps(__spreadValues(__spreadValues({}, item1), item2), { meta: mergedMeta });
1089
+ }
1090
+ return item1;
1091
+ });
1079
1092
  }
1080
1093
 
1081
1094
  // src/utils/index.ts
@@ -1111,52 +1124,58 @@ var getLocalStorageKeyWithPrefix = (key) => `${LocalStoragePrefix}__${key}`;
1111
1124
  function useTableLayout(initialColumns, key, autosync = true) {
1112
1125
  const [columns, setColumns] = (0, import_react6.useState)(initialColumns);
1113
1126
  const [isReady, setIsReady] = (0, import_react6.useState)(false);
1114
- const renderCountRef = (0, import_react6.useRef)(0);
1127
+ const isReadyRef = (0, import_react6.useRef)(false);
1128
+ const keyRef = (0, import_react6.useRef)(key);
1129
+ (0, import_react6.useEffect)(() => {
1130
+ isReadyRef.current = isReady;
1131
+ keyRef.current = key;
1132
+ }, [isReady, key]);
1115
1133
  const handleSaveLayout = (0, import_react6.useCallback)(
1116
1134
  (setter, _internal) => {
1117
- if (!isReady && !_internal || !key) return;
1135
+ if (!isReadyRef.current && !_internal || !keyRef.current) return;
1118
1136
  setColumns((prevColumns) => {
1119
1137
  const newColumns = typeof setter === "function" ? setter(prevColumns) : setter;
1120
- if (JSON.stringify(newColumns) === JSON.stringify(prevColumns) && !_internal)
1138
+ if (JSON.stringify(newColumns) === JSON.stringify(prevColumns) && !_internal) {
1121
1139
  return prevColumns;
1140
+ }
1122
1141
  localStorage.setItem(
1123
- getLocalStorageKeyWithPrefix(`${key}-tableLayout`),
1142
+ getLocalStorageKeyWithPrefix(`${keyRef.current}-tableLayout`),
1124
1143
  JSON.stringify(newColumns)
1125
1144
  );
1126
1145
  return newColumns;
1127
1146
  });
1128
1147
  },
1129
- [isReady, key]
1148
+ []
1130
1149
  );
1131
1150
  (0, import_react6.useEffect)(() => {
1132
1151
  if (!autosync) return;
1133
- if (!key) return setIsReady(true);
1134
- if (renderCountRef.current > 1) {
1135
- throw new Error(
1136
- `useTableLayout should only be called once per component render cycle.
1137
- ${renderCountRef.current} Renders detected.
1138
- Check dependency stability`
1139
- );
1152
+ if (!key) {
1153
+ setIsReady(true);
1154
+ return;
1140
1155
  }
1141
- renderCountRef.current += 1;
1142
1156
  const savedLayout = localStorage.getItem(
1143
1157
  getLocalStorageKeyWithPrefix(`${key}-tableLayout`)
1144
1158
  );
1145
1159
  if (savedLayout) {
1146
- handleSaveLayout(
1160
+ setColumns(
1147
1161
  mergeObjectArrays(
1148
1162
  initialColumns,
1149
1163
  JSON.parse(savedLayout)
1150
- ),
1151
- true
1164
+ )
1165
+ );
1166
+ } else {
1167
+ localStorage.setItem(
1168
+ getLocalStorageKeyWithPrefix(`${key}-tableLayout`),
1169
+ JSON.stringify(initialColumns)
1152
1170
  );
1171
+ setColumns((prev) => {
1172
+ if (JSON.stringify(initialColumns) === JSON.stringify(prev))
1173
+ return prev;
1174
+ return initialColumns;
1175
+ });
1153
1176
  }
1154
- if (!savedLayout) handleSaveLayout(initialColumns, true);
1155
1177
  setIsReady(true);
1156
- return () => {
1157
- renderCountRef.current = 0;
1158
- };
1159
- }, [handleSaveLayout, initialColumns, key, autosync]);
1178
+ }, [initialColumns, key, autosync]);
1160
1179
  const getSavedLayout = (0, import_react6.useCallback)(() => {
1161
1180
  const savedLayout = localStorage.getItem(
1162
1181
  getLocalStorageKeyWithPrefix(`${key}-tableLayout`)
@@ -1,21 +1,21 @@
1
1
  import {
2
2
  CalendarRange
3
- } from "../chunk-SJ3SULQB.js";
4
- import "../chunk-XX5GVIPZ.js";
3
+ } from "../chunk-J2QD64F2.js";
4
+ import "../chunk-XVWCVBVF.js";
5
5
  import "../chunk-M7INAUAJ.js";
6
- import "../chunk-ARWHCWG7.js";
7
- import "../chunk-MQB6BSRX.js";
6
+ import "../chunk-XT4BQXSX.js";
7
+ import "../chunk-OXOMO76M.js";
8
8
  import "../chunk-YCDDBSVU.js";
9
9
  import "../chunk-3X3Y4TMS.js";
10
10
  import "../chunk-BQNPOGD5.js";
11
11
  import "../chunk-Y5GD2FJA.js";
12
12
  import "../chunk-MBZ55T2D.js";
13
13
  import "../chunk-2IKT6IHB.js";
14
- import "../chunk-FIOXWZWU.js";
15
- import "../chunk-LGX34HML.js";
14
+ import "../chunk-ECYXZZWC.js";
15
+ import "../chunk-Q4AANHJY.js";
16
16
  import "../chunk-5IFPG6TS.js";
17
+ import "../chunk-OZEKRO4L.js";
17
18
  import "../chunk-AJ5M6MVX.js";
18
- import "../chunk-UB3GEENN.js";
19
19
  import "../chunk-AT4AWD6B.js";
20
20
  import "../chunk-EWGHVZL5.js";
21
21
  import "../chunk-UF5XGCSF.js";
@@ -24,7 +24,7 @@ import "../chunk-L3BXRDLP.js";
24
24
  import "../chunk-34VEVX5H.js";
25
25
  import "../chunk-LB7UT6F3.js";
26
26
  import "../chunk-AS57Y2D3.js";
27
- import "../chunk-V7GPM6Z3.js";
27
+ import "../chunk-Z3Q7PLVD.js";
28
28
  import "../chunk-4RJKB7LC.js";
29
29
  import "../chunk-UUKHQUSF.js";
30
30
  import "../chunk-WVVEOCEH.js";
@@ -35,10 +35,10 @@ import "../chunk-UAMI54FE.js";
35
35
  import "../chunk-SJZNVG4N.js";
36
36
  import "../chunk-75USUR3I.js";
37
37
  import "../chunk-BWPNXY7T.js";
38
- import "../chunk-RQMOWYB7.js";
39
- import "../chunk-5JHKFK73.js";
40
- import "../chunk-IATOG76G.js";
41
- import "../chunk-PS7MBNUT.js";
38
+ import "../chunk-VAARSN7U.js";
39
+ import "../chunk-V2GSI3ZX.js";
40
+ import "../chunk-NUFBAJ6L.js";
41
+ import "../chunk-YXZRGZ2I.js";
42
42
  import "../chunk-FHXCCVOG.js";
43
43
  import {
44
44
  InputBase
@@ -46,8 +46,8 @@ import {
46
46
  import "../chunk-HXGJVYGQ.js";
47
47
  import "../chunk-WVUIIBRR.js";
48
48
  import "../chunk-M7WHWZ2J.js";
49
- import "../chunk-3R3AY5MT.js";
50
- import "../chunk-YR4ZO2XL.js";
49
+ import "../chunk-LN3HVXH5.js";
50
+ import "../chunk-K22B4L3G.js";
51
51
  import {
52
52
  findDocumentRoot
53
53
  } from "../chunk-VXWSAIB5.js";
@@ -58,7 +58,7 @@ import {
58
58
  isValidDate,
59
59
  isValidDateRangeOrder,
60
60
  parseInputDate
61
- } from "../chunk-QJZ3XHNH.js";
61
+ } from "../chunk-HCHKYUNQ.js";
62
62
  import "../chunk-5UH6QUFB.js";
63
63
  import "../chunk-XJF4S3RB.js";
64
64
  import "../chunk-ZCJWOHFN.js";
@@ -1,11 +1,11 @@
1
1
  "use client";
2
2
  import {
3
3
  Menu
4
- } from "../chunk-5JHKFK73.js";
5
- import "../chunk-IATOG76G.js";
6
- import "../chunk-YR4ZO2XL.js";
4
+ } from "../chunk-V2GSI3ZX.js";
5
+ import "../chunk-NUFBAJ6L.js";
6
+ import "../chunk-K22B4L3G.js";
7
7
  import "../chunk-VXWSAIB5.js";
8
- import "../chunk-QJZ3XHNH.js";
8
+ import "../chunk-HCHKYUNQ.js";
9
9
  import "../chunk-5UH6QUFB.js";
10
10
  import "../chunk-ORMEWXMH.js";
11
11
  export {
@@ -1,11 +1,11 @@
1
1
  "use client";
2
2
  import {
3
3
  MenuOption
4
- } from "../chunk-PS7MBNUT.js";
4
+ } from "../chunk-YXZRGZ2I.js";
5
5
  import "../chunk-HXGJVYGQ.js";
6
- import "../chunk-YR4ZO2XL.js";
6
+ import "../chunk-K22B4L3G.js";
7
7
  import "../chunk-VXWSAIB5.js";
8
- import "../chunk-QJZ3XHNH.js";
8
+ import "../chunk-HCHKYUNQ.js";
9
9
  import "../chunk-5UH6QUFB.js";
10
10
  import "../chunk-PS6UJZVH.js";
11
11
  import "../chunk-WMPWWFUJ.js";
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  ColumnList
3
- } from "../../chunk-FIOXWZWU.js";
4
- import "../../chunk-LGX34HML.js";
3
+ } from "../../chunk-ECYXZZWC.js";
4
+ import "../../chunk-Q4AANHJY.js";
5
5
  import "../../chunk-5IFPG6TS.js";
6
+ import "../../chunk-OZEKRO4L.js";
6
7
  import "../../chunk-AJ5M6MVX.js";
7
- import "../../chunk-UB3GEENN.js";
8
8
  import "../../chunk-M7WHWZ2J.js";
9
9
  import "../../chunk-VXWSAIB5.js";
10
- import "../../chunk-QJZ3XHNH.js";
10
+ import "../../chunk-HCHKYUNQ.js";
11
11
  import "../../chunk-5UH6QUFB.js";
12
12
  import "../../chunk-BYC6QID5.js";
13
13
  import "../../chunk-MTGNBARV.js";
@@ -595,11 +595,24 @@ function formatDate(date) {
595
595
 
596
596
  // src/utils/mergeObjectArrays.ts
597
597
  function mergeObjectArrays(arr1, arr2) {
598
- const maxLength = Math.max(arr1.length, arr2.length);
599
- return Array.from(
600
- { length: maxLength },
601
- (_, i) => __spreadValues(__spreadValues({}, arr1[i] || {}), arr2[i] || {})
602
- );
598
+ const arr2Map = /* @__PURE__ */ new Map();
599
+ for (const item of arr2) {
600
+ const id = item.id;
601
+ if (id !== void 0) {
602
+ arr2Map.set(id, item);
603
+ }
604
+ }
605
+ return arr1.map((item1) => {
606
+ const id = item1.id;
607
+ if (id !== void 0 && arr2Map.has(id)) {
608
+ const item2 = arr2Map.get(id);
609
+ const meta1 = item1.meta;
610
+ const meta2 = item2.meta;
611
+ const mergedMeta = meta1 && meta2 && typeof meta1 === "object" && typeof meta2 === "object" ? __spreadValues(__spreadValues({}, meta1), meta2) : meta2 != null ? meta2 : meta1;
612
+ return __spreadProps(__spreadValues(__spreadValues({}, item1), item2), { meta: mergedMeta });
613
+ }
614
+ return item1;
615
+ });
603
616
  }
604
617
 
605
618
  // src/utils/index.ts
@@ -635,52 +648,58 @@ var getLocalStorageKeyWithPrefix = (key) => `${LocalStoragePrefix}__${key}`;
635
648
  function useTableLayout(initialColumns, key, autosync = true) {
636
649
  const [columns, setColumns] = (0, import_react5.useState)(initialColumns);
637
650
  const [isReady, setIsReady] = (0, import_react5.useState)(false);
638
- const renderCountRef = (0, import_react5.useRef)(0);
651
+ const isReadyRef = (0, import_react5.useRef)(false);
652
+ const keyRef = (0, import_react5.useRef)(key);
653
+ (0, import_react5.useEffect)(() => {
654
+ isReadyRef.current = isReady;
655
+ keyRef.current = key;
656
+ }, [isReady, key]);
639
657
  const handleSaveLayout = (0, import_react5.useCallback)(
640
658
  (setter, _internal) => {
641
- if (!isReady && !_internal || !key) return;
659
+ if (!isReadyRef.current && !_internal || !keyRef.current) return;
642
660
  setColumns((prevColumns) => {
643
661
  const newColumns = typeof setter === "function" ? setter(prevColumns) : setter;
644
- if (JSON.stringify(newColumns) === JSON.stringify(prevColumns) && !_internal)
662
+ if (JSON.stringify(newColumns) === JSON.stringify(prevColumns) && !_internal) {
645
663
  return prevColumns;
664
+ }
646
665
  localStorage.setItem(
647
- getLocalStorageKeyWithPrefix(`${key}-tableLayout`),
666
+ getLocalStorageKeyWithPrefix(`${keyRef.current}-tableLayout`),
648
667
  JSON.stringify(newColumns)
649
668
  );
650
669
  return newColumns;
651
670
  });
652
671
  },
653
- [isReady, key]
672
+ []
654
673
  );
655
674
  (0, import_react5.useEffect)(() => {
656
675
  if (!autosync) return;
657
- if (!key) return setIsReady(true);
658
- if (renderCountRef.current > 1) {
659
- throw new Error(
660
- `useTableLayout should only be called once per component render cycle.
661
- ${renderCountRef.current} Renders detected.
662
- Check dependency stability`
663
- );
676
+ if (!key) {
677
+ setIsReady(true);
678
+ return;
664
679
  }
665
- renderCountRef.current += 1;
666
680
  const savedLayout = localStorage.getItem(
667
681
  getLocalStorageKeyWithPrefix(`${key}-tableLayout`)
668
682
  );
669
683
  if (savedLayout) {
670
- handleSaveLayout(
684
+ setColumns(
671
685
  mergeObjectArrays(
672
686
  initialColumns,
673
687
  JSON.parse(savedLayout)
674
- ),
675
- true
688
+ )
689
+ );
690
+ } else {
691
+ localStorage.setItem(
692
+ getLocalStorageKeyWithPrefix(`${key}-tableLayout`),
693
+ JSON.stringify(initialColumns)
676
694
  );
695
+ setColumns((prev) => {
696
+ if (JSON.stringify(initialColumns) === JSON.stringify(prev))
697
+ return prev;
698
+ return initialColumns;
699
+ });
677
700
  }
678
- if (!savedLayout) handleSaveLayout(initialColumns, true);
679
701
  setIsReady(true);
680
- return () => {
681
- renderCountRef.current = 0;
682
- };
683
- }, [handleSaveLayout, initialColumns, key, autosync]);
702
+ }, [initialColumns, key, autosync]);
684
703
  const getSavedLayout = (0, import_react5.useCallback)(() => {
685
704
  const savedLayout = localStorage.getItem(
686
705
  getLocalStorageKeyWithPrefix(`${key}-tableLayout`)