@commercetools-uikit/data-table-manager 19.9.0 → 19.10.0

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 +50 -35
  2. package/column-settings-manager/dist/commercetools-uikit-data-table-manager-column-settings-manager.cjs.d.ts +2 -0
  3. package/column-settings-manager/dist/commercetools-uikit-data-table-manager-column-settings-manager.cjs.dev.js +43 -0
  4. package/column-settings-manager/dist/commercetools-uikit-data-table-manager-column-settings-manager.cjs.js +7 -0
  5. package/column-settings-manager/dist/commercetools-uikit-data-table-manager-column-settings-manager.cjs.prod.js +43 -0
  6. package/column-settings-manager/dist/commercetools-uikit-data-table-manager-column-settings-manager.esm.js +35 -0
  7. package/column-settings-manager/package.json +4 -0
  8. package/data-table-manager-provider/dist/commercetools-uikit-data-table-manager-data-table-manager-provider.cjs.dev.js +6 -4
  9. package/data-table-manager-provider/dist/commercetools-uikit-data-table-manager-data-table-manager-provider.cjs.prod.js +6 -4
  10. package/data-table-manager-provider/dist/commercetools-uikit-data-table-manager-data-table-manager-provider.esm.js +6 -4
  11. package/dist/column-settings-manager-1430ee4f.esm.js +463 -0
  12. package/dist/column-settings-manager-92b54563.cjs.dev.js +494 -0
  13. package/dist/column-settings-manager-b08669e8.cjs.prod.js +407 -0
  14. package/dist/commercetools-uikit-data-table-manager.cjs.dev.js +142 -464
  15. package/dist/commercetools-uikit-data-table-manager.cjs.prod.js +137 -383
  16. package/dist/commercetools-uikit-data-table-manager.esm.js +143 -454
  17. package/dist/{data-table-manager-provider-3f60b85b.esm.js → data-table-manager-provider-32eb58dd.esm.js} +41 -9
  18. package/dist/{data-table-manager-provider-6c690fc1.cjs.dev.js → data-table-manager-provider-c64c81aa.cjs.prod.js} +43 -10
  19. package/dist/{data-table-manager-provider-ddf7fb63.cjs.prod.js → data-table-manager-provider-fc238633.cjs.dev.js} +43 -10
  20. package/dist/declarations/src/column-settings-manager/column-settings-manager.d.ts +26 -0
  21. package/dist/declarations/src/column-settings-manager/export-types.d.ts +3 -0
  22. package/dist/declarations/src/column-settings-manager/index.d.ts +2 -0
  23. package/dist/declarations/src/constants.d.ts +2 -0
  24. package/dist/declarations/src/data-table-manager-provider/data-table-manager-provider.d.ts +11 -2
  25. package/dist/declarations/src/data-table-manager-provider/types.d.ts +62 -0
  26. package/dist/declarations/src/export-types.d.ts +2 -0
  27. package/dist/declarations/src/index.d.ts +1 -0
  28. package/dist/declarations/src/settings-container/index.d.ts +2 -0
  29. package/dist/declarations/src/settings-container/settings-container.d.ts +23 -0
  30. package/dist/declarations/src/types.d.ts +203 -2
  31. package/package.json +29 -25
@@ -1,22 +1,26 @@
1
+ import _defineProperty from '@babel/runtime-corejs3/helpers/esm/defineProperty';
2
+ import _slicedToArray from '@babel/runtime-corejs3/helpers/esm/slicedToArray';
3
+ import _forEachInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/for-each';
4
+ import _Object$entries from '@babel/runtime-corejs3/core-js-stable/object/entries';
5
+ import _mapInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/map';
1
6
  import _Object$keys from '@babel/runtime-corejs3/core-js-stable/object/keys';
2
7
  import _Object$getOwnPropertySymbols from '@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols';
3
8
  import _filterInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/filter';
4
9
  import _Object$getOwnPropertyDescriptor from '@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor';
5
- import _forEachInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/for-each';
6
10
  import _Object$getOwnPropertyDescriptors from '@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors';
7
11
  import _Object$defineProperties from '@babel/runtime-corejs3/core-js-stable/object/define-properties';
