@dmsi/wedgekit-react 0.0.276 → 0.0.278

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.
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  Menu
3
- } from "./chunk-PGSDEGBP.js";
3
+ } from "./chunk-W32JB47H.js";
4
4
  import {
5
5
  useSubMenuSystem
6
- } from "./chunk-CCOQOO23.js";
6
+ } from "./chunk-WPEDVM56.js";
7
7
  import {
8
8
  MenuOption
9
- } from "./chunk-FLVYV4T4.js";
9
+ } from "./chunk-OXSBIBGT.js";
10
10
  import {
11
11
  Search
12
12
  } from "./chunk-6GAYJCFE.js";
@@ -12,17 +12,17 @@ import {
12
12
  DataGridCell,
13
13
  DragAlongCell,
14
14
  DraggableCellHeader
15
- } from "./chunk-ANDTMNGV.js";
15
+ } from "./chunk-ARQBSR3I.js";
16
16
  import {
17
17
  Menu
18
- } from "./chunk-PGSDEGBP.js";
18
+ } from "./chunk-W32JB47H.js";
19
19
  import {
20
20
  MenuOption
21
- } from "./chunk-FLVYV4T4.js";
21
+ } from "./chunk-OXSBIBGT.js";
22
22
  import {
23
23
  useInfiniteScroll,
24
24
  useTableLayout
25
- } from "./chunk-HIVPC3T4.js";
25
+ } from "./chunk-JUJBS4ZV.js";
26
26
  import {
27
27
  formatDate
28
28
  } from "./chunk-TYTD4FLW.js";
@@ -61,7 +61,13 @@ import {
61
61
  } from "./chunk-ORMEWXMH.js";
62
62
 
63
63
  // src/components/DataGrid/index.tsx
64
- import React3, { useCallback, useEffect, useId, useState as useState3 } from "react";
64
+ import React3, {
65
+ useCallback,
66
+ useEffect,
67
+ useId,
68
+ useImperativeHandle,
69
+ useState as useState3
70
+ } from "react";
65
71
  import {
66
72
  flexRender as flexRender3,
67
73
  getCoreRowModel,
@@ -671,13 +677,23 @@ function DataGrid({
671
677
  enableColumnSelector,
672
678
  predeterminedLeftPins = [],
673
679
  predeterminedRightPins = [],
674
- useMenuDefaultMinWidth
680
+ useMenuDefaultMinWidth,
681
+ ref
675
682
  }) {
676
683
  var _a, _b, _c, _d, _e, _f, _g;
684
+ useImperativeHandle(ref, () => ({
685
+ getSavedLayout: () => {
686
+ return getSavedLayout();
687
+ }
688
+ }));
677
689
  const [localSorting, setLocalSorting] = useState3([]);
678
690
  const [localColumnFilters, setLocalColumnFilters] = useState3([]);
679
691
  const [localRowSelection, setLocalRowSelection] = useState3({});
680
- const { columns: tableColumns, setColumns: setTableColumns } = useTableLayout(columns, id != null ? id : testid);
692
+ const {
693
+ columns: tableColumns,
694
+ setColumns: setTableColumns,
695
+ getSavedLayout
696
+ } = useTableLayout(columns, id != null ? id : testid);
681
697
  const [columnOrder, setColumnOrder] = useState3(
682
698
  tableColumns.map((c) => c.id)
683
699
  );
@@ -82,6 +82,8 @@ import {
82
82
  useCallback,
83
83
  useRef
84
84
  } from "react";
85
+ var LocalStoragePrefix = `dmsi-acc-v1-table-layout`;
86
+ var getLocalStorageKeyWithPrefix = (key) => `${LocalStoragePrefix}__${key}`;
85
87
  function useTableLayout(initialColumns, key) {
86
88
  const [columns, setColumns] = useState2(initialColumns);
87
89
  const [isReady, setIsReady] = useState2(false);
@@ -93,7 +95,10 @@ function useTableLayout(initialColumns, key) {
93
95
  const newColumns = typeof setter === "function" ? setter(prevColumns) : setter;
94
96
  if (JSON.stringify(newColumns) === JSON.stringify(prevColumns) && !_internal)
95
97
  return prevColumns;
96
- localStorage.setItem(`${key}-tableLayout`, JSON.stringify(newColumns));
98
+ localStorage.setItem(
99
+ getLocalStorageKeyWithPrefix(`${key}-tableLayout`),
100
+ JSON.stringify(newColumns)
101
+ );
97
102
  return newColumns;
98
103
  });
99
104
  },
@@ -109,7 +114,9 @@ function useTableLayout(initialColumns, key) {
109
114
  );
110
115
  }
111
116
  renderCountRef.current += 1;
112
- const savedLayout = localStorage.getItem(`${key}-tableLayout`);
117
+ const savedLayout = localStorage.getItem(
118
+ getLocalStorageKeyWithPrefix(`${key}-tableLayout`)
119
+ );
113
120
  if (savedLayout) {
114
121
  handleSaveLayout(
115
122
  mergeObjectArrays(
@@ -125,7 +132,15 @@ function useTableLayout(initialColumns, key) {
125
132
  renderCountRef.current = 0;
126
133
  };
127
134
  }, [handleSaveLayout, initialColumns, key]);
128
- return { columns, setColumns: handleSaveLayout, isReady };
135
+ const getSavedLayout = useCallback(() => {
136
+ const savedLayout = localStorage.getItem(
137
+ getLocalStorageKeyWithPrefix(`${key}-tableLayout`)
138
+ );
139
+ if (savedLayout) {
140
+ return JSON.parse(savedLayout);
141
+ }
142
+ }, [key]);
143
+ return { columns, setColumns: handleSaveLayout, isReady, getSavedLayout };
129
144
  }
