@bigbinary/neeto-folders-frontend 1.2.0 → 2.0.1
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 +292 -27
- package/app/javascript/src/translations/en.json +24 -16
- package/dist/cjs/components.js +625 -218
- 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 +7 -2
- package/dist/cjs/utils.js.map +1 -1
- package/dist/components.js +603 -196
- package/dist/components.js.map +1 -1
- package/dist/hooks.js +3 -1
- package/dist/hooks.js.map +1 -1
- package/dist/{pathUtils-CHuLm_t6.js → index-BFO1zYNo.js} +42 -16
- package/dist/index-BFO1zYNo.js.map +1 -0
- package/dist/{pathUtils-B2uokQlx.js → index-Cq1DyvVr.js} +41 -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-BoLQ9bAf.js → useFolderActions-BLpmmlOf.js} +33 -42
- package/dist/useFolderActions-BLpmmlOf.js.map +1 -0
- package/dist/{useFolderActions-BaDwQAdE.js → useFolderActions-D8xGNhk0.js} +33 -44
- package/dist/useFolderActions-D8xGNhk0.js.map +1 -0
- package/dist/utils.js +5 -1
- package/dist/utils.js.map +1 -1
- package/package.json +15 -15
- package/types.d.ts +89 -1
- package/dist/pathUtils-B2uokQlx.js.map +0 -1
- package/dist/pathUtils-CHuLm_t6.js.map +0 -1
- package/dist/useFolderActions-BaDwQAdE.js.map +0 -1
- package/dist/useFolderActions-BoLQ9bAf.js.map +0 -1
package/dist/components.js
CHANGED
|
@@ -1,23 +1,31 @@
|
|
|
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
|
|
23
|
+
import { t as t$1 } from 'i18next';
|
|
24
|
+
import { object, string } from 'yup';
|
|
20
25
|
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
26
|
+
import Switch from '@bigbinary/neetoui/formik/Switch';
|
|
27
|
+
import Textarea from '@bigbinary/neetoui/formik/Textarea';
|
|
28
|
+
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
21
29
|
import { ConfigProvider, TreeSelect as TreeSelect$1 } from 'antd';
|
|
22
30
|
import classNames from 'classnames';
|
|
23
31
|
import Down from '@bigbinary/neeto-icons/Down';
|
|
@@ -26,21 +34,30 @@ import { values, isEmpty, assoc, pick } from 'ramda';
|
|
|
26
34
|
import Button from '@bigbinary/neetoui/Button';
|
|
27
35
|
import { noop, isNotPresent } from '@bigbinary/neeto-cist';
|
|
28
36
|
import Radio from '@bigbinary/neetoui/Radio';
|
|
29
|
-
import
|
|
30
|
-
import
|
|
31
|
-
import Folder from '@bigbinary/neeto-icons/Folder';
|
|
37
|
+
import { useDraggable, useDroppable, DndContext, DragOverlay, useSensors, useSensor, PointerSensor } from '@dnd-kit/core';
|
|
38
|
+
import Reorder from '@bigbinary/neeto-icons/Reorder';
|
|
32
39
|
import Toastr from '@bigbinary/neetoui/Toastr';
|
|
33
40
|
import { createPortal } from 'react-dom';
|
|
34
41
|
import MoreDropdown from '@bigbinary/neeto-molecules/MoreDropdown';
|
|
35
42
|
import Checkbox from '@bigbinary/neetoui/Checkbox';
|
|
36
43
|
import Tree from '@bigbinary/neetoui/Tree';
|
|
37
|
-
import 'i18next';
|
|
38
|
-
import '@tanstack/react-query';
|
|
39
|
-
import './constants.js';
|
|
40
44
|
import 'zustand';
|
|
41
45
|
|
|
42
|
-
function ownKeys$
|
|
43
|
-
function _objectSpread$
|
|
46
|
+
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; }
|
|
47
|
+
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; }
|
|
48
|
+
var useTranslation = function useTranslation(config) {
|
|
49
|
+
var _useDefaultTranslatio = useTranslation$1(),
|
|
50
|
+
t = _useDefaultTranslatio.t;
|
|
51
|
+
var modT = function modT(key, options) {
|
|
52
|
+
return config !== null && config !== void 0 && config.labels ? t(key, _objectSpread$e(_objectSpread$e({}, config.labels), options)) : t(key, options);
|
|
53
|
+
};
|
|
54
|
+
return {
|
|
55
|
+
t: modT
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
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; }
|
|
60
|
+
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; }
|
|
44
61
|
var FoldersAlerts = function FoldersAlerts(_ref) {
|
|
45
62
|
var config = _ref.config;
|
|
46
63
|
var _useFolderStore = useFolderStore(function (store) {
|
|
@@ -52,8 +69,9 @@ var FoldersAlerts = function FoldersAlerts(_ref) {
|
|
|
52
69
|
var queryParams = useQueryParams({
|
|
53
70
|
toCamelCase: false
|
|
54
71
|
});
|
|
72
|
+
var queryClient = useQueryClient();
|
|
55
73
|
var history = useHistory();
|
|
56
|
-
var _useTranslation = useTranslation(),
|
|
74
|
+
var _useTranslation = useTranslation(config),
|
|
57
75
|
t = _useTranslation.t;
|
|
58
76
|
var _useFolderStore2 = useFolderStore(function (store) {
|
|
59
77
|
var _store$alertState, _store$alertState2;
|
|
@@ -66,7 +84,7 @@ var FoldersAlerts = function FoldersAlerts(_ref) {
|
|
|
66
84
|
item = _useFolderStore2.item;
|
|
67
85
|
var _useDestroyFolder = useDestroyFolder(config),
|
|
68
86
|
destroyFolder = _useDestroyFolder.mutateAsync,
|
|
69
|
-
|
|
87
|
+
isPending = _useDestroyFolder.isPending;
|
|
70
88
|
var _useFolders = useFolders(config),
|
|
71
89
|
folders = _useFolders.folders;
|
|
72
90
|
var onClose = function onClose() {
|
|
@@ -76,46 +94,33 @@ var FoldersAlerts = function FoldersAlerts(_ref) {
|
|
|
76
94
|
};
|
|
77
95
|
var alertProps = {
|
|
78
96
|
isOpen: !!type,
|
|
79
|
-
isSubmitting:
|
|
97
|
+
isSubmitting: isPending,
|
|
80
98
|
onClose: onClose
|
|
81
99
|
};
|
|
82
|
-
var onConfirmDelete =
|
|
83
|
-
var
|
|
84
|
-
var
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
if (parent) {
|
|
101
|
-
_context.next = 9;
|
|
102
|
-
break;
|
|
103
|
-
}
|
|
104
|
-
return _context.abrupt("return");
|
|
105
|
-
case 9:
|
|
106
|
-
history.replace(buildUrl(config.folderPath, _objectSpread$a(_objectSpread$a({}, queryParams), {}, {
|
|
107
|
-
folderId: parent.sid
|
|
108
|
-
})));
|
|
109
|
-
case 10:
|
|
110
|
-
case "end":
|
|
111
|
-
return _context.stop();
|
|
112
|
-
}
|
|
113
|
-
}, _callee);
|
|
114
|
-
}));
|
|
115
|
-
return function onConfirmDelete() {
|
|
116
|
-
return _ref2.apply(this, arguments);
|
|
100
|
+
var onConfirmDelete = function onConfirmDelete() {
|
|
101
|
+
var onSuccess = function onSuccess() {
|
|
102
|
+
var isActive = isActiveFolder(config, item.sid);
|
|
103
|
+
// Invalidates items and folder details. Refetch only if not active folder.
|
|
104
|
+
var invalidationKeys = [].concat(_toConsumableArray(config.invalidationKeys), [[QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.DETAILS]]);
|
|
105
|
+
invalidationKeys.forEach(function (queryKey) {
|
|
106
|
+
queryClient.invalidateQueries({
|
|
107
|
+
refetchType: isActive ? "none" : "active",
|
|
108
|
+
queryKey: queryKey
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
if (isActive && folders) {
|
|
112
|
+
var path = pathToFolder(folders, item.id);
|
|
113
|
+
var parent = path[path.length - 2];
|
|
114
|
+
history.replace(buildUrl(config.folderPath, _objectSpread$d(_objectSpread$d({}, queryParams), {}, {
|
|
115
|
+
folderId: parent ? parent.sid : ""
|
|
116
|
+
})));
|
|
117
|
+
}
|
|
117
118
|
};
|
|
118
|
-
|
|
119
|
+
destroyFolder(item.id, {
|
|
120
|
+
onSuccess: onSuccess,
|
|
121
|
+
onSettled: onClose
|
|
122
|
+
});
|
|
123
|
+
};
|
|
119
124
|
if (type === "delete") {
|
|
120
125
|
alertProps.title = t("deleteFolder.title");
|
|
121
126
|
alertProps.message = /*#__PURE__*/jsx(Trans, {
|
|
@@ -125,12 +130,40 @@ var FoldersAlerts = function FoldersAlerts(_ref) {
|
|
|
125
130
|
if (config.customizeAlerts) config.customizeAlerts(type, item, alertProps);
|
|
126
131
|
alertProps.onSubmit = onConfirmDelete;
|
|
127
132
|
}
|
|
128
|
-
return /*#__PURE__*/jsx(Alert, _objectSpread$
|
|
133
|
+
return /*#__PURE__*/jsx(Alert, _objectSpread$d({}, alertProps));
|
|
129
134
|
};
|
|
130
135
|
|
|
131
|
-
var
|
|
132
|
-
|
|
133
|
-
|
|
136
|
+
var FORM_VALIDATION_SCHEMA = object().shape({
|
|
137
|
+
name: string().required(t$1("errors.blank", {
|
|
138
|
+
entity: t$1("common.name")
|
|
139
|
+
}))
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
var _excluded$6 = ["type"];
|
|
143
|
+
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; }
|
|
144
|
+
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; }
|
|
145
|
+
var typeComponentMap = {
|
|
146
|
+
string: Input,
|
|
147
|
+
"boolean": Switch,
|
|
148
|
+
textarea: Textarea
|
|
149
|
+
};
|
|
150
|
+
var ExtraAttributes = function ExtraAttributes(_ref) {
|
|
151
|
+
var attributes = _ref.attributes;
|
|
152
|
+
if (!Array.isArray(attributes)) return null;
|
|
153
|
+
return attributes.map(function (_ref2) {
|
|
154
|
+
var type = _ref2.type,
|
|
155
|
+
rest = _objectWithoutProperties(_ref2, _excluded$6);
|
|
156
|
+
var Component = typeComponentMap[type];
|
|
157
|
+
if (!Component) return null;
|
|
158
|
+
return /*#__PURE__*/createElement(Component, _objectSpread$c(_objectSpread$c({}, rest), {}, {
|
|
159
|
+
key: rest.name
|
|
160
|
+
}));
|
|
161
|
+
});
|
|
162
|
+
};
|
|
163
|
+
|
|
164
|
+
var _excluded$5 = ["className", "disabled", "fieldNames", "label", "loading", "name", "placeholder", "required", "showSearch", "size", "treeData"];
|
|
165
|
+
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; }
|
|
166
|
+
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; }
|
|
134
167
|
var TreeSelect = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
135
168
|
var _fieldNames$label;
|
|
136
169
|
var className = _ref.className,
|
|
@@ -151,7 +184,7 @@ var TreeSelect = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
151
184
|
_ref$size = _ref.size,
|
|
152
185
|
size = _ref$size === void 0 ? "middle" : _ref$size,
|
|
153
186
|
treeData = _ref.treeData,
|
|
154
|
-
otherProps = _objectWithoutProperties(_ref, _excluded$
|
|
187
|
+
otherProps = _objectWithoutProperties(_ref, _excluded$5);
|
|
155
188
|
var _useField = useField(name),
|
|
156
189
|
_useField2 = _slicedToArray(_useField, 3),
|
|
157
190
|
field = _useField2[0],
|
|
@@ -169,13 +202,40 @@ var TreeSelect = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
169
202
|
children: label
|
|
170
203
|
}), /*#__PURE__*/jsx(ConfigProvider, {
|
|
171
204
|
theme: {
|
|
205
|
+
token: {
|
|
206
|
+
colorBgContainer: "rgb(var(--neeto-ui-white))",
|
|
207
|
+
colorBorder: "rgb(var(--neeto-ui-gray-300))",
|
|
208
|
+
colorBorderSecondary: "rgb(var(--neeto-ui-gray-200))",
|
|
209
|
+
colorFillAlter: "rgb(var(--neeto-ui-gray-100))",
|
|
210
|
+
colorFillContent: "rgb(var(--neeto-ui-gray-100))",
|
|
211
|
+
colorFillSecondary: "rgb(var(--neeto-ui-gray-100))",
|
|
212
|
+
colorIcon: "rgb(var(--neeto-ui-gray-700))",
|
|
213
|
+
colorIconHover: "rgb(var(--neeto-ui-gray-800))",
|
|
214
|
+
colorLink: "rgb(var(--neeto-ui-primary-500))",
|
|
215
|
+
colorLinkActive: "rgb(var(--neeto-ui-primary-800))",
|
|
216
|
+
colorLinkHover: "rgb(var(--neeto-ui-primary-600))",
|
|
217
|
+
colorPrimary: "rgb(var(--neeto-ui-primary-500))",
|
|
218
|
+
colorSplit: "rgb(var(--neeto-ui-gray-100))",
|
|
219
|
+
colorText: "rgb(var(--neeto-ui-gray-800))",
|
|
220
|
+
colorTextDescription: "rgb(var(--neeto-ui-gray-700))",
|
|
221
|
+
colorTextDisabled: "rgb(var(--neeto-ui-gray-600))",
|
|
222
|
+
colorTextHeading: "rgb(var(--neeto-ui-black))",
|
|
223
|
+
colorTextPlaceholder: "rgb(var(--neeto-ui-gray-500))",
|
|
224
|
+
controlItemBgActive: "rgb(var(--neeto-ui-primary-100))",
|
|
225
|
+
controlItemBgActiveHover: "rgb(var(--neeto-ui-pastel-purple))",
|
|
226
|
+
controlItemBgHover: "rgb(var(--neeto-ui-gray-100))"
|
|
227
|
+
},
|
|
172
228
|
components: {
|
|
173
229
|
TreeSelect: {
|
|
174
|
-
titleHeight: 28
|
|
230
|
+
titleHeight: 28,
|
|
231
|
+
indentSize: 28,
|
|
232
|
+
nodeHoverBg: "rgb(var(--neeto-ui-gray-100))",
|
|
233
|
+
nodeSelectedBg: "rgb(var(--neeto-ui-primary-500))",
|
|
234
|
+
colorBgElevated: "rgb(var(--neeto-ui-white))"
|
|
175
235
|
}
|
|
176
236
|
}
|
|
177
237
|
},
|
|
178
|
-
children: /*#__PURE__*/jsx(TreeSelect$1, _objectSpread$
|
|
238
|
+
children: /*#__PURE__*/jsx(TreeSelect$1, _objectSpread$b(_objectSpread$b({
|
|
179
239
|
treeDataSimpleMode: true,
|
|
180
240
|
"data-cy": "nui-select-container-wrapper",
|
|
181
241
|
dropdownStyle: {
|
|
@@ -190,8 +250,10 @@ var TreeSelect = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
190
250
|
"neeto-ui-tree-select__error": meta.error
|
|
191
251
|
}),
|
|
192
252
|
switcherIcon: function switcherIcon(props) {
|
|
193
|
-
return /*#__PURE__*/jsx("div", _objectSpread$
|
|
194
|
-
children: /*#__PURE__*/jsx(Down, {
|
|
253
|
+
return /*#__PURE__*/jsx("div", _objectSpread$b(_objectSpread$b({}, props), {}, {
|
|
254
|
+
children: /*#__PURE__*/jsx(Down, {
|
|
255
|
+
className: "relative"
|
|
256
|
+
})
|
|
195
257
|
}));
|
|
196
258
|
},
|
|
197
259
|
onBlur: function onBlur() {
|
|
@@ -200,7 +262,7 @@ var TreeSelect = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
200
262
|
onChange: function onChange(value) {
|
|
201
263
|
return setValue(value);
|
|
202
264
|
}
|
|
203
|
-
}, _objectSpread$
|
|
265
|
+
}, _objectSpread$b({
|
|
204
266
|
disabled: disabled,
|
|
205
267
|
fieldNames: fieldNames,
|
|
206
268
|
loading: loading,
|
|
@@ -237,12 +299,35 @@ var createFolderOptions = function createFolderOptions(foldersMap, config) {
|
|
|
237
299
|
};
|
|
238
300
|
});
|
|
239
301
|
};
|
|
302
|
+
var createInitialValues = function createInitialValues(defaults, extraAttrs) {
|
|
303
|
+
var values = {
|
|
304
|
+
name: "",
|
|
305
|
+
parentId: defaults.parentId || null
|
|
306
|
+
};
|
|
307
|
+
extraAttrs === null || extraAttrs === void 0 || extraAttrs.forEach(function (_ref) {
|
|
308
|
+
var name = _ref.name,
|
|
309
|
+
defaultValue = _ref.defaultValue;
|
|
310
|
+
values[name] = defaultValue;
|
|
311
|
+
});
|
|
312
|
+
return values;
|
|
313
|
+
};
|
|
314
|
+
var createPayload = function createPayload(values, extraAttrs) {
|
|
315
|
+
var payload = {
|
|
316
|
+
name: values.name,
|
|
317
|
+
parentId: values.parentId
|
|
318
|
+
};
|
|
319
|
+
extraAttrs === null || extraAttrs === void 0 || extraAttrs.forEach(function (_ref2) {
|
|
320
|
+
var name = _ref2.name;
|
|
321
|
+
payload[name] = values[name];
|
|
322
|
+
});
|
|
323
|
+
return payload;
|
|
324
|
+
};
|
|
240
325
|
|
|
241
326
|
var AddEditPane = function AddEditPane(_ref) {
|
|
242
327
|
var setFocusField = _ref.setFocusField,
|
|
243
328
|
config = _ref.config,
|
|
244
329
|
onClose = _ref.onClose;
|
|
245
|
-
var _useTranslation = useTranslation(),
|
|
330
|
+
var _useTranslation = useTranslation(config),
|
|
246
331
|
t = _useTranslation.t;
|
|
247
332
|
var _useFolderStore = useFolderStore(function (store) {
|
|
248
333
|
var _store$paneState, _store$paneState2;
|
|
@@ -270,22 +355,19 @@ var AddEditPane = function AddEditPane(_ref) {
|
|
|
270
355
|
var activeFolder = foldersMap[activeFolderSid];
|
|
271
356
|
var isValidParent = (activeFolder === null || activeFolder === void 0 ? void 0 : activeFolder.meta.depth) < config.maxDepth;
|
|
272
357
|
var parentId = isValidParent ? activeFolder.id : null;
|
|
358
|
+
var extraAttributes = config.extraAttributes;
|
|
273
359
|
var initialValues = useMemo(function () {
|
|
274
|
-
return isEditing ? item : {
|
|
275
|
-
name: "",
|
|
360
|
+
return isEditing ? item : createInitialValues({
|
|
276
361
|
parentId: parentId
|
|
277
|
-
};
|
|
278
|
-
}, [isEditing, item, parentId]);
|
|
362
|
+
}, extraAttributes);
|
|
363
|
+
}, [isEditing, item, parentId, extraAttributes]);
|
|
279
364
|
var onSubmitForm = /*#__PURE__*/function () {
|
|
280
365
|
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(values) {
|
|
281
366
|
var payload;
|
|
282
367
|
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
283
368
|
while (1) switch (_context.prev = _context.next) {
|
|
284
369
|
case 0:
|
|
285
|
-
payload =
|
|
286
|
-
name: values.name,
|
|
287
|
-
parent_id: values.parentId
|
|
288
|
-
};
|
|
370
|
+
payload = createPayload(values, extraAttributes);
|
|
289
371
|
if (!isEditing) {
|
|
290
372
|
_context.next = 6;
|
|
291
373
|
break;
|
|
@@ -322,16 +404,21 @@ var AddEditPane = function AddEditPane(_ref) {
|
|
|
322
404
|
}), /*#__PURE__*/jsx(Formik, {
|
|
323
405
|
initialValues: initialValues,
|
|
324
406
|
enableReinitialize: true,
|
|
407
|
+
validationSchema: FORM_VALIDATION_SCHEMA,
|
|
325
408
|
onSubmit: onSubmitForm,
|
|
326
409
|
children: function children() {
|
|
327
410
|
return /*#__PURE__*/jsxs(Fragment, {
|
|
328
411
|
children: [/*#__PURE__*/jsx(Pane.Body, {
|
|
412
|
+
className: "pb-6",
|
|
329
413
|
children: /*#__PURE__*/jsxs(Form, {
|
|
330
414
|
className: "w-full space-y-5",
|
|
331
415
|
children: [/*#__PURE__*/jsx(Input, {
|
|
416
|
+
required: true,
|
|
332
417
|
label: t("folders.name"),
|
|
333
418
|
name: "name",
|
|
334
419
|
ref: setFocusField
|
|
420
|
+
}), /*#__PURE__*/jsx(ExtraAttributes, {
|
|
421
|
+
attributes: extraAttributes
|
|
335
422
|
}), /*#__PURE__*/jsxs("div", {
|
|
336
423
|
children: [/*#__PURE__*/jsx(TreeSelect, {
|
|
337
424
|
allowClear: true,
|
|
@@ -340,7 +427,8 @@ var AddEditPane = function AddEditPane(_ref) {
|
|
|
340
427
|
name: "parentId",
|
|
341
428
|
treeData: folderOptions
|
|
342
429
|
}), /*#__PURE__*/jsx(Typography, {
|
|
343
|
-
|
|
430
|
+
className: "mt-1",
|
|
431
|
+
style: "body3",
|
|
344
432
|
children: t("createFolder.parentInfo")
|
|
345
433
|
})]
|
|
346
434
|
})]
|
|
@@ -358,10 +446,11 @@ var AddEditPane = function AddEditPane(_ref) {
|
|
|
358
446
|
});
|
|
359
447
|
};
|
|
360
448
|
|
|
361
|
-
var
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
var
|
|
449
|
+
var REORDER_TREE_INDENT_WIDTH = 30;
|
|
450
|
+
|
|
451
|
+
var _excluded$4 = ["icon", "itemLabel", "folder", "depth", "className", "onClick"];
|
|
452
|
+
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; }
|
|
453
|
+
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; }
|
|
365
454
|
var Node = function Node(_ref, ref) {
|
|
366
455
|
var _folder$children$leng, _folder$children;
|
|
367
456
|
var _ref$icon = _ref.icon,
|
|
@@ -371,8 +460,8 @@ var Node = function Node(_ref, ref) {
|
|
|
371
460
|
depth = _ref.depth,
|
|
372
461
|
className = _ref.className,
|
|
373
462
|
onClick = _ref.onClick,
|
|
374
|
-
rest = _objectWithoutProperties(_ref, _excluded$
|
|
375
|
-
var _useTranslation = useTranslation(),
|
|
463
|
+
rest = _objectWithoutProperties(_ref, _excluded$4);
|
|
464
|
+
var _useTranslation = useTranslation$1(),
|
|
376
465
|
t = _useTranslation.t;
|
|
377
466
|
var metaInfo = [];
|
|
378
467
|
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;
|
|
@@ -381,18 +470,18 @@ var Node = function Node(_ref, ref) {
|
|
|
381
470
|
}));
|
|
382
471
|
folder.itemCount > 0 && metaInfo.push("".concat(folder.itemCount, " ").concat(itemLabel));
|
|
383
472
|
return /*#__PURE__*/jsxs("div", {
|
|
384
|
-
className: "flex",
|
|
473
|
+
className: "flex w-full min-w-0",
|
|
385
474
|
children: [Array.from({
|
|
386
475
|
length: depth
|
|
387
476
|
}).map(function (_, index) {
|
|
388
477
|
return /*#__PURE__*/jsx("span", {
|
|
389
|
-
className: "relative border-l",
|
|
478
|
+
className: "neeto-ui-border-gray-300 relative h-full flex-shrink-0 border-l",
|
|
390
479
|
style: {
|
|
391
|
-
width:
|
|
392
|
-
left: Math.round(
|
|
480
|
+
width: REORDER_TREE_INDENT_WIDTH,
|
|
481
|
+
left: Math.round(REORDER_TREE_INDENT_WIDTH / 2)
|
|
393
482
|
}
|
|
394
483
|
}, index);
|
|
395
|
-
}), /*#__PURE__*/jsxs("div", _objectSpread$
|
|
484
|
+
}), /*#__PURE__*/jsxs("div", _objectSpread$a(_objectSpread$a({}, _objectSpread$a(_objectSpread$a({}, rest), {}, {
|
|
396
485
|
onClick: onClick,
|
|
397
486
|
ref: ref
|
|
398
487
|
})), {}, {
|
|
@@ -400,12 +489,14 @@ var Node = function Node(_ref, ref) {
|
|
|
400
489
|
children: [icon, /*#__PURE__*/jsxs("div", {
|
|
401
490
|
className: "ml-2",
|
|
402
491
|
children: [/*#__PURE__*/jsx(Typography, {
|
|
403
|
-
|
|
492
|
+
lineHeight: "snug",
|
|
493
|
+
style: "body1",
|
|
404
494
|
weight: "medium",
|
|
405
495
|
children: folder.name
|
|
406
496
|
}), /*#__PURE__*/jsx(Typography, {
|
|
407
|
-
className: "relative -
|
|
408
|
-
|
|
497
|
+
className: "relative mt-0.5",
|
|
498
|
+
lineHeight: "snug",
|
|
499
|
+
style: "body3",
|
|
409
500
|
weight: "normal",
|
|
410
501
|
children: metaInfo.join(" . ")
|
|
411
502
|
})]
|
|
@@ -415,9 +506,9 @@ var Node = function Node(_ref, ref) {
|
|
|
415
506
|
};
|
|
416
507
|
var Node$1 = /*#__PURE__*/forwardRef(Node);
|
|
417
508
|
|
|
418
|
-
var _excluded$
|
|
419
|
-
function ownKeys$
|
|
420
|
-
function _objectSpread$
|
|
509
|
+
var _excluded$3 = ["folder", "item", "depth", "maxDepth", "disabled", "config"];
|
|
510
|
+
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; }
|
|
511
|
+
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; }
|
|
421
512
|
var _SelectableNode = function SelectableNode(_ref) {
|
|
422
513
|
var folder = _ref.folder,
|
|
423
514
|
item = _ref.item,
|
|
@@ -425,16 +516,18 @@ var _SelectableNode = function SelectableNode(_ref) {
|
|
|
425
516
|
depth = _ref$depth === void 0 ? 0 : _ref$depth,
|
|
426
517
|
maxDepth = _ref.maxDepth,
|
|
427
518
|
disabled = _ref.disabled,
|
|
428
|
-
|
|
519
|
+
config = _ref.config,
|
|
520
|
+
rest = _objectWithoutProperties(_ref, _excluded$3);
|
|
429
521
|
var selection = rest.selection,
|
|
430
522
|
onSelect = rest.onSelect;
|
|
431
|
-
var _useTranslation = useTranslation(),
|
|
523
|
+
var _useTranslation = useTranslation(config),
|
|
432
524
|
t = _useTranslation.t;
|
|
433
525
|
var isDisabled = disabled || (item === null || item === void 0 ? void 0 : item.id) === folder.id || depth > maxDepth;
|
|
434
526
|
var renderChildren = function renderChildren() {
|
|
435
527
|
if (isNotPresent(folder.children)) return null;
|
|
436
528
|
return folder.children.map(function (child) {
|
|
437
|
-
return /*#__PURE__*/createElement(_SelectableNode, _objectSpread$
|
|
529
|
+
return /*#__PURE__*/createElement(_SelectableNode, _objectSpread$9(_objectSpread$9({}, _objectSpread$9(_objectSpread$9({}, rest), {}, {
|
|
530
|
+
config: config,
|
|
438
531
|
item: item,
|
|
439
532
|
maxDepth: maxDepth
|
|
440
533
|
})), {}, {
|
|
@@ -445,33 +538,31 @@ var _SelectableNode = function SelectableNode(_ref) {
|
|
|
445
538
|
}));
|
|
446
539
|
});
|
|
447
540
|
};
|
|
448
|
-
return /*#__PURE__*/
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
541
|
+
return /*#__PURE__*/jsxs("div", {
|
|
542
|
+
"aria-disabled": isDisabled,
|
|
543
|
+
className: classNames({
|
|
544
|
+
"opacity-60": isDisabled
|
|
545
|
+
}),
|
|
546
|
+
title: isDisabled ? t("moveToFolder.notAllowed") : undefined,
|
|
547
|
+
children: [/*#__PURE__*/jsx(Node$1, _objectSpread$9(_objectSpread$9({}, _objectSpread$9(_objectSpread$9({}, rest), {}, {
|
|
548
|
+
depth: depth,
|
|
549
|
+
folder: folder
|
|
550
|
+
})), {}, {
|
|
551
|
+
icon: /*#__PURE__*/jsx(Radio.Item, {
|
|
552
|
+
readOnly: true,
|
|
553
|
+
checked: selection === folder.id,
|
|
554
|
+
className: "neeto-ui-radio__container",
|
|
555
|
+
name: "move-folder-option"
|
|
455
556
|
}),
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
icon: /*#__PURE__*/jsx(Radio.Item, {
|
|
461
|
-
readOnly: true,
|
|
462
|
-
checked: selection === folder.id,
|
|
463
|
-
name: "move-folder-option"
|
|
464
|
-
}),
|
|
465
|
-
onClick: isDisabled ? noop : function () {
|
|
466
|
-
return onSelect(folder);
|
|
467
|
-
}
|
|
468
|
-
})), renderChildren()]
|
|
469
|
-
})
|
|
557
|
+
onClick: isDisabled ? noop : function () {
|
|
558
|
+
return onSelect(folder);
|
|
559
|
+
}
|
|
560
|
+
})), renderChildren()]
|
|
470
561
|
});
|
|
471
562
|
};
|
|
472
563
|
|
|
473
|
-
function ownKeys$
|
|
474
|
-
function _objectSpread$
|
|
564
|
+
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; }
|
|
565
|
+
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; }
|
|
475
566
|
var PaneBody = function PaneBody(_ref) {
|
|
476
567
|
var item = _ref.item,
|
|
477
568
|
config = _ref.config,
|
|
@@ -494,7 +585,7 @@ var PaneBody = function PaneBody(_ref) {
|
|
|
494
585
|
var _useFetchFolders = useFetchFolders(config),
|
|
495
586
|
_useFetchFolders$data = _useFetchFolders.data,
|
|
496
587
|
folders = _useFetchFolders$data === void 0 ? [] : _useFetchFolders$data;
|
|
497
|
-
var _useTranslation = useTranslation(),
|
|
588
|
+
var _useTranslation = useTranslation(config),
|
|
498
589
|
t = _useTranslation.t;
|
|
499
590
|
var folderDepth = 0;
|
|
500
591
|
if (item) {
|
|
@@ -525,14 +616,16 @@ var PaneBody = function PaneBody(_ref) {
|
|
|
525
616
|
onClick: onAddFolder
|
|
526
617
|
})]
|
|
527
618
|
}), /*#__PURE__*/jsx(Pane.Body, {
|
|
619
|
+
className: "pb-6",
|
|
528
620
|
children: folders.map(function (folder) {
|
|
529
621
|
return /*#__PURE__*/createElement(_SelectableNode, {
|
|
622
|
+
config: config,
|
|
530
623
|
folder: folder,
|
|
531
624
|
item: item,
|
|
532
625
|
maxDepth: maxDepth,
|
|
533
626
|
selection: selection,
|
|
534
627
|
disabled: (item === null || item === void 0 ? void 0 : item.id) === folder.id || maxDepth <= 0,
|
|
535
|
-
itemLabel: config.
|
|
628
|
+
itemLabel: config.labels.item,
|
|
536
629
|
key: folder.id,
|
|
537
630
|
onSelect: function onSelect(folder) {
|
|
538
631
|
return setSelection(folder.id);
|
|
@@ -543,19 +636,19 @@ var PaneBody = function PaneBody(_ref) {
|
|
|
543
636
|
className: "space-x-2",
|
|
544
637
|
children: [/*#__PURE__*/jsxs("div", {
|
|
545
638
|
className: "flex flex-1 space-x-2",
|
|
546
|
-
children: [/*#__PURE__*/jsx(Button, _objectSpread$
|
|
639
|
+
children: [/*#__PURE__*/jsx(Button, _objectSpread$8({
|
|
547
640
|
disabled: !selection,
|
|
548
641
|
label: t("common.save"),
|
|
549
642
|
style: "primary",
|
|
550
643
|
onClick: function onClick() {
|
|
551
644
|
return onSubmit(selection);
|
|
552
645
|
}
|
|
553
|
-
}, submitButtonProps)), /*#__PURE__*/jsx(Button, _objectSpread$
|
|
646
|
+
}, submitButtonProps)), /*#__PURE__*/jsx(Button, _objectSpread$8({
|
|
554
647
|
label: t("common.cancel"),
|
|
555
648
|
style: "text",
|
|
556
649
|
onClick: onClose
|
|
557
650
|
}, cancelButtonProps))]
|
|
558
|
-
}), onRemove && /*#__PURE__*/jsx(Button, _objectSpread$
|
|
651
|
+
}), onRemove && /*#__PURE__*/jsx(Button, _objectSpread$8({
|
|
559
652
|
label: t("moveToFolder.remove"),
|
|
560
653
|
style: "tertiary",
|
|
561
654
|
onClick: onRemove
|
|
@@ -596,14 +689,14 @@ var MoveFolderPane = function MoveFolderPane(_ref) {
|
|
|
596
689
|
});
|
|
597
690
|
};
|
|
598
691
|
|
|
599
|
-
var _excluded$
|
|
600
|
-
function ownKeys$
|
|
601
|
-
function _objectSpread$
|
|
602
|
-
var _DraggableNode = function DraggableNode(_ref) {
|
|
692
|
+
var _excluded$2 = ["folder", "depth"];
|
|
693
|
+
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; }
|
|
694
|
+
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; }
|
|
695
|
+
var _DraggableNode$1 = function DraggableNode(_ref) {
|
|
603
696
|
var folder = _ref.folder,
|
|
604
697
|
_ref$depth = _ref.depth,
|
|
605
698
|
depth = _ref$depth === void 0 ? 0 : _ref$depth,
|
|
606
|
-
rest = _objectWithoutProperties(_ref, _excluded$
|
|
699
|
+
rest = _objectWithoutProperties(_ref, _excluded$2);
|
|
607
700
|
var _useDraggable = useDraggable({
|
|
608
701
|
id: "draggable-item--".concat(folder.id),
|
|
609
702
|
data: folder,
|
|
@@ -623,21 +716,22 @@ var _DraggableNode = function DraggableNode(_ref) {
|
|
|
623
716
|
var renderChildren = function renderChildren() {
|
|
624
717
|
if (isNotPresent(folder.children) || isDragging) return null;
|
|
625
718
|
return folder.children.map(function (child) {
|
|
626
|
-
return /*#__PURE__*/createElement(_DraggableNode, _objectSpread$
|
|
719
|
+
return /*#__PURE__*/createElement(_DraggableNode$1, _objectSpread$7(_objectSpread$7({}, rest), {}, {
|
|
627
720
|
depth: depth + 1,
|
|
628
721
|
folder: child,
|
|
629
722
|
key: child.id
|
|
630
723
|
}));
|
|
631
724
|
});
|
|
632
725
|
};
|
|
633
|
-
return /*#__PURE__*/jsxs(
|
|
634
|
-
children: [/*#__PURE__*/jsx(Node$1, _objectSpread$
|
|
726
|
+
return /*#__PURE__*/jsxs(Fragment, {
|
|
727
|
+
children: [/*#__PURE__*/jsx(Node$1, _objectSpread$7(_objectSpread$7(_objectSpread$7({}, rest), {}, {
|
|
635
728
|
className: classNames({
|
|
636
|
-
"neeto-ui-bg-gray-100
|
|
729
|
+
"neeto-ui-rounded-lg hover:neeto-ui-bg-gray-100 w-full min-w-0 cursor-move transition-colors": true,
|
|
730
|
+
"neeto-ui-bg-gray-100 opacity-50": isDragging,
|
|
637
731
|
"neeto-ui-border-primary-500 border": isOver,
|
|
638
732
|
"border border-transparent": !isOver
|
|
639
733
|
})
|
|
640
|
-
}, _objectSpread$
|
|
734
|
+
}, _objectSpread$7(_objectSpread$7({
|
|
641
735
|
depth: depth,
|
|
642
736
|
folder: folder
|
|
643
737
|
}, attributes), listeners)), {}, {
|
|
@@ -649,9 +743,9 @@ var _DraggableNode = function DraggableNode(_ref) {
|
|
|
649
743
|
});
|
|
650
744
|
};
|
|
651
745
|
|
|
652
|
-
function ownKeys$
|
|
653
|
-
function _objectSpread$
|
|
654
|
-
var
|
|
746
|
+
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; }
|
|
747
|
+
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; }
|
|
748
|
+
var RearrangeFoldersPane = function RearrangeFoldersPane(_ref) {
|
|
655
749
|
var config = _ref.config,
|
|
656
750
|
onClose = _ref.onClose;
|
|
657
751
|
var _useState = useState(null),
|
|
@@ -662,7 +756,7 @@ var ReorderFoldersPane = function ReorderFoldersPane(_ref) {
|
|
|
662
756
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
663
757
|
changes = _useState4[0],
|
|
664
758
|
setChanges = _useState4[1];
|
|
665
|
-
var _useTranslation = useTranslation(),
|
|
759
|
+
var _useTranslation = useTranslation(config),
|
|
666
760
|
t = _useTranslation.t;
|
|
667
761
|
var _useFetchFolders = useFetchFolders(config),
|
|
668
762
|
folders = _useFetchFolders.data;
|
|
@@ -715,8 +809,10 @@ var ReorderFoldersPane = function ReorderFoldersPane(_ref) {
|
|
|
715
809
|
});
|
|
716
810
|
};
|
|
717
811
|
var nodeProps = {
|
|
718
|
-
icon: /*#__PURE__*/jsx(
|
|
719
|
-
|
|
812
|
+
icon: /*#__PURE__*/jsx(Reorder, {
|
|
813
|
+
className: "neeto-ui-text-gray-500 relative -left-[0.3125rem] flex-shrink-0"
|
|
814
|
+
}),
|
|
815
|
+
itemLabel: config.labels.item
|
|
720
816
|
};
|
|
721
817
|
return /*#__PURE__*/jsxs(Fragment, {
|
|
722
818
|
children: [/*#__PURE__*/jsx(Pane.Header, {
|
|
@@ -731,12 +827,13 @@ var ReorderFoldersPane = function ReorderFoldersPane(_ref) {
|
|
|
731
827
|
return setDragItem(active.data.current);
|
|
732
828
|
},
|
|
733
829
|
children: [/*#__PURE__*/jsx(Pane.Body, {
|
|
734
|
-
|
|
830
|
+
className: "pb-6",
|
|
831
|
+
children: /*#__PURE__*/createElement(_DraggableNode$1, _objectSpread$6(_objectSpread$6({}, nodeProps), {}, {
|
|
735
832
|
folder: tree,
|
|
736
833
|
key: tree.id
|
|
737
834
|
}))
|
|
738
835
|
}), /*#__PURE__*/jsxs(Pane.Footer, {
|
|
739
|
-
className: "
|
|
836
|
+
className: "gap-2",
|
|
740
837
|
children: [/*#__PURE__*/jsx(Button, {
|
|
741
838
|
disabled: isEmpty(changes),
|
|
742
839
|
label: t("common.save"),
|
|
@@ -749,7 +846,7 @@ var ReorderFoldersPane = function ReorderFoldersPane(_ref) {
|
|
|
749
846
|
})]
|
|
750
847
|
}), /*#__PURE__*/createPortal(/*#__PURE__*/jsx(DragOverlay, {
|
|
751
848
|
zIndex: 99999,
|
|
752
|
-
children: dragItem && /*#__PURE__*/jsx(Node$1, _objectSpread$
|
|
849
|
+
children: dragItem && /*#__PURE__*/jsx(Node$1, _objectSpread$6(_objectSpread$6({}, nodeProps), {}, {
|
|
753
850
|
className: "neeto-ui-bg-gray-200",
|
|
754
851
|
depth: 0,
|
|
755
852
|
folder: dragItem
|
|
@@ -759,6 +856,312 @@ var ReorderFoldersPane = function ReorderFoldersPane(_ref) {
|
|
|
759
856
|
});
|
|
760
857
|
};
|
|
761
858
|
|
|
859
|
+
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; } } }; }
|
|
860
|
+
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; } }
|
|
861
|
+
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; }
|
|
862
|
+
var distanceBetween = function distanceBetween(p1, p2) {
|
|
863
|
+
return Math.sqrt(Math.pow(p1.x - p2.x, 2) + Math.pow(p1.y - p2.y, 2));
|
|
864
|
+
};
|
|
865
|
+
var centerOfRectangle = function centerOfRectangle(rect) {
|
|
866
|
+
var left = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : rect.left;
|
|
867
|
+
var top = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : rect.top;
|
|
868
|
+
return {
|
|
869
|
+
x: left + rect.width * 0.5,
|
|
870
|
+
y: top + rect.height * 0.5
|
|
871
|
+
};
|
|
872
|
+
};
|
|
873
|
+
var closestCenter = function closestCenter(_ref) {
|
|
874
|
+
var activeItem = _ref.activeItem;
|
|
875
|
+
return function (_ref2) {
|
|
876
|
+
var collisionRect = _ref2.collisionRect,
|
|
877
|
+
droppableRects = _ref2.droppableRects,
|
|
878
|
+
droppableContainers = _ref2.droppableContainers;
|
|
879
|
+
var centerRect = centerOfRectangle(collisionRect, collisionRect.left - 30, collisionRect.top - 30);
|
|
880
|
+
var minDistance = Number.POSITIVE_INFINITY;
|
|
881
|
+
var collision = {
|
|
882
|
+
id: undefined
|
|
883
|
+
};
|
|
884
|
+
|
|
885
|
+
// eslint-disable-next-line @bigbinary/neeto/use-array-methods
|
|
886
|
+
var _iterator = _createForOfIteratorHelper(droppableContainers),
|
|
887
|
+
_step;
|
|
888
|
+
try {
|
|
889
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
890
|
+
var droppableContainer = _step.value;
|
|
891
|
+
var rect = droppableRects.get(droppableContainer.id);
|
|
892
|
+
if (!rect || droppableContainer.id === activeItem.id) continue;
|
|
893
|
+
var distance = distanceBetween(centerOfRectangle(rect), centerRect);
|
|
894
|
+
if (distance < minDistance) {
|
|
895
|
+
minDistance = distance;
|
|
896
|
+
collision = {
|
|
897
|
+
id: droppableContainer.id,
|
|
898
|
+
data: {
|
|
899
|
+
droppableContainer: droppableContainer,
|
|
900
|
+
value: distance
|
|
901
|
+
}
|
|
902
|
+
};
|
|
903
|
+
}
|
|
904
|
+
}
|
|
905
|
+
} catch (err) {
|
|
906
|
+
_iterator.e(err);
|
|
907
|
+
} finally {
|
|
908
|
+
_iterator.f();
|
|
909
|
+
}
|
|
910
|
+
return [collision];
|
|
911
|
+
};
|
|
912
|
+
};
|
|
913
|
+
|
|
914
|
+
var PlaceholderNode = function PlaceholderNode(_ref) {
|
|
915
|
+
var folder = _ref.folder,
|
|
916
|
+
dragState = _ref.dragState;
|
|
917
|
+
var overItem = dragState.overItem;
|
|
918
|
+
var id = useId();
|
|
919
|
+
var isOver = id === (overItem === null || overItem === void 0 ? void 0 : overItem.id);
|
|
920
|
+
var depth = folder.meta.depth + 1;
|
|
921
|
+
var meta = {
|
|
922
|
+
parent: folder,
|
|
923
|
+
index: -1,
|
|
924
|
+
depth: depth
|
|
925
|
+
};
|
|
926
|
+
var _useDroppable = useDroppable({
|
|
927
|
+
id: "droppable-placeholder--".concat(folder.name),
|
|
928
|
+
data: {
|
|
929
|
+
id: id,
|
|
930
|
+
meta: meta
|
|
931
|
+
}
|
|
932
|
+
}),
|
|
933
|
+
setDroppableRef = _useDroppable.setNodeRef;
|
|
934
|
+
return /*#__PURE__*/jsxs("div", {
|
|
935
|
+
className: "flex w-full",
|
|
936
|
+
children: [/*#__PURE__*/jsx("div", {
|
|
937
|
+
style: {
|
|
938
|
+
width: REORDER_TREE_INDENT_WIDTH * depth
|
|
939
|
+
}
|
|
940
|
+
}), /*#__PURE__*/jsx("div", {
|
|
941
|
+
ref: setDroppableRef,
|
|
942
|
+
className: classNames({
|
|
943
|
+
"min-w-0 flex-1 transition-colors": true,
|
|
944
|
+
"neeto-ui-border-primary-500 border-b-2": isOver
|
|
945
|
+
})
|
|
946
|
+
})]
|
|
947
|
+
});
|
|
948
|
+
};
|
|
949
|
+
|
|
950
|
+
var _excluded$1 = ["folder", "dragState"];
|
|
951
|
+
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; }
|
|
952
|
+
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; }
|
|
953
|
+
var _DraggableNode = function DraggableNode(_ref) {
|
|
954
|
+
var _overItem$meta$parent;
|
|
955
|
+
var folder = _ref.folder,
|
|
956
|
+
dragState = _ref.dragState,
|
|
957
|
+
rest = _objectWithoutProperties(_ref, _excluded$1);
|
|
958
|
+
var overItem = dragState.overItem;
|
|
959
|
+
var isOverItem = folder.id === (overItem === null || overItem === void 0 ? void 0 : overItem.id);
|
|
960
|
+
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);
|
|
961
|
+
var isRoot = folder.meta.depth <= 0;
|
|
962
|
+
var _useDraggable = useDraggable({
|
|
963
|
+
id: "draggable-item--".concat(folder.id),
|
|
964
|
+
data: folder,
|
|
965
|
+
disabled: isRoot
|
|
966
|
+
}),
|
|
967
|
+
isDragging = _useDraggable.isDragging,
|
|
968
|
+
attributes = _useDraggable.attributes,
|
|
969
|
+
listeners = _useDraggable.listeners,
|
|
970
|
+
setDraggableRef = _useDraggable.setNodeRef;
|
|
971
|
+
var _useDroppable = useDroppable({
|
|
972
|
+
id: "droppable-item--".concat(folder.id),
|
|
973
|
+
data: folder,
|
|
974
|
+
disabled: isRoot || isDragging
|
|
975
|
+
}),
|
|
976
|
+
setDroppableRef = _useDroppable.setNodeRef;
|
|
977
|
+
var renderChildren = function renderChildren() {
|
|
978
|
+
if (isDragging) return null;
|
|
979
|
+
return /*#__PURE__*/jsxs(React.Fragment, {
|
|
980
|
+
children: [/*#__PURE__*/jsx(PlaceholderNode, {
|
|
981
|
+
dragState: dragState,
|
|
982
|
+
folder: folder
|
|
983
|
+
}), isArray(folder.children) && folder.children.map(function (child) {
|
|
984
|
+
return /*#__PURE__*/createElement(_DraggableNode, _objectSpread$5(_objectSpread$5({}, _objectSpread$5(_objectSpread$5({}, rest), {}, {
|
|
985
|
+
dragState: dragState
|
|
986
|
+
})), {}, {
|
|
987
|
+
depth: child.meta.depth,
|
|
988
|
+
folder: child,
|
|
989
|
+
key: child.id
|
|
990
|
+
}));
|
|
991
|
+
})]
|
|
992
|
+
}, "".concat(folder.id, "--container"));
|
|
993
|
+
};
|
|
994
|
+
return /*#__PURE__*/jsxs(Fragment, {
|
|
995
|
+
children: [/*#__PURE__*/jsx(Node$1, _objectSpread$5(_objectSpread$5({
|
|
996
|
+
depth: folder.meta.depth
|
|
997
|
+
}, _objectSpread$5(_objectSpread$5(_objectSpread$5({}, rest), {}, {
|
|
998
|
+
folder: folder
|
|
999
|
+
}, attributes), listeners)), {}, {
|
|
1000
|
+
className: classNames({
|
|
1001
|
+
"hover:neeto-ui-bg-gray-100 w-full cursor-move transition-colors": true,
|
|
1002
|
+
"neeto-ui-bg-gray-100 opacity-50": isDragging,
|
|
1003
|
+
"neeto-ui-bg-primary-50": isOverParent,
|
|
1004
|
+
"neeto-ui-border-primary-500 border-b-2": isOverItem
|
|
1005
|
+
}),
|
|
1006
|
+
ref: function ref(_ref2) {
|
|
1007
|
+
setDroppableRef(_ref2);
|
|
1008
|
+
setDraggableRef(_ref2);
|
|
1009
|
+
}
|
|
1010
|
+
})), renderChildren()]
|
|
1011
|
+
});
|
|
1012
|
+
};
|
|
1013
|
+
|
|
1014
|
+
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; }
|
|
1015
|
+
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; }
|
|
1016
|
+
var initialDragState = {
|
|
1017
|
+
activeItem: null,
|
|
1018
|
+
overItem: null
|
|
1019
|
+
};
|
|
1020
|
+
var sensorConfig = {
|
|
1021
|
+
activationConstraint: {
|
|
1022
|
+
distance: 8
|
|
1023
|
+
}
|
|
1024
|
+
};
|
|
1025
|
+
var measuringConfig = {
|
|
1026
|
+
droppable: {
|
|
1027
|
+
frequency: 500
|
|
1028
|
+
}
|
|
1029
|
+
};
|
|
1030
|
+
|
|
1031
|
+
// Reorder with support for position adjustment
|
|
1032
|
+
var ReorderFoldersPane = function ReorderFoldersPane(_ref) {
|
|
1033
|
+
var config = _ref.config,
|
|
1034
|
+
onClose = _ref.onClose;
|
|
1035
|
+
var _useState = useState(initialDragState),
|
|
1036
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
1037
|
+
dragState = _useState2[0],
|
|
1038
|
+
setDragState = _useState2[1];
|
|
1039
|
+
var _useState3 = useState({}),
|
|
1040
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
1041
|
+
changes = _useState4[0],
|
|
1042
|
+
setChanges = _useState4[1];
|
|
1043
|
+
var _useTranslation = useTranslation(config),
|
|
1044
|
+
t = _useTranslation.t;
|
|
1045
|
+
var _useFetchFolders = useFetchFolders(config),
|
|
1046
|
+
folders = _useFetchFolders.data;
|
|
1047
|
+
var _useReorderFolders = useReorderFolders(config),
|
|
1048
|
+
reorderFolders = _useReorderFolders.mutate;
|
|
1049
|
+
var sensors = useSensors(useSensor(PointerSensor, sensorConfig));
|
|
1050
|
+
var _useStateWithDependen = useStateWithDependency(function () {
|
|
1051
|
+
return {
|
|
1052
|
+
name: "/",
|
|
1053
|
+
id: null,
|
|
1054
|
+
children: folders
|
|
1055
|
+
};
|
|
1056
|
+
}, [folders]),
|
|
1057
|
+
_useStateWithDependen2 = _slicedToArray(_useStateWithDependen, 2),
|
|
1058
|
+
baseTree = _useStateWithDependen2[0],
|
|
1059
|
+
setBaseTree = _useStateWithDependen2[1];
|
|
1060
|
+
|
|
1061
|
+
// Decorates tree with meta info. Can be optimized when needed.
|
|
1062
|
+
var tree = useMemo(function () {
|
|
1063
|
+
return mapToSortedTree(treeToMap(baseTree));
|
|
1064
|
+
}, [baseTree]);
|
|
1065
|
+
var onDragEnd = function onDragEnd(_ref2) {
|
|
1066
|
+
var active = _ref2.active,
|
|
1067
|
+
over = _ref2.over;
|
|
1068
|
+
setDragState(initialDragState);
|
|
1069
|
+
if (!over) return;
|
|
1070
|
+
var foldersMap = treeToMap(tree);
|
|
1071
|
+
var activeFolder = foldersMap[active.data.current.id];
|
|
1072
|
+
var targetFolder = foldersMap[over.data.current.meta.parent.id];
|
|
1073
|
+
var targetIndex = over.data.current.meta.index + 1; // `index` starts from -1 with placeholder
|
|
1074
|
+
|
|
1075
|
+
// Guards: Check moving inside invalid directories.
|
|
1076
|
+
if (!targetFolder || activeFolder.id === targetFolder.id) return;
|
|
1077
|
+
if (activeFolder.meta.parent.id === targetFolder.id && activeFolder.meta.index === targetIndex) {
|
|
1078
|
+
return;
|
|
1079
|
+
}
|
|
1080
|
+
|
|
1081
|
+
// Check moving to a folder with depth greater than the allowed limit.
|
|
1082
|
+
// maxDepth + 1 due to extra root node added for the tree
|
|
1083
|
+
var srcDepth = measureDepth(activeFolder);
|
|
1084
|
+
var dstDepth = targetFolder.meta.depth;
|
|
1085
|
+
if (srcDepth + dstDepth >= config.maxDepth + 1) {
|
|
1086
|
+
Toastr.error(t("moveToFolder.depthExceeded", {
|
|
1087
|
+
maxDepth: config.maxDepth
|
|
1088
|
+
}));
|
|
1089
|
+
return;
|
|
1090
|
+
}
|
|
1091
|
+
activeFolder.meta.parent = targetFolder;
|
|
1092
|
+
activeFolder.meta.__index = targetIndex;
|
|
1093
|
+
var newTree = mapToSortedTree(foldersMap);
|
|
1094
|
+
setBaseTree(newTree);
|
|
1095
|
+
setChanges(assoc(activeFolder.id, {
|
|
1096
|
+
parentId: targetFolder.id,
|
|
1097
|
+
index: targetIndex
|
|
1098
|
+
}));
|
|
1099
|
+
};
|
|
1100
|
+
var onSubmit = function onSubmit() {
|
|
1101
|
+
var payload = {
|
|
1102
|
+
changes: changes
|
|
1103
|
+
};
|
|
1104
|
+
reorderFolders(payload, {
|
|
1105
|
+
onSuccess: onClose
|
|
1106
|
+
});
|
|
1107
|
+
};
|
|
1108
|
+
var nodeProps = {
|
|
1109
|
+
icon: /*#__PURE__*/jsx(Reorder, {
|
|
1110
|
+
className: "neeto-ui-text-gray-500 relative -left-[0.3125rem] flex-shrink-0"
|
|
1111
|
+
}),
|
|
1112
|
+
itemLabel: config.labels.item
|
|
1113
|
+
};
|
|
1114
|
+
return /*#__PURE__*/jsxs(Fragment, {
|
|
1115
|
+
children: [/*#__PURE__*/jsx(Pane.Header, {
|
|
1116
|
+
children: /*#__PURE__*/jsx(Typography, {
|
|
1117
|
+
style: "h2",
|
|
1118
|
+
children: t("reorderFolder.title")
|
|
1119
|
+
})
|
|
1120
|
+
}), /*#__PURE__*/jsxs(DndContext, {
|
|
1121
|
+
onDragEnd: onDragEnd,
|
|
1122
|
+
sensors: sensors,
|
|
1123
|
+
collisionDetection: closestCenter(dragState),
|
|
1124
|
+
measuring: measuringConfig,
|
|
1125
|
+
onDragOver: function onDragOver(_ref3) {
|
|
1126
|
+
var over = _ref3.over;
|
|
1127
|
+
setDragState(assoc("overItem", over === null || over === void 0 ? void 0 : over.data.current));
|
|
1128
|
+
},
|
|
1129
|
+
onDragStart: function onDragStart(_ref4) {
|
|
1130
|
+
var active = _ref4.active;
|
|
1131
|
+
setDragState(assoc("activeItem", active.data.current));
|
|
1132
|
+
},
|
|
1133
|
+
children: [/*#__PURE__*/jsx(Pane.Body, {
|
|
1134
|
+
className: "pb-6",
|
|
1135
|
+
children: /*#__PURE__*/createElement(_DraggableNode, _objectSpread$4(_objectSpread$4({}, _objectSpread$4(_objectSpread$4({}, nodeProps), {}, {
|
|
1136
|
+
dragState: dragState
|
|
1137
|
+
})), {}, {
|
|
1138
|
+
folder: tree,
|
|
1139
|
+
key: tree.id
|
|
1140
|
+
}))
|
|
1141
|
+
}), /*#__PURE__*/jsxs(Pane.Footer, {
|
|
1142
|
+
className: "gap-2",
|
|
1143
|
+
children: [/*#__PURE__*/jsx(Button, {
|
|
1144
|
+
disabled: isEmpty(changes),
|
|
1145
|
+
label: t("common.save"),
|
|
1146
|
+
style: "primary",
|
|
1147
|
+
onClick: onSubmit
|
|
1148
|
+
}), /*#__PURE__*/jsx(Button, {
|
|
1149
|
+
label: t("common.cancel"),
|
|
1150
|
+
style: "text",
|
|
1151
|
+
onClick: onClose
|
|
1152
|
+
})]
|
|
1153
|
+
}), /*#__PURE__*/createPortal(/*#__PURE__*/jsx(DragOverlay, {
|
|
1154
|
+
zIndex: 99999,
|
|
1155
|
+
children: dragState && /*#__PURE__*/jsx(Node$1, _objectSpread$4(_objectSpread$4({}, nodeProps), {}, {
|
|
1156
|
+
className: "neeto-ui-bg-gray-200 pl-4 pr-12",
|
|
1157
|
+
depth: 0,
|
|
1158
|
+
folder: dragState.activeItem
|
|
1159
|
+
}))
|
|
1160
|
+
}), document.body)]
|
|
1161
|
+
})]
|
|
1162
|
+
});
|
|
1163
|
+
};
|
|
1164
|
+
|
|
762
1165
|
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; }
|
|
763
1166
|
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; }
|
|
764
1167
|
var FoldersPane = function FoldersPane(_ref) {
|
|
@@ -786,6 +1189,7 @@ var FoldersPane = function FoldersPane(_ref) {
|
|
|
786
1189
|
config: config,
|
|
787
1190
|
onClose: onClose
|
|
788
1191
|
};
|
|
1192
|
+
var ReorderPaneComponent = config.reorderMode === "reorder" ? ReorderFoldersPane : RearrangeFoldersPane;
|
|
789
1193
|
return /*#__PURE__*/jsx(Pane, {
|
|
790
1194
|
onClose: onClose,
|
|
791
1195
|
isOpen: !!type,
|
|
@@ -794,7 +1198,7 @@ var FoldersPane = function FoldersPane(_ref) {
|
|
|
794
1198
|
return /*#__PURE__*/jsxs(Fragment, {
|
|
795
1199
|
children: [(type === "edit" || type === "add") && /*#__PURE__*/jsx(AddEditPane, _objectSpread$3({}, _objectSpread$3({
|
|
796
1200
|
setFocusField: setFocusField
|
|
797
|
-
}, commonProps))), type === "move" && /*#__PURE__*/jsx(MoveFolderPane, _objectSpread$3({}, commonProps)), type === "reorder" && /*#__PURE__*/jsx(
|
|
1201
|
+
}, commonProps))), type === "move" && /*#__PURE__*/jsx(MoveFolderPane, _objectSpread$3({}, commonProps)), type === "reorder" && /*#__PURE__*/jsx(ReorderPaneComponent, _objectSpread$3({}, commonProps))]
|
|
798
1202
|
});
|
|
799
1203
|
}
|
|
800
1204
|
});
|
|
@@ -819,8 +1223,9 @@ var FolderTile = function FolderTile(_ref) {
|
|
|
819
1223
|
itemLabel = _ref.itemLabel,
|
|
820
1224
|
folder = _ref.folder,
|
|
821
1225
|
actions = _ref.actions,
|
|
1226
|
+
config = _ref.config,
|
|
822
1227
|
onSelect = _ref.onSelect;
|
|
823
|
-
var _useTranslation = useTranslation(),
|
|
1228
|
+
var _useTranslation = useTranslation(config),
|
|
824
1229
|
t = _useTranslation.t;
|
|
825
1230
|
var actionCallback = function actionCallback(callback) {
|
|
826
1231
|
return function (event) {
|
|
@@ -848,44 +1253,42 @@ var FolderTile = function FolderTile(_ref) {
|
|
|
848
1253
|
}));
|
|
849
1254
|
metaInfo.push("".concat(folder.itemCount || 0, " ").concat(itemLabel));
|
|
850
1255
|
return /*#__PURE__*/jsxs(Link, {
|
|
851
|
-
className: "neeto-ui-bg-gray-
|
|
1256
|
+
className: "neeto-ui-bg-gray-50 neeto-ui-border-gray-200 neeto-ui-rounded-md hover:neeto-ui-border-primary-500 relative flex max-w-full items-start gap-2 border-2 p-3 transition-colors ease-in",
|
|
852
1257
|
to: link,
|
|
853
|
-
children: [/*#__PURE__*/
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
})]
|
|
877
|
-
}), /*#__PURE__*/jsx(MoreDropdown, {
|
|
878
|
-
menuItems: menuItems,
|
|
879
|
-
dropdownProps: {
|
|
880
|
-
onClick: function onClick(event) {
|
|
881
|
-
return event.preventDefault();
|
|
882
|
-
}
|
|
883
|
-
}
|
|
1258
|
+
children: [/*#__PURE__*/jsx(Checkbox, {
|
|
1259
|
+
checked: isSelected,
|
|
1260
|
+
className: "m-0 flex-shrink-0 flex-grow-0 pt-0.5",
|
|
1261
|
+
name: folder.id,
|
|
1262
|
+
onChange: function onChange(event) {
|
|
1263
|
+
return onSelect(folder, event.target.checked);
|
|
1264
|
+
},
|
|
1265
|
+
onClick: function onClick(event) {
|
|
1266
|
+
return event.stopPropagation();
|
|
1267
|
+
}
|
|
1268
|
+
}), /*#__PURE__*/jsxs("span", {
|
|
1269
|
+
className: "flex min-w-0 flex-grow flex-col gap-2",
|
|
1270
|
+
children: [/*#__PURE__*/jsx(Typography, {
|
|
1271
|
+
className: "-mt-0.5 line-clamp-2 break-words pr-8",
|
|
1272
|
+
lineHeight: "snug",
|
|
1273
|
+
style: "body1",
|
|
1274
|
+
title: folder.name,
|
|
1275
|
+
weight: "medium",
|
|
1276
|
+
children: folder.name
|
|
1277
|
+
}), /*#__PURE__*/jsx(Typography, {
|
|
1278
|
+
className: "neeto-ui-text-gray-600",
|
|
1279
|
+
style: "body3",
|
|
1280
|
+
children: metaInfo.join(" . ")
|
|
884
1281
|
})]
|
|
885
|
-
}), /*#__PURE__*/jsx(
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
1282
|
+
}), /*#__PURE__*/jsx(MoreDropdown, {
|
|
1283
|
+
menuItems: menuItems,
|
|
1284
|
+
dropdownButtonProps: {
|
|
1285
|
+
className: "absolute right-2 top-2"
|
|
1286
|
+
},
|
|
1287
|
+
dropdownProps: {
|
|
1288
|
+
onClick: function onClick(event) {
|
|
1289
|
+
return event.preventDefault();
|
|
1290
|
+
}
|
|
1291
|
+
}
|
|
889
1292
|
})]
|
|
890
1293
|
});
|
|
891
1294
|
};
|
|
@@ -899,7 +1302,7 @@ var FoldersList = function FoldersList(_ref) {
|
|
|
899
1302
|
onSelect = _ref.onSelect;
|
|
900
1303
|
var config = _objectSpread$2(_objectSpread$2({}, DEFAULT_CONFIG), configProps);
|
|
901
1304
|
var params = useQueryParams();
|
|
902
|
-
var _useTranslation = useTranslation(),
|
|
1305
|
+
var _useTranslation = useTranslation(config),
|
|
903
1306
|
t = _useTranslation.t;
|
|
904
1307
|
var fetchParams = pick(["sortBy", "orderBy"], params);
|
|
905
1308
|
var _useFolders = useFolders(_objectSpread$2(_objectSpread$2({}, config), {}, {
|
|
@@ -915,18 +1318,19 @@ var FoldersList = function FoldersList(_ref) {
|
|
|
915
1318
|
return /*#__PURE__*/jsxs(FoldersContext, {
|
|
916
1319
|
config: config,
|
|
917
1320
|
children: [/*#__PURE__*/jsx(Typography, {
|
|
918
|
-
className: "
|
|
1321
|
+
className: "my-3",
|
|
919
1322
|
style: "h4",
|
|
920
1323
|
children: t("folders.title")
|
|
921
1324
|
}), /*#__PURE__*/jsx("div", {
|
|
922
|
-
className: "mb-
|
|
1325
|
+
className: "neeto-folders-grid-view-wrapper mb-10 grid w-full gap-4",
|
|
923
1326
|
children: subFolders.map(function (folder) {
|
|
924
1327
|
return /*#__PURE__*/createElement(FolderTile, {
|
|
925
1328
|
actions: actions,
|
|
1329
|
+
config: config,
|
|
926
1330
|
folder: folder,
|
|
927
1331
|
onSelect: onSelect,
|
|
928
1332
|
isSelected: selection.includes(folder.id),
|
|
929
|
-
itemLabel: config.
|
|
1333
|
+
itemLabel: config.labels.item,
|
|
930
1334
|
key: folder.id,
|
|
931
1335
|
link: buildUrl(config.folderPath, _objectSpread$2(_objectSpread$2({}, params), {}, {
|
|
932
1336
|
folderId: folder.sid
|
|
@@ -959,20 +1363,17 @@ var FolderNode = function FolderNode(_ref) {
|
|
|
959
1363
|
link = _ref.link;
|
|
960
1364
|
return /*#__PURE__*/jsx(NavLink, {
|
|
961
1365
|
activeClassName: "active",
|
|
962
|
-
className: "block",
|
|
1366
|
+
className: "neeto-sidebar-folders-tree__folder-node block",
|
|
963
1367
|
isActive: function isActive() {
|
|
964
1368
|
return _isActive;
|
|
965
1369
|
},
|
|
966
1370
|
to: link,
|
|
967
|
-
children: /*#__PURE__*/jsx(
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
style: "body2",
|
|
974
|
-
children: folder.name
|
|
975
|
-
})
|
|
1371
|
+
children: /*#__PURE__*/jsx(Typography, {
|
|
1372
|
+
className: "line-clamp-1 block truncate",
|
|
1373
|
+
component: "span",
|
|
1374
|
+
style: "body2",
|
|
1375
|
+
title: folder.name,
|
|
1376
|
+
children: folder.name
|
|
976
1377
|
})
|
|
977
1378
|
});
|
|
978
1379
|
};
|
|
@@ -986,7 +1387,7 @@ var FoldersTree = function FoldersTree(_ref) {
|
|
|
986
1387
|
_useState2 = _slicedToArray(_useState, 2),
|
|
987
1388
|
expandedKeys = _useState2[0],
|
|
988
1389
|
setExpandedKeys = _useState2[1];
|
|
989
|
-
var _useTranslation = useTranslation(),
|
|
1390
|
+
var _useTranslation = useTranslation(config),
|
|
990
1391
|
t = _useTranslation.t;
|
|
991
1392
|
var params = useQueryParams({
|
|
992
1393
|
toCamelCase: false
|
|
@@ -1022,9 +1423,10 @@ var FoldersTree = function FoldersTree(_ref) {
|
|
|
1022
1423
|
autoExpandParent: true,
|
|
1023
1424
|
blockNode: true,
|
|
1024
1425
|
showLine: true,
|
|
1426
|
+
className: "neeto-sidebar-folders-tree",
|
|
1025
1427
|
componentToken: {
|
|
1026
|
-
titleHeight:
|
|
1027
|
-
indentSize:
|
|
1428
|
+
titleHeight: 24,
|
|
1429
|
+
indentSize: 24
|
|
1028
1430
|
},
|
|
1029
1431
|
fieldNames: {
|
|
1030
1432
|
key: "sid"
|
|
@@ -1044,5 +1446,10 @@ var FoldersTree = function FoldersTree(_ref) {
|
|
|
1044
1446
|
});
|
|
1045
1447
|
};
|
|
1046
1448
|
|
|
1449
|
+
var e=[],t=[];function n(n,r){if(n&&"undefined"!=typeof document){var a,s=!0===r.prepend?"prepend":"append",d=!0===r.singleTag,i="string"==typeof r.container?document.querySelector(r.container):document.getElementsByTagName("head")[0];if(d){var u=e.indexOf(i);-1===u&&(u=e.push(i)-1,t[u]={}),a=t[u]&&t[u][s]?t[u][s]:t[u][s]=c();}else a=c();65279===n.charCodeAt(0)&&(n=n.substring(1)),a.styleSheet?a.styleSheet.cssText+=n:a.appendChild(document.createTextNode(n));}function c(){var e=document.createElement("style");if(e.setAttribute("type","text/css"),r.attributes)for(var t=Object.keys(r.attributes),n=0;n<t.length;n++)e.setAttribute(t[n],r.attributes[t[n]]);var a="prepend"===s?"afterbegin":"beforeend";return i.insertAdjacentElement(a,e),e}}
|
|
1450
|
+
|
|
1451
|
+
var css = ".neeto-sidebar-folders-tree__folder-node{color:inherit!important}.neeto-sidebar-folders-tree.ant-tree .ant-tree-node-content-wrapper{min-width:0;padding-inline:6px!important}.neeto-sidebar-folders-tree.ant-tree .ant-tree-node-content-wrapper.ant-tree-node-selected{background-color:rgb(var(--neeto-ui-white));color:rgb(var(--neeto-ui-accent-800))!important;font-weight:500}.neeto-sidebar-folders-tree.ant-tree .ant-tree-switcher .ant-tree-switcher-icon{position:relative}.neeto-folders-grid-view-wrapper{grid-template-columns:repeat(auto-fill,minmax(256px,1fr))}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC9qYXZhc2NyaXB0L3NyYy9jb21wb25lbnRzL25lZXRvLWZvbGRlcnMtbmFuby5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHlDQUNFLHVCQUNGLENBRUEsb0VBRUUsV0FBQSxDQURBLDRCQUVGLENBRUEsMkZBRUUsMkNBQUEsQ0FEQSwrQ0FBQSxDQUVBLGVBQ0YsQ0FFQSxnRkFDRSxpQkFDRixDQUVBLGlDQUNFLHlEQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLm5lZXRvLXNpZGViYXItZm9sZGVycy10cmVlX19mb2xkZXItbm9kZSB7XG4gIGNvbG9yOiBpbmhlcml0ICFpbXBvcnRhbnQ7XG59XG5cbi5uZWV0by1zaWRlYmFyLWZvbGRlcnMtdHJlZS5hbnQtdHJlZSAuYW50LXRyZWUtbm9kZS1jb250ZW50LXdyYXBwZXIge1xuICBwYWRkaW5nLWlubGluZTogNnB4ICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogMDtcbn1cblxuLm5lZXRvLXNpZGViYXItZm9sZGVycy10cmVlLmFudC10cmVlIC5hbnQtdHJlZS1ub2RlLWNvbnRlbnQtd3JhcHBlci5hbnQtdHJlZS1ub2RlLXNlbGVjdGVkIHtcbiAgY29sb3I6IHJnYih2YXIoLS1uZWV0by11aS1hY2NlbnQtODAwKSkgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKHZhcigtLW5lZXRvLXVpLXdoaXRlKSk7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5uZWV0by1zaWRlYmFyLWZvbGRlcnMtdHJlZS5hbnQtdHJlZSAuYW50LXRyZWUtc3dpdGNoZXIgLmFudC10cmVlLXN3aXRjaGVyLWljb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5uZWV0by1mb2xkZXJzLWdyaWQtdmlldy13cmFwcGVyIHtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMjU2cHgsIDFmcikpO1xufSJdfQ== */";
|
|
1452
|
+
n(css,{});
|
|
1453
|
+
|
|
1047
1454
|
export { FoldersContext, FoldersList, FoldersTree, MoveToFolderPane };
|
|
1048
1455
|
//# sourceMappingURL=components.js.map
|