@dmsi/wedgekit-react 0.0.642 → 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,6 +1,6 @@
1
1
  import {
2
2
  MobileDataGridCard
3
- } from "./chunk-LGX34HML.js";
3
+ } from "./chunk-Q4AANHJY.js";
4
4
  import {
5
5
  useGridContext
6
6
  } from "./chunk-5IFPG6TS.js";
@@ -1,4 +1,5 @@
1
1
  import {
2
+ __spreadProps,
2
3
  __spreadValues
3
4
  } from "./chunk-ORMEWXMH.js";
4
5
 
@@ -130,11 +131,24 @@ function isValidDateRangeOrder(fromDate, toDate) {
130
131
 
131
132
  // src/utils/mergeObjectArrays.ts
132
133
  function mergeObjectArrays(arr1, arr2) {
133
- const maxLength = Math.max(arr1.length, arr2.length);
134
- return Array.from(
135
- { length: maxLength },
136
- (_, i) => __spreadValues(__spreadValues({}, arr1[i] || {}), arr2[i] || {})
137
- );
134
+ const arr2Map = /* @__PURE__ */ new Map();
135
+ for (const item of arr2) {
136
+ const id = item.id;
137
+ if (id !== void 0) {
138
+ arr2Map.set(id, item);
139
+ }
140
+ }
141
+ return arr1.map((item1) => {
142
+ const id = item1.id;
143
+ if (id !== void 0 && arr2Map.has(id)) {
144
+ const item2 = arr2Map.get(id);
145
+ const meta1 = item1.meta;
146
+ const meta2 = item2.meta;
147
+ const mergedMeta = meta1 && meta2 && typeof meta1 === "object" && typeof meta2 === "object" ? __spreadValues(__spreadValues({}, meta1), meta2) : meta2 != null ? meta2 : meta1;
148
+ return __spreadProps(__spreadValues(__spreadValues({}, item1), item2), { meta: mergedMeta });
149
+ }
150
+ return item1;
151
+ });
138
152
  }
139
153
 
140
154
  // src/utils/index.ts
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  RowDetailModalProvider
3
- } from "./chunk-XX5GVIPZ.js";
3
+ } from "./chunk-XVWCVBVF.js";
4
4
  import {
5
5
  GridContextProvider
6
6
  } from "./chunk-M7INAUAJ.js";
7
7
  import {
8
8
  ColumnList,
9
9
  no_results_image_default
10
- } from "./chunk-FIOXWZWU.js";
10
+ } from "./chunk-ECYXZZWC.js";
11
11
  import {
12
12
  useGridContext
13
13
  } from "./chunk-5IFPG6TS.js";
@@ -25,13 +25,13 @@ import {
25
25
  DataGridCell,
26
26
  DragAlongCell,
27
27
  DraggableCellHeader
28
- } from "./chunk-RQMOWYB7.js";
28
+ } from "./chunk-VAARSN7U.js";
29
29
  import {
30
30
  Menu
31
- } from "./chunk-5JHKFK73.js";
31
+ } from "./chunk-V2GSI3ZX.js";
32
32
  import {
33
33
  MenuOption
34
- } from "./chunk-PS7MBNUT.js";
34
+ } from "./chunk-YXZRGZ2I.js";
35
35
  import {
36
36
  Search
37
37
  } from "./chunk-FHXCCVOG.js";
@@ -48,7 +48,7 @@ import {
48
48
  import {
49
49
  useInfiniteScroll,
50
50
  useTableLayout
51
- } from "./chunk-YR4ZO2XL.js";
51
+ } from "./chunk-K22B4L3G.js";
52
52
  import {
53
53
  findDocumentRoot
54
54
  } from "./chunk-VXWSAIB5.js";
@@ -58,7 +58,7 @@ import {
58
58
  formatInputValue,
59
59
  isValidDate,
60
60
  parseInputDate
61
- } from "./chunk-QJZ3XHNH.js";
61
+ } from "./chunk-HCHKYUNQ.js";
62
62
  import {
63
63
  formatCurrencyDisplay
64
64
  } from "./chunk-5UH6QUFB.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  LocalStoragePrefixVersion,
3
3
  mergeObjectArrays
