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