@ndla/ui 18.0.0 → 18.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/Masthead/MastheadAuthModal.js +8 -3
- package/es/MyNdla/Resource/Folder.js +7 -7
- package/es/Resource/resourceComponents.js +8 -8
- package/es/TreeStructure/FolderItems.js +3 -3
- package/es/TreeStructure/TreeStructure.js +51 -73
- package/es/TreeStructure/keyboardNavigation/keyboardNavigation.js +23 -11
- package/es/locale/messages-en.js +1 -0
- package/es/locale/messages-nb.js +1 -0
- package/es/locale/messages-nn.js +1 -0
- package/es/locale/messages-se.js +1 -0
- package/es/locale/messages-sma.js +1 -0
- package/lib/Masthead/MastheadAuthModal.js +14 -7
- package/lib/MyNdla/Resource/Folder.js +7 -7
- package/lib/Resource/resourceComponents.js +8 -8
- package/lib/TreeStructure/FolderItems.js +3 -3
- package/lib/TreeStructure/TreeStructure.js +52 -73
- package/lib/TreeStructure/TreeStructure.types.d.ts +2 -2
- package/lib/TreeStructure/keyboardNavigation/keyboardNavigation.js +23 -11
- package/lib/TreeStructure/keyboardNavigation/keyboardNavigation.types.d.ts +1 -1
- package/lib/locale/messages-en.d.ts +1 -0
- package/lib/locale/messages-en.js +1 -0
- package/lib/locale/messages-nb.d.ts +1 -0
- package/lib/locale/messages-nb.js +1 -0
- package/lib/locale/messages-nn.d.ts +1 -0
- package/lib/locale/messages-nn.js +1 -0
- package/lib/locale/messages-se.d.ts +1 -0
- package/lib/locale/messages-se.js +1 -0
- package/lib/locale/messages-sma.d.ts +1 -0
- package/lib/locale/messages-sma.js +1 -0
- package/package.json +2 -2
- package/src/Masthead/MastheadAuthModal.tsx +9 -0
- package/src/MyNdla/Resource/Folder.tsx +1 -1
- package/src/Resource/resourceComponents.tsx +3 -0
- package/src/TreeStructure/FolderItems.tsx +1 -1
- package/src/TreeStructure/TreeStructure.tsx +33 -35
- package/src/TreeStructure/TreeStructure.types.ts +2 -2
- package/src/TreeStructure/keyboardNavigation/keyboardNavigation.ts +7 -7
- package/src/TreeStructure/keyboardNavigation/keyboardNavigation.types.ts +1 -1
- package/src/locale/messages-en.ts +1 -0
- package/src/locale/messages-nb.ts +1 -0
- package/src/locale/messages-nn.ts +1 -0
- package/src/locale/messages-se.ts +1 -0
- package/src/locale/messages-sma.ts +1 -0
|
@@ -21,6 +21,8 @@ var _reactI18next = require("react-i18next");
|
|
|
21
21
|
|
|
22
22
|
var _core = require("@ndla/core");
|
|
23
23
|
|
|
24
|
+
var _lodash = require("lodash");
|
|
25
|
+
|
|
24
26
|
var _TreeStructureWrapper = _interopRequireDefault(require("./TreeStructureWrapper"));
|
|
25
27
|
|
|
26
28
|
var _FolderItems = _interopRequireDefault(require("./FolderItems"));
|
|
@@ -43,9 +45,13 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
|
|
|
43
45
|
|
|
44
46
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
45
47
|
|
|
46
|
-
function
|
|
48
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
49
|
+
|
|
50
|
+
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."); }
|
|
47
51
|
|
|
48
|
-
function
|
|
52
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
|
|
53
|
+
|
|
54
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
49
55
|
|
|
50
56
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
51
57
|
|
|
@@ -64,13 +70,15 @@ exports.MAX_LEVEL_FOR_FOLDERS = MAX_LEVEL_FOR_FOLDERS;
|
|
|
64
70
|
var StyledLabel = (0, _styledBase["default"])("label", {
|
|
65
71
|
target: "e1dg1gdn0",
|
|
66
72
|
label: "StyledLabel"
|
|
67
|
-
})("font-weight:", _core.fonts.weight.semibold, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
73
|
+
})("font-weight:", _core.fonts.weight.semibold, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRyZWVTdHJ1Y3R1cmUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXdCZ0MiLCJmaWxlIjoiVHJlZVN0cnVjdHVyZS50c3giLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAyMi1wcmVzZW50LCBORExBLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEdQTHYzIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKlxuICovXG5cbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlLCB1c2VSZWYsIHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1dWlkIH0gZnJvbSAnQG5kbGEvdXRpbCc7XG5pbXBvcnQgeyBBZGRCdXR0b24gfSBmcm9tICdAbmRsYS9idXR0b24nO1xuaW1wb3J0IFRvb2x0aXAgZnJvbSAnQG5kbGEvdG9vbHRpcCc7XG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgc3BhY2luZywgZm9udHMgfSBmcm9tICdAbmRsYS9jb3JlJztcbmltcG9ydCB7IHVuaXEgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IFRyZWVTdHJ1Y3R1cmVTdHlsZWRXcmFwcGVyIGZyb20gJy4vVHJlZVN0cnVjdHVyZVdyYXBwZXInO1xuaW1wb3J0IEZvbGRlckl0ZW1zIGZyb20gJy4vRm9sZGVySXRlbXMnO1xuaW1wb3J0IHsgZ2V0SWRQYXRoc09mRm9sZGVyLCBnZXRQYXRoT2ZGb2xkZXIsIGdldEZvbGRlck5hbWUgfSBmcm9tICcuL2hlbHBlckZ1bmN0aW9ucyc7XG5pbXBvcnQga2V5Ym9hcmROYXZpZ2F0aW9uLCB7IEtFWUJPQVJEX0tFWVNfT0ZfSU5URVJFU1QgfSBmcm9tICcuL2tleWJvYXJkTmF2aWdhdGlvbi9rZXlib2FyZE5hdmlnYXRpb24nO1xuaW1wb3J0IHsgTmV3Rm9sZGVyUHJvcHMsIFRyZWVTdHJ1Y3R1cmVQcm9wcyB9IGZyb20gJy4vVHJlZVN0cnVjdHVyZS50eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBNQVhfTEVWRUxfRk9SX0ZPTERFUlMgPSA0O1xuXG5jb25zdCBTdHlsZWRMYWJlbCA9IHN0eWxlZC5sYWJlbGBcbiAgZm9udC13ZWlnaHQ6ICR7Zm9udHMud2VpZ2h0LnNlbWlib2xkfTtcbmA7XG5cbmNvbnN0IEFkZEZvbGRlcldyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBtYXJnaW4tdG9wOiAke3NwYWNpbmcueHNtYWxsfTtcbmA7XG5cbmNvbnN0IFRyZWVTdHJ1Y3R1cmUgPSAoe1xuICBkYXRhLFxuICBsYWJlbCxcbiAgZWRpdGFibGUsXG4gIGxvYWRpbmcsXG4gIG9uTmV3Rm9sZGVyLFxuICBvcGVuT25Gb2xkZXJDbGljayxcbiAgZnJhbWVkLFxuICBmb2xkZXJJZE1hcmtlZEJ5RGVmYXVsdCxcbiAgZGVmYXVsdE9wZW5Gb2xkZXJzLFxuICBmb2xkZXJDaGlsZCxcbn06IFRyZWVTdHJ1Y3R1cmVQcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCk7XG4gIGNvbnN0IFtuZXdGb2xkZXIsIHNldE5ld0ZvbGRlcl0gPSB1c2VTdGF0ZTxOZXdGb2xkZXJQcm9wcyB8IHVuZGVmaW5lZD4oKTtcbiAgY29uc3QgW29wZW5Gb2xkZXJzLCBzZXRPcGVuRm9sZGVyc10gPSB1c2VTdGF0ZTxzdHJpbmdbXT4oZGVmYXVsdE9wZW5Gb2xkZXJzIHx8IFtdKTtcbiAgY29uc3QgW2ZvY3VzZWRGb2xkZXJJZCwgc2V0Rm9jdXNlZEZvbGRlcklkXSA9IHVzZVN0YXRlPHN0cmluZyB8IHVuZGVmaW5lZD4oKTtcbiAgY29uc3QgW21hcmtlZEZvbGRlcklkLCBzZXRNYXJrZWRGb2xkZXJJZF0gPSB1c2VTdGF0ZTxzdHJpbmcgfCB1bmRlZmluZWQ+KGZvbGRlcklkTWFya2VkQnlEZWZhdWx0IHx8IGRhdGFbMF0/LmlkKTtcbiAgY29uc3QgdHJlZXN0cnVjdHVyZVJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IHdyYXBwZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCByb290TGV2ZWxJZCA9IHVzZU1lbW8oKCkgPT4gdXVpZCgpLCBbXSk7IC8vIFRPRE86IHVzZSB1c2VJZCBob29rIHdoZW4gd2UgdXBkYXRlIHRvIFJlYWN0IDE4XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZGVmYXVsdE9wZW5Gb2xkZXJzKSB7XG4gICAgICBzZXRPcGVuRm9sZGVycygocHJldikgPT4ge1xuICAgICAgICByZXR1cm4gdW5pcShbLi4uZGVmYXVsdE9wZW5Gb2xkZXJzLCAuLi5wcmV2XSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH0sIFtkZWZhdWx0T3BlbkZvbGRlcnNdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghbG9hZGluZykge1xuICAgICAgc2V0TmV3Rm9sZGVyKHVuZGVmaW5lZCk7XG4gICAgfVxuICB9LCBbbG9hZGluZ10pO1xuXG4gIGNvbnN0IG9uVG9nZ2xlT3BlbiA9IChpZDogc3RyaW5nKSA9PiB7XG4gICAgaWYgKG9wZW5Gb2xkZXJzLmluY2x1ZGVzKGlkKSkge1xuICAgICAgLy8gRGlkIHdlIGp1c3QgY2xvc2VkIGEgZm9sZGVyIHdpdGggYSBtYXJrZWQgZm9sZGVyIGluc2lkZSBpdD9cbiAgICAgIC8vIElmIHNvLCB3ZSBuZWVkIHRvIG1hcmsgdGhlIGZvbGRlciB3ZSBqdXN0IGNsb3NlZC5cbiAgICAgIGlmIChtYXJrZWRGb2xkZXJJZCkge1xuICAgICAgICBjb25zdCBjbG9zaW5nRm9sZGVyUGF0aCA9IGdldFBhdGhPZkZvbGRlcihkYXRhLCBpZCk7XG4gICAgICAgIGNvbnN0IG1hcmtlZEZvbGRlclBhdGggPSBnZXRQYXRoT2ZGb2xkZXIoZGF0YSwgbWFya2VkRm9sZGVySWQpO1xuICAgICAgICBjb25zdCBtYXJrZWRGb2xkZXJJc1N1YlBhdGggPSBjbG9zaW5nRm9sZGVyUGF0aC5ldmVyeShcbiAgICAgICAgICAoZm9sZGVySWQsIF9pbmRleCkgPT4gbWFya2VkRm9sZGVyUGF0aFtfaW5kZXhdID09PSBmb2xkZXJJZCxcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKG1hcmtlZEZvbGRlcklzU3ViUGF0aCkge1xuICAgICAgICAgIHNldE1hcmtlZEZvbGRlcklkKGNsb3NpbmdGb2xkZXJQYXRoW2Nsb3NpbmdGb2xkZXJQYXRoLmxlbmd0aCAtIDFdKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgc2V0T3BlbkZvbGRlcnMob3BlbkZvbGRlcnMuZmlsdGVyKChmb2xkZXIpID0+IGZvbGRlciAhPT0gaWQpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0T3BlbkZvbGRlcnModW5pcShbLi4ub3BlbkZvbGRlcnMsIGlkXSkpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBvbkNyZWF0ZU5ld0ZvbGRlciA9IChwcm9wczogeyBpZFBhdGhzOiBudW1iZXJbXTsgcGFyZW50SWQ/OiBzdHJpbmcgfSkgPT4ge1xuICAgIHNldE5ld0ZvbGRlcihwcm9wcyk7XG4gIH07XG5cbiAgY29uc3Qgb25TYXZlTmV3Rm9sZGVyID0gKHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICBpZiAobmV3Rm9sZGVyKSB7XG4gICAgICAvLyBXZSB3b3VsZCBsaWtlIHRvIGNyZWF0ZSBhIG5ldyBmb2xkZXIgd2l0aCB0aGUgbmFtZSBvZiB2YWx1ZS5cbiAgICAgIC8vIEl0cyBsb2NhdGlvbiBpbiBzdHJ1Y3R1cmUgaXMgYmFzZWQgb24gbmV3Rm9sZGVyIG9iamVjdFxuICAgICAgb25OZXdGb2xkZXIoeyAuLi5uZXdGb2xkZXIsIHZhbHVlIH0pLnRoZW4oKG5ld0ZvbGRlcklkKSA9PiB7XG4gICAgICAgIGlmIChuZXdGb2xkZXJJZCkge1xuICAgICAgICAgIHNldE1hcmtlZEZvbGRlcklkKG5ld0ZvbGRlcklkKTtcbiAgICAgICAgICBzZXRGb2N1c2VkRm9sZGVySWQobmV3Rm9sZGVySWQpO1xuICAgICAgICAgIC8vIE9wZW4gY3VycmVudCBmb2xkZXIgaW4gY2FzZSBpdCB3YXMgY2xvc2VkLi5cblxuICAgICAgICAgIGlmIChuZXdGb2xkZXIucGFyZW50SWQpIHtcbiAgICAgICAgICAgIHNldE9wZW5Gb2xkZXJzKHVuaXEoWy4uLm9wZW5Gb2xkZXJzLCBuZXdGb2xkZXIucGFyZW50SWRdKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3Qgb25DYW5jZWxOZXdGb2xkZXIgPSAoKSA9PiB7XG4gICAgc2V0TmV3Rm9sZGVyKHVuZGVmaW5lZCk7XG4gIH07XG5cbiAgY29uc3Qgb25NYXJrRm9sZGVyID0gKGlkOiBzdHJpbmcpID0+IHtcbiAgICBzZXRNYXJrZWRGb2xkZXJJZChpZCk7XG4gICAgc2V0Rm9jdXNlZEZvbGRlcklkKGlkKTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIHJlZj17dHJlZXN0cnVjdHVyZVJlZn1cbiAgICAgIG9uS2V5RG93bj17KGUpID0+IHtcbiAgICAgICAgaWYgKHdyYXBwZXJSZWYuY3VycmVudD8uY29udGFpbnMoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkgJiYgS0VZQk9BUkRfS0VZU19PRl9JTlRFUkVTVC5pbmNsdWRlcyhlLmtleSkpIHtcbiAgICAgICAgICBrZXlib2FyZE5hdmlnYXRpb24oe1xuICAgICAgICAgICAgZSxcbiAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICBzZXRGb2N1c2VkRm9sZGVySWQsXG4gICAgICAgICAgICBmb2N1c2VkRm9sZGVySWQsXG4gICAgICAgICAgICBvblRvZ2dsZU9wZW4sXG4gICAgICAgICAgICBvcGVuRm9sZGVycyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfX0+XG4gICAgICA8U3R5bGVkTGFiZWwgaHRtbEZvcj17cm9vdExldmVsSWR9PntsYWJlbH08L1N0eWxlZExhYmVsPlxuICAgICAgPFRyZWVTdHJ1Y3R1cmVTdHlsZWRXcmFwcGVyIHJlZj17d3JhcHBlclJlZn0gaWQ9e3Jvb3RMZXZlbElkfSBhcmlhLWxhYmVsPVwiTWVudSB0cmVlXCIgcm9sZT1cInRyZWVcIiBmcmFtZWQ9e2ZyYW1lZH0+XG4gICAgICAgIDxGb2xkZXJJdGVtc1xuICAgICAgICAgIGlkUGF0aHM9e1tdfVxuICAgICAgICAgIGRhdGE9e2RhdGF9XG4gICAgICAgICAgZWRpdGFibGU9e2VkaXRhYmxlfVxuICAgICAgICAgIG9uVG9nZ2xlT3Blbj17b25Ub2dnbGVPcGVufVxuICAgICAgICAgIG5ld0ZvbGRlcj17bmV3Rm9sZGVyfVxuICAgICAgICAgIG9uQ3JlYXRlTmV3Rm9sZGVyPXtvbkNyZWF0ZU5ld0ZvbGRlcn1cbiAgICAgICAgICBvbkNhbmNlbE5ld0ZvbGRlcj17b25DYW5jZWxOZXdGb2xkZXJ9XG4gICAgICAgICAgb25TYXZlTmV3Rm9sZGVyPXtvblNhdmVOZXdGb2xkZXJ9XG4gICAgICAgICAgb3BlbkZvbGRlcnM9e29wZW5Gb2xkZXJzfVxuICAgICAgICAgIG1hcmtlZEZvbGRlcklkPXttYXJrZWRGb2xkZXJJZH1cbiAgICAgICAgICBvbk1hcmtGb2xkZXI9e29uTWFya0ZvbGRlcn1cbiAgICAgICAgICBvcGVuT25Gb2xkZXJDbGljaz17b3Blbk9uRm9sZGVyQ2xpY2t9XG4gICAgICAgICAgbG9hZGluZz17bG9hZGluZ31cbiAgICAgICAgICBmb2N1c2VkRm9sZGVySWQ9e2ZvY3VzZWRGb2xkZXJJZH1cbiAgICAgICAgICBzZXRGb2N1c2VkRm9sZGVySWQ9e3NldEZvY3VzZWRGb2xkZXJJZH1cbiAgICAgICAgICBmaXJzdExldmVsXG4gICAgICAgICAgZm9sZGVyQ2hpbGQ9e2ZvbGRlckNoaWxkfVxuICAgICAgICAvPlxuICAgICAgPC9UcmVlU3RydWN0dXJlU3R5bGVkV3JhcHBlcj5cbiAgICAgIHtlZGl0YWJsZSAmJiAoXG4gICAgICAgIDxBZGRGb2xkZXJXcmFwcGVyPlxuICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICB0b29sdGlwPXt0KCdteU5kbGEubmV3Rm9sZGVyVW5kZXInLCB7XG4gICAgICAgICAgICAgIGZvbGRlck5hbWU6IGdldEZvbGRlck5hbWUoZGF0YSwgbWFya2VkRm9sZGVySWQpLFxuICAgICAgICAgICAgfSl9PlxuICAgICAgICAgICAgPEFkZEJ1dHRvblxuICAgICAgICAgICAgICBhcmlhLWxhYmVsPXt0KCdteU5kbGEubmV3Rm9sZGVyJyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXRocyA9IGdldFBhdGhPZkZvbGRlcihkYXRhLCBtYXJrZWRGb2xkZXJJZCB8fCAnJyk7XG4gICAgICAgICAgICAgICAgY29uc3QgaWRQYXRocyA9IGdldElkUGF0aHNPZkZvbGRlcihkYXRhLCBtYXJrZWRGb2xkZXJJZCB8fCAnJyk7XG4gICAgICAgICAgICAgICAgc2V0TmV3Rm9sZGVyKHsgaWRQYXRocywgcGFyZW50SWQ6IHBhdGhzW3BhdGhzLmxlbmd0aCAtIDFdIH0pO1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIDwvQWRkRm9sZGVyV3JhcHBlcj5cbiAgICAgICl9XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBUcmVlU3RydWN0dXJlO1xuIl19 */"));
|
|
68
74
|
var AddFolderWrapper = (0, _styledBase["default"])("div", {
|
|
69
75
|
target: "e1dg1gdn1",
|
|
70
76
|
label: "AddFolderWrapper"
|
|
71
|
-
})("display:flex;margin-top:", _core.spacing.xsmall, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
77
|
+
})("display:flex;margin-top:", _core.spacing.xsmall, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRyZWVTdHJ1Y3R1cmUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTRCbUMiLCJmaWxlIjoiVHJlZVN0cnVjdHVyZS50c3giLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAyMi1wcmVzZW50LCBORExBLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEdQTHYzIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKlxuICovXG5cbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlLCB1c2VSZWYsIHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1dWlkIH0gZnJvbSAnQG5kbGEvdXRpbCc7XG5pbXBvcnQgeyBBZGRCdXR0b24gfSBmcm9tICdAbmRsYS9idXR0b24nO1xuaW1wb3J0IFRvb2x0aXAgZnJvbSAnQG5kbGEvdG9vbHRpcCc7XG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgc3BhY2luZywgZm9udHMgfSBmcm9tICdAbmRsYS9jb3JlJztcbmltcG9ydCB7IHVuaXEgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IFRyZWVTdHJ1Y3R1cmVTdHlsZWRXcmFwcGVyIGZyb20gJy4vVHJlZVN0cnVjdHVyZVdyYXBwZXInO1xuaW1wb3J0IEZvbGRlckl0ZW1zIGZyb20gJy4vRm9sZGVySXRlbXMnO1xuaW1wb3J0IHsgZ2V0SWRQYXRoc09mRm9sZGVyLCBnZXRQYXRoT2ZGb2xkZXIsIGdldEZvbGRlck5hbWUgfSBmcm9tICcuL2hlbHBlckZ1bmN0aW9ucyc7XG5pbXBvcnQga2V5Ym9hcmROYXZpZ2F0aW9uLCB7IEtFWUJPQVJEX0tFWVNfT0ZfSU5URVJFU1QgfSBmcm9tICcuL2tleWJvYXJkTmF2aWdhdGlvbi9rZXlib2FyZE5hdmlnYXRpb24nO1xuaW1wb3J0IHsgTmV3Rm9sZGVyUHJvcHMsIFRyZWVTdHJ1Y3R1cmVQcm9wcyB9IGZyb20gJy4vVHJlZVN0cnVjdHVyZS50eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBNQVhfTEVWRUxfRk9SX0ZPTERFUlMgPSA0O1xuXG5jb25zdCBTdHlsZWRMYWJlbCA9IHN0eWxlZC5sYWJlbGBcbiAgZm9udC13ZWlnaHQ6ICR7Zm9udHMud2VpZ2h0LnNlbWlib2xkfTtcbmA7XG5cbmNvbnN0IEFkZEZvbGRlcldyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBtYXJnaW4tdG9wOiAke3NwYWNpbmcueHNtYWxsfTtcbmA7XG5cbmNvbnN0IFRyZWVTdHJ1Y3R1cmUgPSAoe1xuICBkYXRhLFxuICBsYWJlbCxcbiAgZWRpdGFibGUsXG4gIGxvYWRpbmcsXG4gIG9uTmV3Rm9sZGVyLFxuICBvcGVuT25Gb2xkZXJDbGljayxcbiAgZnJhbWVkLFxuICBmb2xkZXJJZE1hcmtlZEJ5RGVmYXVsdCxcbiAgZGVmYXVsdE9wZW5Gb2xkZXJzLFxuICBmb2xkZXJDaGlsZCxcbn06IFRyZWVTdHJ1Y3R1cmVQcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCk7XG4gIGNvbnN0IFtuZXdGb2xkZXIsIHNldE5ld0ZvbGRlcl0gPSB1c2VTdGF0ZTxOZXdGb2xkZXJQcm9wcyB8IHVuZGVmaW5lZD4oKTtcbiAgY29uc3QgW29wZW5Gb2xkZXJzLCBzZXRPcGVuRm9sZGVyc10gPSB1c2VTdGF0ZTxzdHJpbmdbXT4oZGVmYXVsdE9wZW5Gb2xkZXJzIHx8IFtdKTtcbiAgY29uc3QgW2ZvY3VzZWRGb2xkZXJJZCwgc2V0Rm9jdXNlZEZvbGRlcklkXSA9IHVzZVN0YXRlPHN0cmluZyB8IHVuZGVmaW5lZD4oKTtcbiAgY29uc3QgW21hcmtlZEZvbGRlcklkLCBzZXRNYXJrZWRGb2xkZXJJZF0gPSB1c2VTdGF0ZTxzdHJpbmcgfCB1bmRlZmluZWQ+KGZvbGRlcklkTWFya2VkQnlEZWZhdWx0IHx8IGRhdGFbMF0/LmlkKTtcbiAgY29uc3QgdHJlZXN0cnVjdHVyZVJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IHdyYXBwZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCByb290TGV2ZWxJZCA9IHVzZU1lbW8oKCkgPT4gdXVpZCgpLCBbXSk7IC8vIFRPRE86IHVzZSB1c2VJZCBob29rIHdoZW4gd2UgdXBkYXRlIHRvIFJlYWN0IDE4XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZGVmYXVsdE9wZW5Gb2xkZXJzKSB7XG4gICAgICBzZXRPcGVuRm9sZGVycygocHJldikgPT4ge1xuICAgICAgICByZXR1cm4gdW5pcShbLi4uZGVmYXVsdE9wZW5Gb2xkZXJzLCAuLi5wcmV2XSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH0sIFtkZWZhdWx0T3BlbkZvbGRlcnNdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghbG9hZGluZykge1xuICAgICAgc2V0TmV3Rm9sZGVyKHVuZGVmaW5lZCk7XG4gICAgfVxuICB9LCBbbG9hZGluZ10pO1xuXG4gIGNvbnN0IG9uVG9nZ2xlT3BlbiA9IChpZDogc3RyaW5nKSA9PiB7XG4gICAgaWYgKG9wZW5Gb2xkZXJzLmluY2x1ZGVzKGlkKSkge1xuICAgICAgLy8gRGlkIHdlIGp1c3QgY2xvc2VkIGEgZm9sZGVyIHdpdGggYSBtYXJrZWQgZm9sZGVyIGluc2lkZSBpdD9cbiAgICAgIC8vIElmIHNvLCB3ZSBuZWVkIHRvIG1hcmsgdGhlIGZvbGRlciB3ZSBqdXN0IGNsb3NlZC5cbiAgICAgIGlmIChtYXJrZWRGb2xkZXJJZCkge1xuICAgICAgICBjb25zdCBjbG9zaW5nRm9sZGVyUGF0aCA9IGdldFBhdGhPZkZvbGRlcihkYXRhLCBpZCk7XG4gICAgICAgIGNvbnN0IG1hcmtlZEZvbGRlclBhdGggPSBnZXRQYXRoT2ZGb2xkZXIoZGF0YSwgbWFya2VkRm9sZGVySWQpO1xuICAgICAgICBjb25zdCBtYXJrZWRGb2xkZXJJc1N1YlBhdGggPSBjbG9zaW5nRm9sZGVyUGF0aC5ldmVyeShcbiAgICAgICAgICAoZm9sZGVySWQsIF9pbmRleCkgPT4gbWFya2VkRm9sZGVyUGF0aFtfaW5kZXhdID09PSBmb2xkZXJJZCxcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKG1hcmtlZEZvbGRlcklzU3ViUGF0aCkge1xuICAgICAgICAgIHNldE1hcmtlZEZvbGRlcklkKGNsb3NpbmdGb2xkZXJQYXRoW2Nsb3NpbmdGb2xkZXJQYXRoLmxlbmd0aCAtIDFdKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgc2V0T3BlbkZvbGRlcnMob3BlbkZvbGRlcnMuZmlsdGVyKChmb2xkZXIpID0+IGZvbGRlciAhPT0gaWQpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0T3BlbkZvbGRlcnModW5pcShbLi4ub3BlbkZvbGRlcnMsIGlkXSkpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBvbkNyZWF0ZU5ld0ZvbGRlciA9IChwcm9wczogeyBpZFBhdGhzOiBudW1iZXJbXTsgcGFyZW50SWQ/OiBzdHJpbmcgfSkgPT4ge1xuICAgIHNldE5ld0ZvbGRlcihwcm9wcyk7XG4gIH07XG5cbiAgY29uc3Qgb25TYXZlTmV3Rm9sZGVyID0gKHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICBpZiAobmV3Rm9sZGVyKSB7XG4gICAgICAvLyBXZSB3b3VsZCBsaWtlIHRvIGNyZWF0ZSBhIG5ldyBmb2xkZXIgd2l0aCB0aGUgbmFtZSBvZiB2YWx1ZS5cbiAgICAgIC8vIEl0cyBsb2NhdGlvbiBpbiBzdHJ1Y3R1cmUgaXMgYmFzZWQgb24gbmV3Rm9sZGVyIG9iamVjdFxuICAgICAgb25OZXdGb2xkZXIoeyAuLi5uZXdGb2xkZXIsIHZhbHVlIH0pLnRoZW4oKG5ld0ZvbGRlcklkKSA9PiB7XG4gICAgICAgIGlmIChuZXdGb2xkZXJJZCkge1xuICAgICAgICAgIHNldE1hcmtlZEZvbGRlcklkKG5ld0ZvbGRlcklkKTtcbiAgICAgICAgICBzZXRGb2N1c2VkRm9sZGVySWQobmV3Rm9sZGVySWQpO1xuICAgICAgICAgIC8vIE9wZW4gY3VycmVudCBmb2xkZXIgaW4gY2FzZSBpdCB3YXMgY2xvc2VkLi5cblxuICAgICAgICAgIGlmIChuZXdGb2xkZXIucGFyZW50SWQpIHtcbiAgICAgICAgICAgIHNldE9wZW5Gb2xkZXJzKHVuaXEoWy4uLm9wZW5Gb2xkZXJzLCBuZXdGb2xkZXIucGFyZW50SWRdKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3Qgb25DYW5jZWxOZXdGb2xkZXIgPSAoKSA9PiB7XG4gICAgc2V0TmV3Rm9sZGVyKHVuZGVmaW5lZCk7XG4gIH07XG5cbiAgY29uc3Qgb25NYXJrRm9sZGVyID0gKGlkOiBzdHJpbmcpID0+IHtcbiAgICBzZXRNYXJrZWRGb2xkZXJJZChpZCk7XG4gICAgc2V0Rm9jdXNlZEZvbGRlcklkKGlkKTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIHJlZj17dHJlZXN0cnVjdHVyZVJlZn1cbiAgICAgIG9uS2V5RG93bj17KGUpID0+IHtcbiAgICAgICAgaWYgKHdyYXBwZXJSZWYuY3VycmVudD8uY29udGFpbnMoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkgJiYgS0VZQk9BUkRfS0VZU19PRl9JTlRFUkVTVC5pbmNsdWRlcyhlLmtleSkpIHtcbiAgICAgICAgICBrZXlib2FyZE5hdmlnYXRpb24oe1xuICAgICAgICAgICAgZSxcbiAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICBzZXRGb2N1c2VkRm9sZGVySWQsXG4gICAgICAgICAgICBmb2N1c2VkRm9sZGVySWQsXG4gICAgICAgICAgICBvblRvZ2dsZU9wZW4sXG4gICAgICAgICAgICBvcGVuRm9sZGVycyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfX0+XG4gICAgICA8U3R5bGVkTGFiZWwgaHRtbEZvcj17cm9vdExldmVsSWR9PntsYWJlbH08L1N0eWxlZExhYmVsPlxuICAgICAgPFRyZWVTdHJ1Y3R1cmVTdHlsZWRXcmFwcGVyIHJlZj17d3JhcHBlclJlZn0gaWQ9e3Jvb3RMZXZlbElkfSBhcmlhLWxhYmVsPVwiTWVudSB0cmVlXCIgcm9sZT1cInRyZWVcIiBmcmFtZWQ9e2ZyYW1lZH0+XG4gICAgICAgIDxGb2xkZXJJdGVtc1xuICAgICAgICAgIGlkUGF0aHM9e1tdfVxuICAgICAgICAgIGRhdGE9e2RhdGF9XG4gICAgICAgICAgZWRpdGFibGU9e2VkaXRhYmxlfVxuICAgICAgICAgIG9uVG9nZ2xlT3Blbj17b25Ub2dnbGVPcGVufVxuICAgICAgICAgIG5ld0ZvbGRlcj17bmV3Rm9sZGVyfVxuICAgICAgICAgIG9uQ3JlYXRlTmV3Rm9sZGVyPXtvbkNyZWF0ZU5ld0ZvbGRlcn1cbiAgICAgICAgICBvbkNhbmNlbE5ld0ZvbGRlcj17b25DYW5jZWxOZXdGb2xkZXJ9XG4gICAgICAgICAgb25TYXZlTmV3Rm9sZGVyPXtvblNhdmVOZXdGb2xkZXJ9XG4gICAgICAgICAgb3BlbkZvbGRlcnM9e29wZW5Gb2xkZXJzfVxuICAgICAgICAgIG1hcmtlZEZvbGRlcklkPXttYXJrZWRGb2xkZXJJZH1cbiAgICAgICAgICBvbk1hcmtGb2xkZXI9e29uTWFya0ZvbGRlcn1cbiAgICAgICAgICBvcGVuT25Gb2xkZXJDbGljaz17b3Blbk9uRm9sZGVyQ2xpY2t9XG4gICAgICAgICAgbG9hZGluZz17bG9hZGluZ31cbiAgICAgICAgICBmb2N1c2VkRm9sZGVySWQ9e2ZvY3VzZWRGb2xkZXJJZH1cbiAgICAgICAgICBzZXRGb2N1c2VkRm9sZGVySWQ9e3NldEZvY3VzZWRGb2xkZXJJZH1cbiAgICAgICAgICBmaXJzdExldmVsXG4gICAgICAgICAgZm9sZGVyQ2hpbGQ9e2ZvbGRlckNoaWxkfVxuICAgICAgICAvPlxuICAgICAgPC9UcmVlU3RydWN0dXJlU3R5bGVkV3JhcHBlcj5cbiAgICAgIHtlZGl0YWJsZSAmJiAoXG4gICAgICAgIDxBZGRGb2xkZXJXcmFwcGVyPlxuICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICB0b29sdGlwPXt0KCdteU5kbGEubmV3Rm9sZGVyVW5kZXInLCB7XG4gICAgICAgICAgICAgIGZvbGRlck5hbWU6IGdldEZvbGRlck5hbWUoZGF0YSwgbWFya2VkRm9sZGVySWQpLFxuICAgICAgICAgICAgfSl9PlxuICAgICAgICAgICAgPEFkZEJ1dHRvblxuICAgICAgICAgICAgICBhcmlhLWxhYmVsPXt0KCdteU5kbGEubmV3Rm9sZGVyJyl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXRocyA9IGdldFBhdGhPZkZvbGRlcihkYXRhLCBtYXJrZWRGb2xkZXJJZCB8fCAnJyk7XG4gICAgICAgICAgICAgICAgY29uc3QgaWRQYXRocyA9IGdldElkUGF0aHNPZkZvbGRlcihkYXRhLCBtYXJrZWRGb2xkZXJJZCB8fCAnJyk7XG4gICAgICAgICAgICAgICAgc2V0TmV3Rm9sZGVyKHsgaWRQYXRocywgcGFyZW50SWQ6IHBhdGhzW3BhdGhzLmxlbmd0aCAtIDFdIH0pO1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIDwvQWRkRm9sZGVyV3JhcHBlcj5cbiAgICAgICl9XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBUcmVlU3RydWN0dXJlO1xuIl19 */"));
|
|
72
78
|
|
|
73
79
|
var TreeStructure = function TreeStructure(_ref) {
|
|
80
|
+
var _data$;
|
|
81
|
+
|
|
74
82
|
var data = _ref.data,
|
|
75
83
|
label = _ref.label,
|
|
76
84
|
editable = _ref.editable,
|
|
@@ -90,7 +98,7 @@ var TreeStructure = function TreeStructure(_ref) {
|
|
|
90
98
|
newFolder = _useState2[0],
|
|
91
99
|
setNewFolder = _useState2[1];
|
|
92
100
|
|
|
93
|
-
var _useState3 = (0, _react.useState)(
|
|
101
|
+
var _useState3 = (0, _react.useState)(defaultOpenFolders || []),
|
|
94
102
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
95
103
|
openFolders = _useState4[0],
|
|
96
104
|
setOpenFolders = _useState4[1];
|
|
@@ -100,7 +108,7 @@ var TreeStructure = function TreeStructure(_ref) {
|
|
|
100
108
|
focusedFolderId = _useState6[0],
|
|
101
109
|
setFocusedFolderId = _useState6[1];
|
|
102
110
|
|
|
103
|
-
var _useState7 = (0, _react.useState)(folderIdMarkedByDefault || data[0]
|
|
111
|
+
var _useState7 = (0, _react.useState)(folderIdMarkedByDefault || ((_data$ = data[0]) === null || _data$ === void 0 ? void 0 : _data$.id)),
|
|
104
112
|
_useState8 = _slicedToArray(_useState7, 2),
|
|
105
113
|
markedFolderId = _useState8[0],
|
|
106
114
|
setMarkedFolderId = _useState8[1];
|
|
@@ -112,12 +120,11 @@ var TreeStructure = function TreeStructure(_ref) {
|
|
|
112
120
|
}, []); // TODO: use useId hook when we update to React 18
|
|
113
121
|
|
|
114
122
|
(0, _react.useEffect)(function () {
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
return
|
|
123
|
+
if (defaultOpenFolders) {
|
|
124
|
+
setOpenFolders(function (prev) {
|
|
125
|
+
return (0, _lodash.uniq)([].concat(_toConsumableArray(defaultOpenFolders), _toConsumableArray(prev)));
|
|
118
126
|
});
|
|
119
|
-
|
|
120
|
-
});
|
|
127
|
+
}
|
|
121
128
|
}, [defaultOpenFolders]);
|
|
122
129
|
(0, _react.useEffect)(function () {
|
|
123
130
|
if (!loading) {
|
|
@@ -126,79 +133,51 @@ var TreeStructure = function TreeStructure(_ref) {
|
|
|
126
133
|
}, [loading]);
|
|
127
134
|
|
|
128
135
|
var onToggleOpen = function onToggleOpen(id) {
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
if (markedFolderIsSubPath) {
|
|
142
|
-
setMarkedFolderId(closingFolderPath[closingFolderPath.length - 1]);
|
|
143
|
-
}
|
|
136
|
+
if (openFolders.includes(id)) {
|
|
137
|
+
// Did we just closed a folder with a marked folder inside it?
|
|
138
|
+
// If so, we need to mark the folder we just closed.
|
|
139
|
+
if (markedFolderId) {
|
|
140
|
+
var closingFolderPath = (0, _helperFunctions.getPathOfFolder)(data, id);
|
|
141
|
+
var markedFolderPath = (0, _helperFunctions.getPathOfFolder)(data, markedFolderId);
|
|
142
|
+
var markedFolderIsSubPath = closingFolderPath.every(function (folderId, _index) {
|
|
143
|
+
return markedFolderPath[_index] === folderId;
|
|
144
|
+
});
|
|
145
|
+
|
|
146
|
+
if (markedFolderIsSubPath) {
|
|
147
|
+
setMarkedFolderId(closingFolderPath[closingFolderPath.length - 1]);
|
|
144
148
|
}
|
|
145
|
-
} else {
|
|
146
|
-
prev.add(id);
|
|
147
149
|
}
|
|
148
150
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
+
setOpenFolders(openFolders.filter(function (folder) {
|
|
152
|
+
return folder !== id;
|
|
153
|
+
}));
|
|
154
|
+
} else {
|
|
155
|
+
setOpenFolders((0, _lodash.uniq)([].concat(_toConsumableArray(openFolders), [id])));
|
|
156
|
+
}
|
|
151
157
|
};
|
|
152
158
|
|
|
153
159
|
var onCreateNewFolder = function onCreateNewFolder(props) {
|
|
154
160
|
setNewFolder(props);
|
|
155
161
|
};
|
|
156
162
|
|
|
157
|
-
var onSaveNewFolder =
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
return onNewFolder(_objectSpread(_objectSpread({}, newFolder), {}, {
|
|
171
|
-
value: value
|
|
172
|
-
}));
|
|
173
|
-
|
|
174
|
-
case 3:
|
|
175
|
-
newFolderId = _context.sent;
|
|
176
|
-
|
|
177
|
-
if (newFolderId) {
|
|
178
|
-
setMarkedFolderId(newFolderId);
|
|
179
|
-
setFocusedFolderId(newFolderId); // Open current folder in case it was closed..
|
|
180
|
-
|
|
181
|
-
setOpenFolders(function (prev) {
|
|
182
|
-
if (newFolder.parentId) {
|
|
183
|
-
prev.add(newFolder.parentId);
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
return new Set(prev);
|
|
187
|
-
});
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
case 5:
|
|
191
|
-
case "end":
|
|
192
|
-
return _context.stop();
|
|
163
|
+
var onSaveNewFolder = function onSaveNewFolder(value) {
|
|
164
|
+
if (newFolder) {
|
|
165
|
+
// We would like to create a new folder with the name of value.
|
|
166
|
+
// Its location in structure is based on newFolder object
|
|
167
|
+
onNewFolder(_objectSpread(_objectSpread({}, newFolder), {}, {
|
|
168
|
+
value: value
|
|
169
|
+
})).then(function (newFolderId) {
|
|
170
|
+
if (newFolderId) {
|
|
171
|
+
setMarkedFolderId(newFolderId);
|
|
172
|
+
setFocusedFolderId(newFolderId); // Open current folder in case it was closed..
|
|
173
|
+
|
|
174
|
+
if (newFolder.parentId) {
|
|
175
|
+
setOpenFolders((0, _lodash.uniq)([].concat(_toConsumableArray(openFolders), [newFolder.parentId])));
|
|
193
176
|
}
|
|
194
177
|
}
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
return function onSaveNewFolder(_x) {
|
|
199
|
-
return _ref2.apply(this, arguments);
|
|
200
|
-
};
|
|
201
|
-
}();
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
};
|
|
202
181
|
|
|
203
182
|
var onCancelNewFolder = function onCancelNewFolder() {
|
|
204
183
|
setNewFolder(undefined);
|
|
@@ -43,7 +43,7 @@ export declare type onCreateNewFolderProp = ({ idPaths, parentId, }: {
|
|
|
43
43
|
idPaths: number[];
|
|
44
44
|
parentId: string | undefined;
|
|
45
45
|
}) => void;
|
|
46
|
-
export declare type SetOpenFolderProp = React.Dispatch<React.SetStateAction<
|
|
46
|
+
export declare type SetOpenFolderProp = React.Dispatch<React.SetStateAction<string[]>>;
|
|
47
47
|
export declare type SetFocusedFolderId = React.Dispatch<React.SetStateAction<string | undefined>>;
|
|
48
48
|
export declare type FolderChildFuncType = (id: string, tabIndex: number) => ReactNode;
|
|
49
49
|
export interface FolderItemsProps extends CommonFolderProps {
|
|
@@ -52,7 +52,7 @@ export interface FolderItemsProps extends CommonFolderProps {
|
|
|
52
52
|
onCancelNewFolder: () => void;
|
|
53
53
|
onCreateNewFolder: onCreateNewFolderProp;
|
|
54
54
|
newFolder: NewFolderProps | undefined;
|
|
55
|
-
openFolders:
|
|
55
|
+
openFolders: string[];
|
|
56
56
|
markedFolderId?: string;
|
|
57
57
|
onMarkFolder: (id: string) => void;
|
|
58
58
|
idPaths: number[];
|
|
@@ -50,7 +50,7 @@ var traverseUpwards = function traverseUpwards(inital, setFocusedFolderId, paths
|
|
|
50
50
|
};
|
|
51
51
|
|
|
52
52
|
var keyboardNavigation = function keyboardNavigation(_ref) {
|
|
53
|
-
var _document$activeEleme, _elementWithKeyFocus$
|
|
53
|
+
var _document$activeEleme, _elementWithKeyFocus$5;
|
|
54
54
|
|
|
55
55
|
var e = _ref.e,
|
|
56
56
|
data = _ref.data,
|
|
@@ -79,7 +79,7 @@ var keyboardNavigation = function keyboardNavigation(_ref) {
|
|
|
79
79
|
if (dataId === id) {
|
|
80
80
|
elementWithKeyFocus.paths = paths;
|
|
81
81
|
elementWithKeyFocus.index = _index;
|
|
82
|
-
elementWithKeyFocus.isOpen = openFolders.
|
|
82
|
+
elementWithKeyFocus.isOpen = openFolders.includes(dataId) && childData && childData.length > 0;
|
|
83
83
|
elementWithKeyFocus.data = childData;
|
|
84
84
|
elementWithKeyFocus.parent = parent;
|
|
85
85
|
elementWithKeyFocus.parentId = parentId;
|
|
@@ -92,9 +92,11 @@ var keyboardNavigation = function keyboardNavigation(_ref) {
|
|
|
92
92
|
};
|
|
93
93
|
|
|
94
94
|
if (!updatePathToElementWithKeyFocus(data, [], data)) {
|
|
95
|
+
var _data$;
|
|
96
|
+
|
|
95
97
|
// Couldn't find its location in the tree.
|
|
96
98
|
// This should not happen, reset its value to root.
|
|
97
|
-
setFocusedFolderId(e.key === 'ArrowDown' ? data[0]
|
|
99
|
+
setFocusedFolderId(e.key === 'ArrowDown' ? (_data$ = data[0]) === null || _data$ === void 0 ? void 0 : _data$.id : undefined);
|
|
98
100
|
return;
|
|
99
101
|
}
|
|
100
102
|
|
|
@@ -130,7 +132,9 @@ var keyboardNavigation = function keyboardNavigation(_ref) {
|
|
|
130
132
|
}
|
|
131
133
|
|
|
132
134
|
if (!id && e.key === 'ArrowDown') {
|
|
133
|
-
|
|
135
|
+
var _data$2;
|
|
136
|
+
|
|
137
|
+
setFocusedFolderId((_data$2 = data[0]) === null || _data$2 === void 0 ? void 0 : _data$2.id);
|
|
134
138
|
return;
|
|
135
139
|
}
|
|
136
140
|
|
|
@@ -141,9 +145,13 @@ var keyboardNavigation = function keyboardNavigation(_ref) {
|
|
|
141
145
|
|
|
142
146
|
if (e.key === 'ArrowUp') {
|
|
143
147
|
if (elementWithKeyFocus.index > 0) {
|
|
148
|
+
var _elementWithKeyFocus$2;
|
|
149
|
+
|
|
144
150
|
// Move upwards to the parent folder
|
|
145
|
-
setFocusedFolderId(elementWithKeyFocus.parent ? elementWithKeyFocus.parent[elementWithKeyFocus.index - 1].id : undefined);
|
|
151
|
+
setFocusedFolderId(elementWithKeyFocus.parent ? (_elementWithKeyFocus$2 = elementWithKeyFocus.parent[elementWithKeyFocus.index - 1]) === null || _elementWithKeyFocus$2 === void 0 ? void 0 : _elementWithKeyFocus$2.id : undefined);
|
|
146
152
|
} else if (elementWithKeyFocus.paths.length > 0) {
|
|
153
|
+
var _findParent$parentsCu;
|
|
154
|
+
|
|
147
155
|
elementWithKeyFocus.paths.pop();
|
|
148
156
|
var findParent = data;
|
|
149
157
|
elementWithKeyFocus.paths.forEach(function (index) {
|
|
@@ -153,17 +161,19 @@ var keyboardNavigation = function keyboardNavigation(_ref) {
|
|
|
153
161
|
var id = _ref3.id;
|
|
154
162
|
return id === elementWithKeyFocus.parentId;
|
|
155
163
|
});
|
|
156
|
-
setFocusedFolderId(findParent[parentsCurrentIndex].id);
|
|
164
|
+
setFocusedFolderId((_findParent$parentsCu = findParent[parentsCurrentIndex]) === null || _findParent$parentsCu === void 0 ? void 0 : _findParent$parentsCu.id);
|
|
157
165
|
}
|
|
158
166
|
|
|
159
167
|
return;
|
|
160
168
|
}
|
|
161
169
|
|
|
162
170
|
if (elementWithKeyFocus.isOpen) {
|
|
163
|
-
var _elementWithKeyFocus$
|
|
171
|
+
var _elementWithKeyFocus$3;
|
|
172
|
+
|
|
173
|
+
if ((_elementWithKeyFocus$3 = elementWithKeyFocus.data) === null || _elementWithKeyFocus$3 === void 0 ? void 0 : _elementWithKeyFocus$3.length) {
|
|
174
|
+
var _elementWithKeyFocus$4;
|
|
164
175
|
|
|
165
|
-
|
|
166
|
-
setFocusedFolderId(elementWithKeyFocus.data[0].id);
|
|
176
|
+
setFocusedFolderId((_elementWithKeyFocus$4 = elementWithKeyFocus.data[0]) === null || _elementWithKeyFocus$4 === void 0 ? void 0 : _elementWithKeyFocus$4.id);
|
|
167
177
|
} else {
|
|
168
178
|
// move to next child of parent if any... need new traverse :-/
|
|
169
179
|
traverseUpwards(data, setFocusedFolderId, elementWithKeyFocus.paths, elementWithKeyFocus.index);
|
|
@@ -172,9 +182,11 @@ var keyboardNavigation = function keyboardNavigation(_ref) {
|
|
|
172
182
|
return;
|
|
173
183
|
}
|
|
174
184
|
|
|
175
|
-
if (elementWithKeyFocus.parent && elementWithKeyFocus.index < ((_elementWithKeyFocus$
|
|
185
|
+
if (elementWithKeyFocus.parent && elementWithKeyFocus.index < ((_elementWithKeyFocus$5 = elementWithKeyFocus.parent) === null || _elementWithKeyFocus$5 === void 0 ? void 0 : _elementWithKeyFocus$5.length) - 1) {
|
|
186
|
+
var _elementWithKeyFocus$6;
|
|
187
|
+
|
|
176
188
|
// Move downwards to the next child
|
|
177
|
-
setFocusedFolderId(elementWithKeyFocus.parent[elementWithKeyFocus.index + 1].id);
|
|
189
|
+
setFocusedFolderId((_elementWithKeyFocus$6 = elementWithKeyFocus.parent[elementWithKeyFocus.index + 1]) === null || _elementWithKeyFocus$6 === void 0 ? void 0 : _elementWithKeyFocus$6.id);
|
|
178
190
|
return;
|
|
179
191
|
}
|
|
180
192
|
|
|
@@ -11,7 +11,7 @@ export interface KeyboardNavigationProps {
|
|
|
11
11
|
e: React.KeyboardEvent<HTMLElement>;
|
|
12
12
|
data: FolderStructureProps[];
|
|
13
13
|
setFocusedFolderId: SetFocusedFolderId;
|
|
14
|
-
openFolders:
|
|
14
|
+
openFolders: string[];
|
|
15
15
|
onToggleOpen: (id: string) => void;
|
|
16
16
|
focusedFolderId: string | undefined;
|
|
17
17
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ndla/ui",
|
|
3
|
-
"version": "18.0.
|
|
3
|
+
"version": "18.0.1",
|
|
4
4
|
"description": "UI component library for NDLA.",
|
|
5
5
|
"license": "GPL-3.0",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -81,5 +81,5 @@
|
|
|
81
81
|
"publishConfig": {
|
|
82
82
|
"access": "public"
|
|
83
83
|
},
|
|
84
|
-
"gitHead": "
|
|
84
|
+
"gitHead": "841ff68015ec6032bed44a7c25eea2dfd9088a64"
|
|
85
85
|
}
|
|
@@ -10,6 +10,8 @@ import React from 'react';
|
|
|
10
10
|
import styled from '@emotion/styled';
|
|
11
11
|
import Button from '@ndla/button';
|
|
12
12
|
import { Feide } from '@ndla/icons/common';
|
|
13
|
+
import { colors, fonts, spacing } from '@ndla/core';
|
|
14
|
+
import { useTranslation } from 'react-i18next';
|
|
13
15
|
|
|
14
16
|
import AuthModal, { AuthModalProps } from '../User/AuthModal';
|
|
15
17
|
|
|
@@ -18,7 +20,12 @@ type FeideWrapperProps = {
|
|
|
18
20
|
};
|
|
19
21
|
|
|
20
22
|
const StyledButton = styled(Button)<FeideWrapperProps>`
|
|
23
|
+
font-weight: ${fonts.weight.semibold};
|
|
24
|
+
display: flex;
|
|
25
|
+
align-items: center;
|
|
21
26
|
.feide-icon svg {
|
|
27
|
+
margin-left: ${spacing.xsmall};
|
|
28
|
+
fill: ${colors.brand.primary};
|
|
22
29
|
color: ${(props) => (props.inverted ? `#ffffff` : `#000000`)};
|
|
23
30
|
width: 22px;
|
|
24
31
|
height: 22px;
|
|
@@ -35,11 +42,13 @@ interface Props extends AuthModalProps {
|
|
|
35
42
|
}
|
|
36
43
|
|
|
37
44
|
const MastheadAuthModal = ({ inverted, ...rest }: Props) => {
|
|
45
|
+
const { t } = useTranslation();
|
|
38
46
|
return (
|
|
39
47
|
<AuthModal
|
|
40
48
|
{...rest}
|
|
41
49
|
activateButton={
|
|
42
50
|
<StyledButton inverted={inverted} ghostPill={!inverted} ghostPillInverted={inverted} aria-label="Feide">
|
|
51
|
+
{t('myNdla.myNDLA')}
|
|
43
52
|
<span className="feide-icon">
|
|
44
53
|
<Feide />
|
|
45
54
|
</span>
|
|
@@ -124,7 +124,7 @@ const IconCount = ({ type, count, layoutType }: IconCountProps) => {
|
|
|
124
124
|
return (
|
|
125
125
|
<IconCountWrapper type={layoutType}>
|
|
126
126
|
<Icon aria-label={t(`myNdla.${type}s`)} />
|
|
127
|
-
<span>{layoutType === 'block' ? count : t(`myNdla.${type}s`, { count
|
|
127
|
+
<span>{layoutType === 'block' ? count : t(`myNdla.${type}s`, { count })}</span>
|
|
128
128
|
</IconCountWrapper>
|
|
129
129
|
);
|
|
130
130
|
};
|
|
@@ -53,7 +53,7 @@ const FolderItems = ({
|
|
|
53
53
|
<StyledUL role="group" firstLevel={firstLevel}>
|
|
54
54
|
{data.map(({ name, data: dataChildren, id, url, icon }, _index) => {
|
|
55
55
|
const newIdPaths = [...idPaths, _index];
|
|
56
|
-
const isOpen = openFolders?.
|
|
56
|
+
const isOpen = openFolders?.includes(id);
|
|
57
57
|
return (
|
|
58
58
|
<StyledLI key={id} role="treeitem">
|
|
59
59
|
<div>
|