@ndla/ui 18.0.1 → 19.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.
Files changed (47) hide show
  1. package/es/MyNdla/Resource/Folder.js +10 -9
  2. package/es/Resource/BlockResource.js +14 -8
  3. package/es/Resource/ListResource.js +15 -9
  4. package/es/Resource/resourceComponents.js +12 -11
  5. package/es/TreeStructure/FolderItems.js +7 -6
  6. package/es/TreeStructure/TreeStructure.js +16 -9
  7. package/es/locale/messages-en.js +1 -0
  8. package/es/locale/messages-nb.js +1 -0
  9. package/es/locale/messages-nn.js +1 -0
  10. package/es/locale/messages-se.js +1 -0
  11. package/es/locale/messages-sma.js +1 -0
  12. package/lib/MyNdla/Resource/Folder.d.ts +4 -3
  13. package/lib/MyNdla/Resource/Folder.js +10 -9
  14. package/lib/Resource/BlockResource.d.ts +4 -3
  15. package/lib/Resource/BlockResource.js +14 -7
  16. package/lib/Resource/ListResource.d.ts +4 -3
  17. package/lib/Resource/ListResource.js +15 -8
  18. package/lib/Resource/resourceComponents.d.ts +4 -1
  19. package/lib/Resource/resourceComponents.js +14 -13
  20. package/lib/TreeStructure/FolderItems.d.ts +1 -1
  21. package/lib/TreeStructure/FolderItems.js +7 -7
  22. package/lib/TreeStructure/TreeStructure.d.ts +6 -1
  23. package/lib/TreeStructure/TreeStructure.js +16 -9
  24. package/lib/TreeStructure/TreeStructure.types.d.ts +3 -1
  25. package/lib/locale/messages-en.d.ts +1 -0
  26. package/lib/locale/messages-en.js +1 -0
  27. package/lib/locale/messages-nb.d.ts +1 -0
  28. package/lib/locale/messages-nb.js +1 -0
  29. package/lib/locale/messages-nn.d.ts +1 -0
  30. package/lib/locale/messages-nn.js +1 -0
  31. package/lib/locale/messages-se.d.ts +1 -0
  32. package/lib/locale/messages-se.js +1 -0
  33. package/lib/locale/messages-sma.d.ts +1 -0
  34. package/lib/locale/messages-sma.js +1 -0
  35. package/package.json +5 -5
  36. package/src/MyNdla/Resource/Folder.tsx +5 -5
  37. package/src/Resource/BlockResource.tsx +7 -6
  38. package/src/Resource/ListResource.tsx +7 -6
  39. package/src/Resource/resourceComponents.tsx +5 -1
  40. package/src/TreeStructure/FolderItems.tsx +3 -2
  41. package/src/TreeStructure/TreeStructure.tsx +21 -7
  42. package/src/TreeStructure/TreeStructure.types.ts +3 -1
  43. package/src/locale/messages-en.ts +1 -0
  44. package/src/locale/messages-nb.ts +1 -0
  45. package/src/locale/messages-nn.ts +1 -0
  46. package/src/locale/messages-se.ts +1 -0
  47. package/src/locale/messages-sma.ts +1 -0
