@bigbinary/neeto-folders-frontend 1.2.0 → 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 +292 -27
- package/app/javascript/src/translations/en.json +19 -16
- package/dist/cjs/components.js +615 -217
- 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 +593 -195
- 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 +11 -11
- 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,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,21 +32,31 @@ 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
|
|
30
|
-
import
|
|
31
|
-
import Folder from '@bigbinary/neeto-icons/Folder';
|
|
35
|
+
import { useDraggable, useDroppable, DndContext, DragOverlay, useSensors, useSensor, PointerSensor } from '@dnd-kit/core';
|
|
36
|
+
import Reorder from '@bigbinary/neeto-icons/Reorder';
|
|
32
37
|
import Toastr from '@bigbinary/neetoui/Toastr';
|
|
33
38
|
import { createPortal } from 'react-dom';
|
|
34
39
|
import MoreDropdown from '@bigbinary/neeto-molecules/MoreDropdown';
|
|
35
40
|
import Checkbox from '@bigbinary/neetoui/Checkbox';
|
|
36
41
|
import Tree from '@bigbinary/neetoui/Tree';
|
|
37
42
|
import 'i18next';
|
|
38
|
-
import '@tanstack/react-query';
|
|
39
|
-
import './constants.js';
|
|
40
43
|
import 'zustand';
|
|
41
44
|
|
|
42
|
-
function ownKeys$
|
|
43
|
-
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; }
|
|
44
60
|
var FoldersAlerts = function FoldersAlerts(_ref) {
|
|
45
61
|
var config = _ref.config;
|
|
46
62
|
var _useFolderStore = useFolderStore(function (store) {
|
|
@@ -52,8 +68,9 @@ var FoldersAlerts = function FoldersAlerts(_ref) {
|
|
|
52
68
|
var queryParams = useQueryParams({
|
|
53
69
|
toCamelCase: false
|
|
54
70
|
});
|
|
71
|
+
var queryClient = useQueryClient();
|
|
55
72
|
var history = useHistory();
|
|
56
|
-
var _useTranslation = useTranslation(),
|
|
73
|
+
var _useTranslation = useTranslation(config),
|
|
57
74
|
t = _useTranslation.t;
|
|
58
75
|
var _useFolderStore2 = useFolderStore(function (store) {
|
|
59
76
|
var _store$alertState, _store$alertState2;
|
|
@@ -66,7 +83,7 @@ var FoldersAlerts = function FoldersAlerts(_ref) {
|
|
|
66
83
|
item = _useFolderStore2.item;
|
|
67
84
|
var _useDestroyFolder = useDestroyFolder(config),
|
|
68
85
|
destroyFolder = _useDestroyFolder.mutateAsync,
|
|
69
|
-
|
|
86
|
+
isPending = _useDestroyFolder.isPending;
|
|
70
87
|
var _useFolders = useFolders(config),
|
|
71
88
|
folders = _useFolders.folders;
|
|
72
89
|
var onClose = function onClose() {
|
|
@@ -76,46 +93,33 @@ var FoldersAlerts = function FoldersAlerts(_ref) {
|
|
|
76
93
|
};
|
|
77
94
|
var alertProps = {
|
|
78
95
|
isOpen: !!type,
|
|
79
|
-
isSubmitting:
|
|
96
|
+
isSubmitting: isPending,
|
|
80
97
|
onClose: onClose
|
|
81
98
|
};
|
|
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);
|
|
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
|
+
}
|
|
117
117
|
};
|
|
118
|
-
|
|
118
|
+
destroyFolder(item.id, {
|
|
119
|
+
onSuccess: onSuccess,
|
|
120
|
+
onSettled: onClose
|
|
121
|
+
});
|
|
122
|
+
};
|
|
119
123
|
if (type === "delete") {
|
|
120
124
|
alertProps.title = t("deleteFolder.title");
|
|
121
125
|
alertProps.message = /*#__PURE__*/jsx(Trans, {
|
|
@@ -125,12 +129,34 @@ var FoldersAlerts = function FoldersAlerts(_ref) {
|
|
|
125
129
|
if (config.customizeAlerts) config.customizeAlerts(type, item, alertProps);
|
|
126
130
|
alertProps.onSubmit = onConfirmDelete;
|
|
127
131
|
}
|
|
128
|
-
return /*#__PURE__*/jsx(Alert, _objectSpread$
|
|
132
|
+
return /*#__PURE__*/jsx(Alert, _objectSpread$d({}, alertProps));
|
|
129
133
|
};
|
|
130
134
|
|
|
131
|
-
var _excluded$
|
|
132
|
-
function ownKeys$
|
|
133
|
-
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; }
|
|
134
160
|
var TreeSelect = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
135
161
|
var _fieldNames$label;
|
|
136
162
|
var className = _ref.className,
|
|
@@ -151,7 +177,7 @@ var TreeSelect = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
151
177
|
_ref$size = _ref.size,
|
|
152
178
|
size = _ref$size === void 0 ? "middle" : _ref$size,
|
|
153
179
|
treeData = _ref.treeData,
|
|
154
|
-
otherProps = _objectWithoutProperties(_ref, _excluded$
|
|
180
|
+
otherProps = _objectWithoutProperties(_ref, _excluded$5);
|
|
155
181
|
var _useField = useField(name),
|
|
156
182
|
_useField2 = _slicedToArray(_useField, 3),
|
|
157
183
|
field = _useField2[0],
|
|
@@ -169,13 +195,40 @@ var TreeSelect = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
169
195
|
children: label
|
|
170
196
|
}), /*#__PURE__*/jsx(ConfigProvider, {
|
|
171
197
|
theme: {
|
|
198
|
+
token: {
|
|
199
|
+
colorBgContainer: "rgb(var(--neeto-ui-white))",
|
|
200
|
+
colorBorder: "rgb(var(--neeto-ui-gray-300))",
|
|
201
|
+
colorBorderSecondary: "rgb(var(--neeto-ui-gray-200))",
|
|
202
|
+
colorFillAlter: "rgb(var(--neeto-ui-gray-100))",
|
|
203
|
+
colorFillContent: "rgb(var(--neeto-ui-gray-100))",
|
|
204
|
+
colorFillSecondary: "rgb(var(--neeto-ui-gray-100))",
|
|
205
|
+
colorIcon: "rgb(var(--neeto-ui-gray-700))",
|
|
206
|
+
colorIconHover: "rgb(var(--neeto-ui-gray-800))",
|
|
207
|
+
colorLink: "rgb(var(--neeto-ui-primary-500))",
|
|
208
|
+
colorLinkActive: "rgb(var(--neeto-ui-primary-800))",
|
|
209
|
+
colorLinkHover: "rgb(var(--neeto-ui-primary-600))",
|
|
210
|
+
colorPrimary: "rgb(var(--neeto-ui-primary-500))",
|
|
211
|
+
colorSplit: "rgb(var(--neeto-ui-gray-100))",
|
|
212
|
+
colorText: "rgb(var(--neeto-ui-gray-800))",
|
|
213
|
+
colorTextDescription: "rgb(var(--neeto-ui-gray-700))",
|
|
214
|
+
colorTextDisabled: "rgb(var(--neeto-ui-gray-600))",
|
|
215
|
+
colorTextHeading: "rgb(var(--neeto-ui-black))",
|
|
216
|
+
colorTextPlaceholder: "rgb(var(--neeto-ui-gray-500))",
|
|
217
|
+
controlItemBgActive: "rgb(var(--neeto-ui-primary-100))",
|
|
218
|
+
controlItemBgActiveHover: "rgb(var(--neeto-ui-pastel-purple))",
|
|
219
|
+
controlItemBgHover: "rgb(var(--neeto-ui-gray-100))"
|
|
220
|
+
},
|
|
172
221
|
components: {
|
|
173
222
|
TreeSelect: {
|
|
174
|
-
titleHeight: 28
|
|
223
|
+
titleHeight: 28,
|
|
224
|
+
indentSize: 28,
|
|
225
|
+
nodeHoverBg: "rgb(var(--neeto-ui-gray-100))",
|
|
226
|
+
nodeSelectedBg: "rgb(var(--neeto-ui-primary-500))",
|
|
227
|
+
colorBgElevated: "rgb(var(--neeto-ui-white))"
|
|
175
228
|
}
|
|
176
229
|
}
|
|
177
230
|
},
|
|
178
|
-
children: /*#__PURE__*/jsx(TreeSelect$1, _objectSpread$
|
|
231
|
+
children: /*#__PURE__*/jsx(TreeSelect$1, _objectSpread$b(_objectSpread$b({
|
|
179
232
|
treeDataSimpleMode: true,
|
|
180
233
|
"data-cy": "nui-select-container-wrapper",
|
|
181
234
|
dropdownStyle: {
|
|
@@ -190,8 +243,10 @@ var TreeSelect = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
190
243
|
"neeto-ui-tree-select__error": meta.error
|
|
191
244
|
}),
|
|
192
245
|
switcherIcon: function switcherIcon(props) {
|
|
193
|
-
return /*#__PURE__*/jsx("div", _objectSpread$
|
|
194
|
-
children: /*#__PURE__*/jsx(Down, {
|
|
246
|
+
return /*#__PURE__*/jsx("div", _objectSpread$b(_objectSpread$b({}, props), {}, {
|
|
247
|
+
children: /*#__PURE__*/jsx(Down, {
|
|
248
|
+
className: "relative"
|
|
249
|
+
})
|
|
195
250
|
}));
|
|
196
251
|
},
|
|
197
252
|
onBlur: function onBlur() {
|
|
@@ -200,7 +255,7 @@ var TreeSelect = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
200
255
|
onChange: function onChange(value) {
|
|
201
256
|
return setValue(value);
|
|
202
257
|
}
|
|
203
|
-
}, _objectSpread$
|
|
258
|
+
}, _objectSpread$b({
|
|
204
259
|
disabled: disabled,
|
|
205
260
|
fieldNames: fieldNames,
|
|
206
261
|
loading: loading,
|
|
@@ -237,12 +292,35 @@ var createFolderOptions = function createFolderOptions(foldersMap, config) {
|
|
|
237
292
|
};
|
|
238
293
|
});
|
|
239
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
|
+
};
|
|
240
318
|
|
|
241
319
|
var AddEditPane = function AddEditPane(_ref) {
|
|
242
320
|
var setFocusField = _ref.setFocusField,
|
|
243
321
|
config = _ref.config,
|
|
244
322
|
onClose = _ref.onClose;
|
|
245
|
-
var _useTranslation = useTranslation(),
|
|
323
|
+
var _useTranslation = useTranslation(config),
|
|
246
324
|
t = _useTranslation.t;
|
|
247
325
|
var _useFolderStore = useFolderStore(function (store) {
|
|
248
326
|
var _store$paneState, _store$paneState2;
|
|
@@ -270,22 +348,19 @@ var AddEditPane = function AddEditPane(_ref) {
|
|
|
270
348
|
var activeFolder = foldersMap[activeFolderSid];
|
|
271
349
|
var isValidParent = (activeFolder === null || activeFolder === void 0 ? void 0 : activeFolder.meta.depth) < config.maxDepth;
|
|
272
350
|
var parentId = isValidParent ? activeFolder.id : null;
|
|
351
|
+
var extraAttributes = config.extraAttributes;
|
|
273
352
|
var initialValues = useMemo(function () {
|
|
274
|
-
return isEditing ? item : {
|
|
275
|
-
name: "",
|
|
353
|
+
return isEditing ? item : createInitialValues({
|
|
276
354
|
parentId: parentId
|
|
277
|
-
};
|
|
278
|
-
}, [isEditing, item, parentId]);
|
|
355
|
+
}, extraAttributes);
|
|
356
|
+
}, [isEditing, item, parentId, extraAttributes]);
|
|
279
357
|
var onSubmitForm = /*#__PURE__*/function () {
|
|
280
358
|
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(values) {
|
|
281
359
|
var payload;
|
|
282
360
|
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
283
361
|
while (1) switch (_context.prev = _context.next) {
|
|
284
362
|
case 0:
|
|
285
|
-
payload =
|
|
286
|
-
name: values.name,
|
|
287
|
-
parent_id: values.parentId
|
|
288
|
-
};
|
|
363
|
+
payload = createPayload(values, extraAttributes);
|
|
289
364
|
if (!isEditing) {
|
|
290
365
|
_context.next = 6;
|
|
291
366
|
break;
|
|
@@ -326,12 +401,15 @@ var AddEditPane = function AddEditPane(_ref) {
|
|
|
326
401
|
children: function children() {
|
|
327
402
|
return /*#__PURE__*/jsxs(Fragment, {
|
|
328
403
|
children: [/*#__PURE__*/jsx(Pane.Body, {
|
|
404
|
+
className: "pb-6",
|
|
329
405
|
children: /*#__PURE__*/jsxs(Form, {
|
|
330
406
|
className: "w-full space-y-5",
|
|
331
407
|
children: [/*#__PURE__*/jsx(Input, {
|
|
332
408
|
label: t("folders.name"),
|
|
333
409
|
name: "name",
|
|
334
410
|
ref: setFocusField
|
|
411
|
+
}), /*#__PURE__*/jsx(ExtraAttributes, {
|
|
412
|
+
attributes: extraAttributes
|
|
335
413
|
}), /*#__PURE__*/jsxs("div", {
|
|
336
414
|
children: [/*#__PURE__*/jsx(TreeSelect, {
|
|
337
415
|
allowClear: true,
|
|
@@ -340,7 +418,8 @@ var AddEditPane = function AddEditPane(_ref) {
|
|
|
340
418
|
name: "parentId",
|
|
341
419
|
treeData: folderOptions
|
|
342
420
|
}), /*#__PURE__*/jsx(Typography, {
|
|
343
|
-
|
|
421
|
+
className: "mt-1",
|
|
422
|
+
style: "body3",
|
|
344
423
|
children: t("createFolder.parentInfo")
|
|
345
424
|
})]
|
|
346
425
|
})]
|
|
@@ -358,10 +437,11 @@ var AddEditPane = function AddEditPane(_ref) {
|
|
|
358
437
|
});
|
|
359
438
|
};
|
|
360
439
|
|
|
361
|
-
var
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
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; }
|
|
365
445
|
var Node = function Node(_ref, ref) {
|
|
366
446
|
var _folder$children$leng, _folder$children;
|
|
367
447
|
var _ref$icon = _ref.icon,
|
|
@@ -371,8 +451,8 @@ var Node = function Node(_ref, ref) {
|
|
|
371
451
|
depth = _ref.depth,
|
|
372
452
|
className = _ref.className,
|
|
373
453
|
onClick = _ref.onClick,
|
|
374
|
-
rest = _objectWithoutProperties(_ref, _excluded$
|
|
375
|
-
var _useTranslation = useTranslation(),
|
|
454
|
+
rest = _objectWithoutProperties(_ref, _excluded$4);
|
|
455
|
+
var _useTranslation = useTranslation$1(),
|
|
376
456
|
t = _useTranslation.t;
|
|
377
457
|
var metaInfo = [];
|
|
378
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;
|
|
@@ -381,18 +461,18 @@ var Node = function Node(_ref, ref) {
|
|
|
381
461
|
}));
|
|
382
462
|
folder.itemCount > 0 && metaInfo.push("".concat(folder.itemCount, " ").concat(itemLabel));
|
|
383
463
|
return /*#__PURE__*/jsxs("div", {
|
|
384
|
-
className: "flex",
|
|
464
|
+
className: "flex w-full min-w-0",
|
|
385
465
|
children: [Array.from({
|
|
386
466
|
length: depth
|
|
387
467
|
}).map(function (_, index) {
|
|
388
468
|
return /*#__PURE__*/jsx("span", {
|
|
389
|
-
className: "relative border-l",
|
|
469
|
+
className: "neeto-ui-border-gray-300 relative h-full flex-shrink-0 border-l",
|
|
390
470
|
style: {
|
|
391
|
-
width:
|
|
392
|
-
left: Math.round(
|
|
471
|
+
width: REORDER_TREE_INDENT_WIDTH,
|
|
472
|
+
left: Math.round(REORDER_TREE_INDENT_WIDTH / 2)
|
|
393
473
|
}
|
|
394
474
|
}, index);
|
|
395
|
-
}), /*#__PURE__*/jsxs("div", _objectSpread$
|
|
475
|
+
}), /*#__PURE__*/jsxs("div", _objectSpread$a(_objectSpread$a({}, _objectSpread$a(_objectSpread$a({}, rest), {}, {
|
|
396
476
|
onClick: onClick,
|
|
397
477
|
ref: ref
|
|
398
478
|
})), {}, {
|
|
@@ -400,12 +480,14 @@ var Node = function Node(_ref, ref) {
|
|
|
400
480
|
children: [icon, /*#__PURE__*/jsxs("div", {
|
|
401
481
|
className: "ml-2",
|
|
402
482
|
children: [/*#__PURE__*/jsx(Typography, {
|
|
403
|
-
|
|
483
|
+
lineHeight: "snug",
|
|
484
|
+
style: "body1",
|
|
404
485
|
weight: "medium",
|
|
405
486
|
children: folder.name
|
|
406
487
|
}), /*#__PURE__*/jsx(Typography, {
|
|
407
|
-
className: "relative -
|
|
408
|
-
|
|
488
|
+
className: "relative mt-0.5",
|
|
489
|
+
lineHeight: "snug",
|
|
490
|
+
style: "body3",
|
|
409
491
|
weight: "normal",
|
|
410
492
|
children: metaInfo.join(" . ")
|
|
411
493
|
})]
|
|
@@ -415,9 +497,9 @@ var Node = function Node(_ref, ref) {
|
|
|
415
497
|
};
|
|
416
498
|
var Node$1 = /*#__PURE__*/forwardRef(Node);
|
|
417
499
|
|
|
418
|
-
var _excluded$
|
|
419
|
-
function ownKeys$
|
|
420
|
-
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; }
|
|
421
503
|
var _SelectableNode = function SelectableNode(_ref) {
|
|
422
504
|
var folder = _ref.folder,
|
|
423
505
|
item = _ref.item,
|
|
@@ -425,16 +507,18 @@ var _SelectableNode = function SelectableNode(_ref) {
|
|
|
425
507
|
depth = _ref$depth === void 0 ? 0 : _ref$depth,
|
|
426
508
|
maxDepth = _ref.maxDepth,
|
|
427
509
|
disabled = _ref.disabled,
|
|
428
|
-
|
|
510
|
+
config = _ref.config,
|
|
511
|
+
rest = _objectWithoutProperties(_ref, _excluded$3);
|
|
429
512
|
var selection = rest.selection,
|
|
430
513
|
onSelect = rest.onSelect;
|
|
431
|
-
var _useTranslation = useTranslation(),
|
|
514
|
+
var _useTranslation = useTranslation(config),
|
|
432
515
|
t = _useTranslation.t;
|
|
433
516
|
var isDisabled = disabled || (item === null || item === void 0 ? void 0 : item.id) === folder.id || depth > maxDepth;
|
|
434
517
|
var renderChildren = function renderChildren() {
|
|
435
518
|
if (isNotPresent(folder.children)) return null;
|
|
436
519
|
return folder.children.map(function (child) {
|
|
437
|
-
return /*#__PURE__*/createElement(_SelectableNode, _objectSpread$
|
|
520
|
+
return /*#__PURE__*/createElement(_SelectableNode, _objectSpread$9(_objectSpread$9({}, _objectSpread$9(_objectSpread$9({}, rest), {}, {
|
|
521
|
+
config: config,
|
|
438
522
|
item: item,
|
|
439
523
|
maxDepth: maxDepth
|
|
440
524
|
})), {}, {
|
|
@@ -445,33 +529,31 @@ var _SelectableNode = function SelectableNode(_ref) {
|
|
|
445
529
|
}));
|
|
446
530
|
});
|
|
447
531
|
};
|
|
448
|
-
return /*#__PURE__*/
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
532
|
+
return /*#__PURE__*/jsxs("div", {
|
|
533
|
+
"aria-disabled": isDisabled,
|
|
534
|
+
className: classNames({
|
|
535
|
+
"opacity-60": isDisabled
|
|
536
|
+
}),
|
|
537
|
+
title: isDisabled ? t("moveToFolder.notAllowed") : undefined,
|
|
538
|
+
children: [/*#__PURE__*/jsx(Node$1, _objectSpread$9(_objectSpread$9({}, _objectSpread$9(_objectSpread$9({}, rest), {}, {
|
|
539
|
+
depth: depth,
|
|
540
|
+
folder: folder
|
|
541
|
+
})), {}, {
|
|
542
|
+
icon: /*#__PURE__*/jsx(Radio.Item, {
|
|
543
|
+
readOnly: true,
|
|
544
|
+
checked: selection === folder.id,
|
|
545
|
+
className: "neeto-ui-radio__container",
|
|
546
|
+
name: "move-folder-option"
|
|
455
547
|
}),
|
|
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
|
-
})
|
|
548
|
+
onClick: isDisabled ? noop : function () {
|
|
549
|
+
return onSelect(folder);
|
|
550
|
+
}
|
|
551
|
+
})), renderChildren()]
|
|
470
552
|
});
|
|
471
553
|
};
|
|
472
554
|
|
|
473
|
-
function ownKeys$
|
|
474
|
-
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; }
|
|
475
557
|
var PaneBody = function PaneBody(_ref) {
|
|
476
558
|
var item = _ref.item,
|
|
477
559
|
config = _ref.config,
|
|
@@ -494,7 +576,7 @@ var PaneBody = function PaneBody(_ref) {
|
|
|
494
576
|
var _useFetchFolders = useFetchFolders(config),
|
|
495
577
|
_useFetchFolders$data = _useFetchFolders.data,
|
|
496
578
|
folders = _useFetchFolders$data === void 0 ? [] : _useFetchFolders$data;
|
|
497
|
-
var _useTranslation = useTranslation(),
|
|
579
|
+
var _useTranslation = useTranslation(config),
|
|
498
580
|
t = _useTranslation.t;
|
|
499
581
|
var folderDepth = 0;
|
|
500
582
|
if (item) {
|
|
@@ -525,14 +607,16 @@ var PaneBody = function PaneBody(_ref) {
|
|
|
525
607
|
onClick: onAddFolder
|
|
526
608
|
})]
|
|
527
609
|
}), /*#__PURE__*/jsx(Pane.Body, {
|
|
610
|
+
className: "pb-6",
|
|
528
611
|
children: folders.map(function (folder) {
|
|
529
612
|
return /*#__PURE__*/createElement(_SelectableNode, {
|
|
613
|
+
config: config,
|
|
530
614
|
folder: folder,
|
|
531
615
|
item: item,
|
|
532
616
|
maxDepth: maxDepth,
|
|
533
617
|
selection: selection,
|
|
534
618
|
disabled: (item === null || item === void 0 ? void 0 : item.id) === folder.id || maxDepth <= 0,
|
|
535
|
-
itemLabel: config.
|
|
619
|
+
itemLabel: config.labels.item,
|
|
536
620
|
key: folder.id,
|
|
537
621
|
onSelect: function onSelect(folder) {
|
|
538
622
|
return setSelection(folder.id);
|
|
@@ -543,19 +627,19 @@ var PaneBody = function PaneBody(_ref) {
|
|
|
543
627
|
className: "space-x-2",
|
|
544
628
|
children: [/*#__PURE__*/jsxs("div", {
|
|
545
629
|
className: "flex flex-1 space-x-2",
|
|
546
|
-
children: [/*#__PURE__*/jsx(Button, _objectSpread$
|
|
630
|
+
children: [/*#__PURE__*/jsx(Button, _objectSpread$8({
|
|
547
631
|
disabled: !selection,
|
|
548
632
|
label: t("common.save"),
|
|
549
633
|
style: "primary",
|
|
550
634
|
onClick: function onClick() {
|
|
551
635
|
return onSubmit(selection);
|
|
552
636
|
}
|
|
553
|
-
}, submitButtonProps)), /*#__PURE__*/jsx(Button, _objectSpread$
|
|
637
|
+
}, submitButtonProps)), /*#__PURE__*/jsx(Button, _objectSpread$8({
|
|
554
638
|
label: t("common.cancel"),
|
|
555
639
|
style: "text",
|
|
556
640
|
onClick: onClose
|
|
557
641
|
}, cancelButtonProps))]
|
|
558
|
-
}), onRemove && /*#__PURE__*/jsx(Button, _objectSpread$
|
|
642
|
+
}), onRemove && /*#__PURE__*/jsx(Button, _objectSpread$8({
|
|
559
643
|
label: t("moveToFolder.remove"),
|
|
560
644
|
style: "tertiary",
|
|
561
645
|
onClick: onRemove
|
|
@@ -596,14 +680,14 @@ var MoveFolderPane = function MoveFolderPane(_ref) {
|
|
|
596
680
|
});
|
|
597
681
|
};
|
|
598
682
|
|
|
599
|
-
var _excluded$
|
|
600
|
-
function ownKeys$
|
|
601
|
-
function _objectSpread$
|
|
602
|
-
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) {
|
|
603
687
|
var folder = _ref.folder,
|
|
604
688
|
_ref$depth = _ref.depth,
|
|
605
689
|
depth = _ref$depth === void 0 ? 0 : _ref$depth,
|
|
606
|
-
rest = _objectWithoutProperties(_ref, _excluded$
|
|
690
|
+
rest = _objectWithoutProperties(_ref, _excluded$2);
|
|
607
691
|
var _useDraggable = useDraggable({
|
|
608
692
|
id: "draggable-item--".concat(folder.id),
|
|
609
693
|
data: folder,
|
|
@@ -623,21 +707,22 @@ var _DraggableNode = function DraggableNode(_ref) {
|
|
|
623
707
|
var renderChildren = function renderChildren() {
|
|
624
708
|
if (isNotPresent(folder.children) || isDragging) return null;
|
|
625
709
|
return folder.children.map(function (child) {
|
|
626
|
-
return /*#__PURE__*/createElement(_DraggableNode, _objectSpread$
|
|
710
|
+
return /*#__PURE__*/createElement(_DraggableNode$1, _objectSpread$7(_objectSpread$7({}, rest), {}, {
|
|
627
711
|
depth: depth + 1,
|
|
628
712
|
folder: child,
|
|
629
713
|
key: child.id
|
|
630
714
|
}));
|
|
631
715
|
});
|
|
632
716
|
};
|
|
633
|
-
return /*#__PURE__*/jsxs(
|
|
634
|
-
children: [/*#__PURE__*/jsx(Node$1, _objectSpread$
|
|
717
|
+
return /*#__PURE__*/jsxs(Fragment, {
|
|
718
|
+
children: [/*#__PURE__*/jsx(Node$1, _objectSpread$7(_objectSpread$7(_objectSpread$7({}, rest), {}, {
|
|
635
719
|
className: classNames({
|
|
636
|
-
"neeto-ui-bg-gray-100
|
|
720
|
+
"neeto-ui-rounded-lg hover:neeto-ui-bg-gray-100 w-full min-w-0 cursor-move transition-colors": true,
|
|
721
|
+
"neeto-ui-bg-gray-100 opacity-50": isDragging,
|
|
637
722
|
"neeto-ui-border-primary-500 border": isOver,
|
|
638
723
|
"border border-transparent": !isOver
|
|
639
724
|
})
|
|
640
|
-
}, _objectSpread$
|
|
725
|
+
}, _objectSpread$7(_objectSpread$7({
|
|
641
726
|
depth: depth,
|
|
642
727
|
folder: folder
|
|
643
728
|
}, attributes), listeners)), {}, {
|
|
@@ -649,9 +734,9 @@ var _DraggableNode = function DraggableNode(_ref) {
|
|
|
649
734
|
});
|
|
650
735
|
};
|
|
651
736
|
|
|
652
|
-
function ownKeys$
|
|
653
|
-
function _objectSpread$
|
|
654
|
-
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) {
|
|
655
740
|
var config = _ref.config,
|
|
656
741
|
onClose = _ref.onClose;
|
|
657
742
|
var _useState = useState(null),
|
|
@@ -662,7 +747,7 @@ var ReorderFoldersPane = function ReorderFoldersPane(_ref) {
|
|
|
662
747
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
663
748
|
changes = _useState4[0],
|
|
664
749
|
setChanges = _useState4[1];
|
|
665
|
-
var _useTranslation = useTranslation(),
|
|
750
|
+
var _useTranslation = useTranslation(config),
|
|
666
751
|
t = _useTranslation.t;
|
|
667
752
|
var _useFetchFolders = useFetchFolders(config),
|
|
668
753
|
folders = _useFetchFolders.data;
|
|
@@ -715,8 +800,10 @@ var ReorderFoldersPane = function ReorderFoldersPane(_ref) {
|
|
|
715
800
|
});
|
|
716
801
|
};
|
|
717
802
|
var nodeProps = {
|
|
718
|
-
icon: /*#__PURE__*/jsx(
|
|
719
|
-
|
|
803
|
+
icon: /*#__PURE__*/jsx(Reorder, {
|
|
804
|
+
className: "neeto-ui-text-gray-500 relative -left-[0.3125rem] flex-shrink-0"
|
|
805
|
+
}),
|
|
806
|
+
itemLabel: config.labels.item
|
|
720
807
|
};
|
|
721
808
|
return /*#__PURE__*/jsxs(Fragment, {
|
|
722
809
|
children: [/*#__PURE__*/jsx(Pane.Header, {
|
|
@@ -731,12 +818,13 @@ var ReorderFoldersPane = function ReorderFoldersPane(_ref) {
|
|
|
731
818
|
return setDragItem(active.data.current);
|
|
732
819
|
},
|
|
733
820
|
children: [/*#__PURE__*/jsx(Pane.Body, {
|
|
734
|
-
|
|
821
|
+
className: "pb-6",
|
|
822
|
+
children: /*#__PURE__*/createElement(_DraggableNode$1, _objectSpread$6(_objectSpread$6({}, nodeProps), {}, {
|
|
735
823
|
folder: tree,
|
|
736
824
|
key: tree.id
|
|
737
825
|
}))
|
|
738
826
|
}), /*#__PURE__*/jsxs(Pane.Footer, {
|
|
739
|
-
className: "
|
|
827
|
+
className: "gap-2",
|
|
740
828
|
children: [/*#__PURE__*/jsx(Button, {
|
|
741
829
|
disabled: isEmpty(changes),
|
|
742
830
|
label: t("common.save"),
|
|
@@ -749,7 +837,7 @@ var ReorderFoldersPane = function ReorderFoldersPane(_ref) {
|
|
|
749
837
|
})]
|
|
750
838
|
}), /*#__PURE__*/createPortal(/*#__PURE__*/jsx(DragOverlay, {
|
|
751
839
|
zIndex: 99999,
|
|
752
|
-
children: dragItem && /*#__PURE__*/jsx(Node$1, _objectSpread$
|
|
840
|
+
children: dragItem && /*#__PURE__*/jsx(Node$1, _objectSpread$6(_objectSpread$6({}, nodeProps), {}, {
|
|
753
841
|
className: "neeto-ui-bg-gray-200",
|
|
754
842
|
depth: 0,
|
|
755
843
|
folder: dragItem
|
|
@@ -759,6 +847,312 @@ var ReorderFoldersPane = function ReorderFoldersPane(_ref) {
|
|
|
759
847
|
});
|
|
760
848
|
};
|
|
761
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
|
+
|
|
762
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; }
|
|
763
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; }
|
|
764
1158
|
var FoldersPane = function FoldersPane(_ref) {
|
|
@@ -786,6 +1180,7 @@ var FoldersPane = function FoldersPane(_ref) {
|
|
|
786
1180
|
config: config,
|
|
787
1181
|
onClose: onClose
|
|
788
1182
|
};
|
|
1183
|
+
var ReorderPaneComponent = config.reorderMode === "reorder" ? ReorderFoldersPane : RearrangeFoldersPane;
|
|
789
1184
|
return /*#__PURE__*/jsx(Pane, {
|
|
790
1185
|
onClose: onClose,
|
|
791
1186
|
isOpen: !!type,
|
|
@@ -794,7 +1189,7 @@ var FoldersPane = function FoldersPane(_ref) {
|
|
|
794
1189
|
return /*#__PURE__*/jsxs(Fragment, {
|
|
795
1190
|
children: [(type === "edit" || type === "add") && /*#__PURE__*/jsx(AddEditPane, _objectSpread$3({}, _objectSpread$3({
|
|
796
1191
|
setFocusField: setFocusField
|
|
797
|
-
}, 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))]
|
|
798
1193
|
});
|
|
799
1194
|
}
|
|
800
1195
|
});
|
|
@@ -819,8 +1214,9 @@ var FolderTile = function FolderTile(_ref) {
|
|
|
819
1214
|
itemLabel = _ref.itemLabel,
|
|
820
1215
|
folder = _ref.folder,
|
|
821
1216
|
actions = _ref.actions,
|
|
1217
|
+
config = _ref.config,
|
|
822
1218
|
onSelect = _ref.onSelect;
|
|
823
|
-
var _useTranslation = useTranslation(),
|
|
1219
|
+
var _useTranslation = useTranslation(config),
|
|
824
1220
|
t = _useTranslation.t;
|
|
825
1221
|
var actionCallback = function actionCallback(callback) {
|
|
826
1222
|
return function (event) {
|
|
@@ -848,44 +1244,42 @@ var FolderTile = function FolderTile(_ref) {
|
|
|
848
1244
|
}));
|
|
849
1245
|
metaInfo.push("".concat(folder.itemCount || 0, " ").concat(itemLabel));
|
|
850
1246
|
return /*#__PURE__*/jsxs(Link, {
|
|
851
|
-
className: "neeto-ui-bg-gray-
|
|
1247
|
+
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
1248
|
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
|
-
}
|
|
1249
|
+
children: [/*#__PURE__*/jsx(Checkbox, {
|
|
1250
|
+
checked: isSelected,
|
|
1251
|
+
className: "m-0 flex-shrink-0 flex-grow-0 pt-0.5",
|
|
1252
|
+
name: folder.id,
|
|
1253
|
+
onChange: function onChange(event) {
|
|
1254
|
+
return onSelect(folder, event.target.checked);
|
|
1255
|
+
},
|
|
1256
|
+
onClick: function onClick(event) {
|
|
1257
|
+
return event.stopPropagation();
|
|
1258
|
+
}
|
|
1259
|
+
}), /*#__PURE__*/jsxs("span", {
|
|
1260
|
+
className: "flex min-w-0 flex-grow flex-col gap-2",
|
|
1261
|
+
children: [/*#__PURE__*/jsx(Typography, {
|
|
1262
|
+
className: "-mt-0.5 line-clamp-2 break-words pr-8",
|
|
1263
|
+
lineHeight: "snug",
|
|
1264
|
+
style: "body1",
|
|
1265
|
+
title: folder.name,
|
|
1266
|
+
weight: "medium",
|
|
1267
|
+
children: folder.name
|
|
1268
|
+
}), /*#__PURE__*/jsx(Typography, {
|
|
1269
|
+
className: "neeto-ui-text-gray-600",
|
|
1270
|
+
style: "body3",
|
|
1271
|
+
children: metaInfo.join(" . ")
|
|
884
1272
|
})]
|
|
885
|
-
}), /*#__PURE__*/jsx(
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
1273
|
+
}), /*#__PURE__*/jsx(MoreDropdown, {
|
|
1274
|
+
menuItems: menuItems,
|
|
1275
|
+
dropdownButtonProps: {
|
|
1276
|
+
className: "absolute right-2 top-2"
|
|
1277
|
+
},
|
|
1278
|
+
dropdownProps: {
|
|
1279
|
+
onClick: function onClick(event) {
|
|
1280
|
+
return event.preventDefault();
|
|
1281
|
+
}
|
|
1282
|
+
}
|
|
889
1283
|
})]
|
|
890
1284
|
});
|
|
891
1285
|
};
|
|
@@ -899,7 +1293,7 @@ var FoldersList = function FoldersList(_ref) {
|
|
|
899
1293
|
onSelect = _ref.onSelect;
|
|
900
1294
|
var config = _objectSpread$2(_objectSpread$2({}, DEFAULT_CONFIG), configProps);
|
|
901
1295
|
var params = useQueryParams();
|
|
902
|
-
var _useTranslation = useTranslation(),
|
|
1296
|
+
var _useTranslation = useTranslation(config),
|
|
903
1297
|
t = _useTranslation.t;
|
|
904
1298
|
var fetchParams = pick(["sortBy", "orderBy"], params);
|
|
905
1299
|
var _useFolders = useFolders(_objectSpread$2(_objectSpread$2({}, config), {}, {
|
|
@@ -915,18 +1309,19 @@ var FoldersList = function FoldersList(_ref) {
|
|
|
915
1309
|
return /*#__PURE__*/jsxs(FoldersContext, {
|
|
916
1310
|
config: config,
|
|
917
1311
|
children: [/*#__PURE__*/jsx(Typography, {
|
|
918
|
-
className: "
|
|
1312
|
+
className: "my-3",
|
|
919
1313
|
style: "h4",
|
|
920
1314
|
children: t("folders.title")
|
|
921
1315
|
}), /*#__PURE__*/jsx("div", {
|
|
922
|
-
className: "mb-
|
|
1316
|
+
className: "neeto-folders-grid-view-wrapper mb-10 grid w-full gap-4",
|
|
923
1317
|
children: subFolders.map(function (folder) {
|
|
924
1318
|
return /*#__PURE__*/createElement(FolderTile, {
|
|
925
1319
|
actions: actions,
|
|
1320
|
+
config: config,
|
|
926
1321
|
folder: folder,
|
|
927
1322
|
onSelect: onSelect,
|
|
928
1323
|
isSelected: selection.includes(folder.id),
|
|
929
|
-
itemLabel: config.
|
|
1324
|
+
itemLabel: config.labels.item,
|
|
930
1325
|
key: folder.id,
|
|
931
1326
|
link: buildUrl(config.folderPath, _objectSpread$2(_objectSpread$2({}, params), {}, {
|
|
932
1327
|
folderId: folder.sid
|
|
@@ -959,20 +1354,17 @@ var FolderNode = function FolderNode(_ref) {
|
|
|
959
1354
|
link = _ref.link;
|
|
960
1355
|
return /*#__PURE__*/jsx(NavLink, {
|
|
961
1356
|
activeClassName: "active",
|
|
962
|
-
className: "block",
|
|
1357
|
+
className: "neeto-sidebar-folders-tree__folder-node block",
|
|
963
1358
|
isActive: function isActive() {
|
|
964
1359
|
return _isActive;
|
|
965
1360
|
},
|
|
966
1361
|
to: link,
|
|
967
|
-
children: /*#__PURE__*/jsx(
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
style: "body2",
|
|
974
|
-
children: folder.name
|
|
975
|
-
})
|
|
1362
|
+
children: /*#__PURE__*/jsx(Typography, {
|
|
1363
|
+
className: "line-clamp-1 block truncate",
|
|
1364
|
+
component: "span",
|
|
1365
|
+
style: "body2",
|
|
1366
|
+
title: folder.name,
|
|
1367
|
+
children: folder.name
|
|
976
1368
|
})
|
|
977
1369
|
});
|
|
978
1370
|
};
|
|
@@ -986,7 +1378,7 @@ var FoldersTree = function FoldersTree(_ref) {
|
|
|
986
1378
|
_useState2 = _slicedToArray(_useState, 2),
|
|
987
1379
|
expandedKeys = _useState2[0],
|
|
988
1380
|
setExpandedKeys = _useState2[1];
|
|
989
|
-
var _useTranslation = useTranslation(),
|
|
1381
|
+
var _useTranslation = useTranslation(config),
|
|
990
1382
|
t = _useTranslation.t;
|
|
991
1383
|
var params = useQueryParams({
|
|
992
1384
|
toCamelCase: false
|
|
@@ -1022,9 +1414,10 @@ var FoldersTree = function FoldersTree(_ref) {
|
|
|
1022
1414
|
autoExpandParent: true,
|
|
1023
1415
|
blockNode: true,
|
|
1024
1416
|
showLine: true,
|
|
1417
|
+
className: "neeto-sidebar-folders-tree",
|
|
1025
1418
|
componentToken: {
|
|
1026
|
-
titleHeight:
|
|
1027
|
-
indentSize:
|
|
1419
|
+
titleHeight: 24,
|
|
1420
|
+
indentSize: 24
|
|
1028
1421
|
},
|
|
1029
1422
|
fieldNames: {
|
|
1030
1423
|
key: "sid"
|
|
@@ -1044,5 +1437,10 @@ var FoldersTree = function FoldersTree(_ref) {
|
|
|
1044
1437
|
});
|
|
1045
1438
|
};
|
|
1046
1439
|
|
|
1440
|
+
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}}
|
|
1441
|
+
|
|
1442
|
+
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== */";
|
|
1443
|
+
n(css,{});
|
|
1444
|
+
|
|
1047
1445
|
export { FoldersContext, FoldersList, FoldersTree, MoveToFolderPane };
|
|
1048
1446
|
//# sourceMappingURL=components.js.map
|