@bigbinary/neeto-commons-frontend 4.13.83 → 4.13.84

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 (31) hide show
  1. package/README.md +2 -1
  2. package/dist/cjs/react-utils/index.js +6 -0
  3. package/dist/cjs/react-utils/index.js.map +1 -1
  4. package/dist/cjs/react-utils/useColumnConfig/api.js +22 -0
  5. package/dist/cjs/react-utils/useColumnConfig/api.js.map +1 -0
  6. package/dist/cjs/react-utils/useColumnConfig/constants.js +8 -0
  7. package/dist/cjs/react-utils/useColumnConfig/constants.js.map +1 -0
  8. package/dist/cjs/react-utils/useColumnConfig/index.js +20 -0
  9. package/dist/cjs/react-utils/useColumnConfig/index.js.map +1 -0
  10. package/dist/cjs/react-utils/useColumnConfig/useColumnConfig.js +51 -0
  11. package/dist/cjs/react-utils/useColumnConfig/useColumnConfig.js.map +1 -0
  12. package/dist/cjs/react-utils/useColumnConfig/useConfigApi.js +32 -0
  13. package/dist/cjs/react-utils/useColumnConfig/useConfigApi.js.map +1 -0
  14. package/dist/cjs/react-utils/useColumnConfig/utils.js +29 -0
  15. package/dist/cjs/react-utils/useColumnConfig/utils.js.map +1 -0
  16. package/dist/react-utils/index.js +5 -0
  17. package/dist/react-utils/index.js.map +1 -1
  18. package/dist/react-utils/useColumnConfig/api.js +20 -0
  19. package/dist/react-utils/useColumnConfig/api.js.map +1 -0
  20. package/dist/react-utils/useColumnConfig/constants.js +5 -0
  21. package/dist/react-utils/useColumnConfig/constants.js.map +1 -0
  22. package/dist/react-utils/useColumnConfig/index.js +14 -0
  23. package/dist/react-utils/useColumnConfig/index.js.map +1 -0
  24. package/dist/react-utils/useColumnConfig/useColumnConfig.js +49 -0
  25. package/dist/react-utils/useColumnConfig/useColumnConfig.js.map +1 -0
  26. package/dist/react-utils/useColumnConfig/useConfigApi.js +29 -0
  27. package/dist/react-utils/useColumnConfig/useConfigApi.js.map +1 -0
  28. package/dist/react-utils/useColumnConfig/utils.js +26 -0
  29. package/dist/react-utils/useColumnConfig/utils.js.map +1 -0
  30. package/package.json +1 -1
  31. package/react-utils.d.ts +84 -0
package/README.md CHANGED
@@ -69,6 +69,7 @@ React utilities [↗](./docs/react/README.md)
69
69
  - [useStateWithDependency](./docs/react/hooks/useStateWithDependency.md)
70
70
  - [useQueryParams](./docs/react/hooks/useQueryParams.md)
71
71
  - [useBreakpoints](./docs/react/hooks/useBreakpoints.md)
72
+ - [useColumnConfig](./docs/react/hooks/useColumnConfig.md)
72
73
  - [PrivateRoute](./docs/react/components/PrivateRoute.md)
73
74
  - [AppContainer](./docs/react/components/AppContainer.md)
74
75
  - [QueryClientProvider](./docs/react/components/QueryClientProvider.md)
@@ -176,7 +177,7 @@ them to read more:
176
177
  2. [React utilities](./docs/react/README.md)
177
178
  3. [Web utility functions](./docs/utils/README.md)
178
179
  4. [Default configurations](./docs/configs/README.md)
