@bigbinary/neeto-folders-frontend 1.1.7 → 2.0.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 +9 -2
- package/app/javascript/src/translations/en.json +19 -16
- package/dist/cjs/components.js +496 -134
- package/dist/cjs/components.js.map +1 -1
- package/dist/cjs/hooks.js +3 -1
- package/dist/cjs/hooks.js.map +1 -1
- package/dist/cjs/utils.js +6 -2
- package/dist/cjs/utils.js.map +1 -1
- package/dist/components.js +474 -112
- package/dist/components.js.map +1 -1
- package/dist/hooks.js +3 -1
- package/dist/hooks.js.map +1 -1
- package/dist/{pathUtils-W8cEGsHR.js → index-BFO1zYNo.js} +39 -16
- package/dist/index-BFO1zYNo.js.map +1 -0
- package/dist/{pathUtils-DSapmYDO.js → index-Cq1DyvVr.js} +38 -17
- package/dist/index-Cq1DyvVr.js.map +1 -0
- package/dist/internal-CS6_tPWL.js +21 -0
- package/dist/internal-CS6_tPWL.js.map +1 -0
- package/dist/internal-G6z0jIQe.js +17 -0
- package/dist/internal-G6z0jIQe.js.map +1 -0
- package/dist/{useFolderActions-DdOLB5Zw.js → useFolderActions-BLpmmlOf.js} +32 -42
- package/dist/useFolderActions-BLpmmlOf.js.map +1 -0
- package/dist/{useFolderActions-BSW7tGU6.js → useFolderActions-D8xGNhk0.js} +32 -44
- package/dist/useFolderActions-D8xGNhk0.js.map +1 -0
- package/dist/utils.js +4 -1
- package/dist/utils.js.map +1 -1
- package/package.json +11 -11
- package/types.d.ts +10 -2
- package/dist/pathUtils-DSapmYDO.js.map +0 -1
- package/dist/pathUtils-W8cEGsHR.js.map +0 -1
- package/dist/useFolderActions-BSW7tGU6.js.map +0 -1
- package/dist/useFolderActions-DdOLB5Zw.js.map +0 -1
package/dist/cjs/components.js
CHANGED
|
@@ -1,25 +1,31 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
4
|
-
var
|
|
5
|
-
var _regeneratorRuntime = require('@babel/runtime/regenerator');
|
|
4
|
+
var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
|
6
5
|
var shallow = require('zustand/shallow');
|
|
6
|
+
var reactQuery = require('@tanstack/react-query');
|
|
7
7
|
var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
|
|
8
|
-
var utils = require('@bigbinary/neeto-commons-frontend/utils');
|
|
8
|
+
var utils$1 = require('@bigbinary/neeto-commons-frontend/utils');
|
|
9
9
|
var Alert = require('@bigbinary/neetoui/Alert');
|
|
10
10
|
var reactI18next = require('react-i18next');
|
|
11
11
|
var reactRouterDom = require('react-router-dom');
|
|
12
|
-
var useFolderActions = require('../useFolderActions-
|
|
13
|
-
var
|
|
12
|
+
var useFolderActions = require('../useFolderActions-D8xGNhk0.js');
|
|
13
|
+
var constants = require('./constants.js');
|
|
14
|
+
var utils = require('../index-BFO1zYNo.js');
|
|
15
|
+
var internal = require('../internal-CS6_tPWL.js');
|
|
14
16
|
var jsxRuntime = require('react/jsx-runtime');
|
|
15
17
|
var Pane = require('@bigbinary/neetoui/Pane');
|
|
16
|
-
var
|
|
18
|
+
var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');
|
|
19
|
+
var _regeneratorRuntime = require('@babel/runtime/regenerator');
|
|
20
|
+
var React = require('react');
|
|
17
21
|
var formik = require('formik');
|
|
18
22
|
var Typography = require('@bigbinary/neetoui/Typography');
|
|
19
23
|
var Input = require('@bigbinary/neetoui/formik/Input');
|
|
20
24
|
var ActionBlock = require('@bigbinary/neetoui/formik/ActionBlock');
|
|
21
|
-
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
22
25
|
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
|
26
|
+
var Switch = require('@bigbinary/neetoui/formik/Switch');
|
|
27
|
+
var Textarea = require('@bigbinary/neetoui/formik/Textarea');
|
|
28
|
+
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
23
29
|
var antd = require('antd');
|
|
24
30
|
var classNames = require('classnames');
|
|
25
31
|
var Down = require('@bigbinary/neeto-icons/Down');
|
|
@@ -36,12 +42,23 @@ var MoreDropdown = require('@bigbinary/neeto-molecules/MoreDropdown');
|
|
|
36
42
|
var Checkbox = require('@bigbinary/neetoui/Checkbox');
|
|
37
43
|
var Tree = require('@bigbinary/neetoui/Tree');
|
|
38
44
|
require('i18next');
|
|
39
|
-
require('@tanstack/react-query');
|
|
40
|
-
require('./constants.js');
|
|
41
45
|
require('zustand');
|
|
42
46
|
|
|
43
|
-
function ownKeys$
|
|
44
|
-
function _objectSpread$
|
|
47
|
+
function ownKeys$e(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; }
|
|
48
|
+
function _objectSpread$e(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$e(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$e(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
49
|
+
var useTranslation = function useTranslation(config) {
|
|
50
|
+
var _useDefaultTranslatio = reactI18next.useTranslation(),
|
|
51
|
+
t = _useDefaultTranslatio.t;
|
|
52
|
+
var modT = function modT(key, options) {
|
|
53
|
+
return config !== null && config !== void 0 && config.labels ? t(key, _objectSpread$e(_objectSpread$e({}, config.labels), options)) : t(key, options);
|
|
54
|
+
};
|
|
55
|
+
return {
|
|
56
|
+
t: modT
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
function ownKeys$d(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; }
|
|
61
|
+
function _objectSpread$d(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$d(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$d(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
45
62
|
var FoldersAlerts = function FoldersAlerts(_ref) {
|
|
46
63
|
var config = _ref.config;
|
|
47
64
|
var _useFolderStore = useFolderActions.useFolderStore(function (store) {
|
|
@@ -53,8 +70,9 @@ var FoldersAlerts = function FoldersAlerts(_ref) {
|
|
|
53
70
|
var queryParams = reactUtils.useQueryParams({
|
|
54
71
|
toCamelCase: false
|
|
55
72
|
});
|
|
73
|
+
var queryClient = reactQuery.useQueryClient();
|
|
56
74
|
var history = reactRouterDom.useHistory();
|
|
57
|
-
var _useTranslation =
|
|
75
|
+
var _useTranslation = useTranslation(config),
|
|
58
76
|
t = _useTranslation.t;
|
|
59
77
|
var _useFolderStore2 = useFolderActions.useFolderStore(function (store) {
|
|
60
78
|
var _store$alertState, _store$alertState2;
|
|
@@ -67,7 +85,7 @@ var FoldersAlerts = function FoldersAlerts(_ref) {
|
|
|
67
85
|
item = _useFolderStore2.item;
|
|
68
86
|
var _useDestroyFolder = useFolderActions.useDestroyFolder(config),
|
|
69
87
|
destroyFolder = _useDestroyFolder.mutateAsync,
|
|
70
|
-
|
|
88
|
+
isPending = _useDestroyFolder.isPending;
|
|
71
89
|
var _useFolders = useFolderActions.useFolders(config),
|
|
72
90
|
folders = _useFolders.folders;
|
|
73
91
|
var onClose = function onClose() {
|
|
@@ -77,46 +95,33 @@ var FoldersAlerts = function FoldersAlerts(_ref) {
|
|
|
77
95
|
};
|
|
78
96
|
var alertProps = {
|
|
79
97
|
isOpen: !!type,
|
|
80
|
-
isSubmitting:
|
|
98
|
+
isSubmitting: isPending,
|
|
81
99
|
onClose: onClose
|
|
82
100
|
};
|
|
83
|
-
var onConfirmDelete =
|
|
84
|
-
var
|
|
85
|
-
var
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
if (parent) {
|
|
102
|
-
_context.next = 9;
|
|
103
|
-
break;
|
|
104
|
-
}
|
|
105
|
-
return _context.abrupt("return");
|
|
106
|
-
case 9:
|
|
107
|
-
history.replace(utils.buildUrl(config.folderPath, _objectSpread$a(_objectSpread$a({}, queryParams), {}, {
|
|
108
|
-
folderId: parent.sid
|
|
109
|
-
})));
|
|
110
|
-
case 10:
|
|
111
|
-
case "end":
|
|
112
|
-
return _context.stop();
|
|
113
|
-
}
|
|
114
|
-
}, _callee);
|
|
115
|
-
}));
|
|
116
|
-
return function onConfirmDelete() {
|
|
117
|
-
return _ref2.apply(this, arguments);
|
|
101
|
+
var onConfirmDelete = function onConfirmDelete() {
|
|
102
|
+
var onSuccess = function onSuccess() {
|
|
103
|
+
var isActive = internal.isActiveFolder(config, item.sid);
|
|
104
|
+
// Invalidates items and folder details. Refetch only if not active folder.
|
|
105
|
+
var invalidationKeys = [].concat(_toConsumableArray(config.invalidationKeys), [[constants.QUERY_KEYS.FOLDERS, config.type, constants.QUERY_KEYS.DETAILS]]);
|
|
106
|
+
invalidationKeys.forEach(function (queryKey) {
|
|
107
|
+
queryClient.invalidateQueries({
|
|
108
|
+
refetchType: isActive ? "none" : "active",
|
|
109
|
+
queryKey: queryKey
|
|
110
|
+
});
|
|
111
|
+
});
|
|
112
|
+
if (isActive && folders) {
|
|
113
|
+
var path = utils.pathToFolder(folders, item.id);
|
|
114
|
+
var parent = path[path.length - 2];
|
|
115
|
+
history.replace(utils$1.buildUrl(config.folderPath, _objectSpread$d(_objectSpread$d({}, queryParams), {}, {
|
|
116
|
+
folderId: parent ? parent.sid : ""
|
|
117
|
+
})));
|
|
118
|
+
}
|
|
118
119
|
};
|
|
119
|
-
|
|
120
|
+
destroyFolder(item.id, {
|
|
121
|
+
onSuccess: onSuccess,
|
|
122
|
+
onSettled: onClose
|
|
123
|
+
});
|
|
124
|
+
};
|
|
120
125
|
if (type === "delete") {
|
|
121
126
|
alertProps.title = t("deleteFolder.title");
|
|
122
127
|
alertProps.message = /*#__PURE__*/jsxRuntime.jsx(reactI18next.Trans, {
|
|
@@ -126,13 +131,35 @@ var FoldersAlerts = function FoldersAlerts(_ref) {
|
|
|
126
131
|
if (config.customizeAlerts) config.customizeAlerts(type, item, alertProps);
|
|
127
132
|
alertProps.onSubmit = onConfirmDelete;
|
|
128
133
|
}
|
|
129
|
-
return /*#__PURE__*/jsxRuntime.jsx(Alert, _objectSpread$
|
|
134
|
+
return /*#__PURE__*/jsxRuntime.jsx(Alert, _objectSpread$d({}, alertProps));
|
|
130
135
|
};
|
|
131
136
|
|
|
132
|
-
var _excluded$
|
|
133
|
-
function ownKeys$
|
|
134
|
-
function _objectSpread$
|
|
135
|
-
var
|
|
137
|
+
var _excluded$6 = ["type"];
|
|
138
|
+
function ownKeys$c(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; }
|
|
139
|
+
function _objectSpread$c(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$c(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$c(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
140
|
+
var typeComponentMap = {
|
|
141
|
+
string: Input,
|
|
142
|
+
"boolean": Switch,
|
|
143
|
+
textarea: Textarea
|
|
144
|
+
};
|
|
145
|
+
var ExtraAttributes = function ExtraAttributes(_ref) {
|
|
146
|
+
var attributes = _ref.attributes;
|
|
147
|
+
if (!Array.isArray(attributes)) return null;
|
|
148
|
+
return attributes.map(function (_ref2) {
|
|
149
|
+
var type = _ref2.type,
|
|
150
|
+
rest = _objectWithoutProperties(_ref2, _excluded$6);
|
|
151
|
+
var Component = typeComponentMap[type];
|
|
152
|
+
if (!Component) return null;
|
|
153
|
+
return /*#__PURE__*/React.createElement(Component, _objectSpread$c(_objectSpread$c({}, rest), {}, {
|
|
154
|
+
key: rest.name
|
|
155
|
+
}));
|
|
156
|
+
});
|
|
157
|
+
};
|
|
158
|
+
|
|
159
|
+
var _excluded$5 = ["className", "disabled", "fieldNames", "label", "loading", "name", "placeholder", "required", "showSearch", "size", "treeData"];
|
|
160
|
+
function ownKeys$b(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; }
|
|
161
|
+
function _objectSpread$b(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$b(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$b(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
162
|
+
var TreeSelect = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
136
163
|
var _fieldNames$label;
|
|
137
164
|
var className = _ref.className,
|
|
138
165
|
_ref$disabled = _ref.disabled,
|
|
@@ -152,7 +179,7 @@ var TreeSelect = /*#__PURE__*/react.forwardRef(function (_ref, ref) {
|
|
|
152
179
|
_ref$size = _ref.size,
|
|
153
180
|
size = _ref$size === void 0 ? "middle" : _ref$size,
|
|
154
181
|
treeData = _ref.treeData,
|
|
155
|
-
otherProps = _objectWithoutProperties(_ref, _excluded$
|
|
182
|
+
otherProps = _objectWithoutProperties(_ref, _excluded$5);
|
|
156
183
|
var _useField = formik.useField(name),
|
|
157
184
|
_useField2 = _slicedToArray(_useField, 3),
|
|
158
185
|
field = _useField2[0],
|
|
@@ -203,7 +230,7 @@ var TreeSelect = /*#__PURE__*/react.forwardRef(function (_ref, ref) {
|
|
|
203
230
|
}
|
|
204
231
|
}
|
|
205
232
|
},
|
|
206
|
-
children: /*#__PURE__*/jsxRuntime.jsx(antd.TreeSelect, _objectSpread$
|
|
233
|
+
children: /*#__PURE__*/jsxRuntime.jsx(antd.TreeSelect, _objectSpread$b(_objectSpread$b({
|
|
207
234
|
treeDataSimpleMode: true,
|
|
208
235
|
"data-cy": "nui-select-container-wrapper",
|
|
209
236
|
dropdownStyle: {
|
|
@@ -218,7 +245,7 @@ var TreeSelect = /*#__PURE__*/react.forwardRef(function (_ref, ref) {
|
|
|
218
245
|
"neeto-ui-tree-select__error": meta.error
|
|
219
246
|
}),
|
|
220
247
|
switcherIcon: function switcherIcon(props) {
|
|
221
|
-
return /*#__PURE__*/jsxRuntime.jsx("div", _objectSpread$
|
|
248
|
+
return /*#__PURE__*/jsxRuntime.jsx("div", _objectSpread$b(_objectSpread$b({}, props), {}, {
|
|
222
249
|
children: /*#__PURE__*/jsxRuntime.jsx(Down, {
|
|
223
250
|
className: "relative"
|
|
224
251
|
})
|
|
@@ -230,7 +257,7 @@ var TreeSelect = /*#__PURE__*/react.forwardRef(function (_ref, ref) {
|
|
|
230
257
|
onChange: function onChange(value) {
|
|
231
258
|
return setValue(value);
|
|
232
259
|
}
|
|
233
|
-
}, _objectSpread$
|
|
260
|
+
}, _objectSpread$b({
|
|
234
261
|
disabled: disabled,
|
|
235
262
|
fieldNames: fieldNames,
|
|
236
263
|
loading: loading,
|
|
@@ -267,12 +294,35 @@ var createFolderOptions = function createFolderOptions(foldersMap, config) {
|
|
|
267
294
|
};
|
|
268
295
|
});
|
|
269
296
|
};
|
|
297
|
+
var createInitialValues = function createInitialValues(defaults, extraAttrs) {
|
|
298
|
+
var values = {
|
|
299
|
+
name: "",
|
|
300
|
+
parentId: defaults.parentId || null
|
|
301
|
+
};
|
|
302
|
+
extraAttrs === null || extraAttrs === void 0 || extraAttrs.forEach(function (_ref) {
|
|
303
|
+
var name = _ref.name,
|
|
304
|
+
defaultValue = _ref.defaultValue;
|
|
305
|
+
values[name] = defaultValue;
|
|
306
|
+
});
|
|
307
|
+
return values;
|
|
308
|
+
};
|
|
309
|
+
var createPayload = function createPayload(values, extraAttrs) {
|
|
310
|
+
var payload = {
|
|
311
|
+
name: values.name,
|
|
312
|
+
parentId: values.parentId
|
|
313
|
+
};
|
|
314
|
+
extraAttrs === null || extraAttrs === void 0 || extraAttrs.forEach(function (_ref2) {
|
|
315
|
+
var name = _ref2.name;
|
|
316
|
+
payload[name] = values[name];
|
|
317
|
+
});
|
|
318
|
+
return payload;
|
|
319
|
+
};
|
|
270
320
|
|
|
271
321
|
var AddEditPane = function AddEditPane(_ref) {
|
|
272
322
|
var setFocusField = _ref.setFocusField,
|
|
273
323
|
config = _ref.config,
|
|
274
324
|
onClose = _ref.onClose;
|
|
275
|
-
var _useTranslation =
|
|
325
|
+
var _useTranslation = useTranslation(config),
|
|
276
326
|
t = _useTranslation.t;
|
|
277
327
|
var _useFolderStore = useFolderActions.useFolderStore(function (store) {
|
|
278
328
|
var _store$paneState, _store$paneState2;
|
|
@@ -290,32 +340,29 @@ var AddEditPane = function AddEditPane(_ref) {
|
|
|
290
340
|
var _useUpdateFolder = useFolderActions.useUpdateFolder(config),
|
|
291
341
|
updateFolder = _useUpdateFolder.mutateAsync;
|
|
292
342
|
var isEditing = type === "edit" && item;
|
|
293
|
-
var foldersMap =
|
|
294
|
-
return
|
|
343
|
+
var foldersMap = React.useMemo(function () {
|
|
344
|
+
return utils.treeToMap(folders, "sid");
|
|
295
345
|
}, [folders]);
|
|
296
|
-
var folderOptions =
|
|
346
|
+
var folderOptions = React.useMemo(function () {
|
|
297
347
|
return createFolderOptions(foldersMap, config);
|
|
298
348
|
}, [foldersMap]);
|
|
299
|
-
var activeFolderSid =
|
|
349
|
+
var activeFolderSid = internal.getActiveFolderId(config);
|
|
300
350
|
var activeFolder = foldersMap[activeFolderSid];
|
|
301
351
|
var isValidParent = (activeFolder === null || activeFolder === void 0 ? void 0 : activeFolder.meta.depth) < config.maxDepth;
|
|
302
352
|
var parentId = isValidParent ? activeFolder.id : null;
|
|
303
|
-
var
|
|
304
|
-
|
|
305
|
-
|
|
353
|
+
var extraAttributes = config.extraAttributes;
|
|
354
|
+
var initialValues = React.useMemo(function () {
|
|
355
|
+
return isEditing ? item : createInitialValues({
|
|
306
356
|
parentId: parentId
|
|
307
|
-
};
|
|
308
|
-
}, [isEditing, item, parentId]);
|
|
357
|
+
}, extraAttributes);
|
|
358
|
+
}, [isEditing, item, parentId, extraAttributes]);
|
|
309
359
|
var onSubmitForm = /*#__PURE__*/function () {
|
|
310
360
|
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(values) {
|
|
311
361
|
var payload;
|
|
312
362
|
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
313
363
|
while (1) switch (_context.prev = _context.next) {
|
|
314
364
|
case 0:
|
|
315
|
-
payload =
|
|
316
|
-
name: values.name,
|
|
317
|
-
parent_id: values.parentId
|
|
318
|
-
};
|
|
365
|
+
payload = createPayload(values, extraAttributes);
|
|
319
366
|
if (!isEditing) {
|
|
320
367
|
_context.next = 6;
|
|
321
368
|
break;
|
|
@@ -363,6 +410,8 @@ var AddEditPane = function AddEditPane(_ref) {
|
|
|
363
410
|
label: t("folders.name"),
|
|
364
411
|
name: "name",
|
|
365
412
|
ref: setFocusField
|
|
413
|
+
}), /*#__PURE__*/jsxRuntime.jsx(ExtraAttributes, {
|
|
414
|
+
attributes: extraAttributes
|
|
366
415
|
}), /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
367
416
|
children: [/*#__PURE__*/jsxRuntime.jsx(TreeSelect, {
|
|
368
417
|
allowClear: true,
|
|
@@ -390,10 +439,11 @@ var AddEditPane = function AddEditPane(_ref) {
|
|
|
390
439
|
});
|
|
391
440
|
};
|
|
392
441
|
|
|
393
|
-
var
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
var
|
|
442
|
+
var REORDER_TREE_INDENT_WIDTH = 30;
|
|
443
|
+
|
|
444
|
+
var _excluded$4 = ["icon", "itemLabel", "folder", "depth", "className", "onClick"];
|
|
445
|
+
function ownKeys$a(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; }
|
|
446
|
+
function _objectSpread$a(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$a(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$a(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
397
447
|
var Node = function Node(_ref, ref) {
|
|
398
448
|
var _folder$children$leng, _folder$children;
|
|
399
449
|
var _ref$icon = _ref.icon,
|
|
@@ -403,7 +453,7 @@ var Node = function Node(_ref, ref) {
|
|
|
403
453
|
depth = _ref.depth,
|
|
404
454
|
className = _ref.className,
|
|
405
455
|
onClick = _ref.onClick,
|
|
406
|
-
rest = _objectWithoutProperties(_ref, _excluded$
|
|
456
|
+
rest = _objectWithoutProperties(_ref, _excluded$4);
|
|
407
457
|
var _useTranslation = reactI18next.useTranslation(),
|
|
408
458
|
t = _useTranslation.t;
|
|
409
459
|
var metaInfo = [];
|
|
@@ -418,13 +468,13 @@ var Node = function Node(_ref, ref) {
|
|
|
418
468
|
length: depth
|
|
419
469
|
}).map(function (_, index) {
|
|
420
470
|
return /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
421
|
-
className: "neeto-ui-border-gray-300 relative flex-shrink-0 border-l",
|
|
471
|
+
className: "neeto-ui-border-gray-300 relative h-full flex-shrink-0 border-l",
|
|
422
472
|
style: {
|
|
423
|
-
width:
|
|
424
|
-
left: Math.round(
|
|
473
|
+
width: REORDER_TREE_INDENT_WIDTH,
|
|
474
|
+
left: Math.round(REORDER_TREE_INDENT_WIDTH / 2)
|
|
425
475
|
}
|
|
426
476
|
}, index);
|
|
427
|
-
}), /*#__PURE__*/jsxRuntime.jsxs("div", _objectSpread$
|
|
477
|
+
}), /*#__PURE__*/jsxRuntime.jsxs("div", _objectSpread$a(_objectSpread$a({}, _objectSpread$a(_objectSpread$a({}, rest), {}, {
|
|
428
478
|
onClick: onClick,
|
|
429
479
|
ref: ref
|
|
430
480
|
})), {}, {
|
|
@@ -447,11 +497,11 @@ var Node = function Node(_ref, ref) {
|
|
|
447
497
|
}))]
|
|
448
498
|
});
|
|
449
499
|
};
|
|
450
|
-
var Node$1 = /*#__PURE__*/
|
|
500
|
+
var Node$1 = /*#__PURE__*/React.forwardRef(Node);
|
|
451
501
|
|
|
452
|
-
var _excluded$
|
|
453
|
-
function ownKeys$
|
|
454
|
-
function _objectSpread$
|
|
502
|
+
var _excluded$3 = ["folder", "item", "depth", "maxDepth", "disabled", "config"];
|
|
503
|
+
function ownKeys$9(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; }
|
|
504
|
+
function _objectSpread$9(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$9(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$9(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
455
505
|
var _SelectableNode = function SelectableNode(_ref) {
|
|
456
506
|
var folder = _ref.folder,
|
|
457
507
|
item = _ref.item,
|
|
@@ -459,16 +509,18 @@ var _SelectableNode = function SelectableNode(_ref) {
|
|
|
459
509
|
depth = _ref$depth === void 0 ? 0 : _ref$depth,
|
|
460
510
|
maxDepth = _ref.maxDepth,
|
|
461
511
|
disabled = _ref.disabled,
|
|
462
|
-
|
|
512
|
+
config = _ref.config,
|
|
513
|
+
rest = _objectWithoutProperties(_ref, _excluded$3);
|
|
463
514
|
var selection = rest.selection,
|
|
464
515
|
onSelect = rest.onSelect;
|
|
465
|
-
var _useTranslation =
|
|
516
|
+
var _useTranslation = useTranslation(config),
|
|
466
517
|
t = _useTranslation.t;
|
|
467
518
|
var isDisabled = disabled || (item === null || item === void 0 ? void 0 : item.id) === folder.id || depth > maxDepth;
|
|
468
519
|
var renderChildren = function renderChildren() {
|
|
469
520
|
if (neetoCist.isNotPresent(folder.children)) return null;
|
|
470
521
|
return folder.children.map(function (child) {
|
|
471
|
-
return /*#__PURE__*/
|
|
522
|
+
return /*#__PURE__*/React.createElement(_SelectableNode, _objectSpread$9(_objectSpread$9({}, _objectSpread$9(_objectSpread$9({}, rest), {}, {
|
|
523
|
+
config: config,
|
|
472
524
|
item: item,
|
|
473
525
|
maxDepth: maxDepth
|
|
474
526
|
})), {}, {
|
|
@@ -485,7 +537,7 @@ var _SelectableNode = function SelectableNode(_ref) {
|
|
|
485
537
|
"opacity-60": isDisabled
|
|
486
538
|
}),
|
|
487
539
|
title: isDisabled ? t("moveToFolder.notAllowed") : undefined,
|
|
488
|
-
children: [/*#__PURE__*/jsxRuntime.jsx(Node$1, _objectSpread$
|
|
540
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(Node$1, _objectSpread$9(_objectSpread$9({}, _objectSpread$9(_objectSpread$9({}, rest), {}, {
|
|
489
541
|
depth: depth,
|
|
490
542
|
folder: folder
|
|
491
543
|
})), {}, {
|
|
@@ -502,8 +554,8 @@ var _SelectableNode = function SelectableNode(_ref) {
|
|
|
502
554
|
});
|
|
503
555
|
};
|
|
504
556
|
|
|
505
|
-
function ownKeys$
|
|
506
|
-
function _objectSpread$
|
|
557
|
+
function ownKeys$8(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; }
|
|
558
|
+
function _objectSpread$8(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$8(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$8(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
507
559
|
var PaneBody = function PaneBody(_ref) {
|
|
508
560
|
var item = _ref.item,
|
|
509
561
|
config = _ref.config,
|
|
@@ -513,7 +565,7 @@ var PaneBody = function PaneBody(_ref) {
|
|
|
513
565
|
onSubmit = _ref.onSubmit,
|
|
514
566
|
onClose = _ref.onClose,
|
|
515
567
|
onRemove = _ref.onRemove;
|
|
516
|
-
var _useState =
|
|
568
|
+
var _useState = React.useState(null),
|
|
517
569
|
_useState2 = _slicedToArray(_useState, 2),
|
|
518
570
|
selection = _useState2[0],
|
|
519
571
|
setSelection = _useState2[1];
|
|
@@ -526,14 +578,14 @@ var PaneBody = function PaneBody(_ref) {
|
|
|
526
578
|
var _useFetchFolders = useFolderActions.useFetchFolders(config),
|
|
527
579
|
_useFetchFolders$data = _useFetchFolders.data,
|
|
528
580
|
folders = _useFetchFolders$data === void 0 ? [] : _useFetchFolders$data;
|
|
529
|
-
var _useTranslation =
|
|
581
|
+
var _useTranslation = useTranslation(config),
|
|
530
582
|
t = _useTranslation.t;
|
|
531
583
|
var folderDepth = 0;
|
|
532
584
|
if (item) {
|
|
533
585
|
// If item is a folder, measure the current depth from current folder to longest leaf.
|
|
534
|
-
var foldersMap =
|
|
586
|
+
var foldersMap = utils.treeToMap(folders);
|
|
535
587
|
var folder = foldersMap[item.id];
|
|
536
|
-
if (folder) folderDepth =
|
|
588
|
+
if (folder) folderDepth = utils.measureDepth(folder);
|
|
537
589
|
}
|
|
538
590
|
var maxDepth = config.maxDepth - folderDepth;
|
|
539
591
|
var onAddFolder = function onAddFolder() {
|
|
@@ -559,13 +611,14 @@ var PaneBody = function PaneBody(_ref) {
|
|
|
559
611
|
}), /*#__PURE__*/jsxRuntime.jsx(Pane.Body, {
|
|
560
612
|
className: "pb-6",
|
|
561
613
|
children: folders.map(function (folder) {
|
|
562
|
-
return /*#__PURE__*/
|
|
614
|
+
return /*#__PURE__*/React.createElement(_SelectableNode, {
|
|
615
|
+
config: config,
|
|
563
616
|
folder: folder,
|
|
564
617
|
item: item,
|
|
565
618
|
maxDepth: maxDepth,
|
|
566
619
|
selection: selection,
|
|
567
620
|
disabled: (item === null || item === void 0 ? void 0 : item.id) === folder.id || maxDepth <= 0,
|
|
568
|
-
itemLabel: config.
|
|
621
|
+
itemLabel: config.labels.item,
|
|
569
622
|
key: folder.id,
|
|
570
623
|
onSelect: function onSelect(folder) {
|
|
571
624
|
return setSelection(folder.id);
|
|
@@ -576,19 +629,19 @@ var PaneBody = function PaneBody(_ref) {
|
|
|
576
629
|
className: "space-x-2",
|
|
577
630
|
children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
578
631
|
className: "flex flex-1 space-x-2",
|
|
579
|
-
children: [/*#__PURE__*/jsxRuntime.jsx(Button, _objectSpread$
|
|
632
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(Button, _objectSpread$8({
|
|
580
633
|
disabled: !selection,
|
|
581
634
|
label: t("common.save"),
|
|
582
635
|
style: "primary",
|
|
583
636
|
onClick: function onClick() {
|
|
584
637
|
return onSubmit(selection);
|
|
585
638
|
}
|
|
586
|
-
}, submitButtonProps)), /*#__PURE__*/jsxRuntime.jsx(Button, _objectSpread$
|
|
639
|
+
}, submitButtonProps)), /*#__PURE__*/jsxRuntime.jsx(Button, _objectSpread$8({
|
|
587
640
|
label: t("common.cancel"),
|
|
588
641
|
style: "text",
|
|
589
642
|
onClick: onClose
|
|
590
643
|
}, cancelButtonProps))]
|
|
591
|
-
}), onRemove && /*#__PURE__*/jsxRuntime.jsx(Button, _objectSpread$
|
|
644
|
+
}), onRemove && /*#__PURE__*/jsxRuntime.jsx(Button, _objectSpread$8({
|
|
592
645
|
label: t("moveToFolder.remove"),
|
|
593
646
|
style: "tertiary",
|
|
594
647
|
onClick: onRemove
|
|
@@ -629,14 +682,14 @@ var MoveFolderPane = function MoveFolderPane(_ref) {
|
|
|
629
682
|
});
|
|
630
683
|
};
|
|
631
684
|
|
|
632
|
-
var _excluded$
|
|
633
|
-
function ownKeys$
|
|
634
|
-
function _objectSpread$
|
|
635
|
-
var _DraggableNode = function DraggableNode(_ref) {
|
|
685
|
+
var _excluded$2 = ["folder", "depth"];
|
|
686
|
+
function ownKeys$7(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; }
|
|
687
|
+
function _objectSpread$7(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$7(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$7(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
688
|
+
var _DraggableNode$1 = function DraggableNode(_ref) {
|
|
636
689
|
var folder = _ref.folder,
|
|
637
690
|
_ref$depth = _ref.depth,
|
|
638
691
|
depth = _ref$depth === void 0 ? 0 : _ref$depth,
|
|
639
|
-
rest = _objectWithoutProperties(_ref, _excluded$
|
|
692
|
+
rest = _objectWithoutProperties(_ref, _excluded$2);
|
|
640
693
|
var _useDraggable = core.useDraggable({
|
|
641
694
|
id: "draggable-item--".concat(folder.id),
|
|
642
695
|
data: folder,
|
|
@@ -656,7 +709,7 @@ var _DraggableNode = function DraggableNode(_ref) {
|
|
|
656
709
|
var renderChildren = function renderChildren() {
|
|
657
710
|
if (neetoCist.isNotPresent(folder.children) || isDragging) return null;
|
|
658
711
|
return folder.children.map(function (child) {
|
|
659
|
-
return /*#__PURE__*/
|
|
712
|
+
return /*#__PURE__*/React.createElement(_DraggableNode$1, _objectSpread$7(_objectSpread$7({}, rest), {}, {
|
|
660
713
|
depth: depth + 1,
|
|
661
714
|
folder: child,
|
|
662
715
|
key: child.id
|
|
@@ -664,14 +717,14 @@ var _DraggableNode = function DraggableNode(_ref) {
|
|
|
664
717
|
});
|
|
665
718
|
};
|
|
666
719
|
return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
667
|
-
children: [/*#__PURE__*/jsxRuntime.jsx(Node$1, _objectSpread$
|
|
720
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(Node$1, _objectSpread$7(_objectSpread$7(_objectSpread$7({}, rest), {}, {
|
|
668
721
|
className: classNames({
|
|
669
722
|
"neeto-ui-rounded-lg hover:neeto-ui-bg-gray-100 w-full min-w-0 cursor-move transition-colors": true,
|
|
670
723
|
"neeto-ui-bg-gray-100 opacity-50": isDragging,
|
|
671
724
|
"neeto-ui-border-primary-500 border": isOver,
|
|
672
725
|
"border border-transparent": !isOver
|
|
673
726
|
})
|
|
674
|
-
}, _objectSpread$
|
|
727
|
+
}, _objectSpread$7(_objectSpread$7({
|
|
675
728
|
depth: depth,
|
|
676
729
|
folder: folder
|
|
677
730
|
}, attributes), listeners)), {}, {
|
|
@@ -683,20 +736,20 @@ var _DraggableNode = function DraggableNode(_ref) {
|
|
|
683
736
|
});
|
|
684
737
|
};
|
|
685
738
|
|
|
686
|
-
function ownKeys$
|
|
687
|
-
function _objectSpread$
|
|
688
|
-
var
|
|
739
|
+
function ownKeys$6(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; }
|
|
740
|
+
function _objectSpread$6(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$6(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$6(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
741
|
+
var RearrangeFoldersPane = function RearrangeFoldersPane(_ref) {
|
|
689
742
|
var config = _ref.config,
|
|
690
743
|
onClose = _ref.onClose;
|
|
691
|
-
var _useState =
|
|
744
|
+
var _useState = React.useState(null),
|
|
692
745
|
_useState2 = _slicedToArray(_useState, 2),
|
|
693
746
|
dragItem = _useState2[0],
|
|
694
747
|
setDragItem = _useState2[1];
|
|
695
|
-
var _useState3 =
|
|
748
|
+
var _useState3 = React.useState({}),
|
|
696
749
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
697
750
|
changes = _useState4[0],
|
|
698
751
|
setChanges = _useState4[1];
|
|
699
|
-
var _useTranslation =
|
|
752
|
+
var _useTranslation = useTranslation(config),
|
|
700
753
|
t = _useTranslation.t;
|
|
701
754
|
var _useFetchFolders = useFolderActions.useFetchFolders(config),
|
|
702
755
|
folders = _useFetchFolders.data;
|
|
@@ -718,7 +771,7 @@ var ReorderFoldersPane = function ReorderFoldersPane(_ref) {
|
|
|
718
771
|
over = _ref2.over;
|
|
719
772
|
setDragItem(null);
|
|
720
773
|
if (!over) return;
|
|
721
|
-
var foldersMap =
|
|
774
|
+
var foldersMap = utils.treeToMap(tree);
|
|
722
775
|
var activeFolder = foldersMap[active.data.current.id];
|
|
723
776
|
var overFolder = foldersMap[over.data.current.id];
|
|
724
777
|
|
|
@@ -727,7 +780,7 @@ var ReorderFoldersPane = function ReorderFoldersPane(_ref) {
|
|
|
727
780
|
|
|
728
781
|
// Check moving to a folder with depth greater than the allowed limit.
|
|
729
782
|
// maxDepth + 1 due to extra root node added for the tree
|
|
730
|
-
var activeDepth =
|
|
783
|
+
var activeDepth = utils.measureDepth(activeFolder);
|
|
731
784
|
var overDepth = overFolder.meta.depth;
|
|
732
785
|
if (activeDepth + overDepth >= config.maxDepth + 1) {
|
|
733
786
|
Toastr.error(t("moveToFolder.depthExceeded", {
|
|
@@ -736,7 +789,7 @@ var ReorderFoldersPane = function ReorderFoldersPane(_ref) {
|
|
|
736
789
|
return;
|
|
737
790
|
}
|
|
738
791
|
activeFolder.meta.parent = overFolder;
|
|
739
|
-
var newTree =
|
|
792
|
+
var newTree = utils.mapToTree(foldersMap);
|
|
740
793
|
setTree(newTree);
|
|
741
794
|
setChanges(ramda.assoc(activeFolder.id, overFolder.id));
|
|
742
795
|
};
|
|
@@ -752,7 +805,7 @@ var ReorderFoldersPane = function ReorderFoldersPane(_ref) {
|
|
|
752
805
|
icon: /*#__PURE__*/jsxRuntime.jsx(Reorder, {
|
|
753
806
|
className: "neeto-ui-text-gray-500 relative -left-[0.3125rem] flex-shrink-0"
|
|
754
807
|
}),
|
|
755
|
-
itemLabel: config.
|
|
808
|
+
itemLabel: config.labels.item
|
|
756
809
|
};
|
|
757
810
|
return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
758
811
|
children: [/*#__PURE__*/jsxRuntime.jsx(Pane.Header, {
|
|
@@ -768,7 +821,7 @@ var ReorderFoldersPane = function ReorderFoldersPane(_ref) {
|
|
|
768
821
|
},
|
|
769
822
|
children: [/*#__PURE__*/jsxRuntime.jsx(Pane.Body, {
|
|
770
823
|
className: "pb-6",
|
|
771
|
-
children: /*#__PURE__*/
|
|
824
|
+
children: /*#__PURE__*/React.createElement(_DraggableNode$1, _objectSpread$6(_objectSpread$6({}, nodeProps), {}, {
|
|
772
825
|
folder: tree,
|
|
773
826
|
key: tree.id
|
|
774
827
|
}))
|
|
@@ -786,7 +839,7 @@ var ReorderFoldersPane = function ReorderFoldersPane(_ref) {
|
|
|
786
839
|
})]
|
|
787
840
|
}), /*#__PURE__*/reactDom.createPortal(/*#__PURE__*/jsxRuntime.jsx(core.DragOverlay, {
|
|
788
841
|
zIndex: 99999,
|
|
789
|
-
children: dragItem && /*#__PURE__*/jsxRuntime.jsx(Node$1, _objectSpread$
|
|
842
|
+
children: dragItem && /*#__PURE__*/jsxRuntime.jsx(Node$1, _objectSpread$6(_objectSpread$6({}, nodeProps), {}, {
|
|
790
843
|
className: "neeto-ui-bg-gray-200",
|
|
791
844
|
depth: 0,
|
|
792
845
|
folder: dragItem
|
|
@@ -796,6 +849,312 @@ var ReorderFoldersPane = function ReorderFoldersPane(_ref) {
|
|
|
796
849
|
});
|
|
797
850
|
};
|
|
798
851
|
|
|
852
|
+
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
853
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
854
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
855
|
+
var distanceBetween = function distanceBetween(p1, p2) {
|
|
856
|
+
return Math.sqrt(Math.pow(p1.x - p2.x, 2) + Math.pow(p1.y - p2.y, 2));
|
|
857
|
+
};
|
|
858
|
+
var centerOfRectangle = function centerOfRectangle(rect) {
|
|
859
|
+
var left = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : rect.left;
|
|
860
|
+
var top = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : rect.top;
|
|
861
|
+
return {
|
|
862
|
+
x: left + rect.width * 0.5,
|
|
863
|
+
y: top + rect.height * 0.5
|
|
864
|
+
};
|
|
865
|
+
};
|
|
866
|
+
var closestCenter = function closestCenter(_ref) {
|
|
867
|
+
var activeItem = _ref.activeItem;
|
|
868
|
+
return function (_ref2) {
|
|
869
|
+
var collisionRect = _ref2.collisionRect,
|
|
870
|
+
droppableRects = _ref2.droppableRects,
|
|
871
|
+
droppableContainers = _ref2.droppableContainers;
|
|
872
|
+
var centerRect = centerOfRectangle(collisionRect, collisionRect.left - 30, collisionRect.top - 30);
|
|
873
|
+
var minDistance = Number.POSITIVE_INFINITY;
|
|
874
|
+
var collision = {
|
|
875
|
+
id: undefined
|
|
876
|
+
};
|
|
877
|
+
|
|
878
|
+
// eslint-disable-next-line @bigbinary/neeto/use-array-methods
|
|
879
|
+
var _iterator = _createForOfIteratorHelper(droppableContainers),
|
|
880
|
+
_step;
|
|
881
|
+
try {
|
|
882
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
883
|
+
var droppableContainer = _step.value;
|
|
884
|
+
var rect = droppableRects.get(droppableContainer.id);
|
|
885
|
+
if (!rect || droppableContainer.id === activeItem.id) continue;
|
|
886
|
+
var distance = distanceBetween(centerOfRectangle(rect), centerRect);
|
|
887
|
+
if (distance < minDistance) {
|
|
888
|
+
minDistance = distance;
|
|
889
|
+
collision = {
|
|
890
|
+
id: droppableContainer.id,
|
|
891
|
+
data: {
|
|
892
|
+
droppableContainer: droppableContainer,
|
|
893
|
+
value: distance
|
|
894
|
+
}
|
|
895
|
+
};
|
|
896
|
+
}
|
|
897
|
+
}
|
|
898
|
+
} catch (err) {
|
|
899
|
+
_iterator.e(err);
|
|
900
|
+
} finally {
|
|
901
|
+
_iterator.f();
|
|
902
|
+
}
|
|
903
|
+
return [collision];
|
|
904
|
+
};
|
|
905
|
+
};
|
|
906
|
+
|
|
907
|
+
var PlaceholderNode = function PlaceholderNode(_ref) {
|
|
908
|
+
var folder = _ref.folder,
|
|
909
|
+
dragState = _ref.dragState;
|
|
910
|
+
var overItem = dragState.overItem;
|
|
911
|
+
var id = React.useId();
|
|
912
|
+
var isOver = id === (overItem === null || overItem === void 0 ? void 0 : overItem.id);
|
|
913
|
+
var depth = folder.meta.depth + 1;
|
|
914
|
+
var meta = {
|
|
915
|
+
parent: folder,
|
|
916
|
+
index: -1,
|
|
917
|
+
depth: depth
|
|
918
|
+
};
|
|
919
|
+
var _useDroppable = core.useDroppable({
|
|
920
|
+
id: "droppable-placeholder--".concat(folder.name),
|
|
921
|
+
data: {
|
|
922
|
+
id: id,
|
|
923
|
+
meta: meta
|
|
924
|
+
}
|
|
925
|
+
}),
|
|
926
|
+
setDroppableRef = _useDroppable.setNodeRef;
|
|
927
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
928
|
+
className: "flex w-full",
|
|
929
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("div", {
|
|
930
|
+
style: {
|
|
931
|
+
width: REORDER_TREE_INDENT_WIDTH * depth
|
|
932
|
+
}
|
|
933
|
+
}), /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
934
|
+
ref: setDroppableRef,
|
|
935
|
+
className: classNames({
|
|
936
|
+
"min-w-0 flex-1 transition-colors": true,
|
|
937
|
+
"neeto-ui-border-primary-500 border-b-2": isOver
|
|
938
|
+
})
|
|
939
|
+
})]
|
|
940
|
+
});
|
|
941
|
+
};
|
|
942
|
+
|
|
943
|
+
var _excluded$1 = ["folder", "dragState"];
|
|
944
|
+
function ownKeys$5(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; }
|
|
945
|
+
function _objectSpread$5(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$5(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$5(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
946
|
+
var _DraggableNode = function DraggableNode(_ref) {
|
|
947
|
+
var _overItem$meta$parent;
|
|
948
|
+
var folder = _ref.folder,
|
|
949
|
+
dragState = _ref.dragState,
|
|
950
|
+
rest = _objectWithoutProperties(_ref, _excluded$1);
|
|
951
|
+
var overItem = dragState.overItem;
|
|
952
|
+
var isOverItem = folder.id === (overItem === null || overItem === void 0 ? void 0 : overItem.id);
|
|
953
|
+
var isOverParent = folder.id === (overItem === null || overItem === void 0 || (_overItem$meta$parent = overItem.meta.parent) === null || _overItem$meta$parent === void 0 ? void 0 : _overItem$meta$parent.id);
|
|
954
|
+
var isRoot = folder.meta.depth <= 0;
|
|
955
|
+
var _useDraggable = core.useDraggable({
|
|
956
|
+
id: "draggable-item--".concat(folder.id),
|
|
957
|
+
data: folder,
|
|
958
|
+
disabled: isRoot
|
|
959
|
+
}),
|
|
960
|
+
isDragging = _useDraggable.isDragging,
|
|
961
|
+
attributes = _useDraggable.attributes,
|
|
962
|
+
listeners = _useDraggable.listeners,
|
|
963
|
+
setDraggableRef = _useDraggable.setNodeRef;
|
|
964
|
+
var _useDroppable = core.useDroppable({
|
|
965
|
+
id: "droppable-item--".concat(folder.id),
|
|
966
|
+
data: folder,
|
|
967
|
+
disabled: isRoot || isDragging
|
|
968
|
+
}),
|
|
969
|
+
setDroppableRef = _useDroppable.setNodeRef;
|
|
970
|
+
var renderChildren = function renderChildren() {
|
|
971
|
+
if (isDragging) return null;
|
|
972
|
+
return /*#__PURE__*/jsxRuntime.jsxs(React.Fragment, {
|
|
973
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(PlaceholderNode, {
|
|
974
|
+
dragState: dragState,
|
|
975
|
+
folder: folder
|
|
976
|
+
}), internal.isArray(folder.children) && folder.children.map(function (child) {
|
|
977
|
+
return /*#__PURE__*/React.createElement(_DraggableNode, _objectSpread$5(_objectSpread$5({}, _objectSpread$5(_objectSpread$5({}, rest), {}, {
|
|
978
|
+
dragState: dragState
|
|
979
|
+
})), {}, {
|
|
980
|
+
depth: child.meta.depth,
|
|
981
|
+
folder: child,
|
|
982
|
+
key: child.id
|
|
983
|
+
}));
|
|
984
|
+
})]
|
|
985
|
+
}, "".concat(folder.id, "--container"));
|
|
986
|
+
};
|
|
987
|
+
return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
988
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(Node$1, _objectSpread$5(_objectSpread$5({
|
|
989
|
+
depth: folder.meta.depth
|
|
990
|
+
}, _objectSpread$5(_objectSpread$5(_objectSpread$5({}, rest), {}, {
|
|
991
|
+
folder: folder
|
|
992
|
+
}, attributes), listeners)), {}, {
|
|
993
|
+
className: classNames({
|
|
994
|
+
"hover:neeto-ui-bg-gray-100 w-full cursor-move transition-colors": true,
|
|
995
|
+
"neeto-ui-bg-gray-100 opacity-50": isDragging,
|
|
996
|
+
"neeto-ui-bg-primary-50": isOverParent,
|
|
997
|
+
"neeto-ui-border-primary-500 border-b-2": isOverItem
|
|
998
|
+
}),
|
|
999
|
+
ref: function ref(_ref2) {
|
|
1000
|
+
setDroppableRef(_ref2);
|
|
1001
|
+
setDraggableRef(_ref2);
|
|
1002
|
+
}
|
|
1003
|
+
})), renderChildren()]
|
|
1004
|
+
});
|
|
1005
|
+
};
|
|
1006
|
+
|
|
1007
|
+
function ownKeys$4(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; }
|
|
1008
|
+
function _objectSpread$4(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$4(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$4(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
1009
|
+
var initialDragState = {
|
|
1010
|
+
activeItem: null,
|
|
1011
|
+
overItem: null
|
|
1012
|
+
};
|
|
1013
|
+
var sensorConfig = {
|
|
1014
|
+
activationConstraint: {
|
|
1015
|
+
distance: 8
|
|
1016
|
+
}
|
|
1017
|
+
};
|
|
1018
|
+
var measuringConfig = {
|
|
1019
|
+
droppable: {
|
|
1020
|
+
frequency: 500
|
|
1021
|
+
}
|
|
1022
|
+
};
|
|
1023
|
+
|
|
1024
|
+
// Reorder with support for position adjustment
|
|
1025
|
+
var ReorderFoldersPane = function ReorderFoldersPane(_ref) {
|
|
1026
|
+
var config = _ref.config,
|
|
1027
|
+
onClose = _ref.onClose;
|
|
1028
|
+
var _useState = React.useState(initialDragState),
|
|
1029
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
1030
|
+
dragState = _useState2[0],
|
|
1031
|
+
setDragState = _useState2[1];
|
|
1032
|
+
var _useState3 = React.useState({}),
|
|
1033
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
1034
|
+
changes = _useState4[0],
|
|
1035
|
+
setChanges = _useState4[1];
|
|
1036
|
+
var _useTranslation = useTranslation(config),
|
|
1037
|
+
t = _useTranslation.t;
|
|
1038
|
+
var _useFetchFolders = useFolderActions.useFetchFolders(config),
|
|
1039
|
+
folders = _useFetchFolders.data;
|
|
1040
|
+
var _useReorderFolders = useFolderActions.useReorderFolders(config),
|
|
1041
|
+
reorderFolders = _useReorderFolders.mutate;
|
|
1042
|
+
var sensors = core.useSensors(core.useSensor(core.PointerSensor, sensorConfig));
|
|
1043
|
+
var _useStateWithDependen = reactUtils.useStateWithDependency(function () {
|
|
1044
|
+
return {
|
|
1045
|
+
name: "/",
|
|
1046
|
+
id: null,
|
|
1047
|
+
children: folders
|
|
1048
|
+
};
|
|
1049
|
+
}, [folders]),
|
|
1050
|
+
_useStateWithDependen2 = _slicedToArray(_useStateWithDependen, 2),
|
|
1051
|
+
baseTree = _useStateWithDependen2[0],
|
|
1052
|
+
setBaseTree = _useStateWithDependen2[1];
|
|
1053
|
+
|
|
1054
|
+
// Decorates tree with meta info. Can be optimized when needed.
|
|
1055
|
+
var tree = React.useMemo(function () {
|
|
1056
|
+
return utils.mapToSortedTree(utils.treeToMap(baseTree));
|
|
1057
|
+
}, [baseTree]);
|
|
1058
|
+
var onDragEnd = function onDragEnd(_ref2) {
|
|
1059
|
+
var active = _ref2.active,
|
|
1060
|
+
over = _ref2.over;
|
|
1061
|
+
setDragState(initialDragState);
|
|
1062
|
+
if (!over) return;
|
|
1063
|
+
var foldersMap = utils.treeToMap(tree);
|
|
1064
|
+
var activeFolder = foldersMap[active.data.current.id];
|
|
1065
|
+
var targetFolder = foldersMap[over.data.current.meta.parent.id];
|
|
1066
|
+
var targetIndex = over.data.current.meta.index + 1; // `index` starts from -1 with placeholder
|
|
1067
|
+
|
|
1068
|
+
// Guards: Check moving inside invalid directories.
|
|
1069
|
+
if (!targetFolder || activeFolder.id === targetFolder.id) return;
|
|
1070
|
+
if (activeFolder.meta.parent.id === targetFolder.id && activeFolder.meta.index === targetIndex) {
|
|
1071
|
+
return;
|
|
1072
|
+
}
|
|
1073
|
+
|
|
1074
|
+
// Check moving to a folder with depth greater than the allowed limit.
|
|
1075
|
+
// maxDepth + 1 due to extra root node added for the tree
|
|
1076
|
+
var srcDepth = utils.measureDepth(activeFolder);
|
|
1077
|
+
var dstDepth = targetFolder.meta.depth;
|
|
1078
|
+
if (srcDepth + dstDepth >= config.maxDepth + 1) {
|
|
1079
|
+
Toastr.error(t("moveToFolder.depthExceeded", {
|
|
1080
|
+
maxDepth: config.maxDepth
|
|
1081
|
+
}));
|
|
1082
|
+
return;
|
|
1083
|
+
}
|
|
1084
|
+
activeFolder.meta.parent = targetFolder;
|
|
1085
|
+
activeFolder.meta.__index = targetIndex;
|
|
1086
|
+
var newTree = utils.mapToSortedTree(foldersMap);
|
|
1087
|
+
setBaseTree(newTree);
|
|
1088
|
+
setChanges(ramda.assoc(activeFolder.id, {
|
|
1089
|
+
parentId: targetFolder.id,
|
|
1090
|
+
index: targetIndex
|
|
1091
|
+
}));
|
|
1092
|
+
};
|
|
1093
|
+
var onSubmit = function onSubmit() {
|
|
1094
|
+
var payload = {
|
|
1095
|
+
changes: changes
|
|
1096
|
+
};
|
|
1097
|
+
reorderFolders(payload, {
|
|
1098
|
+
onSuccess: onClose
|
|
1099
|
+
});
|
|
1100
|
+
};
|
|
1101
|
+
var nodeProps = {
|
|
1102
|
+
icon: /*#__PURE__*/jsxRuntime.jsx(Reorder, {
|
|
1103
|
+
className: "neeto-ui-text-gray-500 relative -left-[0.3125rem] flex-shrink-0"
|
|
1104
|
+
}),
|
|
1105
|
+
itemLabel: config.labels.item
|
|
1106
|
+
};
|
|
1107
|
+
return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
1108
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(Pane.Header, {
|
|
1109
|
+
children: /*#__PURE__*/jsxRuntime.jsx(Typography, {
|
|
1110
|
+
style: "h2",
|
|
1111
|
+
children: t("reorderFolder.title")
|
|
1112
|
+
})
|
|
1113
|
+
}), /*#__PURE__*/jsxRuntime.jsxs(core.DndContext, {
|
|
1114
|
+
onDragEnd: onDragEnd,
|
|
1115
|
+
sensors: sensors,
|
|
1116
|
+
collisionDetection: closestCenter(dragState),
|
|
1117
|
+
measuring: measuringConfig,
|
|
1118
|
+
onDragOver: function onDragOver(_ref3) {
|
|
1119
|
+
var over = _ref3.over;
|
|
1120
|
+
setDragState(ramda.assoc("overItem", over === null || over === void 0 ? void 0 : over.data.current));
|
|
1121
|
+
},
|
|
1122
|
+
onDragStart: function onDragStart(_ref4) {
|
|
1123
|
+
var active = _ref4.active;
|
|
1124
|
+
setDragState(ramda.assoc("activeItem", active.data.current));
|
|
1125
|
+
},
|
|
1126
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(Pane.Body, {
|
|
1127
|
+
className: "pb-6",
|
|
1128
|
+
children: /*#__PURE__*/React.createElement(_DraggableNode, _objectSpread$4(_objectSpread$4({}, _objectSpread$4(_objectSpread$4({}, nodeProps), {}, {
|
|
1129
|
+
dragState: dragState
|
|
1130
|
+
})), {}, {
|
|
1131
|
+
folder: tree,
|
|
1132
|
+
key: tree.id
|
|
1133
|
+
}))
|
|
1134
|
+
}), /*#__PURE__*/jsxRuntime.jsxs(Pane.Footer, {
|
|
1135
|
+
className: "gap-2",
|
|
1136
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(Button, {
|
|
1137
|
+
disabled: ramda.isEmpty(changes),
|
|
1138
|
+
label: t("common.save"),
|
|
1139
|
+
style: "primary",
|
|
1140
|
+
onClick: onSubmit
|
|
1141
|
+
}), /*#__PURE__*/jsxRuntime.jsx(Button, {
|
|
1142
|
+
label: t("common.cancel"),
|
|
1143
|
+
style: "text",
|
|
1144
|
+
onClick: onClose
|
|
1145
|
+
})]
|
|
1146
|
+
}), /*#__PURE__*/reactDom.createPortal(/*#__PURE__*/jsxRuntime.jsx(core.DragOverlay, {
|
|
1147
|
+
zIndex: 99999,
|
|
1148
|
+
children: dragState && /*#__PURE__*/jsxRuntime.jsx(Node$1, _objectSpread$4(_objectSpread$4({}, nodeProps), {}, {
|
|
1149
|
+
className: "neeto-ui-bg-gray-200 pl-4 pr-12",
|
|
1150
|
+
depth: 0,
|
|
1151
|
+
folder: dragState.activeItem
|
|
1152
|
+
}))
|
|
1153
|
+
}), document.body)]
|
|
1154
|
+
})]
|
|
1155
|
+
});
|
|
1156
|
+
};
|
|
1157
|
+
|
|
799
1158
|
function ownKeys$3(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; }
|
|
800
1159
|
function _objectSpread$3(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$3(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$3(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
801
1160
|
var FoldersPane = function FoldersPane(_ref) {
|
|
@@ -823,6 +1182,7 @@ var FoldersPane = function FoldersPane(_ref) {
|
|
|
823
1182
|
config: config,
|
|
824
1183
|
onClose: onClose
|
|
825
1184
|
};
|
|
1185
|
+
var ReorderPaneComponent = config.reorderMode === "reorder" ? ReorderFoldersPane : RearrangeFoldersPane;
|
|
826
1186
|
return /*#__PURE__*/jsxRuntime.jsx(Pane, {
|
|
827
1187
|
onClose: onClose,
|
|
828
1188
|
isOpen: !!type,
|
|
@@ -831,7 +1191,7 @@ var FoldersPane = function FoldersPane(_ref) {
|
|
|
831
1191
|
return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
832
1192
|
children: [(type === "edit" || type === "add") && /*#__PURE__*/jsxRuntime.jsx(AddEditPane, _objectSpread$3({}, _objectSpread$3({
|
|
833
1193
|
setFocusField: setFocusField
|
|
834
|
-
}, commonProps))), type === "move" && /*#__PURE__*/jsxRuntime.jsx(MoveFolderPane, _objectSpread$3({}, commonProps)), type === "reorder" && /*#__PURE__*/jsxRuntime.jsx(
|
|
1194
|
+
}, commonProps))), type === "move" && /*#__PURE__*/jsxRuntime.jsx(MoveFolderPane, _objectSpread$3({}, commonProps)), type === "reorder" && /*#__PURE__*/jsxRuntime.jsx(ReorderPaneComponent, _objectSpread$3({}, commonProps))]
|
|
835
1195
|
});
|
|
836
1196
|
}
|
|
837
1197
|
});
|
|
@@ -856,8 +1216,9 @@ var FolderTile = function FolderTile(_ref) {
|
|
|
856
1216
|
itemLabel = _ref.itemLabel,
|
|
857
1217
|
folder = _ref.folder,
|
|
858
1218
|
actions = _ref.actions,
|
|
1219
|
+
config = _ref.config,
|
|
859
1220
|
onSelect = _ref.onSelect;
|
|
860
|
-
var _useTranslation =
|
|
1221
|
+
var _useTranslation = useTranslation(config),
|
|
861
1222
|
t = _useTranslation.t;
|
|
862
1223
|
var actionCallback = function actionCallback(callback) {
|
|
863
1224
|
return function (event) {
|
|
@@ -934,7 +1295,7 @@ var FoldersList = function FoldersList(_ref) {
|
|
|
934
1295
|
onSelect = _ref.onSelect;
|
|
935
1296
|
var config = _objectSpread$2(_objectSpread$2({}, useFolderActions.DEFAULT_CONFIG), configProps);
|
|
936
1297
|
var params = reactUtils.useQueryParams();
|
|
937
|
-
var _useTranslation =
|
|
1298
|
+
var _useTranslation = useTranslation(config),
|
|
938
1299
|
t = _useTranslation.t;
|
|
939
1300
|
var fetchParams = ramda.pick(["sortBy", "orderBy"], params);
|
|
940
1301
|
var _useFolders = useFolderActions.useFolders(_objectSpread$2(_objectSpread$2({}, config), {}, {
|
|
@@ -956,14 +1317,15 @@ var FoldersList = function FoldersList(_ref) {
|
|
|
956
1317
|
}), /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
957
1318
|
className: "neeto-folders-grid-view-wrapper mb-10 grid w-full gap-4",
|
|
958
1319
|
children: subFolders.map(function (folder) {
|
|
959
|
-
return /*#__PURE__*/
|
|
1320
|
+
return /*#__PURE__*/React.createElement(FolderTile, {
|
|
960
1321
|
actions: actions,
|
|
1322
|
+
config: config,
|
|
961
1323
|
folder: folder,
|
|
962
1324
|
onSelect: onSelect,
|
|
963
1325
|
isSelected: selection.includes(folder.id),
|
|
964
|
-
itemLabel: config.
|
|
1326
|
+
itemLabel: config.labels.item,
|
|
965
1327
|
key: folder.id,
|
|
966
|
-
link: utils.buildUrl(config.folderPath, _objectSpread$2(_objectSpread$2({}, params), {}, {
|
|
1328
|
+
link: utils$1.buildUrl(config.folderPath, _objectSpread$2(_objectSpread$2({}, params), {}, {
|
|
967
1329
|
folderId: folder.sid
|
|
968
1330
|
}))
|
|
969
1331
|
});
|
|
@@ -1014,16 +1376,16 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
1014
1376
|
var FoldersTree = function FoldersTree(_ref) {
|
|
1015
1377
|
var configProps = _ref.config;
|
|
1016
1378
|
var config = _objectSpread(_objectSpread({}, useFolderActions.DEFAULT_CONFIG), configProps);
|
|
1017
|
-
var _useState =
|
|
1379
|
+
var _useState = React.useState([]),
|
|
1018
1380
|
_useState2 = _slicedToArray(_useState, 2),
|
|
1019
1381
|
expandedKeys = _useState2[0],
|
|
1020
1382
|
setExpandedKeys = _useState2[1];
|
|
1021
|
-
var _useTranslation =
|
|
1383
|
+
var _useTranslation = useTranslation(config),
|
|
1022
1384
|
t = _useTranslation.t;
|
|
1023
1385
|
var params = reactUtils.useQueryParams({
|
|
1024
1386
|
toCamelCase: false
|
|
1025
1387
|
});
|
|
1026
|
-
var activeFolderSid =
|
|
1388
|
+
var activeFolderSid = internal.getActiveFolderId(config);
|
|
1027
1389
|
var _useFetchFolders = useFolderActions.useFetchFolders(config),
|
|
1028
1390
|
folders = _useFetchFolders.data;
|
|
1029
1391
|
var updateExpandedKeys = function updateExpandedKeys() {
|
|
@@ -1031,15 +1393,15 @@ var FoldersTree = function FoldersTree(_ref) {
|
|
|
1031
1393
|
if (!folders) return;
|
|
1032
1394
|
// When active folder changes from external sources, update expanded keys to auto expand tree.
|
|
1033
1395
|
var expandedKeys = [];
|
|
1034
|
-
var map =
|
|
1396
|
+
var map = utils.treeToMap(folders, "sid");
|
|
1035
1397
|
var activeFolder = map[activeFolderSid];
|
|
1036
1398
|
var parentSid = activeFolder === null || activeFolder === void 0 || (_activeFolder$meta = activeFolder.meta) === null || _activeFolder$meta === void 0 || (_activeFolder$meta = _activeFolder$meta.parent) === null || _activeFolder$meta === void 0 ? void 0 : _activeFolder$meta.sid;
|
|
1037
1399
|
if (parentSid) expandedKeys.push(parentSid);
|
|
1038
1400
|
setExpandedKeys(expandedKeys);
|
|
1039
1401
|
};
|
|
1040
|
-
|
|
1402
|
+
React.useEffect(function () {
|
|
1041
1403
|
// Non urgent update.
|
|
1042
|
-
|
|
1404
|
+
React.startTransition(updateExpandedKeys);
|
|
1043
1405
|
}, [activeFolderSid, folders]);
|
|
1044
1406
|
if (neetoCist.isNotPresent(folders)) {
|
|
1045
1407
|
return /*#__PURE__*/jsxRuntime.jsx(Typography, {
|
|
@@ -1068,7 +1430,7 @@ var FoldersTree = function FoldersTree(_ref) {
|
|
|
1068
1430
|
return /*#__PURE__*/jsxRuntime.jsx(FolderNode, {
|
|
1069
1431
|
folder: folder,
|
|
1070
1432
|
isActive: folder.sid === activeFolderSid,
|
|
1071
|
-
link: utils.buildUrl(config.folderPath, _objectSpread(_objectSpread({}, params), {}, {
|
|
1433
|
+
link: utils$1.buildUrl(config.folderPath, _objectSpread(_objectSpread({}, params), {}, {
|
|
1072
1434
|
folderId: folder.sid
|
|
1073
1435
|
}))
|
|
1074
1436
|
});
|