130
145
 
131
146
  export {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  useMatchesMobile
3
- } from "./chunk-HIVPC3T4.js";
3
+ } from "./chunk-JUJBS4ZV.js";
4
4
  import {
5
5
  Label
6
6
  } from "./chunk-7CS736EF.js";
@@ -15,7 +15,7 @@ import {
15
15
  } from "./chunk-ZFOANBWG.js";
16
16
  import {
17
17
  useMatchesMobile
18
- } from "./chunk-HIVPC3T4.js";
18
+ } from "./chunk-JUJBS4ZV.js";
19
19
  import {
20
20
  findDocumentRoot
21
21
  } from "./chunk-VXWSAIB5.js";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  useMenuPosition
3
- } from "./chunk-CCOQOO23.js";
3
+ } from "./chunk-WPEDVM56.js";
4
4
  import {
5
5
  useMatchesMobile
6
- } from "./chunk-HIVPC3T4.js";
6
+ } from "./chunk-JUJBS4ZV.js";
7
7
  import {
8
8
  findDocumentRoot
9
9
  } from "./chunk-VXWSAIB5.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  useMatchesMobile
3
- } from "./chunk-HIVPC3T4.js";
3
+ } from "./chunk-JUJBS4ZV.js";
4
4
  import {
5
5
  __spreadValues
6
6
  } from "./chunk-ORMEWXMH.js";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  Menu
3
- } from "./chunk-PGSDEGBP.js";
3
+ } from "./chunk-W32JB47H.js";
4
4
  import {
5
5
  MenuOption
6
- } from "./chunk-FLVYV4T4.js";
6
+ } from "./chunk-OXSBIBGT.js";
7
7
  import {
8
8
  Icon
9
9
  } from "./chunk-NKUETCDA.js";
@@ -554,6 +554,8 @@ function findDocumentRoot(element) {
554
554
 
555
555
  // src/hooks/useTableLayout.ts
556
556
  var import_react5 = require("react");
557
+ var LocalStoragePrefix = `dmsi-acc-v1-table-layout`;
558
+ var getLocalStorageKeyWithPrefix = (key) => `${LocalStoragePrefix}__${key}`;
557
559
  function useTableLayout(initialColumns, key) {
558
560
  const [columns, setColumns] = (0, import_react5.useState)(initialColumns);
559
561
  const [isReady, setIsReady] = (0, import_react5.useState)(false);
@@ -565,7 +567,10 @@ function useTableLayout(initialColumns, key) {
565
567
  const newColumns = typeof setter === "function" ? setter(prevColumns) : setter;
566
568
  if (JSON.stringify(newColumns) === JSON.stringify(prevColumns) && !_internal)
567
569
  return prevColumns;
568
- localStorage.setItem(`${key}-tableLayout`, JSON.stringify(newColumns));
570
+ localStorage.setItem(
571
+ getLocalStorageKeyWithPrefix(`${key}-tableLayout`),
572
+ JSON.stringify(newColumns)
573
+ );
569
574
  return newColumns;
570
575
  });
571
576
  },
@@ -581,7 +586,9 @@ function useTableLayout(initialColumns, key) {
581
586
  );
582
587
  }
583
588
  renderCountRef.current += 1;
584
- const savedLayout = localStorage.getItem(`${key}-tableLayout`);
589
+ const savedLayout = localStorage.getItem(
590
+ getLocalStorageKeyWithPrefix(`${key}-tableLayout`)
591
+ );
585
592
  if (savedLayout) {
586
593
  handleSaveLayout(
587
594
  mergeObjectArrays(
@@ -597,7 +604,15 @@ function useTableLayout(initialColumns, key) {
597
604
  renderCountRef.current = 0;
598
605
  };
599
606
  }, [handleSaveLayout, initialColumns, key]);
600
- return { columns, setColumns: handleSaveLayout, isReady };
607
+ const getSavedLayout = (0, import_react5.useCallback)(() => {
608
+ const savedLayout = localStorage.getItem(
609
+ getLocalStorageKeyWithPrefix(`${key}-tableLayout`)
610
+ );
611
+ if (savedLayout) {
612
+ return JSON.parse(savedLayout);
613
+ }
614
+ }, [key]);
615
+ return { columns, setColumns: handleSaveLayout, isReady, getSavedLayout };
601
616
  }
602
617
 
603
618
  // src/components/MenuOption.tsx
