@elliemae/ds-treeview 2.3.0-alpha.6 → 2.3.0-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (333) hide show
  1. package/cjs/TreeView.js +30 -0
  2. package/cjs/TreeViewContext.js +98 -0
  3. package/cjs/config/cssClassesConstants.js +13 -0
  4. package/cjs/config/useTreeview.js +127 -0
  5. package/cjs/hoc/DnDTreeContext.js +18 -0
  6. package/cjs/hoc/SortableItemContext.js +21 -0
  7. package/cjs/hoc/WithConditionalDnDContext.js +138 -0
  8. package/cjs/hoc/WithDnDSortableItemContext.js +70 -0
  9. package/cjs/index.js +26 -0
  10. package/cjs/parts/CheckboxSelectable.js +86 -0
  11. package/cjs/parts/ChildrenCountDisplayer.js +30 -0
  12. package/cjs/parts/DnDHandle.js +46 -0
  13. package/cjs/parts/DropIndicator.js +75 -0
  14. package/cjs/parts/ExpandCaret.js +94 -0
  15. package/cjs/parts/Icon.js +37 -0
  16. package/cjs/parts/NestingSpace.js +47 -0
  17. package/cjs/parts/RadioSelectable.js +59 -0
  18. package/cjs/parts/TreeItem.js +185 -0
  19. package/cjs/parts/TreeItemText.js +108 -0
  20. package/cjs/parts/TreeList.js +139 -0
  21. package/cjs/plugins/dnd/TreeDndPlugin.js +7 -0
  22. package/cjs/plugins/dnd/index.js +9 -0
  23. package/cjs/plugins/index.js +21 -0
  24. package/cjs/plugins/roving/TreeRovingPlugin.js +7 -0
  25. package/cjs/plugins/roving/index.js +9 -0
  26. package/cjs/plugins/searchable/SearchableTreePlugin.js +7 -0
  27. package/cjs/plugins/searchable/index.js +9 -0
  28. package/cjs/plugins/selectable/SelectablePluginTree.js +7 -0
  29. package/cjs/plugins/selectable/index.js +9 -0
  30. package/cjs/plugins/toolbar/TreeToolbarPlugin.js +7 -0
  31. package/cjs/plugins/toolbar/index.js +9 -0
  32. package/cjs/plugins/tree/TreeDataPlugin.js +7 -0
  33. package/cjs/plugins/tree/index.js +9 -0
  34. package/cjs/plugins/virtualization/TreeVirtualizationPlugin.js +7 -0
  35. package/cjs/plugins/virtualization/index.js +9 -0
  36. package/cjs/react-desc-prop-types.js +56 -0
  37. package/cjs/related-components/TreeViewSearchBar.js +48 -0
  38. package/cjs/sharedTypes.js +2 -0
  39. package/cjs/utils/array-helpers.js +24 -0
  40. package/cjs/utils/group-expands-helpers.js +111 -0
  41. package/cjs/utils/keyboard-helpers.js +175 -0
  42. package/cjs/utils/object-helpers.js +69 -0
  43. package/cjs/utils/refs-helpers.js +31 -0
  44. package/cjs/utils/selectable-helper.js +80 -0
  45. package/cjs/utils/string-helpers.js +7 -0
  46. package/cjs/utils/tree-helpers.js +220 -0
  47. package/cjs/utils/useInstanceRefActions.js +87 -0
  48. package/cjs/utils/useTree.js +108 -0
  49. package/esm/TreeView.js +21 -0
  50. package/{dist/esm → esm}/TreeViewContext.js +29 -24
  51. package/esm/config/cssClassesConstants.js +6 -0
  52. package/esm/config/useTreeview.js +119 -0
  53. package/esm/hoc/DnDTreeContext.js +14 -0
  54. package/esm/hoc/SortableItemContext.js +17 -0
  55. package/esm/hoc/WithConditionalDnDContext.js +128 -0
  56. package/esm/hoc/WithDnDSortableItemContext.js +61 -0
  57. package/esm/index.js +9 -0
  58. package/esm/parts/CheckboxSelectable.js +78 -0
  59. package/esm/parts/ChildrenCountDisplayer.js +22 -0
  60. package/esm/parts/DnDHandle.js +38 -0
  61. package/esm/parts/DropIndicator.js +68 -0
  62. package/esm/parts/ExpandCaret.js +85 -0
  63. package/esm/parts/Icon.js +29 -0
  64. package/esm/parts/NestingSpace.js +39 -0
  65. package/esm/parts/RadioSelectable.js +53 -0
  66. package/esm/parts/TreeItem.js +173 -0
  67. package/esm/parts/TreeItemText.js +99 -0
  68. package/esm/parts/TreeList.js +127 -0
  69. package/esm/plugins/dnd/TreeDndPlugin.js +3 -0
  70. package/esm/plugins/dnd/index.js +1 -0
  71. package/esm/plugins/index.js +7 -0
  72. package/esm/plugins/roving/TreeRovingPlugin.js +3 -0
  73. package/esm/plugins/roving/index.js +1 -0
  74. package/esm/plugins/searchable/SearchableTreePlugin.js +3 -0
  75. package/esm/plugins/searchable/index.js +1 -0
  76. package/esm/plugins/selectable/SelectablePluginTree.js +3 -0
  77. package/esm/plugins/selectable/index.js +1 -0
  78. package/esm/plugins/toolbar/TreeToolbarPlugin.js +3 -0
  79. package/esm/plugins/toolbar/index.js +1 -0
  80. package/esm/plugins/tree/TreeDataPlugin.js +3 -0
  81. package/esm/plugins/tree/index.js +1 -0
  82. package/esm/plugins/virtualization/TreeVirtualizationPlugin.js +3 -0
  83. package/esm/plugins/virtualization/index.js +1 -0
  84. package/esm/react-desc-prop-types.js +52 -0
  85. package/esm/related-components/TreeViewSearchBar.js +40 -0
  86. package/esm/sharedTypes.js +1 -0
  87. package/{dist/esm → esm}/utils/array-helpers.js +6 -6
  88. package/esm/utils/group-expands-helpers.js +99 -0
  89. package/{dist/esm → esm}/utils/keyboard-helpers.js +71 -43
  90. package/esm/utils/object-helpers.js +64 -0
  91. package/esm/utils/refs-helpers.js +27 -0
  92. package/esm/utils/selectable-helper.js +70 -0
  93. package/esm/utils/string-helpers.js +3 -0
  94. package/esm/utils/tree-helpers.js +205 -0
  95. package/{dist/esm → esm}/utils/useInstanceRefActions.js +35 -21
  96. package/esm/utils/useTree.js +99 -0
  97. package/package.json +121 -124
  98. package/types/TreeView.d.ts +13 -0
  99. package/types/TreeViewContext.d.ts +17 -0
  100. package/types/config/cssClassesConstants.d.ts +4 -0
  101. package/types/config/useTreeview.d.ts +7 -0
  102. package/types/hoc/DnDTreeContext.d.ts +14 -0
  103. package/types/hoc/SortableItemContext.d.ts +19 -0
  104. package/types/hoc/WithConditionalDnDContext.d.ts +4 -0
  105. package/types/hoc/WithDnDSortableItemContext.d.ts +4 -0
  106. package/types/index.d.ts +3 -0
  107. package/types/parts/CheckboxSelectable.d.ts +8 -0
  108. package/types/parts/ChildrenCountDisplayer.d.ts +7 -0
  109. package/types/parts/DnDHandle.d.ts +6 -0
  110. package/types/parts/DropIndicator.d.ts +10 -0
  111. package/types/parts/ExpandCaret.d.ts +7 -0
  112. package/types/parts/Icon.d.ts +7 -0
  113. package/types/parts/NestingSpace.d.ts +8 -0
  114. package/types/parts/RadioSelectable.d.ts +8 -0
  115. package/types/parts/TreeItem.d.ts +17 -0
  116. package/types/parts/TreeItemText.d.ts +7 -0
  117. package/types/parts/TreeList.d.ts +20 -0
  118. package/types/plugins/dnd/TreeDndPlugin.d.ts +1 -0
  119. package/types/plugins/dnd/index.d.ts +1 -0
  120. package/types/plugins/index.d.ts +7 -0
  121. package/types/plugins/roving/TreeRovingPlugin.d.ts +1 -0
  122. package/types/plugins/roving/index.d.ts +1 -0
  123. package/types/plugins/searchable/SearchableTreePlugin.d.ts +1 -0
  124. package/types/plugins/searchable/index.d.ts +1 -0
  125. package/types/plugins/selectable/SelectablePluginTree.d.ts +1 -0
  126. package/types/plugins/selectable/index.d.ts +1 -0
  127. package/types/plugins/toolbar/TreeToolbarPlugin.d.ts +1 -0
  128. package/types/plugins/toolbar/index.d.ts +1 -0
  129. package/types/plugins/tree/TreeDataPlugin.d.ts +1 -0
  130. package/types/plugins/tree/index.d.ts +1 -0
  131. package/types/plugins/virtualization/TreeVirtualizationPlugin.d.ts +1 -0
  132. package/types/plugins/virtualization/index.d.ts +1 -0
  133. package/types/react-desc-prop-types.d.ts +210 -0
  134. package/types/related-components/TreeViewSearchBar.d.ts +16 -0
  135. package/types/sharedTypes.d.ts +47 -0
  136. package/types/utils/array-helpers.d.ts +2 -0
  137. package/types/utils/group-expands-helpers.d.ts +14 -0
  138. package/types/utils/keyboard-helpers.d.ts +6 -0
  139. package/types/utils/object-helpers.d.ts +6 -0
  140. package/types/utils/refs-helpers.d.ts +4 -0
  141. package/types/utils/selectable-helper.d.ts +7 -0
  142. package/types/utils/string-helpers.d.ts +1 -0
  143. package/types/utils/tree-helpers.d.ts +28 -0
  144. package/types/utils/useInstanceRefActions.d.ts +3 -0
  145. package/types/utils/useTree.d.ts +14 -0
  146. package/dist/cjs/TreeView.js +0 -50
  147. package/dist/cjs/TreeView.js.map +0 -7
  148. package/dist/cjs/TreeViewContext.js +0 -116
  149. package/dist/cjs/TreeViewContext.js.map +0 -7
  150. package/dist/cjs/config/cssClassesConstants.js +0 -41
  151. package/dist/cjs/config/cssClassesConstants.js.map +0 -7
  152. package/dist/cjs/config/useTreeview.js +0 -151
  153. package/dist/cjs/config/useTreeview.js.map +0 -7
  154. package/dist/cjs/hoc/DnDTreeContext.js +0 -45
  155. package/dist/cjs/hoc/DnDTreeContext.js.map +0 -7
  156. package/dist/cjs/hoc/SortableItemContext.js +0 -46
  157. package/dist/cjs/hoc/SortableItemContext.js.map +0 -7
  158. package/dist/cjs/hoc/WithConditionalDnDContext.js +0 -128
  159. package/dist/cjs/hoc/WithConditionalDnDContext.js.map +0 -7
  160. package/dist/cjs/hoc/WithDnDSortableItemContext.js +0 -69
  161. package/dist/cjs/hoc/WithDnDSortableItemContext.js.map +0 -7
  162. package/dist/cjs/index.js +0 -37
  163. package/dist/cjs/index.js.map +0 -7
  164. package/dist/cjs/parts/CheckboxSelectable.js +0 -97
  165. package/dist/cjs/parts/CheckboxSelectable.js.map +0 -7
  166. package/dist/cjs/parts/ChildrenCountDisplayer.js +0 -47
  167. package/dist/cjs/parts/ChildrenCountDisplayer.js.map +0 -7
  168. package/dist/cjs/parts/DnDHandle.js +0 -57
  169. package/dist/cjs/parts/DnDHandle.js.map +0 -7
  170. package/dist/cjs/parts/DropIndicator.js +0 -80
  171. package/dist/cjs/parts/DropIndicator.js.map +0 -7
  172. package/dist/cjs/parts/ExpandCaret.js +0 -96
  173. package/dist/cjs/parts/ExpandCaret.js.map +0 -7
  174. package/dist/cjs/parts/Icon.js +0 -52
  175. package/dist/cjs/parts/Icon.js.map +0 -7
  176. package/dist/cjs/parts/NestingSpace.js +0 -55
  177. package/dist/cjs/parts/NestingSpace.js.map +0 -7
  178. package/dist/cjs/parts/RadioSelectable.js +0 -74
  179. package/dist/cjs/parts/RadioSelectable.js.map +0 -7
  180. package/dist/cjs/parts/TreeItem.js +0 -166
  181. package/dist/cjs/parts/TreeItem.js.map +0 -7
  182. package/dist/cjs/parts/TreeItemText.js +0 -101
  183. package/dist/cjs/parts/TreeItemText.js.map +0 -7
  184. package/dist/cjs/parts/TreeList.js +0 -123
  185. package/dist/cjs/parts/TreeList.js.map +0 -7
  186. package/dist/cjs/plugins/dnd/TreeDndPlugin.js +0 -35
  187. package/dist/cjs/plugins/dnd/TreeDndPlugin.js.map +0 -7
  188. package/dist/cjs/plugins/dnd/index.js +0 -28
  189. package/dist/cjs/plugins/dnd/index.js.map +0 -7
  190. package/dist/cjs/plugins/index.js +0 -34
  191. package/dist/cjs/plugins/index.js.map +0 -7
  192. package/dist/cjs/plugins/roving/TreeRovingPlugin.js +0 -35
  193. package/dist/cjs/plugins/roving/TreeRovingPlugin.js.map +0 -7
  194. package/dist/cjs/plugins/roving/index.js +0 -28
  195. package/dist/cjs/plugins/roving/index.js.map +0 -7
  196. package/dist/cjs/plugins/searchable/SearchableTreePlugin.js +0 -35
  197. package/dist/cjs/plugins/searchable/SearchableTreePlugin.js.map +0 -7
  198. package/dist/cjs/plugins/searchable/index.js +0 -28
  199. package/dist/cjs/plugins/searchable/index.js.map +0 -7
  200. package/dist/cjs/plugins/selectable/SelectablePluginTree.js +0 -35
  201. package/dist/cjs/plugins/selectable/SelectablePluginTree.js.map +0 -7
  202. package/dist/cjs/plugins/selectable/index.js +0 -28
  203. package/dist/cjs/plugins/selectable/index.js.map +0 -7
  204. package/dist/cjs/plugins/toolbar/TreeToolbarPlugin.js +0 -35
  205. package/dist/cjs/plugins/toolbar/TreeToolbarPlugin.js.map +0 -7
  206. package/dist/cjs/plugins/toolbar/index.js +0 -28
  207. package/dist/cjs/plugins/toolbar/index.js.map +0 -7
  208. package/dist/cjs/plugins/tree/TreeDataPlugin.js +0 -35
  209. package/dist/cjs/plugins/tree/TreeDataPlugin.js.map +0 -7
  210. package/dist/cjs/plugins/tree/index.js +0 -28
  211. package/dist/cjs/plugins/tree/index.js.map +0 -7
  212. package/dist/cjs/plugins/virtualization/TreeVirtualizationPlugin.js +0 -35
  213. package/dist/cjs/plugins/virtualization/TreeVirtualizationPlugin.js.map +0 -7
  214. package/dist/cjs/plugins/virtualization/index.js +0 -28
  215. package/dist/cjs/plugins/virtualization/index.js.map +0 -7
  216. package/dist/cjs/react-desc-prop-types.js +0 -85
  217. package/dist/cjs/react-desc-prop-types.js.map +0 -7
  218. package/dist/cjs/related-components/TreeViewSearchBar.js +0 -50
  219. package/dist/cjs/related-components/TreeViewSearchBar.js.map +0 -7
  220. package/dist/cjs/sharedTypes.js +0 -27
  221. package/dist/cjs/sharedTypes.js.map +0 -7
  222. package/dist/cjs/utils/array-helpers.js +0 -48
  223. package/dist/cjs/utils/array-helpers.js.map +0 -7
  224. package/dist/cjs/utils/group-expands-helpers.js +0 -138
  225. package/dist/cjs/utils/group-expands-helpers.js.map +0 -7
  226. package/dist/cjs/utils/keyboard-helpers.js +0 -170
  227. package/dist/cjs/utils/keyboard-helpers.js.map +0 -7
  228. package/dist/cjs/utils/object-helpers.js +0 -76
  229. package/dist/cjs/utils/object-helpers.js.map +0 -7
  230. package/dist/cjs/utils/refs-helpers.js +0 -52
  231. package/dist/cjs/utils/refs-helpers.js.map +0 -7
  232. package/dist/cjs/utils/selectable-helper.js +0 -88
  233. package/dist/cjs/utils/selectable-helper.js.map +0 -7
  234. package/dist/cjs/utils/string-helpers.js +0 -35
  235. package/dist/cjs/utils/string-helpers.js.map +0 -7
  236. package/dist/cjs/utils/tree-helpers.js +0 -184
  237. package/dist/cjs/utils/tree-helpers.js.map +0 -7
  238. package/dist/cjs/utils/useInstanceRefActions.js +0 -98
  239. package/dist/cjs/utils/useInstanceRefActions.js.map +0 -7
  240. package/dist/cjs/utils/useTree.js +0 -106
  241. package/dist/cjs/utils/useTree.js.map +0 -7
  242. package/dist/esm/TreeView.js +0 -21
  243. package/dist/esm/TreeView.js.map +0 -7
  244. package/dist/esm/TreeViewContext.js.map +0 -7
  245. package/dist/esm/config/cssClassesConstants.js +0 -12
  246. package/dist/esm/config/cssClassesConstants.js.map +0 -7
  247. package/dist/esm/config/useTreeview.js +0 -122
  248. package/dist/esm/config/useTreeview.js.map +0 -7
  249. package/dist/esm/hoc/DnDTreeContext.js +0 -16
  250. package/dist/esm/hoc/DnDTreeContext.js.map +0 -7
  251. package/dist/esm/hoc/SortableItemContext.js +0 -17
  252. package/dist/esm/hoc/SortableItemContext.js.map +0 -7
  253. package/dist/esm/hoc/WithConditionalDnDContext.js +0 -99
  254. package/dist/esm/hoc/WithConditionalDnDContext.js.map +0 -7
  255. package/dist/esm/hoc/WithDnDSortableItemContext.js +0 -40
  256. package/dist/esm/hoc/WithDnDSortableItemContext.js.map +0 -7
  257. package/dist/esm/index.js +0 -8
  258. package/dist/esm/index.js.map +0 -7
  259. package/dist/esm/parts/CheckboxSelectable.js +0 -68
  260. package/dist/esm/parts/CheckboxSelectable.js.map +0 -7
  261. package/dist/esm/parts/ChildrenCountDisplayer.js +0 -18
  262. package/dist/esm/parts/ChildrenCountDisplayer.js.map +0 -7
  263. package/dist/esm/parts/DnDHandle.js +0 -28
  264. package/dist/esm/parts/DnDHandle.js.map +0 -7
  265. package/dist/esm/parts/DropIndicator.js +0 -51
  266. package/dist/esm/parts/DropIndicator.js.map +0 -7
  267. package/dist/esm/parts/ExpandCaret.js +0 -67
  268. package/dist/esm/parts/ExpandCaret.js.map +0 -7
  269. package/dist/esm/parts/Icon.js +0 -23
  270. package/dist/esm/parts/Icon.js.map +0 -7
  271. package/dist/esm/parts/NestingSpace.js +0 -26
  272. package/dist/esm/parts/NestingSpace.js.map +0 -7
  273. package/dist/esm/parts/RadioSelectable.js +0 -45
  274. package/dist/esm/parts/RadioSelectable.js.map +0 -7
  275. package/dist/esm/parts/TreeItem.js +0 -137
  276. package/dist/esm/parts/TreeItem.js.map +0 -7
  277. package/dist/esm/parts/TreeItemText.js +0 -72
  278. package/dist/esm/parts/TreeItemText.js.map +0 -7
  279. package/dist/esm/parts/TreeList.js +0 -94
  280. package/dist/esm/parts/TreeList.js.map +0 -7
  281. package/dist/esm/plugins/dnd/TreeDndPlugin.js +0 -6
  282. package/dist/esm/plugins/dnd/TreeDndPlugin.js.map +0 -7
  283. package/dist/esm/plugins/dnd/index.js +0 -3
  284. package/dist/esm/plugins/dnd/index.js.map +0 -7
  285. package/dist/esm/plugins/index.js +0 -9
  286. package/dist/esm/plugins/index.js.map +0 -7
  287. package/dist/esm/plugins/roving/TreeRovingPlugin.js +0 -6
  288. package/dist/esm/plugins/roving/TreeRovingPlugin.js.map +0 -7
  289. package/dist/esm/plugins/roving/index.js +0 -3
  290. package/dist/esm/plugins/roving/index.js.map +0 -7
  291. package/dist/esm/plugins/searchable/SearchableTreePlugin.js +0 -6
  292. package/dist/esm/plugins/searchable/SearchableTreePlugin.js.map +0 -7
  293. package/dist/esm/plugins/searchable/index.js +0 -3
  294. package/dist/esm/plugins/searchable/index.js.map +0 -7
  295. package/dist/esm/plugins/selectable/SelectablePluginTree.js +0 -6
  296. package/dist/esm/plugins/selectable/SelectablePluginTree.js.map +0 -7
  297. package/dist/esm/plugins/selectable/index.js +0 -3
  298. package/dist/esm/plugins/selectable/index.js.map +0 -7
  299. package/dist/esm/plugins/toolbar/TreeToolbarPlugin.js +0 -6
  300. package/dist/esm/plugins/toolbar/TreeToolbarPlugin.js.map +0 -7
  301. package/dist/esm/plugins/toolbar/index.js +0 -3
  302. package/dist/esm/plugins/toolbar/index.js.map +0 -7
  303. package/dist/esm/plugins/tree/TreeDataPlugin.js +0 -6
  304. package/dist/esm/plugins/tree/TreeDataPlugin.js.map +0 -7
  305. package/dist/esm/plugins/tree/index.js +0 -3
  306. package/dist/esm/plugins/tree/index.js.map +0 -7
  307. package/dist/esm/plugins/virtualization/TreeVirtualizationPlugin.js +0 -6
  308. package/dist/esm/plugins/virtualization/TreeVirtualizationPlugin.js.map +0 -7
  309. package/dist/esm/plugins/virtualization/index.js +0 -3
  310. package/dist/esm/plugins/virtualization/index.js.map +0 -7
  311. package/dist/esm/react-desc-prop-types.js +0 -56
  312. package/dist/esm/react-desc-prop-types.js.map +0 -7
  313. package/dist/esm/related-components/TreeViewSearchBar.js +0 -21
  314. package/dist/esm/related-components/TreeViewSearchBar.js.map +0 -7
  315. package/dist/esm/sharedTypes.js +0 -2
  316. package/dist/esm/sharedTypes.js.map +0 -7
  317. package/dist/esm/utils/array-helpers.js.map +0 -7
  318. package/dist/esm/utils/group-expands-helpers.js +0 -109
  319. package/dist/esm/utils/group-expands-helpers.js.map +0 -7
  320. package/dist/esm/utils/keyboard-helpers.js.map +0 -7
  321. package/dist/esm/utils/object-helpers.js +0 -47
  322. package/dist/esm/utils/object-helpers.js.map +0 -7
  323. package/dist/esm/utils/refs-helpers.js +0 -23
  324. package/dist/esm/utils/refs-helpers.js.map +0 -7
  325. package/dist/esm/utils/selectable-helper.js +0 -59
  326. package/dist/esm/utils/selectable-helper.js.map +0 -7
  327. package/dist/esm/utils/string-helpers.js +0 -6
  328. package/dist/esm/utils/string-helpers.js.map +0 -7
  329. package/dist/esm/utils/tree-helpers.js +0 -155
  330. package/dist/esm/utils/tree-helpers.js.map +0 -7
  331. package/dist/esm/utils/useInstanceRefActions.js.map +0 -7
  332. package/dist/esm/utils/useTree.js +0 -77
  333. package/dist/esm/utils/useTree.js.map +0 -7