179
- 6. [Common constants](./docs/constants#common-constants)
180
+ 5. [Common constants](./docs/constants#common-constants)
180
181
 
181
182
  ## Other references
182
183
 
@@ -22,6 +22,7 @@ var reactUtils_useTimer_useTimer = require('./useTimer/useTimer.js');
22
22
  var reactUtils_useUpdateEffect_useUpdateEffect = require('./useUpdateEffect/useUpdateEffect.js');
23
23
  var reactUtils_useBreakpoints_index = require('./useBreakpoints/index.js');
24
24
  var reactUtils_useRestoreScrollPosition_useRestoreScrollPosition = require('./useRestoreScrollPosition/useRestoreScrollPosition.js');
25
+ var reactUtils_useColumnConfig_useColumnConfig = require('./useColumnConfig/useColumnConfig.js');
25
26
  var reactUtils_BrowserPushNotifications_pushHelper = require('./BrowserPushNotifications/pushHelper.js');
26
27
  var reactUtils_metaClick_metaClick = require('./metaClick/metaClick.js');
27
28
  var reactUtils_withImmutableActions_withImmutableActions = require('./withImmutableActions/withImmutableActions.js');
@@ -75,6 +76,10 @@ require('@bigbinary/neeto-time-zones');
75
76
  require('ua-parser-js');
76
77
  require('@tanstack/react-query');
77
78
  require('./useBreakpoints/utils.js');
79
+ require('./useColumnConfig/useConfigApi.js');
80
+ require('./useColumnConfig/api.js');
81
+ require('./useColumnConfig/constants.js');
82
+ require('./useColumnConfig/utils.js');
78
83
  require('./BrowserPushNotifications/devices.js');
79
84
  require('./BrowserPushNotifications/registerServiceWorker.js');
80
85
  require('../constants/index.js');
@@ -114,6 +119,7 @@ exports.useGetScrollPosition = reactUtils_useRestoreScrollPosition_useRestoreScr
114
119
  exports.useRemoveScrollPosition = reactUtils_useRestoreScrollPosition_useRestoreScrollPosition.useRemoveScrollPosition;
115
120
  exports.useRestoreScrollPosition = reactUtils_useRestoreScrollPosition_useRestoreScrollPosition.default;
116
121
  exports.useSetScrollPosition = reactUtils_useRestoreScrollPosition_useRestoreScrollPosition.useSetScrollPosition;
122
+ exports.useColumnConfig = reactUtils_useColumnConfig_useColumnConfig;
117
123
  exports.destroyBrowserSubscription = reactUtils_BrowserPushNotifications_pushHelper.destroyBrowserSubscription;
118
124
  exports.registerBrowserNotifications = reactUtils_BrowserPushNotifications_pushHelper.registerBrowserNotifications;
119
125
  exports.handleMetaClick = reactUtils_metaClick_metaClick.handleMetaClick;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+
3
+ var axios = require('axios');
4
+
5
+ var baseUrl = "api/v1/table_configurations";
6
+ var fetch = function fetch(tableKey) {
7
+ return axios.get("".concat(baseUrl, "/").concat(tableKey));
8
+ };
9
+ var update = function update(_ref) {
10
+ var tableKey = _ref.tableKey,
11
+ payload = _ref.payload;
12
+ return axios.patch("".concat(baseUrl, "/").concat(tableKey), {
13
+ tableConfiguration: payload
14
+ });
15
+ };
16
+ var configApi = {
17
+ fetch: fetch,
18
+ update: update
19
+ };
20
+
21
+ module.exports = configApi;
22
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sources":["../../../../src/react-utils/useColumnConfig/api.js"],"sourcesContent":["import axios from \"axios\";\n\nconst baseUrl = \"api/v1/table_configurations\";\n\nconst fetch = tableKey => axios.get(`${baseUrl}/${tableKey}`);\n\nconst update = ({ tableKey, payload }) =>\n axios.patch(`${baseUrl}/${tableKey}`, { tableConfiguration: payload });\n\nconst configApi = { fetch, update };\n\nexport default configApi;\n"],"names":["baseUrl","fetch","tableKey","axios","get","concat","update","_ref","payload","patch","tableConfiguration","configApi"],"mappings":";;;;AAEA,IAAMA,OAAO,GAAG,6BAA6B;AAE7C,IAAMC,KAAK,GAAG,SAARA,KAAKA,CAAGC,QAAQ,EAAA;AAAA,EAAA,OAAIC,KAAK,CAACC,GAAG,CAAA,EAAA,CAAAC,MAAA,CAAIL,OAAO,EAAA,GAAA,CAAA,CAAAK,MAAA,CAAIH,QAAQ,CAAE,CAAC;AAAA,CAAA;AAE7D,IAAMI,MAAM,GAAG,SAATA,MAAMA,CAAAC,IAAA,EAAA;AAAA,EAAA,IAAML,QAAQ,GAAAK,IAAA,CAARL,QAAQ;IAAEM,OAAO,GAAAD,IAAA,CAAPC,OAAO;EAAA,OACjCL,KAAK,CAACM,KAAK,CAAAJ,EAAAA,CAAAA,MAAA,CAAIL,OAAO,EAAAK,GAAAA,CAAAA,CAAAA,MAAA,CAAIH,QAAQ,CAAI,EAAA;AAAEQ,IAAAA,kBAAkB,EAAEF;AAAQ,GAAC,CAAC;AAAA,CAAA;AAExE,IAAMG,SAAS,GAAG;AAAEV,EAAAA,KAAK,EAALA,KAAK;AAAEK,EAAAA,MAAM,EAANA;AAAO;;;;"}
@@ -0,0 +1,8 @@
1
+ 'use strict';
2
+
3
+ var ALLOWED_CONFIG_KEYS = ["key", "isShown", "description"];
4
+ var TABLE_CONFIGURATION_QUERY_KEY = "table-configuration";
5
+
6
+ exports.ALLOWED_CONFIG_KEYS = ALLOWED_CONFIG_KEYS;
7
+ exports.TABLE_CONFIGURATION_QUERY_KEY = TABLE_CONFIGURATION_QUERY_KEY;
8
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sources":["../../../../src/react-utils/useColumnConfig/constants.js"],"sourcesContent":["export const ALLOWED_CONFIG_KEYS = [\"key\", \"isShown\", \"description\"];\nexport const TABLE_CONFIGURATION_QUERY_KEY = \"table-configuration\";\n"],"names":["ALLOWED_CONFIG_KEYS","TABLE_CONFIGURATION_QUERY_KEY"],"mappings":";;AAAO,IAAMA,mBAAmB,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,aAAa;AAC5D,IAAMC,6BAA6B,GAAG;;;;;"}
@@ -0,0 +1,20 @@
1
+ 'use strict';
2
+
3
+ var reactUtils_useColumnConfig_useColumnConfig = require('./useColumnConfig.js');
4
+ require('react');
5
+ require('./useConfigApi.js');
6
+ require('@tanstack/react-query');
7
+ require('../useMutationWithInvalidation/useMutationWithInvalidation.js');
8
+ require('../../defineProperty-lChFfVqi.js');
9
+ require('../../typeof-D4ZZ_FlZ.js');
10
+ require('../../objectWithoutProperties-wSsbHFcG.js');
11
+ require('ramda');
12
+ require('./api.js');
13
+ require('axios');
14
+ require('./constants.js');
15
+ require('./utils.js');
16
+
17
+
18
+
19
+ module.exports = reactUtils_useColumnConfig_useColumnConfig;
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,51 @@
1
+ 'use strict';
2
+
3
+ var react = require('react');
4
+ var reactUtils_useColumnConfig_useConfigApi = require('./useConfigApi.js');
5
+ var reactUtils_useColumnConfig_utils = require('./utils.js');
6
+ require('@tanstack/react-query');
7
+ require('../useMutationWithInvalidation/useMutationWithInvalidation.js');
8
+ require('../../defineProperty-lChFfVqi.js');
9
+ require('../../typeof-D4ZZ_FlZ.js');
10
+ require('../../objectWithoutProperties-wSsbHFcG.js');
11
+ require('ramda');
12
+ require('./api.js');
13
+ require('axios');
14
+ require('./constants.js');
15
+
16
+ var useColumnConfig = function useColumnConfig(_ref) {
17
+ var tableKey = _ref.tableKey,
18
+ defaultColumnData = _ref.defaultColumnData;
19
+ var _useFetchConfig = reactUtils_useColumnConfig_useConfigApi.useFetchConfig({
20
+ tableKey: tableKey
21
+ }),
22
+ isLoading = _useFetchConfig.isLoading,
23
+ configData = _useFetchConfig.data;
24
+ var _useUpdateConfig = reactUtils_useColumnConfig_useConfigApi.useUpdateConfig({
25
+ tableKey: tableKey
26
+ }),
27
+ updateConfig = _useUpdateConfig.mutate;
28
+ var configuration = configData === null || configData === void 0 ? void 0 : configData.columns;
29
+ var columnData = react.useMemo(function () {
30
+ return reactUtils_useColumnConfig_utils.mergeConfig(defaultColumnData, configuration);
31
+ }, [configuration]);
32
+ var onUpdateColumns = function onUpdateColumns(columnsOrCallback) {
33
+ var columns = typeof columnsOrCallback === "function" ? columnsOrCallback(columnData) : columnsOrCallback;
34
+ var payload = {
35
+ tableKey: tableKey,
36
+ columns: reactUtils_useColumnConfig_utils.packConfig(columns)
37
+ };
38
+ updateConfig({
39
+ tableKey: tableKey,
40
+ payload: payload
41
+ });
42
+ };
43
+ return {
44
+ isLoading: isLoading,
45
+ columnData: columnData,
46
+ onUpdateColumns: onUpdateColumns
47
+ };
48
+ };
49
+
50
+ module.exports = useColumnConfig;
51
+ //# sourceMappingURL=useColumnConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useColumnConfig.js","sources":["../../../../src/react-utils/useColumnConfig/useColumnConfig.js"],"sourcesContent":["import { useMemo } from \"react\";\n\nimport { useFetchConfig, useUpdateConfig } from \"./useConfigApi\";\nimport { mergeConfig, packConfig } from \"./utils\";\n\nconst useColumnConfig = ({ tableKey, defaultColumnData }) => {\n const { isLoading, data: configData } = useFetchConfig({ tableKey });\n const { mutate: updateConfig } = useUpdateConfig({ tableKey });\n\n const configuration = configData?.columns;\n const columnData = useMemo(\n () => mergeConfig(defaultColumnData, configuration),\n [configuration]\n );\n\n const onUpdateColumns = columnsOrCallback => {\n const columns =\n typeof columnsOrCallback === \"function\"\n ? columnsOrCallback(columnData)\n : columnsOrCallback;\n const payload = { tableKey, columns: packConfig(columns) };\n updateConfig({ tableKey, payload });\n };\n\n return { isLoading, columnData, onUpdateColumns };\n};\n\nexport default useColumnConfig;\n"],"names":["useColumnConfig","_ref","tableKey","defaultColumnData","_useFetchConfig","useFetchConfig","isLoading","configData","data","_useUpdateConfig","useUpdateConfig","updateConfig","mutate","configuration","columns","columnData","useMemo","mergeConfig","onUpdateColumns","columnsOrCallback","payload","packConfig"],"mappings":";;;;;;;;;;;;;;;AAKA,IAAMA,eAAe,GAAG,SAAlBA,eAAeA,CAAAC,IAAA,EAAwC;AAAA,EAAA,IAAlCC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IAAEC,iBAAiB,GAAAF,IAAA,CAAjBE,iBAAiB;EACpD,IAAAC,eAAA,GAAwCC,sDAAc,CAAC;AAAEH,MAAAA,QAAQ,EAARA;AAAS,KAAC,CAAC;IAA5DI,SAAS,GAAAF,eAAA,CAATE,SAAS;IAAQC,UAAU,GAAAH,eAAA,CAAhBI,IAAI;EACvB,IAAAC,gBAAA,GAAiCC,uDAAe,CAAC;AAAER,MAAAA,QAAQ,EAARA;AAAS,KAAC,CAAC;IAA9CS,YAAY,GAAAF,gBAAA,CAApBG,MAAM;EAEd,IAAMC,aAAa,GAAGN,UAAU,KAAA,IAAA,IAAVA,UAAU,KAAVA,MAAAA,GAAAA,MAAAA,GAAAA,UAAU,CAAEO,OAAO;EACzC,IAAMC,UAAU,GAAGC,aAAO,CACxB,YAAA;AAAA,IAAA,OAAMC,4CAAW,CAACd,iBAAiB,EAAEU,aAAa,CAAC;GACnD,EAAA,CAACA,aAAa,CAChB,CAAC;AAED,EAAA,IAAMK,eAAe,GAAG,SAAlBA,eAAeA,CAAGC,iBAAiB,EAAI;AAC3C,IAAA,IAAML,OAAO,GACX,OAAOK,iBAAiB,KAAK,UAAU,GACnCA,iBAAiB,CAACJ,UAAU,CAAC,GAC7BI,iBAAiB;AACvB,IAAA,IAAMC,OAAO,GAAG;AAAElB,MAAAA,QAAQ,EAARA,QAAQ;MAAEY,OAAO,EAAEO,2CAAU,CAACP,OAAO;KAAG;AAC1DH,IAAAA,YAAY,CAAC;AAAET,MAAAA,QAAQ,EAARA,QAAQ;AAAEkB,MAAAA,OAAO,EAAPA;AAAQ,KAAC,CAAC;GACpC;EAED,OAAO;AAAEd,IAAAA,SAAS,EAATA,SAAS;AAAES,IAAAA,UAAU,EAAVA,UAAU;AAAEG,IAAAA,eAAe,EAAfA;GAAiB;AACnD;;;;"}
@@ -0,0 +1,32 @@
1
+ 'use strict';
2
+
3
+ var reactQuery = require('@tanstack/react-query');
4
+ var reactUtils_useMutationWithInvalidation_useMutationWithInvalidation = require('../useMutationWithInvalidation/useMutationWithInvalidation.js');
5
+ var reactUtils_useColumnConfig_api = require('./api.js');
6
+ var reactUtils_useColumnConfig_constants = require('./constants.js');
7
+ require('../../defineProperty-lChFfVqi.js');
8
+ require('../../typeof-D4ZZ_FlZ.js');
9
+ require('../../objectWithoutProperties-wSsbHFcG.js');
10
+ require('ramda');
11
+ require('axios');
12
+
13
+ var useFetchConfig = function useFetchConfig(_ref) {
14
+ var tableKey = _ref.tableKey;
15
+ return reactQuery.useQuery({
16
+ queryKey: [reactUtils_useColumnConfig_constants.TABLE_CONFIGURATION_QUERY_KEY, tableKey],
17
+ enabled: !!tableKey,
18
+ queryFn: function queryFn() {
19
+ return reactUtils_useColumnConfig_api.fetch(tableKey);
20
+ }
21
+ });
22
+ };
23
+ var useUpdateConfig = function useUpdateConfig(_ref2) {
24
+ var tableKey = _ref2.tableKey;
25
+ return reactUtils_useMutationWithInvalidation_useMutationWithInvalidation(reactUtils_useColumnConfig_api.update, {
26
+ keysToInvalidate: [[reactUtils_useColumnConfig_constants.TABLE_CONFIGURATION_QUERY_KEY, tableKey]]
27
+ });
28
+ };
29
+
30
+ exports.useFetchConfig = useFetchConfig;
31
+ exports.useUpdateConfig = useUpdateConfig;
32
+ //# sourceMappingURL=useConfigApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useConfigApi.js","sources":["../../../../src/react-utils/useColumnConfig/useConfigApi.js"],"sourcesContent":["import { useQuery } from \"@tanstack/react-query\";\nimport useMutationWithInvalidation from \"react-utils/useMutationWithInvalidation\";\n\nimport configApi from \"./api\";\nimport { TABLE_CONFIGURATION_QUERY_KEY } from \"./constants\";\n\nconst useFetchConfig = ({ tableKey }) =>\n useQuery({\n queryKey: [TABLE_CONFIGURATION_QUERY_KEY, tableKey],\n enabled: !!tableKey,\n queryFn: () => configApi.fetch(tableKey),\n });\n\nconst useUpdateConfig = ({ tableKey }) =>\n useMutationWithInvalidation(configApi.update, {\n keysToInvalidate: [[TABLE_CONFIGURATION_QUERY_KEY, tableKey]],\n });\n\nexport { useFetchConfig, useUpdateConfig };\n"],"names":["useFetchConfig","_ref","tableKey","useQuery","queryKey","TABLE_CONFIGURATION_QUERY_KEY","enabled","queryFn","configApi","fetch","useUpdateConfig","_ref2","useMutationWithInvalidation","update","keysToInvalidate"],"mappings":";;;;;;;;;;;;AAMA,IAAMA,cAAc,GAAG,SAAjBA,cAAcA,CAAAC,IAAA,EAAA;AAAA,EAAA,IAAMC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;AAAA,EAAA,OAChCC,mBAAQ,CAAC;AACPC,IAAAA,QAAQ,EAAE,CAACC,kEAA6B,EAAEH,QAAQ,CAAC;IACnDI,OAAO,EAAE,CAAC,CAACJ,QAAQ;IACnBK,OAAO,EAAE,SAATA,OAAOA,GAAA;AAAA,MAAA,OAAQC,8BAAS,CAACC,KAAK,CAACP,QAAQ,CAAC;AAAA;AAC1C,GAAC,CAAC;AAAA;AAEJ,IAAMQ,eAAe,GAAG,SAAlBA,eAAeA,CAAAC,KAAA,EAAA;AAAA,EAAA,IAAMT,QAAQ,GAAAS,KAAA,CAART,QAAQ;AAAA,EAAA,OACjCU,kEAA2B,CAACJ,8BAAS,CAACK,MAAM,EAAE;AAC5CC,IAAAA,gBAAgB,EAAE,CAAC,CAACT,kEAA6B,EAAEH,QAAQ,CAAC;AAC9D,GAAC,CAAC;AAAA;;;;;"}
@@ -0,0 +1,29 @@
1
+ 'use strict';
2
+
3
+ var defineProperty = require('../../defineProperty-lChFfVqi.js');
4
+ var ramda = require('ramda');
5
+ var reactUtils_useColumnConfig_constants = require('./constants.js');
6
+ require('../../typeof-D4ZZ_FlZ.js');
7
+
8
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
9
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { defineProperty._defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
10
+ var mergeConfig = function mergeConfig(columnData) {
11
+ var configuration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
12
+ var columnMap = new Map(); // Using Map for correct ordering of columns.
13
+
14
+ configuration.forEach(function (config) {
15
+ columnMap.set(config.key, config);
16
+ });
17
+ columnData.forEach(function (column) {
18
+ var _col$hidden;
19
+ var col = _objectSpread(_objectSpread({}, column), columnMap.get(column.key));
20
+ col.hidden = (_col$hidden = col.hidden) !== null && _col$hidden !== void 0 ? _col$hidden : col.isShown === false;
21
+ columnMap.set(column.key, col);
22
+ });
23
+ return Array.from(columnMap.values());
24
+ };
25
+ var packConfig = ramda.map(ramda.pick(reactUtils_useColumnConfig_constants.ALLOWED_CONFIG_KEYS));
26
+
27
+ exports.mergeConfig = mergeConfig;
28
+ exports.packConfig = packConfig;
29
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sources":["../../../../src/react-utils/useColumnConfig/utils.js"],"sourcesContent":["import { map, pick } from \"ramda\";\nimport { ALLOWED_CONFIG_KEYS } from \"./constants\";\n\nexport const mergeConfig = (columnData, configuration = []) => {\n const columnMap = new Map(); // Using Map for correct ordering of columns.\n\n configuration.forEach(config => {\n columnMap.set(config.key, config);\n });\n\n columnData.forEach(column => {\n const col = { ...column, ...columnMap.get(column.key) };\n col.hidden = col.hidden ?? col.isShown === false;\n columnMap.set(column.key, col);\n });\n\n return Array.from(columnMap.values());\n};\n\nexport const packConfig = map(pick(ALLOWED_CONFIG_KEYS));\n"],"names":["mergeConfig","columnData","configuration","arguments","length","undefined","columnMap","Map","forEach","config","set","key","column","_col$hidden","col","_objectSpread","get","hidden","isShown","Array","from","values","packConfig","map","pick","ALLOWED_CONFIG_KEYS"],"mappings":";;;;;;;;;IAGaA,WAAW,GAAG,SAAdA,WAAWA,CAAIC,UAAU,EAAyB;AAAA,EAAA,IAAvBC,aAAa,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AACxD,EAAA,IAAMG,SAAS,GAAG,IAAIC,GAAG,EAAE,CAAC;;AAE5BL,EAAAA,aAAa,CAACM,OAAO,CAAC,UAAAC,MAAM,EAAI;IAC9BH,SAAS,CAACI,GAAG,CAACD,MAAM,CAACE,GAAG,EAAEF,MAAM,CAAC;AACnC,GAAC,CAAC;AAEFR,EAAAA,UAAU,CAACO,OAAO,CAAC,UAAAI,MAAM,EAAI;AAAA,IAAA,IAAAC,WAAA;AAC3B,IAAA,IAAMC,GAAG,GAAAC,aAAA,CAAAA,aAAA,KAAQH,MAAM,CAAA,EAAKN,SAAS,CAACU,GAAG,CAACJ,MAAM,CAACD,GAAG,CAAC,CAAE;AACvDG,IAAAA,GAAG,CAACG,MAAM,GAAA,CAAAJ,WAAA,GAAGC,GAAG,CAACG,MAAM,MAAAJ,IAAAA,IAAAA,WAAA,cAAAA,WAAA,GAAIC,GAAG,CAACI,OAAO,KAAK,KAAK;IAChDZ,SAAS,CAACI,GAAG,CAACE,MAAM,CAACD,GAAG,EAAEG,GAAG,CAAC;AAChC,GAAC,CAAC;EAEF,OAAOK,KAAK,CAACC,IAAI,CAACd,SAAS,CAACe,MAAM,EAAE,CAAC;AACvC;AAEO,IAAMC,UAAU,GAAGC,SAAG,CAACC,UAAI,CAACC,wDAAmB,CAAC;;;;;"}
@@ -20,6 +20,7 @@ export { default as useTimer } from './useTimer/useTimer.js';
20
20
  export { default as useUpdateEffect } from './useUpdateEffect/useUpdateEffect.js';
