@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.
- package/README.md +50 -35
- package/column-settings-manager/dist/commercetools-uikit-data-table-manager-column-settings-manager.cjs.d.ts +2 -0
- package/column-settings-manager/dist/commercetools-uikit-data-table-manager-column-settings-manager.cjs.dev.js +43 -0
- package/column-settings-manager/dist/commercetools-uikit-data-table-manager-column-settings-manager.cjs.js +7 -0
- package/column-settings-manager/dist/commercetools-uikit-data-table-manager-column-settings-manager.cjs.prod.js +43 -0
- package/column-settings-manager/dist/commercetools-uikit-data-table-manager-column-settings-manager.esm.js +35 -0
- package/column-settings-manager/package.json +4 -0
- package/data-table-manager-provider/dist/commercetools-uikit-data-table-manager-data-table-manager-provider.cjs.dev.js +6 -4
- package/data-table-manager-provider/dist/commercetools-uikit-data-table-manager-data-table-manager-provider.cjs.prod.js +6 -4
- package/data-table-manager-provider/dist/commercetools-uikit-data-table-manager-data-table-manager-provider.esm.js +6 -4
- package/dist/column-settings-manager-1430ee4f.esm.js +463 -0
- package/dist/column-settings-manager-92b54563.cjs.dev.js +494 -0
- package/dist/column-settings-manager-b08669e8.cjs.prod.js +407 -0
- package/dist/commercetools-uikit-data-table-manager.cjs.dev.js +139 -461
- package/dist/commercetools-uikit-data-table-manager.cjs.prod.js +134 -380
- package/dist/commercetools-uikit-data-table-manager.esm.js +141 -452
- package/dist/{data-table-manager-provider-3f60b85b.esm.js → data-table-manager-provider-32eb58dd.esm.js} +41 -9
- package/dist/{data-table-manager-provider-6c690fc1.cjs.dev.js → data-table-manager-provider-c64c81aa.cjs.prod.js} +43 -10
- package/dist/{data-table-manager-provider-ddf7fb63.cjs.prod.js → data-table-manager-provider-fc238633.cjs.dev.js} +43 -10
- package/dist/declarations/src/column-settings-manager/column-settings-manager.d.ts +26 -0
- package/dist/declarations/src/column-settings-manager/export-types.d.ts +3 -0
- package/dist/declarations/src/column-settings-manager/index.d.ts +2 -0
- package/dist/declarations/src/constants.d.ts +2 -0
- package/dist/declarations/src/data-table-manager-provider/data-table-manager-provider.d.ts +11 -2
- package/dist/declarations/src/data-table-manager-provider/types.d.ts +62 -0
- package/dist/declarations/src/export-types.d.ts +2 -0
- package/dist/declarations/src/index.d.ts +1 -0
- package/dist/declarations/src/settings-container/index.d.ts +2 -0
- package/dist/declarations/src/settings-container/settings-container.d.ts +23 -0
- package/dist/declarations/src/types.d.ts +203 -2
- 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;
|