@elliemae/ds-legacy-left-navigation 1.0.0-rc.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.
Files changed (248) hide show
  1. package/dist/cjs/LeftNavigation.js +51 -0
  2. package/dist/cjs/LeftNavigation.js.map +7 -0
  3. package/dist/cjs/LeftNavigationContext.js +70 -0
  4. package/dist/cjs/LeftNavigationContext.js.map +7 -0
  5. package/dist/cjs/common/getItemBackgroundStyle.js +57 -0
  6. package/dist/cjs/common/getItemBackgroundStyle.js.map +7 -0
  7. package/dist/cjs/common/getLeftBorderStyle.js +59 -0
  8. package/dist/cjs/common/getLeftBorderStyle.js.map +7 -0
  9. package/dist/cjs/common/getScrollbarStyle.js +59 -0
  10. package/dist/cjs/common/getScrollbarStyle.js.map +7 -0
  11. package/dist/cjs/common/index.js +32 -0
  12. package/dist/cjs/common/index.js.map +7 -0
  13. package/dist/cjs/configs/index.js +39 -0
  14. package/dist/cjs/configs/index.js.map +7 -0
  15. package/dist/cjs/configs/useLeftNavConfig.js +127 -0
  16. package/dist/cjs/configs/useLeftNavConfig.js.map +7 -0
  17. package/dist/cjs/configs/useLeftNavItems.js +85 -0
  18. package/dist/cjs/configs/useLeftNavItems.js.map +7 -0
  19. package/dist/cjs/configs/useLeftNavSmoothExpand.js +57 -0
  20. package/dist/cjs/configs/useLeftNavSmoothExpand.js.map +7 -0
  21. package/dist/cjs/constants/constants.js +68 -0
  22. package/dist/cjs/constants/constants.js.map +7 -0
  23. package/dist/cjs/constants/index.js +30 -0
  24. package/dist/cjs/constants/index.js.map +7 -0
  25. package/dist/cjs/exported-related/ChevronItem/index.js +40 -0
  26. package/dist/cjs/exported-related/ChevronItem/index.js.map +7 -0
  27. package/dist/cjs/exported-related/Icon/index.js +50 -0
  28. package/dist/cjs/exported-related/Icon/index.js.map +7 -0
  29. package/dist/cjs/exported-related/ItemRenderer/index.js +133 -0
  30. package/dist/cjs/exported-related/ItemRenderer/index.js.map +7 -0
  31. package/dist/cjs/exported-related/ItemRenderer/styled.js +107 -0
  32. package/dist/cjs/exported-related/ItemRenderer/styled.js.map +7 -0
  33. package/dist/cjs/exported-related/ItemRenderer/usePropsWithDefaults.js +69 -0
  34. package/dist/cjs/exported-related/ItemRenderer/usePropsWithDefaults.js.map +7 -0
  35. package/dist/cjs/exported-related/Notifications/index.js +62 -0
  36. package/dist/cjs/exported-related/Notifications/index.js.map +7 -0
  37. package/dist/cjs/exported-related/OpenWindowItem/index.js +47 -0
  38. package/dist/cjs/exported-related/OpenWindowItem/index.js.map +7 -0
  39. package/dist/cjs/exported-related/constants.js +71 -0
  40. package/dist/cjs/exported-related/constants.js.map +7 -0
  41. package/dist/cjs/exported-related/index.js +35 -0
  42. package/dist/cjs/exported-related/index.js.map +7 -0
  43. package/dist/cjs/hooks/index.js +32 -0
  44. package/dist/cjs/hooks/index.js.map +7 -0
  45. package/dist/cjs/hooks/useExpandableOnClickHandler.js +74 -0
  46. package/dist/cjs/hooks/useExpandableOnClickHandler.js.map +7 -0
  47. package/dist/cjs/hooks/useKeyboardNavigation.js +128 -0
  48. package/dist/cjs/hooks/useKeyboardNavigation.js.map +7 -0
  49. package/dist/cjs/hooks/useOpenableOnClickHandler.js +82 -0
  50. package/dist/cjs/hooks/useOpenableOnClickHandler.js.map +7 -0
  51. package/dist/cjs/hooks/useSelectFirstBodyItem.js +53 -0
  52. package/dist/cjs/hooks/useSelectFirstBodyItem.js.map +7 -0
  53. package/dist/cjs/index.js +46 -0
  54. package/dist/cjs/index.js.map +7 -0
  55. package/dist/cjs/outOfTheBox/ItemControlledDrilldown/index.js +147 -0
  56. package/dist/cjs/outOfTheBox/ItemControlledDrilldown/index.js.map +7 -0
  57. package/dist/cjs/outOfTheBox/ItemHeader/index.js +169 -0
  58. package/dist/cjs/outOfTheBox/ItemHeader/index.js.map +7 -0
  59. package/dist/cjs/outOfTheBox/ItemLink/index.js +102 -0
  60. package/dist/cjs/outOfTheBox/ItemLink/index.js.map +7 -0
  61. package/dist/cjs/outOfTheBox/ItemSection/index.js +83 -0
  62. package/dist/cjs/outOfTheBox/ItemSection/index.js.map +7 -0
  63. package/dist/cjs/outOfTheBox/ItemSeparator/index.js +68 -0
  64. package/dist/cjs/outOfTheBox/ItemSeparator/index.js.map +7 -0
  65. package/dist/cjs/outOfTheBox/ItemSkeleton/index.js +78 -0
  66. package/dist/cjs/outOfTheBox/ItemSkeleton/index.js.map +7 -0
  67. package/dist/cjs/outOfTheBox/ItemSubmenu/index.js +173 -0
  68. package/dist/cjs/outOfTheBox/ItemSubmenu/index.js.map +7 -0
  69. package/dist/cjs/outOfTheBox/ItemTextLabel/index.js +79 -0
  70. package/dist/cjs/outOfTheBox/ItemTextLabel/index.js.map +7 -0
  71. package/dist/cjs/outOfTheBox/ItemUncontrolledDrilldown/index.js +162 -0
  72. package/dist/cjs/outOfTheBox/ItemUncontrolledDrilldown/index.js.map +7 -0
  73. package/dist/cjs/outOfTheBox/ItemWithDate/index.js +101 -0
  74. package/dist/cjs/outOfTheBox/ItemWithDate/index.js.map +7 -0
  75. package/dist/cjs/outOfTheBox/index.js +83 -0
  76. package/dist/cjs/outOfTheBox/index.js.map +7 -0
  77. package/dist/cjs/outOfTheBox/styled.js +126 -0
  78. package/dist/cjs/outOfTheBox/styled.js.map +7 -0
  79. package/dist/cjs/package.json +4 -0
  80. package/dist/cjs/parts/LeftNavContent/index.js +158 -0
  81. package/dist/cjs/parts/LeftNavContent/index.js.map +7 -0
  82. package/dist/cjs/parts/LeftNavContent/styled.js +107 -0
  83. package/dist/cjs/parts/LeftNavContent/styled.js.map +7 -0
  84. package/dist/cjs/parts/LeftNavFooterItem/index.js +138 -0
  85. package/dist/cjs/parts/LeftNavFooterItem/index.js.map +7 -0
  86. package/dist/cjs/parts/LeftNavFooterItem/styled.js +102 -0
  87. package/dist/cjs/parts/LeftNavFooterItem/styled.js.map +7 -0
  88. package/dist/cjs/parts/LeftNavLoading/index.js +55 -0
  89. package/dist/cjs/parts/LeftNavLoading/index.js.map +7 -0
  90. package/dist/cjs/parts/OutOfTheBoxMapItem.js +59 -0
  91. package/dist/cjs/parts/OutOfTheBoxMapItem.js.map +7 -0
  92. package/dist/cjs/react-desc-prop-types.js +74 -0
  93. package/dist/cjs/react-desc-prop-types.js.map +7 -0
  94. package/dist/cjs/typescript-testing/typescript-left-navigation-valid.js +186 -0
  95. package/dist/cjs/typescript-testing/typescript-left-navigation-valid.js.map +7 -0
  96. package/dist/esm/LeftNavigation.js +21 -0
  97. package/dist/esm/LeftNavigation.js.map +7 -0
  98. package/dist/esm/LeftNavigationContext.js +40 -0
  99. package/dist/esm/LeftNavigationContext.js.map +7 -0
  100. package/dist/esm/common/getItemBackgroundStyle.js +27 -0
  101. package/dist/esm/common/getItemBackgroundStyle.js.map +7 -0
  102. package/dist/esm/common/getLeftBorderStyle.js +29 -0
  103. package/dist/esm/common/getLeftBorderStyle.js.map +7 -0
  104. package/dist/esm/common/getScrollbarStyle.js +29 -0
  105. package/dist/esm/common/getScrollbarStyle.js.map +7 -0
  106. package/dist/esm/common/index.js +5 -0
  107. package/dist/esm/common/index.js.map +7 -0
  108. package/dist/esm/configs/index.js +9 -0
  109. package/dist/esm/configs/index.js.map +7 -0
  110. package/dist/esm/configs/useLeftNavConfig.js +97 -0
  111. package/dist/esm/configs/useLeftNavConfig.js.map +7 -0
  112. package/dist/esm/configs/useLeftNavItems.js +55 -0
  113. package/dist/esm/configs/useLeftNavItems.js.map +7 -0
  114. package/dist/esm/configs/useLeftNavSmoothExpand.js +27 -0
  115. package/dist/esm/configs/useLeftNavSmoothExpand.js.map +7 -0
  116. package/dist/esm/constants/constants.js +38 -0
  117. package/dist/esm/constants/constants.js.map +7 -0
  118. package/dist/esm/constants/index.js +3 -0
  119. package/dist/esm/constants/index.js.map +7 -0
  120. package/dist/esm/exported-related/ChevronItem/index.js +10 -0
  121. package/dist/esm/exported-related/ChevronItem/index.js.map +7 -0
  122. package/dist/esm/exported-related/Icon/index.js +20 -0
  123. package/dist/esm/exported-related/Icon/index.js.map +7 -0
  124. package/dist/esm/exported-related/ItemRenderer/index.js +103 -0
  125. package/dist/esm/exported-related/ItemRenderer/index.js.map +7 -0
  126. package/dist/esm/exported-related/ItemRenderer/styled.js +77 -0
  127. package/dist/esm/exported-related/ItemRenderer/styled.js.map +7 -0
  128. package/dist/esm/exported-related/ItemRenderer/usePropsWithDefaults.js +39 -0
  129. package/dist/esm/exported-related/ItemRenderer/usePropsWithDefaults.js.map +7 -0
  130. package/dist/esm/exported-related/Notifications/index.js +37 -0
  131. package/dist/esm/exported-related/Notifications/index.js.map +7 -0
  132. package/dist/esm/exported-related/OpenWindowItem/index.js +17 -0
  133. package/dist/esm/exported-related/OpenWindowItem/index.js.map +7 -0
  134. package/dist/esm/exported-related/constants.js +41 -0
  135. package/dist/esm/exported-related/constants.js.map +7 -0
  136. package/dist/esm/exported-related/index.js +8 -0
  137. package/dist/esm/exported-related/index.js.map +7 -0
  138. package/dist/esm/hooks/index.js +5 -0
  139. package/dist/esm/hooks/index.js.map +7 -0
  140. package/dist/esm/hooks/useExpandableOnClickHandler.js +44 -0
  141. package/dist/esm/hooks/useExpandableOnClickHandler.js.map +7 -0
  142. package/dist/esm/hooks/useKeyboardNavigation.js +98 -0
  143. package/dist/esm/hooks/useKeyboardNavigation.js.map +7 -0
  144. package/dist/esm/hooks/useOpenableOnClickHandler.js +52 -0
  145. package/dist/esm/hooks/useOpenableOnClickHandler.js.map +7 -0
  146. package/dist/esm/hooks/useSelectFirstBodyItem.js +23 -0
  147. package/dist/esm/hooks/useSelectFirstBodyItem.js.map +7 -0
  148. package/dist/esm/index.js +15 -0
  149. package/dist/esm/index.js.map +7 -0
  150. package/dist/esm/outOfTheBox/ItemControlledDrilldown/index.js +117 -0
  151. package/dist/esm/outOfTheBox/ItemControlledDrilldown/index.js.map +7 -0
  152. package/dist/esm/outOfTheBox/ItemHeader/index.js +145 -0
  153. package/dist/esm/outOfTheBox/ItemHeader/index.js.map +7 -0
  154. package/dist/esm/outOfTheBox/ItemLink/index.js +72 -0
  155. package/dist/esm/outOfTheBox/ItemLink/index.js.map +7 -0
  156. package/dist/esm/outOfTheBox/ItemSection/index.js +59 -0
  157. package/dist/esm/outOfTheBox/ItemSection/index.js.map +7 -0
  158. package/dist/esm/outOfTheBox/ItemSeparator/index.js +38 -0
  159. package/dist/esm/outOfTheBox/ItemSeparator/index.js.map +7 -0
  160. package/dist/esm/outOfTheBox/ItemSkeleton/index.js +48 -0
  161. package/dist/esm/outOfTheBox/ItemSkeleton/index.js.map +7 -0
  162. package/dist/esm/outOfTheBox/ItemSubmenu/index.js +149 -0
  163. package/dist/esm/outOfTheBox/ItemSubmenu/index.js.map +7 -0
  164. package/dist/esm/outOfTheBox/ItemTextLabel/index.js +49 -0
  165. package/dist/esm/outOfTheBox/ItemTextLabel/index.js.map +7 -0
  166. package/dist/esm/outOfTheBox/ItemUncontrolledDrilldown/index.js +132 -0
  167. package/dist/esm/outOfTheBox/ItemUncontrolledDrilldown/index.js.map +7 -0
  168. package/dist/esm/outOfTheBox/ItemWithDate/index.js +71 -0
  169. package/dist/esm/outOfTheBox/ItemWithDate/index.js.map +7 -0
  170. package/dist/esm/outOfTheBox/index.js +52 -0
  171. package/dist/esm/outOfTheBox/index.js.map +7 -0
  172. package/dist/esm/outOfTheBox/styled.js +96 -0
  173. package/dist/esm/outOfTheBox/styled.js.map +7 -0
  174. package/dist/esm/package.json +4 -0
  175. package/dist/esm/parts/LeftNavContent/index.js +135 -0
  176. package/dist/esm/parts/LeftNavContent/index.js.map +7 -0
  177. package/dist/esm/parts/LeftNavContent/styled.js +77 -0
  178. package/dist/esm/parts/LeftNavContent/styled.js.map +7 -0
  179. package/dist/esm/parts/LeftNavFooterItem/index.js +114 -0
  180. package/dist/esm/parts/LeftNavFooterItem/index.js.map +7 -0
  181. package/dist/esm/parts/LeftNavFooterItem/styled.js +72 -0
  182. package/dist/esm/parts/LeftNavFooterItem/styled.js.map +7 -0
  183. package/dist/esm/parts/LeftNavLoading/index.js +25 -0
  184. package/dist/esm/parts/LeftNavLoading/index.js.map +7 -0
  185. package/dist/esm/parts/OutOfTheBoxMapItem.js +29 -0
  186. package/dist/esm/parts/OutOfTheBoxMapItem.js.map +7 -0
  187. package/dist/esm/react-desc-prop-types.js +44 -0
  188. package/dist/esm/react-desc-prop-types.js.map +7 -0
  189. package/dist/esm/typescript-testing/typescript-left-navigation-valid.js +163 -0
  190. package/dist/esm/typescript-testing/typescript-left-navigation-valid.js.map +7 -0
  191. package/dist/types/LeftNavigation.d.ts +9 -0
  192. package/dist/types/LeftNavigationContext.d.ts +21 -0
  193. package/dist/types/common/getItemBackgroundStyle.d.ts +6 -0
  194. package/dist/types/common/getLeftBorderStyle.d.ts +6 -0
  195. package/dist/types/common/getScrollbarStyle.d.ts +1 -0
  196. package/dist/types/common/index.d.ts +3 -0
  197. package/dist/types/configs/index.d.ts +3 -0
  198. package/dist/types/configs/useLeftNavConfig.d.ts +17 -0
  199. package/dist/types/configs/useLeftNavItems.d.ts +12 -0
  200. package/dist/types/configs/useLeftNavSmoothExpand.d.ts +10 -0
  201. package/dist/types/constants/constants.d.ts +32 -0
  202. package/dist/types/constants/index.d.ts +1 -0
  203. package/dist/types/exported-related/ChevronItem/index.d.ts +4 -0
  204. package/dist/types/exported-related/Icon/index.d.ts +6 -0
  205. package/dist/types/exported-related/ItemRenderer/index.d.ts +3 -0
  206. package/dist/types/exported-related/ItemRenderer/styled.d.ts +20 -0
  207. package/dist/types/exported-related/ItemRenderer/usePropsWithDefaults.d.ts +2 -0
  208. package/dist/types/exported-related/Notifications/index.d.ts +8 -0
  209. package/dist/types/exported-related/OpenWindowItem/index.d.ts +4 -0
  210. package/dist/types/exported-related/constants.d.ts +31 -0
  211. package/dist/types/exported-related/index.d.ts +6 -0
  212. package/dist/types/hooks/index.d.ts +3 -0
  213. package/dist/types/hooks/useExpandableOnClickHandler.d.ts +9 -0
  214. package/dist/types/hooks/useKeyboardNavigation.d.ts +8 -0
  215. package/dist/types/hooks/useOpenableOnClickHandler.d.ts +10 -0
  216. package/dist/types/hooks/useSelectFirstBodyItem.d.ts +3 -0
  217. package/dist/types/index.d.ts +6 -0
  218. package/dist/types/outOfTheBox/ItemControlledDrilldown/index.d.ts +3 -0
  219. package/dist/types/outOfTheBox/ItemHeader/index.d.ts +3 -0
  220. package/dist/types/outOfTheBox/ItemLink/index.d.ts +3 -0
  221. package/dist/types/outOfTheBox/ItemSection/index.d.ts +3 -0
  222. package/dist/types/outOfTheBox/ItemSeparator/index.d.ts +3 -0
  223. package/dist/types/outOfTheBox/ItemSkeleton/index.d.ts +8 -0
  224. package/dist/types/outOfTheBox/ItemSubmenu/index.d.ts +3 -0
  225. package/dist/types/outOfTheBox/ItemTextLabel/index.d.ts +3 -0
  226. package/dist/types/outOfTheBox/ItemUncontrolledDrilldown/index.d.ts +3 -0
  227. package/dist/types/outOfTheBox/ItemWithDate/index.d.ts +3 -0
  228. package/dist/types/outOfTheBox/index.d.ts +14 -0
  229. package/dist/types/outOfTheBox/styled.d.ts +24 -0
  230. package/dist/types/parts/LeftNavContent/index.d.ts +3 -0
  231. package/dist/types/parts/LeftNavContent/styled.d.ts +23 -0
  232. package/dist/types/parts/LeftNavFooterItem/index.d.ts +9 -0
  233. package/dist/types/parts/LeftNavFooterItem/styled.d.ts +14 -0
  234. package/dist/types/parts/LeftNavLoading/index.d.ts +4 -0
  235. package/dist/types/parts/OutOfTheBoxMapItem.d.ts +3 -0
  236. package/dist/types/react-desc-prop-types.d.ts +101 -0
  237. package/dist/types/tests/LeftNavigation.collapsed.test.d.ts +1 -0
  238. package/dist/types/tests/LeftNavigation.expanded.test.d.ts +1 -0
  239. package/dist/types/tests/LeftNavigation.opened.test.d.ts +1 -0
  240. package/dist/types/tests/a11y/axe-collapsed.test.d.ts +1 -0
  241. package/dist/types/tests/a11y/axe-expanded.test.d.ts +1 -0
  242. package/dist/types/tests/a11y/axe-opened.test.d.ts +1 -0
  243. package/dist/types/tests/events/LeftNavigation.events.keyboard.test.d.ts +1 -0
  244. package/dist/types/tests/events/LeftNavigation.events.subitems.test.d.ts +1 -0
  245. package/dist/types/tests/events/LeftNavigation.events.test.d.ts +1 -0
  246. package/dist/types/tests/events/LeftNavigation.focus.events.test.d.ts +1 -0
  247. package/dist/types/typescript-testing/typescript-left-navigation-valid.d.ts +1 -0
  248. package/package.json +269 -0