21
21
  export { default as useBreakpoints } from './useBreakpoints/index.js';
22
22
  export { useGetScrollPosition, useRemoveScrollPosition, default as useRestoreScrollPosition, useSetScrollPosition } from './useRestoreScrollPosition/useRestoreScrollPosition.js';
23
+ export { default as useColumnConfig } from './useColumnConfig/useColumnConfig.js';
23
24
  export { destroyBrowserSubscription, registerBrowserNotifications } from './BrowserPushNotifications/pushHelper.js';
24
25
  export { handleMetaClick, isMetaKeyPressed } from './metaClick/metaClick.js';
25
26
  export { default as withImmutableActions } from './withImmutableActions/withImmutableActions.js';
@@ -73,6 +74,10 @@ import '@bigbinary/neeto-time-zones';
73
74
  import 'ua-parser-js';
74
75
  import '@tanstack/react-query';
75
76
  import './useBreakpoints/utils.js';
77
+ import './useColumnConfig/useConfigApi.js';
78
+ import './useColumnConfig/api.js';
79
+ import './useColumnConfig/constants.js';
80
+ import './useColumnConfig/utils.js';
76
81
  import './BrowserPushNotifications/devices.js';
77
82
  import './BrowserPushNotifications/registerServiceWorker.js';
78
83
  import '../constants/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,20 @@
