@bigbinary/neeto-folders-frontend 2.0.3 → 2.0.5

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 CHANGED
@@ -222,7 +222,7 @@ import * as components from "@bigbinary/neeto-folders-frontend/components";
222
222
  />;
223
223
  ```
224
224
 
225
- 4. `MoveToFoldersPane`: This component can be used in host applications to move
225
+ 4. `MoveToFolderPane`: This component can be used in host applications to move
226
226
  items to a folder. Component renders current list of folders in pane with
227
227
  radio buttons and invokes callbacks for folder selections.
228
228
 
@@ -255,9 +255,9 @@ import * as components from "@bigbinary/neeto-folders-frontend/components";
255
255
  Sample usage:
256
256
 
257
257
  ```jsx
258
- import { MoveToFoldersPane } from "@bigbinary/neeto-folders-frontend/components";
258
+ import { MoveToFolderPane } from "@bigbinary/neeto-folders-frontend/components";
259
259
  // ....
260
- <MoveToFoldersPane
260
+ <MoveToFolderPane
261
261
  item={itemToMove}
262
262
  onSelect={onSelectFolder}
263
263
  selection={folderSelection}
@@ -10,9 +10,9 @@
10
10
  "folders": "Folders",
11
11
  "item": "Item",
12
12
  "items": "Items",
13
- "private": "Private"
13
+ "private": "Private",
14
+ "moveToFolder": "Move to folder"
14
15
  },
15
-
16
16
  "createFolder": {
17
17
  "parentInfo": "Leave the option empty to create {{ folder }} at the root level",
18
18
  "parentTitle": "Parent {{ folder }}"
@@ -26,7 +26,6 @@
26
26
  "add": "Add new {{ folder }}",
27
27
  "edit": "Edit {{ folder }}",
28
28
  "name": "{{ folder }} name",
29
- "subfolderCount": "{{count}} sub {{ folders }}",
30
29
  "noFolders": "No {{ folder }} to show"
31
30
  },
