@elliemae/ds-treeview 3.0.0-next.1 → 3.0.0-next.13

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 (333) hide show
  1. package/dist/cjs/TreeView.js +50 -0
  2. package/dist/cjs/TreeView.js.map +7 -0
  3. package/dist/cjs/TreeViewContext.js +117 -0
  4. package/dist/cjs/TreeViewContext.js.map +7 -0
  5. package/dist/cjs/config/cssClassesConstants.js +41 -0
  6. package/dist/cjs/config/cssClassesConstants.js.map +7 -0
  7. package/dist/cjs/config/useTreeview.js +163 -0
  8. package/dist/cjs/config/useTreeview.js.map +7 -0
  9. package/dist/cjs/hoc/DnDTreeContext.js +43 -0
  10. package/dist/cjs/hoc/DnDTreeContext.js.map +7 -0
  11. package/dist/cjs/hoc/SortableItemContext.js +46 -0
  12. package/dist/cjs/hoc/SortableItemContext.js.map +7 -0
  13. package/dist/cjs/hoc/WithConditionalDnDContext.js +150 -0
  14. package/dist/cjs/hoc/WithConditionalDnDContext.js.map +7 -0
  15. package/dist/cjs/hoc/WithDnDSortableItemContext.js +81 -0
  16. package/dist/cjs/hoc/WithDnDSortableItemContext.js.map +7 -0
  17. package/dist/cjs/index.js +37 -0
  18. package/dist/cjs/index.js.map +7 -0
  19. package/dist/cjs/parts/CheckboxSelectable.js +111 -0
  20. package/dist/cjs/parts/CheckboxSelectable.js.map +7 -0
  21. package/dist/cjs/parts/ChildrenCountDisplayer.js +47 -0
  22. package/dist/cjs/parts/ChildrenCountDisplayer.js.map +7 -0
  23. package/dist/cjs/parts/DnDHandle.js +71 -0
  24. package/dist/cjs/parts/DnDHandle.js.map +7 -0
  25. package/dist/cjs/parts/DropIndicator.js +80 -0
  26. package/dist/cjs/parts/DropIndicator.js.map +7 -0
  27. package/dist/cjs/parts/ExpandCaret.js +96 -0
  28. package/dist/cjs/parts/ExpandCaret.js.map +7 -0
  29. package/dist/cjs/parts/Icon.js +52 -0
  30. package/dist/cjs/parts/Icon.js.map +7 -0
  31. package/dist/cjs/parts/NestingSpace.js +55 -0
  32. package/dist/cjs/parts/NestingSpace.js.map +7 -0
  33. package/dist/cjs/parts/RadioSelectable.js +74 -0
  34. package/dist/cjs/parts/RadioSelectable.js.map +7 -0
  35. package/dist/cjs/parts/TreeItem.js +192 -0
  36. package/dist/cjs/parts/TreeItem.js.map +7 -0
  37. package/dist/cjs/parts/TreeItemText.js +101 -0
  38. package/dist/cjs/parts/TreeItemText.js.map +7 -0
  39. package/dist/cjs/parts/TreeList.js +135 -0
  40. package/dist/cjs/parts/TreeList.js.map +7 -0
  41. package/dist/cjs/plugins/dnd/TreeDndPlugin.js +35 -0
  42. package/dist/cjs/plugins/dnd/TreeDndPlugin.js.map +7 -0
  43. package/dist/cjs/plugins/dnd/index.js +28 -0
  44. package/dist/cjs/plugins/dnd/index.js.map +7 -0
  45. package/dist/cjs/plugins/index.js +34 -0
  46. package/dist/cjs/plugins/index.js.map +7 -0
  47. package/dist/cjs/plugins/roving/TreeRovingPlugin.js +35 -0
  48. package/dist/cjs/plugins/roving/TreeRovingPlugin.js.map +7 -0
  49. package/dist/cjs/plugins/roving/index.js +28 -0
  50. package/dist/cjs/plugins/roving/index.js.map +7 -0
  51. package/dist/cjs/plugins/searchable/SearchableTreePlugin.js +35 -0
  52. package/dist/cjs/plugins/searchable/SearchableTreePlugin.js.map +7 -0
  53. package/dist/cjs/plugins/searchable/index.js +28 -0
  54. package/dist/cjs/plugins/searchable/index.js.map +7 -0
  55. package/dist/cjs/plugins/selectable/SelectablePluginTree.js +35 -0
  56. package/dist/cjs/plugins/selectable/SelectablePluginTree.js.map +7 -0
  57. package/dist/cjs/plugins/selectable/index.js +28 -0
  58. package/dist/cjs/plugins/selectable/index.js.map +7 -0
  59. package/dist/cjs/plugins/toolbar/TreeToolbarPlugin.js +35 -0
  60. package/dist/cjs/plugins/toolbar/TreeToolbarPlugin.js.map +7 -0
  61. package/dist/cjs/plugins/toolbar/index.js +28 -0
  62. package/dist/cjs/plugins/toolbar/index.js.map +7 -0
  63. package/dist/cjs/plugins/tree/TreeDataPlugin.js +35 -0
  64. package/dist/cjs/plugins/tree/TreeDataPlugin.js.map +7 -0
  65. package/dist/cjs/plugins/tree/index.js +28 -0
  66. package/dist/cjs/plugins/tree/index.js.map +7 -0
  67. package/dist/cjs/plugins/virtualization/TreeVirtualizationPlugin.js +35 -0
  68. package/dist/cjs/plugins/virtualization/TreeVirtualizationPlugin.js.map +7 -0
  69. package/dist/cjs/plugins/virtualization/index.js +28 -0
  70. package/dist/cjs/plugins/virtualization/index.js.map +7 -0
  71. package/dist/cjs/react-desc-prop-types.js +85 -0
  72. package/dist/cjs/react-desc-prop-types.js.map +7 -0
  73. package/dist/cjs/related-components/TreeViewSearchBar.js +50 -0
  74. package/dist/cjs/related-components/TreeViewSearchBar.js.map +7 -0
  75. package/dist/cjs/sharedTypes.js +27 -0
  76. package/dist/cjs/sharedTypes.js.map +7 -0
  77. package/dist/cjs/utils/array-helpers.js +48 -0
  78. package/dist/cjs/utils/array-helpers.js.map +7 -0
  79. package/dist/cjs/utils/group-expands-helpers.js +138 -0
  80. package/dist/cjs/utils/group-expands-helpers.js.map +7 -0
  81. package/dist/cjs/utils/keyboard-helpers.js +170 -0
  82. package/dist/cjs/utils/keyboard-helpers.js.map +7 -0
  83. package/dist/cjs/utils/object-helpers.js +76 -0
  84. package/dist/cjs/utils/object-helpers.js.map +7 -0
  85. package/dist/cjs/utils/refs-helpers.js +52 -0
  86. package/dist/cjs/utils/refs-helpers.js.map +7 -0
  87. package/dist/cjs/utils/selectable-helper.js +102 -0
  88. package/dist/cjs/utils/selectable-helper.js.map +7 -0
  89. package/dist/cjs/utils/string-helpers.js +35 -0
  90. package/dist/cjs/utils/string-helpers.js.map +7 -0
  91. package/dist/cjs/utils/tree-helpers.js +184 -0
  92. package/dist/cjs/utils/tree-helpers.js.map +7 -0
  93. package/dist/cjs/utils/useInstanceRefActions.js +98 -0
  94. package/dist/cjs/utils/useInstanceRefActions.js.map +7 -0
  95. package/dist/cjs/utils/useTree.js +123 -0
  96. package/dist/cjs/utils/useTree.js.map +7 -0
  97. package/dist/esm/TreeView.js +21 -0
  98. package/dist/esm/TreeView.js.map +7 -0
  99. package/{esm → dist/esm}/TreeViewContext.js +26 -30
  100. package/dist/esm/TreeViewContext.js.map +7 -0
  101. package/dist/esm/config/cssClassesConstants.js +12 -0
  102. package/dist/esm/config/cssClassesConstants.js.map +7 -0
  103. package/dist/esm/config/useTreeview.js +136 -0
  104. package/dist/esm/config/useTreeview.js.map +7 -0
  105. package/dist/esm/hoc/DnDTreeContext.js +14 -0
  106. package/dist/esm/hoc/DnDTreeContext.js.map +7 -0
  107. package/dist/esm/hoc/SortableItemContext.js +17 -0
  108. package/dist/esm/hoc/SortableItemContext.js.map +7 -0
  109. package/dist/esm/hoc/WithConditionalDnDContext.js +123 -0
  110. package/dist/esm/hoc/WithConditionalDnDContext.js.map +7 -0
  111. package/dist/esm/hoc/WithDnDSortableItemContext.js +54 -0
  112. package/dist/esm/hoc/WithDnDSortableItemContext.js.map +7 -0
  113. package/dist/esm/index.js +8 -0
  114. package/dist/esm/index.js.map +7 -0
  115. package/dist/esm/parts/CheckboxSelectable.js +84 -0
  116. package/dist/esm/parts/CheckboxSelectable.js.map +7 -0
  117. package/dist/esm/parts/ChildrenCountDisplayer.js +18 -0
  118. package/dist/esm/parts/ChildrenCountDisplayer.js.map +7 -0
  119. package/dist/esm/parts/DnDHandle.js +44 -0
  120. package/dist/esm/parts/DnDHandle.js.map +7 -0
  121. package/dist/esm/parts/DropIndicator.js +51 -0
  122. package/dist/esm/parts/DropIndicator.js.map +7 -0
  123. package/dist/esm/parts/ExpandCaret.js +67 -0
  124. package/dist/esm/parts/ExpandCaret.js.map +7 -0
  125. package/dist/esm/parts/Icon.js +23 -0
  126. package/dist/esm/parts/Icon.js.map +7 -0
  127. package/dist/esm/parts/NestingSpace.js +26 -0
  128. package/dist/esm/parts/NestingSpace.js.map +7 -0
  129. package/dist/esm/parts/RadioSelectable.js +45 -0
  130. package/dist/esm/parts/RadioSelectable.js.map +7 -0
  131. package/dist/esm/parts/TreeItem.js +165 -0
  132. package/dist/esm/parts/TreeItem.js.map +7 -0
  133. package/dist/esm/parts/TreeItemText.js +72 -0
  134. package/dist/esm/parts/TreeItemText.js.map +7 -0
  135. package/dist/esm/parts/TreeList.js +108 -0
  136. package/dist/esm/parts/TreeList.js.map +7 -0
  137. package/dist/esm/plugins/dnd/TreeDndPlugin.js +6 -0
  138. package/dist/esm/plugins/dnd/TreeDndPlugin.js.map +7 -0
  139. package/dist/esm/plugins/dnd/index.js +3 -0
  140. package/dist/esm/plugins/dnd/index.js.map +7 -0
  141. package/dist/esm/plugins/index.js +9 -0
  142. package/dist/esm/plugins/index.js.map +7 -0
  143. package/dist/esm/plugins/roving/TreeRovingPlugin.js +6 -0
  144. package/dist/esm/plugins/roving/TreeRovingPlugin.js.map +7 -0
  145. package/dist/esm/plugins/roving/index.js +3 -0
  146. package/dist/esm/plugins/roving/index.js.map +7 -0
  147. package/dist/esm/plugins/searchable/SearchableTreePlugin.js +6 -0
  148. package/dist/esm/plugins/searchable/SearchableTreePlugin.js.map +7 -0
  149. package/dist/esm/plugins/searchable/index.js +3 -0
  150. package/dist/esm/plugins/searchable/index.js.map +7 -0
  151. package/dist/esm/plugins/selectable/SelectablePluginTree.js +6 -0
  152. package/dist/esm/plugins/selectable/SelectablePluginTree.js.map +7 -0
  153. package/dist/esm/plugins/selectable/index.js +3 -0
  154. package/dist/esm/plugins/selectable/index.js.map +7 -0
  155. package/dist/esm/plugins/toolbar/TreeToolbarPlugin.js +6 -0
  156. package/dist/esm/plugins/toolbar/TreeToolbarPlugin.js.map +7 -0
  157. package/dist/esm/plugins/toolbar/index.js +3 -0
  158. package/dist/esm/plugins/toolbar/index.js.map +7 -0
  159. package/dist/esm/plugins/tree/TreeDataPlugin.js +6 -0
  160. package/dist/esm/plugins/tree/TreeDataPlugin.js.map +7 -0
  161. package/dist/esm/plugins/tree/index.js +3 -0
  162. package/dist/esm/plugins/tree/index.js.map +7 -0
  163. package/dist/esm/plugins/virtualization/TreeVirtualizationPlugin.js +6 -0
  164. package/dist/esm/plugins/virtualization/TreeVirtualizationPlugin.js.map +7 -0
  165. package/dist/esm/plugins/virtualization/index.js +3 -0
  166. package/dist/esm/plugins/virtualization/index.js.map +7 -0
  167. package/dist/esm/react-desc-prop-types.js +56 -0
  168. package/dist/esm/react-desc-prop-types.js.map +7 -0
  169. package/dist/esm/related-components/TreeViewSearchBar.js +21 -0
  170. package/dist/esm/related-components/TreeViewSearchBar.js.map +7 -0
  171. package/dist/esm/sharedTypes.js +2 -0
  172. package/dist/esm/sharedTypes.js.map +7 -0
  173. package/{esm → dist/esm}/utils/array-helpers.js +6 -6
  174. package/dist/esm/utils/array-helpers.js.map +7 -0
  175. package/dist/esm/utils/group-expands-helpers.js +109 -0
  176. package/dist/esm/utils/group-expands-helpers.js.map +7 -0
  177. package/{esm → dist/esm}/utils/keyboard-helpers.js +43 -71
  178. package/dist/esm/utils/keyboard-helpers.js.map +7 -0
  179. package/dist/esm/utils/object-helpers.js +47 -0
  180. package/dist/esm/utils/object-helpers.js.map +7 -0
  181. package/dist/esm/utils/refs-helpers.js +23 -0
  182. package/dist/esm/utils/refs-helpers.js.map +7 -0
  183. package/dist/esm/utils/selectable-helper.js +75 -0
  184. package/dist/esm/utils/selectable-helper.js.map +7 -0
  185. package/dist/esm/utils/string-helpers.js +6 -0
  186. package/dist/esm/utils/string-helpers.js.map +7 -0
  187. package/dist/esm/utils/tree-helpers.js +155 -0
  188. package/dist/esm/utils/tree-helpers.js.map +7 -0
  189. package/{esm → dist/esm}/utils/useInstanceRefActions.js +21 -35
  190. package/dist/esm/utils/useInstanceRefActions.js.map +7 -0
  191. package/dist/esm/utils/useTree.js +96 -0
  192. package/dist/esm/utils/useTree.js.map +7 -0
  193. package/package.json +131 -121
  194. package/cjs/TreeView.js +0 -30
  195. package/cjs/TreeViewContext.js +0 -98
  196. package/cjs/config/cssClassesConstants.js +0 -13
  197. package/cjs/config/useTreeview.js +0 -127
  198. package/cjs/hoc/DnDTreeContext.js +0 -18
  199. package/cjs/hoc/SortableItemContext.js +0 -21
  200. package/cjs/hoc/WithConditionalDnDContext.js +0 -138
  201. package/cjs/hoc/WithDnDSortableItemContext.js +0 -70
  202. package/cjs/index.js +0 -26
  203. package/cjs/parts/CheckboxSelectable.js +0 -86
  204. package/cjs/parts/ChildrenCountDisplayer.js +0 -30
  205. package/cjs/parts/DnDHandle.js +0 -46
  206. package/cjs/parts/DropIndicator.js +0 -75
  207. package/cjs/parts/ExpandCaret.js +0 -94
  208. package/cjs/parts/Icon.js +0 -37
  209. package/cjs/parts/NestingSpace.js +0 -47
  210. package/cjs/parts/RadioSelectable.js +0 -59
  211. package/cjs/parts/TreeItem.js +0 -185
  212. package/cjs/parts/TreeItemText.js +0 -108
  213. package/cjs/parts/TreeList.js +0 -139
  214. package/cjs/plugins/dnd/TreeDndPlugin.js +0 -7
  215. package/cjs/plugins/dnd/index.js +0 -9
  216. package/cjs/plugins/index.js +0 -21
  217. package/cjs/plugins/roving/TreeRovingPlugin.js +0 -7
  218. package/cjs/plugins/roving/index.js +0 -9
  219. package/cjs/plugins/searchable/SearchableTreePlugin.js +0 -7
  220. package/cjs/plugins/searchable/index.js +0 -9
  221. package/cjs/plugins/selectable/SelectablePluginTree.js +0 -7
  222. package/cjs/plugins/selectable/index.js +0 -9
  223. package/cjs/plugins/toolbar/TreeToolbarPlugin.js +0 -7
  224. package/cjs/plugins/toolbar/index.js +0 -9
  225. package/cjs/plugins/tree/TreeDataPlugin.js +0 -7
  226. package/cjs/plugins/tree/index.js +0 -9
  227. package/cjs/plugins/virtualization/TreeVirtualizationPlugin.js +0 -7
  228. package/cjs/plugins/virtualization/index.js +0 -9
  229. package/cjs/react-desc-prop-types.js +0 -56
  230. package/cjs/related-components/TreeViewSearchBar.js +0 -48
  231. package/cjs/sharedTypes.js +0 -2
  232. package/cjs/utils/array-helpers.js +0 -24
  233. package/cjs/utils/group-expands-helpers.js +0 -111
  234. package/cjs/utils/keyboard-helpers.js +0 -175
  235. package/cjs/utils/object-helpers.js +0 -69
  236. package/cjs/utils/refs-helpers.js +0 -31
  237. package/cjs/utils/selectable-helper.js +0 -80
  238. package/cjs/utils/string-helpers.js +0 -7
  239. package/cjs/utils/tree-helpers.js +0 -220
  240. package/cjs/utils/useInstanceRefActions.js +0 -87
  241. package/cjs/utils/useTree.js +0 -108
  242. package/esm/TreeView.js +0 -21
  243. package/esm/config/cssClassesConstants.js +0 -6
  244. package/esm/config/useTreeview.js +0 -119
  245. package/esm/hoc/DnDTreeContext.js +0 -14
  246. package/esm/hoc/SortableItemContext.js +0 -17
  247. package/esm/hoc/WithConditionalDnDContext.js +0 -128
  248. package/esm/hoc/WithDnDSortableItemContext.js +0 -61
  249. package/esm/index.js +0 -9
  250. package/esm/parts/CheckboxSelectable.js +0 -78
  251. package/esm/parts/ChildrenCountDisplayer.js +0 -22
  252. package/esm/parts/DnDHandle.js +0 -38
  253. package/esm/parts/DropIndicator.js +0 -68
  254. package/esm/parts/ExpandCaret.js +0 -85
  255. package/esm/parts/Icon.js +0 -29
  256. package/esm/parts/NestingSpace.js +0 -39
  257. package/esm/parts/RadioSelectable.js +0 -53
  258. package/esm/parts/TreeItem.js +0 -173
  259. package/esm/parts/TreeItemText.js +0 -99
  260. package/esm/parts/TreeList.js +0 -127
  261. package/esm/plugins/dnd/TreeDndPlugin.js +0 -3
  262. package/esm/plugins/dnd/index.js +0 -1
  263. package/esm/plugins/index.js +0 -7
  264. package/esm/plugins/roving/TreeRovingPlugin.js +0 -3
  265. package/esm/plugins/roving/index.js +0 -1
  266. package/esm/plugins/searchable/SearchableTreePlugin.js +0 -3
  267. package/esm/plugins/searchable/index.js +0 -1
  268. package/esm/plugins/selectable/SelectablePluginTree.js +0 -3
  269. package/esm/plugins/selectable/index.js +0 -1
  270. package/esm/plugins/toolbar/TreeToolbarPlugin.js +0 -3
  271. package/esm/plugins/toolbar/index.js +0 -1
  272. package/esm/plugins/tree/TreeDataPlugin.js +0 -3
  273. package/esm/plugins/tree/index.js +0 -1
  274. package/esm/plugins/virtualization/TreeVirtualizationPlugin.js +0 -3
  275. package/esm/plugins/virtualization/index.js +0 -1
  276. package/esm/react-desc-prop-types.js +0 -52
  277. package/esm/related-components/TreeViewSearchBar.js +0 -40
  278. package/esm/sharedTypes.js +0 -1
  279. package/esm/utils/group-expands-helpers.js +0 -99
  280. package/esm/utils/object-helpers.js +0 -64
  281. package/esm/utils/refs-helpers.js +0 -27
  282. package/esm/utils/selectable-helper.js +0 -70
  283. package/esm/utils/string-helpers.js +0 -3
  284. package/esm/utils/tree-helpers.js +0 -205
  285. package/esm/utils/useTree.js +0 -99
  286. package/types/TreeView.d.ts +0 -13
  287. package/types/TreeViewContext.d.ts +0 -17
  288. package/types/config/cssClassesConstants.d.ts +0 -4
  289. package/types/config/useTreeview.d.ts +0 -7
  290. package/types/hoc/DnDTreeContext.d.ts +0 -14
  291. package/types/hoc/SortableItemContext.d.ts +0 -19
  292. package/types/hoc/WithConditionalDnDContext.d.ts +0 -4
  293. package/types/hoc/WithDnDSortableItemContext.d.ts +0 -4
  294. package/types/index.d.ts +0 -3
  295. package/types/parts/CheckboxSelectable.d.ts +0 -8
  296. package/types/parts/ChildrenCountDisplayer.d.ts +0 -7
  297. package/types/parts/DnDHandle.d.ts +0 -6
  298. package/types/parts/DropIndicator.d.ts +0 -10
  299. package/types/parts/ExpandCaret.d.ts +0 -7
  300. package/types/parts/Icon.d.ts +0 -7
  301. package/types/parts/NestingSpace.d.ts +0 -8
  302. package/types/parts/RadioSelectable.d.ts +0 -8
  303. package/types/parts/TreeItem.d.ts +0 -17
  304. package/types/parts/TreeItemText.d.ts +0 -7
  305. package/types/parts/TreeList.d.ts +0 -20
  306. package/types/plugins/dnd/TreeDndPlugin.d.ts +0 -1
  307. package/types/plugins/dnd/index.d.ts +0 -1
  308. package/types/plugins/index.d.ts +0 -7
  309. package/types/plugins/roving/TreeRovingPlugin.d.ts +0 -1
  310. package/types/plugins/roving/index.d.ts +0 -1
  311. package/types/plugins/searchable/SearchableTreePlugin.d.ts +0 -1
  312. package/types/plugins/searchable/index.d.ts +0 -1
  313. package/types/plugins/selectable/SelectablePluginTree.d.ts +0 -1
  314. package/types/plugins/selectable/index.d.ts +0 -1
  315. package/types/plugins/toolbar/TreeToolbarPlugin.d.ts +0 -1
  316. package/types/plugins/toolbar/index.d.ts +0 -1
  317. package/types/plugins/tree/TreeDataPlugin.d.ts +0 -1
  318. package/types/plugins/tree/index.d.ts +0 -1
  319. package/types/plugins/virtualization/TreeVirtualizationPlugin.d.ts +0 -1
  320. package/types/plugins/virtualization/index.d.ts +0 -1
  321. package/types/react-desc-prop-types.d.ts +0 -210
  322. package/types/related-components/TreeViewSearchBar.d.ts +0 -16
  323. package/types/sharedTypes.d.ts +0 -47
  324. package/types/utils/array-helpers.d.ts +0 -2
  325. package/types/utils/group-expands-helpers.d.ts +0 -14
  326. package/types/utils/keyboard-helpers.d.ts +0 -6
  327. package/types/utils/object-helpers.d.ts +0 -6
  328. package/types/utils/refs-helpers.d.ts +0 -4
  329. package/types/utils/selectable-helper.d.ts +0 -7
  330. package/types/utils/string-helpers.d.ts +0 -1
  331. package/types/utils/tree-helpers.d.ts +0 -28
  332. package/types/utils/useInstanceRefActions.d.ts +0 -3
  333. package/types/utils/useTree.d.ts +0 -14