1
+ import axios from 'axios';
2
+
3
+ var baseUrl = "api/v1/table_configurations";
4
+ var fetch = function fetch(tableKey) {
5
+ return axios.get("".concat(baseUrl, "/").concat(tableKey));
6
+ };
7
+ var update = function update(_ref) {
8
+ var tableKey = _ref.tableKey,
9
+ payload = _ref.payload;
10
+ return axios.patch("".concat(baseUrl, "/").concat(tableKey), {
11
+ tableConfiguration: payload
12
+ });
13
+ };
14
+ var configApi = {
15
+ fetch: fetch,
16
+ update: update
17
+ };
18
+
19
+ export { configApi as default };
20
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sources":["../../../src/react-utils/useColumnConfig/api.js"],"sourcesContent":["import axios from \"axios\";\n\nconst baseUrl = \"api/v1/table_configurations\";\n\nconst fetch = tableKey => axios.get(`${baseUrl}/${tableKey}`);\n\nconst update = ({ tableKey, payload }) =>\n axios.patch(`${baseUrl}/${tableKey}`, { tableConfiguration: payload });\n\nconst configApi = { fetch, update };\n\nexport default configApi;\n"],"names":["baseUrl","fetch","tableKey","axios","get","concat","update","_ref","payload","patch","tableConfiguration","configApi"],"mappings":";;AAEA,IAAMA,OAAO,GAAG,6BAA6B;AAE7C,IAAMC,KAAK,GAAG,SAARA,KAAKA,CAAGC,QAAQ,EAAA;AAAA,EAAA,OAAIC,KAAK,CAACC,GAAG,CAAA,EAAA,CAAAC,MAAA,CAAIL,OAAO,EAAA,GAAA,CAAA,CAAAK,MAAA,CAAIH,QAAQ,CAAE,CAAC;AAAA,CAAA;AAE7D,IAAMI,MAAM,GAAG,SAATA,MAAMA,CAAAC,IAAA,EAAA;AAAA,EAAA,IAAML,QAAQ,GAAAK,IAAA,CAARL,QAAQ;IAAEM,OAAO,GAAAD,IAAA,CAAPC,OAAO;EAAA,OACjCL,KAAK,CAACM,KAAK,CAAAJ,EAAAA,CAAAA,MAAA,CAAIL,OAAO,EAAAK,GAAAA,CAAAA,CAAAA,MAAA,CAAIH,QAAQ,CAAI,EAAA;AAAEQ,IAAAA,kBAAkB,EAAEF;AAAQ,GAAC,CAAC;AAAA,CAAA;AAExE,IAAMG,SAAS,GAAG;AAAEV,EAAAA,KAAK,EAALA,KAAK;AAAEK,EAAAA,MAAM,EAANA;AAAO;;;;"}
@@ -0,0 +1,5 @@
1
+ var ALLOWED_CONFIG_KEYS = ["key", "isShown", "description"];
2
+ var TABLE_CONFIGURATION_QUERY_KEY = "table-configuration";
3
+
4
+ export { ALLOWED_CONFIG_KEYS, TABLE_CONFIGURATION_QUERY_KEY };
5
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sources":["../../../src/react-utils/useColumnConfig/constants.js"],"sourcesContent":["export const ALLOWED_CONFIG_KEYS = [\"key\", \"isShown\", \"description\"];\nexport const TABLE_CONFIGURATION_QUERY_KEY = \"table-configuration\";\n"],"names":["ALLOWED_CONFIG_KEYS","TABLE_CONFIGURATION_QUERY_KEY"],"mappings":"AAAO,IAAMA,mBAAmB,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,aAAa;AAC5D,IAAMC,6BAA6B,GAAG;;;;"}
@@ -0,0 +1,14 @@
1
+ export { default } from './useColumnConfig.js';
2
+ import 'react';
3
+ import './useConfigApi.js';
4
+ import '@tanstack/react-query';
5
+ import '../useMutationWithInvalidation/useMutationWithInvalidation.js';
6
+ import '../../defineProperty-CrCYjjU3.js';
7
+ import '../../typeof-D-UKOauR.js';
8
+ import '../../objectWithoutProperties-DN7d1SzH.js';
9
+ import 'ramda';
10
+ import './api.js';
11
+ import 'axios';
12
+ import './constants.js';
13
+ import './utils.js';
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
@@ -0,0 +1,49 @@
1
+ import { useMemo } from 'react';
2
+ import { useFetchConfig, useUpdateConfig } from './useConfigApi.js';
3
+ import { mergeConfig, packConfig } from './utils.js';
4
+ import '@tanstack/react-query';
5
+ import '../useMutationWithInvalidation/useMutationWithInvalidation.js';
6
+ import '../../defineProperty-CrCYjjU3.js';
7
+ import '../../typeof-D-UKOauR.js';
8
+ import '../../objectWithoutProperties-DN7d1SzH.js';
9
+ import 'ramda';
10
+ import './api.js';
11
+ import 'axios';
12
+ import './constants.js';
13
+
14
+ var useColumnConfig = function useColumnConfig(_ref) {
15
+ var tableKey = _ref.tableKey,
16
+ defaultColumnData = _ref.defaultColumnData;
17
+ var _useFetchConfig = useFetchConfig({
18
+ tableKey: tableKey
19
+ }),
20
+ isLoading = _useFetchConfig.isLoading,
21
+ configData = _useFetchConfig.data;
22
+ var _useUpdateConfig = useUpdateConfig({
23
+ tableKey: tableKey
24
+ }),
25
+ updateConfig = _useUpdateConfig.mutate;
26
+ var configuration = configData === null || configData === void 0 ? void 0 : configData.columns;
27
+ var columnData = useMemo(function () {
28
+ return mergeConfig(defaultColumnData, configuration);
29
+ }, [configuration]);
30
+ var onUpdateColumns = function onUpdateColumns(columnsOrCallback) {
31
+ var columns = typeof columnsOrCallback === "function" ? columnsOrCallback(columnData) : columnsOrCallback;
32
+ var payload = {
33
+ tableKey: tableKey,
34
+ columns: packConfig(columns)
35
+ };
36
+ updateConfig({
37
+ tableKey: tableKey,
38
+ payload: payload
39
+ });
40
+ };
41
+ return {
42
+ isLoading: isLoading,
43
+ columnData: columnData,
44
+ onUpdateColumns: onUpdateColumns
45
+ };
46
+ };
47
+
48
+ export { useColumnConfig as default };
49
+ //# sourceMappingURL=useColumnConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useColumnConfig.js","sources":["../../../src/react-utils/useColumnConfig/useColumnConfig.js"],"sourcesContent":["import { useMemo } from \"react\";\n\nimport { useFetchConfig, useUpdateConfig } from \"./useConfigApi\";\nimport { mergeConfig, packConfig } from \"./utils\";\n\nconst useColumnConfig = ({ tableKey, defaultColumnData }) => {\n const { isLoading, data: configData } = useFetchConfig({ tableKey });\n const { mutate: updateConfig } = useUpdateConfig({ tableKey });\n\n const configuration = configData?.columns;\n const columnData = useMemo(\n () => mergeConfig(defaultColumnData, configuration),\n [configuration]\n );\n\n const onUpdateColumns = columnsOrCallback => {\n const columns =\n typeof columnsOrCallback === \"function\"\n ? columnsOrCallback(columnData)\n : columnsOrCallback;\n const payload = { tableKey, columns: packConfig(columns) };\n updateConfig({ tableKey, payload });\n };\n\n return { isLoading, columnData, onUpdateColumns };\n};\n\nexport default useColumnConfig;\n"],"names":["useColumnConfig","_ref","tableKey","defaultColumnData","_useFetchConfig","useFetchConfig","isLoading","configData","data","_useUpdateConfig","useUpdateConfig","updateConfig","mutate","configuration","columns","columnData","useMemo","mergeConfig","onUpdateColumns","columnsOrCallback","payload","packConfig"],"mappings":";;;;;;;;;;;;;AAKA,IAAMA,eAAe,GAAG,SAAlBA,eAAeA,CAAAC,IAAA,EAAwC;AAAA,EAAA,IAAlCC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IAAEC,iBAAiB,GAAAF,IAAA,CAAjBE,iBAAiB;EACpD,IAAAC,eAAA,GAAwCC,cAAc,CAAC;AAAEH,MAAAA,QAAQ,EAARA;AAAS,KAAC,CAAC;IAA5DI,SAAS,GAAAF,eAAA,CAATE,SAAS;IAAQC,UAAU,GAAAH,eAAA,CAAhBI,IAAI;EACvB,IAAAC,gBAAA,GAAiCC,eAAe,CAAC;AAAER,MAAAA,QAAQ,EAARA;AAAS,KAAC,CAAC;IAA9CS,YAAY,GAAAF,gBAAA,CAApBG,MAAM;EAEd,IAAMC,aAAa,GAAGN,UAAU,KAAA,IAAA,IAAVA,UAAU,KAAVA,MAAAA,GAAAA,MAAAA,GAAAA,UAAU,CAAEO,OAAO;EACzC,IAAMC,UAAU,GAAGC,OAAO,CACxB,YAAA;AAAA,IAAA,OAAMC,WAAW,CAACd,iBAAiB,EAAEU,aAAa,CAAC;GACnD,EAAA,CAACA,aAAa,CAChB,CAAC;AAED,EAAA,IAAMK,eAAe,GAAG,SAAlBA,eAAeA,CAAGC,iBAAiB,EAAI;AAC3C,IAAA,IAAML,OAAO,GACX,OAAOK,iBAAiB,KAAK,UAAU,GACnCA,iBAAiB,CAACJ,UAAU,CAAC,GAC7BI,iBAAiB;AACvB,IAAA,IAAMC,OAAO,GAAG;AAAElB,MAAAA,QAAQ,EAARA,QAAQ;MAAEY,OAAO,EAAEO,UAAU,CAACP,OAAO;KAAG;AAC1DH,IAAAA,YAAY,CAAC;AAAET,MAAAA,QAAQ,EAARA,QAAQ;AAAEkB,MAAAA,OAAO,EAAPA;AAAQ,KAAC,CAAC;GACpC;EAED,OAAO;AAAEd,IAAAA,SAAS,EAATA,SAAS;AAAES,IAAAA,UAAU,EAAVA,UAAU;AAAEG,IAAAA,eAAe,EAAfA;GAAiB;AACnD;;;;"}
@@ -0,0 +1,29 @@
1
+ import { useQuery } from '@tanstack/react-query';
2
+ import useMutationWithInvalidation from '../useMutationWithInvalidation/useMutationWithInvalidation.js';
3
+ import configApi from './api.js';
4
+ import { TABLE_CONFIGURATION_QUERY_KEY } from './constants.js';
5
+ import '../../defineProperty-CrCYjjU3.js';
6
+ import '../../typeof-D-UKOauR.js';
7
+ import '../../objectWithoutProperties-DN7d1SzH.js';
8
+ import 'ramda';
9
+ import 'axios';
10
+
11
+ var useFetchConfig = function useFetchConfig(_ref) {
12
+ var tableKey = _ref.tableKey;
13
+ return useQuery({
14
+ queryKey: [TABLE_CONFIGURATION_QUERY_KEY, tableKey],
15
+ enabled: !!tableKey,
16
+ queryFn: function queryFn() {
17
+ return configApi.fetch(tableKey);
18
+ }
19
+ });
20
+ };
21
+ var useUpdateConfig = function useUpdateConfig(_ref2) {
22
+ var tableKey = _ref2.tableKey;
23
+ return useMutationWithInvalidation(configApi.update, {
24
+ keysToInvalidate: [[TABLE_CONFIGURATION_QUERY_KEY, tableKey]]
25
+ });
26
+ };
27
+
28
+ export { useFetchConfig, useUpdateConfig };
29
+ //# sourceMappingURL=useConfigApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useConfigApi.js","sources":["../../../src/react-utils/useColumnConfig/useConfigApi.js"],"sourcesContent":["import { useQuery } from \"@tanstack/react-query\";\nimport useMutationWithInvalidation from \"react-utils/useMutationWithInvalidation\";\n\nimport configApi from \"./api\";\nimport { TABLE_CONFIGURATION_QUERY_KEY } from \"./constants\";\n\nconst useFetchConfig = ({ tableKey }) =>\n useQuery({\n queryKey: [TABLE_CONFIGURATION_QUERY_KEY, tableKey],\n enabled: !!tableKey,\n queryFn: () => configApi.fetch(tableKey),\n });\n\nconst useUpdateConfig = ({ tableKey }) =>\n useMutationWithInvalidation(configApi.update, {\n keysToInvalidate: [[TABLE_CONFIGURATION_QUERY_KEY, tableKey]],\n });\n\nexport { useFetchConfig, useUpdateConfig };\n"],"names":["useFetchConfig","_ref","tableKey","useQuery","queryKey","TABLE_CONFIGURATION_QUERY_KEY","enabled","queryFn","configApi","fetch","useUpdateConfig","_ref2","useMutationWithInvalidation","update","keysToInvalidate"],"mappings":";;;;;;;;;;AAMA,IAAMA,cAAc,GAAG,SAAjBA,cAAcA,CAAAC,IAAA,EAAA;AAAA,EAAA,IAAMC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;AAAA,EAAA,OAChCC,QAAQ,CAAC;AACPC,IAAAA,QAAQ,EAAE,CAACC,6BAA6B,EAAEH,QAAQ,CAAC;IACnDI,OAAO,EAAE,CAAC,CAACJ,QAAQ;IACnBK,OAAO,EAAE,SAATA,OAAOA,GAAA;AAAA,MAAA,OAAQC,SAAS,CAACC,KAAK,CAACP,QAAQ,CAAC;AAAA;AAC1C,GAAC,CAAC;AAAA;AAEJ,IAAMQ,eAAe,GAAG,SAAlBA,eAAeA,CAAAC,KAAA,EAAA;AAAA,EAAA,IAAMT,QAAQ,GAAAS,KAAA,CAART,QAAQ;AAAA,EAAA,OACjCU,2BAA2B,CAACJ,SAAS,CAACK,MAAM,EAAE;AAC5CC,IAAAA,gBAAgB,EAAE,CAAC,CAACT,6BAA6B,EAAEH,QAAQ,CAAC;AAC9D,GAAC,CAAC;AAAA;;;;"}
@@ -0,0 +1,26 @@
1
+ import { _ as _defineProperty } from '../../defineProperty-CrCYjjU3.js';
2
+ import { map, pick } from 'ramda';
3
+ import { ALLOWED_CONFIG_KEYS } from './constants.js';
4
+ import '../../typeof-D-UKOauR.js';
5
+
6
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
7
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
8
+ var mergeConfig = function mergeConfig(columnData) {
9
+ var configuration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
10
+ var columnMap = new Map(); // Using Map for correct ordering of columns.
11
+
12
+ configuration.forEach(function (config) {
13
+ columnMap.set(config.key, config);
14
+ });
15
+ columnData.forEach(function (column) {
16
+ var _col$hidden;
17
+ var col = _objectSpread(_objectSpread({}, column), columnMap.get(column.key));
18
+ col.hidden = (_col$hidden = col.hidden) !== null && _col$hidden !== void 0 ? _col$hidden : col.isShown === false;
19
+ columnMap.set(column.key, col);
20
+ });
21
+ return Array.from(columnMap.values());
22
+ };
23
+ var packConfig = map(pick(ALLOWED_CONFIG_KEYS));
24
+
25
+ export { mergeConfig, packConfig };
26
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sources":["../../../src/react-utils/useColumnConfig/utils.js"],"sourcesContent":["import { map, pick } from \"ramda\";\nimport { ALLOWED_CONFIG_KEYS } from \"./constants\";\n\nexport const mergeConfig = (columnData, configuration = []) => {\n const columnMap = new Map(); // Using Map for correct ordering of columns.\n\n configuration.forEach(config => {\n columnMap.set(config.key, config);\n });\n\n columnData.forEach(column => {\n const col = { ...column, ...columnMap.get(column.key) };\n col.hidden = col.hidden ?? col.isShown === false;\n columnMap.set(column.key, col);\n });\n\n return Array.from(columnMap.values());\n};\n\nexport const packConfig = map(pick(ALLOWED_CONFIG_KEYS));\n"],"names":["mergeConfig","columnData","configuration","arguments","length","undefined","columnMap","Map","forEach","config","set","key","column","_col$hidden","col","_objectSpread","get","hidden","isShown","Array","from","values","packConfig","map","pick","ALLOWED_CONFIG_KEYS"],"mappings":";;;;;;;IAGaA,WAAW,GAAG,SAAdA,WAAWA,CAAIC,UAAU,EAAyB;AAAA,EAAA,IAAvBC,aAAa,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AACxD,EAAA,IAAMG,SAAS,GAAG,IAAIC,GAAG,EAAE,CAAC;;AAE5BL,EAAAA,aAAa,CAACM,OAAO,CAAC,UAAAC,MAAM,EAAI;IAC9BH,SAAS,CAACI,GAAG,CAACD,MAAM,CAACE,GAAG,EAAEF,MAAM,CAAC;AACnC,GAAC,CAAC;AAEFR,EAAAA,UAAU,CAACO,OAAO,CAAC,UAAAI,MAAM,EAAI;AAAA,IAAA,IAAAC,WAAA;AAC3B,IAAA,IAAMC,GAAG,GAAAC,aAAA,CAAAA,aAAA,KAAQH,MAAM,CAAA,EAAKN,SAAS,CAACU,GAAG,CAACJ,MAAM,CAACD,GAAG,CAAC,CAAE;AACvDG,IAAAA,GAAG,CAACG,MAAM,GAAA,CAAAJ,WAAA,GAAGC,GAAG,CAACG,MAAM,MAAAJ,IAAAA,IAAAA,WAAA,cAAAA,WAAA,GAAIC,GAAG,CAACI,OAAO,KAAK,KAAK;IAChDZ,SAAS,CAACI,GAAG,CAACE,MAAM,CAACD,GAAG,EAAEG,GAAG,CAAC;AAChC,GAAC,CAAC;EAEF,OAAOK,KAAK,CAACC,IAAI,CAACd,SAAS,CAACe,MAAM,EAAE,CAAC;AACvC;AAEO,IAAMC,UAAU,GAAGC,GAAG,CAACC,IAAI,CAACC,mBAAmB,CAAC;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bigbinary/neeto-commons-frontend",
3
- "version": "4.13.83",
3
+ "version": "4.13.84",
4
4
  "description": "A package encapsulating common code across neeto projects including initializers, utility functions, common components and hooks and so on.",
