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