4
- } from "./chunk-QJZ3XHNH.js";
4
+ } from "./chunk-HCHKYUNQ.js";
5
5
 
6
6
  // src/hooks/useKeydown.ts
7
7
  import { useEffect } from "react";
@@ -88,52 +88,58 @@ var getLocalStorageKeyWithPrefix = (key) => `${LocalStoragePrefix}__${key}`;
88
88
  function useTableLayout(initialColumns, key, autosync = true) {
89
89
  const [columns, setColumns] = useState2(initialColumns);
90
90
  const [isReady, setIsReady] = useState2(false);
91
- const renderCountRef = useRef(0);
91
+ const isReadyRef = useRef(false);
92
+ const keyRef = useRef(key);
93
+ useEffect3(() => {
94
+ isReadyRef.current = isReady;
95
+ keyRef.current = key;
96
+ }, [isReady, key]);
92
97
  const handleSaveLayout = useCallback(
93
98
  (setter, _internal) => {
94
- if (!isReady && !_internal || !key) return;
99
+ if (!isReadyRef.current && !_internal || !keyRef.current) return;
95
100
  setColumns((prevColumns) => {
96
101
  const newColumns = typeof setter === "function" ? setter(prevColumns) : setter;
97
- if (JSON.stringify(newColumns) === JSON.stringify(prevColumns) && !_internal)
102
+ if (JSON.stringify(newColumns) === JSON.stringify(prevColumns) && !_internal) {
98
103
  return prevColumns;
104
+ }
99
105
  localStorage.setItem(
100
- getLocalStorageKeyWithPrefix(`${key}-tableLayout`),
106
+ getLocalStorageKeyWithPrefix(`${keyRef.current}-tableLayout`),
101
107
  JSON.stringify(newColumns)
102
108
  );
103
109
  return newColumns;
104
110
  });
105
111
  },
106
- [isReady, key]
112
+ []
107
113
  );
108
114
  useEffect3(() => {
109
115
  if (!autosync) return;
110
- if (!key) return setIsReady(true);
111
- if (renderCountRef.current > 1) {
112
- throw new Error(
113
- `useTableLayout should only be called once per component render cycle.
114
- ${renderCountRef.current} Renders detected.
115
- Check dependency stability`
116
- );
116
+ if (!key) {
117
+ setIsReady(true);
118
+ return;
117
119
  }
118
- renderCountRef.current += 1;
119
120
  const savedLayout = localStorage.getItem(
120
121
  getLocalStorageKeyWithPrefix(`${key}-tableLayout`)
121
122
  );
122
123
  if (savedLayout) {
123
- handleSaveLayout(
124
+ setColumns(
124
125
  mergeObjectArrays(
125
126
  initialColumns,
126
127
  JSON.parse(savedLayout)
127
- ),
128
- true
128
+ )
129
+ );
130
+ } else {
131
+ localStorage.setItem(
132
+ getLocalStorageKeyWithPrefix(`${key}-tableLayout`),
133
+ JSON.stringify(initialColumns)
129
134
  );
135
+ setColumns((prev) => {
136
+ if (JSON.stringify(initialColumns) === JSON.stringify(prev))
137
+ return prev;
138
+ return initialColumns;
139
+ });
130
140
  }
131
- if (!savedLayout) handleSaveLayout(initialColumns, true);
132
141
  setIsReady(true);
133
- return () => {
134
- renderCountRef.current = 0;
135
- };
136
- }, [handleSaveLayout, initialColumns, key, autosync]);
142
+ }, [initialColumns, key, autosync]);
137
143
  const getSavedLayout = useCallback(() => {
138
144
  const savedLayout = localStorage.getItem(
139
145
  getLocalStorageKeyWithPrefix(`${key}-tableLayout`)
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  useMatchesMobile
3
- } from "./chunk-YR4ZO2XL.js";
3
+ } from "./chunk-K22B4L3G.js";
4
4
  import {
5
5
  Stack
6
6
  } from "./chunk-MTGNBARV.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  useMatchesMobile
3
- } from "./chunk-YR4ZO2XL.js";
3
+ } from "./chunk-K22B4L3G.js";
4
4
  import {
5
5
  __spreadValues
6
6
  } from "./chunk-ORMEWXMH.js";