@@ -0,0 +1,128 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var useKeyboardNavigation_exports = {};
30
+ __export(useKeyboardNavigation_exports, {
31
+ useKeyboardNavigation: () => useKeyboardNavigation
32
+ });
33
+ module.exports = __toCommonJS(useKeyboardNavigation_exports);
34
+ var React = __toESM(require("react"));
35
+ var import_react = require("react");
36
+ var import_constants = require("../exported-related/constants.js");
37
+ var import_LeftNavigationContext = __toESM(require("../LeftNavigationContext.js"));
38
+ const KEY_CODES = {
39
+ TAB: 9,
40
+ ENTER: 13,
41
+ SPACE: 32,
42
+ LEFT_ARROW: 37,
43
+ UP_ARROW: 38,
44
+ RIGHT_ARROW: 39,
45
+ DOWN_ARROW: 40,
46
+ END: 35,
47
+ HOME: 36
48
+ };
49
+ const nextIndex = (index, length) => (index + 1) % length;
50
+ const prevIndex = (index, length) => (index - 1 + length) % length;
51
+ const useKeyboardNavigation = ({ item, onClick }) => {
52
+ const {
53
+ dsId,
54
+ itemOpts: { selectable, openable, closable }
55
+ } = item;
56
+ const { visibleItems, visibleItemsRefs } = (0, import_react.useContext)(import_LeftNavigationContext.default);
57
+ const currentIndex = (0, import_react.useMemo)(
58
+ () => visibleItems.findIndex((visibleItemDsId) => visibleItemDsId === dsId),
59
+ [dsId, visibleItems]
60
+ );
61
+ const { setFocusedItem, focusedItem, setSelectedItem } = (0, import_react.useContext)(import_LeftNavigationContext.default);
62
+ const focusAndSelect = (0, import_react.useCallback)(
63
+ (nextDsId) => {
64
+ setFocusedItem(nextDsId);
65
+ setSelectedItem(nextDsId);
66
+ },
67
+ [setFocusedItem, setSelectedItem]
68
+ );
69
+ (0, import_react.useLayoutEffect)(() => {
70
+ if (dsId === focusedItem)
71
+ visibleItemsRefs.current[dsId]?.current?.focus();
72
+ }, [dsId, focusedItem, visibleItemsRefs]);
73
+ const onKeyDown = (0, import_react.useCallback)(
74
+ (e) => {
75
+ const { keyCode } = e;
76
+ if (keyCode !== KEY_CODES.TAB) {
77
+ e.preventDefault();
78
+ }
79
+ if (dsId && (keyCode === KEY_CODES.ENTER || keyCode === KEY_CODES.SPACE)) {
80
+ if (selectable) {
81
+ onClick(e);
82
+ focusAndSelect(dsId);
83
+ } else if (focusedItem === import_constants.CHEVRON_BACK_DS_ID) {
84
+ onClick(e);
85
+ focusAndSelect(dsId);
86
+ } else if (focusedItem === import_constants.FOOTER_MENU_CLOSE_DS_ID) {
87
+ onClick(e);
88
+ setFocusedItem(dsId);
89
+ }
90
+ }
91
+ if (openable && keyCode === KEY_CODES.RIGHT_ARROW) {
92
+ onClick(e);
93
+ }
94
+ if (dsId && closable && keyCode === KEY_CODES.LEFT_ARROW) {
95
+ onClick(e);
96
+ setFocusedItem(dsId);
97
+ }
98
+ if (keyCode === KEY_CODES.DOWN_ARROW) {
99
+ const nextDsId = visibleItems[nextIndex(currentIndex, visibleItems.length)];
100
+ setFocusedItem(nextDsId);
101
+ }
102
+ if (keyCode === KEY_CODES.UP_ARROW) {
103
+ const prevDsId = visibleItems[prevIndex(currentIndex, visibleItems.length)];
104
+ setFocusedItem(prevDsId);
105
+ }
106
+ if (keyCode === KEY_CODES.HOME) {
107
+ setFocusedItem(visibleItems[0]);
108
+ }
109
+ if (keyCode === KEY_CODES.END) {
110
+ setFocusedItem(visibleItems[visibleItems.length - 1]);
111
+ }
112
+ },
113
+ [
114
+ openable,
115
+ closable,
116
+ selectable,
117
+ focusedItem,
118
+ onClick,
119
+ focusAndSelect,
120
+ dsId,
121
+ setFocusedItem,
122
+ visibleItems,
123
+ currentIndex
124
+ ]
125
+ );
126
+ return onKeyDown;
127
+ };
128
+ //# sourceMappingURL=useKeyboardNavigation.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/hooks/useKeyboardNavigation.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
4
+ "sourcesContent": ["/* eslint-disable max-statements */\n/* eslint-disable max-lines */\n/* eslint-disable complexity */\nimport type React from 'react';\nimport { useCallback, useMemo, useLayoutEffect, useContext } from 'react';\nimport { CHEVRON_BACK_DS_ID, FOOTER_MENU_CLOSE_DS_ID } from '../exported-related/constants.js';\nimport type { DSLeftNavigationT } from '../react-desc-prop-types.js';\nimport LeftNavContext from '../LeftNavigationContext.js';\n\nconst KEY_CODES = {\n TAB: 9,\n ENTER: 13,\n SPACE: 32,\n LEFT_ARROW: 37,\n UP_ARROW: 38,\n RIGHT_ARROW: 39,\n DOWN_ARROW: 40,\n END: 35,\n HOME: 36,\n};\n\nconst nextIndex = (index: number, length: number) => (index + 1) % length;\nconst prevIndex = (index: number, length: number) => (index - 1 + length) % length;\n\ntype UseKeyboardNavigationProps = {\n item: DSLeftNavigationT.GenericItemItemProps;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onClick: (e: any) => void;\n};\n\nexport const useKeyboardNavigation = ({ item, onClick }: UseKeyboardNavigationProps): React.KeyboardEventHandler => {\n const {\n dsId,\n itemOpts: { selectable, openable, closable },\n } = item;\n\n const { visibleItems, visibleItemsRefs } = useContext(LeftNavContext);\n\n const currentIndex = useMemo(\n () => visibleItems.findIndex((visibleItemDsId) => visibleItemDsId === dsId),\n [dsId, visibleItems],\n );\n\n const { setFocusedItem, focusedItem, setSelectedItem } = useContext(LeftNavContext);\n\n const focusAndSelect = useCallback(\n (nextDsId: string) => {\n setFocusedItem(nextDsId);\n setSelectedItem(nextDsId);\n },\n [setFocusedItem, setSelectedItem],\n );\n\n useLayoutEffect(() => {\n if (dsId === focusedItem) visibleItemsRefs.current[dsId]?.current?.focus();\n }, [dsId, focusedItem, visibleItemsRefs]);\n\n const onKeyDown: React.KeyboardEventHandler = useCallback(\n (e) => {\n const { keyCode } = e;\n\n // Prevent default behaviour when not tab\n if (keyCode !== KEY_CODES.TAB) {\n e.preventDefault();\n }\n\n if (dsId && (keyCode === KEY_CODES.ENTER || keyCode === KEY_CODES.SPACE)) {\n if (selectable) {\n onClick(e);\n focusAndSelect(dsId);\n } else if (focusedItem === CHEVRON_BACK_DS_ID) {\n onClick(e);\n focusAndSelect(dsId);\n } else if (focusedItem === FOOTER_MENU_CLOSE_DS_ID) {\n onClick(e);\n setFocusedItem(dsId);\n }\n }\n\n if (openable && keyCode === KEY_CODES.RIGHT_ARROW) {\n onClick(e);\n }\n\n if (dsId && closable && keyCode === KEY_CODES.LEFT_ARROW) {\n onClick(e);\n setFocusedItem(dsId);\n }\n\n if (keyCode === KEY_CODES.DOWN_ARROW) {\n const nextDsId = visibleItems[nextIndex(currentIndex, visibleItems.length)];\n setFocusedItem(nextDsId);\n }\n\n if (keyCode === KEY_CODES.UP_ARROW) {\n const prevDsId = visibleItems[prevIndex(currentIndex, visibleItems.length)];\n setFocusedItem(prevDsId);\n }\n\n if (keyCode === KEY_CODES.HOME) {\n setFocusedItem(visibleItems[0]);\n }\n\n if (keyCode === KEY_CODES.END) {\n setFocusedItem(visibleItems[visibleItems.length - 1]);\n }\n },\n [\n openable,\n closable,\n selectable,\n focusedItem,\n onClick,\n focusAndSelect,\n dsId,\n setFocusedItem,\n visibleItems,\n currentIndex,\n ],\n );\n\n return onKeyDown;\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADIvB,mBAAkE;AAClE,uBAA4D;AAE5D,mCAA2B;AAE3B,MAAM,YAAY;AAAA,EAChB,KAAK;AAAA,EACL,OAAO;AAAA,EACP,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,KAAK;AAAA,EACL,MAAM;AACR;AAEA,MAAM,YAAY,CAAC,OAAe,YAAoB,QAAQ,KAAK;AACnE,MAAM,YAAY,CAAC,OAAe,YAAoB,QAAQ,IAAI,UAAU;AAQrE,MAAM,wBAAwB,CAAC,EAAE,MAAM,QAAQ,MAA8D;AAClH,QAAM;AAAA,IACJ;AAAA,IACA,UAAU,EAAE,YAAY,UAAU,SAAS;AAAA,EAC7C,IAAI;AAEJ,QAAM,EAAE,cAAc,iBAAiB,QAAI,yBAAW,6BAAAA,OAAc;AAEpE,QAAM,mBAAe;AAAA,IACnB,MAAM,aAAa,UAAU,CAAC,oBAAoB,oBAAoB,IAAI;AAAA,IAC1E,CAAC,MAAM,YAAY;AAAA,EACrB;AAEA,QAAM,EAAE,gBAAgB,aAAa,gBAAgB,QAAI,yBAAW,6BAAAA,OAAc;AAElF,QAAM,qBAAiB;AAAA,IACrB,CAAC,aAAqB;AACpB,qBAAe,QAAQ;AACvB,sBAAgB,QAAQ;AAAA,IAC1B;AAAA,IACA,CAAC,gBAAgB,eAAe;AAAA,EAClC;AAEA,oCAAgB,MAAM;AACpB,QAAI,SAAS;AAAa,uBAAiB,QAAQ,IAAI,GAAG,SAAS,MAAM;AAAA,EAC3E,GAAG,CAAC,MAAM,aAAa,gBAAgB,CAAC;AAExC,QAAM,gBAAwC;AAAA,IAC5C,CAAC,MAAM;AACL,YAAM,EAAE,QAAQ,IAAI;AAGpB,UAAI,YAAY,UAAU,KAAK;AAC7B,UAAE,eAAe;AAAA,MACnB;AAEA,UAAI,SAAS,YAAY,UAAU,SAAS,YAAY,UAAU,QAAQ;AACxE,YAAI,YAAY;AACd,kBAAQ,CAAC;AACT,yBAAe,IAAI;AAAA,QACrB,WAAW,gBAAgB,qCAAoB;AAC7C,kBAAQ,CAAC;AACT,yBAAe,IAAI;AAAA,QACrB,WAAW,gBAAgB,0CAAyB;AAClD,kBAAQ,CAAC;AACT,yBAAe,IAAI;AAAA,QACrB;AAAA,MACF;AAEA,UAAI,YAAY,YAAY,UAAU,aAAa;AACjD,gBAAQ,CAAC;AAAA,MACX;AAEA,UAAI,QAAQ,YAAY,YAAY,UAAU,YAAY;AACxD,gBAAQ,CAAC;AACT,uBAAe,IAAI;AAAA,MACrB;AAEA,UAAI,YAAY,UAAU,YAAY;AACpC,cAAM,WAAW,aAAa,UAAU,cAAc,aAAa,MAAM,CAAC;AAC1E,uBAAe,QAAQ;AAAA,MACzB;AAEA,UAAI,YAAY,UAAU,UAAU;AAClC,cAAM,WAAW,aAAa,UAAU,cAAc,aAAa,MAAM,CAAC;AAC1E,uBAAe,QAAQ;AAAA,MACzB;AAEA,UAAI,YAAY,UAAU,MAAM;AAC9B,uBAAe,aAAa,CAAC,CAAC;AAAA,MAChC;AAEA,UAAI,YAAY,UAAU,KAAK;AAC7B,uBAAe,aAAa,aAAa,SAAS,CAAC,CAAC;AAAA,MACtD;AAAA,IACF;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;",
6
+ "names": ["LeftNavContext"]
7
+ }
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var useOpenableOnClickHandler_exports = {};
30
+ __export(useOpenableOnClickHandler_exports, {
31
+ useOpenableOnClickHandler: () => useOpenableOnClickHandler
32
+ });
33
+ module.exports = __toCommonJS(useOpenableOnClickHandler_exports);
34
+ var React = __toESM(require("react"));
35
+ var import_react = require("react");
36
+ var import_LeftNavigationContext = __toESM(require("../LeftNavigationContext.js"));
37
+ const useOpenableOnClickHandler = ({
38
+ id,
39
+ opened,
40
+ onExpand,
41
+ onOpen,
42
+ onClose
43
+ }) => {
44
+ const {
45
+ leftNavProps: { expanded },
46
+ setSelectedItem
47
+ } = (0, import_react.useContext)(import_LeftNavigationContext.default);
48
+ const handleOnExpand = (0, import_react.useCallback)(
49
+ (e) => {
50
+ onExpand(e);
51
+ setSelectedItem(id);
52
+ },
53
+ [id, onExpand, setSelectedItem]
54
+ );
55
+ const handleOnOpen = (0, import_react.useCallback)(
56
+ (e) => {
57
+ onOpen(e);
58
+ setSelectedItem(id);
59
+ },
60
+ [id, onOpen, setSelectedItem]
61
+ );
62
+ const handleOnClose = (0, import_react.useCallback)(
63
+ (e) => {
64
+ onClose(e);
65
+ setSelectedItem(id);
66
+ },
67
+ [id, onClose, setSelectedItem]
68
+ );
69
+ const handleOnClick = (0, import_react.useCallback)(
70
+ (e) => {
71
+ if (!expanded)
72
+ handleOnExpand(e);
73
+ else if (!opened)
74
+ handleOnOpen(e);
75
+ else
76
+ handleOnClose(e);
77
+ },
78
+ [expanded, opened, handleOnExpand, handleOnOpen, handleOnClose]
79
+ );
80
+ return handleOnClick;
81
+ };
82
+ //# sourceMappingURL=useOpenableOnClickHandler.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/hooks/useOpenableOnClickHandler.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
4
+ "sourcesContent": ["import { useCallback, useContext } from 'react';\nimport LeftNavigationContext from '../LeftNavigationContext.js';\n\ntype UseOpenableOnClickHandlerProps = {\n id: string;\n onExpand: React.MouseEventHandler & React.KeyboardEventHandler;\n onOpen: React.MouseEventHandler & React.KeyboardEventHandler;\n onClose: React.MouseEventHandler & React.KeyboardEventHandler;\n opened: boolean;\n};\n\nexport const useOpenableOnClickHandler = ({\n id,\n opened,\n onExpand,\n onOpen,\n onClose,\n}: UseOpenableOnClickHandlerProps): ((e: React.MouseEvent<HTMLElement>) => void) => {\n const {\n leftNavProps: { expanded },\n setSelectedItem,\n } = useContext(LeftNavigationContext);\n\n const handleOnExpand: React.MouseEventHandler = useCallback(\n (e) => {\n onExpand(e);\n setSelectedItem(id);\n },\n [id, onExpand, setSelectedItem],\n );\n\n const handleOnOpen: React.MouseEventHandler = useCallback(\n (e) => {\n onOpen(e);\n setSelectedItem(id);\n },\n [id, onOpen, setSelectedItem],\n );\n\n const handleOnClose: React.MouseEventHandler = useCallback(\n (e) => {\n onClose(e);\n setSelectedItem(id);\n },\n [id, onClose, setSelectedItem],\n );\n\n const handleOnClick: React.MouseEventHandler = useCallback(\n (e) => {\n if (!expanded) handleOnExpand(e);\n else if (!opened) handleOnOpen(e);\n else handleOnClose(e);\n },\n [expanded, opened, handleOnExpand, handleOnOpen, handleOnClose],\n );\n\n return handleOnClick;\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAwC;AACxC,mCAAkC;AAU3B,MAAM,4BAA4B,CAAC;AAAA,EACxC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAoF;AAClF,QAAM;AAAA,IACJ,cAAc,EAAE,SAAS;AAAA,IACzB;AAAA,EACF,QAAI,yBAAW,6BAAAA,OAAqB;AAEpC,QAAM,qBAA0C;AAAA,IAC9C,CAAC,MAAM;AACL,eAAS,CAAC;AACV,sBAAgB,EAAE;AAAA,IACpB;AAAA,IACA,CAAC,IAAI,UAAU,eAAe;AAAA,EAChC;AAEA,QAAM,mBAAwC;AAAA,IAC5C,CAAC,MAAM;AACL,aAAO,CAAC;AACR,sBAAgB,EAAE;AAAA,IACpB;AAAA,IACA,CAAC,IAAI,QAAQ,eAAe;AAAA,EAC9B;AAEA,QAAM,oBAAyC;AAAA,IAC7C,CAAC,MAAM;AACL,cAAQ,CAAC;AACT,sBAAgB,EAAE;AAAA,IACpB;AAAA,IACA,CAAC,IAAI,SAAS,eAAe;AAAA,EAC/B;AAEA,QAAM,oBAAyC;AAAA,IAC7C,CAAC,MAAM;AACL,UAAI,CAAC;AAAU,uBAAe,CAAC;AAAA,eACtB,CAAC;AAAQ,qBAAa,CAAC;AAAA;AAC3B,sBAAc,CAAC;AAAA,IACtB;AAAA,IACA,CAAC,UAAU,QAAQ,gBAAgB,cAAc,aAAa;AAAA,EAChE;AAEA,SAAO;AACT;",
6
+ "names": ["LeftNavigationContext"]
7
+ }
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var useSelectFirstBodyItem_exports = {};
30
+ __export(useSelectFirstBodyItem_exports, {
31
+ useSelectFirstBodyItem: () => useSelectFirstBodyItem
32
+ });
33
+ module.exports = __toCommonJS(useSelectFirstBodyItem_exports);
34
+ var React = __toESM(require("react"));
35
+ var import_react = require("react");
36
+ var import_constants = require("../exported-related/constants.js");
37
+ const { LEFT_NAV_ITEM_SEPARATOR, LEFT_NAV_ITEM_SECTION } = import_constants.ITEM_TYPES;
38
+ const isSelectableOutOfTheBox = (elem) => typeof elem.type === "string" && elem.type !== LEFT_NAV_ITEM_SEPARATOR && elem.type !== LEFT_NAV_ITEM_SECTION;
39
+ const isSelectableCustom = (elem) => elem.itemOpts.selectable;
40
+ const isItemInsideTheTree = (item, itemID) => item.dsId === itemID || !!item?.itemOpts?.items?.some((it) => isItemInsideTheTree(it, itemID));
41
+ const useSelectFirstBodyItem = (items, openedItem, selectedItem, setSelectedItem, disableDefaultSelection) => {
42
+ (0, import_react.useEffect)(() => {
43
+ if (!disableDefaultSelection && items && items.length && openedItem) {
44
+ const index = items.findIndex((elem) => isSelectableOutOfTheBox(elem) || isSelectableCustom(elem));
45
+ const isItemInside = items.some((it) => isItemInsideTheTree(it, selectedItem));
46
+ if (isItemInside)
47
+ setSelectedItem(selectedItem);
48
+ else if (index !== -1)
49
+ setSelectedItem(items[index].dsId ?? "");
50
+ }
51
+ }, [openedItem, setSelectedItem, disableDefaultSelection]);
52
+ };
53
+ //# sourceMappingURL=useSelectFirstBodyItem.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/hooks/useSelectFirstBodyItem.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
4
+ "sourcesContent": ["/* eslint-disable max-params */\nimport type React from 'react';\nimport { useEffect } from 'react';\nimport type { DSLeftNavigationT } from '../react-desc-prop-types.js';\nimport { ITEM_TYPES } from '../exported-related/constants.js';\n\nconst { LEFT_NAV_ITEM_SEPARATOR, LEFT_NAV_ITEM_SECTION } = ITEM_TYPES;\n\nconst isSelectableOutOfTheBox = (elem: DSLeftNavigationT.GenericItemItemProps) =>\n typeof elem.type === 'string' && elem.type !== LEFT_NAV_ITEM_SEPARATOR && elem.type !== LEFT_NAV_ITEM_SECTION;\nconst isSelectableCustom = (elem: DSLeftNavigationT.GenericItemItemProps) => elem.itemOpts.selectable;\n\nconst isItemInsideTheTree = (item: DSLeftNavigationT.GenericItemItemProps, itemID: string | null): boolean =>\n item.dsId === itemID || !!item?.itemOpts?.items?.some((it) => isItemInsideTheTree(it, itemID));\n\nexport const useSelectFirstBodyItem = (\n items: DSLeftNavigationT.GenericItemItemProps[],\n openedItem: string | null,\n selectedItem: string | null,\n setSelectedItem: React.Dispatch<React.SetStateAction<string | null>>,\n disableDefaultSelection: boolean | undefined,\n): void => {\n useEffect(() => {\n if (!disableDefaultSelection && items && items.length && openedItem) {\n const index = items.findIndex((elem) => isSelectableOutOfTheBox(elem) || isSelectableCustom(elem));\n const isItemInside = items.some((it) => isItemInsideTheTree(it, selectedItem));\n if (isItemInside) setSelectedItem(selectedItem);\n else if (index !== -1) setSelectedItem(items[index].dsId ?? '');\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [openedItem, setSelectedItem, disableDefaultSelection]);\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADEvB,mBAA0B;AAE1B,uBAA2B;AAE3B,MAAM,EAAE,yBAAyB,sBAAsB,IAAI;AAE3D,MAAM,0BAA0B,CAAC,SAC/B,OAAO,KAAK,SAAS,YAAY,KAAK,SAAS,2BAA2B,KAAK,SAAS;AAC1F,MAAM,qBAAqB,CAAC,SAAiD,KAAK,SAAS;AAE3F,MAAM,sBAAsB,CAAC,MAA8C,WACzE,KAAK,SAAS,UAAU,CAAC,CAAC,MAAM,UAAU,OAAO,KAAK,CAAC,OAAO,oBAAoB,IAAI,MAAM,CAAC;AAExF,MAAM,yBAAyB,CACpC,OACA,YACA,cACA,iBACA,4BACS;AACT,8BAAU,MAAM;AACd,QAAI,CAAC,2BAA2B,SAAS,MAAM,UAAU,YAAY;AACnE,YAAM,QAAQ,MAAM,UAAU,CAAC,SAAS,wBAAwB,IAAI,KAAK,mBAAmB,IAAI,CAAC;AACjG,YAAM,eAAe,MAAM,KAAK,CAAC,OAAO,oBAAoB,IAAI,YAAY,CAAC;AAC7E,UAAI;AAAc,wBAAgB,YAAY;AAAA,eACrC,UAAU;AAAI,wBAAgB,MAAM,KAAK,EAAE,QAAQ,EAAE;AAAA,IAChE;AAAA,EAEF,GAAG,CAAC,YAAY,iBAAiB,uBAAuB,CAAC;AAC3D;",
6
+ "names": []
7
+ }
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
21
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
22
+ // If the importer is in node compatibility mode or this is not an ESM
23
+ // file that has been converted to a CommonJS file using a Babel-
24
+ // compatible transform (i.e. "__esModule" has not been set), then set
25
+ // "default" to the CommonJS "module.exports" for node compatibility.
26
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
27
+ mod
28
+ ));
29
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
+ var src_exports = {};
31
+ __export(src_exports, {
32
+ LeftNavItemOptionsSchema: () => import_react_desc_prop_types.LeftNavItemOptionsSchema,
33
+ LeftNavItemPropsSchema: () => import_react_desc_prop_types.LeftNavItemPropsSchema,
34
+ LeftNavigation: () => import_LeftNavigation2.LeftNavigation,
35
+ LeftNavigationWithSchema: () => import_LeftNavigation2.LeftNavigationWithSchema,
36
+ default: () => src_default
37
+ });
38
+ module.exports = __toCommonJS(src_exports);
39
+ var React = __toESM(require("react"));
40
+ var import_LeftNavigation = require("./LeftNavigation.js");
41
+ var import_react_desc_prop_types = require("./react-desc-prop-types.js");
42
+ var import_LeftNavigation2 = require("./LeftNavigation.js");
43
+ __reExport(src_exports, require("./exported-related/index.js"), module.exports);
44
+ __reExport(src_exports, require("./constants/index.js"), module.exports);
45
+ var src_default = import_LeftNavigation.LeftNavigation;
46
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/index.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
4
+ "sourcesContent": ["import { LeftNavigation } from './LeftNavigation.js';\n\nexport default LeftNavigation;\nexport { LeftNavItemPropsSchema, LeftNavItemOptionsSchema, type DSLeftNavigationT } from './react-desc-prop-types.js';\nexport { LeftNavigation, LeftNavigationWithSchema } from './LeftNavigation.js';\nexport * from './exported-related/index.js';\nexport * from './constants/index.js';\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,4BAA+B;AAG/B,mCAAyF;AACzF,IAAAA,yBAAyD;AACzD,wBAAc,wCALd;AAMA,wBAAc,iCANd;AAEA,IAAO,cAAQ;",
6
+ "names": ["import_LeftNavigation"]
7
+ }
@@ -0,0 +1,147 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var ItemControlledDrilldown_exports = {};
30
+ __export(ItemControlledDrilldown_exports, {
31
+ ItemControlledDrilldown: () => ItemControlledDrilldown
32
+ });
33
+ module.exports = __toCommonJS(ItemControlledDrilldown_exports);
34
+ var React = __toESM(require("react"));
35
+ var import_jsx_runtime = require("react/jsx-runtime");
36
+ var import_react = require("react");
37
+ var import_ds_legacy_truncated_tooltip_text = require("@elliemae/ds-legacy-truncated-tooltip-text");
38
+ var import_ds_legacy_icons = require("@elliemae/ds-legacy-icons");
39
+ var import_exported_related = require("../../exported-related/index.js");
40
+ var import_styled = require("../styled.js");
41
+ var import_ItemSeparator = require("../ItemSeparator/index.js");
42
+ var import_ItemWithDate = require("../ItemWithDate/index.js");
43
+ var import_ItemTextLabel = require("../ItemTextLabel/index.js");
44
+ const outOfTheBoxSubitemsComponents = {
45
+ [import_exported_related.ITEM_TYPES.LEFT_NAV_ITEM_SEPARATOR]: import_ItemSeparator.ItemSeparator,
46
+ [import_exported_related.ITEM_TYPES.LEFT_NAV_ITEM_WITH_DATE]: import_ItemWithDate.ItemWithDate,
47
+ [import_exported_related.ITEM_TYPES.LEFT_NAV_ITEM_TEXT_LABEL]: import_ItemTextLabel.ItemTextLabel
48
+ };
49
+ const OutOfTheBoxMapSubitem = (props) => {
50
+ const {
51
+ item,
52
+ item: { type, Component },
53
+ ctx
54
+ } = props;
55
+ if (typeof type === "string" && !!outOfTheBoxSubitemsComponents[type]) {
56
+ const OutOfTheBoxComponent = outOfTheBoxSubitemsComponents[type];
57
+ const currentIndent = item.itemOpts?.indent ?? 0;
58
+ const newItem = {
59
+ ...item,
60
+ itemOpts: { ...item.itemOpts, indent: currentIndent + 44 }
61
+ };
62
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(OutOfTheBoxComponent, { item: newItem, ctx });
63
+ }
64
+ if (!Component)
65
+ return null;
66
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, { item, ctx });
67
+ };
68
+ const ItemControlledDrilldown = (props) => {
69
+ const {
70
+ item,
71
+ item: {
72
+ itemOpts: {
73
+ label,
74
+ RightComponent,
75
+ labelRightSection,
76
+ labelOverflow: itemLabelOverflow,
77
+ labelBold,
78
+ labelColor,
79
+ isOpened,
80
+ items,
81
+ labelDataTestId
82
+ }
83
+ },
84
+ ctx,
85
+ ctx: {
86
+ leftNavProps: { labelOverflow: leftNavLabelOverflow }
87
+ }
88
+ } = props;
89
+ const labelOverflow = itemLabelOverflow || leftNavLabelOverflow;
90
+ const arrowIcon = (0, import_react.useMemo)(() => {
91
+ const Component = isOpened ? import_ds_legacy_icons.ArrowheadDown : import_ds_legacy_icons.ArrowheadRight;
92
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, { width: "24px", height: "18px", color: ["brand-primary", "800"] });
93
+ }, [isOpened]);
94
+ const subitems = (0, import_react.useMemo)(() => {
95
+ if (!isOpened || !items)
96
+ return [];
97
+ return items.map((subitem) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(OutOfTheBoxMapSubitem, { item: subitem, ctx }, subitem.dsId));
98
+ }, [isOpened, items, ctx]);
99
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
100
+ import_exported_related.ItemRenderer,
101
+ {
102
+ item: {
103
+ ...item,
104
+ itemOpts: {
105
+ ariaExpanded: isOpened,
106
+ ariaRole: "menuitem",
107
+ ...item.itemOpts,
108
+ openable: !isOpened,
109
+ closable: isOpened
110
+ },
111
+ CollapsedComponent: null
112
+ },
113
+ subitems,
114
+ minHeight: "32px",
115
+ paddingTop: "8px",
116
+ children: [
117
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_styled.StyledArrowContainer, { pl: "xxs", mt: "-2px", children: arrowIcon }),
118
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
119
+ import_styled.StyledLabel,
120
+ {
121
+ pb: "xxxs",
122
+ "data-testid": labelDataTestId || "leftnav-list-item-label",
123
+ labelOverflow,
124
+ labelBold,
125
+ labelColor,
126
+ children: labelOverflow === "truncate" ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_legacy_truncated_tooltip_text.SimpleTruncatedTooltipText, { value: label, placement: "bottom-start" }) : label
127
+ }
128
+ ),
129
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
130
+ import_styled.StyledRightContainer,
131
+ {
132
+ pr: "xxs2",
133
+ cols: ["auto", "auto"],
134
+ alignItems: "center",
135
+ gutter: "xxs",
136
+ "data-testid": "leftnav-right-component",
137
+ children: [
138
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_styled.StyledDate, { ml: "xxs", "data-testid": "leftnav-list-item-date", children: labelRightSection }),
139
+ RightComponent && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RightComponent, { ctx, item })
140
+ ]
141
+ }
142
+ )
143
+ ]
144
+ }
145
+ );
146
+ };
147
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/outOfTheBox/ItemControlledDrilldown/index.tsx", "../../../../../../../scripts/build/transpile/react-shim.js"],
4
+ "sourcesContent": ["import React, { useMemo } from 'react';\nimport { SimpleTruncatedTooltipText } from '@elliemae/ds-legacy-truncated-tooltip-text';\nimport { ArrowheadDown, ArrowheadRight } from '@elliemae/ds-legacy-icons';\nimport { ItemRenderer, ITEM_TYPES } from '../../exported-related/index.js';\nimport { StyledLabel, StyledDate, StyledArrowContainer, StyledRightContainer } from '../styled.js';\nimport { ItemSeparator } from '../ItemSeparator/index.js';\nimport { ItemWithDate } from '../ItemWithDate/index.js';\nimport { ItemTextLabel } from '../ItemTextLabel/index.js';\nimport type { DSLeftNavigationT } from '../../react-desc-prop-types.js';\n\nconst outOfTheBoxSubitemsComponents: Record<string, React.ComponentType<DSLeftNavigationT.ComponentProps>> = {\n [ITEM_TYPES.LEFT_NAV_ITEM_SEPARATOR]: ItemSeparator,\n [ITEM_TYPES.LEFT_NAV_ITEM_WITH_DATE]: ItemWithDate,\n [ITEM_TYPES.LEFT_NAV_ITEM_TEXT_LABEL]: ItemTextLabel,\n};\n\nconst OutOfTheBoxMapSubitem: React.ComponentType<DSLeftNavigationT.ComponentProps> = (props) => {\n const {\n item,\n item: { type, Component },\n ctx,\n } = props;\n\n if (typeof type === 'string' && !!outOfTheBoxSubitemsComponents[type]) {\n const OutOfTheBoxComponent = outOfTheBoxSubitemsComponents[type];\n const currentIndent = item.itemOpts?.indent ?? 0;\n const newItem = {\n ...item,\n itemOpts: { ...item.itemOpts, indent: currentIndent + 44 },\n };\n return <OutOfTheBoxComponent item={newItem} ctx={ctx} />;\n }\n if (!Component) return null;\n // we expect an error to be threw if Component is not defined and type is not a valid out-of-the-box...\n return <Component item={item} ctx={ctx} />;\n};\n\nexport const ItemControlledDrilldown = (props: DSLeftNavigationT.ComponentProps): JSX.Element => {\n const {\n item,\n item: {\n itemOpts: {\n label,\n RightComponent,\n labelRightSection,\n labelOverflow: itemLabelOverflow,\n labelBold,\n labelColor,\n isOpened,\n items,\n labelDataTestId,\n },\n },\n ctx,\n ctx: {\n leftNavProps: { labelOverflow: leftNavLabelOverflow },\n },\n } = props;\n\n const labelOverflow = itemLabelOverflow || leftNavLabelOverflow;\n\n const arrowIcon = useMemo(() => {\n const Component = isOpened ? ArrowheadDown : ArrowheadRight;\n return <Component width=\"24px\" height=\"18px\" color={['brand-primary', '800']} />;\n }, [isOpened]);\n\n const subitems = useMemo(() => {\n if (!isOpened || !items) return [];\n return items.map((subitem) => <OutOfTheBoxMapSubitem item={subitem} ctx={ctx} key={subitem.dsId} />);\n }, [isOpened, items, ctx]);\n\n return (\n <ItemRenderer\n item={{\n ...item,\n itemOpts: {\n ariaExpanded: isOpened,\n ariaRole: 'menuitem',\n ...item.itemOpts,\n openable: !isOpened,\n closable: isOpened,\n },\n CollapsedComponent: null,\n }}\n subitems={subitems}\n minHeight=\"32px\"\n paddingTop=\"8px\"\n >\n <StyledArrowContainer pl=\"xxs\" mt=\"-2px\">\n {arrowIcon}\n </StyledArrowContainer>\n <StyledLabel\n pb=\"xxxs\"\n data-testid={labelDataTestId || 'leftnav-list-item-label'}\n labelOverflow={labelOverflow}\n labelBold={labelBold}\n labelColor={labelColor}\n >\n {labelOverflow === 'truncate' ? <SimpleTruncatedTooltipText value={label} placement=\"bottom-start\" /> : label}\n </StyledLabel>\n <StyledRightContainer\n pr=\"xxs2\"\n cols={['auto', 'auto']}\n alignItems=\"center\"\n gutter=\"xxs\"\n data-testid=\"leftnav-right-component\"\n >\n <StyledDate ml=\"xxs\" data-testid=\"leftnav-list-item-date\">\n {labelRightSection}\n </StyledDate>\n {RightComponent && <RightComponent ctx={ctx} item={item} />}\n </StyledRightContainer>\n </ItemRenderer>\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;AD8BZ;AA9BX,mBAA+B;AAC/B,8CAA2C;AAC3C,6BAA8C;AAC9C,8BAAyC;AACzC,oBAAoF;AACpF,2BAA8B;AAC9B,0BAA6B;AAC7B,2BAA8B;AAG9B,MAAM,gCAAuG;AAAA,EAC3G,CAAC,mCAAW,uBAAuB,GAAG;AAAA,EACtC,CAAC,mCAAW,uBAAuB,GAAG;AAAA,EACtC,CAAC,mCAAW,wBAAwB,GAAG;AACzC;AAEA,MAAM,wBAA+E,CAAC,UAAU;AAC9F,QAAM;AAAA,IACJ;AAAA,IACA,MAAM,EAAE,MAAM,UAAU;AAAA,IACxB;AAAA,EACF,IAAI;AAEJ,MAAI,OAAO,SAAS,YAAY,CAAC,CAAC,8BAA8B,IAAI,GAAG;AACrE,UAAM,uBAAuB,8BAA8B,IAAI;AAC/D,UAAM,gBAAgB,KAAK,UAAU,UAAU;AAC/C,UAAM,UAAU;AAAA,MACd,GAAG;AAAA,MACH,UAAU,EAAE,GAAG,KAAK,UAAU,QAAQ,gBAAgB,GAAG;AAAA,IAC3D;AACA,WAAO,4CAAC,wBAAqB,MAAM,SAAS,KAAU;AAAA,EACxD;AACA,MAAI,CAAC;AAAW,WAAO;AAEvB,SAAO,4CAAC,aAAU,MAAY,KAAU;AAC1C;AAEO,MAAM,0BAA0B,CAAC,UAAyD;AAC/F,QAAM;AAAA,IACJ;AAAA,IACA,MAAM;AAAA,MACJ,UAAU;AAAA,QACR;AAAA,QACA;AAAA,QACA;AAAA,QACA,eAAe;AAAA,QACf;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,IACA,KAAK;AAAA,MACH,cAAc,EAAE,eAAe,qBAAqB;AAAA,IACtD;AAAA,EACF,IAAI;AAEJ,QAAM,gBAAgB,qBAAqB;AAE3C,QAAM,gBAAY,sBAAQ,MAAM;AAC9B,UAAM,YAAY,WAAW,uCAAgB;AAC7C,WAAO,4CAAC,aAAU,OAAM,QAAO,QAAO,QAAO,OAAO,CAAC,iBAAiB,KAAK,GAAG;AAAA,EAChF,GAAG,CAAC,QAAQ,CAAC;AAEb,QAAM,eAAW,sBAAQ,MAAM;AAC7B,QAAI,CAAC,YAAY,CAAC;AAAO,aAAO,CAAC;AACjC,WAAO,MAAM,IAAI,CAAC,YAAY,4CAAC,yBAAsB,MAAM,SAAS,OAAe,QAAQ,IAAM,CAAE;AAAA,EACrG,GAAG,CAAC,UAAU,OAAO,GAAG,CAAC;AAEzB,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAM;AAAA,QACJ,GAAG;AAAA,QACH,UAAU;AAAA,UACR,cAAc;AAAA,UACd,UAAU;AAAA,UACV,GAAG,KAAK;AAAA,UACR,UAAU,CAAC;AAAA,UACX,UAAU;AAAA,QACZ;AAAA,QACA,oBAAoB;AAAA,MACtB;AAAA,MACA;AAAA,MACA,WAAU;AAAA,MACV,YAAW;AAAA,MAEX;AAAA,oDAAC,sCAAqB,IAAG,OAAM,IAAG,QAC/B,qBACH;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACC,IAAG;AAAA,YACH,eAAa,mBAAmB;AAAA,YAChC;AAAA,YACA;AAAA,YACA;AAAA,YAEC,4BAAkB,aAAa,4CAAC,sEAA2B,OAAO,OAAO,WAAU,gBAAe,IAAK;AAAA;AAAA,QAC1G;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACC,IAAG;AAAA,YACH,MAAM,CAAC,QAAQ,MAAM;AAAA,YACrB,YAAW;AAAA,YACX,QAAO;AAAA,YACP,eAAY;AAAA,YAEZ;AAAA,0DAAC,4BAAW,IAAG,OAAM,eAAY,0BAC9B,6BACH;AAAA,cACC,kBAAkB,4CAAC,kBAAe,KAAU,MAAY;AAAA;AAAA;AAAA,QAC3D;AAAA;AAAA;AAAA,EACF;AAEJ;",
6
+ "names": []
7
+ }