@@ -2930,13 +2945,23 @@ function DataGrid({
2930
2945
  enableColumnSelector,
2931
2946
  predeterminedLeftPins = [],
2932
2947
  predeterminedRightPins = [],
2933
- useMenuDefaultMinWidth
2948
+ useMenuDefaultMinWidth,
2949
+ ref
2934
2950
  }) {
2935
2951
  var _a, _b, _c, _d, _e, _f, _g;
2952
+ (0, import_react16.useImperativeHandle)(ref, () => ({
2953
+ getSavedLayout: () => {
2954
+ return getSavedLayout();
2955
+ }
2956
+ }));
2936
2957
  const [localSorting, setLocalSorting] = (0, import_react16.useState)([]);
2937
2958
  const [localColumnFilters, setLocalColumnFilters] = (0, import_react16.useState)([]);
2938
2959
  const [localRowSelection, setLocalRowSelection] = (0, import_react16.useState)({});
2939
- const { columns: tableColumns, setColumns: setTableColumns } = useTableLayout(columns, id != null ? id : testid);
2960
+ const {
2961
+ columns: tableColumns,
2962
+ setColumns: setTableColumns,
2963
+ getSavedLayout
2964
+ } = useTableLayout(columns, id != null ? id : testid);
2940
2965
  const [columnOrder, setColumnOrder] = (0, import_react16.useState)(
2941
2966
  tableColumns.map((c) => c.id)
2942
2967
  );
@@ -2,16 +2,16 @@ import {
2
2
  CalendarRange,
3
3
  CalendarRange_default,
4
4
  isWeekend
5
- } from "../chunk-PEB3BNN6.js";
6
- import "../chunk-OAIAELMQ.js";
5
+ } from "../chunk-ZA5E7ZYM.js";
6
+ import "../chunk-CG6XF4JH.js";
7
7
  import "../chunk-QQ5G773N.js";
8
8
  import "../chunk-I3WFZOFY.js";
9
9
  import "../chunk-NO5BIKWS.js";
10
- import "../chunk-ANDTMNGV.js";
11
- import "../chunk-PGSDEGBP.js";
12
- import "../chunk-CCOQOO23.js";
13
- import "../chunk-FLVYV4T4.js";
14
- import "../chunk-HIVPC3T4.js";
10
+ import "../chunk-ARQBSR3I.js";
11
+ import "../chunk-W32JB47H.js";
12
+ import "../chunk-WPEDVM56.js";
13
+ import "../chunk-OXSBIBGT.js";
14
+ import "../chunk-JUJBS4ZV.js";
15
15
  import "../chunk-VXWSAIB5.js";
16
16
  import "../chunk-TYTD4FLW.js";
17
17
  import "../chunk-6GAYJCFE.js";
@@ -4,11 +4,11 @@ import {
4
4
  DataGridCell,
5
5
  DragAlongCell,
6
6
  DraggableCellHeader
7
- } from "../chunk-ANDTMNGV.js";
8
- import "../chunk-PGSDEGBP.js";
9
- import "../chunk-CCOQOO23.js";
10
- import "../chunk-FLVYV4T4.js";
11
- import "../chunk-HIVPC3T4.js";
7
+ } from "../chunk-ARQBSR3I.js";
8
+ import "../chunk-W32JB47H.js";
9
+ import "../chunk-WPEDVM56.js";
10
+ import "../chunk-OXSBIBGT.js";
11
+ import "../chunk-JUJBS4ZV.js";
12
12
  import "../chunk-VXWSAIB5.js";
13
13
  import "../chunk-TYTD4FLW.js";
14
14
  import "../chunk-6GAYJCFE.js";
@@ -1031,6 +1031,8 @@ function findDocumentRoot(element) {
1031
1031
 
1032
1032
  // src/hooks/useTableLayout.ts
1033
1033
  var import_react6 = require("react");
1034
+ var LocalStoragePrefix = `dmsi-acc-v1-table-layout`;
1035
+ var getLocalStorageKeyWithPrefix = (key) => `${LocalStoragePrefix}__${key}`;
1034
1036
  function useTableLayout(initialColumns, key) {
1035
1037
  const [columns, setColumns] = (0, import_react6.useState)(initialColumns);
1036
1038
  const [isReady, setIsReady] = (0, import_react6.useState)(false);
@@ -1042,7 +1044,10 @@ function useTableLayout(initialColumns, key) {
1042
1044
  const newColumns = typeof setter === "function" ? setter(prevColumns) : setter;
1043
1045
  if (JSON.stringify(newColumns) === JSON.stringify(prevColumns) && !_internal)
1044
1046
  return prevColumns;
1045
- localStorage.setItem(`${key}-tableLayout`, JSON.stringify(newColumns));
1047
+ localStorage.setItem(
1048
+ getLocalStorageKeyWithPrefix(`${key}-tableLayout`),
1049
+ JSON.stringify(newColumns)
1050
+ );
1046
1051
  return newColumns;
1047
1052
  });
1048
1053
  },
@@ -1058,7 +1063,9 @@ function useTableLayout(initialColumns, key) {
1058
1063
  );
1059
1064
  }
1060
1065
  renderCountRef.current += 1;