@@ -18,7 +18,7 @@ import {
18
18
  } from "./chunk-BWPNXY7T.js";
19
19
  import {
20
20
  useMatchesMobile
21
- } from "./chunk-YR4ZO2XL.js";
21
+ } from "./chunk-K22B4L3G.js";
22
22
  import {
23
23
  Stack
24
24
  } from "./chunk-MTGNBARV.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  formatDate
3
- } from "./chunk-QJZ3XHNH.js";
3
+ } from "./chunk-HCHKYUNQ.js";
4
4
  import {
5
5
  Paragraph
6
6
  } from "./chunk-WMPWWFUJ.js";
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-5IFPG6TS.js";
4
4
  import {
5
5
  MobileDataGridColumn
6
- } from "./chunk-UB3GEENN.js";
6
+ } from "./chunk-OZEKRO4L.js";
7
7
  import {
8
8
  Checkbox
9
9
  } from "./chunk-M7WHWZ2J.js";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  useMenuPosition
3
- } from "./chunk-IATOG76G.js";
3
+ } from "./chunk-NUFBAJ6L.js";
4
4
  import {
5
5
  useMatchesMobile
6
- } from "./chunk-YR4ZO2XL.js";
6
+ } from "./chunk-K22B4L3G.js";
7
7
  import {
8
8
  findDocumentRoot
9
9
  } from "./chunk-VXWSAIB5.js";
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  Menu
3
- } from "./chunk-5JHKFK73.js";
3
+ } from "./chunk-V2GSI3ZX.js";
4
4
  import {
5
5
  useSubMenuSystem
6
- } from "./chunk-IATOG76G.js";
6
+ } from "./chunk-NUFBAJ6L.js";
7
7
  import {
8
8
  MenuOption
9
- } from "./chunk-PS7MBNUT.js";
9
+ } from "./chunk-YXZRGZ2I.js";
10
10
  import {
11
11
  Search
12
12
  } from "./chunk-FHXCCVOG.js";
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-5IFPG6TS.js";
4
4
  import {
5
5
  MobileDataGridColumn
6
- } from "./chunk-UB3GEENN.js";
6
+ } from "./chunk-OZEKRO4L.js";
7
7
  import {
8
8
  Stack
9
9
  } from "./chunk-MTGNBARV.js";
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  ModalContent
3
- } from "./chunk-ARWHCWG7.js";
3
+ } from "./chunk-XT4BQXSX.js";
4
4
  import {
5
5
  useGridContext
6
6
  } from "./chunk-5IFPG6TS.js";
7
7
  import {
8
8
  Modal
9
- } from "./chunk-V7GPM6Z3.js";
9
+ } from "./chunk-Z3Q7PLVD.js";
10
10
  import {
11
11
  Heading2
12
12
  } from "./chunk-MXSJF6TW.js";
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-HXGJVYGQ.js";
4
4
  import {
5
5
  useMatchesMobile
6
- } from "./chunk-YR4ZO2XL.js";
6
+ } from "./chunk-K22B4L3G.js";
7
7
  import {
8
8
  Caption
9
9
  } from "./chunk-PS6UJZVH.js";
@@ -15,7 +15,7 @@ import {
15
15
  } from "./chunk-AG43RS4Q.js";
16
16
  import {
17
17
  useMatchesMobile
18
- } from "./chunk-YR4ZO2XL.js";
18
+ } from "./chunk-K22B4L3G.js";
19
19
  import {
20
20
  findDocumentRoot
21
21
  } from "./chunk-VXWSAIB5.js";
