@ndla/ui 20.0.0 → 21.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 +1 -1
- package/es/LearningPaths/LearningPathInformation.js +21 -3
- package/es/LearningPaths/LearningPathMenu.js +8 -5
- package/es/LearningPaths/LearningPathMenuAsideCopyright.js +17 -4
- package/es/LearningPaths/LearningPathMenuIntro.js +19 -8
- package/es/Masthead/Masthead.js +1 -0
- package/es/Messages/MessageBanner.js +3 -3
- package/es/Resource/ListResource.js +6 -6
- package/es/TopicMenu/TopicMenu.js +14 -1
- package/es/TreeStructure/FolderItem.js +72 -51
- package/es/TreeStructure/FolderItems.js +33 -61
- package/es/TreeStructure/FolderNameInput.js +14 -13
- package/es/TreeStructure/TreeStructure.js +80 -96
- package/es/TreeStructure/helperFunctions.js +4 -73
- package/es/TreeStructure/{TreeStructure.types.js → types.js} +0 -0
- package/es/all.css +1 -1
- package/es/locale/messages-en.js +6 -1
- package/es/locale/messages-nb.js +6 -1
- package/es/locale/messages-nn.js +6 -1
- package/es/locale/messages-se.js +6 -1
- package/es/locale/messages-sma.js +6 -1
- package/lib/LearningPaths/LearningPathInformation.js +19 -2
- package/lib/LearningPaths/LearningPathMenu.d.ts +2 -1
- package/lib/LearningPaths/LearningPathMenu.js +8 -5
- package/lib/LearningPaths/LearningPathMenuAsideCopyright.js +16 -3
- package/lib/LearningPaths/LearningPathMenuIntro.d.ts +3 -1
- package/lib/LearningPaths/LearningPathMenuIntro.js +19 -8
- package/lib/Masthead/Masthead.js +1 -0
- package/lib/Messages/MessageBanner.js +3 -3
- package/lib/Resource/ListResource.js +6 -6
- package/lib/TopicMenu/TopicMenu.js +14 -1
- package/lib/TreeStructure/FolderItem.d.ts +6 -20
- package/lib/TreeStructure/FolderItem.js +74 -51
- package/lib/TreeStructure/FolderItems.d.ts +11 -2
- package/lib/TreeStructure/FolderItems.js +33 -61
- package/lib/TreeStructure/FolderNameInput.js +14 -13
- package/lib/TreeStructure/TreeStructure.d.ts +12 -2
- package/lib/TreeStructure/TreeStructure.js +78 -94
- package/lib/TreeStructure/helperFunctions.d.ts +2 -4
- package/lib/TreeStructure/helperFunctions.js +5 -80
- package/lib/TreeStructure/index.d.ts +2 -1
- package/lib/TreeStructure/types.d.ts +32 -0
- package/lib/TreeStructure/{TreeStructure.types.js → types.js} +0 -0
- package/lib/all.css +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/locale/messages-en.d.ts +6 -1
- package/lib/locale/messages-en.js +6 -1
- package/lib/locale/messages-nb.d.ts +6 -1
- package/lib/locale/messages-nb.js +6 -1
- package/lib/locale/messages-nn.d.ts +6 -1
- package/lib/locale/messages-nn.js +6 -1
- package/lib/locale/messages-se.d.ts +6 -1
- package/lib/locale/messages-se.js +6 -1
- package/lib/locale/messages-sma.d.ts +6 -1
- package/lib/locale/messages-sma.js +6 -1
- package/package.json +15 -14
- package/src/LearningPaths/LearningPathInformation.tsx +27 -12
- package/src/LearningPaths/LearningPathMenu.tsx +9 -1
- package/src/LearningPaths/LearningPathMenuAsideCopyright.tsx +22 -20
- package/src/LearningPaths/LearningPathMenuIntro.tsx +15 -2
- package/src/Masthead/Masthead.tsx +4 -1
- package/src/Messages/MessageBanner.tsx +1 -1
- package/src/Resource/ListResource.tsx +1 -0
- package/src/TopicMenu/TopicMenu.jsx +15 -2
- package/src/TreeStructure/FolderItem.tsx +59 -67
- package/src/TreeStructure/FolderItems.tsx +30 -50
- package/src/TreeStructure/FolderNameInput.tsx +6 -11
- package/src/TreeStructure/TreeStructure.tsx +73 -71
- package/src/TreeStructure/helperFunctions.ts +3 -37
- package/src/TreeStructure/index.ts +2 -1
- package/src/TreeStructure/types.ts +37 -0
- package/src/index.ts +1 -1
- package/src/locale/messages-en.ts +6 -1
- package/src/locale/messages-nb.ts +7 -1
- package/src/locale/messages-nn.ts +6 -1
- package/src/locale/messages-se.ts +7 -1
- package/src/locale/messages-sma.ts +7 -1
- package/lib/TreeStructure/TreeStructure.types.d.ts +0 -61
- package/src/TreeStructure/TreeStructure.types.ts +0 -71
|
@@ -1,13 +1,5 @@
|
|
|
1
1
|
import _styled from "@emotion/styled-base";
|
|
2
2
|
|
|
3
|
-
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
4
|
-
|
|
5
|
-
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
6
|
-
|
|
7
|
-
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
|
|
8
|
-
|
|
9
|
-
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
10
|
-
|
|
11
3
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
12
4
|
|
|
13
5
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
@@ -27,7 +19,7 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
|
27
19
|
* LICENSE file in the root directory of this source tree.
|
|
28
20
|
*
|
|
29
21
|
*/
|
|
30
|
-
import React, { useEffect, useState,
|
|
22
|
+
import React, { useEffect, useState, useMemo } from 'react';
|
|
31
23
|
import { AddButton } from '@ndla/button';
|
|
32
24
|
import Tooltip from '@ndla/tooltip';
|
|
33
25
|
import { useTranslation } from 'react-i18next';
|
|
@@ -35,75 +27,84 @@ import { spacing, fonts } from '@ndla/core';
|
|
|
35
27
|
import { uniq } from 'lodash';
|
|
36
28
|
import TreeStructureStyledWrapper from './TreeStructureWrapper';
|
|
37
29
|
import FolderItems from './FolderItems';
|
|
38
|
-
import {
|
|
30
|
+
import { flattenFolders } from './helperFunctions';
|
|
39
31
|
import { jsx as ___EmotionJSX } from "@emotion/core";
|
|
40
32
|
export var MAX_LEVEL_FOR_FOLDERS = 4;
|
|
41
33
|
|
|
42
34
|
var StyledLabel = _styled("label", {
|
|
43
35
|
target: "e1dg1gdn0",
|
|
44
36
|
label: "StyledLabel"
|
|
45
|
-
})("font-weight:", fonts.weight.semibold, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
37
|
+
})("font-weight:", fonts.weight.semibold, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRyZWVTdHJ1Y3R1cmUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXVCZ0MiLCJmaWxlIjoiVHJlZVN0cnVjdHVyZS50c3giLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAyMi1wcmVzZW50LCBORExBLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEdQTHYzIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKlxuICovXG5cbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlLCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQWRkQnV0dG9uIH0gZnJvbSAnQG5kbGEvYnV0dG9uJztcbmltcG9ydCBUb29sdGlwIGZyb20gJ0BuZGxhL3Rvb2x0aXAnO1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHNwYWNpbmcsIGZvbnRzIH0gZnJvbSAnQG5kbGEvY29yZSc7XG5pbXBvcnQgeyB1bmlxIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IElGb2xkZXIgfSBmcm9tICdAbmRsYS90eXBlcy1sZWFybmluZ3BhdGgtYXBpJztcbmltcG9ydCBUcmVlU3RydWN0dXJlU3R5bGVkV3JhcHBlciBmcm9tICcuL1RyZWVTdHJ1Y3R1cmVXcmFwcGVyJztcbmltcG9ydCBGb2xkZXJJdGVtcyBmcm9tICcuL0ZvbGRlckl0ZW1zJztcbmltcG9ydCB7IGZsYXR0ZW5Gb2xkZXJzIH0gZnJvbSAnLi9oZWxwZXJGdW5jdGlvbnMnO1xuaW1wb3J0IHsgQ29tbW9uVHJlZVN0cnVjdHVyZVByb3BzLCBGb2xkZXJUeXBlIH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBNQVhfTEVWRUxfRk9SX0ZPTERFUlMgPSA0O1xuXG5jb25zdCBTdHlsZWRMYWJlbCA9IHN0eWxlZC5sYWJlbGBcbiAgZm9udC13ZWlnaHQ6ICR7Zm9udHMud2VpZ2h0LnNlbWlib2xkfTtcbmA7XG5cbmNvbnN0IEFkZEZvbGRlcldyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBtYXJnaW4tdG9wOiAke3NwYWNpbmcueHNtYWxsfTtcbmA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJlZVN0cnVjdHVyZVByb3BzIGV4dGVuZHMgQ29tbW9uVHJlZVN0cnVjdHVyZVByb3BzIHtcbiAgZGVmYXVsdE9wZW5Gb2xkZXJzPzogc3RyaW5nW107XG4gIGZvbGRlcnM6IEZvbGRlclR5cGVbXTtcbiAgZWRpdGFibGU/OiBib29sZWFuO1xuICBmcmFtZWQ/OiBib29sZWFuO1xuICBsYWJlbD86IHN0cmluZztcbiAgbWF4aW11bUxldmVsc09mRm9sZGVyc0FsbG93ZWQ/OiBudW1iZXI7XG4gIG9uTmV3Rm9sZGVyOiAobmFtZTogc3RyaW5nLCBwYXJlbnRJZDogc3RyaW5nKSA9PiBQcm9taXNlPElGb2xkZXI+O1xufVxuXG5jb25zdCBUcmVlU3RydWN0dXJlID0gKHtcbiAgZGVmYXVsdE9wZW5Gb2xkZXJzLFxuICBlZGl0YWJsZSxcbiAgbWVudUl0ZW1zLFxuICBmb2xkZXJzLFxuICBmcmFtZWQsXG4gIGxhYmVsLFxuICBsb2FkaW5nLFxuICBtYXhpbXVtTGV2ZWxzT2ZGb2xkZXJzQWxsb3dlZCA9IE1BWF9MRVZFTF9GT1JfRk9MREVSUyxcbiAgb25OZXdGb2xkZXIsXG4gIG9uU2VsZWN0Rm9sZGVyLFxuICBvcGVuT25Gb2xkZXJDbGljayxcbn06IFRyZWVTdHJ1Y3R1cmVQcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCk7XG5cbiAgY29uc3QgZGVmYXVsdFNlbGVjdGVkRm9sZGVySWQgPSBkZWZhdWx0T3BlbkZvbGRlcnMgJiYgZGVmYXVsdE9wZW5Gb2xkZXJzW2RlZmF1bHRPcGVuRm9sZGVycy5sZW5ndGggLSAxXTtcblxuICBjb25zdCBbb3BlbkZvbGRlcnMsIHNldE9wZW5Gb2xkZXJzXSA9IHVzZVN0YXRlPHN0cmluZ1tdPihkZWZhdWx0T3BlbkZvbGRlcnMgfHwgW10pO1xuXG4gIGNvbnN0IFtuZXdGb2xkZXJQYXJlbnRJZCwgc2V0TmV3Rm9sZGVyUGFyZW50SWRdID0gdXNlU3RhdGU8c3RyaW5nIHwgdW5kZWZpbmVkPigpO1xuICBjb25zdCBbZm9jdXNlZElkLCBzZXRGb2N1c2VkSWRdID0gdXNlU3RhdGU8c3RyaW5nIHwgdW5kZWZpbmVkPigpO1xuICBjb25zdCBbc2VsZWN0ZWRGb2xkZXIsIHNldFNlbGVjdGVkRm9sZGVyXSA9IHVzZVN0YXRlPEZvbGRlclR5cGUgfCB1bmRlZmluZWQ+KCk7XG5cbiAgY29uc3QgZmxhdHRlbmVkRm9sZGVycyA9IHVzZU1lbW8oKCkgPT4gZmxhdHRlbkZvbGRlcnMoZm9sZGVycywgb3BlbkZvbGRlcnMpLCBbZm9sZGVycywgb3BlbkZvbGRlcnNdKTtcbiAgY29uc3QgdmlzaWJsZUZvbGRlcklkcyA9IGZsYXR0ZW5lZEZvbGRlcnMubWFwKChmb2xkZXIpID0+IGZvbGRlci5pZCk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZGVmYXVsdE9wZW5Gb2xkZXJzKSB7XG4gICAgICBzZXRPcGVuRm9sZGVycygocHJldikgPT4ge1xuICAgICAgICByZXR1cm4gdW5pcShkZWZhdWx0T3BlbkZvbGRlcnMuY29uY2F0KHByZXYpKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwgW2RlZmF1bHRPcGVuRm9sZGVyc10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGRlZmF1bHRTZWxlY3RlZEZvbGRlcklkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkID0gZmxhdHRlbkZvbGRlcnMoZm9sZGVycykuZmluZCgoZm9sZGVyKSA9PiBmb2xkZXIuaWQgPT09IGRlZmF1bHRTZWxlY3RlZEZvbGRlcklkKTtcbiAgICAgIGlmIChzZWxlY3RlZCkge1xuICAgICAgICBzZXRTZWxlY3RlZEZvbGRlcihzZWxlY3RlZCk7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgfSwgW2RlZmF1bHRTZWxlY3RlZEZvbGRlcklkXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWxvYWRpbmcpIHtcbiAgICAgIHNldE5ld0ZvbGRlclBhcmVudElkKHVuZGVmaW5lZCk7XG4gICAgfVxuICB9LCBbbG9hZGluZ10pO1xuXG4gIGNvbnN0IG9uQ2xvc2VGb2xkZXIgPSAoaWQ6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IGNsb3NlZEZvbGRlciA9IGZsYXR0ZW5lZEZvbGRlcnMuZmluZCgoZm9sZGVyKSA9PiBmb2xkZXIuaWQgPT09IGlkKTtcblxuICAgIGlmIChjbG9zZWRGb2xkZXIpIHtcbiAgICAgIGNvbnN0IHN1YkZvbGRlcnMgPSBjbG9zZWRGb2xkZXIuc3ViZm9sZGVycyAmJiBmbGF0dGVuRm9sZGVycyhjbG9zZWRGb2xkZXIuc3ViZm9sZGVycyk7XG4gICAgICBpZiAoc3ViRm9sZGVycy5zb21lKChmb2xkZXIpID0+IGZvbGRlci5pZCA9PT0gc2VsZWN0ZWRGb2xkZXI/LmlkKSkge1xuICAgICAgICBpZiAob25TZWxlY3RGb2xkZXIpIHtcbiAgICAgICAgICBzZXRTZWxlY3RlZEZvbGRlcihjbG9zZWRGb2xkZXIpO1xuICAgICAgICAgIG9uU2VsZWN0Rm9sZGVyKGNsb3NlZEZvbGRlci5pZCk7XG4gICAgICAgIH1cbiAgICAgICAgc2V0Rm9jdXNlZElkKGNsb3NlZEZvbGRlci5pZCk7XG4gICAgICB9XG4gICAgfVxuICAgIHNldE9wZW5Gb2xkZXJzKG9wZW5Gb2xkZXJzLmZpbHRlcigoZm9sZGVySWQpID0+IGZvbGRlcklkICE9PSBpZCkpO1xuICB9O1xuXG4gIGNvbnN0IG9uT3BlbkZvbGRlciA9IChpZDogc3RyaW5nKSA9PiB7XG4gICAgc2V0T3BlbkZvbGRlcnModW5pcShvcGVuRm9sZGVycy5jb25jYXQoaWQpKSk7XG4gIH07XG5cbiAgY29uc3Qgb25TYXZlTmV3Rm9sZGVyID0gKG5hbWU6IHN0cmluZywgcGFyZW50SWQ6IHN0cmluZykgPT4ge1xuICAgIG9uTmV3Rm9sZGVyKG5hbWUsIHBhcmVudElkKS50aGVuKChuZXdGb2xkZXIpID0+IHtcbiAgICAgIGlmIChuZXdGb2xkZXIpIHtcbiAgICAgICAgc2V0U2VsZWN0ZWRGb2xkZXIobmV3Rm9sZGVyKTtcbiAgICAgICAgc2V0Rm9jdXNlZElkKG5ld0ZvbGRlci5pZCk7XG4gICAgICAgIHNldE9wZW5Gb2xkZXJzKHVuaXEob3BlbkZvbGRlcnMuY29uY2F0KHBhcmVudElkKSkpO1xuICAgICAgfVxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IG9uQ2FuY2VsTmV3Rm9sZGVyID0gKCkgPT4ge1xuICAgIHNldE5ld0ZvbGRlclBhcmVudElkKHVuZGVmaW5lZCk7XG4gIH07XG5cbiAgY29uc3QgY2FuQWRkRm9sZGVyID1cbiAgICBlZGl0YWJsZSAmJiBzZWxlY3RlZEZvbGRlciAmJiBzZWxlY3RlZEZvbGRlcj8uYnJlYWRjcnVtYnMubGVuZ3RoIDwgKG1heGltdW1MZXZlbHNPZkZvbGRlcnNBbGxvd2VkIHx8IDEpO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdj5cbiAgICAgIHtsYWJlbCAmJiA8U3R5bGVkTGFiZWw+e2xhYmVsfTwvU3R5bGVkTGFiZWw+fVxuICAgICAgPFRyZWVTdHJ1Y3R1cmVTdHlsZWRXcmFwcGVyIGFyaWEtbGFiZWw9XCJNZW51IHRyZWVcIiByb2xlPVwidHJlZVwiIGZyYW1lZD17ZnJhbWVkfT5cbiAgICAgICAgPEZvbGRlckl0ZW1zXG4gICAgICAgICAgZWRpdGFibGU9e2VkaXRhYmxlfVxuICAgICAgICAgIGZvY3VzZWRGb2xkZXJJZD17Zm9jdXNlZElkfVxuICAgICAgICAgIG1lbnVJdGVtcz17bWVudUl0ZW1zfVxuICAgICAgICAgIGZvbGRlcnM9e2ZvbGRlcnN9XG4gICAgICAgICAgbGV2ZWw9ezF9XG4gICAgICAgICAgbG9hZGluZz17bG9hZGluZ31cbiAgICAgICAgICBzZWxlY3RlZEZvbGRlcj17c2VsZWN0ZWRGb2xkZXJ9XG4gICAgICAgICAgbWF4aW11bUxldmVsc09mRm9sZGVyc0FsbG93ZWQ9e21heGltdW1MZXZlbHNPZkZvbGRlcnNBbGxvd2VkfVxuICAgICAgICAgIG5ld0ZvbGRlclBhcmVudElkPXtuZXdGb2xkZXJQYXJlbnRJZH1cbiAgICAgICAgICBvbkNhbmNlbE5ld0ZvbGRlcj17b25DYW5jZWxOZXdGb2xkZXJ9XG4gICAgICAgICAgb25DbG9zZUZvbGRlcj17b25DbG9zZUZvbGRlcn1cbiAgICAgICAgICBvbk9wZW5Gb2xkZXI9e29uT3BlbkZvbGRlcn1cbiAgICAgICAgICBvblNhdmVOZXdGb2xkZXI9e29uU2F2ZU5ld0ZvbGRlcn1cbiAgICAgICAgICBvblNlbGVjdEZvbGRlcj17b25TZWxlY3RGb2xkZXJ9XG4gICAgICAgICAgb3BlbkZvbGRlcnM9e29wZW5Gb2xkZXJzfVxuICAgICAgICAgIG9wZW5PbkZvbGRlckNsaWNrPXtvcGVuT25Gb2xkZXJDbGlja31cbiAgICAgICAgICBzZXRGb2N1c2VkSWQ9e3NldEZvY3VzZWRJZH1cbiAgICAgICAgICBzZXRTZWxlY3RlZEZvbGRlcj17c2V0U2VsZWN0ZWRGb2xkZXJ9XG4gICAgICAgICAgdmlzaWJsZUZvbGRlcnM9e3Zpc2libGVGb2xkZXJJZHN9XG4gICAgICAgIC8+XG4gICAgICA8L1RyZWVTdHJ1Y3R1cmVTdHlsZWRXcmFwcGVyPlxuICAgICAge2VkaXRhYmxlICYmIChcbiAgICAgICAgPEFkZEZvbGRlcldyYXBwZXI+XG4gICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgIHRvb2x0aXA9e1xuICAgICAgICAgICAgICBjYW5BZGRGb2xkZXJcbiAgICAgICAgICAgICAgICA/IHQoJ215TmRsYS5uZXdGb2xkZXJVbmRlcicsIHtcbiAgICAgICAgICAgICAgICAgICAgZm9sZGVyTmFtZTogc2VsZWN0ZWRGb2xkZXI/Lm5hbWUsXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIDogdCgndHJlZVN0cnVjdHVyZS5tYXhGb2xkZXJzQWxyZWFkeUFkZGVkJylcbiAgICAgICAgICAgIH0+XG4gICAgICAgICAgICA8QWRkQnV0dG9uXG4gICAgICAgICAgICAgIGRpc2FibGVkPXshY2FuQWRkRm9sZGVyfVxuICAgICAgICAgICAgICBhcmlhLWxhYmVsPXt0KCdteU5kbGEubmV3Rm9sZGVyJyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldE5ld0ZvbGRlclBhcmVudElkKHNlbGVjdGVkRm9sZGVyPy5pZCl9PlxuICAgICAgICAgICAgICB7dCgnbXlOZGxhLm5ld0ZvbGRlcicpfVxuICAgICAgICAgICAgPC9BZGRCdXR0b24+XG4gICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICA8L0FkZEZvbGRlcldyYXBwZXI+XG4gICAgICApfVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgVHJlZVN0cnVjdHVyZTtcbiJdfQ== */"));
|
|
46
38
|
|
|
47
39
|
var AddFolderWrapper = _styled("div", {
|
|
48
40
|
target: "e1dg1gdn1",
|
|
49
41
|
label: "AddFolderWrapper"
|
|
50
|
-
})("display:flex;margin-top:", spacing.xsmall, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
42
|
+
})("display:flex;margin-top:", spacing.xsmall, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRyZWVTdHJ1Y3R1cmUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTJCbUMiLCJmaWxlIjoiVHJlZVN0cnVjdHVyZS50c3giLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAyMi1wcmVzZW50LCBORExBLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEdQTHYzIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKlxuICovXG5cbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlLCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQWRkQnV0dG9uIH0gZnJvbSAnQG5kbGEvYnV0dG9uJztcbmltcG9ydCBUb29sdGlwIGZyb20gJ0BuZGxhL3Rvb2x0aXAnO1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHNwYWNpbmcsIGZvbnRzIH0gZnJvbSAnQG5kbGEvY29yZSc7XG5pbXBvcnQgeyB1bmlxIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IElGb2xkZXIgfSBmcm9tICdAbmRsYS90eXBlcy1sZWFybmluZ3BhdGgtYXBpJztcbmltcG9ydCBUcmVlU3RydWN0dXJlU3R5bGVkV3JhcHBlciBmcm9tICcuL1RyZWVTdHJ1Y3R1cmVXcmFwcGVyJztcbmltcG9ydCBGb2xkZXJJdGVtcyBmcm9tICcuL0ZvbGRlckl0ZW1zJztcbmltcG9ydCB7IGZsYXR0ZW5Gb2xkZXJzIH0gZnJvbSAnLi9oZWxwZXJGdW5jdGlvbnMnO1xuaW1wb3J0IHsgQ29tbW9uVHJlZVN0cnVjdHVyZVByb3BzLCBGb2xkZXJUeXBlIH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBNQVhfTEVWRUxfRk9SX0ZPTERFUlMgPSA0O1xuXG5jb25zdCBTdHlsZWRMYWJlbCA9IHN0eWxlZC5sYWJlbGBcbiAgZm9udC13ZWlnaHQ6ICR7Zm9udHMud2VpZ2h0LnNlbWlib2xkfTtcbmA7XG5cbmNvbnN0IEFkZEZvbGRlcldyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBtYXJnaW4tdG9wOiAke3NwYWNpbmcueHNtYWxsfTtcbmA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJlZVN0cnVjdHVyZVByb3BzIGV4dGVuZHMgQ29tbW9uVHJlZVN0cnVjdHVyZVByb3BzIHtcbiAgZGVmYXVsdE9wZW5Gb2xkZXJzPzogc3RyaW5nW107XG4gIGZvbGRlcnM6IEZvbGRlclR5cGVbXTtcbiAgZWRpdGFibGU/OiBib29sZWFuO1xuICBmcmFtZWQ/OiBib29sZWFuO1xuICBsYWJlbD86IHN0cmluZztcbiAgbWF4aW11bUxldmVsc09mRm9sZGVyc0FsbG93ZWQ/OiBudW1iZXI7XG4gIG9uTmV3Rm9sZGVyOiAobmFtZTogc3RyaW5nLCBwYXJlbnRJZDogc3RyaW5nKSA9PiBQcm9taXNlPElGb2xkZXI+O1xufVxuXG5jb25zdCBUcmVlU3RydWN0dXJlID0gKHtcbiAgZGVmYXVsdE9wZW5Gb2xkZXJzLFxuICBlZGl0YWJsZSxcbiAgbWVudUl0ZW1zLFxuICBmb2xkZXJzLFxuICBmcmFtZWQsXG4gIGxhYmVsLFxuICBsb2FkaW5nLFxuICBtYXhpbXVtTGV2ZWxzT2ZGb2xkZXJzQWxsb3dlZCA9IE1BWF9MRVZFTF9GT1JfRk9MREVSUyxcbiAgb25OZXdGb2xkZXIsXG4gIG9uU2VsZWN0Rm9sZGVyLFxuICBvcGVuT25Gb2xkZXJDbGljayxcbn06IFRyZWVTdHJ1Y3R1cmVQcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCk7XG5cbiAgY29uc3QgZGVmYXVsdFNlbGVjdGVkRm9sZGVySWQgPSBkZWZhdWx0T3BlbkZvbGRlcnMgJiYgZGVmYXVsdE9wZW5Gb2xkZXJzW2RlZmF1bHRPcGVuRm9sZGVycy5sZW5ndGggLSAxXTtcblxuICBjb25zdCBbb3BlbkZvbGRlcnMsIHNldE9wZW5Gb2xkZXJzXSA9IHVzZVN0YXRlPHN0cmluZ1tdPihkZWZhdWx0T3BlbkZvbGRlcnMgfHwgW10pO1xuXG4gIGNvbnN0IFtuZXdGb2xkZXJQYXJlbnRJZCwgc2V0TmV3Rm9sZGVyUGFyZW50SWRdID0gdXNlU3RhdGU8c3RyaW5nIHwgdW5kZWZpbmVkPigpO1xuICBjb25zdCBbZm9jdXNlZElkLCBzZXRGb2N1c2VkSWRdID0gdXNlU3RhdGU8c3RyaW5nIHwgdW5kZWZpbmVkPigpO1xuICBjb25zdCBbc2VsZWN0ZWRGb2xkZXIsIHNldFNlbGVjdGVkRm9sZGVyXSA9IHVzZVN0YXRlPEZvbGRlclR5cGUgfCB1bmRlZmluZWQ+KCk7XG5cbiAgY29uc3QgZmxhdHRlbmVkRm9sZGVycyA9IHVzZU1lbW8oKCkgPT4gZmxhdHRlbkZvbGRlcnMoZm9sZGVycywgb3BlbkZvbGRlcnMpLCBbZm9sZGVycywgb3BlbkZvbGRlcnNdKTtcbiAgY29uc3QgdmlzaWJsZUZvbGRlcklkcyA9IGZsYXR0ZW5lZEZvbGRlcnMubWFwKChmb2xkZXIpID0+IGZvbGRlci5pZCk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZGVmYXVsdE9wZW5Gb2xkZXJzKSB7XG4gICAgICBzZXRPcGVuRm9sZGVycygocHJldikgPT4ge1xuICAgICAgICByZXR1cm4gdW5pcShkZWZhdWx0T3BlbkZvbGRlcnMuY29uY2F0KHByZXYpKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwgW2RlZmF1bHRPcGVuRm9sZGVyc10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGRlZmF1bHRTZWxlY3RlZEZvbGRlcklkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkID0gZmxhdHRlbkZvbGRlcnMoZm9sZGVycykuZmluZCgoZm9sZGVyKSA9PiBmb2xkZXIuaWQgPT09IGRlZmF1bHRTZWxlY3RlZEZvbGRlcklkKTtcbiAgICAgIGlmIChzZWxlY3RlZCkge1xuICAgICAgICBzZXRTZWxlY3RlZEZvbGRlcihzZWxlY3RlZCk7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgfSwgW2RlZmF1bHRTZWxlY3RlZEZvbGRlcklkXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWxvYWRpbmcpIHtcbiAgICAgIHNldE5ld0ZvbGRlclBhcmVudElkKHVuZGVmaW5lZCk7XG4gICAgfVxuICB9LCBbbG9hZGluZ10pO1xuXG4gIGNvbnN0IG9uQ2xvc2VGb2xkZXIgPSAoaWQ6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IGNsb3NlZEZvbGRlciA9IGZsYXR0ZW5lZEZvbGRlcnMuZmluZCgoZm9sZGVyKSA9PiBmb2xkZXIuaWQgPT09IGlkKTtcblxuICAgIGlmIChjbG9zZWRGb2xkZXIpIHtcbiAgICAgIGNvbnN0IHN1YkZvbGRlcnMgPSBjbG9zZWRGb2xkZXIuc3ViZm9sZGVycyAmJiBmbGF0dGVuRm9sZGVycyhjbG9zZWRGb2xkZXIuc3ViZm9sZGVycyk7XG4gICAgICBpZiAoc3ViRm9sZGVycy5zb21lKChmb2xkZXIpID0+IGZvbGRlci5pZCA9PT0gc2VsZWN0ZWRGb2xkZXI/LmlkKSkge1xuICAgICAgICBpZiAob25TZWxlY3RGb2xkZXIpIHtcbiAgICAgICAgICBzZXRTZWxlY3RlZEZvbGRlcihjbG9zZWRGb2xkZXIpO1xuICAgICAgICAgIG9uU2VsZWN0Rm9sZGVyKGNsb3NlZEZvbGRlci5pZCk7XG4gICAgICAgIH1cbiAgICAgICAgc2V0Rm9jdXNlZElkKGNsb3NlZEZvbGRlci5pZCk7XG4gICAgICB9XG4gICAgfVxuICAgIHNldE9wZW5Gb2xkZXJzKG9wZW5Gb2xkZXJzLmZpbHRlcigoZm9sZGVySWQpID0+IGZvbGRlcklkICE9PSBpZCkpO1xuICB9O1xuXG4gIGNvbnN0IG9uT3BlbkZvbGRlciA9IChpZDogc3RyaW5nKSA9PiB7XG4gICAgc2V0T3BlbkZvbGRlcnModW5pcShvcGVuRm9sZGVycy5jb25jYXQoaWQpKSk7XG4gIH07XG5cbiAgY29uc3Qgb25TYXZlTmV3Rm9sZGVyID0gKG5hbWU6IHN0cmluZywgcGFyZW50SWQ6IHN0cmluZykgPT4ge1xuICAgIG9uTmV3Rm9sZGVyKG5hbWUsIHBhcmVudElkKS50aGVuKChuZXdGb2xkZXIpID0+IHtcbiAgICAgIGlmIChuZXdGb2xkZXIpIHtcbiAgICAgICAgc2V0U2VsZWN0ZWRGb2xkZXIobmV3Rm9sZGVyKTtcbiAgICAgICAgc2V0Rm9jdXNlZElkKG5ld0ZvbGRlci5pZCk7XG4gICAgICAgIHNldE9wZW5Gb2xkZXJzKHVuaXEob3BlbkZvbGRlcnMuY29uY2F0KHBhcmVudElkKSkpO1xuICAgICAgfVxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IG9uQ2FuY2VsTmV3Rm9sZGVyID0gKCkgPT4ge1xuICAgIHNldE5ld0ZvbGRlclBhcmVudElkKHVuZGVmaW5lZCk7XG4gIH07XG5cbiAgY29uc3QgY2FuQWRkRm9sZGVyID1cbiAgICBlZGl0YWJsZSAmJiBzZWxlY3RlZEZvbGRlciAmJiBzZWxlY3RlZEZvbGRlcj8uYnJlYWRjcnVtYnMubGVuZ3RoIDwgKG1heGltdW1MZXZlbHNPZkZvbGRlcnNBbGxvd2VkIHx8IDEpO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdj5cbiAgICAgIHtsYWJlbCAmJiA8U3R5bGVkTGFiZWw+e2xhYmVsfTwvU3R5bGVkTGFiZWw+fVxuICAgICAgPFRyZWVTdHJ1Y3R1cmVTdHlsZWRXcmFwcGVyIGFyaWEtbGFiZWw9XCJNZW51IHRyZWVcIiByb2xlPVwidHJlZVwiIGZyYW1lZD17ZnJhbWVkfT5cbiAgICAgICAgPEZvbGRlckl0ZW1zXG4gICAgICAgICAgZWRpdGFibGU9e2VkaXRhYmxlfVxuICAgICAgICAgIGZvY3VzZWRGb2xkZXJJZD17Zm9jdXNlZElkfVxuICAgICAgICAgIG1lbnVJdGVtcz17bWVudUl0ZW1zfVxuICAgICAgICAgIGZvbGRlcnM9e2ZvbGRlcnN9XG4gICAgICAgICAgbGV2ZWw9ezF9XG4gICAgICAgICAgbG9hZGluZz17bG9hZGluZ31cbiAgICAgICAgICBzZWxlY3RlZEZvbGRlcj17c2VsZWN0ZWRGb2xkZXJ9XG4gICAgICAgICAgbWF4aW11bUxldmVsc09mRm9sZGVyc0FsbG93ZWQ9e21heGltdW1MZXZlbHNPZkZvbGRlcnNBbGxvd2VkfVxuICAgICAgICAgIG5ld0ZvbGRlclBhcmVudElkPXtuZXdGb2xkZXJQYXJlbnRJZH1cbiAgICAgICAgICBvbkNhbmNlbE5ld0ZvbGRlcj17b25DYW5jZWxOZXdGb2xkZXJ9XG4gICAgICAgICAgb25DbG9zZUZvbGRlcj17b25DbG9zZUZvbGRlcn1cbiAgICAgICAgICBvbk9wZW5Gb2xkZXI9e29uT3BlbkZvbGRlcn1cbiAgICAgICAgICBvblNhdmVOZXdGb2xkZXI9e29uU2F2ZU5ld0ZvbGRlcn1cbiAgICAgICAgICBvblNlbGVjdEZvbGRlcj17b25TZWxlY3RGb2xkZXJ9XG4gICAgICAgICAgb3BlbkZvbGRlcnM9e29wZW5Gb2xkZXJzfVxuICAgICAgICAgIG9wZW5PbkZvbGRlckNsaWNrPXtvcGVuT25Gb2xkZXJDbGlja31cbiAgICAgICAgICBzZXRGb2N1c2VkSWQ9e3NldEZvY3VzZWRJZH1cbiAgICAgICAgICBzZXRTZWxlY3RlZEZvbGRlcj17c2V0U2VsZWN0ZWRGb2xkZXJ9XG4gICAgICAgICAgdmlzaWJsZUZvbGRlcnM9e3Zpc2libGVGb2xkZXJJZHN9XG4gICAgICAgIC8+XG4gICAgICA8L1RyZWVTdHJ1Y3R1cmVTdHlsZWRXcmFwcGVyPlxuICAgICAge2VkaXRhYmxlICYmIChcbiAgICAgICAgPEFkZEZvbGRlcldyYXBwZXI+XG4gICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgIHRvb2x0aXA9e1xuICAgICAgICAgICAgICBjYW5BZGRGb2xkZXJcbiAgICAgICAgICAgICAgICA/IHQoJ215TmRsYS5uZXdGb2xkZXJVbmRlcicsIHtcbiAgICAgICAgICAgICAgICAgICAgZm9sZGVyTmFtZTogc2VsZWN0ZWRGb2xkZXI/Lm5hbWUsXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIDogdCgndHJlZVN0cnVjdHVyZS5tYXhGb2xkZXJzQWxyZWFkeUFkZGVkJylcbiAgICAgICAgICAgIH0+XG4gICAgICAgICAgICA8QWRkQnV0dG9uXG4gICAgICAgICAgICAgIGRpc2FibGVkPXshY2FuQWRkRm9sZGVyfVxuICAgICAgICAgICAgICBhcmlhLWxhYmVsPXt0KCdteU5kbGEubmV3Rm9sZGVyJyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldE5ld0ZvbGRlclBhcmVudElkKHNlbGVjdGVkRm9sZGVyPy5pZCl9PlxuICAgICAgICAgICAgICB7dCgnbXlOZGxhLm5ld0ZvbGRlcicpfVxuICAgICAgICAgICAgPC9BZGRCdXR0b24+XG4gICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICA8L0FkZEZvbGRlcldyYXBwZXI+XG4gICAgICApfVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgVHJlZVN0cnVjdHVyZTtcbiJdfQ== */"));
|
|
51
43
|
|
|
52
44
|
var TreeStructure = function TreeStructure(_ref) {
|
|
53
|
-
var
|
|
54
|
-
|
|
55
|
-
var folders = _ref.folders,
|
|
56
|
-
label = _ref.label,
|
|
45
|
+
var defaultOpenFolders = _ref.defaultOpenFolders,
|
|
57
46
|
editable = _ref.editable,
|
|
47
|
+
menuItems = _ref.menuItems,
|
|
48
|
+
folders = _ref.folders,
|
|
49
|
+
framed = _ref.framed,
|
|
50
|
+
label = _ref.label,
|
|
58
51
|
loading = _ref.loading,
|
|
52
|
+
_ref$maximumLevelsOfF = _ref.maximumLevelsOfFoldersAllowed,
|
|
53
|
+
maximumLevelsOfFoldersAllowed = _ref$maximumLevelsOfF === void 0 ? MAX_LEVEL_FOR_FOLDERS : _ref$maximumLevelsOfF,
|
|
59
54
|
onNewFolder = _ref.onNewFolder,
|
|
60
55
|
onSelectFolder = _ref.onSelectFolder,
|
|
61
|
-
openOnFolderClick = _ref.openOnFolderClick
|
|
62
|
-
framed = _ref.framed,
|
|
63
|
-
folderIdMarkedByDefault = _ref.folderIdMarkedByDefault,
|
|
64
|
-
defaultOpenFolders = _ref.defaultOpenFolders,
|
|
65
|
-
folderChild = _ref.folderChild,
|
|
66
|
-
_ref$maximumLevelsOfF = _ref.maximumLevelsOfFoldersAllowed,
|
|
67
|
-
maximumLevelsOfFoldersAllowed = _ref$maximumLevelsOfF === void 0 ? MAX_LEVEL_FOR_FOLDERS : _ref$maximumLevelsOfF;
|
|
56
|
+
openOnFolderClick = _ref.openOnFolderClick;
|
|
68
57
|
|
|
69
58
|
var _useTranslation = useTranslation(),
|
|
70
59
|
t = _useTranslation.t;
|
|
71
60
|
|
|
72
|
-
var
|
|
61
|
+
var defaultSelectedFolderId = defaultOpenFolders && defaultOpenFolders[defaultOpenFolders.length - 1];
|
|
62
|
+
|
|
63
|
+
var _useState = useState(defaultOpenFolders || []),
|
|
73
64
|
_useState2 = _slicedToArray(_useState, 2),
|
|
74
|
-
|
|
75
|
-
|
|
65
|
+
openFolders = _useState2[0],
|
|
66
|
+
setOpenFolders = _useState2[1];
|
|
76
67
|
|
|
77
|
-
var _useState3 = useState(
|
|
68
|
+
var _useState3 = useState(),
|
|
78
69
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
79
|
-
|
|
80
|
-
|
|
70
|
+
newFolderParentId = _useState4[0],
|
|
71
|
+
setNewFolderParentId = _useState4[1];
|
|
81
72
|
|
|
82
73
|
var _useState5 = useState(),
|
|
83
74
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
84
|
-
|
|
85
|
-
|
|
75
|
+
focusedId = _useState6[0],
|
|
76
|
+
setFocusedId = _useState6[1];
|
|
86
77
|
|
|
87
|
-
var _useState7 = useState(
|
|
78
|
+
var _useState7 = useState(),
|
|
88
79
|
_useState8 = _slicedToArray(_useState7, 2),
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
var
|
|
93
|
-
|
|
94
|
-
var rootLevelId = 'treestructure-root';
|
|
95
|
-
var visibleFolders = useMemo(function () {
|
|
96
|
-
return flattenFolders(folders, openFolders).map(function (folder) {
|
|
97
|
-
return folder.id;
|
|
98
|
-
});
|
|
80
|
+
selectedFolder = _useState8[0],
|
|
81
|
+
setSelectedFolder = _useState8[1];
|
|
82
|
+
|
|
83
|
+
var flattenedFolders = useMemo(function () {
|
|
84
|
+
return flattenFolders(folders, openFolders);
|
|
99
85
|
}, [folders, openFolders]);
|
|
86
|
+
var visibleFolderIds = flattenedFolders.map(function (folder) {
|
|
87
|
+
return folder.id;
|
|
88
|
+
});
|
|
100
89
|
useEffect(function () {
|
|
101
90
|
if (defaultOpenFolders) {
|
|
102
91
|
setOpenFolders(function (prev) {
|
|
103
|
-
return uniq(
|
|
92
|
+
return uniq(defaultOpenFolders.concat(prev));
|
|
104
93
|
});
|
|
105
94
|
}
|
|
106
95
|
}, [defaultOpenFolders]);
|
|
96
|
+
useEffect(function () {
|
|
97
|
+
if (defaultSelectedFolderId !== undefined) {
|
|
98
|
+
var selected = flattenFolders(folders).find(function (folder) {
|
|
99
|
+
return folder.id === defaultSelectedFolderId;
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
if (selected) {
|
|
103
|
+
setSelectedFolder(selected);
|
|
104
|
+
}
|
|
105
|
+
} // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
106
|
+
|
|
107
|
+
}, [defaultSelectedFolderId]);
|
|
107
108
|
useEffect(function () {
|
|
108
109
|
if (!loading) {
|
|
109
110
|
setNewFolderParentId(undefined);
|
|
@@ -111,27 +112,27 @@ var TreeStructure = function TreeStructure(_ref) {
|
|
|
111
112
|
}, [loading]);
|
|
112
113
|
|
|
113
114
|
var onCloseFolder = function onCloseFolder(id) {
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
var
|
|
120
|
-
return markedFolderPath[_index] === folderId;
|
|
121
|
-
});
|
|
115
|
+
var closedFolder = flattenedFolders.find(function (folder) {
|
|
116
|
+
return folder.id === id;
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
if (closedFolder) {
|
|
120
|
+
var subFolders = closedFolder.subfolders && flattenFolders(closedFolder.subfolders);
|
|
122
121
|
|
|
123
|
-
if (
|
|
122
|
+
if (subFolders.some(function (folder) {
|
|
123
|
+
return folder.id === (selectedFolder === null || selectedFolder === void 0 ? void 0 : selectedFolder.id);
|
|
124
|
+
})) {
|
|
124
125
|
if (onSelectFolder) {
|
|
125
|
-
|
|
126
|
-
onSelectFolder(
|
|
127
|
-
} else {
|
|
128
|
-
setFocusedFolderId(closingFolderPath[closingFolderPath.length - 1]);
|
|
126
|
+
setSelectedFolder(closedFolder);
|
|
127
|
+
onSelectFolder(closedFolder.id);
|
|
129
128
|
}
|
|
129
|
+
|
|
130
|
+
setFocusedId(closedFolder.id);
|
|
130
131
|
}
|
|
131
132
|
}
|
|
132
133
|
|
|
133
|
-
setOpenFolders(openFolders.filter(function (
|
|
134
|
-
return
|
|
134
|
+
setOpenFolders(openFolders.filter(function (folderId) {
|
|
135
|
+
return folderId !== id;
|
|
135
136
|
}));
|
|
136
137
|
};
|
|
137
138
|
|
|
@@ -139,15 +140,11 @@ var TreeStructure = function TreeStructure(_ref) {
|
|
|
139
140
|
setOpenFolders(uniq(openFolders.concat(id)));
|
|
140
141
|
};
|
|
141
142
|
|
|
142
|
-
var onCreateNewFolder = function onCreateNewFolder(parentId) {
|
|
143
|
-
setNewFolderParentId(parentId);
|
|
144
|
-
};
|
|
145
|
-
|
|
146
143
|
var onSaveNewFolder = function onSaveNewFolder(name, parentId) {
|
|
147
|
-
onNewFolder(name, parentId).then(function (
|
|
148
|
-
if (
|
|
149
|
-
|
|
150
|
-
|
|
144
|
+
onNewFolder(name, parentId).then(function (newFolder) {
|
|
145
|
+
if (newFolder) {
|
|
146
|
+
setSelectedFolder(newFolder);
|
|
147
|
+
setFocusedId(newFolder.id);
|
|
151
148
|
setOpenFolders(uniq(openFolders.concat(parentId)));
|
|
152
149
|
}
|
|
153
150
|
});
|
|
@@ -157,53 +154,40 @@ var TreeStructure = function TreeStructure(_ref) {
|
|
|
157
154
|
setNewFolderParentId(undefined);
|
|
158
155
|
};
|
|
159
156
|
|
|
160
|
-
var
|
|
161
|
-
|
|
162
|
-
setFocusedFolderId(id);
|
|
163
|
-
};
|
|
164
|
-
|
|
165
|
-
var paths = getPathOfFolder(folders, markedFolderId || '');
|
|
166
|
-
var canAddFolder = editable && paths.length < (maximumLevelsOfFoldersAllowed || 1);
|
|
167
|
-
return ___EmotionJSX("div", {
|
|
168
|
-
ref: treestructureRef
|
|
169
|
-
}, label && ___EmotionJSX(StyledLabel, {
|
|
170
|
-
htmlFor: rootLevelId
|
|
171
|
-
}, label), ___EmotionJSX(TreeStructureStyledWrapper, {
|
|
172
|
-
ref: wrapperRef,
|
|
173
|
-
id: rootLevelId,
|
|
157
|
+
var canAddFolder = editable && selectedFolder && (selectedFolder === null || selectedFolder === void 0 ? void 0 : selectedFolder.breadcrumbs.length) < (maximumLevelsOfFoldersAllowed || 1);
|
|
158
|
+
return ___EmotionJSX("div", null, label && ___EmotionJSX(StyledLabel, null, label), ___EmotionJSX(TreeStructureStyledWrapper, {
|
|
174
159
|
"aria-label": "Menu tree",
|
|
175
160
|
role: "tree",
|
|
176
161
|
framed: framed
|
|
177
162
|
}, ___EmotionJSX(FolderItems, {
|
|
178
|
-
onSelectFolder: onSelectFolder,
|
|
179
|
-
level: 1,
|
|
180
|
-
folders: folders,
|
|
181
163
|
editable: editable,
|
|
182
|
-
|
|
183
|
-
|
|
164
|
+
focusedFolderId: focusedId,
|
|
165
|
+
menuItems: menuItems,
|
|
166
|
+
folders: folders,
|
|
167
|
+
level: 1,
|
|
168
|
+
loading: loading,
|
|
169
|
+
selectedFolder: selectedFolder,
|
|
170
|
+
maximumLevelsOfFoldersAllowed: maximumLevelsOfFoldersAllowed,
|
|
184
171
|
newFolderParentId: newFolderParentId,
|
|
185
|
-
onCreateNewFolder: onCreateNewFolder,
|
|
186
172
|
onCancelNewFolder: onCancelNewFolder,
|
|
173
|
+
onCloseFolder: onCloseFolder,
|
|
174
|
+
onOpenFolder: onOpenFolder,
|
|
187
175
|
onSaveNewFolder: onSaveNewFolder,
|
|
188
|
-
|
|
176
|
+
onSelectFolder: onSelectFolder,
|
|
189
177
|
openFolders: openFolders,
|
|
190
|
-
markedFolderId: markedFolderId,
|
|
191
|
-
onMarkFolder: onMarkFolder,
|
|
192
178
|
openOnFolderClick: openOnFolderClick,
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
folderChild: folderChild,
|
|
197
|
-
maximumLevelsOfFoldersAllowed: maximumLevelsOfFoldersAllowed
|
|
179
|
+
setFocusedId: setFocusedId,
|
|
180
|
+
setSelectedFolder: setSelectedFolder,
|
|
181
|
+
visibleFolders: visibleFolderIds
|
|
198
182
|
})), editable && ___EmotionJSX(AddFolderWrapper, null, ___EmotionJSX(Tooltip, {
|
|
199
183
|
tooltip: canAddFolder ? t('myNdla.newFolderUnder', {
|
|
200
|
-
folderName:
|
|
184
|
+
folderName: selectedFolder === null || selectedFolder === void 0 ? void 0 : selectedFolder.name
|
|
201
185
|
}) : t('treeStructure.maxFoldersAlreadyAdded')
|
|
202
186
|
}, ___EmotionJSX(AddButton, {
|
|
203
187
|
disabled: !canAddFolder,
|
|
204
188
|
"aria-label": t('myNdla.newFolder'),
|
|
205
189
|
onClick: function onClick() {
|
|
206
|
-
setNewFolderParentId(
|
|
190
|
+
return setNewFolderParentId(selectedFolder === null || selectedFolder === void 0 ? void 0 : selectedFolder.id);
|
|
207
191
|
}
|
|
208
192
|
}, t('myNdla.newFolder')))));
|
|
209
193
|
};
|
|
@@ -8,80 +8,11 @@ function _objectWithoutProperties(source, excluded) { if (source == null) return
|
|
|
8
8
|
|
|
9
9
|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
10
10
|
|
|
11
|
-
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
12
|
-
|
|
13
|
-
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
14
|
-
|
|
15
|
-
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
|
|
16
|
-
|
|
17
|
-
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
18
|
-
|
|
19
|
-
function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, 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 normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
20
|
-
|
|
21
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
22
|
-
|
|
23
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
24
|
-
|
|
25
|
-
export var getPathOfFolder = function getPathOfFolder(data, findId) {
|
|
26
|
-
var paths = function paths(folders, path) {
|
|
27
|
-
var _iterator = _createForOfIteratorHelper(folders),
|
|
28
|
-
_step;
|
|
29
|
-
|
|
30
|
-
try {
|
|
31
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
32
|
-
var _step$value = _step.value,
|
|
33
|
-
id = _step$value.id,
|
|
34
|
-
subfolders = _step$value.subfolders;
|
|
35
|
-
|
|
36
|
-
if (id === findId) {
|
|
37
|
-
return [].concat(_toConsumableArray(path), [id]);
|
|
38
|
-
} else if (subfolders === null || subfolders === void 0 ? void 0 : subfolders.length) {
|
|
39
|
-
return paths(subfolders, [].concat(_toConsumableArray(path), [id]));
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
} catch (err) {
|
|
43
|
-
_iterator.e(err);
|
|
44
|
-
} finally {
|
|
45
|
-
_iterator.f();
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
return [];
|
|
49
|
-
};
|
|
50
|
-
|
|
51
|
-
return paths(data, []);
|
|
52
|
-
};
|
|
53
|
-
export var getFolderName = function getFolderName(data, findId) {
|
|
54
|
-
if (!findId) {
|
|
55
|
-
return undefined;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
var folderName;
|
|
59
|
-
|
|
60
|
-
var paths = function paths(dataChildren) {
|
|
61
|
-
dataChildren.some(function (_ref, _index) {
|
|
62
|
-
var id = _ref.id,
|
|
63
|
-
name = _ref.name,
|
|
64
|
-
subfolders = _ref.subfolders;
|
|
65
|
-
|
|
66
|
-
if (id === findId) {
|
|
67
|
-
folderName = name;
|
|
68
|
-
return true;
|
|
69
|
-
} else if (subfolders === null || subfolders === void 0 ? void 0 : subfolders.length) {
|
|
70
|
-
return paths(subfolders);
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
return false;
|
|
74
|
-
});
|
|
75
|
-
};
|
|
76
|
-
|
|
77
|
-
paths(data);
|
|
78
|
-
return folderName;
|
|
79
|
-
};
|
|
80
11
|
export var flattenFolders = function flattenFolders(folders, openFolders) {
|
|
81
|
-
return folders.reduce(function (acc,
|
|
82
|
-
var subfolders =
|
|
83
|
-
id =
|
|
84
|
-
rest = _objectWithoutProperties(
|
|
12
|
+
return folders.reduce(function (acc, _ref) {
|
|
13
|
+
var subfolders = _ref.subfolders,
|
|
14
|
+
id = _ref.id,
|
|
15
|
+
rest = _objectWithoutProperties(_ref, ["subfolders", "id"]);
|
|
85
16
|
|
|
86
17
|
if (!subfolders || openFolders && !openFolders.includes(id)) {
|
|
87
18
|
return acc.concat(_objectSpread({
|
|
File without changes
|