@@ -0,0 +1,51 @@
1
+ import * as React from "react";
2
+ import React2 from "react";
3
+ import styled from "styled-components";
4
+ import { DropIndicatorPosition } from "../hoc/SortableItemContext";
5
+ const getPositionStyles = ({ dropIndicatorPosition }) => `
6
+ top: ${dropIndicatorPosition === DropIndicatorPosition.Before ? "0" : "unset"};
7
+ bottom: ${dropIndicatorPosition === DropIndicatorPosition.After ? "0" : "unset"};
8
+ left: -2px;
9
+ `;
10
+ const getCircleStyles = ({ dropIndicatorPosition }) => ({
11
+ position: "absolute",
12
+ zIndex: 20,
13
+ top: dropIndicatorPosition === DropIndicatorPosition.After ? "unset" : "-2px",
14
+ bottom: dropIndicatorPosition === DropIndicatorPosition.Before ? "unset" : "-2px",
15
+ left: "0px",
16
+ opacity: 1
17
+ });
18
+ const StyledIndicator = styled.div`
19
+ position: absolute;
20
+ ${getPositionStyles}
21
+ box-sizing: border-box;
22
+ width: ${(props) => props.vertical ? "2px" : "100%"};
23
+ height: ${(props) => props.vertical ? "100%" : "2px"};
24
+ background-color: ${({ isDropValid, theme }) => isDropValid ? theme.colors.brand[600] : theme.colors.danger[900]};
25
+ z-index: 20;
26
+ `;
27
+ const CircleIndicator = (style, isDropValid) => /* @__PURE__ */ React2.createElement("svg", {
28
+ height: "6",
29
+ width: "6",
30
+ style
31
+ }, /* @__PURE__ */ React2.createElement("circle", {
32
+ cx: "3",
33
+ cy: "3",
34
+ r: "3",
35
+ strokeWidth: "0",
36
+ fill: isDropValid ? "#1E79C2" : "#C64252"
37
+ }));
38
+ const DropIndicator = ({ dropIndicatorPosition, isLast, isDropValid }) => {
39
+ if (![DropIndicatorPosition.After, DropIndicatorPosition.Before].includes(dropIndicatorPosition))
40
+ return null;
41
+ const safeDropIndicatorPosition = isLast ? DropIndicatorPosition.Before : dropIndicatorPosition;
42
+ return /* @__PURE__ */ React2.createElement(React2.Fragment, null, CircleIndicator(getCircleStyles({ dropIndicatorPosition: safeDropIndicatorPosition }), isDropValid), /* @__PURE__ */ React2.createElement(StyledIndicator, {
43
+ dropIndicatorPosition: safeDropIndicatorPosition,
44
+ isDropValid
45
+ }));
46
+ };
47
+ var DropIndicator_default = DropIndicator;
48
+ export {
49
+ DropIndicator_default as default
50
+ };
51
+ //# sourceMappingURL=DropIndicator.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/parts/DropIndicator.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport styled from 'styled-components';\nimport { DropIndicatorPosition } from '../hoc/SortableItemContext';\n\ninterface DropIndicatorProps {\n vertical?: boolean;\n dropIndicatorPosition: DropIndicatorPosition | false;\n isLast?: boolean;\n isDropValid?: boolean;\n}\n\nconst getPositionStyles = ({ dropIndicatorPosition }: DropIndicatorProps) => `\n top: ${dropIndicatorPosition === DropIndicatorPosition.Before ? '0' : 'unset'};\n bottom: ${dropIndicatorPosition === DropIndicatorPosition.After ? '0' : 'unset'};\n left: -2px;\n `;\n\nconst getCircleStyles = ({ dropIndicatorPosition }: DropIndicatorProps) => ({\n position: 'absolute',\n zIndex: 20,\n top: dropIndicatorPosition === DropIndicatorPosition.After ? 'unset' : '-2px',\n bottom: dropIndicatorPosition === DropIndicatorPosition.Before ? 'unset' : '-2px',\n left: '0px',\n opacity: 1,\n});\n\nconst StyledIndicator = styled.div<DropIndicatorProps>`\n position: absolute;\n ${getPositionStyles}\n box-sizing: border-box;\n width: ${(props) => (props.vertical ? '2px' : '100%')};\n height: ${(props) => (props.vertical ? '100%' : '2px')};\n background-color: ${({ isDropValid, theme }) => (isDropValid ? theme.colors.brand[600] : theme.colors.danger[900])};\n z-index: 20;\n`;\n\nconst CircleIndicator = (style: Record<string, unknown>, isDropValid: boolean | null | undefined) => (\n <svg height=\"6\" width=\"6\" style={style}>\n <circle cx=\"3\" cy=\"3\" r=\"3\" strokeWidth=\"0\" fill={isDropValid ? '#1E79C2' : '#C64252'} />\n </svg>\n);\n\nconst DropIndicator: React.ComponentType<DropIndicatorProps> = ({ dropIndicatorPosition, isLast, isDropValid }) => {\n if (\n ![DropIndicatorPosition.After, DropIndicatorPosition.Before].includes(\n dropIndicatorPosition as DropIndicatorPosition,\n )\n )\n return null;\n\n const safeDropIndicatorPosition = isLast ? DropIndicatorPosition.Before : dropIndicatorPosition;\n\n return (\n <>\n {CircleIndicator(getCircleStyles({ dropIndicatorPosition: safeDropIndicatorPosition }), isDropValid)}\n <StyledIndicator dropIndicatorPosition={safeDropIndicatorPosition} isDropValid={isDropValid} />\n </>\n );\n};\n\nexport default DropIndicator;\n"],
5
+ "mappings": "AAAA;ACAA;AACA;AACA;AASA,MAAM,oBAAoB,CAAC,EAAE,4BAAgD;AAAA,aAChE,0BAA0B,sBAAsB,SAAS,MAAM;AAAA,gBAC5D,0BAA0B,sBAAsB,QAAQ,MAAM;AAAA;AAAA;AAI9E,MAAM,kBAAkB,CAAC,EAAE,4BAAiD;AAAA,EAC1E,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,KAAK,0BAA0B,sBAAsB,QAAQ,UAAU;AAAA,EACvE,QAAQ,0BAA0B,sBAAsB,SAAS,UAAU;AAAA,EAC3E,MAAM;AAAA,EACN,SAAS;AAAA;AAGX,MAAM,kBAAkB,OAAO;AAAA;AAAA,IAE3B;AAAA;AAAA,WAEO,CAAC,UAAW,MAAM,WAAW,QAAQ;AAAA,YACpC,CAAC,UAAW,MAAM,WAAW,SAAS;AAAA,sBAC5B,CAAC,EAAE,aAAa,YAAa,cAAc,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,OAAO;AAAA;AAAA;AAI/G,MAAM,kBAAkB,CAAC,OAAgC,gBACvD,qCAAC,OAAD;AAAA,EAAK,QAAO;AAAA,EAAI,OAAM;AAAA,EAAI;AAAA,GACxB,qCAAC,UAAD;AAAA,EAAQ,IAAG;AAAA,EAAI,IAAG;AAAA,EAAI,GAAE;AAAA,EAAI,aAAY;AAAA,EAAI,MAAM,cAAc,YAAY;AAAA;AAIhF,MAAM,gBAAyD,CAAC,EAAE,uBAAuB,QAAQ,kBAAkB;AACjH,MACE,CAAC,CAAC,sBAAsB,OAAO,sBAAsB,QAAQ,SAC3D;AAGF,WAAO;AAET,QAAM,4BAA4B,SAAS,sBAAsB,SAAS;AAE1E,SACE,4DACG,gBAAgB,gBAAgB,EAAE,uBAAuB,8BAA8B,cACxF,qCAAC,iBAAD;AAAA,IAAiB,uBAAuB;AAAA,IAA2B;AAAA;AAAA;AAKzE,IAAO,wBAAQ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,67 @@
1
+ import * as React from "react";
2
+ import React2, { useContext, useCallback } from "react";
3
+ import Button from "@elliemae/ds-button";
4
+ import { ArrowheadDown, ArrowheadRight } from "@elliemae/ds-icons";
5
+ import { toggleItemExpand } from "../utils/group-expands-helpers";
6
+ import { focusItem } from "../utils/tree-helpers";
7
+ import TreeViewContext from "../TreeViewContext";
8
+ const ExpandCaret = (props) => {
9
+ const defaultHandleExpandGroup = useCallback(toggleItemExpand, []);
10
+ const { item } = props;
11
+ const { id, isExpanded, isGroup, children } = item;
12
+ const isGroupOrHasChildrens = isGroup || Array.isArray(children) && children.length > 0;
13
+ const ctx = useContext(TreeViewContext);
14
+ const {
15
+ props: { onItemFocus },
16
+ handleExpandGroup = defaultHandleExpandGroup,
17
+ triggerTreeRerender,
18
+ updateUserExpandedState,
19
+ setLatestToggledItem,
20
+ setFocusedItem,
21
+ virtualListHelpers: { scrollToIndex }
22
+ } = ctx;
23
+ if (isGroupOrHasChildrens)
24
+ return /* @__PURE__ */ React2.createElement(Button, {
25
+ buttonType: "text",
26
+ className: "expandable-arrow",
27
+ "data-testid": "tree-item-expand-toggle",
28
+ key: `${id}-expand-addon`,
29
+ icon: isExpanded ? /* @__PURE__ */ React2.createElement(ArrowheadDown, {
30
+ size: "s",
31
+ "data-testid": "ic-arrow-head-down"
32
+ }) : /* @__PURE__ */ React2.createElement(ArrowheadRight, {
33
+ size: "s",
34
+ "data-testid": "ic-arrow-head-right"
35
+ }),
36
+ onMouseDown: (e) => {
37
+ if (e) {
38
+ e.preventDefault();
39
+ }
40
+ },
41
+ onClick: (e) => {
42
+ e.stopPropagation();
43
+ if (e)
44
+ handleExpandGroup(item, triggerTreeRerender, updateUserExpandedState, scrollToIndex, e);
45
+ setLatestToggledItem(item);
46
+ const itemVitualIndex = item.virtualIndex;
47
+ if (typeof itemVitualIndex === "number") {
48
+ onItemFocus({
49
+ itemIndex: itemVitualIndex,
50
+ scrollToItem: (opts = { align: "start" }) => scrollToIndex(itemVitualIndex, opts),
51
+ item
52
+ });
53
+ }
54
+ setFocusedItem(item);
55
+ focusItem(item);
56
+ },
57
+ size: "s",
58
+ tabIndex: -1
59
+ });
60
+ return /* @__PURE__ */ React2.createElement("div", {
61
+ style: { width: "24px" }
62
+ });
63
+ };
64
+ export {
65
+ ExpandCaret
66
+ };
67
+ //# sourceMappingURL=ExpandCaret.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/parts/ExpandCaret.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useContext, useCallback } from 'react';\nimport Button from '@elliemae/ds-button';\nimport { ArrowheadDown, ArrowheadRight } from '@elliemae/ds-icons';\nimport { toggleItemExpand } from '../utils/group-expands-helpers';\nimport { focusItem } from '../utils/tree-helpers';\nimport TreeViewContext from '../TreeViewContext';\nimport type { DSTreeviewT } from '../react-desc-prop-types';\n\ninterface PropsT {\n item: DSTreeviewT.Item;\n}\n\nexport const ExpandCaret = (props: PropsT): JSX.Element | null => {\n const defaultHandleExpandGroup = useCallback(toggleItemExpand, []);\n const { item } = props;\n const { id, isExpanded, isGroup, children } = item;\n const isGroupOrHasChildrens = isGroup || (Array.isArray(children) && children.length > 0);\n const ctx = useContext(TreeViewContext);\n const {\n props: { onItemFocus },\n handleExpandGroup = defaultHandleExpandGroup,\n triggerTreeRerender,\n updateUserExpandedState,\n setLatestToggledItem,\n setFocusedItem,\n virtualListHelpers: { scrollToIndex },\n } = ctx;\n\n if (isGroupOrHasChildrens)\n return (\n <Button\n buttonType=\"text\"\n className=\"expandable-arrow\"\n data-testid=\"tree-item-expand-toggle\"\n key={`${id}-expand-addon`}\n icon={\n isExpanded ? (\n <ArrowheadDown size=\"s\" data-testid=\"ic-arrow-head-down\" />\n ) : (\n <ArrowheadRight size=\"s\" data-testid=\"ic-arrow-head-right\" />\n )\n }\n onMouseDown={(e: React.MouseEvent) => {\n // prevent focusing the caret\n if (e) {\n e.preventDefault();\n }\n }}\n onClick={(e) => {\n e.stopPropagation();\n if (e) handleExpandGroup(item, triggerTreeRerender, updateUserExpandedState, scrollToIndex, e);\n setLatestToggledItem(item);\n const itemVitualIndex = item.virtualIndex;\n if (typeof itemVitualIndex === 'number') {\n onItemFocus({\n itemIndex: itemVitualIndex,\n scrollToItem: (opts = { align: 'start' }) => scrollToIndex(itemVitualIndex, opts),\n item,\n });\n }\n setFocusedItem(item);\n focusItem(item);\n }}\n size=\"s\"\n tabIndex={-1}\n />\n );\n return <div style={{ width: '24px' }} />;\n};\n"],
5
+ "mappings": "AAAA;ACAA;AACA;AACA;AACA;AACA;AACA;AAOO,MAAM,cAAc,CAAC,UAAsC;AAChE,QAAM,2BAA2B,YAAY,kBAAkB;AAC/D,QAAM,EAAE,SAAS;AACjB,QAAM,EAAE,IAAI,YAAY,SAAS,aAAa;AAC9C,QAAM,wBAAwB,WAAY,MAAM,QAAQ,aAAa,SAAS,SAAS;AACvF,QAAM,MAAM,WAAW;AACvB,QAAM;AAAA,IACJ,OAAO,EAAE;AAAA,IACT,oBAAoB;AAAA,IACpB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,oBAAoB,EAAE;AAAA,MACpB;AAEJ,MAAI;AACF,WACE,qCAAC,QAAD;AAAA,MACE,YAAW;AAAA,MACX,WAAU;AAAA,MACV,eAAY;AAAA,MACZ,KAAK,GAAG;AAAA,MACR,MACE,aACE,qCAAC,eAAD;AAAA,QAAe,MAAK;AAAA,QAAI,eAAY;AAAA,WAEpC,qCAAC,gBAAD;AAAA,QAAgB,MAAK;AAAA,QAAI,eAAY;AAAA;AAAA,MAGzC,aAAa,CAAC,MAAwB;AAEpC,YAAI,GAAG;AACL,YAAE;AAAA;AAAA;AAAA,MAGN,SAAS,CAAC,MAAM;AACd,UAAE;AACF,YAAI;AAAG,4BAAkB,MAAM,qBAAqB,yBAAyB,eAAe;AAC5F,6BAAqB;AACrB,cAAM,kBAAkB,KAAK;AAC7B,YAAI,OAAO,oBAAoB,UAAU;AACvC,sBAAY;AAAA,YACV,WAAW;AAAA,YACX,cAAc,CAAC,OAAO,EAAE,OAAO,cAAc,cAAc,iBAAiB;AAAA,YAC5E;AAAA;AAAA;AAGJ,uBAAe;AACf,kBAAU;AAAA;AAAA,MAEZ,MAAK;AAAA,MACL,UAAU;AAAA;AAGhB,SAAO,qCAAC,OAAD;AAAA,IAAK,OAAO,EAAE,OAAO;AAAA;AAAA;",
6
+ "names": []
7
+ }
@@ -0,0 +1,23 @@
1
+ import * as React from "react";
2
+ import React2, { useContext } from "react";
3
+ import { cx } from "@elliemae/ds-utilities";
4
+ import TreeViewContext from "../TreeViewContext";
5
+ const Icon = (props) => {
6
+ const { item } = props;
7
+ const isGroupOrHasChildrens = item.isGroup || Array.isArray(item.children) && item.children.length > 0;
8
+ const ctx = useContext(TreeViewContext);
9
+ const {
10
+ props: { groupIcon, itemIcon }
11
+ } = ctx;
12
+ const icon = isGroupOrHasChildrens ? groupIcon : itemIcon;
13
+ if (!icon)
14
+ return null;
15
+ return React2.cloneElement(icon, {
16
+ "data-testid": isGroupOrHasChildrens ? "tree-item-group-icon" : "tree-item-icon",
17
+ className: cx(icon.props.className, "tree-item-icon")
18
+ });
19
+ };
20
+ export {
21
+ Icon
22
+ };
23
+ //# sourceMappingURL=Icon.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/parts/Icon.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useContext } from 'react';\nimport { cx } from '@elliemae/ds-utilities';\n\nimport TreeViewContext from '../TreeViewContext';\nimport type { DSTreeviewT } from '../react-desc-prop-types';\ninterface PropsT {\n item: DSTreeviewT.Item;\n}\nexport const Icon = (props: PropsT): JSX.Element | null => {\n const { item } = props;\n const isGroupOrHasChildrens = item.isGroup || (Array.isArray(item.children) && item.children.length > 0);\n const ctx = useContext(TreeViewContext);\n const {\n props: { groupIcon, itemIcon },\n } = ctx;\n const icon = isGroupOrHasChildrens ? groupIcon : itemIcon;\n if (!icon) return null;\n\n return React.cloneElement(icon, {\n 'data-testid': isGroupOrHasChildrens ? 'tree-item-group-icon' : 'tree-item-icon',\n // legacy class-name way of handling things,\n // this will eventually be deprecated in favor of styled components\n // untill then, just eslint-ignore and move on\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-assignment\n className: cx(icon.props.className, 'tree-item-icon'),\n });\n};\n"],
5
+ "mappings": "AAAA;ACAA;AACA;AAEA;AAKO,MAAM,OAAO,CAAC,UAAsC;AACzD,QAAM,EAAE,SAAS;AACjB,QAAM,wBAAwB,KAAK,WAAY,MAAM,QAAQ,KAAK,aAAa,KAAK,SAAS,SAAS;AACtG,QAAM,MAAM,WAAW;AACvB,QAAM;AAAA,IACJ,OAAO,EAAE,WAAW;AAAA,MAClB;AACJ,QAAM,OAAO,wBAAwB,YAAY;AACjD,MAAI,CAAC;AAAM,WAAO;AAElB,SAAO,OAAM,aAAa,MAAM;AAAA,IAC9B,eAAe,wBAAwB,yBAAyB;AAAA,IAKhE,WAAW,GAAG,KAAK,MAAM,WAAW;AAAA;AAAA;",
6
+ "names": []
7
+ }
@@ -0,0 +1,26 @@
1
+ import * as React from "react";
2
+ import React2 from "react";
3
+ const getItemNestingLeftPadding = (level, opts) => {
4
+ const { spaceForNestingLevel = 1.5 } = opts;
5
+ const groupLeftPadding = spaceForNestingLevel * (level - 1);
6
+ const finalLeftPadding = groupLeftPadding + spaceForNestingLevel - 0.1;
7
+ return finalLeftPadding > 0 ? `${finalLeftPadding}em` : "0";
8
+ };
9
+ const NestingSpace = (props) => {
10
+ const { item, spaceForNestingLevel } = props;
11
+ const { treeDepth } = item;
12
+ if (treeDepth) {
13
+ const itemNestingLeftPadding = getItemNestingLeftPadding(treeDepth - 1, {
14
+ spaceForNestingLevel
15
+ });
16
+ return /* @__PURE__ */ React2.createElement("div", {
17
+ "data-testid": "tree-item-nested-space",
18
+ style: { width: itemNestingLeftPadding }
19
+ });
20
+ }
21
+ return null;
22
+ };
23
+ export {
24
+ NestingSpace
25
+ };
26
+ //# sourceMappingURL=NestingSpace.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/parts/NestingSpace.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport type { DSTreeviewT } from '../react-desc-prop-types';\n\nconst getItemNestingLeftPadding = (level: number, opts: { spaceForNestingLevel: number }) => {\n const { spaceForNestingLevel = 1.5 } = opts;\n const groupLeftPadding = spaceForNestingLevel * (level - 1);\n const finalLeftPadding = groupLeftPadding + spaceForNestingLevel - 0.1;\n // root level left-padding would be negative and would not be applied\n // if \"root-level\" nesting, then defaults to 0 left-padding.\n return finalLeftPadding > 0 ? `${finalLeftPadding}em` : '0';\n};\n\ntype NestingSpacePropsType = {\n item: DSTreeviewT.Item;\n spaceForNestingLevel: number;\n};\n\nexport const NestingSpace = (props: NestingSpacePropsType): JSX.Element | null => {\n const { item, spaceForNestingLevel } = props;\n const { treeDepth } = item;\n if (treeDepth) {\n const itemNestingLeftPadding = getItemNestingLeftPadding(treeDepth - 1, {\n spaceForNestingLevel,\n });\n\n return <div data-testid=\"tree-item-nested-space\" style={{ width: itemNestingLeftPadding }} />;\n }\n return null;\n};\n"],
5
+ "mappings": "AAAA;ACAA;AAGA,MAAM,4BAA4B,CAAC,OAAe,SAA2C;AAC3F,QAAM,EAAE,uBAAuB,QAAQ;AACvC,QAAM,mBAAmB,uBAAwB,SAAQ;AACzD,QAAM,mBAAmB,mBAAmB,uBAAuB;AAGnE,SAAO,mBAAmB,IAAI,GAAG,uBAAuB;AAAA;AAQnD,MAAM,eAAe,CAAC,UAAqD;AAChF,QAAM,EAAE,MAAM,yBAAyB;AACvC,QAAM,EAAE,cAAc;AACtB,MAAI,WAAW;AACb,UAAM,yBAAyB,0BAA0B,YAAY,GAAG;AAAA,MACtE;AAAA;AAGF,WAAO,qCAAC,OAAD;AAAA,MAAK,eAAY;AAAA,MAAyB,OAAO,EAAE,OAAO;AAAA;AAAA;AAEnE,SAAO;AAAA;",
6
+ "names": []
7
+ }
@@ -0,0 +1,45 @@
1
+ import * as React from "react";
2
+ import React2, { useContext, useCallback, useMemo } from "react";
3
+ import { DSRadio } from "@elliemae/ds-form";
4
+ import TreeViewContext from "../TreeViewContext";
5
+ function RadioSelectable(props) {
6
+ const { item, itemIndex } = props;
7
+ const ctx = useContext(TreeViewContext);
8
+ const {
9
+ props: { onSelectionChange, isItemDisabled },
10
+ virtualListHelpers: { scrollToIndex },
11
+ uniqueTreeViewUUID,
12
+ selectedCheckboxes,
13
+ setSelectedCheckboxes
14
+ } = ctx;
15
+ const { id } = item;
16
+ const onRadioChange = useCallback(() => {
17
+ const newSelectionHasmap = { [id]: true };
18
+ setSelectedCheckboxes(newSelectionHasmap);
19
+ const indexAndScrollTo = {
20
+ scrollToItem: () => {
21
+ if (item.virtualIndex)
22
+ scrollToIndex(item.virtualIndex);
23
+ },
24
+ itemIndex
25
+ };
26
+ if (onSelectionChange)
27
+ onSelectionChange(newSelectionHasmap, item, indexAndScrollTo);
28
+ }, [id, setSelectedCheckboxes, itemIndex, onSelectionChange, item, scrollToIndex]);
29
+ const radioName = useMemo(() => `radios-${uniqueTreeViewUUID}`, [uniqueTreeViewUUID]);
30
+ const isDisabled = useMemo(() => isItemDisabled(item), [item, isItemDisabled]);
31
+ return /* @__PURE__ */ React2.createElement(DSRadio, {
32
+ checked: selectedCheckboxes[id] === true,
33
+ name: radioName,
34
+ disabled: isDisabled,
35
+ className: "em-ds-tree-item-radio",
36
+ "data-testid": "tree-item-radio",
37
+ onChange: onRadioChange,
38
+ tabIndex: 0
39
+ });
40
+ }
41
+ var RadioSelectable_default = RadioSelectable;
42
+ export {
43
+ RadioSelectable_default as default
44
+ };
45
+ //# sourceMappingURL=RadioSelectable.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/parts/RadioSelectable.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useContext, useCallback, useMemo } from 'react';\nimport { DSRadio } from '@elliemae/ds-form';\nimport TreeViewContext from '../TreeViewContext';\nimport type { DSTreeviewT } from '../react-desc-prop-types';\ninterface PropsT {\n item: DSTreeviewT.Item;\n itemIndex: number;\n}\nfunction RadioSelectable(props: PropsT) {\n const { item, itemIndex } = props;\n\n const ctx = useContext(TreeViewContext);\n const {\n props: { onSelectionChange, isItemDisabled },\n virtualListHelpers: { scrollToIndex },\n uniqueTreeViewUUID,\n selectedCheckboxes,\n setSelectedCheckboxes,\n } = ctx;\n\n const { id } = item;\n\n const onRadioChange = useCallback(() => {\n const newSelectionHasmap = { [id]: true };\n setSelectedCheckboxes(newSelectionHasmap);\n const indexAndScrollTo = {\n scrollToItem: () => {\n if (item.virtualIndex) scrollToIndex(item.virtualIndex);\n },\n itemIndex,\n };\n if (onSelectionChange) onSelectionChange(newSelectionHasmap, item, indexAndScrollTo);\n }, [id, setSelectedCheckboxes, itemIndex, onSelectionChange, item, scrollToIndex]);\n\n const radioName = useMemo(() => `radios-${uniqueTreeViewUUID}`, [uniqueTreeViewUUID]);\n\n const isDisabled = useMemo(() => isItemDisabled(item), [item, isItemDisabled]);\n\n return (\n <DSRadio\n checked={selectedCheckboxes[id] === true}\n name={radioName}\n disabled={isDisabled}\n className=\"em-ds-tree-item-radio\"\n data-testid=\"tree-item-radio\"\n onChange={onRadioChange}\n tabIndex={0}\n />\n );\n}\n\nexport default RadioSelectable;\n"],
5
+ "mappings": "AAAA;ACAA;AACA;AACA;AAMA,yBAAyB,OAAe;AACtC,QAAM,EAAE,MAAM,cAAc;AAE5B,QAAM,MAAM,WAAW;AACvB,QAAM;AAAA,IACJ,OAAO,EAAE,mBAAmB;AAAA,IAC5B,oBAAoB,EAAE;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,MACE;AAEJ,QAAM,EAAE,OAAO;AAEf,QAAM,gBAAgB,YAAY,MAAM;AACtC,UAAM,qBAAqB,GAAG,KAAK;AACnC,0BAAsB;AACtB,UAAM,mBAAmB;AAAA,MACvB,cAAc,MAAM;AAClB,YAAI,KAAK;AAAc,wBAAc,KAAK;AAAA;AAAA,MAE5C;AAAA;AAEF,QAAI;AAAmB,wBAAkB,oBAAoB,MAAM;AAAA,KAClE,CAAC,IAAI,uBAAuB,WAAW,mBAAmB,MAAM;AAEnE,QAAM,YAAY,QAAQ,MAAM,UAAU,sBAAsB,CAAC;AAEjE,QAAM,aAAa,QAAQ,MAAM,eAAe,OAAO,CAAC,MAAM;AAE9D,SACE,qCAAC,SAAD;AAAA,IACE,SAAS,mBAAmB,QAAQ;AAAA,IACpC,MAAM;AAAA,IACN,UAAU;AAAA,IACV,WAAU;AAAA,IACV,eAAY;AAAA,IACZ,UAAU;AAAA,IACV,UAAU;AAAA;AAAA;AAKhB,IAAO,0BAAQ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,165 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
3
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
4
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
5
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6
+ var __spreadValues = (a, b) => {
7
+ for (var prop in b || (b = {}))
8
+ if (__hasOwnProp.call(b, prop))
9
+ __defNormalProp(a, prop, b[prop]);
10
+ if (__getOwnPropSymbols)
11
+ for (var prop of __getOwnPropSymbols(b)) {
12
+ if (__propIsEnum.call(b, prop))
13
+ __defNormalProp(a, prop, b[prop]);
14
+ }
15
+ return a;
16
+ };
17
+ import * as React from "react";
18
+ import React2, { useContext, useMemo, useCallback } from "react";
19
+ import { aggregatedClasses } from "@elliemae/ds-classnames";
20
+ import RadioSelectable from "./RadioSelectable";
21
+ import CheckboxSelectable from "./CheckboxSelectable";
22
+ import TreeViewContext from "../TreeViewContext";
23
+ import { setMultipleRefs } from "../utils/refs-helpers";
24
+ import { useOnItemKeyDown } from "../utils/keyboard-helpers";
25
+ import { NestingSpace } from "./NestingSpace";
26
+ import { Icon } from "./Icon";
27
+ import { ExpandCaret } from "./ExpandCaret";
28
+ import { TreeItemText } from "./TreeItemText";
29
+ import { DSTreeViewPrefix, treeItemBlockName } from "../config/cssClassesConstants";
30
+ import { DnDHandle } from "./DnDHandle";
31
+ import { withDnDSortableItemContext } from "../hoc/WithDnDSortableItemContext";
32
+ import { DropIndicatorPosition, SortableItemContext } from "../hoc/SortableItemContext";
33
+ import DropIndicator from "./DropIndicator";
34
+ const TreeListItem = aggregatedClasses("li", {
35
+ "data-testid": treeItemBlockName,
36
+ role: "treeitem"
37
+ })(treeItemBlockName);
38
+ const TreeListItemAddonsWrapper = aggregatedClasses("div")(treeItemBlockName, "addons");
39
+ const TreeItem = (props) => {
40
+ const {
41
+ item,
42
+ itemIndex,
43
+ itemWrapperStyle = {},
44
+ virtualItemRef,
45
+ spaceForNestingLevel = 1.5,
46
+ isDragOverlay = false
47
+ } = props;
48
+ const { id, node } = item;
49
+ const { nodeItemRef } = node.model;
50
+ const { draggableProps } = useContext(SortableItemContext);
51
+ const onItemKeyDown = useOnItemKeyDown(item, draggableProps);
52
+ const ctx = useContext(TreeViewContext);
53
+ const {
54
+ props: { disableIcons, rightAddons, onItemClick, onItemFocus, rowSize, labelOverflow },
55
+ withRadioChecks,
56
+ withCheckboxChecks,
57
+ withDragAndDrop,
58
+ selectedItem,
59
+ selectedCheckboxes,
60
+ hoverItem,
61
+ virtualListHelpers: { scrollToIndex },
62
+ setHoverItem,
63
+ setSelectedItem,
64
+ setFocusedItem
65
+ } = ctx;
66
+ const setItemRefs = (ref) => {
67
+ setMultipleRefs(virtualItemRef, !isDragOverlay && nodeItemRef, !isDragOverlay && draggableProps && draggableProps.setNodeRef)(ref);
68
+ };
69
+ const dropIndicatorPosition = draggableProps && draggableProps.shouldShowDropIndicatorPosition && draggableProps.dropIndicatorPosition;
70
+ const isDropIndicatorPositionInside = dropIndicatorPosition === DropIndicatorPosition.Inside;
71
+ const isDragging = draggableProps && draggableProps.isDragging;
72
+ const isDropValid = draggableProps && draggableProps.isDropValid;
73
+ const dropPreviewClassName = useMemo(() => {
74
+ if (isDropIndicatorPositionInside) {
75
+ const className = `${DSTreeViewPrefix}-${treeItemBlockName}${isDropValid ? "--valid" : "--invalid"}-drop-in`;
76
+ return className;
77
+ }
78
+ return "";
79
+ }, [isDropIndicatorPositionInside, isDropValid]);
80
+ const dragOverlayClassName = useMemo(() => isDragOverlay ? "drag-overlay" : "", [isDragOverlay]);
81
+ const selectedClassName = useMemo(() => selectedItem?.id === item.id && !isDragOverlay ? "selected" : "", [isDragOverlay, item.id, selectedItem?.id]);
82
+ const hoverClassName = useMemo(() => !isDragOverlay && hoverItem?.id === item.id && !isDragging ? "hover" : "", [isDragOverlay, hoverItem?.id, item.id, isDragging]);
83
+ const fixedHeightClassname = useMemo(() => {
84
+ if (labelOverflow === "truncate") {
85
+ if (rowSize === "compact")
86
+ return `${DSTreeViewPrefix}-${treeItemBlockName}--fixed-height-compact`;
87
+ return `${DSTreeViewPrefix}-${treeItemBlockName}--fixed-height`;
88
+ }
89
+ return "";
90
+ }, [labelOverflow, rowSize]);
91
+ const isDraggingClassname = useMemo(() => {
92
+ if (isDragging)
93
+ return `${DSTreeViewPrefix}-${treeItemBlockName}--dragging`;
94
+ return "";
95
+ }, [isDragging]);
96
+ const finalClassName = useMemo(() => `${dropPreviewClassName} ${fixedHeightClassname} ${selectedClassName} ${hoverClassName} ${dragOverlayClassName} ${isDraggingClassname}`, [
97
+ dropPreviewClassName,
98
+ fixedHeightClassname,
99
+ selectedClassName,
100
+ hoverClassName,
101
+ dragOverlayClassName,
102
+ isDraggingClassname
103
+ ]);
104
+ const handleItemClick = useCallback((e) => {
105
+ onItemClick(item, e);
106
+ setFocusedItem(item);
107
+ setSelectedItem(item);
108
+ const itemVirtualIndex = typeof item.virtualIndex === "number" ? item.virtualIndex : -1;
109
+ onItemFocus({
110
+ itemIndex: itemVirtualIndex,
111
+ scrollToItem: (opts = { align: "start" }) => scrollToIndex(itemVirtualIndex, opts),
112
+ item
113
+ });
114
+ }, [item, scrollToIndex, onItemClick, onItemFocus, setSelectedItem, setFocusedItem]);
115
+ return /* @__PURE__ */ React2.createElement(TreeListItem, {
116
+ tabIndex: 0,
117
+ onMouseLeave: () => {
118
+ if (hoverItem?.id === item.id) {
119
+ setHoverItem(null);
120
+ }
121
+ },
122
+ onMouseEnter: () => {
123
+ setHoverItem(item);
124
+ },
125
+ onClick: handleItemClick,
126
+ onBlur: () => setFocusedItem(null),
127
+ ref: setItemRefs,
128
+ style: __spreadValues({}, itemWrapperStyle),
129
+ className: finalClassName,
130
+ "aria-expanded": !!item.isExpanded,
131
+ "aria-selected": !!selectedCheckboxes[item.id],
132
+ "data-id": item.id,
133
+ "data-index": item.virtualIndex,
134
+ onKeyDown: onItemKeyDown
135
+ }, /* @__PURE__ */ React2.createElement(TreeListItemAddonsWrapper, null, withDragAndDrop ? /* @__PURE__ */ React2.createElement(DnDHandle, {
136
+ id,
137
+ isDragOverlay
138
+ }) : null, withRadioChecks && !isDragOverlay ? /* @__PURE__ */ React2.createElement(RadioSelectable, {
139
+ item,
140
+ itemIndex
141
+ }) : null, withCheckboxChecks && !isDragOverlay ? /* @__PURE__ */ React2.createElement(CheckboxSelectable, {
142
+ item,
143
+ itemIndex
144
+ }) : null, !isDragOverlay && /* @__PURE__ */ React2.createElement(NestingSpace, {
145
+ item,
146
+ spaceForNestingLevel
147
+ }), !isDragOverlay && /* @__PURE__ */ React2.createElement(ExpandCaret, {
148
+ item
149
+ }), !disableIcons ? /* @__PURE__ */ React2.createElement(Icon, {
150
+ item
151
+ }) : null), /* @__PURE__ */ React2.createElement(TreeItemText, {
152
+ item
153
+ }), rightAddons && /* @__PURE__ */ React2.createElement(TreeListItemAddonsWrapper, null, typeof rightAddons === "function" ? rightAddons(item) : rightAddons), /* @__PURE__ */ React2.createElement(DropIndicator, {
154
+ dropIndicatorPosition,
155
+ isDropValid
156
+ }));
157
+ };
158
+ var TreeItem_default = withDnDSortableItemContext(TreeItem);
159
+ export {
160
+ TreeItem,
161
+ TreeListItem,
162
+ TreeListItemAddonsWrapper,
163
+ TreeItem_default as default
164
+ };
165
+ //# sourceMappingURL=TreeItem.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/parts/TreeItem.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-statements */\n/* eslint-disable complexity */\n/* eslint-disable max-lines */\nimport React, { useContext, useMemo, useCallback } from 'react';\n\nimport { aggregatedClasses } from '@elliemae/ds-classnames';\n\nimport RadioSelectable from './RadioSelectable';\nimport CheckboxSelectable from './CheckboxSelectable';\nimport TreeViewContext from '../TreeViewContext';\nimport { setMultipleRefs } from '../utils/refs-helpers';\nimport { useOnItemKeyDown } from '../utils/keyboard-helpers';\nimport { NestingSpace } from './NestingSpace';\nimport { Icon } from './Icon';\nimport { ExpandCaret } from './ExpandCaret';\nimport { TreeItemText } from './TreeItemText';\nimport { DSTreeViewPrefix, treeItemBlockName } from '../config/cssClassesConstants';\nimport type { DSTreeviewT } from '../react-desc-prop-types';\nimport { DnDHandle } from './DnDHandle';\nimport { withDnDSortableItemContext } from '../hoc/WithDnDSortableItemContext';\nimport { DropIndicatorPosition, SortableItemContext } from '../hoc/SortableItemContext';\nimport DropIndicator from './DropIndicator';\n\nexport const TreeListItem = aggregatedClasses('li', {\n 'data-testid': treeItemBlockName,\n role: 'treeitem',\n // temp fix untill we move to styled components\n})(treeItemBlockName) as unknown as React.ComponentType<React.ComponentProps<'li'>>;\n\nexport const TreeListItemAddonsWrapper = aggregatedClasses('div')(\n treeItemBlockName,\n 'addons',\n // temp fix untill we move to styled components\n) as unknown as React.ComponentType;\n\ninterface PropsT {\n item: DSTreeviewT.Item;\n itemIndex: number;\n isDragOverlay?: boolean;\n virtualItemRef?: React.RefObject<HTMLLIElement>;\n itemWrapperStyle?: { [key: string]: unknown };\n spaceForNestingLevel?: number;\n}\nexport const TreeItem = (props: PropsT): JSX.Element => {\n const {\n item,\n itemIndex,\n itemWrapperStyle = {},\n virtualItemRef,\n spaceForNestingLevel = 1.5,\n isDragOverlay = false,\n } = props;\n const { id, node } = item;\n const { nodeItemRef } = node.model;\n\n const { draggableProps } = useContext(SortableItemContext);\n\n const onItemKeyDown = useOnItemKeyDown(item, draggableProps);\n\n const ctx = useContext(TreeViewContext);\n const {\n props: { disableIcons, rightAddons, onItemClick, onItemFocus, rowSize, labelOverflow },\n withRadioChecks,\n withCheckboxChecks,\n withDragAndDrop,\n selectedItem,\n selectedCheckboxes,\n hoverItem,\n virtualListHelpers: { scrollToIndex },\n setHoverItem,\n setSelectedItem,\n setFocusedItem,\n } = ctx;\n\n // Sortable Items needs to update\n // - the virtual list ref (for react-virtual requirement)\n // - nodeItemRef which is a prop avaiable in the TreeModel nodes\n // - the drag and drop node reference\n const setItemRefs: React.LegacyRef<HTMLLIElement> | undefined = (ref: HTMLLIElement) => {\n setMultipleRefs(\n virtualItemRef,\n !isDragOverlay && nodeItemRef,\n !isDragOverlay && draggableProps && draggableProps.setNodeRef,\n )(ref);\n };\n\n const dropIndicatorPosition =\n draggableProps && draggableProps.shouldShowDropIndicatorPosition && draggableProps.dropIndicatorPosition;\n\n const isDropIndicatorPositionInside = dropIndicatorPosition === DropIndicatorPosition.Inside;\n\n const isDragging = draggableProps && draggableProps.isDragging;\n\n const isDropValid = draggableProps && draggableProps.isDropValid;\n\n const dropPreviewClassName = useMemo(() => {\n if (isDropIndicatorPositionInside) {\n const className = `${DSTreeViewPrefix}-${treeItemBlockName}${isDropValid ? '--valid' : '--invalid'}-drop-in`;\n return className;\n }\n return '';\n }, [isDropIndicatorPositionInside, isDropValid]);\n\n const dragOverlayClassName = useMemo(() => (isDragOverlay ? 'drag-overlay' : ''), [isDragOverlay]);\n\n const selectedClassName = useMemo(\n () => (selectedItem?.id === item.id && !isDragOverlay ? 'selected' : ''),\n [isDragOverlay, item.id, selectedItem?.id],\n );\n const hoverClassName = useMemo(\n () => (!isDragOverlay && hoverItem?.id === item.id && !isDragging ? 'hover' : ''),\n [isDragOverlay, hoverItem?.id, item.id, isDragging],\n );\n const fixedHeightClassname = useMemo(() => {\n if (labelOverflow === 'truncate') {\n if (rowSize === 'compact') return `${DSTreeViewPrefix}-${treeItemBlockName}--fixed-height-compact`;\n return `${DSTreeViewPrefix}-${treeItemBlockName}--fixed-height`;\n }\n return '';\n }, [labelOverflow, rowSize]);\n\n const isDraggingClassname = useMemo(() => {\n if (isDragging) return `${DSTreeViewPrefix}-${treeItemBlockName}--dragging`;\n return '';\n }, [isDragging]);\n\n const finalClassName = useMemo(\n () =>\n `${dropPreviewClassName} ${fixedHeightClassname} ${selectedClassName} ${hoverClassName} ${dragOverlayClassName} ${isDraggingClassname}`,\n [\n dropPreviewClassName,\n fixedHeightClassname,\n selectedClassName,\n hoverClassName,\n dragOverlayClassName,\n isDraggingClassname,\n ],\n );\n\n const handleItemClick = useCallback(\n (e: React.MouseEvent<HTMLLIElement>) => {\n onItemClick(item, e);\n setFocusedItem(item);\n setSelectedItem(item);\n const itemVirtualIndex = typeof item.virtualIndex === 'number' ? item.virtualIndex : -1;\n onItemFocus({\n itemIndex: itemVirtualIndex,\n scrollToItem: (opts = { align: 'start' }) => scrollToIndex(itemVirtualIndex, opts),\n item,\n });\n },\n [item, scrollToIndex, onItemClick, onItemFocus, setSelectedItem, setFocusedItem],\n );\n\n return (\n <TreeListItem\n tabIndex={0}\n onMouseLeave={() => {\n if (hoverItem?.id === item.id) {\n setHoverItem(null);\n }\n }}\n onMouseEnter={() => {\n setHoverItem(item);\n }}\n onClick={handleItemClick}\n onBlur={() => setFocusedItem(null)}\n ref={setItemRefs}\n style={{ ...itemWrapperStyle }}\n className={finalClassName}\n aria-expanded={!!item.isExpanded}\n aria-selected={!!selectedCheckboxes[item.id]}\n data-id={item.id}\n data-index={item.virtualIndex}\n onKeyDown={onItemKeyDown}\n >\n <TreeListItemAddonsWrapper>\n {withDragAndDrop ? <DnDHandle id={id} isDragOverlay={isDragOverlay} /> : null}\n {withRadioChecks && !isDragOverlay ? <RadioSelectable item={item} itemIndex={itemIndex} /> : null}\n {withCheckboxChecks && !isDragOverlay ? <CheckboxSelectable item={item} itemIndex={itemIndex} /> : null}\n {!isDragOverlay && <NestingSpace item={item} spaceForNestingLevel={spaceForNestingLevel} />}\n {!isDragOverlay && <ExpandCaret item={item} />}\n {!disableIcons ? <Icon item={item} /> : null}\n </TreeListItemAddonsWrapper>\n <TreeItemText item={item} />\n {rightAddons && (\n <TreeListItemAddonsWrapper>\n {typeof rightAddons === 'function' ? rightAddons(item) : rightAddons}\n </TreeListItemAddonsWrapper>\n )}\n <DropIndicator dropIndicatorPosition={dropIndicatorPosition} isDropValid={isDropValid} />\n </TreeListItem>\n );\n};\n\nexport default withDnDSortableItemContext(TreeItem);\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;AAAA;ACGA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEO,MAAM,eAAe,kBAAkB,MAAM;AAAA,EAClD,eAAe;AAAA,EACf,MAAM;AAAA,GAEL;AAEI,MAAM,4BAA4B,kBAAkB,OACzD,mBACA;AAYK,MAAM,WAAW,CAAC,UAA+B;AACtD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA,mBAAmB;AAAA,IACnB;AAAA,IACA,uBAAuB;AAAA,IACvB,gBAAgB;AAAA,MACd;AACJ,QAAM,EAAE,IAAI,SAAS;AACrB,QAAM,EAAE,gBAAgB,KAAK;AAE7B,QAAM,EAAE,mBAAmB,WAAW;AAEtC,QAAM,gBAAgB,iBAAiB,MAAM;AAE7C,QAAM,MAAM,WAAW;AACvB,QAAM;AAAA,IACJ,OAAO,EAAE,cAAc,aAAa,aAAa,aAAa,SAAS;AAAA,IACvE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,oBAAoB,EAAE;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,MACE;AAMJ,QAAM,cAA0D,CAAC,QAAuB;AACtF,oBACE,gBACA,CAAC,iBAAiB,aAClB,CAAC,iBAAiB,kBAAkB,eAAe,YACnD;AAAA;AAGJ,QAAM,wBACJ,kBAAkB,eAAe,mCAAmC,eAAe;AAErF,QAAM,gCAAgC,0BAA0B,sBAAsB;AAEtF,QAAM,aAAa,kBAAkB,eAAe;AAEpD,QAAM,cAAc,kBAAkB,eAAe;AAErD,QAAM,uBAAuB,QAAQ,MAAM;AACzC,QAAI,+BAA+B;AACjC,YAAM,YAAY,GAAG,oBAAoB,oBAAoB,cAAc,YAAY;AACvF,aAAO;AAAA;AAET,WAAO;AAAA,KACN,CAAC,+BAA+B;AAEnC,QAAM,uBAAuB,QAAQ,MAAO,gBAAgB,iBAAiB,IAAK,CAAC;AAEnF,QAAM,oBAAoB,QACxB,MAAO,cAAc,OAAO,KAAK,MAAM,CAAC,gBAAgB,aAAa,IACrE,CAAC,eAAe,KAAK,IAAI,cAAc;AAEzC,QAAM,iBAAiB,QACrB,MAAO,CAAC,iBAAiB,WAAW,OAAO,KAAK,MAAM,CAAC,aAAa,UAAU,IAC9E,CAAC,eAAe,WAAW,IAAI,KAAK,IAAI;AAE1C,QAAM,uBAAuB,QAAQ,MAAM;AACzC,QAAI,kBAAkB,YAAY;AAChC,UAAI,YAAY;AAAW,eAAO,GAAG,oBAAoB;AACzD,aAAO,GAAG,oBAAoB;AAAA;AAEhC,WAAO;AAAA,KACN,CAAC,eAAe;AAEnB,QAAM,sBAAsB,QAAQ,MAAM;AACxC,QAAI;AAAY,aAAO,GAAG,oBAAoB;AAC9C,WAAO;AAAA,KACN,CAAC;AAEJ,QAAM,iBAAiB,QACrB,MACE,GAAG,wBAAwB,wBAAwB,qBAAqB,kBAAkB,wBAAwB,uBACpH;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAIJ,QAAM,kBAAkB,YACtB,CAAC,MAAuC;AACtC,gBAAY,MAAM;AAClB,mBAAe;AACf,oBAAgB;AAChB,UAAM,mBAAmB,OAAO,KAAK,iBAAiB,WAAW,KAAK,eAAe;AACrF,gBAAY;AAAA,MACV,WAAW;AAAA,MACX,cAAc,CAAC,OAAO,EAAE,OAAO,cAAc,cAAc,kBAAkB;AAAA,MAC7E;AAAA;AAAA,KAGJ,CAAC,MAAM,eAAe,aAAa,aAAa,iBAAiB;AAGnE,SACE,qCAAC,cAAD;AAAA,IACE,UAAU;AAAA,IACV,cAAc,MAAM;AAClB,UAAI,WAAW,OAAO,KAAK,IAAI;AAC7B,qBAAa;AAAA;AAAA;AAAA,IAGjB,cAAc,MAAM;AAClB,mBAAa;AAAA;AAAA,IAEf,SAAS;AAAA,IACT,QAAQ,MAAM,eAAe;AAAA,IAC7B,KAAK;AAAA,IACL,OAAO,mBAAK;AAAA,IACZ,WAAW;AAAA,IACX,iBAAe,CAAC,CAAC,KAAK;AAAA,IACtB,iBAAe,CAAC,CAAC,mBAAmB,KAAK;AAAA,IACzC,WAAS,KAAK;AAAA,IACd,cAAY,KAAK;AAAA,IACjB,WAAW;AAAA,KAEX,qCAAC,2BAAD,MACG,kBAAkB,qCAAC,WAAD;AAAA,IAAW;AAAA,IAAQ;AAAA,OAAmC,MACxE,mBAAmB,CAAC,gBAAgB,qCAAC,iBAAD;AAAA,IAAiB;AAAA,IAAY;AAAA,OAA2B,MAC5F,sBAAsB,CAAC,gBAAgB,qCAAC,oBAAD;AAAA,IAAoB;AAAA,IAAY;AAAA,OAA2B,MAClG,CAAC,iBAAiB,qCAAC,cAAD;AAAA,IAAc;AAAA,IAAY;AAAA,MAC5C,CAAC,iBAAiB,qCAAC,aAAD;AAAA,IAAa;AAAA,MAC/B,CAAC,eAAe,qCAAC,MAAD;AAAA,IAAM;AAAA,OAAiB,OAE1C,qCAAC,cAAD;AAAA,IAAc;AAAA,MACb,eACC,qCAAC,2BAAD,MACG,OAAO,gBAAgB,aAAa,YAAY,QAAQ,cAG7D,qCAAC,eAAD;AAAA,IAAe;AAAA,IAA8C;AAAA;AAAA;AAKnE,IAAO,mBAAQ,2BAA2B;",
6
+ "names": []
7
+ }
@@ -0,0 +1,72 @@
1
+ import * as React from "react";
2
+ import React2, { useMemo, useContext } from "react";
3
+ import Highlighter from "react-highlight-words";
4
+ import { SimpleTruncatedTooltipText } from "@elliemae/ds-truncated-tooltip-text";
5
+ import { aggregatedClasses } from "@elliemae/ds-classnames";
6
+ import { ChildrenCountDisplayer } from "./ChildrenCountDisplayer";
7
+ import { DSTreeViewPrefix, treeItemBlockName } from "../config/cssClassesConstants";
8
+ import TreeViewContext from "../TreeViewContext";
9
+ const ItemContent = aggregatedClasses("div")(`${treeItemBlockName}-content`);
10
+ const ItemValue = aggregatedClasses("span")(treeItemBlockName, "value");
11
+ const classNameModifierWrapAll = `${DSTreeViewPrefix}-${treeItemBlockName}__value--wrap-all`;
12
+ const classNameModifierTruncate = `${DSTreeViewPrefix}-${treeItemBlockName}__value--truncate`;
13
+ const CustomHighlight = ({ children }) => /* @__PURE__ */ React2.createElement("mark", {
14
+ className: "tree-text-highlight",
15
+ "data-testid": "tree-text-highlight"
16
+ }, children);
17
+ function TreeItemText(props) {
18
+ const { item } = props;
19
+ const ctx = useContext(TreeViewContext);
20
+ const {
21
+ props: { searchQuery, showChildrenAmount, labelOverflow, nameKey }
22
+ } = ctx;
23
+ const Text = useMemo(() => {
24
+ const itemLabelText = item[nameKey];
25
+ if (searchQuery) {
26
+ if (labelOverflow === "truncate") {
27
+ return /* @__PURE__ */ React2.createElement(SimpleTruncatedTooltipText, {
28
+ value: /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement(Highlighter, {
29
+ autoEscape: true,
30
+ highlightTag: CustomHighlight,
31
+ searchWords: [searchQuery],
32
+ textToHighlight: itemLabelText
33
+ }), showChildrenAmount ? /* @__PURE__ */ React2.createElement(ChildrenCountDisplayer, {
34
+ item
35
+ }) : null)
36
+ });
37
+ }
38
+ return /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement(Highlighter, {
39
+ autoEscape: true,
40
+ highlightTag: CustomHighlight,
41
+ searchWords: [searchQuery],
42
+ textToHighlight: itemLabelText
43
+ }), showChildrenAmount ? /* @__PURE__ */ React2.createElement(ChildrenCountDisplayer, {
44
+ item
45
+ }) : null);
46
+ }
47
+ if (labelOverflow === "truncate") {
48
+ return /* @__PURE__ */ React2.createElement(SimpleTruncatedTooltipText, {
49
+ value: /* @__PURE__ */ React2.createElement(React2.Fragment, null, itemLabelText, showChildrenAmount ? /* @__PURE__ */ React2.createElement(ChildrenCountDisplayer, {
50
+ item
51
+ }) : null)
52
+ });
53
+ }
54
+ return /* @__PURE__ */ React2.createElement(React2.Fragment, null, itemLabelText, showChildrenAmount ? /* @__PURE__ */ React2.createElement(ChildrenCountDisplayer, {
55
+ item
56
+ }) : null);
57
+ }, [item, searchQuery, nameKey, showChildrenAmount, labelOverflow]);
58
+ let className = "";
59
+ if (labelOverflow === "wrap-all")
60
+ className += `${classNameModifierWrapAll} `;
61
+ if (labelOverflow === "truncate")
62
+ className += `${classNameModifierTruncate} `;
63
+ return /* @__PURE__ */ React2.createElement(ItemContent, {
64
+ "data-testid": `${treeItemBlockName}-content`
65
+ }, /* @__PURE__ */ React2.createElement(ItemValue, {
66
+ className
67
+ }, Text));
68
+ }
69
+ export {
70
+ TreeItemText
71
+ };
72
+ //# sourceMappingURL=TreeItemText.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/parts/TreeItemText.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\nimport React, { useMemo, useContext } from 'react';\nimport Highlighter from 'react-highlight-words';\nimport { SimpleTruncatedTooltipText } from '@elliemae/ds-truncated-tooltip-text';\nimport { aggregatedClasses } from '@elliemae/ds-classnames';\n\nimport { ChildrenCountDisplayer } from './ChildrenCountDisplayer';\nimport { DSTreeViewPrefix, treeItemBlockName } from '../config/cssClassesConstants';\n\nimport TreeViewContext from '../TreeViewContext';\nimport type { DSTreeviewT } from '../react-desc-prop-types';\n\nconst ItemContent = aggregatedClasses('div')(`${treeItemBlockName}-content`) as unknown as React.ComponentType<\n React.ComponentProps<'div'>\n>;\nconst ItemValue = aggregatedClasses('span')(treeItemBlockName, 'value') as unknown as React.ComponentType<\n React.ComponentProps<'span'>\n>;\n\n// const wrapperClassName = `${DSTreeViewPrefix}-${treeItemBlockName}-content`;\nconst classNameModifierWrapAll = `${DSTreeViewPrefix}-${treeItemBlockName}__value--wrap-all`;\nconst classNameModifierTruncate = `${DSTreeViewPrefix}-${treeItemBlockName}__value--truncate`;\n\n// eslint-disable-next-line react/prop-types\nconst CustomHighlight = ({ children }: { children: React.ReactNode }) => (\n <mark className=\"tree-text-highlight\" data-testid=\"tree-text-highlight\">\n {children}\n </mark>\n);\ninterface PropsT {\n item: DSTreeviewT.Item;\n}\nexport function TreeItemText(props: PropsT): JSX.Element {\n const { item } = props;\n const ctx = useContext(TreeViewContext);\n const {\n props: { searchQuery, showChildrenAmount, labelOverflow, nameKey },\n } = ctx;\n\n const Text = useMemo(() => {\n const itemLabelText = item[nameKey] as DSTreeviewT.Item['name'];\n if (searchQuery) {\n if (labelOverflow === 'truncate') {\n return (\n <SimpleTruncatedTooltipText\n value={\n <>\n <Highlighter\n autoEscape\n highlightTag={CustomHighlight}\n searchWords={[searchQuery]}\n textToHighlight={itemLabelText}\n />\n {showChildrenAmount ? <ChildrenCountDisplayer item={item} /> : null}\n </>\n }\n />\n );\n }\n return (\n <>\n <Highlighter\n autoEscape\n highlightTag={CustomHighlight}\n searchWords={[searchQuery]}\n textToHighlight={itemLabelText}\n />\n {showChildrenAmount ? <ChildrenCountDisplayer item={item} /> : null}\n </>\n );\n }\n if (labelOverflow === 'truncate') {\n return (\n <SimpleTruncatedTooltipText\n value={\n <>\n {itemLabelText}\n {showChildrenAmount ? <ChildrenCountDisplayer item={item} /> : null}\n </>\n }\n />\n );\n }\n return (\n <>\n {itemLabelText}\n {showChildrenAmount ? <ChildrenCountDisplayer item={item} /> : null}\n </>\n );\n }, [item, searchQuery, nameKey, showChildrenAmount, labelOverflow]);\n\n let className = '';\n if (labelOverflow === 'wrap-all') className += `${classNameModifierWrapAll} `;\n if (labelOverflow === 'truncate') className += `${classNameModifierTruncate} `;\n\n return (\n <ItemContent data-testid={`${treeItemBlockName}-content`}>\n <ItemValue className={className}>{Text}</ItemValue>\n </ItemContent>\n );\n}\n"],
5
+ "mappings": "AAAA;ACCA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAGA,MAAM,cAAc,kBAAkB,OAAO,GAAG;AAGhD,MAAM,YAAY,kBAAkB,QAAQ,mBAAmB;AAK/D,MAAM,2BAA2B,GAAG,oBAAoB;AACxD,MAAM,4BAA4B,GAAG,oBAAoB;AAGzD,MAAM,kBAAkB,CAAC,EAAE,eACzB,qCAAC,QAAD;AAAA,EAAM,WAAU;AAAA,EAAsB,eAAY;AAAA,GAC/C;AAME,sBAAsB,OAA4B;AACvD,QAAM,EAAE,SAAS;AACjB,QAAM,MAAM,WAAW;AACvB,QAAM;AAAA,IACJ,OAAO,EAAE,aAAa,oBAAoB,eAAe;AAAA,MACvD;AAEJ,QAAM,OAAO,QAAQ,MAAM;AACzB,UAAM,gBAAgB,KAAK;AAC3B,QAAI,aAAa;AACf,UAAI,kBAAkB,YAAY;AAChC,eACE,qCAAC,4BAAD;AAAA,UACE,OACE,4DACE,qCAAC,aAAD;AAAA,YACE,YAAU;AAAA,YACV,cAAc;AAAA,YACd,aAAa,CAAC;AAAA,YACd,iBAAiB;AAAA,cAElB,qBAAqB,qCAAC,wBAAD;AAAA,YAAwB;AAAA,eAAiB;AAAA;AAAA;AAMzE,aACE,4DACE,qCAAC,aAAD;AAAA,QACE,YAAU;AAAA,QACV,cAAc;AAAA,QACd,aAAa,CAAC;AAAA,QACd,iBAAiB;AAAA,UAElB,qBAAqB,qCAAC,wBAAD;AAAA,QAAwB;AAAA,WAAiB;AAAA;AAIrE,QAAI,kBAAkB,YAAY;AAChC,aACE,qCAAC,4BAAD;AAAA,QACE,OACE,4DACG,eACA,qBAAqB,qCAAC,wBAAD;AAAA,UAAwB;AAAA,aAAiB;AAAA;AAAA;AAMzE,WACE,4DACG,eACA,qBAAqB,qCAAC,wBAAD;AAAA,MAAwB;AAAA,SAAiB;AAAA,KAGlE,CAAC,MAAM,aAAa,SAAS,oBAAoB;AAEpD,MAAI,YAAY;AAChB,MAAI,kBAAkB;AAAY,iBAAa,GAAG;AAClD,MAAI,kBAAkB;AAAY,iBAAa,GAAG;AAElD,SACE,qCAAC,aAAD;AAAA,IAAa,eAAa,GAAG;AAAA,KAC3B,qCAAC,WAAD;AAAA,IAAW;AAAA,KAAuB;AAAA;",
6
+ "names": []
7
+ }