1061
- const savedLayout = localStorage.getItem(`${key}-tableLayout`);
1066
+ const savedLayout = localStorage.getItem(
1067
+ getLocalStorageKeyWithPrefix(`${key}-tableLayout`)
1068
+ );
1062
1069
  if (savedLayout) {
1063
1070
  handleSaveLayout(
1064
1071
  mergeObjectArrays(
@@ -1074,7 +1081,15 @@ function useTableLayout(initialColumns, key) {
1074
1081
  renderCountRef.current = 0;
1075
1082
  };
1076
1083
  }, [handleSaveLayout, initialColumns, key]);
1077
- return { columns, setColumns: handleSaveLayout, isReady };
1084
+ const getSavedLayout = (0, import_react6.useCallback)(() => {
1085
+ const savedLayout = localStorage.getItem(
1086
+ getLocalStorageKeyWithPrefix(`${key}-tableLayout`)
1087
+ );
1088
+ if (savedLayout) {
1089
+ return JSON.parse(savedLayout);
1090
+ }
1091
+ }, [key]);
1092
+ return { columns, setColumns: handleSaveLayout, isReady, getSavedLayout };
1078
1093
  }
1079
1094
 
1080
1095
  // src/components/MenuOption.tsx
@@ -3000,13 +3015,23 @@ function DataGrid({
3000
3015
  enableColumnSelector,
3001
3016
  predeterminedLeftPins = [],
3002
3017
  predeterminedRightPins = [],
3003
- useMenuDefaultMinWidth
3018
+ useMenuDefaultMinWidth,
3019
+ ref
3004
3020
  }) {
3005
3021
  var _a, _b, _c, _d, _e, _f, _g;
3022
+ (0, import_react16.useImperativeHandle)(ref, () => ({
3023
+ getSavedLayout: () => {
3024
+ return getSavedLayout();
3025
+ }
3026
+ }));
3006
3027
  const [localSorting, setLocalSorting] = (0, import_react16.useState)([]);
3007
3028
  const [localColumnFilters, setLocalColumnFilters] = (0, import_react16.useState)([]);
3008
3029
  const [localRowSelection, setLocalRowSelection] = (0, import_react16.useState)({});
3009
- const { columns: tableColumns, setColumns: setTableColumns } = useTableLayout(columns, id != null ? id : testid);
3030
+ const {
3031
+ columns: tableColumns,
3032
+ setColumns: setTableColumns,
3033
+ getSavedLayout
3034
+ } = useTableLayout(columns, id != null ? id : testid);
3010
3035
  const [columnOrder, setColumnOrder] = (0, import_react16.useState)(
3011
3036
  tableColumns.map((c) => c.id)
3012
3037
  );
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  CalendarRange
3
- } from "../chunk-PEB3BNN6.js";
4
- import "../chunk-OAIAELMQ.js";
3
+ } from "../chunk-ZA5E7ZYM.js";
4
+ import "../chunk-CG6XF4JH.js";
5
5
  import "../chunk-QQ5G773N.js";
6
6
  import "../chunk-I3WFZOFY.js";
7
7
  import "../chunk-NO5BIKWS.js";
8
- import "../chunk-ANDTMNGV.js";
9
- import "../chunk-PGSDEGBP.js";
10
- import "../chunk-CCOQOO23.js";
11
- import "../chunk-FLVYV4T4.js";
12
- import "../chunk-HIVPC3T4.js";
8
+ import "../chunk-ARQBSR3I.js";
9
+ import "../chunk-W32JB47H.js";
10
+ import "../chunk-WPEDVM56.js";
11
+ import "../chunk-OXSBIBGT.js";
12
+ import "../chunk-JUJBS4ZV.js";
13
13
  import {
14
14
  findDocumentRoot
15
15
  } from "../chunk-VXWSAIB5.js";
@@ -1039,6 +1039,8 @@ function findDocumentRoot(element) {
1039
1039
 
1040
1040
  // src/hooks/useTableLayout.ts
1041
1041
  var import_react6 = require("react");
1042
+ var LocalStoragePrefix = `dmsi-acc-v1-table-layout`;
1043
+ var getLocalStorageKeyWithPrefix = (key) => `${LocalStoragePrefix}__${key}`;
1042
1044
  function useTableLayout(initialColumns, key) {
1043
1045
  const [columns, setColumns] = (0, import_react6.useState)(initialColumns);
1044
1046
  const [isReady, setIsReady] = (0, import_react6.useState)(false);
@@ -1050,7 +1052,10 @@ function useTableLayout(initialColumns, key) {
1050
1052
  const newColumns = typeof setter === "function" ? setter(prevColumns) : setter;
1051
1053
  if (JSON.stringify(newColumns) === JSON.stringify(prevColumns) && !_internal)
1052
1054
  return prevColumns;
1053
- localStorage.setItem(`${key}-tableLayout`, JSON.stringify(newColumns));
1055
+ localStorage.setItem(
1056
+ getLocalStorageKeyWithPrefix(`${key}-tableLayout`),
1057
+ JSON.stringify(newColumns)
1058
+ );
1054
1059
  return newColumns;
1055
1060
  });
1056
1061
  },
@@ -1066,7 +1071,9 @@ function useTableLayout(initialColumns, key) {
1066
1071
  );
1067
1072
  }
1068
1073
  renderCountRef.current += 1;