@@ -0,0 +1,30 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _jsx = require('@babel/runtime/helpers/jsx');
6
+ require('react');
7
+ var reactDesc = require('react-desc');
8
+ var reactDescPropTypes = require('./react-desc-prop-types.js');
9
+ var TreeViewContext = require('./TreeViewContext.js');
10
+ var useTreeview = require('./config/useTreeview.js');
11
+ var TreeList = require('./parts/TreeList.js');
12
+
13
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
14
+
15
+ var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
16
+
17
+ var _TreeList;
18
+ function TreeView(props) {
19
+ const {
20
+ ctx
21
+ } = useTreeview.useTreeview(props);
22
+ return /*#__PURE__*/_jsx__default["default"](TreeViewContext["default"].Provider, {
23
+ value: ctx
24
+ }, void 0, _TreeList || (_TreeList = /*#__PURE__*/_jsx__default["default"](TreeList.TreeList, {})));
25
+ }
26
+ const TreeViewWithSchema = reactDesc.describe(TreeView);
27
+ TreeViewWithSchema.propTypes = reactDescPropTypes.TreeViewPropTypes;
28
+
29
+ exports.TreeView = TreeView;
30
+ exports.TreeViewWithSchema = TreeViewWithSchema;
@@ -0,0 +1,98 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+
7
+ /* eslint-disable no-unused-vars */
8
+
9
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
10
+ function noop() {}
11
+
12
+ const defaultProps = {
13
+ plugins: [],
14
+ selection: {},
15
+ instanceRef: /*#__PURE__*/React.createRef(),
16
+ isItemDisabled: () => false,
17
+ disableIcons: false,
18
+ fluid: false,
19
+ isMultiSelect: false,
20
+ isSingleSelect: false,
21
+ getIsDropValid: () => true,
22
+ restrictDragAndDrop: false,
23
+ showChildrenAmount: false,
24
+ sortable: false,
25
+ isLoading: false,
26
+ highlightOnlyQuery: false,
27
+ onItemClick: noop,
28
+ onItemFocus: noop,
29
+ onVisibleItemsChange: noop,
30
+ onOrderChange: noop,
31
+ onSelectionChange: noop,
32
+ onExpandChange: noop,
33
+ onInstanceRefInitialized: noop,
34
+ rowSize: 'normal',
35
+ labelOverflow: 'wrap',
36
+ noItemsPlaceholder: 'No items found',
37
+ nameKey: 'name',
38
+ width: '100%',
39
+ height: '100%',
40
+ groupIcon: null,
41
+ itemIcon: null,
42
+ searchQuery: '' // workaround on the typings over the fact that
43
+ // when we instantiate the context we can't have all the props
44
+ // we only have a part of them but the final typings will include missing props
45
+ // this is safe to do because
46
+ // we will "mergeWithDefaults" + "validatePropTypes" when we do instantiate the context
47
+
48
+ };
49
+ const defaultRelativeMouseCoord = {
50
+ isBefore: false,
51
+ isAfter: false,
52
+ isValid: true,
53
+ item: null,
54
+ x: null,
55
+ y: null,
56
+ relativeElementDOMRect: null,
57
+ relativeElementIndex: null
58
+ };
59
+ const defaultContext = {
60
+ props: defaultProps,
61
+ visibleItems: [],
62
+ flattenedItems: [],
63
+ withRadioChecks: false,
64
+ withCheckboxChecks: false,
65
+ withDragAndDrop: false,
66
+ triggerTreeRerender: noop,
67
+ tree: undefined,
68
+ treeRoot: undefined,
69
+ virtualListHelpers: {
70
+ virtualItems: [],
71
+ totalSize: 0,
72
+ scrollToOffset: noop,
73
+ scrollToIndex: noop
74
+ },
75
+ virtualListRef: undefined,
76
+ uniqueTreeViewUUID: '',
77
+ selectedItem: null,
78
+ setSelectedItem: noop,
79
+ focusedItem: null,
80
+ setFocusedItem: noop,
81
+ selectedCheckboxes: {},
82
+ setSelectedCheckboxes: noop,
83
+ expandedGroups: {},
84
+ setExpandedGroups: noop,
85
+ latestToggledItem: null,
86
+ setLatestToggledItem: noop,
87
+ hoverItem: null,
88
+ setHoverItem: noop,
89
+ handleExpandGroup: noop,
90
+ updateUserExpandedState: noop
91
+ };
92
+ /** Context for cross component communication */
93
+
94
+ const TreeViewContext = /*#__PURE__*/React.createContext(defaultContext);
95
+
96
+ exports["default"] = TreeViewContext;
97
+ exports.defaultProps = defaultProps;
98
+ exports.defaultRelativeMouseCoord = defaultRelativeMouseCoord;
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const DSTreeViewPrefix = 'em-ds';
6
+ const treeItemBlockName = 'tree-item';
7
+ const treeListBlockName = 'tree-list';
8
+ const treeListNoItemsBn = "".concat(treeListBlockName, "-no-items");
9
+
10
+ exports.DSTreeViewPrefix = DSTreeViewPrefix;
11
+ exports.treeItemBlockName = treeItemBlockName;
12
+ exports.treeListBlockName = treeListBlockName;
13
+ exports.treeListNoItemsBn = treeListNoItemsBn;
@@ -0,0 +1,127 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
6
+ require('core-js/modules/web.dom-collections.iterator.js');
7
+ require('core-js/modules/esnext.async-iterator.filter.js');
8
+ require('core-js/modules/esnext.iterator.constructor.js');
9
+ require('core-js/modules/esnext.iterator.filter.js');
10
+ require('core-js/modules/esnext.async-iterator.for-each.js');
11
+ require('core-js/modules/esnext.iterator.for-each.js');
12
+ var React = require('react');
13
+ var reactVirtual = require('react-virtual');
14
+ var dsPropsHelpers = require('@elliemae/ds-props-helpers');
15
+ var uuid = require('uuid');
16
+ var reactDescPropTypes = require('../react-desc-prop-types.js');
17
+ var TreeViewContext = require('../TreeViewContext.js');
18
+ var TreeDndPlugin = require('../plugins/dnd/TreeDndPlugin.js');
19
+ var useTree = require('../utils/useTree.js');
20
+ var groupExpandsHelpers = require('../utils/group-expands-helpers.js');
21
+ var useInstanceRefActions = require('../utils/useInstanceRefActions.js');
22
+ var keyboardHelpers = require('../utils/keyboard-helpers.js');
23
+
24
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
25
+
26
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
27
+
28
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
29
+
30
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
31
+ const useTreeview = props => {
32
+ const propsWithDefault = dsPropsHelpers.useMemoMergePropsWithDefault(props, TreeViewContext.defaultProps);
33
+ dsPropsHelpers.useValidateTypescriptPropTypes(propsWithDefault, reactDescPropTypes.TreeViewPropTypes);
34
+ const defaultActions = {
35
+ actions: {
36
+ toggleExpandAll: () => {},
37
+ scrollTo: () => {},
38
+ setSelectedItemByVirtualIndex: () => {},
39
+ setFocusedItemByVirtualIndex: () => {}
40
+ }
41
+ };
42
+ const treeRef = React.useRef(defaultActions);
43
+ const {
44
+ data,
45
+ plugins,
46
+ onOrderChange,
47
+ isMultiSelect,
48
+ isSingleSelect,
49
+ instanceRef,
50
+ selection,
51
+ onInstanceRefInitialized
52
+ } = propsWithDefault;
53
+ const [uniqueTreeViewUUID] = React.useState(uuid.v4());
54
+ const [hoverItem, setHoverItem] = React.useState(null);
55
+ const [latestToggledItem, setLatestToggledItem] = React.useState(null);
56
+ const [selectedItem, setSelectedItem] = React.useState(null);
57
+ const [focusedItem, setFocusedItem] = React.useState(null);
58
+ const [selectedCheckboxes, setSelectedCheckboxes] = React.useState(_objectSpread({}, selection));
59
+ const [expandedGroups, setExpandedGroups] = React.useState({});
60
+ const {
61
+ visibleItems,
62
+ flattenedItems,
63
+ tree,
64
+ treeRoot,
65
+ triggerTreeRerender,
66
+ updateUserExpandedState
67
+ } = useTree.useTree(data, propsWithDefault, {
68
+ setExpandedGroups
69
+ });
70
+ const virtualListRef = React.useRef(); // estimateSize should not be really required given what was stated on
71
+ // https://github.com/tannerlinsley/react-virtual/issues/23
72
+
73
+ const virtualListHelpers = reactVirtual.useVirtual({
74
+ size: visibleItems.length,
75
+ parentRef: virtualListRef,
76
+ overscan: 15
77
+ });
78
+ const withDragAndDrop = !!(plugins !== null && plugins !== void 0 && plugins.includes(TreeDndPlugin.TreeDndPlugin) && onOrderChange);
79
+ const withRadioChecks = isSingleSelect && !isMultiSelect;
80
+ const withCheckboxChecks = !isSingleSelect && isMultiSelect;
81
+ const handleExpandGroup = React.useCallback(groupExpandsHelpers.toggleItemExpand, []);
82
+ const ctx = React.useMemo(() => ({
83
+ props: propsWithDefault,
84
+ virtualListHelpers,
85
+ virtualListRef,
86
+ tree,
87
+ treeRoot,
88
+ visibleItems,
89
+ flattenedItems,
90
+ triggerTreeRerender,
91
+ withRadioChecks,
92
+ withCheckboxChecks,
93
+ withDragAndDrop,
94
+ uniqueTreeViewUUID,
95
+ selectedCheckboxes,
96
+ setSelectedCheckboxes,
97
+ selectedItem,
98
+ setSelectedItem,
99
+ expandedGroups,
100
+ setExpandedGroups,
101
+ latestToggledItem,
102
+ setLatestToggledItem,
103
+ focusedItem,
104
+ setFocusedItem,
105
+ hoverItem,
106
+ setHoverItem,
107
+ handleExpandGroup,
108
+ updateUserExpandedState
109
+ }), [propsWithDefault, virtualListHelpers, tree, treeRoot, visibleItems, flattenedItems, triggerTreeRerender, withRadioChecks, withCheckboxChecks, withDragAndDrop, uniqueTreeViewUUID, selectedCheckboxes, selectedItem, expandedGroups, latestToggledItem, focusedItem, hoverItem, handleExpandGroup, updateUserExpandedState]); // this hooks can't use the context because the context provider doesn't wrap this
110
+ // as such we manually pass the second parameter as fit
111
+
112
+ if (instanceRef) instanceRef.current = treeRef.current;
113
+ useInstanceRefActions.useInstanceRefActions(treeRef.current, ctx);
114
+ keyboardHelpers.useGlobalToggleAllExpandShortcut(treeRoot, triggerTreeRerender, setLatestToggledItem, updateUserExpandedState);
115
+ groupExpandsHelpers.useNotifyExpandedChange(propsWithDefault, ctx); // this is an horrible hack.
116
+ // this is required because there is no "on rendered" react-way to check if every children has finished rendering
117
+ // this should be working for now, in the future we may want to review this for a better solution
118
+
119
+ React.useEffect(() => {
120
+ setTimeout(() => onInstanceRefInitialized(treeRef), 100); // eslint-disable-next-line react-hooks/exhaustive-deps
121
+ }, []);
122
+ return React.useMemo(() => ({
123
+ ctx
124
+ }), [ctx]);
125
+ };
126
+
127
+ exports.useTreeview = useTreeview;
@@ -0,0 +1,18 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+ var SortableItemContext = require('./SortableItemContext.js');
7
+
8
+ const DnDTreeContext = /*#__PURE__*/React.createContext({
9
+ depth: undefined,
10
+ activeIndex: undefined,
11
+ visibleItems: undefined,
12
+ dropIndicatorPosition: SortableItemContext.DropIndicatorPosition.None,
13
+ lastActiveId: undefined,
14
+ setLastActiveId: undefined,
15
+ isDropValid: false
16
+ });
17
+
18
+ exports.DnDTreeContext = DnDTreeContext;
@@ -0,0 +1,21 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+
7
+ exports.DropIndicatorPosition = void 0;
8
+
9
+ (function (DropIndicatorPosition) {
10
+ DropIndicatorPosition[DropIndicatorPosition["None"] = 0] = "None";
11
+ DropIndicatorPosition[DropIndicatorPosition["Before"] = 1] = "Before";
12
+ DropIndicatorPosition[DropIndicatorPosition["After"] = 2] = "After";
13
+ DropIndicatorPosition[DropIndicatorPosition["Inside"] = 3] = "Inside";
14
+ })(exports.DropIndicatorPosition || (exports.DropIndicatorPosition = {}));
15
+
16
+ /** Context for cross component communication */
17
+ const SortableItemContext = /*#__PURE__*/React.createContext({
18
+ draggableProps: false
19
+ });
20
+
21
+ exports.SortableItemContext = SortableItemContext;
@@ -0,0 +1,138 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _jsx = require('@babel/runtime/helpers/jsx');
6
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
7
+ require('core-js/modules/web.dom-collections.iterator.js');
8
+ require('core-js/modules/esnext.async-iterator.map.js');
9
+ require('core-js/modules/esnext.iterator.map.js');
10
+ require('core-js/modules/esnext.async-iterator.for-each.js');
11
+ require('core-js/modules/esnext.iterator.constructor.js');
12
+ require('core-js/modules/esnext.iterator.for-each.js');
13
+ require('core-js/modules/esnext.async-iterator.find.js');
14
+ require('core-js/modules/esnext.iterator.find.js');
15
+ require('core-js/modules/esnext.async-iterator.filter.js');
16
+ require('core-js/modules/esnext.iterator.filter.js');
17
+ var React = require('react');
18
+ var core = require('@dnd-kit/core');
19
+ var sortable = require('@dnd-kit/sortable');
20
+ var dsDragAndDrop = require('@elliemae/ds-drag-and-drop');
21
+ var TreeViewContext = require('../TreeViewContext.js');
22
+ var TreeItem = require('../parts/TreeItem.js');
23
+ var DnDTreeContext = require('./DnDTreeContext.js');
24
+ var jsxRuntime = require('react/jsx-runtime');
25
+
26
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
27
+
28
+ var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
29
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
30
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
31
+
32
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
33
+
34
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
35
+
36
+ const ensure = function (argument) {
37
+ let message = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'This should never happen';
38
+
39
+ if (argument === undefined || argument === null) {
40
+ throw new TypeError(message);
41
+ }
42
+
43
+ return argument;
44
+ }; // only wraps in "DnDContext" and "DnDTreeContext" if any Drag and Drop functionality is requested
45
+
46
+
47
+ const withConditionalDnDRowContext = Component => props => {
48
+ const [lastActiveId, setLastActiveId] = React__default["default"].useState('');
49
+ const {
50
+ props: {
51
+ data,
52
+ onOrderChange,
53
+ getIsDropValid
54
+ },
55
+ flattenedItems,
56
+ visibleItems: flattenedVisibleTree,
57
+ withDragAndDrop
58
+ } = React.useContext(TreeViewContext["default"]);
59
+ const flattenedVisibleTreeForDnD = React.useMemo(() => flattenedVisibleTree.map((item, index) => {
60
+ var _item$treeDepth, _item$children$length, _item$children, _item$node$parent$mod, _item$node$parent, _item$node$parent$mod2, _item$node$parent$mod3;
61
+
62
+ return {
63
+ uid: item.id.toString(),
64
+ depth: ((_item$treeDepth = item.treeDepth) !== null && _item$treeDepth !== void 0 ? _item$treeDepth : 1) - 1,
65
+ realIndex: index,
66
+ childrenCount: (_item$children$length = (_item$children = item.children) === null || _item$children === void 0 ? void 0 : _item$children.length) !== null && _item$children$length !== void 0 ? _item$children$length : 0,
67
+ parentId: (_item$node$parent$mod = (_item$node$parent = item.node.parent) === null || _item$node$parent === void 0 ? void 0 : (_item$node$parent$mod2 = _item$node$parent.model) === null || _item$node$parent$mod2 === void 0 ? void 0 : (_item$node$parent$mod3 = _item$node$parent$mod2.id) === null || _item$node$parent$mod3 === void 0 ? void 0 : _item$node$parent$mod3.toString()) !== null && _item$node$parent$mod !== void 0 ? _item$node$parent$mod : null,
68
+ original: item
69
+ };
70
+ }), [flattenedVisibleTree]);
71
+ const onReorder = React.useCallback((tree, indexes) => {
72
+ // Pull the row's original data into an object
73
+ const nodes = {};
74
+ tree.forEach(item => {
75
+ const originalItem = item.original;
76
+ originalItem.children = [];
77
+ nodes[item.uid] = item.original;
78
+ });
79
+ const newUserTree = [];
80
+ tree.forEach(item => {
81
+ // If row has parent, insert it to it's subrows
82
+ // otherwise append it to the new user data
83
+ if (item.parentId !== null && item.parentId !== undefined && item.parentId !== '__ds_tree_root') {
84
+ var _parentNode$children;
85
+
86
+ const parentNode = nodes[item.parentId];
87
+ (_parentNode$children = parentNode.children) === null || _parentNode$children === void 0 ? void 0 : _parentNode$children.push(item.original);
88
+ } else if (item.uid !== '__ds_tree_root') newUserTree.push(item.original);
89
+ }); // Tell the user that the order has change, he can chose to commit it or not
90
+
91
+ onOrderChange(newUserTree, data, flattenedItems[indexes.fromIndex]);
92
+ }, [onOrderChange, data, flattenedItems]);
93
+ const {
94
+ dndContextProps,
95
+ sortableContextProps,
96
+ activeId,
97
+ activeIndex,
98
+ depth,
99
+ dropIndicatorPosition,
100
+ visibleItems,
101
+ isDropValid
102
+ } = dsDragAndDrop.useTreeDndkitConfig({
103
+ flattenedItems,
104
+ visibleItems: flattenedVisibleTreeForDnD,
105
+ isHorizontalDnD: false,
106
+ isExpandable: true,
107
+ onReorder,
108
+ getIsDropValid,
109
+ maxDragAndDropLevel: Infinity
110
+ });
111
+ if (lastActiveId !== activeId && activeId) setLastActiveId(activeId);
112
+ if (withDragAndDrop) return /*#__PURE__*/jsxRuntime.jsxs(core.DndContext, _objectSpread(_objectSpread({}, dndContextProps), {}, {
113
+ children: [/*#__PURE__*/jsxRuntime.jsx(sortable.SortableContext, _objectSpread(_objectSpread({}, sortableContextProps), {}, {
114
+ children: /*#__PURE__*/_jsx__default["default"](DnDTreeContext.DnDTreeContext.Provider, {
115
+ value: {
116
+ activeIndex,
117
+ depth,
118
+ visibleItems: visibleItems.map(item => item.original),
119
+ dropIndicatorPosition,
120
+ lastActiveId,
121
+ setLastActiveId,
122
+ isDropValid
123
+ }
124
+ }, void 0, /*#__PURE__*/jsxRuntime.jsx(Component, _objectSpread({}, props)))
125
+ })), /*#__PURE__*/_jsx__default["default"](core.DragOverlay, {
126
+ style: {
127
+ width: 'auto'
128
+ }
129
+ }, void 0, activeId ? /*#__PURE__*/_jsx__default["default"](TreeItem.TreeItem, {
130
+ itemIndex: activeIndex,
131
+ item: ensure(flattenedVisibleTree.find(item => item.id.toString() === activeId)),
132
+ isDragOverlay: true
133
+ }) : null)]
134
+ }));
135
+ return /*#__PURE__*/jsxRuntime.jsx(Component, _objectSpread({}, props));
136
+ };
137
+
138
+ exports.withConditionalDnDRowContext = withConditionalDnDRowContext;
@@ -0,0 +1,70 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ require('core-js/modules/esnext.async-iterator.filter.js');
6
+ require('core-js/modules/esnext.iterator.constructor.js');
7
+ require('core-js/modules/esnext.iterator.filter.js');
8
+ require('core-js/modules/esnext.async-iterator.for-each.js');
9
+ require('core-js/modules/esnext.iterator.for-each.js');
10
+ var _jsx = require('@babel/runtime/helpers/jsx');
11
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
12
+ var React = require('react');
13
+ var sortable = require('@dnd-kit/sortable');
14
+ var SortableItemContext = require('./SortableItemContext.js');
15
+ var TreeViewContext = require('../TreeViewContext.js');
16
+ var DnDTreeContext = require('./DnDTreeContext.js');
17
+ var jsxRuntime = require('react/jsx-runtime');
18
+
19
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
20
+
21
+ var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
22
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
23
+
24
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
25
+
26
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
27
+ const withDnDSortableItemContext = Component => props => {
28
+ const {
29
+ withDragAndDrop
30
+ } = React.useContext(TreeViewContext["default"]);
31
+ const {
32
+ dropIndicatorPosition,
33
+ lastActiveId,
34
+ setLastActiveId,
35
+ isDropValid
36
+ } = React.useContext(DnDTreeContext.DnDTreeContext);
37
+ const id = props.item.id.toString(); // onMount generate unique options, so everyting is only ran once
38
+
39
+ const draggableOptions = React.useMemo(() => ({
40
+ id
41
+ }), [id]);
42
+ const useSortableHelpers = sortable.useSortable(draggableOptions); // calculate all the "useSortable" values as per required
43
+
44
+ const draggableProps = React.useMemo(() => {
45
+ if (!withDragAndDrop) return false;
46
+ const {
47
+ index,
48
+ overIndex
49
+ } = useSortableHelpers;
50
+ return _objectSpread(_objectSpread({}, useSortableHelpers), {}, {
51
+ shouldShowDropIndicatorPosition: overIndex === index,
52
+ dropIndicatorPosition,
53
+ lastActiveId,
54
+ setLastActiveId,
55
+ isDropValid
56
+ });
57
+ }, [withDragAndDrop, useSortableHelpers, dropIndicatorPosition, lastActiveId, setLastActiveId, isDropValid]); // we use a context so we can easly access information wherever without bubbling down
58
+ // this context is all Memoized so as long as component is not re-mounted,
59
+ // the context won't trigger un-required renders per-se...
60
+
61
+ const ctx = React.useMemo(() => ({
62
+ draggableProps
63
+ }), [draggableProps]); // we always add the context, if draggableProps===false we don't have the DnD enabled.
64
+
65
+ return /*#__PURE__*/_jsx__default["default"](SortableItemContext.SortableItemContext.Provider, {
66
+ value: ctx
67
+ }, void 0, /*#__PURE__*/jsxRuntime.jsx(Component, _objectSpread({}, props)));
68
+ };
69
+
70
+ exports.withDnDSortableItemContext = withDnDSortableItemContext;
package/cjs/index.js ADDED
@@ -0,0 +1,26 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var TreeView = require('./TreeView.js');
6
+ var TreeDndPlugin = require('./plugins/dnd/TreeDndPlugin.js');
7
+ var TreeRovingPlugin = require('./plugins/roving/TreeRovingPlugin.js');
8
+ var SelectablePluginTree = require('./plugins/selectable/SelectablePluginTree.js');
9
+ var TreeToolbarPlugin = require('./plugins/toolbar/TreeToolbarPlugin.js');
10
+ var TreeDataPlugin = require('./plugins/tree/TreeDataPlugin.js');
11
+ var TreeVirtualizationPlugin = require('./plugins/virtualization/TreeVirtualizationPlugin.js');
12
+ var SearchableTreePlugin = require('./plugins/searchable/SearchableTreePlugin.js');
13
+ var TreeViewSearchBar = require('./related-components/TreeViewSearchBar.js');
14
+
15
+
16
+
17
+ exports.TreeView = TreeView.TreeView;
18
+ exports.TreeViewWithSchema = TreeView.TreeViewWithSchema;
19
+ exports.TreeDndPlugin = TreeDndPlugin.TreeDndPlugin;
20
+ exports.TreeRovingPlugin = TreeRovingPlugin.TreeRovingPlugin;
21
+ exports.SelectablePluginTree = SelectablePluginTree.SelectablePluginTree;
22
+ exports.TreeToolbarPlugin = TreeToolbarPlugin.TreeToolbarPlugin;
23
+ exports.TreePluginList = TreeDataPlugin.TreePluginList;
24
+ exports.TreeVirtualizationPlugin = TreeVirtualizationPlugin.TreeVirtualizationPlugin;
25
+ exports.SearchableTreePlugin = SearchableTreePlugin.SearchableTreePlugin;
26
+ exports.TreeViewSearchBar = TreeViewSearchBar.TreeViewSearchBar;
@@ -0,0 +1,86 @@
1
+ 'use strict';
2
+
3
+ require('core-js/modules/esnext.async-iterator.filter.js');
4
+ require('core-js/modules/esnext.iterator.constructor.js');
5
+ require('core-js/modules/esnext.iterator.filter.js');
6
+ require('core-js/modules/esnext.async-iterator.for-each.js');
7
+ require('core-js/modules/esnext.iterator.for-each.js');
8
+ var _jsx = require('@babel/runtime/helpers/jsx');
9
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
10
+ var React = require('react');
11
+ var dsForm = require('@elliemae/ds-form');
12
+ var styled = require('styled-components');
13
+ var TreeViewContext = require('../TreeViewContext.js');
14
+ var selectableHelper = require('../utils/selectable-helper.js');
15
+ var objectHelpers = require('../utils/object-helpers.js');
16
+
17
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
18
+
19
+ var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
20
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
21
+ var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
22
+
23
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
24
+
25
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
26
+ const StyledCheckboxWrapper = /*#__PURE__*/styled__default["default"].span.withConfig({
27
+ componentId: "sc-1tyhs3t-0"
28
+ })(["padding-top:3px;"]);
29
+
30
+ function CheckboxSelectable(props) {
31
+ const {
32
+ item,
33
+ itemIndex
34
+ } = props;
35
+ const {
36
+ id
37
+ } = item;
38
+ const ctx = React.useContext(TreeViewContext["default"]);
39
+ const {
40
+ props: {
41
+ onSelectionChange,
42
+ isItemDisabled
43
+ },
44
+ virtualListHelpers: {
45
+ scrollToIndex
46
+ },
47
+ triggerTreeRerender,
48
+ selectedCheckboxes,
49
+ setSelectedCheckboxes
50
+ } = ctx;
51
+ const onCheckboxChange = React.useCallback(() => {
52
+ const newSelections = selectableHelper.toggleCheckboxItem(item);
53
+ const newSelectionHasmap = objectHelpers.filterObject(_objectSpread(_objectSpread({}, selectedCheckboxes), newSelections), value => value !== false);
54
+ setSelectedCheckboxes(newSelectionHasmap);
55
+ triggerTreeRerender();
56
+ const indexAndScrollTo = {
57
+ scrollToItem: () => {
58
+ if (typeof item.virtualIndex === 'number') scrollToIndex(item.virtualIndex);
59
+ },
60
+ itemIndex
61
+ };
62
+ if (onSelectionChange) onSelectionChange(newSelectionHasmap, item, indexAndScrollTo);
63
+ }, [item, triggerTreeRerender, onSelectionChange, itemIndex, scrollToIndex, selectedCheckboxes, setSelectedCheckboxes]);
64
+ const isChecked = React.useMemo(() => {
65
+ if (selectedCheckboxes[id] === 'mixed') {
66
+ return 'mixed';
67
+ }
68
+
69
+ if (selectedCheckboxes[id] === true) {
70
+ return true;
71
+ }
72
+
73
+ return false;
74
+ }, [selectedCheckboxes, id]);
75
+ const isDisabled = React.useMemo(() => isItemDisabled(item), [item, isItemDisabled]);
76
+ return /*#__PURE__*/_jsx__default["default"](StyledCheckboxWrapper, {}, void 0, /*#__PURE__*/_jsx__default["default"](dsForm.DSCheckbox, {
77
+ checked: isChecked,
78
+ disabled: isDisabled,
79
+ className: "em-ds-tree-item-checkbox",
80
+ "data-testid": "tree-item-checkbox",
81
+ onChange: onCheckboxChange,
82
+ tabIndex: "0"
83
+ }));
84
+ }
85
+
86
+ module.exports = CheckboxSelectable;
@@ -0,0 +1,30 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _jsx = require('@babel/runtime/helpers/jsx');
6
+ require('react');
7
+ var cssClassesConstants = require('../config/cssClassesConstants.js');
8
+
9
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
10
+
11
+ var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
12
+
13
+ const className = "".concat(cssClassesConstants.DSTreeViewPrefix, "-").concat(cssClassesConstants.treeItemBlockName, "-children-count-displayer");
14
+ const ChildrenCountDisplayer = props => {
15
+ const {
16
+ item
17
+ } = props;
18
+ const {
19
+ isGroup,
20
+ children
21
+ } = item;
22
+ if (!isGroup) return null; // return ` | ${children.length} Items`;
23
+
24
+ return /*#__PURE__*/_jsx__default["default"]("span", {
25
+ "data-testid": "tree-item-children-count-displayer",
26
+ className: className
27
+ }, void 0, " | ".concat(children.length, " Items"));
28
+ };
29
+
30
+ exports.ChildrenCountDisplayer = ChildrenCountDisplayer;