@@ -70,11 +70,11 @@ exports.MAX_LEVEL_FOR_FOLDERS = MAX_LEVEL_FOR_FOLDERS;
70
70
  var StyledLabel = (0, _styledBase["default"])("label", {
71
71
  target: "e1dg1gdn0",
72
72
  label: "StyledLabel"
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 */"));
73
+ })("font-weight:", _core.fonts.weight.semibold, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRyZWVTdHJ1Y3R1cmUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXdCZ0MiLCJmaWxlIjoiVHJlZVN0cnVjdHVyZS50c3giLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAyMi1wcmVzZW50LCBORExBLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEdQTHYzIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKlxuICovXG5cbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlLCB1c2VSZWYsIHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1dWlkIH0gZnJvbSAnQG5kbGEvdXRpbCc7XG5pbXBvcnQgeyBBZGRCdXR0b24gfSBmcm9tICdAbmRsYS9idXR0b24nO1xuaW1wb3J0IFRvb2x0aXAgZnJvbSAnQG5kbGEvdG9vbHRpcCc7XG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgc3BhY2luZywgZm9udHMgfSBmcm9tICdAbmRsYS9jb3JlJztcbmltcG9ydCB7IHVuaXEgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IFRyZWVTdHJ1Y3R1cmVTdHlsZWRXcmFwcGVyIGZyb20gJy4vVHJlZVN0cnVjdHVyZVdyYXBwZXInO1xuaW1wb3J0IEZvbGRlckl0ZW1zIGZyb20gJy4vRm9sZGVySXRlbXMnO1xuaW1wb3J0IHsgZ2V0SWRQYXRoc09mRm9sZGVyLCBnZXRQYXRoT2ZGb2xkZXIsIGdldEZvbGRlck5hbWUgfSBmcm9tICcuL2hlbHBlckZ1bmN0aW9ucyc7XG5pbXBvcnQga2V5Ym9hcmROYXZpZ2F0aW9uLCB7IEtFWUJPQVJEX0tFWVNfT0ZfSU5URVJFU1QgfSBmcm9tICcuL2tleWJvYXJkTmF2aWdhdGlvbi9rZXlib2FyZE5hdmlnYXRpb24nO1xuaW1wb3J0IHsgTmV3Rm9sZGVyUHJvcHMsIFRyZWVTdHJ1Y3R1cmVQcm9wcyB9IGZyb20gJy4vVHJlZVN0cnVjdHVyZS50eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBNQVhfTEVWRUxfRk9SX0ZPTERFUlMgPSA0O1xuXG5jb25zdCBTdHlsZWRMYWJlbCA9IHN0eWxlZC5sYWJlbGBcbiAgZm9udC13ZWlnaHQ6ICR7Zm9udHMud2VpZ2h0LnNlbWlib2xkfTtcbmA7XG5cbmNvbnN0IEFkZEZvbGRlcldyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBtYXJnaW4tdG9wOiAke3NwYWNpbmcueHNtYWxsfTtcbmA7XG5cbmNvbnN0IFRyZWVTdHJ1Y3R1cmUgPSAoe1xuICBkYXRhLFxuICBsYWJlbCxcbiAgZWRpdGFibGUsXG4gIGxvYWRpbmcsXG4gIG9uTmV3Rm9sZGVyLFxuICBvcGVuT25Gb2xkZXJDbGljayxcbiAgZnJhbWVkLFxuICBmb2xkZXJJZE1hcmtlZEJ5RGVmYXVsdCxcbiAgZGVmYXVsdE9wZW5Gb2xkZXJzLFxuICBmb2xkZXJDaGlsZCxcbiAgbWF4aW11bUxldmVsc09mRm9sZGVyc0FsbG93ZWQsXG59OiBUcmVlU3RydWN0dXJlUHJvcHMpID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigpO1xuICBjb25zdCBbbmV3Rm9sZGVyLCBzZXROZXdGb2xkZXJdID0gdXNlU3RhdGU8TmV3Rm9sZGVyUHJvcHMgfCB1bmRlZmluZWQ+KCk7XG4gIGNvbnN0IFtvcGVuRm9sZGVycywgc2V0T3BlbkZvbGRlcnNdID0gdXNlU3RhdGU8c3RyaW5nW10+KGRlZmF1bHRPcGVuRm9sZGVycyB8fCBbXSk7XG4gIGNvbnN0IFtmb2N1c2VkRm9sZGVySWQsIHNldEZvY3VzZWRGb2xkZXJJZF0gPSB1c2VTdGF0ZTxzdHJpbmcgfCB1bmRlZmluZWQ+KCk7XG4gIGNvbnN0IFttYXJrZWRGb2xkZXJJZCwgc2V0TWFya2VkRm9sZGVySWRdID0gdXNlU3RhdGU8c3RyaW5nIHwgdW5kZWZpbmVkPihmb2xkZXJJZE1hcmtlZEJ5RGVmYXVsdCB8fCBkYXRhWzBdPy5pZCk7XG4gIGNvbnN0IHRyZWVzdHJ1Y3R1cmVSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCB3cmFwcGVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgY29uc3Qgcm9vdExldmVsSWQgPSB1c2VNZW1vKCgpID0+IHV1aWQoKSwgW10pOyAvLyBUT0RPOiB1c2UgdXNlSWQgaG9vayB3aGVuIHdlIHVwZGF0ZSB0byBSZWFjdCAxOFxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGRlZmF1bHRPcGVuRm9sZGVycykge1xuICAgICAgc2V0T3BlbkZvbGRlcnMoKHByZXYpID0+IHtcbiAgICAgICAgcmV0dXJuIHVuaXEoWy4uLmRlZmF1bHRPcGVuRm9sZGVycywgLi4ucHJldl0pO1xuICAgICAgfSk7XG4gICAgfVxuICB9LCBbZGVmYXVsdE9wZW5Gb2xkZXJzXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWxvYWRpbmcpIHtcbiAgICAgIHNldE5ld0ZvbGRlcih1bmRlZmluZWQpO1xuICAgIH1cbiAgfSwgW2xvYWRpbmddKTtcblxuICBjb25zdCBvblRvZ2dsZU9wZW4gPSAoaWQ6IHN0cmluZykgPT4ge1xuICAgIGlmIChvcGVuRm9sZGVycy5pbmNsdWRlcyhpZCkpIHtcbiAgICAgIC8vIERpZCB3ZSBqdXN0IGNsb3NlZCBhIGZvbGRlciB3aXRoIGEgbWFya2VkIGZvbGRlciBpbnNpZGUgaXQ/XG4gICAgICAvLyBJZiBzbywgd2UgbmVlZCB0byBtYXJrIHRoZSBmb2xkZXIgd2UganVzdCBjbG9zZWQuXG4gICAgICBpZiAobWFya2VkRm9sZGVySWQpIHtcbiAgICAgICAgY29uc3QgY2xvc2luZ0ZvbGRlclBhdGggPSBnZXRQYXRoT2ZGb2xkZXIoZGF0YSwgaWQpO1xuICAgICAgICBjb25zdCBtYXJrZWRGb2xkZXJQYXRoID0gZ2V0UGF0aE9mRm9sZGVyKGRhdGEsIG1hcmtlZEZvbGRlcklkKTtcbiAgICAgICAgY29uc3QgbWFya2VkRm9sZGVySXNTdWJQYXRoID0gY2xvc2luZ0ZvbGRlclBhdGguZXZlcnkoXG4gICAgICAgICAgKGZvbGRlcklkLCBfaW5kZXgpID0+IG1hcmtlZEZvbGRlclBhdGhbX2luZGV4XSA9PT0gZm9sZGVySWQsXG4gICAgICAgICk7XG4gICAgICAgIGlmIChtYXJrZWRGb2xkZXJJc1N1YlBhdGgpIHtcbiAgICAgICAgICBzZXRNYXJrZWRGb2xkZXJJZChjbG9zaW5nRm9sZGVyUGF0aFtjbG9zaW5nRm9sZGVyUGF0aC5sZW5ndGggLSAxXSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHNldE9wZW5Gb2xkZXJzKG9wZW5Gb2xkZXJzLmZpbHRlcigoZm9sZGVyKSA9PiBmb2xkZXIgIT09IGlkKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldE9wZW5Gb2xkZXJzKHVuaXEoWy4uLm9wZW5Gb2xkZXJzLCBpZF0pKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3Qgb25DcmVhdGVOZXdGb2xkZXIgPSAocHJvcHM6IHsgaWRQYXRoczogbnVtYmVyW107IHBhcmVudElkPzogc3RyaW5nIH0pID0+IHtcbiAgICBzZXROZXdGb2xkZXIocHJvcHMpO1xuICB9O1xuXG4gIGNvbnN0IG9uU2F2ZU5ld0ZvbGRlciA9ICh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgaWYgKG5ld0ZvbGRlcikge1xuICAgICAgLy8gV2Ugd291bGQgbGlrZSB0byBjcmVhdGUgYSBuZXcgZm9sZGVyIHdpdGggdGhlIG5hbWUgb2YgdmFsdWUuXG4gICAgICAvLyBJdHMgbG9jYXRpb24gaW4gc3RydWN0dXJlIGlzIGJhc2VkIG9uIG5ld0ZvbGRlciBvYmplY3RcbiAgICAgIG9uTmV3Rm9sZGVyKHsgLi4ubmV3Rm9sZGVyLCB2YWx1ZSB9KS50aGVuKChuZXdGb2xkZXJJZCkgPT4ge1xuICAgICAgICBpZiAobmV3Rm9sZGVySWQpIHtcbiAgICAgICAgICBzZXRNYXJrZWRGb2xkZXJJZChuZXdGb2xkZXJJZCk7XG4gICAgICAgICAgc2V0Rm9jdXNlZEZvbGRlcklkKG5ld0ZvbGRlcklkKTtcbiAgICAgICAgICAvLyBPcGVuIGN1cnJlbnQgZm9sZGVyIGluIGNhc2UgaXQgd2FzIGNsb3NlZC4uXG5cbiAgICAgICAgICBpZiAobmV3Rm9sZGVyLnBhcmVudElkKSB7XG4gICAgICAgICAgICBzZXRPcGVuRm9sZGVycyh1bmlxKFsuLi5vcGVuRm9sZGVycywgbmV3Rm9sZGVyLnBhcmVudElkXSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IG9uQ2FuY2VsTmV3Rm9sZGVyID0gKCkgPT4ge1xuICAgIHNldE5ld0ZvbGRlcih1bmRlZmluZWQpO1xuICB9O1xuXG4gIGNvbnN0IG9uTWFya0ZvbGRlciA9IChpZDogc3RyaW5nKSA9PiB7XG4gICAgc2V0TWFya2VkRm9sZGVySWQoaWQpO1xuICAgIHNldEZvY3VzZWRGb2xkZXJJZChpZCk7XG4gIH07XG5cbiAgY29uc3QgcGF0aHMgPSBnZXRQYXRoT2ZGb2xkZXIoZGF0YSwgbWFya2VkRm9sZGVySWQgfHwgJycpO1xuICBjb25zdCBjYW5BZGRGb2xkZXIgPSBlZGl0YWJsZSAmJiBwYXRocy5sZW5ndGggPCAobWF4aW11bUxldmVsc09mRm9sZGVyc0FsbG93ZWQgfHwgMSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICByZWY9e3RyZWVzdHJ1Y3R1cmVSZWZ9XG4gICAgICBvbktleURvd249eyhlKSA9PiB7XG4gICAgICAgIGlmICh3cmFwcGVyUmVmLmN1cnJlbnQ/LmNvbnRhaW5zKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpICYmIEtFWUJPQVJEX0tFWVNfT0ZfSU5URVJFU1QuaW5jbHVkZXMoZS5rZXkpKSB7XG4gICAgICAgICAga2V5Ym9hcmROYXZpZ2F0aW9uKHtcbiAgICAgICAgICAgIGUsXG4gICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgc2V0Rm9jdXNlZEZvbGRlcklkLFxuICAgICAgICAgICAgZm9jdXNlZEZvbGRlcklkLFxuICAgICAgICAgICAgb25Ub2dnbGVPcGVuLFxuICAgICAgICAgICAgb3BlbkZvbGRlcnMsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH19PlxuICAgICAge2xhYmVsICYmIDxTdHlsZWRMYWJlbCBodG1sRm9yPXtyb290TGV2ZWxJZH0+e2xhYmVsfTwvU3R5bGVkTGFiZWw+fVxuICAgICAgPFRyZWVTdHJ1Y3R1cmVTdHlsZWRXcmFwcGVyIHJlZj17d3JhcHBlclJlZn0gaWQ9e3Jvb3RMZXZlbElkfSBhcmlhLWxhYmVsPVwiTWVudSB0cmVlXCIgcm9sZT1cInRyZWVcIiBmcmFtZWQ9e2ZyYW1lZH0+XG4gICAgICAgIDxGb2xkZXJJdGVtc1xuICAgICAgICAgIGlkUGF0aHM9e1tdfVxuICAgICAgICAgIGRhdGE9e2RhdGF9XG4gICAgICAgICAgZWRpdGFibGU9e2VkaXRhYmxlfVxuICAgICAgICAgIG9uVG9nZ2xlT3Blbj17b25Ub2dnbGVPcGVufVxuICAgICAgICAgIG5ld0ZvbGRlcj17bmV3Rm9sZGVyfVxuICAgICAgICAgIG9uQ3JlYXRlTmV3Rm9sZGVyPXtvbkNyZWF0ZU5ld0ZvbGRlcn1cbiAgICAgICAgICBvbkNhbmNlbE5ld0ZvbGRlcj17b25DYW5jZWxOZXdGb2xkZXJ9XG4gICAgICAgICAgb25TYXZlTmV3Rm9sZGVyPXtvblNhdmVOZXdGb2xkZXJ9XG4gICAgICAgICAgb3BlbkZvbGRlcnM9e29wZW5Gb2xkZXJzfVxuICAgICAgICAgIG1hcmtlZEZvbGRlcklkPXttYXJrZWRGb2xkZXJJZH1cbiAgICAgICAgICBvbk1hcmtGb2xkZXI9e29uTWFya0ZvbGRlcn1cbiAgICAgICAgICBvcGVuT25Gb2xkZXJDbGljaz17b3Blbk9uRm9sZGVyQ2xpY2t9XG4gICAgICAgICAgbG9hZGluZz17bG9hZGluZ31cbiAgICAgICAgICBmb2N1c2VkRm9sZGVySWQ9e2ZvY3VzZWRGb2xkZXJJZH1cbiAgICAgICAgICBzZXRGb2N1c2VkRm9sZGVySWQ9e3NldEZvY3VzZWRGb2xkZXJJZH1cbiAgICAgICAgICBmaXJzdExldmVsXG4gICAgICAgICAgZm9sZGVyQ2hpbGQ9e2ZvbGRlckNoaWxkfVxuICAgICAgICAgIG1heGltdW1MZXZlbHNPZkZvbGRlcnNBbGxvd2VkPXttYXhpbXVtTGV2ZWxzT2ZGb2xkZXJzQWxsb3dlZH1cbiAgICAgICAgLz5cbiAgICAgIDwvVHJlZVN0cnVjdHVyZVN0eWxlZFdyYXBwZXI+XG4gICAgICB7ZWRpdGFibGUgJiYgKFxuICAgICAgICA8QWRkRm9sZGVyV3JhcHBlcj5cbiAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgdG9vbHRpcD17XG4gICAgICAgICAgICAgIGNhbkFkZEZvbGRlclxuICAgICAgICAgICAgICAgID8gdCgnbXlOZGxhLm5ld0ZvbGRlclVuZGVyJywge1xuICAgICAgICAgICAgICAgICAgICBmb2xkZXJOYW1lOiBnZXRGb2xkZXJOYW1lKGRhdGEsIG1hcmtlZEZvbGRlcklkKSxcbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgOiB0KCdteU5kbGEubWF4Rm9sZGVyc0FscmVhZHlBZGRlZCcpXG4gICAgICAgICAgICB9PlxuICAgICAgICAgICAgPEFkZEJ1dHRvblxuICAgICAgICAgICAgICBkaXNhYmxlZD17IWNhbkFkZEZvbGRlcn1cbiAgICAgICAgICAgICAgYXJpYS1sYWJlbD17dCgnbXlOZGxhLm5ld0ZvbGRlcicpfVxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaWRQYXRocyA9IGdldElkUGF0aHNPZkZvbGRlcihkYXRhLCBtYXJrZWRGb2xkZXJJZCB8fCAnJyk7XG4gICAgICAgICAgICAgICAgc2V0TmV3Rm9sZGVyKHsgaWRQYXRocywgcGFyZW50SWQ6IHBhdGhzW3BhdGhzLmxlbmd0aCAtIDFdIH0pO1xuICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAge3QoJ215TmRsYS5uZXdGb2xkZXInKX1cbiAgICAgICAgICAgIDwvQWRkQnV0dG9uPlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgPC9BZGRGb2xkZXJXcmFwcGVyPlxuICAgICAgKX1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cblRyZWVTdHJ1Y3R1cmUuZGVmYXVsdFByb3BzID0ge1xuICBtYXhpbXVtTGV2ZWxzT2ZGb2xkZXJzQWxsb3dlZDogTUFYX0xFVkVMX0ZPUl9GT0xERVJTLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgVHJlZVN0cnVjdHVyZTtcbiJdfQ== */"));
74
74
  var AddFolderWrapper = (0, _styledBase["default"])("div", {
75
75
  target: "e1dg1gdn1",
76
76
  label: "AddFolderWrapper"
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 */"));
77
+ })("display:flex;margin-top:", _core.spacing.xsmall, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRyZWVTdHJ1Y3R1cmUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTRCbUMiLCJmaWxlIjoiVHJlZVN0cnVjdHVyZS50c3giLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAyMi1wcmVzZW50LCBORExBLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEdQTHYzIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKlxuICovXG5cbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlLCB1c2VSZWYsIHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1dWlkIH0gZnJvbSAnQG5kbGEvdXRpbCc7XG5pbXBvcnQgeyBBZGRCdXR0b24gfSBmcm9tICdAbmRsYS9idXR0b24nO1xuaW1wb3J0IFRvb2x0aXAgZnJvbSAnQG5kbGEvdG9vbHRpcCc7XG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgc3BhY2luZywgZm9udHMgfSBmcm9tICdAbmRsYS9jb3JlJztcbmltcG9ydCB7IHVuaXEgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IFRyZWVTdHJ1Y3R1cmVTdHlsZWRXcmFwcGVyIGZyb20gJy4vVHJlZVN0cnVjdHVyZVdyYXBwZXInO1xuaW1wb3J0IEZvbGRlckl0ZW1zIGZyb20gJy4vRm9sZGVySXRlbXMnO1xuaW1wb3J0IHsgZ2V0SWRQYXRoc09mRm9sZGVyLCBnZXRQYXRoT2ZGb2xkZXIsIGdldEZvbGRlck5hbWUgfSBmcm9tICcuL2hlbHBlckZ1bmN0aW9ucyc7XG5pbXBvcnQga2V5Ym9hcmROYXZpZ2F0aW9uLCB7IEtFWUJPQVJEX0tFWVNfT0ZfSU5URVJFU1QgfSBmcm9tICcuL2tleWJvYXJkTmF2aWdhdGlvbi9rZXlib2FyZE5hdmlnYXRpb24nO1xuaW1wb3J0IHsgTmV3Rm9sZGVyUHJvcHMsIFRyZWVTdHJ1Y3R1cmVQcm9wcyB9IGZyb20gJy4vVHJlZVN0cnVjdHVyZS50eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBNQVhfTEVWRUxfRk9SX0ZPTERFUlMgPSA0O1xuXG5jb25zdCBTdHlsZWRMYWJlbCA9IHN0eWxlZC5sYWJlbGBcbiAgZm9udC13ZWlnaHQ6ICR7Zm9udHMud2VpZ2h0LnNlbWlib2xkfTtcbmA7XG5cbmNvbnN0IEFkZEZvbGRlcldyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBtYXJnaW4tdG9wOiAke3NwYWNpbmcueHNtYWxsfTtcbmA7XG5cbmNvbnN0IFRyZWVTdHJ1Y3R1cmUgPSAoe1xuICBkYXRhLFxuICBsYWJlbCxcbiAgZWRpdGFibGUsXG4gIGxvYWRpbmcsXG4gIG9uTmV3Rm9sZGVyLFxuICBvcGVuT25Gb2xkZXJDbGljayxcbiAgZnJhbWVkLFxuICBmb2xkZXJJZE1hcmtlZEJ5RGVmYXVsdCxcbiAgZGVmYXVsdE9wZW5Gb2xkZXJzLFxuICBmb2xkZXJDaGlsZCxcbiAgbWF4aW11bUxldmVsc09mRm9sZGVyc0FsbG93ZWQsXG59OiBUcmVlU3RydWN0dXJlUHJvcHMpID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigpO1xuICBjb25zdCBbbmV3Rm9sZGVyLCBzZXROZXdGb2xkZXJdID0gdXNlU3RhdGU8TmV3Rm9sZGVyUHJvcHMgfCB1bmRlZmluZWQ+KCk7XG4gIGNvbnN0IFtvcGVuRm9sZGVycywgc2V0T3BlbkZvbGRlcnNdID0gdXNlU3RhdGU8c3RyaW5nW10+KGRlZmF1bHRPcGVuRm9sZGVycyB8fCBbXSk7XG4gIGNvbnN0IFtmb2N1c2VkRm9sZGVySWQsIHNldEZvY3VzZWRGb2xkZXJJZF0gPSB1c2VTdGF0ZTxzdHJpbmcgfCB1bmRlZmluZWQ+KCk7XG4gIGNvbnN0IFttYXJrZWRGb2xkZXJJZCwgc2V0TWFya2VkRm9sZGVySWRdID0gdXNlU3RhdGU8c3RyaW5nIHwgdW5kZWZpbmVkPihmb2xkZXJJZE1hcmtlZEJ5RGVmYXVsdCB8fCBkYXRhWzBdPy5pZCk7XG4gIGNvbnN0IHRyZWVzdHJ1Y3R1cmVSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCB3cmFwcGVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgY29uc3Qgcm9vdExldmVsSWQgPSB1c2VNZW1vKCgpID0+IHV1aWQoKSwgW10pOyAvLyBUT0RPOiB1c2UgdXNlSWQgaG9vayB3aGVuIHdlIHVwZGF0ZSB0byBSZWFjdCAxOFxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGRlZmF1bHRPcGVuRm9sZGVycykge1xuICAgICAgc2V0T3BlbkZvbGRlcnMoKHByZXYpID0+IHtcbiAgICAgICAgcmV0dXJuIHVuaXEoWy4uLmRlZmF1bHRPcGVuRm9sZGVycywgLi4ucHJldl0pO1xuICAgICAgfSk7XG4gICAgfVxuICB9LCBbZGVmYXVsdE9wZW5Gb2xkZXJzXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWxvYWRpbmcpIHtcbiAgICAgIHNldE5ld0ZvbGRlcih1bmRlZmluZWQpO1xuICAgIH1cbiAgfSwgW2xvYWRpbmddKTtcblxuICBjb25zdCBvblRvZ2dsZU9wZW4gPSAoaWQ6IHN0cmluZykgPT4ge1xuICAgIGlmIChvcGVuRm9sZGVycy5pbmNsdWRlcyhpZCkpIHtcbiAgICAgIC8vIERpZCB3ZSBqdXN0IGNsb3NlZCBhIGZvbGRlciB3aXRoIGEgbWFya2VkIGZvbGRlciBpbnNpZGUgaXQ/XG4gICAgICAvLyBJZiBzbywgd2UgbmVlZCB0byBtYXJrIHRoZSBmb2xkZXIgd2UganVzdCBjbG9zZWQuXG4gICAgICBpZiAobWFya2VkRm9sZGVySWQpIHtcbiAgICAgICAgY29uc3QgY2xvc2luZ0ZvbGRlclBhdGggPSBnZXRQYXRoT2ZGb2xkZXIoZGF0YSwgaWQpO1xuICAgICAgICBjb25zdCBtYXJrZWRGb2xkZXJQYXRoID0gZ2V0UGF0aE9mRm9sZGVyKGRhdGEsIG1hcmtlZEZvbGRlcklkKTtcbiAgICAgICAgY29uc3QgbWFya2VkRm9sZGVySXNTdWJQYXRoID0gY2xvc2luZ0ZvbGRlclBhdGguZXZlcnkoXG4gICAgICAgICAgKGZvbGRlcklkLCBfaW5kZXgpID0+IG1hcmtlZEZvbGRlclBhdGhbX2luZGV4XSA9PT0gZm9sZGVySWQsXG4gICAgICAgICk7XG4gICAgICAgIGlmIChtYXJrZWRGb2xkZXJJc1N1YlBhdGgpIHtcbiAgICAgICAgICBzZXRNYXJrZWRGb2xkZXJJZChjbG9zaW5nRm9sZGVyUGF0aFtjbG9zaW5nRm9sZGVyUGF0aC5sZW5ndGggLSAxXSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHNldE9wZW5Gb2xkZXJzKG9wZW5Gb2xkZXJzLmZpbHRlcigoZm9sZGVyKSA9PiBmb2xkZXIgIT09IGlkKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldE9wZW5Gb2xkZXJzKHVuaXEoWy4uLm9wZW5Gb2xkZXJzLCBpZF0pKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3Qgb25DcmVhdGVOZXdGb2xkZXIgPSAocHJvcHM6IHsgaWRQYXRoczogbnVtYmVyW107IHBhcmVudElkPzogc3RyaW5nIH0pID0+IHtcbiAgICBzZXROZXdGb2xkZXIocHJvcHMpO1xuICB9O1xuXG4gIGNvbnN0IG9uU2F2ZU5ld0ZvbGRlciA9ICh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgaWYgKG5ld0ZvbGRlcikge1xuICAgICAgLy8gV2Ugd291bGQgbGlrZSB0byBjcmVhdGUgYSBuZXcgZm9sZGVyIHdpdGggdGhlIG5hbWUgb2YgdmFsdWUuXG4gICAgICAvLyBJdHMgbG9jYXRpb24gaW4gc3RydWN0dXJlIGlzIGJhc2VkIG9uIG5ld0ZvbGRlciBvYmplY3RcbiAgICAgIG9uTmV3Rm9sZGVyKHsgLi4ubmV3Rm9sZGVyLCB2YWx1ZSB9KS50aGVuKChuZXdGb2xkZXJJZCkgPT4ge1xuICAgICAgICBpZiAobmV3Rm9sZGVySWQpIHtcbiAgICAgICAgICBzZXRNYXJrZWRGb2xkZXJJZChuZXdGb2xkZXJJZCk7XG4gICAgICAgICAgc2V0Rm9jdXNlZEZvbGRlcklkKG5ld0ZvbGRlcklkKTtcbiAgICAgICAgICAvLyBPcGVuIGN1cnJlbnQgZm9sZGVyIGluIGNhc2UgaXQgd2FzIGNsb3NlZC4uXG5cbiAgICAgICAgICBpZiAobmV3Rm9sZGVyLnBhcmVudElkKSB7XG4gICAgICAgICAgICBzZXRPcGVuRm9sZGVycyh1bmlxKFsuLi5vcGVuRm9sZGVycywgbmV3Rm9sZGVyLnBhcmVudElkXSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IG9uQ2FuY2VsTmV3Rm9sZGVyID0gKCkgPT4ge1xuICAgIHNldE5ld0ZvbGRlcih1bmRlZmluZWQpO1xuICB9O1xuXG4gIGNvbnN0IG9uTWFya0ZvbGRlciA9IChpZDogc3RyaW5nKSA9PiB7XG4gICAgc2V0TWFya2VkRm9sZGVySWQoaWQpO1xuICAgIHNldEZvY3VzZWRGb2xkZXJJZChpZCk7XG4gIH07XG5cbiAgY29uc3QgcGF0aHMgPSBnZXRQYXRoT2ZGb2xkZXIoZGF0YSwgbWFya2VkRm9sZGVySWQgfHwgJycpO1xuICBjb25zdCBjYW5BZGRGb2xkZXIgPSBlZGl0YWJsZSAmJiBwYXRocy5sZW5ndGggPCAobWF4aW11bUxldmVsc09mRm9sZGVyc0FsbG93ZWQgfHwgMSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICByZWY9e3RyZWVzdHJ1Y3R1cmVSZWZ9XG4gICAgICBvbktleURvd249eyhlKSA9PiB7XG4gICAgICAgIGlmICh3cmFwcGVyUmVmLmN1cnJlbnQ/LmNvbnRhaW5zKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpICYmIEtFWUJPQVJEX0tFWVNfT0ZfSU5URVJFU1QuaW5jbHVkZXMoZS5rZXkpKSB7XG4gICAgICAgICAga2V5Ym9hcmROYXZpZ2F0aW9uKHtcbiAgICAgICAgICAgIGUsXG4gICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgc2V0Rm9jdXNlZEZvbGRlcklkLFxuICAgICAgICAgICAgZm9jdXNlZEZvbGRlcklkLFxuICAgICAgICAgICAgb25Ub2dnbGVPcGVuLFxuICAgICAgICAgICAgb3BlbkZvbGRlcnMsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH19PlxuICAgICAge2xhYmVsICYmIDxTdHlsZWRMYWJlbCBodG1sRm9yPXtyb290TGV2ZWxJZH0+e2xhYmVsfTwvU3R5bGVkTGFiZWw+fVxuICAgICAgPFRyZWVTdHJ1Y3R1cmVTdHlsZWRXcmFwcGVyIHJlZj17d3JhcHBlclJlZn0gaWQ9e3Jvb3RMZXZlbElkfSBhcmlhLWxhYmVsPVwiTWVudSB0cmVlXCIgcm9sZT1cInRyZWVcIiBmcmFtZWQ9e2ZyYW1lZH0+XG4gICAgICAgIDxGb2xkZXJJdGVtc1xuICAgICAgICAgIGlkUGF0aHM9e1tdfVxuICAgICAgICAgIGRhdGE9e2RhdGF9XG4gICAgICAgICAgZWRpdGFibGU9e2VkaXRhYmxlfVxuICAgICAgICAgIG9uVG9nZ2xlT3Blbj17b25Ub2dnbGVPcGVufVxuICAgICAgICAgIG5ld0ZvbGRlcj17bmV3Rm9sZGVyfVxuICAgICAgICAgIG9uQ3JlYXRlTmV3Rm9sZGVyPXtvbkNyZWF0ZU5ld0ZvbGRlcn1cbiAgICAgICAgICBvbkNhbmNlbE5ld0ZvbGRlcj17b25DYW5jZWxOZXdGb2xkZXJ9XG4gICAgICAgICAgb25TYXZlTmV3Rm9sZGVyPXtvblNhdmVOZXdGb2xkZXJ9XG4gICAgICAgICAgb3BlbkZvbGRlcnM9e29wZW5Gb2xkZXJzfVxuICAgICAgICAgIG1hcmtlZEZvbGRlcklkPXttYXJrZWRGb2xkZXJJZH1cbiAgICAgICAgICBvbk1hcmtGb2xkZXI9e29uTWFya0ZvbGRlcn1cbiAgICAgICAgICBvcGVuT25Gb2xkZXJDbGljaz17b3Blbk9uRm9sZGVyQ2xpY2t9XG4gICAgICAgICAgbG9hZGluZz17bG9hZGluZ31cbiAgICAgICAgICBmb2N1c2VkRm9sZGVySWQ9e2ZvY3VzZWRGb2xkZXJJZH1cbiAgICAgICAgICBzZXRGb2N1c2VkRm9sZGVySWQ9e3NldEZvY3VzZWRGb2xkZXJJZH1cbiAgICAgICAgICBmaXJzdExldmVsXG4gICAgICAgICAgZm9sZGVyQ2hpbGQ9e2ZvbGRlckNoaWxkfVxuICAgICAgICAgIG1heGltdW1MZXZlbHNPZkZvbGRlcnNBbGxvd2VkPXttYXhpbXVtTGV2ZWxzT2ZGb2xkZXJzQWxsb3dlZH1cbiAgICAgICAgLz5cbiAgICAgIDwvVHJlZVN0cnVjdHVyZVN0eWxlZFdyYXBwZXI+XG4gICAgICB7ZWRpdGFibGUgJiYgKFxuICAgICAgICA8QWRkRm9sZGVyV3JhcHBlcj5cbiAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgdG9vbHRpcD17XG4gICAgICAgICAgICAgIGNhbkFkZEZvbGRlclxuICAgICAgICAgICAgICAgID8gdCgnbXlOZGxhLm5ld0ZvbGRlclVuZGVyJywge1xuICAgICAgICAgICAgICAgICAgICBmb2xkZXJOYW1lOiBnZXRGb2xkZXJOYW1lKGRhdGEsIG1hcmtlZEZvbGRlcklkKSxcbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgOiB0KCdteU5kbGEubWF4Rm9sZGVyc0FscmVhZHlBZGRlZCcpXG4gICAgICAgICAgICB9PlxuICAgICAgICAgICAgPEFkZEJ1dHRvblxuICAgICAgICAgICAgICBkaXNhYmxlZD17IWNhbkFkZEZvbGRlcn1cbiAgICAgICAgICAgICAgYXJpYS1sYWJlbD17dCgnbXlOZGxhLm5ld0ZvbGRlcicpfVxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaWRQYXRocyA9IGdldElkUGF0aHNPZkZvbGRlcihkYXRhLCBtYXJrZWRGb2xkZXJJZCB8fCAnJyk7XG4gICAgICAgICAgICAgICAgc2V0TmV3Rm9sZGVyKHsgaWRQYXRocywgcGFyZW50SWQ6IHBhdGhzW3BhdGhzLmxlbmd0aCAtIDFdIH0pO1xuICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAge3QoJ215TmRsYS5uZXdGb2xkZXInKX1cbiAgICAgICAgICAgIDwvQWRkQnV0dG9uPlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgPC9BZGRGb2xkZXJXcmFwcGVyPlxuICAgICAgKX1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cblRyZWVTdHJ1Y3R1cmUuZGVmYXVsdFByb3BzID0ge1xuICBtYXhpbXVtTGV2ZWxzT2ZGb2xkZXJzQWxsb3dlZDogTUFYX0xFVkVMX0ZPUl9GT0xERVJTLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgVHJlZVN0cnVjdHVyZTtcbiJdfQ== */"));
78
78
 
79
79
  var TreeStructure = function TreeStructure(_ref) {
80
80
  var _data$;
@@ -88,7 +88,8 @@ var TreeStructure = function TreeStructure(_ref) {
88
88
  framed = _ref.framed,
89
89
  folderIdMarkedByDefault = _ref.folderIdMarkedByDefault,
90
90
  defaultOpenFolders = _ref.defaultOpenFolders,
91
- folderChild = _ref.folderChild;
91
+ folderChild = _ref.folderChild,
92
+ maximumLevelsOfFoldersAllowed = _ref.maximumLevelsOfFoldersAllowed;
92
93
 
93
94
  var _useTranslation = (0, _reactI18next.useTranslation)(),
94
95
  t = _useTranslation.t;
@@ -188,6 +189,8 @@ var TreeStructure = function TreeStructure(_ref) {
188
189
  setFocusedFolderId(id);
189
190
  };
190
191
 
192
+ var paths = (0, _helperFunctions.getPathOfFolder)(data, markedFolderId || '');
193
+ var canAddFolder = editable && paths.length < (maximumLevelsOfFoldersAllowed || 1);
191
194
  return (0, _core2.jsx)("div", {
192
195
  ref: treestructureRef,
193
196
  onKeyDown: function onKeyDown(e) {
@@ -204,7 +207,7 @@ var TreeStructure = function TreeStructure(_ref) {
204
207
  });
205
208
  }
206
209
  }
207
- }, (0, _core2.jsx)(StyledLabel, {
210
+ }, label && (0, _core2.jsx)(StyledLabel, {
208
211
  htmlFor: rootLevelId
209
212
  }, label), (0, _core2.jsx)(_TreeStructureWrapper["default"], {
210
213
  ref: wrapperRef,
@@ -229,23 +232,27 @@ var TreeStructure = function TreeStructure(_ref) {
229
232
  focusedFolderId: focusedFolderId,
230
233
  setFocusedFolderId: setFocusedFolderId,
231
234
  firstLevel: true,
232
- folderChild: folderChild
235
+ folderChild: folderChild,
236
+ maximumLevelsOfFoldersAllowed: maximumLevelsOfFoldersAllowed
233
237
  })), editable && (0, _core2.jsx)(AddFolderWrapper, null, (0, _core2.jsx)(_tooltip["default"], {
234
- tooltip: t('myNdla.newFolderUnder', {
238
+ tooltip: canAddFolder ? t('myNdla.newFolderUnder', {
235
239
  folderName: (0, _helperFunctions.getFolderName)(data, markedFolderId)
236
- })
240
+ }) : t('myNdla.maxFoldersAlreadyAdded')
237
241
  }, (0, _core2.jsx)(_button.AddButton, {
242
+ disabled: !canAddFolder,
238
243
  "aria-label": t('myNdla.newFolder'),
239
244
  onClick: function onClick() {
240
- var paths = (0, _helperFunctions.getPathOfFolder)(data, markedFolderId || '');
241
245
  var idPaths = (0, _helperFunctions.getIdPathsOfFolder)(data, markedFolderId || '');
242
246
  setNewFolder({
243
247
  idPaths: idPaths,
244
248
  parentId: paths[paths.length - 1]
245
249
  });
246
250
  }
247
- }))));
251
+ }, t('myNdla.newFolder')))));
248
252
  };