1069
- const savedLayout = localStorage.getItem(`${key}-tableLayout`);
1074
+ const savedLayout = localStorage.getItem(
1075
+ getLocalStorageKeyWithPrefix(`${key}-tableLayout`)
1076
+ );
1070
1077
  if (savedLayout) {
1071
1078
  handleSaveLayout(
1072
1079
  mergeObjectArrays(
@@ -1082,7 +1089,15 @@ function useTableLayout(initialColumns, key) {
1082
1089
  renderCountRef.current = 0;
1083
1090
  };
1084
1091
  }, [handleSaveLayout, initialColumns, key]);
1085
- return { columns, setColumns: handleSaveLayout, isReady };
1092
+ const getSavedLayout = (0, import_react6.useCallback)(() => {
1093
+ const savedLayout = localStorage.getItem(
1094
+ getLocalStorageKeyWithPrefix(`${key}-tableLayout`)
1095
+ );
1096
+ if (savedLayout) {
1097
+ return JSON.parse(savedLayout);
1098
+ }
1099
+ }, [key]);
1100
+ return { columns, setColumns: handleSaveLayout, isReady, getSavedLayout };
1086
1101
  }
1087
1102
 
1088
1103
  // src/components/MenuOption.tsx
@@ -3008,13 +3023,23 @@ function DataGrid({
3008
3023
  enableColumnSelector,
3009
3024
  predeterminedLeftPins = [],
3010
3025
  predeterminedRightPins = [],
3011
- useMenuDefaultMinWidth
3026
+ useMenuDefaultMinWidth,
3027
+ ref
3012
3028
  }) {
3013
3029
  var _a, _b, _c, _d, _e, _f, _g;
3030
+ (0, import_react16.useImperativeHandle)(ref, () => ({
3031
+ getSavedLayout: () => {
3032
+ return getSavedLayout();
3033
+ }
3034
+ }));
3014
3035
  const [localSorting, setLocalSorting] = (0, import_react16.useState)([]);
3015
3036
  const [localColumnFilters, setLocalColumnFilters] = (0, import_react16.useState)([]);
3016
3037
  const [localRowSelection, setLocalRowSelection] = (0, import_react16.useState)({});
3017
- const { columns: tableColumns, setColumns: setTableColumns } = useTableLayout(columns, id != null ? id : testid);
3038
+ const {
3039
+ columns: tableColumns,
3040
+ setColumns: setTableColumns,
3041
+ getSavedLayout
3042
+ } = useTableLayout(columns, id != null ? id : testid);
3018
3043
  const [columnOrder, setColumnOrder] = (0, import_react16.useState)(
3019
3044
  tableColumns.map((c) => c.id)
3020
3045
  );
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  CalendarRange
3
- } from "../chunk-PEB3BNN6.js";
4
- import "../chunk-OAIAELMQ.js";
3
+ } from "../chunk-ZA5E7ZYM.js";
4
+ import "../chunk-CG6XF4JH.js";
5
5
  import "../chunk-QQ5G773N.js";
6
6
  import "../chunk-I3WFZOFY.js";
7
7
  import "../chunk-NO5BIKWS.js";
8
- import "../chunk-ANDTMNGV.js";
9
- import "../chunk-PGSDEGBP.js";
10
- import "../chunk-CCOQOO23.js";
11
- import "../chunk-FLVYV4T4.js";
12
- import "../chunk-HIVPC3T4.js";
8
+ import "../chunk-ARQBSR3I.js";
9
+ import "../chunk-W32JB47H.js";
10
+ import "../chunk-WPEDVM56.js";
11
+ import "../chunk-OXSBIBGT.js";
12
+ import "../chunk-JUJBS4ZV.js";
13
13
  import {
14
14
  findDocumentRoot
15
15
  } from "../chunk-VXWSAIB5.js";
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
  import {
3
3
  Menu
4
- } from "../chunk-PGSDEGBP.js";
5
- import "../chunk-CCOQOO23.js";
6
- import "../chunk-HIVPC3T4.js";
4
+ } from "../chunk-W32JB47H.js";
5
+ import "../chunk-WPEDVM56.js";
6
+ import "../chunk-JUJBS4ZV.js";
7
7
  import "../chunk-VXWSAIB5.js";
8
8
  import "../chunk-TYTD4FLW.js";
9
9
  import "../chunk-5UH6QUFB.js";
@@ -1,8 +1,8 @@
1
1
  "use client";
2
2
  import {
3
3
  MenuOption
4
- } from "../chunk-FLVYV4T4.js";
5
- import "../chunk-HIVPC3T4.js";
4
+ } from "../chunk-OXSBIBGT.js";
5
+ import "../chunk-JUJBS4ZV.js";
6
6
  import "../chunk-VXWSAIB5.js";
7
7
  import "../chunk-TYTD4FLW.js";
8
8
  import "../chunk-5UH6QUFB.js";
@@ -1,14 +1,14 @@
1
1
  "use client";
2
2
  import {
3
3
  Modal
4
- } from "../chunk-FQRSSPFV.js";
4
+ } from "../chunk-RLLQRVM7.js";
5
5
  import "../chunk-4RJKB7LC.js";
6
6
  import "../chunk-XM7IQHBU.js";
7
7
  import "../chunk-FRHPFACM.js";
8
8
  import "../chunk-6CPGOW6J.js";
9
9
  import "../chunk-ZFOANBWG.js";
10
10
  import "../chunk-EU73QPW7.js";