@@ -601,11 +601,24 @@ function formatDate(date) {
601
601
 
602
602
  // src/utils/mergeObjectArrays.ts
603
603
  function mergeObjectArrays(arr1, arr2) {
604
- const maxLength = Math.max(arr1.length, arr2.length);
605
- return Array.from(
606
- { length: maxLength },
607
- (_, i) => __spreadValues(__spreadValues({}, arr1[i] || {}), arr2[i] || {})
608
- );
604
+ const arr2Map = /* @__PURE__ */ new Map();
605
+ for (const item of arr2) {
606
+ const id = item.id;
607
+ if (id !== void 0) {
608
+ arr2Map.set(id, item);
609
+ }
610
+ }
611
+ return arr1.map((item1) => {
612
+ const id = item1.id;
613
+ if (id !== void 0 && arr2Map.has(id)) {
614
+ const item2 = arr2Map.get(id);
615
+ const meta1 = item1.meta;
616
+ const meta2 = item2.meta;
617
+ const mergedMeta = meta1 && meta2 && typeof meta1 === "object" && typeof meta2 === "object" ? __spreadValues(__spreadValues({}, meta1), meta2) : meta2 != null ? meta2 : meta1;
618
+ return __spreadProps(__spreadValues(__spreadValues({}, item1), item2), { meta: mergedMeta });
619
+ }
620
+ return item1;
621
+ });
609
622
  }
610
623
 
611
624
  // src/utils/index.ts
@@ -641,52 +654,58 @@ var getLocalStorageKeyWithPrefix = (key) => `${LocalStoragePrefix}__${key}`;
641
654
  function useTableLayout(initialColumns, key, autosync = true) {
642
655
  const [columns, setColumns] = (0, import_react5.useState)(initialColumns);
643
656
  const [isReady, setIsReady] = (0, import_react5.useState)(false);
644
- const renderCountRef = (0, import_react5.useRef)(0);
657
+ const isReadyRef = (0, import_react5.useRef)(false);
658
+ const keyRef = (0, import_react5.useRef)(key);
659
+ (0, import_react5.useEffect)(() => {
660
+ isReadyRef.current = isReady;
661
+ keyRef.current = key;
662
+ }, [isReady, key]);
645
663
  const handleSaveLayout = (0, import_react5.useCallback)(
646
664
  (setter, _internal) => {
647
- if (!isReady && !_internal || !key) return;
665
+ if (!isReadyRef.current && !_internal || !keyRef.current) return;
648
666
  setColumns((prevColumns) => {
649
667
  const newColumns = typeof setter === "function" ? setter(prevColumns) : setter;
650
- if (JSON.stringify(newColumns) === JSON.stringify(prevColumns) && !_internal)
668
+ if (JSON.stringify(newColumns) === JSON.stringify(prevColumns) && !_internal) {
651
669
  return prevColumns;
670
+ }
652
671
  localStorage.setItem(
653
- getLocalStorageKeyWithPrefix(`${key}-tableLayout`),
672
+ getLocalStorageKeyWithPrefix(`${keyRef.current}-tableLayout`),
654
673
  JSON.stringify(newColumns)
655
674
  );
656
675
  return newColumns;
657
676
  });
658
677
  },
659
- [isReady, key]
678
+ []
660
679
  );
661
680
  (0, import_react5.useEffect)(() => {
662
681
  if (!autosync) return;
663
- if (!key) return setIsReady(true);
664
- if (renderCountRef.current > 1) {
665
- throw new Error(
666
- `useTableLayout should only be called once per component render cycle.
667
- ${renderCountRef.current} Renders detected.
668
- Check dependency stability`
669
- );
682
+ if (!key) {
683
+ setIsReady(true);
684
+ return;
670
685
  }
671
- renderCountRef.current += 1;
672
686
  const savedLayout = localStorage.getItem(
673
687
  getLocalStorageKeyWithPrefix(`${key}-tableLayout`)
674
688
  );
675
689
  if (savedLayout) {
676
- handleSaveLayout(
690
+ setColumns(
677
691
  mergeObjectArrays(
678
692
  initialColumns,
679
693
  JSON.parse(savedLayout)
680
- ),
681
- true
694
+ )
695
+ );
696
+ } else {
697
+ localStorage.setItem(
698
+ getLocalStorageKeyWithPrefix(`${key}-tableLayout`),
699
+ JSON.stringify(initialColumns)
682
700
  );
701
+ setColumns((prev) => {
702
+ if (JSON.stringify(initialColumns) === JSON.stringify(prev))
703
+ return prev;
704
+ return initialColumns;
705
+ });
683
706
  }
684
- if (!savedLayout) handleSaveLayout(initialColumns, true);
685
707
  setIsReady(true);
686
- return () => {
687
- renderCountRef.current = 0;
688
- };
689
- }, [handleSaveLayout, initialColumns, key, autosync]);
708
+ }, [initialColumns, key, autosync]);
690
709
  const getSavedLayout = (0, import_react5.useCallback)(() => {
691
710
  const savedLayout = localStorage.getItem(
692
711
  getLocalStorageKeyWithPrefix(`${key}-tableLayout`)
@@ -2,22 +2,22 @@ import {
2
2
  CalendarRange,
3
3
  CalendarRange_default,
4
4
  isWeekend
5
- } from "../chunk-SJ3SULQB.js";
6
- import "../chunk-XX5GVIPZ.js";
5
+ } from "../chunk-J2QD64F2.js";
6
+ import "../chunk-XVWCVBVF.js";
7
7
  import "../chunk-M7INAUAJ.js";
8
- import "../chunk-ARWHCWG7.js";
9
- import "../chunk-MQB6BSRX.js";
8
+ import "../chunk-XT4BQXSX.js";
9
+ import "../chunk-OXOMO76M.js";
10
10
  import "../chunk-YCDDBSVU.js";
11
11
  import "../chunk-3X3Y4TMS.js";
12
12
  import "../chunk-BQNPOGD5.js";
13
13
  import "../chunk-Y5GD2FJA.js";
14
14
  import "../chunk-MBZ55T2D.js";
15
15
  import "../chunk-2IKT6IHB.js";
16
- import "../chunk-FIOXWZWU.js";
17
- import "../chunk-LGX34HML.js";
16
+ import "../chunk-ECYXZZWC.js";
17
+ import "../chunk-Q4AANHJY.js";
18
18
  import "../chunk-5IFPG6TS.js";
19
+ import "../chunk-OZEKRO4L.js";
19
20
  import "../chunk-AJ5M6MVX.js";
20
- import "../chunk-UB3GEENN.js";
21
21
  import "../chunk-AT4AWD6B.js";
22
22
  import "../chunk-EWGHVZL5.js";
23
23
  import "../chunk-UF5XGCSF.js";
@@ -26,7 +26,7 @@ import "../chunk-L3BXRDLP.js";
26
26
  import "../chunk-34VEVX5H.js";
27
27
  import "../chunk-LB7UT6F3.js";
28
28
  import "../chunk-AS57Y2D3.js";
29
- import "../chunk-V7GPM6Z3.js";
29
+ import "../chunk-Z3Q7PLVD.js";
30
30
  import "../chunk-4RJKB7LC.js";
31
31
  import "../chunk-UUKHQUSF.js";
32
32
  import "../chunk-WVVEOCEH.js";
@@ -37,19 +37,19 @@ import "../chunk-UAMI54FE.js";
37
37
  import "../chunk-SJZNVG4N.js";
38
38
  import "../chunk-75USUR3I.js";
39
39
  import "../chunk-BWPNXY7T.js";
40
- import "../chunk-RQMOWYB7.js";
41
- import "../chunk-5JHKFK73.js";
42
- import "../chunk-IATOG76G.js";
43
- import "../chunk-PS7MBNUT.js";
40
+ import "../chunk-VAARSN7U.js";
41
+ import "../chunk-V2GSI3ZX.js";
42
+ import "../chunk-NUFBAJ6L.js";
43
+ import "../chunk-YXZRGZ2I.js";
44
44
  import "../chunk-FHXCCVOG.js";
45
45
  import "../chunk-7T5RGDCN.js";
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 "../chunk-VXWSAIB5.js";
52
- import "../chunk-QJZ3XHNH.js";
52
+ import "../chunk-HCHKYUNQ.js";
53
53
  import "../chunk-5UH6QUFB.js";
54
54
  import "../chunk-XJF4S3RB.js";
55
55
  import "../chunk-ZCJWOHFN.js";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  CompactImagesPreview
3
- } from "../chunk-3R3AY5MT.js";
4
- import "../chunk-YR4ZO2XL.js";
3
+ } from "../chunk-LN3HVXH5.js";
4
+ import "../chunk-K22B4L3G.js";
5
5
  import "../chunk-VXWSAIB5.js";
6
- import "../chunk-QJZ3XHNH.js";
6
+ import "../chunk-HCHKYUNQ.js";
7
7
  import "../chunk-5UH6QUFB.js";
8
8
  import "../chunk-MTGNBARV.js";
9
9
  import "../chunk-7KWFEH56.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`)