8
12
  import _Object$defineProperty from '@babel/runtime-corejs3/core-js-stable/object/define-property';
9
- import _defineProperty from '@babel/runtime-corejs3/helpers/esm/defineProperty';
10
- import _mapInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/map';
11
- import { useContext, useMemo, createContext } from 'react';
13
+ import { useContext, useState, useMemo, createContext } from 'react';
12
14
  import { jsx } from '@emotion/react/jsx-runtime';
13
15
 
14
16
  function ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = _filterInstanceProperty(o).call(o, function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
15
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _context, _context2; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty(_context = ownKeys(Object(t), !0)).call(_context, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : _forEachInstanceProperty(_context2 = ownKeys(Object(t))).call(_context2, function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
17
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _context2, _context3; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty(_context2 = ownKeys(Object(t), !0)).call(_context2, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : _forEachInstanceProperty(_context3 = ownKeys(Object(t))).call(_context3, function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
16
18
  const DataTableManagerContext = /*#__PURE__*/createContext({
17
19
  columns: [],
18
20
  displaySettings: undefined,
19
- isCondensed: true
21
+ isCondensed: true,
22
+ debug: false,
23
+ additionalSettings: {}
20
24
  });
21
25
  const useDataTableManagerContext = () => {
22
26
  const dataTableManagerContext = useContext(DataTableManagerContext);
@@ -31,10 +35,30 @@ const DataTableManagerProvider = _ref => {
31
35
  displaySettings = _ref.displaySettings,
32
36
  topBar = _ref.topBar,
33
37
  onSettingsChange = _ref.onSettingsChange,
34
- columnManager = _ref.columnManager;
38
+ columnManager = _ref.columnManager,
39
+ customSettings = _ref.customSettings,
40
+ selectedColumns = _ref.selectedColumns,
41
+ customColumnManager = _ref.customColumnManager,
42
+ customColumns = _ref.customColumns,
43
+ debug = _ref.debug;
44
+ const _useState = useState({}),
45
+ _useState2 = _slicedToArray(_useState, 2),
46
+ additionalSettings = _useState2[0],
47
+ setAdditionalSettings = _useState2[1];
48
+ const updateCustomSettings = additionalCustomSettings => {
49
+ setAdditionalSettings(additionalCustomSettings);
50
+ };
35
51
  const decoupledDataTableManagerContext = useMemo(() => {
52
+ var _context;
36
53
  const areDisplaySettingsEnabled = Boolean(displaySettings && !displaySettings.disableDisplaySettings);
37
54
  const isWrappingText = areDisplaySettingsEnabled && displaySettings.isWrappingText;
55
+ const customSettingsPayload = {};
56
+ customSettings && _forEachInstanceProperty(_context = _Object$entries(customSettings)).call(_context, _ref2 => {
57
+ let _ref3 = _slicedToArray(_ref2, 2),
58
+ key = _ref3[0],
59
+ settingsPayload = _ref3[1];
60
+ customSettingsPayload[key] = settingsPayload;
61
+ });
38
62
  return {
39
63
  columns: _mapInstanceProperty(columns).call(columns, column => _objectSpread(_objectSpread({}, column), {}, {
40
64
  isTruncated: areDisplaySettingsEnabled ? isWrappingText : column.isTruncated
@@ -43,9 +67,17 @@ const DataTableManagerProvider = _ref => {
43
67
  topBar,
44
68
  onSettingsChange,
45
69
  columnManager,
46
- isCondensed: areDisplaySettingsEnabled && displaySettings.isCondensed
70
+ customSettings,
71
+ customSettingsPayload,
72
+ isCondensed: areDisplaySettingsEnabled && displaySettings.isCondensed,
73
+ updateCustomSettings: settings => updateCustomSettings(settings),
74
+ additionalSettings,
75
+ selectedColumns,
76
+ customColumnManager,
77
+ customColumns,
78
+ debug // TODO - remove when nested rows are implemented
47
79
  };
48
- }, [columns, displaySettings, topBar, onSettingsChange, columnManager]);
80
+ }, [displaySettings, customSettings, columns, topBar, onSettingsChange, columnManager, additionalSettings, selectedColumns, customColumnManager, customColumns, debug]);
49
81
  return jsx(DataTableManagerContext.Provider, {
50
82
  value: decoupledDataTableManagerContext,
51
83
  children: children
@@ -1,36 +1,41 @@
1
1
  'use strict';
2
2
 
3
+ var _defineProperty = require('@babel/runtime-corejs3/helpers/defineProperty');
4
+ var _slicedToArray = require('@babel/runtime-corejs3/helpers/slicedToArray');
5
+ var _forEachInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/for-each');
6
+ var _Object$entries = require('@babel/runtime-corejs3/core-js-stable/object/entries');
7
+ var _mapInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/map');
3
8
  var _Object$keys = require('@babel/runtime-corejs3/core-js-stable/object/keys');
4
9
  var _Object$getOwnPropertySymbols = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols');
5
10
  var _filterInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/filter');
6
11
  var _Object$getOwnPropertyDescriptor = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor');
7
- var _forEachInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/for-each');
8
12
  var _Object$getOwnPropertyDescriptors = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors');
9
13
  var _Object$defineProperties = require('@babel/runtime-corejs3/core-js-stable/object/define-properties');
10
14
  var _Object$defineProperty = require('@babel/runtime-corejs3/core-js-stable/object/define-property');
11
- var _defineProperty = require('@babel/runtime-corejs3/helpers/defineProperty');
12
- var _mapInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/map');
13
15
  var react = require('react');
14
16
  var jsxRuntime = require('@emotion/react/jsx-runtime');
15
17
 
16
18
  function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
17
19
 
20
+ var _forEachInstanceProperty__default = /*#__PURE__*/_interopDefault(_forEachInstanceProperty);
21
+ var _Object$entries__default = /*#__PURE__*/_interopDefault(_Object$entries);
22
+ var _mapInstanceProperty__default = /*#__PURE__*/_interopDefault(_mapInstanceProperty);
18
23
  var _Object$keys__default = /*#__PURE__*/_interopDefault(_Object$keys);
19
24
  var _Object$getOwnPropertySymbols__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertySymbols);
20
25
  var _filterInstanceProperty__default = /*#__PURE__*/_interopDefault(_filterInstanceProperty);
21
26
  var _Object$getOwnPropertyDescriptor__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertyDescriptor);
22
- var _forEachInstanceProperty__default = /*#__PURE__*/_interopDefault(_forEachInstanceProperty);
23
27
  var _Object$getOwnPropertyDescriptors__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertyDescriptors);
24
28
  var _Object$defineProperties__default = /*#__PURE__*/_interopDefault(_Object$defineProperties);
25
29
  var _Object$defineProperty__default = /*#__PURE__*/_interopDefault(_Object$defineProperty);
26
- var _mapInstanceProperty__default = /*#__PURE__*/_interopDefault(_mapInstanceProperty);
27
30
 
28
31
  function ownKeys(e, r) { var t = _Object$keys__default["default"](e); if (_Object$getOwnPropertySymbols__default["default"]) { var o = _Object$getOwnPropertySymbols__default["default"](e); r && (o = _filterInstanceProperty__default["default"](o).call(o, function (r) { return _Object$getOwnPropertyDescriptor__default["default"](e, r).enumerable; })), t.push.apply(t, o); } return t; }
29
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _context, _context2; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys(Object(t), !0)).call(_context, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys(Object(t))).call(_context2, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
32
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _context2, _context3; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context2 = ownKeys(Object(t), !0)).call(_context2, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context3 = ownKeys(Object(t))).call(_context3, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
30
33
  const DataTableManagerContext = /*#__PURE__*/react.createContext({
31
34
  columns: [],
32
35
  displaySettings: undefined,
33
- isCondensed: true
36
+ isCondensed: true,
37
+ debug: false,
38
+ additionalSettings: {}
34
39
  });
35
40
  const useDataTableManagerContext = () => {
36
41
  const dataTableManagerContext = react.useContext(DataTableManagerContext);
@@ -45,10 +50,30 @@ const DataTableManagerProvider = _ref => {
45
50
  displaySettings = _ref.displaySettings,
46
51
  topBar = _ref.topBar,
47
52
  onSettingsChange = _ref.onSettingsChange,
48
- columnManager = _ref.columnManager;
53
+ columnManager = _ref.columnManager,
54
+ customSettings = _ref.customSettings,
55
+ selectedColumns = _ref.selectedColumns,
56
+ customColumnManager = _ref.customColumnManager,
57
+ customColumns = _ref.customColumns,
58
+ debug = _ref.debug;
59
+ const _useState = react.useState({}),
60
+ _useState2 = _slicedToArray(_useState, 2),
61
+ additionalSettings = _useState2[0],
62
+ setAdditionalSettings = _useState2[1];
63
+ const updateCustomSettings = additionalCustomSettings => {
64
+ setAdditionalSettings(additionalCustomSettings);
65
+ };
49
66
  const decoupledDataTableManagerContext = react.useMemo(() => {
67
+ var _context;
50
68
  const areDisplaySettingsEnabled = Boolean(displaySettings && !displaySettings.disableDisplaySettings);
51
69
  const isWrappingText = areDisplaySettingsEnabled && displaySettings.isWrappingText;
70
+ const customSettingsPayload = {};
71
+ customSettings && _forEachInstanceProperty__default["default"](_context = _Object$entries__default["default"](customSettings)).call(_context, _ref2 => {
72
+ let _ref3 = _slicedToArray(_ref2, 2),
73
+ key = _ref3[0],
74
+ settingsPayload = _ref3[1];
75
+ customSettingsPayload[key] = settingsPayload;
76
+ });
52
77
  return {
53
78
  columns: _mapInstanceProperty__default["default"](columns).call(columns, column => _objectSpread(_objectSpread({}, column), {}, {
54
79
  isTruncated: areDisplaySettingsEnabled ? isWrappingText : column.isTruncated
@@ -57,9 +82,17 @@ const DataTableManagerProvider = _ref => {
57
82
  topBar,
58
83
  onSettingsChange,
59
84
  columnManager,
60
- isCondensed: areDisplaySettingsEnabled && displaySettings.isCondensed
85
+ customSettings,
86
+ customSettingsPayload,
87
+ isCondensed: areDisplaySettingsEnabled && displaySettings.isCondensed,
88
+ updateCustomSettings: settings => updateCustomSettings(settings),
89
+ additionalSettings,
90
+ selectedColumns,
91
+ customColumnManager,
92
+ customColumns,
93
+ debug // TODO - remove when nested rows are implemented
61
94
  };
62
- }, [columns, displaySettings, topBar, onSettingsChange, columnManager]);
95
+ }, [displaySettings, customSettings, columns, topBar, onSettingsChange, columnManager, additionalSettings, selectedColumns, customColumnManager, customColumns, debug]);
63
96
  return jsxRuntime.jsx(DataTableManagerContext.Provider, {
64
97
  value: decoupledDataTableManagerContext,
65
98
  children: children
@@ -1,36 +1,41 @@
1
1
  'use strict';
2
2
 
3
+ var _defineProperty = require('@babel/runtime-corejs3/helpers/defineProperty');
4
+ var _slicedToArray = require('@babel/runtime-corejs3/helpers/slicedToArray');
5
+ var _forEachInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/for-each');
6
+ var _Object$entries = require('@babel/runtime-corejs3/core-js-stable/object/entries');
7
+ var _mapInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/map');
3
8
  var _Object$keys = require('@babel/runtime-corejs3/core-js-stable/object/keys');
4
9
  var _Object$getOwnPropertySymbols = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols');
5
10
  var _filterInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/filter');
6
11
  var _Object$getOwnPropertyDescriptor = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor');
7
- var _forEachInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/for-each');
8
12
  var _Object$getOwnPropertyDescriptors = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors');
9
13
  var _Object$defineProperties = require('@babel/runtime-corejs3/core-js-stable/object/define-properties');
10
14
  var _Object$defineProperty = require('@babel/runtime-corejs3/core-js-stable/object/define-property');
11
- var _defineProperty = require('@babel/runtime-corejs3/helpers/defineProperty');
12
- var _mapInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/map');
13
15
  var react = require('react');
14
16
  var jsxRuntime = require('@emotion/react/jsx-runtime');
15
17
 
16
18
  function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
17
19
 
20
+ var _forEachInstanceProperty__default = /*#__PURE__*/_interopDefault(_forEachInstanceProperty);
21
+ var _Object$entries__default = /*#__PURE__*/_interopDefault(_Object$entries);
22
+ var _mapInstanceProperty__default = /*#__PURE__*/_interopDefault(_mapInstanceProperty);
18
23
  var _Object$keys__default = /*#__PURE__*/_interopDefault(_Object$keys);
19
24
  var _Object$getOwnPropertySymbols__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertySymbols);
20
25
  var _filterInstanceProperty__default = /*#__PURE__*/_interopDefault(_filterInstanceProperty);
21
26
  var _Object$getOwnPropertyDescriptor__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertyDescriptor);
22
- var _forEachInstanceProperty__default = /*#__PURE__*/_interopDefault(_forEachInstanceProperty);
23
27
  var _Object$getOwnPropertyDescriptors__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertyDescriptors);
24
28
  var _Object$defineProperties__default = /*#__PURE__*/_interopDefault(_Object$defineProperties);
25
29
  var _Object$defineProperty__default = /*#__PURE__*/_interopDefault(_Object$defineProperty);
26
- var _mapInstanceProperty__default = /*#__PURE__*/_interopDefault(_mapInstanceProperty);
27
30
 
28
31
  function ownKeys(e, r) { var t = _Object$keys__default["default"](e); if (_Object$getOwnPropertySymbols__default["default"]) { var o = _Object$getOwnPropertySymbols__default["default"](e); r && (o = _filterInstanceProperty__default["default"](o).call(o, function (r) { return _Object$getOwnPropertyDescriptor__default["default"](e, r).enumerable; })), t.push.apply(t, o); } return t; }
29
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _context, _context2; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys(Object(t), !0)).call(_context, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys(Object(t))).call(_context2, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
32
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _context2, _context3; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context2 = ownKeys(Object(t), !0)).call(_context2, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context3 = ownKeys(Object(t))).call(_context3, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
30
33
  const DataTableManagerContext = /*#__PURE__*/react.createContext({
31
34
  columns: [],
32
35
  displaySettings: undefined,
33
- isCondensed: true
36
+ isCondensed: true,
37
+ debug: false,
38
+ additionalSettings: {}
34
39
  });
35
40
  const useDataTableManagerContext = () => {
36
41
  const dataTableManagerContext = react.useContext(DataTableManagerContext);
@@ -45,10 +50,30 @@ const DataTableManagerProvider = _ref => {
45
50
  displaySettings = _ref.displaySettings,
46
51
  topBar = _ref.topBar,
47
52
  onSettingsChange = _ref.onSettingsChange,
48
- columnManager = _ref.columnManager;
53
+ columnManager = _ref.columnManager,
54
+ customSettings = _ref.customSettings,
55
+ selectedColumns = _ref.selectedColumns,
56
+ customColumnManager = _ref.customColumnManager,
57
+ customColumns = _ref.customColumns,
58
+ debug = _ref.debug;
59
+ const _useState = react.useState({}),
60
+ _useState2 = _slicedToArray(_useState, 2),
61
+ additionalSettings = _useState2[0],
62
+ setAdditionalSettings = _useState2[1];
63
+ const updateCustomSettings = additionalCustomSettings => {
64
+ setAdditionalSettings(additionalCustomSettings);
65
+ };
49
66
  const decoupledDataTableManagerContext = react.useMemo(() => {
67
+ var _context;
50
68
  const areDisplaySettingsEnabled = Boolean(displaySettings && !displaySettings.disableDisplaySettings);
51
69
  const isWrappingText = areDisplaySettingsEnabled && displaySettings.isWrappingText;
70
+ const customSettingsPayload = {};
71
+ customSettings && _forEachInstanceProperty__default["default"](_context = _Object$entries__default["default"](customSettings)).call(_context, _ref2 => {
72
+ let _ref3 = _slicedToArray(_ref2, 2),
73
+ key = _ref3[0],
74
+ settingsPayload = _ref3[1];
75
+ customSettingsPayload[key] = settingsPayload;
76
+ });
52
77
  return {
53
78
  columns: _mapInstanceProperty__default["default"](columns).call(columns, column => _objectSpread(_objectSpread({}, column), {}, {
54
79
  isTruncated: areDisplaySettingsEnabled ? isWrappingText : column.isTruncated
@@ -57,9 +82,17 @@ const DataTableManagerProvider = _ref => {
57
82
  topBar,
58
83
  onSettingsChange,
59
84
  columnManager,
60
- isCondensed: areDisplaySettingsEnabled && displaySettings.isCondensed
85
+ customSettings,
86
+ customSettingsPayload,
87
+ isCondensed: areDisplaySettingsEnabled && displaySettings.isCondensed,
88
+ updateCustomSettings: settings => updateCustomSettings(settings),
89
+ additionalSettings,
90
+ selectedColumns,
91
+ customColumnManager,
92
+ customColumns,
93
+ debug // TODO - remove when nested rows are implemented
61
94
  };
62
- }, [columns, displaySettings, topBar, onSettingsChange, columnManager]);
95
+ }, [displaySettings, customSettings, columns, topBar, onSettingsChange, columnManager, additionalSettings, selectedColumns, customColumnManager, customColumns, debug]);
63
96
  return jsxRuntime.jsx(DataTableManagerContext.Provider, {
64
97
  value: decoupledDataTableManagerContext,
65
98
  children: children
@@ -0,0 +1,26 @@
1
+ import { type ReactElement, type ReactNode, type MouseEvent, type KeyboardEvent, type Dispatch } from 'react';
2
+ import { type DropResult } from 'react-beautiful-dnd';
3
+ export type TColumnData = {
4
+ key: string;
5
+ label: ReactNode;
6
+ };
7
+ export type TColumnSettingsManagerProps = {
8
+ title?: string;
9
+ availableColumns: TColumnData[];
10
+ selectedColumns: TColumnData[];
11
+ onUpdateColumns: (updatedColums: TColumnData[]) => void;
12
+ areHiddenColumnsSearchable?: boolean;
13
+ searchHiddenColumns?: (searchTerm: string) => Promise<void> | void;
14
+ searchHiddenColumnsPlaceholder?: string;
15
+ onClose: (event: MouseEvent<HTMLButtonElement> | KeyboardEvent<HTMLButtonElement>) => void;
16
+ primaryButton?: ReactElement;
17
+ secondaryButton?: ReactElement;
18
+ managerTheme?: 'light' | 'dark';
19
+ };
20
+ export declare const handleColumnsUpdate: (dragResult: DropResult, onUpdateColumns: TColumnSettingsManagerProps["onUpdateColumns"], selectedColumns: TColumnSettingsManagerProps["selectedColumns"], availableColumns: TColumnSettingsManagerProps["availableColumns"], setIsDragging: Dispatch<boolean>) => void;
21
+ export declare const ColumnSettingsManager: {
22
+ (props: TColumnSettingsManagerProps): import("@emotion/react/jsx-runtime").JSX.Element;
23
+ displayName: string;
24
+ defaultProps: Pick<TColumnSettingsManagerProps, "availableColumns">;
25
+ };
26
+ export default ColumnSettingsManager;
@@ -0,0 +1,3 @@
1
+ import type { TColumnSettingsManagerProps as ColumnSettingsManagerProps, TColumnData as ColumnData } from "./column-settings-manager.js";
2
+ export type TColumnSettingsManagerProps = ColumnSettingsManagerProps;
3
+ export type TColumnData = ColumnData;
@@ -0,0 +1,2 @@
1
+ export { ColumnSettingsManager } from "./column-settings-manager.js";
2
+ export * from "./export-types.js";
@@ -1,5 +1,7 @@
1
1
  export declare const UPDATE_ACTIONS: {
2
2
  COLUMNS_UPDATE: string;
3
+ CUSTOM_SETTINGS_UPDATE: string;
4
+ CUSTOM_COLUMNS_UPDATE: string;
3
5
  IS_TABLE_CONDENSED_UPDATE: string;
4
6
  IS_TABLE_WRAPPING_TEXT_UPDATE: string;
5
7
  };
@@ -1,15 +1,24 @@
1
- import type { TDataTableSettingsProps, TColumnManagerProps } from "../types.js";
1
+ import type { TDataTableSettingsProps, TColumnManagerProps, TCustomSettingsProps } from "../types.js";
2
2
  import type { TDataTableManagerColumnProps, TRow } from "./types.js";
3
+ import { TColumnData } from "../column-settings-manager/index.js";
3
4
  export type TDataTableManagerContext<Row extends TRow = TRow> = TDataTableSettingsProps & {
4
5
  columns: TDataTableManagerColumnProps<Row>[];
5
6
  isCondensed?: boolean;
7
+ customSettingsPayload?: Record<string, unknown>;
8
+ customColumns?: TColumnData[];
9
+ debug: boolean;
6
10
  };
7
11
  export declare const useDataTableManagerContext: () => TDataTableManagerContext<TRow>;
8
- export declare const DataTableManagerProvider: ({ children, columns, displaySettings, topBar, onSettingsChange, columnManager, }: {
12
+ export declare const DataTableManagerProvider: ({ children, columns, displaySettings, topBar, onSettingsChange, columnManager, customSettings, selectedColumns, customColumnManager, customColumns, debug, }: {
9
13
  children: React.ReactNode;
10
14
  columns: TDataTableManagerColumnProps[];
11
15
  displaySettings: TDataTableSettingsProps["displaySettings"];
12
16
  topBar: string;
13
17
  onSettingsChange: () => void;
14
18
  columnManager: TColumnManagerProps;
19
+ customSettings?: TCustomSettingsProps[];
20
+ selectedColumns?: TColumnData[];
21
+ customColumnManager?: TColumnManagerProps;
22
+ customColumns?: TColumnData[];
23
+ debug: boolean;
15
24
  }) => import("@emotion/react/jsx-runtime").JSX.Element;
@@ -3,15 +3,77 @@ export interface TRow {
3
3
  id: string;
4
4
  }
5
5
  export type TDataTableManagerColumnProps<Row extends TRow = TRow> = {
6
+ /**
7
+ * The unique key of the column that is used to identify your data type.
8
+ * You can use this value to determine which value from a row item should be rendered.
9
+ * <br>
10
+ * For example, if the data is a list of users, where each user has a `firstName` property,
11
+ * the column key should be `firstName`, which renders the correct value by default.
12
+ * The key can also be some custom or computed value, in which case you need to provide
13
+ * an explicit mapping of the value by implementing either the `itemRendered` function or
14
+ * the column-specific `renderItem` function.
15
+ */
6
16
  key: string;
17
+ /**
18
+ * The label of the column that will be shown on the column header.
19
+ */
7
20
  label: ReactNode;
21
+ /**
22
+ * Sets a width for this column. Accepts the same values as the ones specified for
23
+ * individual [grid-template-columns](https://developer.mozilla.org/en-US/docs/Web/CSS/grid-template-columns).
24
+ * <br>
25
+ * For example, using `minmax` pairs (e.g. `minmax(200px, 400px)`), a combinations of
26
+ * fraction values (`1fr`/`2fr`/etc), or fixed values such as `200px`.
27
+ * By default, the column grows according to the content and respecting the total table available width.
28
+ */
8
29
  width?: string;
30
+ /**
31
+ * Use this to override the table's own `horizontalCellAlignment` prop for this specific column.
32
+ */
9
33
  align?: 'left' | 'center' | 'right';
34
+ /**
35
+ * A callback function, called when the header cell is clicked.
36
+ */
10
37
  onClick?: (event: MouseEventHandler) => void;
38
+ /**
39
+ * A callback function to render the content of cells under this column, overriding
40
+ * the default `itemRenderer` prop of the table.
41
+ */
11
42
  renderItem?: (row: Row, isRowCollapsed: boolean) => ReactNode;
43
+ /**
44
+ * Use this prop to place an `Icon` or `IconButton` on the left of the column label.
45
+ * It is advised to place these types of components through this prop instead of `label`,
46
+ * in order to properly position and align the elements.
47
+ * This is particularly useful for medium-sized icons which require more vertical space than the typography.
48
+ */
12
49
  headerIcon?: ReactNode;
50
+ /**
51
+ * Set this to `true` to allow text content of this cell to be truncated with an ellipsis,
52
+ * instead of breaking into multiple lines.
53
+ * <br>
54
+ * NOTE: when using this option, it is recommended to specify a `width` for the column, because
55
+ * if the table doesn't have enough space for all columns, it will start clipping the columns
56
+ * with _truncated_ content, and if no `width` is set (or the value is set `auto` -- the default)
57
+ * it can shrink until the column disappears completely.
58
+ * By enforcing a minimum width for these columns, the table will respect them and grow horizontally,
59
+ * adding scrollbars if needed.
60
+ */
13
61
  isTruncated?: boolean;
62
+ /**
63
+ * Set this to `true` to show a sorting button, which calls `onSortChange` upon being clicked.
64
+ * You should enable this flag for every column you want to be able to sort.
65
+ * When at least one column is sortable, the table props `sortBy`, `sortDirection` and `onSortChange` should be provided.
66
+ */
14
67
  isSortable?: boolean;
68
+ /**
69
+ * Set this to `true` to prevent this column from being manually resized by dragging
70
+ * the edge of the header with a mouse.
71
+ */
15
72
  disableResizing?: boolean;
73
+ /**
74
+ * Set this to `true` to prevent click event propagation for this cell.
75
+ * You might want this if you need the column to have its own call-to-action or input while
76
+ * the row also has a defined `onRowClick`.
77
+ */
16
78
  shouldIgnoreRowClick?: boolean;
17
79
  };
@@ -1,2 +1,4 @@
1
1
  export type { TRow, TColumnProps, TDataTableManagerProps, TColumnData, TDataTableSettingsProps, } from "./types.js";
2
+ export type { TColumnSettingsManagerProps } from "./column-settings-manager/index.js";
2
3
  export type { TDataTableManagerContext } from "./data-table-manager-provider/index.js";
4
+ export type { TIntlMessage } from "./settings-container/index.js";
@@ -2,5 +2,6 @@ export { default } from "./data-table-manager.js";
2
2
  export { DataTableManagerProvider, useDataTableManagerContext, } from "./data-table-manager-provider/index.js";
3
3
  export { UPDATE_ACTIONS } from "./constants.js";
4
4
  export { default as version } from "./version.js";
5
+ export { ColumnSettingsManager } from "./column-settings-manager/index.js";
5
6
  export * from "./export-types.js";
6
7
  export { useRowSelection, useSorting } from '@commercetools-uikit/hooks';
@@ -0,0 +1,2 @@
1
+ export { default } from "./settings-container.js";
2
+ export type { TIntlMessage } from "./settings-container.js";
@@ -0,0 +1,23 @@
1
+ import type { KeyboardEvent, MouseEvent, ReactElement, ReactNode } from 'react';
2
+ import { type MessageDescriptor } from 'react-intl';
3
+ export type TIntlMessage = MessageDescriptor & {
4
+ values?: Record<string, React.ReactNode>;
5
+ };
6
+ type TSettingsContainerProps = {
7
+ title?: TIntlMessage;
8
+ closeButtonLabel: MessageDescriptor & {
9
+ values?: Record<string, React.ReactNode>;
10
+ };
11
+ onClose: (event: MouseEvent<HTMLButtonElement> | KeyboardEvent<HTMLButtonElement>) => void;
12
+ primaryButton?: ReactElement;
13
+ secondaryButton?: ReactElement;
14
+ children: ReactNode;
15
+ containerTheme?: 'light' | 'dark';
16
+ customSettingsTitle?: string | TIntlMessage;
17
+ };
18
+ declare const SettingsContainer: {
19
+ (props: TSettingsContainerProps): import("@emotion/react/jsx-runtime").JSX.Element;
20
+ displayName: string;
21
+ defaultProps: Pick<TSettingsContainerProps, "containerTheme">;
22
+ };
23
+ export default SettingsContainer;