5
5
  "repository": "git@github.com:bigbinary/neeto-commons-frontend.git",
6
6
  "author": "Amaljith K <amaljith.k@bigbinary.com>",
package/react-utils.d.ts CHANGED
@@ -1820,4 +1820,88 @@ type Breakpoints = { [key in BreakpointKeys]: boolean };
1820
1820
  export function useBreakpoints<T extends {}>(breakpointOverrides?: (window: Window) => Partial<T & Breakpoints>): {
1821
1821
  currentSize: BreakpointKeys | keyof T;
1822
1822
  isSize: (size: BreakpointKeys | keyof T) => boolean;
1823
+ };
1824
+ /**
1825
+ *
1826
+ * The useColumnConfig hook is used to manage attributes of table columns and
1827
+ *
1828
+ * their updates. This hook provides functionality to fetch, merge, and persist
1829
+ *
1830
+ * column configurations for data tables. The changes made to column configurations
1831
+ *
1832
+ * are automatically saved to the database, ensuring that user preferences for
1833
+ *
1834
+ * table layouts are preserved across sessions.
1835
+ *
1836
+ * The hook handles merging default column data with user-saved configurations.
1837
+ *
1838
+ * This hook returns an object with the following properties:
1839
+ *
1840
+ * The following code snippet demonstrates how to use useColumnConfig in a table
1841
+ *
1842
+ * component:
1843
+ *
1844
+ * @example
1845
+ *
1846
+ * import { useColumnConfig } from "@bigbinary/neeto-commons-frontend/react-utils";
1847
+ *
1848
+ * const defaultColumns = [
1849
+ * { key: "name", isShown: true, description: "User Name" },
1850
+ * { key: "email", isShown: true, description: "Email Address" },
1851
+ * { key: "created_at", isShown: false, description: "Created Date" },
1852
+ * { key: "updated_at", isShown: false, description: "Last Updated" },
1853
+ * ];
1854
+ *
1855
+ * const MyTable = () => {
1856
+ * const { columnData, onUpdateColumns } = useColumnConfig({
1857
+ * tableKey: "users_table",
1858
+ * defaultColumnData: defaultColumns,
1859
+ * });
1860
+ *
1861
+ * const handleColumnToggle = columnKey => {
1862
+ * onUpdateColumns(columns =>
1863
+ * columns.map(column =>
1864
+ * column.key === columnKey
1865
+ * ? { ...column, isShown: !column.isShown }
1866
+ * : column
1867
+ * )
1868
+ * );
1869
+ * };
1870
+ *
1871
+ * const handleColumnReorder = newColumnOrder => {
1872
+ * onUpdateColumns(newColumnOrder);
1873
+ * };
1874
+ *
1875
+ * return (
1876
+ * <div>
1877
+ * {columnData.map(column => (
1878
+ * <div key={column.key}>
1879
+ * <label>
1880
+ * <input
1881
+ * type="checkbox"
1882
+ * checked={column.isShown}
1883
+ * onChange={() => handleColumnToggle(column.key)}
1884
+ * />
1885
+ * {column.description}
1886
+ * </label>
1887
+ * </div>
1888
+ * ))}
1889
+ * </div>
1890
+ * );
1891
+ * };
1892
+ * @endexample
1893
+ * Each column object in the configuration can contain the following properties:
1894
+ *
1895
+ * Currently, only these properties are persisted to the database
1896
+ *
1897
+ */
1898
+ export function useColumnConfig<ColumnData>({
1899
+ tableKey,
1900
+ defaultColumnData
1901
+ }: {
1902
+ tableKey: string;
1903
+ defaultColumnData: ColumnData[];
1904
+ }): {
1905
+ columnData: ColumnData[];
1906
+ onUpdateColumns: (columnsOrCallback: ColumnData[] | ((columnData: ColumnData[]) => ColumnData[])) => void;
1823
1907
  };