@commercetools-uikit/data-table-manager 19.8.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 +139 -461
  15. package/dist/commercetools-uikit-data-table-manager.cjs.prod.js +134 -380
  16. package/dist/commercetools-uikit-data-table-manager.esm.js +141 -452
  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
@@ -0,0 +1,407 @@
1
+ 'use strict';
2
+
3
+ var _defineProperty = require('@babel/runtime-corejs3/helpers/defineProperty');
4
+ var _slicedToArray = require('@babel/runtime-corejs3/helpers/slicedToArray');
5
+ var _styled = require('@emotion/styled/base');
6
+ require('prop-types');
7
+ var _Promise = require('@babel/runtime-corejs3/core-js-stable/promise');
8
+ var _sliceInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/slice');
9
+ var _findInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/find');
10
+ var _Object$keys = require('@babel/runtime-corejs3/core-js-stable/object/keys');
11
+ var _Object$getOwnPropertySymbols = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols');
12
+ var _filterInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/filter');
13
+ var _Object$getOwnPropertyDescriptor = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor');
14
+ var _forEachInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/for-each');
15
+ var _Object$getOwnPropertyDescriptors = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors');
16
+ var _Object$defineProperties = require('@babel/runtime-corejs3/core-js-stable/object/define-properties');
17
+ var _Object$defineProperty = require('@babel/runtime-corejs3/core-js-stable/object/define-property');
18
+ var react = require('react');
19
+ var reactIntl = require('react-intl');
20
+ var reactBeautifulDnd = require('react-beautiful-dnd');
21
+ var debounce = require('debounce-promise');
22
+ var differenceWith = require('lodash/differenceWith');
23
+ var designSystem = require('@commercetools-uikit/design-system');
24
+ var AsyncSelectInput = require('@commercetools-uikit/async-select-input');
25
+ var FieldLabel = require('@commercetools-uikit/field-label');
26
+ var Spacings = require('@commercetools-uikit/spacings');
27
+ var icons = require('@commercetools-uikit/icons');
28
+ require('@commercetools-uikit/utils');
29
+ var jsxRuntime = require('@emotion/react/jsx-runtime');
30
+ var AccessibleButton = require('@commercetools-uikit/accessible-button');
31
+ var CollapsibleMotion = require('@commercetools-uikit/collapsible-motion');
32
+ var Card = require('@commercetools-uikit/card');
33
+ var Text = require('@commercetools-uikit/text');
34
+ var _mapInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/map');
35
+ var _concatInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/concat');
36
+ var Tag = require('@commercetools-uikit/tag');
37
+
38
+ function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
39
+
40
+ var _styled__default = /*#__PURE__*/_interopDefault(_styled);
41
+ var _Promise__default = /*#__PURE__*/_interopDefault(_Promise);
42
+ var _sliceInstanceProperty__default = /*#__PURE__*/_interopDefault(_sliceInstanceProperty);
43
+ var _findInstanceProperty__default = /*#__PURE__*/_interopDefault(_findInstanceProperty);
44
+ var _Object$keys__default = /*#__PURE__*/_interopDefault(_Object$keys);
45
+ var _Object$getOwnPropertySymbols__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertySymbols);
46
+ var _filterInstanceProperty__default = /*#__PURE__*/_interopDefault(_filterInstanceProperty);
47
+ var _Object$getOwnPropertyDescriptor__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertyDescriptor);
48
+ var _forEachInstanceProperty__default = /*#__PURE__*/_interopDefault(_forEachInstanceProperty);
49
+ var _Object$getOwnPropertyDescriptors__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertyDescriptors);
50
+ var _Object$defineProperties__default = /*#__PURE__*/_interopDefault(_Object$defineProperties);
51
+ var _Object$defineProperty__default = /*#__PURE__*/_interopDefault(_Object$defineProperty);
52
+ var debounce__default = /*#__PURE__*/_interopDefault(debounce);
53
+ var differenceWith__default = /*#__PURE__*/_interopDefault(differenceWith);
54
+ var AsyncSelectInput__default = /*#__PURE__*/_interopDefault(AsyncSelectInput);
55
+ var FieldLabel__default = /*#__PURE__*/_interopDefault(FieldLabel);
56
+ var Spacings__default = /*#__PURE__*/_interopDefault(Spacings);
57
+ var AccessibleButton__default = /*#__PURE__*/_interopDefault(AccessibleButton);
58
+ var CollapsibleMotion__default = /*#__PURE__*/_interopDefault(CollapsibleMotion);
59
+ var Card__default = /*#__PURE__*/_interopDefault(Card);
60
+ var Text__default = /*#__PURE__*/_interopDefault(Text);
61
+ var _mapInstanceProperty__default = /*#__PURE__*/_interopDefault(_mapInstanceProperty);
62
+ var _concatInstanceProperty__default = /*#__PURE__*/_interopDefault(_concatInstanceProperty);
63
+ var Tag__default = /*#__PURE__*/_interopDefault(Tag);
64
+
65
+ const HeaderContainer = /*#__PURE__*/_styled__default["default"]("div", {
66
+ target: "e6ezr101"
67
+ } )({
68
+ name: "1bhm8h2",
69
+ styles: "display:flex;flex:1;justify-content:space-between"
70
+ } );
71
+ const CardContentWrapper = /*#__PURE__*/_styled__default["default"]("div", {
72
+ target: "e6ezr100"
73
+ } )("padding:", designSystem.designTokens.spacing40, " ", designSystem.designTokens.spacing50, ";" + ("" ));
74
+ const SettingsContainer = props => {
75
+ const intl = reactIntl.useIntl();
76
+ return jsxRuntime.jsx(CollapsibleMotion__default["default"], {
77
+ isDefaultClosed: false,
78
+ children: _ref => {
79
+ let registerContentNode = _ref.registerContentNode,
80
+ containerStyles = _ref.containerStyles;
81
+ return jsxRuntime.jsx(Card__default["default"], {
82
+ type: "raised",
83
+ insetScale: "none",
84
+ theme: props.containerTheme,
85
+ children: jsxRuntime.jsx(CardContentWrapper, {
86
+ children: jsxRuntime.jsxs(Spacings__default["default"].Stack, {
87
+ scale: "xl",
88
+ children: [jsxRuntime.jsxs(HeaderContainer, {
89
+ children: [props.customSettingsTitle ? jsxRuntime.jsx(Text__default["default"].Headline, {
90
+ as: "h2",
91
+ children: props.customSettingsTitle
92
+ }) : jsxRuntime.jsx(Text__default["default"].Headline, {
93
+ as: "h2",
94
+ intlMessage: props.title
95
+ }), jsxRuntime.jsx(AccessibleButton__default["default"], {
96
+ onClick: props.onClose,
97
+ label: intl.formatMessage(props.closeButtonLabel),
98
+ children: jsxRuntime.jsx(icons.CloseIcon, {
99
+ size: "medium"
100
+ })
101
+ })]
102
+ }), jsxRuntime.jsxs(Spacings__default["default"].Stack, {
103
+ scale: "l",
104
+ children: [jsxRuntime.jsx(Spacings__default["default"].Inset, {
105
+ scale: "s",
106
+ children: jsxRuntime.jsx("div", {
107
+ style: containerStyles,
108
+ children: jsxRuntime.jsx("div", {
109
+ ref: registerContentNode,
110
+ children: props.children
111
+ })
112
+ })
113
+ }), (props.secondaryButton || props.primaryButton) && jsxRuntime.jsxs(Spacings__default["default"].Inline, {
114
+ justifyContent: "flex-end",
115
+ children: [props.secondaryButton, props.primaryButton]
116
+ })]
117
+ })]
118
+ })
119
+ })
120
+ });
121
+ }
122
+ });
123
+ };
124
+ SettingsContainer.propTypes = {};
125
+ SettingsContainer.displayName = 'SettingsContainer';
126
+ const defaultProps$1 = {
127
+ containerTheme: 'dark'
128
+ };
129
+ SettingsContainer.defaultProps = defaultProps$1;
130
+ var SettingsContainer$1 = SettingsContainer;
131
+
132
+ const DraggingSmall = /*#__PURE__*/_styled__default["default"]("small", {
133
+ target: "e1mp438g1"
134
+ } )({
135
+ name: "1fhyj3b",
136
+ styles: "&:hover{cursor:grab;}"
137
+ } );
138
+ const DraggingContainer = /*#__PURE__*/_styled__default["default"]("div", {
139
+ target: "e1mp438g0"
140
+ } )(DraggingSmall, ";" + ("" ));
141
+ var DraggingContainer$1 = DraggingContainer;
142
+
143
+ function ownKeys$1(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; }
144
+ function _objectSpread$1(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$1(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$1(Object(t))).call(_context2, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
145
+ const DraggableTagWrapper = /*#__PURE__*/_styled__default["default"]("div", {
146
+ target: "emzjy4n0"
147
+ } )("padding:", designSystem.designTokens.spacing10, " 0;" + ("" ));
148
+ const DraggableTag = props => {
149
+ const handleRemoveColumn = () => {
150
+ var _props$onRemove;
151
+ return (_props$onRemove = props.onRemove) === null || _props$onRemove === void 0 ? void 0 : _props$onRemove.call(props, props.index);
152
+ };
153
+ return jsxRuntime.jsx(reactBeautifulDnd.Draggable, {
154
+ draggableId: props.column.key,
155
+ index: props.index,
156
+ isDragDisabled: props.isDisabled,
157
+ children: provided => {
158
+ return jsxRuntime.jsx(DraggableTagWrapper, {
159
+ children: jsxRuntime.jsx(DraggingContainer$1, _objectSpread$1(_objectSpread$1(_objectSpread$1({
160
+ ref: provided.innerRef
161
+ }, provided.draggableProps), provided.dragHandleProps), {}, {
162
+ children: jsxRuntime.jsx(Tag__default["default"], {
163
+ onRemove: props.onRemove ? handleRemoveColumn : undefined,
164
+ isDisabled: props.isDisabled,
165
+ isDraggable: true,
166
+ children: props.column.label
167
+ })
168
+ }))
169
+ });
170
+ }
171
+ });
172
+ };
173
+ DraggableTag.propTypes = {};
174
+ DraggableTag.displayName = 'DraggableTag';
175
+ var DraggableTag$1 = DraggableTag;
176
+
177
+ const TagContainerEditable = /*#__PURE__*/_styled__default["default"]("div", {
178
+ target: "e7rakq0"
179
+ } )("background-color:", designSystem.designTokens.colorSurface, ";border:1px solid ", designSystem.designTokens.colorNeutral, ";border-radius:", designSystem.designTokens.borderRadius4, ";padding:", designSystem.designTokens.spacing30, ";height:", designSystem.designTokens.constraint7, ";overflow:auto;" + ("" ));
180
+ var TagContainerEditable$1 = TagContainerEditable;
181
+
182
+ var messages$1 = reactIntl.defineMessages({
183
+ loadMoreAttributesHint: {
184
+ id: 'UIKit.DataTableManager.ColumnManager.DroppablePanel.loadMoreAttributesHint',
185
+ description: 'Indicate that the user can use the search input to load more attributes',
186
+ defaultMessage: 'Load more attributes by using the search input above'
187
+ }
188
+ });
189
+
190
+ const DroppablePanel = props => {
191
+ return jsxRuntime.jsx(reactBeautifulDnd.Droppable, {
192
+ droppableId: props.droppableId,
193
+ children: provided => {
194
+ var _context;
195
+ return jsxRuntime.jsxs(TagContainerEditable$1, {
196
+ "data-testid": props.droppableId,
197
+ ref: provided.innerRef,
198
+ children: [props.columns.length === 0 ? jsxRuntime.jsx(Spacings__default["default"].Inset, {
199
+ scale: "s",
200
+ children: jsxRuntime.jsx(Text__default["default"].Detail, {
201
+ tone: "secondary",
202
+ children: props.noColumnsText
203
+ })
204
+ }) : jsxRuntime.jsxs(jsxRuntime.Fragment, {
205
+ children: [_mapInstanceProperty__default["default"](_context = props.columns).call(_context, (column, index) => {
206
+ var _context2;
207
+ return jsxRuntime.jsx(DraggableTag$1, {
208
+ column: column,
209
+ index: index,
210
+ onRemove: props.onRemove ? () => {
211
+ var _context3, _context4;
212
+ return props.onRemove([..._sliceInstanceProperty__default["default"](_context3 = props.columns).call(_context3, 0, index), ..._sliceInstanceProperty__default["default"](_context4 = props.columns).call(_context4, index + 1)]);
213
+ } : undefined,
214
+ isDisabled: props.isDisabled
215
+ }, _concatInstanceProperty__default["default"](_context2 = "".concat(column.key, "-")).call(_context2, index));
216
+ }), props.isSearchable && jsxRuntime.jsx(Spacings__default["default"].Inset, {
217
+ scale: "xs",
218
+ children: jsxRuntime.jsx(Text__default["default"].Detail, {
219
+ tone: "secondary",
220
+ intlMessage: messages$1.loadMoreAttributesHint
221
+ })
222
+ })]
223
+ }), provided.placeholder]
224
+ });
225
+ }
226
+ });
227
+ };
228
+ DroppablePanel.propTypes = {};
229
+ DroppablePanel.displayName = 'DroppablePanel';
230
+ var DroppablePanel$1 = DroppablePanel;
231
+
232
+ var messages = reactIntl.defineMessages({
233
+ title: {
234
+ id: 'UIKit.DataTableManager.ColumnManager.title',
235
+ description: 'Title for the column manager component.',
236
+ defaultMessage: 'Column Manager'
237
+ },
238
+ visibleColumns: {
239
+ id: 'UIKit.DataTableManager.ColumnSelectorGroups.visible',
240
+ description: 'Message for the visible columns section.',
241
+ defaultMessage: 'Visible columns'
242
+ },
243
+ hiddenColumns: {
244
+ id: 'UIKit.DataTableManager.ColumnManager.hiddenColumns',
245
+ description: 'Message for the hidden columns section',
246
+ defaultMessage: 'Hidden columns'
247
+ },
248
+ noSelectedColumnsToShow: {
249
+ id: 'UIKit.DataTableManager.ColumnManager.noSelectedColumnsToShow',
250
+ description: 'Label when there are no selected columns to show',
251
+ defaultMessage: 'There are no selected columns to show.'
252
+ },
253
+ noHiddenColumnsToShow: {
254
+ id: 'UIKit.DataTableManager.ColumnManager.noHiddenColumnsToShow',
255
+ description: 'Label when there are no hidden columns to show',
256
+ defaultMessage: 'There are no hidden columns to show.'
257
+ },
258
+ closeButtonLabel: {
259
+ id: 'UIKit.DataTableManager.ColumnManager.closeButtonLabel',
260
+ description: 'Label for density manager close button.',
261
+ defaultMessage: 'Close'
262
+ }
263
+ });
264
+
265
+ const HIDDEN_COLUMNS_PANEL = 'hidden-columns-panel';
266
+ const SELECTED_COLUMNS_PANEL = 'selected-columns-panel';
267
+
268
+ 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; }
269
+ 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; }
270
+ const noSearch = () => _Promise__default["default"].resolve([]);
271
+ // 'onChange' prop in AsyncSelectInput is required but not needed here
272
+ const voidChangeHandler = () => undefined;
273
+ const DroppableContainer = /*#__PURE__*/_styled__default["default"]("div", {
274
+ target: "en01od20"
275
+ } )("width:100%;position:relative;max-width:", designSystem.designTokens.constraint10, ";cursor:", props => props.isDragging ? 'grabbing' : 'auto', ";" + ("" ));
276
+ const handleColumnsUpdate = (dragResult, onUpdateColumns, selectedColumns, availableColumns, setIsDragging) => {
277
+ setIsDragging(false);
278
+ // Invalid drop destination, do nothing
279
+ if (!dragResult.destination) return;
280
+ if (dragResult.destination.droppableId === HIDDEN_COLUMNS_PANEL) {
281
+ if (dragResult.source.droppableId === HIDDEN_COLUMNS_PANEL) return;
282
+ onUpdateColumns([..._sliceInstanceProperty__default["default"](selectedColumns).call(selectedColumns, 0, dragResult.source.index), ..._sliceInstanceProperty__default["default"](selectedColumns).call(selectedColumns, dragResult.source.index + 1)]);
283
+ } else {
284
+ // the destination is the selected columns panel
285
+
286
+ // it's a swap when the source and the destination are the same
287
+ const isSwap = dragResult.source.droppableId === SELECTED_COLUMNS_PANEL;
288
+ const items = isSwap ?
289
+ // remove the dragged item from its position if it is not coming from
290
+ // the hidden section (it is a swap)
291
+ [..._sliceInstanceProperty__default["default"](selectedColumns).call(selectedColumns, 0, dragResult.source.index), ..._sliceInstanceProperty__default["default"](selectedColumns).call(selectedColumns, dragResult.source.index + 1)] : selectedColumns;
292
+ const columns = isSwap ? selectedColumns : availableColumns;
293
+ const draggedColumn = _findInstanceProperty__default["default"](columns).call(columns, col => col.key === dragResult.draggableId);
294
+
295
+ // push the column in the new position if draggedColumn is found
296
+ if (draggedColumn) {
297
+ onUpdateColumns([..._sliceInstanceProperty__default["default"](items).call(items, 0, dragResult.destination.index), draggedColumn, ..._sliceInstanceProperty__default["default"](items).call(items, dragResult.destination.index)]);
298
+ }
299
+ }
300
+ };
301
+ const DropdownIndicator = () => jsxRuntime.jsx(Spacings__default["default"].Inline, {
302
+ alignItems: "center",
303
+ children: jsxRuntime.jsx(icons.SearchIcon, {
304
+ size: "medium",
305
+ color: "primary"
306
+ })
307
+ });
308
+ DropdownIndicator.displayName = 'DropdownIndicator';
309
+ const Nothing = () => null;
310
+ const selectInputComponents = {
311
+ Option: Nothing,
312
+ Menu: Nothing,
313
+ DropdownIndicator
314
+ };
315
+ const ColumnSettingsManager = props => {
316
+ if (props.areHiddenColumnsSearchable) ;
317
+ const intl = reactIntl.useIntl();
318
+ const _useState = react.useState(false),
319
+ _useState2 = _slicedToArray(_useState, 2),
320
+ isDragging = _useState2[0],
321
+ setIsDragging = _useState2[1];
322
+ const searchHiddenColumns = props.searchHiddenColumns;
323
+ const handleDragStart = () => {
324
+ setIsDragging(true);
325
+ };
326
+ const hiddenColumns = react.useMemo(() => differenceWith__default["default"](props.availableColumns, props.selectedColumns, (a, b) => a.key === b.key), [props.availableColumns, props.selectedColumns]);
327
+ const handleDragEnd = react.useCallback(dragResult => handleColumnsUpdate(dragResult, props.onUpdateColumns, props.selectedColumns, props.availableColumns, setIsDragging), [props.onUpdateColumns, props.selectedColumns, props.availableColumns]);
328
+ const debouncedSearchHiddenColumns = react.useMemo(() => debounce__default["default"](searchHiddenColumns !== null && searchHiddenColumns !== void 0 ? searchHiddenColumns : noSearch, 300), [searchHiddenColumns]);
329
+ const handleInputChange = react.useCallback(inputValue => debouncedSearchHiddenColumns(inputValue), [debouncedSearchHiddenColumns]);
330
+ return jsxRuntime.jsx(SettingsContainer$1, {
331
+ customSettingsTitle: props.title,
332
+ title: messages.title,
333
+ closeButtonLabel: messages.closeButtonLabel,
334
+ onClose: props.onClose,
335
+ primaryButton: props.primaryButton,
336
+ secondaryButton: props.secondaryButton,
337
+ containerTheme: props.managerTheme,
338
+ children: jsxRuntime.jsx(reactBeautifulDnd.DragDropContext, {
339
+ onDragEnd: handleDragEnd,
340
+ onDragStart: handleDragStart,
341
+ children: jsxRuntime.jsxs(Spacings__default["default"].Inline, {
342
+ scale: "l",
343
+ children: [jsxRuntime.jsx(DroppableContainer, {
344
+ isDragging: isDragging,
345
+ "aria-labelledby": "hidden-columns",
346
+ children: jsxRuntime.jsxs(Spacings__default["default"].Stack, {
347
+ scale: "m",
348
+ children: [jsxRuntime.jsxs(Spacings__default["default"].Inline, {
349
+ scale: "s",
350
+ alignItems: "center",
351
+ children: [jsxRuntime.jsx(icons.EyeCrossedIcon, {
352
+ size: "big"
353
+ }), jsxRuntime.jsx(FieldLabel__default["default"], {
354
+ id: "hidden-columns",
355
+ title: intl.formatMessage(messages.hiddenColumns)
356
+ })]
357
+ }), props.areHiddenColumnsSearchable && jsxRuntime.jsx(AsyncSelectInput__default["default"], _objectSpread(_objectSpread({}, props.searchHiddenColumnsPlaceholder ? {
358
+ placeholder: props.searchHiddenColumnsPlaceholder
359
+ } : undefined), {}, {
360
+ onChange: voidChangeHandler,
361
+ loadOptions: noSearch,
362
+ onInputChange: handleInputChange,
363
+ components: selectInputComponents
364
+ })), jsxRuntime.jsx(DroppablePanel$1, {
365
+ droppableId: HIDDEN_COLUMNS_PANEL,
366
+ "data-testid": HIDDEN_COLUMNS_PANEL,
367
+ noColumnsText: intl.formatMessage(messages.noHiddenColumnsToShow),
368
+ columns: hiddenColumns,
369
+ isSearchable: props.areHiddenColumnsSearchable
370
+ })]
371
+ })
372
+ }), jsxRuntime.jsx(DroppableContainer, {
373
+ isDragging: isDragging,
374
+ "aria-labelledby": "visible-columns",
375
+ children: jsxRuntime.jsxs(Spacings__default["default"].Stack, {
376
+ scale: "m",
377
+ children: [jsxRuntime.jsxs(Spacings__default["default"].Inline, {
378
+ scale: "xs",
379
+ alignItems: "center",
380
+ children: [jsxRuntime.jsx(icons.EyeIcon, {
381
+ size: "medium"
382
+ }), jsxRuntime.jsx(FieldLabel__default["default"], {
383
+ id: "visible-columns",
384
+ title: intl.formatMessage(messages.visibleColumns)
385
+ })]
386
+ }), jsxRuntime.jsx(DroppablePanel$1, {
387
+ droppableId: SELECTED_COLUMNS_PANEL,
388
+ "data-testid": SELECTED_COLUMNS_PANEL,
389
+ noColumnsText: intl.formatMessage(messages.noSelectedColumnsToShow),
390
+ columns: props.selectedColumns,
391
+ onRemove: props.onUpdateColumns
392
+ })]
393
+ })
394
+ })]
395
+ })
396
+ })
397
+ });
398
+ };
399
+ ColumnSettingsManager.propTypes = {};
400
+ ColumnSettingsManager.displayName = 'ColumnSettingsManager';
401
+ const defaultProps = {
402
+ availableColumns: []
403
+ };
404
+ ColumnSettingsManager.defaultProps = defaultProps;
405
+
406
+ exports.ColumnSettingsManager = ColumnSettingsManager;
407
+ exports.SettingsContainer = SettingsContainer$1;