11
- import "../chunk-HIVPC3T4.js";
11
+ import "../chunk-JUJBS4ZV.js";
12
12
  import "../chunk-VXWSAIB5.js";
13
13
  import "../chunk-TYTD4FLW.js";
14
14
  import "../chunk-5UH6QUFB.js";
@@ -1,10 +1,10 @@
1
1
  "use client";
2
2
  import {
3
3
  MenuOption
4
- } from "../chunk-FLVYV4T4.js";
4
+ } from "../chunk-OXSBIBGT.js";
5
5
  import {
6
6
  useKeydown
7
- } from "../chunk-HIVPC3T4.js";
7
+ } from "../chunk-JUJBS4ZV.js";
8
8
  import "../chunk-VXWSAIB5.js";
9
9
  import "../chunk-TYTD4FLW.js";
10
10
  import "../chunk-5UH6QUFB.js";
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import {
3
3
  Modal
4
- } from "../chunk-FQRSSPFV.js";
4
+ } from "../chunk-RLLQRVM7.js";
5
5
  import "../chunk-4RJKB7LC.js";
6
6
  import "../chunk-XM7IQHBU.js";
7
7
  import "../chunk-FRHPFACM.js";
@@ -13,7 +13,7 @@ import {
13
13
  import {
14
14
  Heading3
15
15
  } from "../chunk-EU73QPW7.js";
16
- import "../chunk-HIVPC3T4.js";
16
+ import "../chunk-JUJBS4ZV.js";
17
17
  import "../chunk-VXWSAIB5.js";
18
18
  import "../chunk-TYTD4FLW.js";
19
19
  import "../chunk-5UH6QUFB.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  useMatchesMobile
3
- } from "../chunk-HIVPC3T4.js";
3
+ } from "../chunk-JUJBS4ZV.js";
4
4
  import "../chunk-VXWSAIB5.js";
5
5
  import "../chunk-TYTD4FLW.js";
6
6
  import "../chunk-5UH6QUFB.js";
@@ -565,6 +565,8 @@ function findDocumentRoot(element) {
565
565
 
566
566
  // src/hooks/useTableLayout.ts
567
567
  var import_react5 = require("react");
568
+ var LocalStoragePrefix = `dmsi-acc-v1-table-layout`;
569
+ var getLocalStorageKeyWithPrefix = (key) => `${LocalStoragePrefix}__${key}`;
568
570
  function useTableLayout(initialColumns, key) {
569
571
  const [columns, setColumns] = (0, import_react5.useState)(initialColumns);
570
572
  const [isReady, setIsReady] = (0, import_react5.useState)(false);
@@ -576,7 +578,10 @@ function useTableLayout(initialColumns, key) {
576
578
  const newColumns = typeof setter === "function" ? setter(prevColumns) : setter;
577
579
  if (JSON.stringify(newColumns) === JSON.stringify(prevColumns) && !_internal)
578
580
  return prevColumns;
579
- localStorage.setItem(`${key}-tableLayout`, JSON.stringify(newColumns));
581
+ localStorage.setItem(
582
+ getLocalStorageKeyWithPrefix(`${key}-tableLayout`),
583
+ JSON.stringify(newColumns)
584
+ );
580
585
  return newColumns;
581
586
  });
582
587
  },
@@ -592,7 +597,9 @@ function useTableLayout(initialColumns, key) {
592
597
  );
593
598
  }
594
599
  renderCountRef.current += 1;
595
- const savedLayout = localStorage.getItem(`${key}-tableLayout`);
600
+ const savedLayout = localStorage.getItem(
601
+ getLocalStorageKeyWithPrefix(`${key}-tableLayout`)
602
+ );
596
603
  if (savedLayout) {
597
604
  handleSaveLayout(
598
605
  mergeObjectArrays(
@@ -608,7 +615,15 @@ function useTableLayout(initialColumns, key) {
608
615
  renderCountRef.current = 0;
609
616
  };
610
617
  }, [handleSaveLayout, initialColumns, key]);
611
- return { columns, setColumns: handleSaveLayout, isReady };
618
+ const getSavedLayout = (0, import_react5.useCallback)(() => {
619
+ const savedLayout = localStorage.getItem(
620
+ getLocalStorageKeyWithPrefix(`${key}-tableLayout`)
621
+ );
622
+ if (savedLayout) {
623
+ return JSON.parse(savedLayout);
624
+ }
625
+ }, [key]);
626
+ return { columns, setColumns: handleSaveLayout, isReady, getSavedLayout };
612
627
  }
613
628
 
614
629
  // src/components/MenuOption.tsx