249
253
 
254
+ TreeStructure.defaultProps = {
255
+ maximumLevelsOfFoldersAllowed: MAX_LEVEL_FOR_FOLDERS
256
+ };
250
257
  var _default = TreeStructure;
251
258
  exports["default"] = _default;
@@ -29,7 +29,7 @@ interface CommonFolderProps {
29
29
  }
30
30
  export interface TreeStructureProps extends CommonFolderProps {
31
31
  framed?: boolean;
32
- label: string;
32
+ label?: string;
33
33
  folderIdMarkedByDefault?: string;
34
34
  onNewFolder: (props: {
35
35
  value: string;
@@ -38,6 +38,7 @@ export interface TreeStructureProps extends CommonFolderProps {
38
38
  }) => Promise<string>;
39
39
  defaultOpenFolders?: string[];
40
40
  folderChild?: FolderChildFuncType;
41
+ maximumLevelsOfFoldersAllowed: number;
41
42
  }
42
43
  export declare type onCreateNewFolderProp = ({ idPaths, parentId, }: {
43
44
  idPaths: number[];
@@ -62,5 +63,6 @@ export interface FolderItemsProps extends CommonFolderProps {
62
63
  keyNavigationFocusIsCreateFolderButton?: boolean;
63
64
  icon?: ReactNode;
64
65
  folderChild?: FolderChildFuncType;
66
+ maximumLevelsOfFoldersAllowed: number;
65
67
  }
66
68
  export {};
@@ -132,6 +132,7 @@ declare const messages: {
132
132
  delete: string;
133
133
  };
134
134
  createFolder: string;
135
+ maxFoldersAlreadyAdded: string;
135
136
  newFolder: {
136
137
  placeholder: string;
137
138
  defaultName: string;
@@ -34,6 +34,7 @@ var messages = _objectSpread(_objectSpread({
34
34
  "delete": 'Delete'
35
35
  },
36
36
  createFolder: 'Create folder',
37
+ maxFoldersAlreadyAdded: 'Maximum subfolders reached',
37
38
  newFolder: {
38
39
  placeholder: 'Add foldername',
39
40
  defaultName: 'New folder'
@@ -132,6 +132,7 @@ declare const messages: {
132
132
  delete: string;
133
133
  };
134
134
  createFolder: string;
135
+ maxFoldersAlreadyAdded: string;
135
136
  newFolder: {
136
137
  placeholder: string;
137
138
  defaultName: string;
@@ -34,6 +34,7 @@ var messages = _objectSpread(_objectSpread({
34
34
  "delete": 'Slett'
35
35
  },
36
36
  createFolder: 'Lag mappe',
37
+ maxFoldersAlreadyAdded: 'Maks nivå av undermapper nådd',
37
38
  newFolder: {
38
39
  placeholder: 'Skriv navn på mappe',
39
40
  defaultName: 'Ny mappe'
@@ -132,6 +132,7 @@ declare const messages: {
132
132
  delete: string;
133
133
  };
134
134
  createFolder: string;
135
+ maxFoldersAlreadyAdded: string;
135
136
  newFolder: {
136
137
  placeholder: string;
137
138
  defaultName: string;
@@ -34,6 +34,7 @@ var messages = _objectSpread(_objectSpread({
34
34
  "delete": 'Slett'
35
35
  },
36
36
  createFolder: 'Lag mappe',
37
+ maxFoldersAlreadyAdded: 'Maks nivå av undermapper nådd',
37
38
  newFolder: {
38
39
  placeholder: 'Skriv namn på mappe',
39
40
  defaultName: 'Ny mappe'
@@ -132,6 +132,7 @@ declare const messages: {
132
132
  delete: string;
133
133
  };
134
134
  createFolder: string;
135
+ maxFoldersAlreadyAdded: string;
135
136
  newFolder: {
136
137
  placeholder: string;
137
138
  defaultName: string;
@@ -34,6 +34,7 @@ var messages = _objectSpread(_objectSpread({
34
34
  "delete": 'Slett'
35
35
  },
36
36
  createFolder: 'Lag mappe',
37
+ maxFoldersAlreadyAdded: 'Maks nivå av undermapper nådd',
37
38
  newFolder: {
38
39
  placeholder: 'Skriv navn på mappe',
39
40
  defaultName: 'Ny mappe'
@@ -132,6 +132,7 @@ declare const messages: {
132
132
  delete: string;
133
133
  };
134
134
  createFolder: string;
135
+ maxFoldersAlreadyAdded: string;
135
136
  newFolder: {
136
137
  placeholder: string;
137
138
  defaultName: string;
@@ -34,6 +34,7 @@ var messages = _objectSpread(_objectSpread({
34
34
  "delete": 'Slett'
35
35
  },
36
36
  createFolder: 'Lag mappe',
37
+ maxFoldersAlreadyAdded: 'Maks nivå av undermapper nådd',
37
38
  newFolder: {
38
39
  placeholder: 'Skriv navn på mappe',
39
40
  defaultName: 'Ny mappe'
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ndla/ui",
3
- "version": "18.0.1",
3
+ "version": "19.0.0",
4
4
  "description": "UI component library for NDLA.",
5
5
  "license": "GPL-3.0",
6
6
  "main": "lib/index.js",
@@ -31,15 +31,15 @@
31
31
  "types"
32
32
  ],
33
33
  "dependencies": {
34
- "@ndla/button": "^2.6.0",
34
+ "@ndla/button": "^3.0.0",
35
35
  "@ndla/carousel": "^1.2.11",
36
36
  "@ndla/core": "^2.3.0",
37
37
  "@ndla/hooks": "^1.1.4",
38
38
  "@ndla/icons": "^1.10.0",
39
39
  "@ndla/licenses": "^5.0.2",
40
40
  "@ndla/modal": "^1.2.12",
41
- "@ndla/notion": "^3.1.17",
42
- "@ndla/safelink": "^2.0.8",
41
+ "@ndla/notion": "^3.1.18",
42
+ "@ndla/safelink": "^2.0.9",
43
43
  "@ndla/switch": "^0.1.7",
44
44
  "@ndla/tabs": "^1.1.10",
45
45
  "@ndla/tooltip": "^2.1.2",
@@ -81,5 +81,5 @@
81
81
  "publishConfig": {
82
82
  "access": "public"
83
83
  },
84
- "gitHead": "841ff68015ec6032bed44a7c25eea2dfd9088a64"
84
+ "gitHead": "ae09299c27fc3f48f1b8f77ebe37c7aac511b2ad"
85
85
  }
@@ -7,14 +7,14 @@
7
7
  */
8
8
 
9
9
  import styled from '@emotion/styled';
10
- import React, { ReactNode } from 'react';
10
+ import React from 'react';
11
11
  import { FolderOutlined } from '@ndla/icons/contentType';
12
12
  import { FileDocumentOutline } from '@ndla/icons/common';
13
13
  import { fonts, spacing, colors, mq, breakpoints } from '@ndla/core';
14
14
  import { css } from '@emotion/core';
15
15
  import { useTranslation } from 'react-i18next';
16
16
  import SafeLink from '@ndla/safelink';
17
- import { MenuButton } from '@ndla/button';
17
+ import { MenuButton, MenuItemProps } from '@ndla/button';
18
18
 
19
19
  interface FolderIconWrapperProps {
20
20
  type?: LayoutType;
@@ -84,7 +84,7 @@ interface Props {
84
84
  description?: string;
85
85
  link: string;
86
86
  type: LayoutType;
87
- actionMenu?: ReactNode;
87
+ menuItems?: MenuItemProps[];
88
88
  }
89
89
 
90
90
  interface IconCountProps {
@@ -131,7 +131,7 @@ const IconCount = ({ type, count, layoutType }: IconCountProps) => {
131
131
 
132
132
  type LayoutType = 'list' | 'block';
133
133
 
134
- const Folder = ({ link, title, subFolders, subResources, type = 'list', actionMenu }: Props) => {
134
+ const Folder = ({ link, title, subFolders, subResources, type = 'list', menuItems }: Props) => {
135
135
  const { t } = useTranslation();
136
136
  return (
137
137
  <FolderWrapper to={link}>
@@ -141,7 +141,7 @@ const Folder = ({ link, title, subFolders, subResources, type = 'list', actionMe
141
141
  <FolderTitle>{title}</FolderTitle>
142
142
  <IconCount layoutType={type} type={'folder'} count={subFolders} />
143
143
  <IconCount layoutType={type} type={'resource'} count={subResources} />
144
- <MenuButton size="small" />
144
+ {menuItems && menuItems.length > 0 && <MenuButton size="small" menuItems={menuItems} />}
145
145
  </FolderWrapper>
146
146
  );
147
147
  };
@@ -7,11 +7,12 @@
7
7
  */
8
8
 
9
9
  import styled from '@emotion/styled';
10
- import React, { ReactNode } from 'react';
10
+ import React from 'react';
11
11
  import SafeLink from '@ndla/safelink';
12
12
  import { colors, fonts, spacing } from '@ndla/core';
13
+ import { MenuButton, MenuItemProps } from '@ndla/button';
13
14
  import Image from '../Image';
14
- import { CompressedTags, ResourceImageProps, ResourceTitle, Row, TopicList } from './resourceComponents';
15
+ import { CompressedTagList, ResourceImageProps, ResourceTitle, Row, TopicList } from './resourceComponents';
15
16
 
16
17
  interface BlockResourceProps {
17
18
  link: string;
@@ -20,7 +21,7 @@ interface BlockResourceProps {
20
21
  topics: string[];
21
22
  tags?: string[];
22
23
  description?: string;
23
- actionMenu?: ReactNode;
24
+ menuItems?: MenuItemProps[];
24
25
  }
25
26
 
26
27
  const BlockElementWrapper = styled(SafeLink)`
@@ -77,7 +78,7 @@ const ImageWrapper = styled.div`
77
78
  }
78
79
  `;
79
80
 
80
- const BlockResource = ({ link, title, tags, resourceImage, topics, description, actionMenu }: BlockResourceProps) => {
81
+ const BlockResource = ({ link, title, tags, resourceImage, topics, description, menuItems }: BlockResourceProps) => {
81
82
  return (
82
83
  <BlockElementWrapper to={link}>
83
84
  <ImageWrapper>
@@ -90,8 +91,8 @@ const BlockResource = ({ link, title, tags, resourceImage, topics, description,
90
91
  <TopicList topics={topics} />
91
92
  <BlockDescription>{description}</BlockDescription>
92
93
  <RightRow>
93
- {tags && CompressedTags(tags)}
94
- {actionMenu}
94
+ {tags && <CompressedTagList tags={tags} />}
95
+ {menuItems && menuItems.length > 0 && <MenuButton size="small" menuItems={menuItems} />}
95
96
  </RightRow>
96
97
  </BlockInfoWrapper>
97
98
  </BlockElementWrapper>
@@ -7,11 +7,12 @@
7
7
  */
8
8
 
9
9
  import styled from '@emotion/styled';
10
- import React, { ReactNode } from 'react';
10
+ import React from 'react';
11
11
  import SafeLink from '@ndla/safelink';
12
12
  import { fonts, spacing, colors, breakpoints, mq } from '@ndla/core';
13
+ import { MenuButton, MenuItemProps } from '@ndla/button';
13
14
  import Image from '../Image';
14
- import { CompressedTags, ResourceImageProps, ResourceTitle, TopicList } from './resourceComponents';
15
+ import { CompressedTagList, ResourceImageProps, ResourceTitle, TopicList } from './resourceComponents';
15
16
 
16
17
  const ResourceDescription = styled.p`
17
18
  grid-area: description;
@@ -109,10 +110,10 @@ export interface ListResourceProps {
109
110
  topics: string[];
110
111
  tags?: string[];
111
112
  description?: string;
112
- actionMenu?: ReactNode;
113
+ menuItems?: MenuItemProps[];
113
114
  }
114
115
 
115
- const ListResource = ({ link, title, tags, resourceImage, topics, description, actionMenu }: ListResourceProps) => {
116
+ const ListResource = ({ link, title, tags, resourceImage, topics, description, menuItems }: ListResourceProps) => {
116
117
  const showDescription = description !== undefined;
117
118
 
118
119
  return (
@@ -126,8 +127,8 @@ const ListResource = ({ link, title, tags, resourceImage, topics, description, a
126
127
  </TopicAndTitle>
127
128
  {showDescription && <ResourceDescription>{description}</ResourceDescription>}
128
129
  <TagsandActionMenu>
129
- {tags && CompressedTags(tags)}
130
- {actionMenu}
130
+ {tags && <CompressedTagList tags={tags} />}
131
+ {menuItems && menuItems.length > 0 && <MenuButton size="small" menuItems={menuItems} />}
131
132
  </TagsandActionMenu>
132
133
  </ResourceWrapper>
133
134
  );
@@ -103,7 +103,11 @@ export const TagList = ({ tags }: TagListProps) => {
103
103
  );
104
104
  };
105
105
 
106
- export const CompressedTags = (tags: string[]) => {
106
+ interface CompressedTagListProps {
107
+ tags: string[];
108
+ }
109
+
110
+ export const CompressedTagList = ({ tags }: CompressedTagListProps) => {
107
111
  const visibleTags = tags.slice(0, 3);
108
112
  const remainingTags = tags.slice(3, tags.length).map((tag) => {
109
113
  return {
@@ -12,7 +12,6 @@ import { animations, spacing } from '@ndla/core';
12
12
  import FolderItem from './FolderItem';
13
13
  import FolderNameInput from './FolderNameInput';
14
14
  import { FolderItemsProps } from './TreeStructure.types';
15
- import { MAX_LEVEL_FOR_FOLDERS } from './TreeStructure';
16
15
 
17
16
  const StyledUL = styled.ul<{ firstLevel?: boolean }>`
18
17
  ${animations.fadeInLeft(animations.durations.fast)};
@@ -49,6 +48,7 @@ const FolderItems = ({
49
48
  setFocusedFolderId,
50
49
  firstLevel,
51
50
  folderChild,
51
+ maximumLevelsOfFoldersAllowed,
52
52
  }: FolderItemsProps) => (
53
53
  <StyledUL role="group" firstLevel={firstLevel}>
54
54
  {data.map(({ name, data: dataChildren, id, url, icon }, _index) => {
@@ -69,7 +69,7 @@ const FolderItems = ({
69
69
  focusedFolderId={focusedFolderId}
70
70
  onToggleOpen={onToggleOpen}
71
71
  onMarkFolder={onMarkFolder}
72
- hideArrow={dataChildren?.length === 0 || newIdPaths.length >= MAX_LEVEL_FOR_FOLDERS}
72
+ hideArrow={dataChildren?.length === 0 || newIdPaths.length >= maximumLevelsOfFoldersAllowed}
73
73
  noPaddingWhenArrowIsHidden={editable && firstLevel && dataChildren?.length === 0}
74
74
  setFocusedFolderId={setFocusedFolderId}
75
75
  folderChild={folderChild}
@@ -101,6 +101,7 @@ const FolderItems = ({
101
101
  setFocusedFolderId={setFocusedFolderId}
102
102
  firstLevel={false}
103
103
  folderChild={folderChild}
104
+ maximumLevelsOfFoldersAllowed={maximumLevelsOfFoldersAllowed}
104
105
  />
105
106
  )}
106
107
  </StyledLI>
@@ -42,6 +42,7 @@ const TreeStructure = ({
42
42
  folderIdMarkedByDefault,
43
43
  defaultOpenFolders,
44
44
  folderChild,
45
+ maximumLevelsOfFoldersAllowed,
45
46
  }: TreeStructureProps) => {
46
47
  const { t } = useTranslation();
47
48
  const [newFolder, setNewFolder] = useState<NewFolderProps | undefined>();
@@ -117,6 +118,9 @@ const TreeStructure = ({
117
118
  setFocusedFolderId(id);
118
119
  };
119
120
 
121
+ const paths = getPathOfFolder(data, markedFolderId || '');
122
+ const canAddFolder = editable && paths.length < (maximumLevelsOfFoldersAllowed || 1);
123
+
120
124
  return (
121
125
  <div
122
126
  ref={treestructureRef}
@@ -132,7 +136,7 @@ const TreeStructure = ({
132
136
  });
133
137
  }
134
138
  }}>
135
- <StyledLabel htmlFor={rootLevelId}>{label}</StyledLabel>
139
+ {label && <StyledLabel htmlFor={rootLevelId}>{label}</StyledLabel>}
136
140
  <TreeStructureStyledWrapper ref={wrapperRef} id={rootLevelId} aria-label="Menu tree" role="tree" framed={framed}>
137
141
  <FolderItems
138
142
  idPaths={[]}
@@ -152,22 +156,28 @@ const TreeStructure = ({
152
156
  setFocusedFolderId={setFocusedFolderId}
153
157
  firstLevel
154
158
  folderChild={folderChild}
159
+ maximumLevelsOfFoldersAllowed={maximumLevelsOfFoldersAllowed}
155
160
  />
156
161
  </TreeStructureStyledWrapper>
157
162
  {editable && (
158
163
  <AddFolderWrapper>
159
164
  <Tooltip
160
- tooltip={t('myNdla.newFolderUnder', {
161
- folderName: getFolderName(data, markedFolderId),
162
- })}>
165
+ tooltip={
166
+ canAddFolder
167
+ ? t('myNdla.newFolderUnder', {
168
+ folderName: getFolderName(data, markedFolderId),
169
+ })
170
+ : t('myNdla.maxFoldersAlreadyAdded')
171
+ }>
163
172
  <AddButton
173
+ disabled={!canAddFolder}
164
174
  aria-label={t('myNdla.newFolder')}
165
175
  onClick={() => {
166
- const paths = getPathOfFolder(data, markedFolderId || '');
167
176
  const idPaths = getIdPathsOfFolder(data, markedFolderId || '');
168
177
  setNewFolder({ idPaths, parentId: paths[paths.length - 1] });
169
- }}
170
- />
178
+ }}>
179
+ {t('myNdla.newFolder')}
180
+ </AddButton>
171
181
  </Tooltip>
172
182
  </AddFolderWrapper>
173
183
  )}
@@ -175,4 +185,8 @@ const TreeStructure = ({
175
185
  );
176
186
  };
177
187
 
188
+ TreeStructure.defaultProps = {
189
+ maximumLevelsOfFoldersAllowed: MAX_LEVEL_FOR_FOLDERS,
190
+ };
191
+
178
192
  export default TreeStructure;
@@ -34,11 +34,12 @@ interface CommonFolderProps {
34
34
 
35
35
  export interface TreeStructureProps extends CommonFolderProps {
36
36
  framed?: boolean;
37
- label: string;
37
+ label?: string;
38
38
  folderIdMarkedByDefault?: string;
39
39
  onNewFolder: (props: { value: string; parentId?: string; idPaths: number[] }) => Promise<string>;
40
40
  defaultOpenFolders?: string[];
41
41
  folderChild?: FolderChildFuncType;
42
+ maximumLevelsOfFoldersAllowed: number;
42
43
  }
43
44
 
44
45
  export type onCreateNewFolderProp = ({
@@ -70,4 +71,5 @@ export interface FolderItemsProps extends CommonFolderProps {
70
71
  keyNavigationFocusIsCreateFolderButton?: boolean;
71
72
  icon?: ReactNode;
72
73
  folderChild?: FolderChildFuncType;
74
+ maximumLevelsOfFoldersAllowed: number;
73
75
  }
@@ -20,6 +20,7 @@ const messages = {
20
20
  delete: 'Delete',
21
21
  },
22
22
  createFolder: 'Create folder',
23
+ maxFoldersAlreadyAdded: 'Maximum subfolders reached',
23
24
  newFolder: {
24
25
  placeholder: 'Add foldername',
25
26
  defaultName: 'New folder',
@@ -20,6 +20,7 @@ const messages = {
20
20
  delete: 'Slett',
21
21
  },
22
22
  createFolder: 'Lag mappe',
23
+ maxFoldersAlreadyAdded: 'Maks nivå av undermapper nådd',
23
24
  newFolder: {
24
25
  placeholder: 'Skriv navn på mappe',
25
26
  defaultName: 'Ny mappe',
@@ -20,6 +20,7 @@ const messages = {
20
20
  delete: 'Slett',
21
21
  },
22
22
  createFolder: 'Lag mappe',
23
+ maxFoldersAlreadyAdded: 'Maks nivå av undermapper nådd',
23
24
  newFolder: {
24
25
  placeholder: 'Skriv namn på mappe',
25
26
  defaultName: 'Ny mappe',
@@ -20,6 +20,7 @@ const messages = {
20
20
  delete: 'Slett',
21
21
  },
22
22
  createFolder: 'Lag mappe',
23
+ maxFoldersAlreadyAdded: 'Maks nivå av undermapper nådd',
23
24
  newFolder: {
24
25
  placeholder: 'Skriv navn på mappe',
25
26
  defaultName: 'Ny mappe',
@@ -20,6 +20,7 @@ const messages = {
20
20
  delete: 'Slett',
21
21
  },
22
22
  createFolder: 'Lag mappe',
23
+ maxFoldersAlreadyAdded: 'Maks nivå av undermapper nådd',
23
24
  newFolder: {
24
25
  placeholder: 'Skriv navn på mappe',
25
26
  defaultName: 'Ny mappe',