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