@@ -2941,13 +2956,23 @@ function DataGrid({
2941
2956
  enableColumnSelector,
2942
2957
  predeterminedLeftPins = [],
2943
2958
  predeterminedRightPins = [],
2944
- useMenuDefaultMinWidth
2959
+ useMenuDefaultMinWidth,
2960
+ ref
2945
2961
  }) {
2946
2962
  var _a, _b, _c, _d, _e, _f, _g;
2963
+ (0, import_react16.useImperativeHandle)(ref, () => ({
2964
+ getSavedLayout: () => {
2965
+ return getSavedLayout();
2966
+ }
2967
+ }));
2947
2968
  const [localSorting, setLocalSorting] = (0, import_react16.useState)([]);
2948
2969
  const [localColumnFilters, setLocalColumnFilters] = (0, import_react16.useState)([]);
2949
2970
  const [localRowSelection, setLocalRowSelection] = (0, import_react16.useState)({});
2950
- const { columns: tableColumns, setColumns: setTableColumns } = useTableLayout(columns, id != null ? id : testid);
2971
+ const {
2972
+ columns: tableColumns,
2973
+ setColumns: setTableColumns,
2974
+ getSavedLayout
2975
+ } = useTableLayout(columns, id != null ? id : testid);
2951
2976
  const [columnOrder, setColumnOrder] = (0, import_react16.useState)(
2952
2977
  tableColumns.map((c) => c.id)
2953
2978
  );
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  DataGrid
3
- } from "../chunk-OAIAELMQ.js";
3
+ } from "../chunk-CG6XF4JH.js";
4
4
  import {
5
5
  Tooltip
6
6
  } from "../chunk-QQ5G773N.js";
@@ -15,15 +15,15 @@ import {
15
15
  DataGridCell,
16
16
  DragAlongCell,
17
17
  DraggableCellHeader
18
- } from "../chunk-ANDTMNGV.js";
18
+ } from "../chunk-ARQBSR3I.js";
19
19
  import {
20
20
  Menu
21
- } from "../chunk-PGSDEGBP.js";
22
- import "../chunk-CCOQOO23.js";
21
+ } from "../chunk-W32JB47H.js";
22
+ import "../chunk-WPEDVM56.js";
23
23
  import {
24
24
  MenuOption
25
- } from "../chunk-FLVYV4T4.js";
26
- import "../chunk-HIVPC3T4.js";
25
+ } from "../chunk-OXSBIBGT.js";
26
+ import "../chunk-JUJBS4ZV.js";
27
27
  import "../chunk-VXWSAIB5.js";
28
28
  import "../chunk-TYTD4FLW.js";
29
29
  import {
@@ -2,8 +2,8 @@
2
2
  import {
3
3
  useMenuPosition,
4
4
  useSubMenuSystem
5
- } from "../chunk-CCOQOO23.js";
6
- import "../chunk-HIVPC3T4.js";
5
+ } from "../chunk-WPEDVM56.js";
6
+ import "../chunk-JUJBS4ZV.js";
7
7
  import "../chunk-VXWSAIB5.js";
8
8
  import "../chunk-TYTD4FLW.js";
9
9
  import "../chunk-5UH6QUFB.js";
@@ -126,6 +126,8 @@ function mergeObjectArrays(arr1, arr2) {
126
126
 
127
127
  // src/hooks/useTableLayout.ts
128
128
  var import_react4 = require("react");
129
+ var LocalStoragePrefix = `dmsi-acc-v1-table-layout`;
130
+ var getLocalStorageKeyWithPrefix = (key) => `${LocalStoragePrefix}__${key}`;
129
131
  function useTableLayout(initialColumns, key) {
130
132
  const [columns, setColumns] = (0, import_react4.useState)(initialColumns);
131
133
  const [isReady, setIsReady] = (0, import_react4.useState)(false);
@@ -137,7 +139,10 @@ function useTableLayout(initialColumns, key) {
137
139
  const newColumns = typeof setter === "function" ? setter(prevColumns) : setter;
138
140
  if (JSON.stringify(newColumns) === JSON.stringify(prevColumns) && !_internal)
139
141
  return prevColumns;
140
- localStorage.setItem(`${key}-tableLayout`, JSON.stringify(newColumns));
142
+ localStorage.setItem(
143
+ getLocalStorageKeyWithPrefix(`${key}-tableLayout`),
144
+ JSON.stringify(newColumns)
145
+ );
141
146
  return newColumns;
142
147
  });
143
148
  },
@@ -153,7 +158,9 @@ function useTableLayout(initialColumns, key) {
153
158
  );
154
159
  }
155
160
  renderCountRef.current += 1;
156
- const savedLayout = localStorage.getItem(`${key}-tableLayout`);
161
+ const savedLayout = localStorage.getItem(
162
+ getLocalStorageKeyWithPrefix(`${key}-tableLayout`)
163
+ );
157
164
  if (savedLayout) {
158
165
  handleSaveLayout(
159
166
  mergeObjectArrays(
@@ -169,7 +176,15 @@ function useTableLayout(initialColumns, key) {
169
176
  renderCountRef.current = 0;
170
177
  };
171
178
  }, [handleSaveLayout, initialColumns, key]);
172
- return { columns, setColumns: handleSaveLayout, isReady };
179
+ const getSavedLayout = (0, import_react4.useCallback)(() => {
180
+ const savedLayout = localStorage.getItem(
181
+ getLocalStorageKeyWithPrefix(`${key}-tableLayout`)
182
+ );
183
+ if (savedLayout) {
184
+ return JSON.parse(savedLayout);
185
+ }
186
+ }, [key]);
187
+ return { columns, setColumns: handleSaveLayout, isReady, getSavedLayout };
173
188
  }
174
189
  // Annotate the CommonJS export names for ESM import in node:
175
190
  0 && (module.exports = {
@@ -4,7 +4,7 @@ import {
4
4
  useMatchesMedia,
5
5
  useMatchesMobile,
6
6
  useTableLayout
7
- } from "../chunk-HIVPC3T4.js";
7
+ } from "../chunk-JUJBS4ZV.js";
8
8
  import "../chunk-VXWSAIB5.js";
9
9
  import "../chunk-TYTD4FLW.js";
10
10
  import "../chunk-5UH6QUFB.js";
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@dmsi/wedgekit-react",
3
3
  "private": false,
4
- "version": "0.0.276",
4
+ "version": "0.0.278",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "build": "tsup",
@@ -15,7 +15,13 @@ import {
15
15
  Select,
16
16
  Subheader,
17
17
  } from "..";
18
- import React, { useCallback, useEffect, useId, useState } from "react";
18
+ import React, {
19
+ useCallback,
20
+ useEffect,
21
+ useId,
22
+ useImperativeHandle,
23
+ useState,
24
+ } from "react";
19
25
  import {
20
26
  ColumnFiltersState,
21
27
  flexRender,
@@ -81,15 +87,24 @@ export function DataGrid<T extends Record<string, unknown>>({
81
87
  predeterminedLeftPins = [],
82
88
  predeterminedRightPins = [],
83
89
  useMenuDefaultMinWidth,
90
+ ref,
84
91
  }: DataGridProps<T>) {
92
+ useImperativeHandle(ref, () => ({
93
+ getSavedLayout: () => {
94
+ return getSavedLayout();
95
+ },
96
+ }));
85
97
  const [localSorting, setLocalSorting] = useState<SortingState>([]);
86
98
  const [localColumnFilters, setLocalColumnFilters] =
87
99
  useState<ColumnFiltersState>([]);
88
100
  const [localRowSelection, setLocalRowSelection] = useState<
89
101
  Record<string, boolean>
90
102
  >({});
91
- const { columns: tableColumns, setColumns: setTableColumns } =
92
- useTableLayout<T>(columns, id ?? testid);
103
+ const {
104
+ columns: tableColumns,
105
+ setColumns: setTableColumns,
106
+ getSavedLayout,
107
+ } = useTableLayout<T>(columns, id ?? testid);
93
108
  const [columnOrder, setColumnOrder] = useState<string[]>(
94
109
  tableColumns.map((c) => c.id!),
95
110
  );
@@ -52,6 +52,7 @@ export interface DataGridProps<T extends Record<string, unknown>> {
52
52
  predeterminedLeftPins?: string[];
53
53
  predeterminedRightPins?: string[];
54
54
  useMenuDefaultMinWidth?: boolean;
55
+ ref?: React.Ref<{ getSavedLayout: () => ColumnDef<T>[] | undefined }>;
55
56
  }
56
57
 
57
58
  declare module "@tanstack/react-table" {
@@ -13,8 +13,14 @@ export type PersistedTableLayout<T> = {
13
13
  columns: ColumnDef<T>[];
14
14
  setColumns: (setter: SetStateAction<ColumnDef<T>[]>) => void;
15
15
  isReady: boolean;
16
+ getSavedLayout: () => ColumnDef<T>[] | undefined;
16
17
  };
17
18
 
19
+ const LocalStoragePrefix = `dmsi-acc-v1-table-layout`;
20
+
21
+ const getLocalStorageKeyWithPrefix = (key: string) =>
22
+ `${LocalStoragePrefix}__${key}`;
23
+
18
24
  /**
19
25
  * Custom hook to manage table layout persistence.
20
26
  * @template T The type of the objects in the arrays.
@@ -44,7 +50,10 @@ export function useTableLayout<T>(
44
50
  !_internal
45
51
  )
46
52
  return prevColumns;
47
- localStorage.setItem(`${key}-tableLayout`, JSON.stringify(newColumns));
53
+ localStorage.setItem(
54
+ getLocalStorageKeyWithPrefix(`${key}-tableLayout`),
55
+ JSON.stringify(newColumns),
56
+ );
48
57
  return newColumns;
49
58
  });
50
59
  },
@@ -61,7 +70,9 @@ export function useTableLayout<T>(
61
70
  );
62
71
  }
63
72
  renderCountRef.current += 1;
64
- const savedLayout = localStorage.getItem(`${key}-tableLayout`);
73
+ const savedLayout = localStorage.getItem(
74
+ getLocalStorageKeyWithPrefix(`${key}-tableLayout`),
75
+ );
65
76
  if (savedLayout) {
66
77
  handleSaveLayout(
67
78
  mergeObjectArrays<ColumnDef<T>>(
@@ -80,5 +91,14 @@ export function useTableLayout<T>(
80
91
  // Load the layout from local storage on init
81
92
  }, [handleSaveLayout, initialColumns, key]);
82
93
 
83
- return { columns, setColumns: handleSaveLayout, isReady };
94
+ const getSavedLayout = useCallback(() => {
95
+ const savedLayout = localStorage.getItem(
96
+ getLocalStorageKeyWithPrefix(`${key}-tableLayout`),
97
+ );
98
+ if (savedLayout) {
99
+ return JSON.parse(savedLayout) as ColumnDef<T>[];
100
+ }
101
+ }, [key]);
102
+
103
+ return { columns, setColumns: handleSaveLayout, isReady, getSavedLayout };
84
104
  }