32
31
  "moveToFolder": {
@@ -38,7 +37,6 @@
38
37
  "reorderFolder": {
39
38
  "title": "Reorder {{ folders }}"
40
39
  },
41
-
42
40
  "errors": {
43
41
  "blank": "{{entity}} cannot be blank"
44
42
  }
@@ -18,10 +18,10 @@ var Pane = require('@bigbinary/neetoui/Pane');
18
18
  var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');
19
19
  var _regeneratorRuntime = require('@babel/runtime/regenerator');
20
20
  var React = require('react');
21
- var formik = require('formik');
22
21
  var Typography = require('@bigbinary/neetoui/Typography');
23
22
  var Input = require('@bigbinary/neetoui/formik/Input');
24
23
  var ActionBlock = require('@bigbinary/neetoui/formik/ActionBlock');
24
+ var Form = require('@bigbinary/neetoui/formik/Form');
25
25
  var i18next = require('i18next');
26
26
  var yup = require('yup');
27
27
  var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
@@ -30,9 +30,11 @@ var Textarea = require('@bigbinary/neetoui/formik/Textarea');
30
30
  var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
31
31
  var antd = require('antd');
32
32
  var classNames = require('classnames');
33
+ var formik = require('formik');
33
34
  var Down = require('@bigbinary/neeto-icons/Down');
34
35
  var Label = require('@bigbinary/neetoui/Label');
35
36
  var ramda = require('ramda');
37
+ var useHotkeys = require('@bigbinary/neeto-hotkeys');
36
38
  var Button = require('@bigbinary/neetoui/Button');
37
39
  var neetoCist = require('@bigbinary/neeto-cist');
38
40
  var Radio = require('@bigbinary/neetoui/Radio');
@@ -250,7 +252,7 @@ var TreeSelect = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
250
252
  suffixIcon: /*#__PURE__*/jsxRuntime.jsx(Down, {}),
251
253
  treeNodeFilterProp: (_fieldNames$label = fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.label) !== null && _fieldNames$label !== void 0 ? _fieldNames$label : "title",
252
254
  value: field.value || undefined,
253
- className: classNames("neeto-ui-tree-select__wrapper", className, {
255
+ className: classNames("neeto-ui-tree-select__wrapper nf-tree-select", className, {
254
256
  "neeto-ui-tree-select__error": meta.error
255
257
  }),
256
258
  switcherIcon: function switcherIcon(props) {
@@ -405,54 +407,55 @@ var AddEditPane = function AddEditPane(_ref) {
405
407
  style: "h2",
406
408
  children: isEditing ? t("folders.edit") : t("folders.add")
407
409
  })
408
- }), /*#__PURE__*/jsxRuntime.jsx(formik.Formik, {
409
- initialValues: initialValues,
410
- enableReinitialize: true,
411
- validationSchema: FORM_VALIDATION_SCHEMA,
412
- onSubmit: onSubmitForm,
413
- children: function children() {
414
- return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
415
- children: [/*#__PURE__*/jsxRuntime.jsx(Pane.Body, {
416
- className: "pb-6",
417
- children: /*#__PURE__*/jsxRuntime.jsxs(formik.Form, {
418
- className: "w-full space-y-5",
419
- children: [/*#__PURE__*/jsxRuntime.jsx(Input, {
420
- required: true,
421
- label: t("folders.name"),
422
- name: "name",
423
- ref: setFocusField
424
- }), /*#__PURE__*/jsxRuntime.jsx(ExtraAttributes, {
425
- attributes: extraAttributes
426
- }), /*#__PURE__*/jsxRuntime.jsxs("div", {
427
- children: [/*#__PURE__*/jsxRuntime.jsx(TreeSelect, {
428
- allowClear: true,
429
- showSearch: true,
430
- label: t("createFolder.parentTitle"),
431
- name: "parentId",
432
- treeData: folderOptions
433
- }), /*#__PURE__*/jsxRuntime.jsx(Typography, {
434
- className: "mt-1",
435
- style: "body3",
436
- children: t("createFolder.parentInfo")
437
- })]
410
+ }), /*#__PURE__*/jsxRuntime.jsx(Form, {
411
+ className: "flex flex-grow flex-col",
412
+ formikProps: {
413
+ initialValues: initialValues,
414
+ enableReinitialize: true,
415
+ validationSchema: FORM_VALIDATION_SCHEMA,
416
+ onSubmit: onSubmitForm
417
+ },
418
+ children: /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
419
+ children: [/*#__PURE__*/jsxRuntime.jsx(Pane.Body, {
420
+ className: "pb-6",
421
+ children: /*#__PURE__*/jsxRuntime.jsxs("div", {
422
+ className: "w-full space-y-5",
423
+ children: [/*#__PURE__*/jsxRuntime.jsx(Input, {
424
+ required: true,
425
+ label: t("folders.name"),
426
+ name: "name",
427
+ ref: setFocusField
428
+ }), /*#__PURE__*/jsxRuntime.jsx(ExtraAttributes, {
429
+ attributes: extraAttributes
430
+ }), /*#__PURE__*/jsxRuntime.jsxs("div", {
431
+ children: [/*#__PURE__*/jsxRuntime.jsx(TreeSelect, {
432
+ allowClear: true,
433
+ showSearch: true,
434
+ label: t("createFolder.parentTitle"),
435
+ name: "parentId",
436
+ treeData: folderOptions
437
+ }), /*#__PURE__*/jsxRuntime.jsx(Typography, {
438
+ className: "mt-1",
439
+ style: "body3",
440
+ children: t("createFolder.parentInfo")
438
441
  })]
439
- })
440
- }), /*#__PURE__*/jsxRuntime.jsx(Pane.Footer, {
441
- children: /*#__PURE__*/jsxRuntime.jsx(ActionBlock, {
442
- cancelButtonProps: {
443
- onClick: onClose
444
- }
445
- })
446
- })]
447
- });
448
- }
442
+ })]
443
+ })
444
+ }), /*#__PURE__*/jsxRuntime.jsx(Pane.Footer, {
445
+ children: /*#__PURE__*/jsxRuntime.jsx(ActionBlock, {
446
+ cancelButtonProps: {
447
+ onClick: onClose
448
+ }
449
+ })
450
+ })]
451
+ })
449
452
  })]
450
453
  });
451
454
  };
452
455
 
453
456
  var REORDER_TREE_INDENT_WIDTH = 30;
454
457
 
455
- var _excluded$4 = ["icon", "itemLabel", "folder", "depth", "className", "onClick"];
458
+ var _excluded$4 = ["icon", "itemLabel", "folder", "folderLabel", "depth", "className", "onClick"];
456
459
  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; }
457
460
  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; }
458
461
  var Node = function Node(_ref, ref) {
@@ -461,18 +464,15 @@ var Node = function Node(_ref, ref) {
461
464
  icon = _ref$icon === void 0 ? null : _ref$icon,
462
465
  itemLabel = _ref.itemLabel,
463
466
  folder = _ref.folder,
467
+ folderLabel = _ref.folderLabel,
464
468
  depth = _ref.depth,
465
469
  className = _ref.className,
466
470
  onClick = _ref.onClick,
467
471
  rest = _objectWithoutProperties(_ref, _excluded$4);
468
- var _useTranslation = reactI18next.useTranslation(),
469
- t = _useTranslation.t;
470
472
  var metaInfo = [];
471
473
  var childCount = (_folder$children$leng = (_folder$children = folder.children) === null || _folder$children === void 0 ? void 0 : _folder$children.length) !== null && _folder$children$leng !== void 0 ? _folder$children$leng : 0;
472
- childCount > 0 && metaInfo.push(t("folders.subfolderCount", {
473
- count: childCount
474
- }));
475
- folder.itemCount > 0 && metaInfo.push("".concat(folder.itemCount, " ").concat(itemLabel));
474
+ childCount > 0 && metaInfo.push("".concat(childCount, " ").concat(folderLabel).toLowerCase());
475
+ folder.itemCount > 0 && metaInfo.push("".concat(folder.itemCount, " ").concat(itemLabel).toLowerCase());
476
476
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
477
477
  className: "flex w-full min-w-0",
478
478
  children: [Array.from({
@@ -514,6 +514,7 @@ var _excluded$3 = ["folder", "item", "depth", "maxDepth", "disabled", "config"];
514
514
  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; }
515
515
  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; }
516
516
  var _SelectableNode = function SelectableNode(_ref) {
517
+ var _folder$children$leng, _folder$children;
517
518
  var folder = _ref.folder,
518
519
  item = _ref.item,
519
520
  _ref$depth = _ref.depth,
@@ -527,6 +528,8 @@ var _SelectableNode = function SelectableNode(_ref) {
527
528
  var _useTranslation = useTranslation(config),
528
529
  t = _useTranslation.t;
529
530
  var isDisabled = disabled || (item === null || item === void 0 ? void 0 : item.id) === folder.id || depth > maxDepth;
531
+ var itemLabel = config.labels[folder.itemCount > 1 ? "items" : "item"];
532
+ var folderLabel = config.labels[((_folder$children$leng = (_folder$children = folder.children) === null || _folder$children === void 0 ? void 0 : _folder$children.length) !== null && _folder$children$leng !== void 0 ? _folder$children$leng : 0) > 1 ? "folders" : "folder"];
530
533
  var renderChildren = function renderChildren() {
531
534
  if (neetoCist.isNotPresent(folder.children)) return null;
532
535
  return folder.children.map(function (child) {
@@ -550,7 +553,9 @@ var _SelectableNode = function SelectableNode(_ref) {
550
553
  title: isDisabled ? t("moveToFolder.notAllowed") : undefined,
551
554
  children: [/*#__PURE__*/jsxRuntime.jsx(Node$1, _objectSpread$9(_objectSpread$9({}, _objectSpread$9(_objectSpread$9({}, rest), {}, {
552
555
  depth: depth,
553
- folder: folder
556
+ folder: folder,
557
+ folderLabel: folderLabel,
558
+ itemLabel: itemLabel
554
559
  })), {}, {
555
560
  icon: /*#__PURE__*/jsxRuntime.jsx(Radio.Item, {
556
561
  readOnly: true,
@@ -591,6 +596,13 @@ var PaneBody = function PaneBody(_ref) {
591
596
  folders = _useFetchFolders$data === void 0 ? [] : _useFetchFolders$data;
592
597
  var _useTranslation = useTranslation(config),
593
598
  t = _useTranslation.t;
599
+ var _useFolderStore2 = useFolderActions.useFolderStore(function (store) {
600
+ var _store$paneState;
601
+ return {
602
+ type: (_store$paneState = store["paneState"]) === null || _store$paneState === void 0 ? void 0 : _store$paneState["type"]
603
+ };
604
+ }, shallow.shallow),
605
+ type = _useFolderStore2.type;
594
606
  var tree = React.useMemo(function () {
595
607
  return [{
596
608
  name: "/",
@@ -614,6 +626,12 @@ var PaneBody = function PaneBody(_ref) {
614
626
  }
615
627
  });
616
628
  };
629
+ useHotkeys(["command+enter", "enter"], function () {
630
+ return onSubmit(selection);
631
+ }, {
632
+ mode: "global",
633
+ enabled: !!type
634
+ });
617
635
  return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
618
636
  children: [/*#__PURE__*/jsxRuntime.jsxs(Pane.Header, {
619
637
  className: "flex items-center justify-between",
@@ -636,7 +654,6 @@ var PaneBody = function PaneBody(_ref) {
636
654
  maxDepth: maxDepth,
637
655
  selection: selection,
638
656
  disabled: (item === null || item === void 0 ? void 0 : item.id) === folder.id || maxDepth <= 0,
639
- itemLabel: config.labels.item,
640
657
  key: folder.id,
641
658
  onSelect: function onSelect(folder) {
642
659
  return setSelection(folder.id);
@@ -700,13 +717,16 @@ var MoveFolderPane = function MoveFolderPane(_ref) {
700
717
  });
701
718
  };
702
719
 
703
- var _excluded$2 = ["folder", "depth"];
720
+ var _excluded$2 = ["folder", "depth", "config", "folderLabel", "itemLabel"];
704
721
  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; }
705
722
  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; }
706
723
  var _DraggableNode$1 = function DraggableNode(_ref) {
707
724
  var folder = _ref.folder,
708
725
  _ref$depth = _ref.depth,
709
726
  depth = _ref$depth === void 0 ? 0 : _ref$depth,
727
+ config = _ref.config,
728
+ folderLabel = _ref.folderLabel,
729
+ itemLabel = _ref.itemLabel,
710
730
  rest = _objectWithoutProperties(_ref, _excluded$2);
711
731
  var _useDraggable = core.useDraggable({
712
732
  id: "draggable-item--".concat(folder.id),
@@ -727,10 +747,15 @@ var _DraggableNode$1 = function DraggableNode(_ref) {
727
747
  var renderChildren = function renderChildren() {
728
748
  if (neetoCist.isNotPresent(folder.children) || isDragging) return null;
729
749
  return folder.children.map(function (child) {
730
- return /*#__PURE__*/React.createElement(_DraggableNode$1, _objectSpread$7(_objectSpread$7({}, rest), {}, {
750
+ var _child$children$lengt, _child$children;
751
+ return /*#__PURE__*/React.createElement(_DraggableNode$1, _objectSpread$7(_objectSpread$7({}, _objectSpread$7(_objectSpread$7({}, rest), {}, {
752
+ config: config
753
+ })), {}, {
731
754
  depth: depth + 1,
732
755
  folder: child,
733
- key: child.id
756
+ itemLabel: config.labels[(child === null || child === void 0 ? void 0 : child.itemCount) > 1 ? "items" : "item"],
757
+ key: child.id,
758
+ folderLabel: config.labels[((_child$children$lengt = child === null || child === void 0 || (_child$children = child.children) === null || _child$children === void 0 ? void 0 : _child$children.length) !== null && _child$children$lengt !== void 0 ? _child$children$lengt : 0) > 1 ? "folders" : "folder"]
734
759
  }));
735
760
  });
736
761
  };
@@ -742,10 +767,13 @@ var _DraggableNode$1 = function DraggableNode(_ref) {
742
767
  "neeto-ui-border-primary-500 border": isOver,
743
768
  "border border-transparent": !isOver
744
769
  })
745
- }, _objectSpread$7(_objectSpread$7({
770
+ }, _objectSpread$7(_objectSpread$7(_objectSpread$7({
746
771
  depth: depth,
747
772
  folder: folder
748
- }, attributes), listeners)), {}, {
773
+ }, attributes), listeners), {}, {
774
+ folderLabel: folderLabel,
775
+ itemLabel: itemLabel
776
+ })), {}, {
749
777
  ref: function ref(_ref2) {
750
778
  setDroppableRef(_ref2);
751
779
  setDraggableRef(_ref2);
@@ -757,6 +785,7 @@ var _DraggableNode$1 = function DraggableNode(_ref) {
757
785
  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; }
758
786
  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; }
759
787
  var RearrangeFoldersPane = function RearrangeFoldersPane(_ref) {
788
+ var _tree$children$length, _tree$children, _dragItem$children$le, _dragItem$children;
760
789
  var config = _ref.config,
761
790
  onClose = _ref.onClose;
762
791
  var _useState = React.useState(null),
@@ -773,6 +802,13 @@ var RearrangeFoldersPane = function RearrangeFoldersPane(_ref) {
773
802
  folders = _useFetchFolders.data;
774
803
  var _useReorderFolders = useFolderActions.useReorderFolders(config),
775
804
  reorderFolders = _useReorderFolders.mutate;
805
+ var _useFolderStore = useFolderActions.useFolderStore(function (store) {
806
+ var _store$paneState;
807
+ return {
808
+ type: (_store$paneState = store["paneState"]) === null || _store$paneState === void 0 ? void 0 : _store$paneState["type"]
809
+ };
810
+ }, shallow.shallow),
811
+ type = _useFolderStore.type;
776
812
  var _useStateWithDependen = reactUtils.useStateWithDependency(function () {
777
813
  return {
778
814
  name: "/",
@@ -819,11 +855,14 @@ var RearrangeFoldersPane = function RearrangeFoldersPane(_ref) {
819
855
  onSuccess: onClose
820
856
  });
821
857
  };
858
+ useHotkeys(["command+enter", "enter"], onSubmit, {
859
+ mode: "global",
860
+ enabled: !!type
861
+ });
822
862
  var nodeProps = {
823
863
  icon: /*#__PURE__*/jsxRuntime.jsx(Reorder, {
824
864
  className: "neeto-ui-text-gray-500 relative -left-[0.3125rem] flex-shrink-0"
825
- }),
826
- itemLabel: config.labels.item
865
+ })
827
866
  };
828
867
  return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
829
868
  children: [/*#__PURE__*/jsxRuntime.jsx(Pane.Header, {
@@ -839,9 +878,13 @@ var RearrangeFoldersPane = function RearrangeFoldersPane(_ref) {
839
878
  },
840
879
  children: [/*#__PURE__*/jsxRuntime.jsx(Pane.Body, {
841
880
  className: "pb-6",
842
- children: /*#__PURE__*/React.createElement(_DraggableNode$1, _objectSpread$6(_objectSpread$6({}, nodeProps), {}, {
881
+ children: /*#__PURE__*/React.createElement(_DraggableNode$1, _objectSpread$6(_objectSpread$6({}, _objectSpread$6(_objectSpread$6({}, nodeProps), {}, {
882
+ config: config
883
+ })), {}, {
843
884
  folder: tree,
844
- key: tree.id
885
+ itemLabel: config.labels[(tree === null || tree === void 0 ? void 0 : tree.itemCount) > 1 ? "items" : "item"],
886
+ key: tree.id,
887
+ folderLabel: config.labels[((_tree$children$length = tree === null || tree === void 0 || (_tree$children = tree.children) === null || _tree$children === void 0 ? void 0 : _tree$children.length) !== null && _tree$children$length !== void 0 ? _tree$children$length : 0) > 1 ? "folders" : "folder"]
845
888
  }))
846
889
  }), /*#__PURE__*/jsxRuntime.jsxs(Pane.Footer, {
847
890
  className: "gap-2",
@@ -860,7 +903,9 @@ var RearrangeFoldersPane = function RearrangeFoldersPane(_ref) {
860
903
  children: dragItem && /*#__PURE__*/jsxRuntime.jsx(Node$1, _objectSpread$6(_objectSpread$6({}, nodeProps), {}, {
861
904
  className: "neeto-ui-bg-gray-200",
862
905
  depth: 0,
863
- folder: dragItem
906
+ folder: dragItem,
907
+ folderLabel: config.labels[((_dragItem$children$le = dragItem === null || dragItem === void 0 || (_dragItem$children = dragItem.children) === null || _dragItem$children === void 0 ? void 0 : _dragItem$children.length) !== null && _dragItem$children$le !== void 0 ? _dragItem$children$le : 0) > 1 ? "folders" : "folder"],
908
+ itemLabel: config.labels[(dragItem === null || dragItem === void 0 ? void 0 : dragItem.itemCount) > 1 ? "items" : "item"]
864
909
  }))
865
910
  }), document.body)]
866
911
  })]
@@ -958,13 +1003,16 @@ var PlaceholderNode = function PlaceholderNode(_ref) {
958
1003
  });
959
1004
  };
960
1005
 
961
- var _excluded$1 = ["folder", "dragState"];
1006
+ var _excluded$1 = ["folder", "config", "dragState", "folderLabel", "itemLabel"];
962
1007
  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; }
963
1008
  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; }
964
1009
  var _DraggableNode = function DraggableNode(_ref) {
965
1010
  var _overItem$meta$parent;
966
1011
  var folder = _ref.folder,
1012
+ config = _ref.config,
967
1013
  dragState = _ref.dragState,
1014
+ folderLabel = _ref.folderLabel,
1015
+ itemLabel = _ref.itemLabel,
968
1016
  rest = _objectWithoutProperties(_ref, _excluded$1);
969
1017
  var overItem = dragState.overItem;
970
1018
  var isOverItem = folder.id === (overItem === null || overItem === void 0 ? void 0 : overItem.id);
@@ -992,12 +1040,16 @@ var _DraggableNode = function DraggableNode(_ref) {
992
1040
  dragState: dragState,
993
1041
  folder: folder
994
1042
  }), internal.isArray(folder.children) && folder.children.map(function (child) {
1043
+ var _child$children$lengt, _child$children;
995
1044
  return /*#__PURE__*/React.createElement(_DraggableNode, _objectSpread$5(_objectSpread$5({}, _objectSpread$5(_objectSpread$5({}, rest), {}, {
1045
+ config: config,
996
1046
  dragState: dragState
997
1047
  })), {}, {
998
1048
  depth: child.meta.depth,
999
1049
  folder: child,
1000
- key: child.id
1050
+ itemLabel: config.labels[(child === null || child === void 0 ? void 0 : child.itemCount) > 1 ? "items" : "item"],
1051
+ key: child.id,
1052
+ folderLabel: config.labels[((_child$children$lengt = child === null || child === void 0 || (_child$children = child.children) === null || _child$children === void 0 ? void 0 : _child$children.length) !== null && _child$children$lengt !== void 0 ? _child$children$lengt : 0) > 1 ? "folders" : "folder"]
1001
1053
  }));
1002
1054
  })]
1003
1055
  }, "".concat(folder.id, "--container"));
@@ -1005,9 +1057,12 @@ var _DraggableNode = function DraggableNode(_ref) {
1005
1057
  return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
1006
1058
  children: [/*#__PURE__*/jsxRuntime.jsx(Node$1, _objectSpread$5(_objectSpread$5({
1007
1059
  depth: folder.meta.depth
1008
- }, _objectSpread$5(_objectSpread$5(_objectSpread$5({}, rest), {}, {
1060
+ }, _objectSpread$5(_objectSpread$5(_objectSpread$5(_objectSpread$5({}, rest), {}, {
1009
1061
  folder: folder
1010
- }, attributes), listeners)), {}, {
1062
+ }, attributes), listeners), {}, {
1063
+ folderLabel: folderLabel,
1064
+ itemLabel: itemLabel
1065
+ })), {}, {
1011
1066
  className: classNames({
1012
1067
  "hover:neeto-ui-bg-gray-100 w-full cursor-move transition-colors": true,
1013
1068
  "neeto-ui-bg-gray-100 opacity-50": isDragging,
@@ -1041,6 +1096,7 @@ var measuringConfig = {
1041
1096
 
1042
1097
  // Reorder with support for position adjustment
1043
1098
  var ReorderFoldersPane = function ReorderFoldersPane(_ref) {
1099
+ var _tree$children$length, _tree$children, _dragState$activeItem, _dragState$activeItem2, _dragState$activeItem3;
1044
1100
  var config = _ref.config,
1045
1101
  onClose = _ref.onClose;
1046
1102
  var _useState = React.useState(initialDragState),
@@ -1058,6 +1114,13 @@ var ReorderFoldersPane = function ReorderFoldersPane(_ref) {
1058
1114
  var _useReorderFolders = useFolderActions.useReorderFolders(config),
1059
1115
  reorderFolders = _useReorderFolders.mutate;
1060
1116
  var sensors = core.useSensors(core.useSensor(core.PointerSensor, sensorConfig));
1117
+ var _useFolderStore = useFolderActions.useFolderStore(function (store) {
1118
+ var _store$paneState;
1119
+ return {
1120
+ type: (_store$paneState = store["paneState"]) === null || _store$paneState === void 0 ? void 0 : _store$paneState["type"]
1121
+ };
1122
+ }, shallow.shallow),
1123
+ type = _useFolderStore.type;
1061
1124
  var _useStateWithDependen = reactUtils.useStateWithDependency(function () {
1062
1125
  return {
1063
1126
  name: "/",
@@ -1116,11 +1179,14 @@ var ReorderFoldersPane = function ReorderFoldersPane(_ref) {
1116
1179
  onSuccess: onClose
1117
1180
  });
1118
1181
  };
1182
+ useHotkeys(["command+enter", "enter"], onSubmit, {
1183
+ mode: "global",
1184
+ enabled: !!type
1185
+ });
1119
1186
  var nodeProps = {
1120
1187
  icon: /*#__PURE__*/jsxRuntime.jsx(Reorder, {
1121
1188
  className: "neeto-ui-text-gray-500 relative -left-[0.3125rem] flex-shrink-0"
1122
- }),
1123
- itemLabel: config.labels.item
1189
+ })
1124
1190
  };
1125
1191
  return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
1126
1192
  children: [/*#__PURE__*/jsxRuntime.jsx(Pane.Header, {
@@ -1144,10 +1210,13 @@ var ReorderFoldersPane = function ReorderFoldersPane(_ref) {
1144
1210
  children: [/*#__PURE__*/jsxRuntime.jsx(Pane.Body, {
1145
1211
  className: "pb-6",
1146
1212
  children: /*#__PURE__*/React.createElement(_DraggableNode, _objectSpread$4(_objectSpread$4({}, _objectSpread$4(_objectSpread$4({}, nodeProps), {}, {
1213
+ config: config,
1147
1214
  dragState: dragState
1148
1215
  })), {}, {
1149
1216
  folder: tree,
1150
- key: tree.id
1217
+ itemLabel: config.labels[(tree === null || tree === void 0 ? void 0 : tree.itemCount) > 1 ? "items" : "item"],
1218
+ key: tree.id,
1219
+ folderLabel: config.labels[((_tree$children$length = tree === null || tree === void 0 || (_tree$children = tree.children) === null || _tree$children === void 0 ? void 0 : _tree$children.length) !== null && _tree$children$length !== void 0 ? _tree$children$length : 0) > 1 ? "folders" : "folder"]
1151
1220
  }))
1152
1221
  }), /*#__PURE__*/jsxRuntime.jsxs(Pane.Footer, {
1153
1222
  className: "gap-2",
@@ -1166,7 +1235,9 @@ var ReorderFoldersPane = function ReorderFoldersPane(_ref) {
1166
1235
  children: dragState && /*#__PURE__*/jsxRuntime.jsx(Node$1, _objectSpread$4(_objectSpread$4({}, nodeProps), {}, {
1167
1236
  className: "neeto-ui-bg-gray-200 pl-4 pr-12",
1168
1237
  depth: 0,
1169
- folder: dragState.activeItem
1238
+ folder: dragState.activeItem,
1239
+ folderLabel: config.labels[((_dragState$activeItem = (_dragState$activeItem2 = dragState.activeItem) === null || _dragState$activeItem2 === void 0 || (_dragState$activeItem2 = _dragState$activeItem2.children) === null || _dragState$activeItem2 === void 0 ? void 0 : _dragState$activeItem2.length) !== null && _dragState$activeItem !== void 0 ? _dragState$activeItem : 0) > 1 ? "folders" : "folder"],
1240
+ itemLabel: config.labels[((_dragState$activeItem3 = dragState.activeItem) === null || _dragState$activeItem3 === void 0 ? void 0 : _dragState$activeItem3.itemCount) > 1 ? "items" : "item"]
1170
1241
  }))
1171
1242
  }), document.body)]
1172
1243
  })]
@@ -1228,10 +1299,9 @@ var FoldersContext = function FoldersContext(_ref) {
1228
1299
  };
1229
1300
 
1230
1301
  var FolderTile = function FolderTile(_ref) {
1231
- var _folder$children$leng, _folder$children;
1302
+ var _folder$children$leng, _folder$children, _folder$children$leng2, _folder$children2;
1232
1303
  var isSelected = _ref.isSelected,
1233
1304
  link = _ref.link,
1234
- itemLabel = _ref.itemLabel,
1235
1305
  folder = _ref.folder,
1236
1306
  actions = _ref.actions,
1237
1307
  config = _ref.config,
@@ -1250,7 +1320,7 @@ var FolderTile = function FolderTile(_ref) {
1250
1320
  onClick: actionCallback(actions.onEdit)
1251
1321
  }, {
1252
1322
  key: "move",
1253
- label: t("common.move"),
1323
+ label: t("common.moveToFolder"),
1254
1324
  onClick: actionCallback(actions.onMove)
1255
1325
  }, {
1256
1326
  key: "delete",
@@ -1259,10 +1329,10 @@ var FolderTile = function FolderTile(_ref) {
1259
1329
  }];
1260
1330
  var metaInfo = [];
1261
1331
  var childCount = (_folder$children$leng = (_folder$children = folder.children) === null || _folder$children === void 0 ? void 0 : _folder$children.length) !== null && _folder$children$leng !== void 0 ? _folder$children$leng : 0;
1262
- childCount > 0 && metaInfo.push(t("folders.subfolderCount", {
1263
- count: childCount
1264
- }));
1265
- metaInfo.push("".concat(folder.itemCount || 0, " ").concat(itemLabel));
1332
+ var itemLabel = config.labels[folder.itemCount > 1 ? "items" : "item"];
1333
+ var folderLabel = config.labels[((_folder$children$leng2 = (_folder$children2 = folder.children) === null || _folder$children2 === void 0 ? void 0 : _folder$children2.length) !== null && _folder$children$leng2 !== void 0 ? _folder$children$leng2 : 0) > 1 ? "folders" : "folder"];
1334
+ childCount > 0 && metaInfo.push("".concat(childCount, " ").concat(folderLabel).toLowerCase());
1335
+ metaInfo.push("".concat(folder.itemCount || 0, " ").concat(itemLabel).toLowerCase());
1266
1336
  return /*#__PURE__*/jsxRuntime.jsxs(reactRouterDom.Link, {
1267
1337
  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",
1268
1338
  to: link,
@@ -1315,10 +1385,7 @@ var FoldersList = function FoldersList(_ref) {
1315
1385
  var params = reactUtils.useQueryParams();
1316
1386
  var _useTranslation = useTranslation(config),
1317
1387
  t = _useTranslation.t;
1318
- var fetchParams = ramda.pick(["sortBy", "orderBy"], params);
1319
- var _useFolders = useFolderActions.useFolders(_objectSpread$2(_objectSpread$2({}, config), {}, {
1320
- params: fetchParams
1321
- })),
1388
+ var _useFolders = useFolderActions.useFolders(config),
1322
1389
  folders = _useFolders.folders;
1323
1390
  var _useFolder = useFolderActions.useFolder(config),
1324
1391
  folderId = _useFolder.folderId,
@@ -1340,7 +1407,6 @@ var FoldersList = function FoldersList(_ref) {
1340
1407
  folder: folder,
1341
1408
  onSelect: onSelect,
1342
1409
  isSelected: selection.includes(folder.id),
1343
- itemLabel: config.labels.item,
1344
1410
  key: folder.id,
1345
1411
  link: utils$1.buildUrl(config.folderPath, _objectSpread$2(_objectSpread$2({}, params), {}, {
1346
1412
  folderId: folder.sid
@@ -1471,7 +1537,7 @@ var FoldersTree = function FoldersTree(_ref) {
1471
1537
 
1472
1538
  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}}
1473
1539
 
1474
- 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== */";
1540
+ 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))}.nf-tree-select .ant-select-clear{height:16px;margin-top:-8px;width:16px}.nf-tree-select .ant-select-clear svg{height:16px;width:16px}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC9qYXZhc2NyaXB0L3NyYy9jb21wb25lbnRzL25lZXRvLWZvbGRlcnMtbmFuby5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHlDQUNFLHVCQUNGLENBRUEsb0VBRUUsV0FBQSxDQURBLDRCQUVGLENBRUEsMkZBR0UsMkNBQUEsQ0FEQSwrQ0FBQSxDQUVBLGVBQUYsQ0FHQSxnRkFHRSxpQkFGRixDQUtBLGlDQUNFLHlEQUZGLENBTUUsa0NBRUUsV0FBQSxDQUNBLGVBQUEsQ0FGQSxVQURKLENBS0ksc0NBRUUsV0FBQSxDQURBLFVBRk4iLCJzb3VyY2VzQ29udGVudCI6WyIubmVldG8tc2lkZWJhci1mb2xkZXJzLXRyZWVfX2ZvbGRlci1ub2RlIHtcbiAgY29sb3I6IGluaGVyaXQgIWltcG9ydGFudDtcbn1cblxuLm5lZXRvLXNpZGViYXItZm9sZGVycy10cmVlLmFudC10cmVlIC5hbnQtdHJlZS1ub2RlLWNvbnRlbnQtd3JhcHBlciB7XG4gIHBhZGRpbmctaW5saW5lOiA2cHggIWltcG9ydGFudDtcbiAgbWluLXdpZHRoOiAwO1xufVxuXG4ubmVldG8tc2lkZWJhci1mb2xkZXJzLXRyZWUuYW50LXRyZWVcbiAgLmFudC10cmVlLW5vZGUtY29udGVudC13cmFwcGVyLmFudC10cmVlLW5vZGUtc2VsZWN0ZWQge1xuICBjb2xvcjogcmdiKHZhcigtLW5lZXRvLXVpLWFjY2VudC04MDApKSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IodmFyKC0tbmVldG8tdWktd2hpdGUpKTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLm5lZXRvLXNpZGViYXItZm9sZGVycy10cmVlLmFudC10cmVlXG4gIC5hbnQtdHJlZS1zd2l0Y2hlclxuICAuYW50LXRyZWUtc3dpdGNoZXItaWNvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLm5lZXRvLWZvbGRlcnMtZ3JpZC12aWV3LXdyYXBwZXIge1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgyNTZweCwgMWZyKSk7XG59XG5cbi5uZi10cmVlLXNlbGVjdCB7XG4gIC5hbnQtc2VsZWN0LWNsZWFyIHtcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgbWFyZ2luLXRvcDogLThweDtcblxuICAgIHN2ZyB7XG4gICAgICB3aWR0aDogMTZweDtcbiAgICAgIGhlaWdodDogMTZweDtcbiAgICB9XG4gIH1cbn1cbiJdfQ== */";
1475
1541
  n(css,{});
1476
1542
 
1477
1543
  exports.FoldersContext = FoldersContext;