@elliemae/ds-treeview 2.3.0-alpha.1 → 2.3.0-alpha.10

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 (274) hide show
  1. package/{cjs → dist/cjs}/TreeView.js +1 -3
  2. package/dist/cjs/TreeView.js.map +7 -0
  3. package/{cjs → dist/cjs}/TreeViewContext.js +2 -8
  4. package/dist/cjs/TreeViewContext.js.map +7 -0
  5. package/{cjs → dist/cjs}/config/cssClassesConstants.js +0 -0
  6. package/{cjs → dist/cjs}/config/cssClassesConstants.js.map +0 -0
  7. package/{cjs → dist/cjs}/config/useTreeview.js +14 -28
  8. package/dist/cjs/config/useTreeview.js.map +7 -0
  9. package/dist/cjs/hoc/DnDTreeContext.js +45 -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 +128 -0
  14. package/dist/cjs/hoc/WithConditionalDnDContext.js.map +7 -0
  15. package/dist/cjs/hoc/WithDnDSortableItemContext.js +69 -0
  16. package/dist/cjs/hoc/WithDnDSortableItemContext.js.map +7 -0
  17. package/{cjs → dist/cjs}/index.js +0 -0
  18. package/{cjs → dist/cjs}/index.js.map +0 -0
  19. package/{cjs → dist/cjs}/parts/CheckboxSelectable.js +0 -0
  20. package/{cjs → dist/cjs}/parts/CheckboxSelectable.js.map +0 -0
  21. package/{cjs → dist/cjs}/parts/ChildrenCountDisplayer.js +0 -0
  22. package/{cjs → dist/cjs}/parts/ChildrenCountDisplayer.js.map +0 -0
  23. package/dist/cjs/parts/DnDHandle.js +57 -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/{cjs → dist/cjs}/parts/ExpandCaret.js +0 -0
  28. package/{cjs → dist/cjs}/parts/ExpandCaret.js.map +0 -0
  29. package/{cjs → dist/cjs}/parts/Icon.js +0 -0
  30. package/{cjs → dist/cjs}/parts/Icon.js.map +0 -0
  31. package/{cjs → dist/cjs}/parts/NestingSpace.js +0 -0
  32. package/{cjs → dist/cjs}/parts/NestingSpace.js.map +0 -0
  33. package/{cjs → dist/cjs}/parts/RadioSelectable.js +0 -0
  34. package/{cjs → dist/cjs}/parts/RadioSelectable.js.map +0 -0
  35. package/{cjs → dist/cjs}/parts/TreeItem.js +37 -62
  36. package/dist/cjs/parts/TreeItem.js.map +7 -0
  37. package/{cjs → dist/cjs}/parts/TreeItemText.js +0 -0
  38. package/{cjs → dist/cjs}/parts/TreeItemText.js.map +0 -0
  39. package/{cjs → dist/cjs}/parts/TreeList.js +13 -18
  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/{cjs → dist/cjs}/plugins/dnd/index.js +0 -0
  44. package/{cjs → dist/cjs}/plugins/dnd/index.js.map +0 -0
  45. package/{cjs → dist/cjs}/plugins/index.js +0 -0
  46. package/{cjs → dist/cjs}/plugins/index.js.map +0 -0
  47. package/{cjs → dist/cjs}/plugins/roving/TreeRovingPlugin.js +0 -0
  48. package/{cjs → dist/cjs}/plugins/roving/TreeRovingPlugin.js.map +0 -0
  49. package/{cjs → dist/cjs}/plugins/roving/index.js +0 -0
  50. package/{cjs → dist/cjs}/plugins/roving/index.js.map +0 -0
  51. package/{cjs → dist/cjs}/plugins/searchable/SearchableTreePlugin.js +0 -0
  52. package/{cjs → dist/cjs}/plugins/searchable/SearchableTreePlugin.js.map +0 -0
  53. package/{cjs → dist/cjs}/plugins/searchable/index.js +0 -0
  54. package/{cjs → dist/cjs}/plugins/searchable/index.js.map +0 -0
  55. package/{cjs → dist/cjs}/plugins/selectable/SelectablePluginTree.js +0 -0
  56. package/{cjs → dist/cjs}/plugins/selectable/SelectablePluginTree.js.map +0 -0
  57. package/{cjs → dist/cjs}/plugins/selectable/index.js +0 -0
  58. package/{cjs → dist/cjs}/plugins/selectable/index.js.map +0 -0
  59. package/{cjs → dist/cjs}/plugins/toolbar/TreeToolbarPlugin.js +0 -0
  60. package/{cjs → dist/cjs}/plugins/toolbar/TreeToolbarPlugin.js.map +0 -0
  61. package/{cjs → dist/cjs}/plugins/toolbar/index.js +0 -0
  62. package/{cjs → dist/cjs}/plugins/toolbar/index.js.map +0 -0
  63. package/{cjs → dist/cjs}/plugins/tree/TreeDataPlugin.js +0 -0
  64. package/{cjs → dist/cjs}/plugins/tree/TreeDataPlugin.js.map +0 -0
  65. package/{cjs → dist/cjs}/plugins/tree/index.js +0 -0
  66. package/{cjs → dist/cjs}/plugins/tree/index.js.map +0 -0
  67. package/{cjs → dist/cjs}/plugins/virtualization/TreeVirtualizationPlugin.js +0 -0
  68. package/{cjs → dist/cjs}/plugins/virtualization/TreeVirtualizationPlugin.js.map +0 -0
  69. package/{cjs → dist/cjs}/plugins/virtualization/index.js +0 -0
  70. package/{cjs → dist/cjs}/plugins/virtualization/index.js.map +0 -0
  71. package/{cjs → dist/cjs}/react-desc-prop-types.js +1 -0
  72. package/dist/cjs/react-desc-prop-types.js.map +7 -0
  73. package/{cjs → dist/cjs}/related-components/TreeViewSearchBar.js +0 -0
  74. package/{cjs → dist/cjs}/related-components/TreeViewSearchBar.js.map +0 -0
  75. package/{cjs → dist/cjs}/sharedTypes.js +0 -0
  76. package/dist/cjs/sharedTypes.js.map +7 -0
  77. package/{cjs → dist/cjs}/utils/array-helpers.js +0 -0
  78. package/{cjs → dist/cjs}/utils/array-helpers.js.map +0 -0
  79. package/{cjs → dist/cjs}/utils/group-expands-helpers.js +0 -0
  80. package/{cjs → dist/cjs}/utils/group-expands-helpers.js.map +0 -0
  81. package/{cjs → dist/cjs}/utils/keyboard-helpers.js +7 -7
  82. package/dist/cjs/utils/keyboard-helpers.js.map +7 -0
  83. package/{cjs → dist/cjs}/utils/object-helpers.js +0 -0
  84. package/{cjs → dist/cjs}/utils/object-helpers.js.map +0 -0
  85. package/{cjs → dist/cjs}/utils/refs-helpers.js +0 -0
  86. package/{cjs → dist/cjs}/utils/refs-helpers.js.map +1 -1
  87. package/{cjs → dist/cjs}/utils/selectable-helper.js +0 -0
  88. package/{cjs → dist/cjs}/utils/selectable-helper.js.map +0 -0
  89. package/{cjs → dist/cjs}/utils/string-helpers.js +0 -0
  90. package/{cjs → dist/cjs}/utils/string-helpers.js.map +0 -0
  91. package/{cjs → dist/cjs}/utils/tree-helpers.js +21 -1
  92. package/{cjs → dist/cjs}/utils/tree-helpers.js.map +2 -2
  93. package/{cjs → dist/cjs}/utils/useInstanceRefActions.js +0 -0
  94. package/{cjs → dist/cjs}/utils/useInstanceRefActions.js.map +0 -0
  95. package/{cjs → dist/cjs}/utils/useTree.js +3 -1
  96. package/dist/cjs/utils/useTree.js.map +7 -0
  97. package/{esm → dist/esm}/TreeView.js +1 -3
  98. package/dist/esm/TreeView.js.map +7 -0
  99. package/{esm → dist/esm}/TreeViewContext.js +2 -8
  100. package/dist/esm/TreeViewContext.js.map +7 -0
  101. package/{esm → dist/esm}/config/cssClassesConstants.js +0 -0
  102. package/{esm → dist/esm}/config/cssClassesConstants.js.map +0 -0
  103. package/{esm → dist/esm}/config/useTreeview.js +15 -29
  104. package/dist/esm/config/useTreeview.js.map +7 -0
  105. package/dist/esm/hoc/DnDTreeContext.js +16 -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 +99 -0
  110. package/dist/esm/hoc/WithConditionalDnDContext.js.map +7 -0
  111. package/dist/esm/hoc/WithDnDSortableItemContext.js +40 -0
  112. package/dist/esm/hoc/WithDnDSortableItemContext.js.map +7 -0
  113. package/{esm → dist/esm}/index.js +0 -0
  114. package/{esm → dist/esm}/index.js.map +0 -0
  115. package/{esm → dist/esm}/parts/CheckboxSelectable.js +0 -0
  116. package/{esm → dist/esm}/parts/CheckboxSelectable.js.map +0 -0
  117. package/{esm → dist/esm}/parts/ChildrenCountDisplayer.js +0 -0
  118. package/{esm → dist/esm}/parts/ChildrenCountDisplayer.js.map +0 -0
  119. package/dist/esm/parts/DnDHandle.js +28 -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/{esm → dist/esm}/parts/ExpandCaret.js +0 -0
  124. package/{esm → dist/esm}/parts/ExpandCaret.js.map +0 -0
  125. package/{esm → dist/esm}/parts/Icon.js +0 -0
  126. package/{esm → dist/esm}/parts/Icon.js.map +0 -0
  127. package/{esm → dist/esm}/parts/NestingSpace.js +0 -0
  128. package/{esm → dist/esm}/parts/NestingSpace.js.map +0 -0
  129. package/{esm → dist/esm}/parts/RadioSelectable.js +0 -0
  130. package/{esm → dist/esm}/parts/RadioSelectable.js.map +0 -0
  131. package/{esm → dist/esm}/parts/TreeItem.js +37 -62
  132. package/dist/esm/parts/TreeItem.js.map +7 -0
  133. package/{esm → dist/esm}/parts/TreeItemText.js +0 -0
  134. package/{esm → dist/esm}/parts/TreeItemText.js.map +0 -0
  135. package/{esm → dist/esm}/parts/TreeList.js +12 -17
  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/{esm → dist/esm}/plugins/dnd/index.js +0 -0
  140. package/{esm → dist/esm}/plugins/dnd/index.js.map +0 -0
  141. package/{esm → dist/esm}/plugins/index.js +0 -0
  142. package/{esm → dist/esm}/plugins/index.js.map +0 -0
  143. package/{esm → dist/esm}/plugins/roving/TreeRovingPlugin.js +0 -0
  144. package/{esm → dist/esm}/plugins/roving/TreeRovingPlugin.js.map +0 -0
  145. package/{esm → dist/esm}/plugins/roving/index.js +0 -0
  146. package/{esm → dist/esm}/plugins/roving/index.js.map +0 -0
  147. package/{esm → dist/esm}/plugins/searchable/SearchableTreePlugin.js +0 -0
  148. package/{esm → dist/esm}/plugins/searchable/SearchableTreePlugin.js.map +0 -0
  149. package/{esm → dist/esm}/plugins/searchable/index.js +0 -0
  150. package/{esm → dist/esm}/plugins/searchable/index.js.map +0 -0
  151. package/{esm → dist/esm}/plugins/selectable/SelectablePluginTree.js +0 -0
  152. package/{esm → dist/esm}/plugins/selectable/SelectablePluginTree.js.map +0 -0
  153. package/{esm → dist/esm}/plugins/selectable/index.js +0 -0
  154. package/{esm → dist/esm}/plugins/selectable/index.js.map +0 -0
  155. package/{esm → dist/esm}/plugins/toolbar/TreeToolbarPlugin.js +0 -0
  156. package/{esm → dist/esm}/plugins/toolbar/TreeToolbarPlugin.js.map +0 -0
  157. package/{esm → dist/esm}/plugins/toolbar/index.js +0 -0
  158. package/{esm → dist/esm}/plugins/toolbar/index.js.map +0 -0
  159. package/{esm → dist/esm}/plugins/tree/TreeDataPlugin.js +0 -0
  160. package/{esm → dist/esm}/plugins/tree/TreeDataPlugin.js.map +0 -0
  161. package/{esm → dist/esm}/plugins/tree/index.js +0 -0
  162. package/{esm → dist/esm}/plugins/tree/index.js.map +0 -0
  163. package/{esm → dist/esm}/plugins/virtualization/TreeVirtualizationPlugin.js +0 -0
  164. package/{esm → dist/esm}/plugins/virtualization/TreeVirtualizationPlugin.js.map +0 -0
  165. package/{esm → dist/esm}/plugins/virtualization/index.js +0 -0
  166. package/{esm → dist/esm}/plugins/virtualization/index.js.map +0 -0
  167. package/{esm → dist/esm}/react-desc-prop-types.js +1 -0
  168. package/dist/esm/react-desc-prop-types.js.map +7 -0
  169. package/{esm → dist/esm}/related-components/TreeViewSearchBar.js +0 -0
  170. package/{esm → dist/esm}/related-components/TreeViewSearchBar.js.map +0 -0
  171. package/{esm → dist/esm}/sharedTypes.js +0 -0
  172. package/{esm → dist/esm}/sharedTypes.js.map +0 -0
  173. package/{esm → dist/esm}/utils/array-helpers.js +0 -0
  174. package/{esm → dist/esm}/utils/array-helpers.js.map +0 -0
  175. package/{esm → dist/esm}/utils/group-expands-helpers.js +0 -0
  176. package/{esm → dist/esm}/utils/group-expands-helpers.js.map +0 -0
  177. package/{esm → dist/esm}/utils/keyboard-helpers.js +7 -7
  178. package/dist/esm/utils/keyboard-helpers.js.map +7 -0
  179. package/{esm → dist/esm}/utils/object-helpers.js +0 -0
  180. package/{esm → dist/esm}/utils/object-helpers.js.map +0 -0
  181. package/{esm → dist/esm}/utils/refs-helpers.js +0 -0
  182. package/{esm → dist/esm}/utils/refs-helpers.js.map +1 -1
  183. package/{esm → dist/esm}/utils/selectable-helper.js +0 -0
  184. package/{esm → dist/esm}/utils/selectable-helper.js.map +0 -0
  185. package/{esm → dist/esm}/utils/string-helpers.js +0 -0
  186. package/{esm → dist/esm}/utils/string-helpers.js.map +0 -0
  187. package/{esm → dist/esm}/utils/tree-helpers.js +21 -1
  188. package/{esm → dist/esm}/utils/tree-helpers.js.map +2 -2
  189. package/{esm → dist/esm}/utils/useInstanceRefActions.js +0 -0
  190. package/{esm → dist/esm}/utils/useInstanceRefActions.js.map +0 -0
  191. package/{esm → dist/esm}/utils/useTree.js +4 -2
  192. package/dist/esm/utils/useTree.js.map +7 -0
  193. package/{types → dist/types}/TreeView.d.ts +0 -0
  194. package/{types → dist/types}/TreeViewContext.d.ts +0 -0
  195. package/{types → dist/types}/config/cssClassesConstants.d.ts +0 -0
  196. package/{types → dist/types}/config/useTreeview.d.ts +0 -0
  197. package/dist/types/hoc/DnDTreeContext.d.ts +14 -0
  198. package/dist/types/hoc/SortableItemContext.d.ts +19 -0
  199. package/dist/types/hoc/WithConditionalDnDContext.d.ts +4 -0
  200. package/dist/types/hoc/WithDnDSortableItemContext.d.ts +4 -0
  201. package/{types → dist/types}/index.d.ts +0 -0
  202. package/{types → dist/types}/parts/CheckboxSelectable.d.ts +0 -0
  203. package/{types → dist/types}/parts/ChildrenCountDisplayer.d.ts +0 -0
  204. package/dist/types/parts/DnDHandle.d.ts +6 -0
  205. package/dist/types/parts/DropIndicator.d.ts +10 -0
  206. package/{types → dist/types}/parts/ExpandCaret.d.ts +0 -0
  207. package/{types → dist/types}/parts/Icon.d.ts +0 -0
  208. package/{types → dist/types}/parts/NestingSpace.d.ts +0 -0
  209. package/{types → dist/types}/parts/RadioSelectable.d.ts +0 -0
  210. package/dist/types/parts/TreeItem.d.ts +17 -0
  211. package/{types → dist/types}/parts/TreeItemText.d.ts +0 -0
  212. package/{types → dist/types}/parts/TreeList.d.ts +0 -4
  213. package/dist/types/plugins/dnd/TreeDndPlugin.d.ts +1 -0
  214. package/{types → dist/types}/plugins/dnd/index.d.ts +0 -0
  215. package/{types → dist/types}/plugins/index.d.ts +0 -0
  216. package/{types → dist/types}/plugins/roving/TreeRovingPlugin.d.ts +0 -0
  217. package/{types → dist/types}/plugins/roving/index.d.ts +0 -0
  218. package/{types → dist/types}/plugins/searchable/SearchableTreePlugin.d.ts +0 -0
  219. package/{types → dist/types}/plugins/searchable/index.d.ts +0 -0
  220. package/{types → dist/types}/plugins/selectable/SelectablePluginTree.d.ts +0 -0
  221. package/{types → dist/types}/plugins/selectable/index.d.ts +0 -0
  222. package/{types → dist/types}/plugins/toolbar/TreeToolbarPlugin.d.ts +0 -0
  223. package/{types → dist/types}/plugins/toolbar/index.d.ts +0 -0
  224. package/{types → dist/types}/plugins/tree/TreeDataPlugin.d.ts +0 -0
  225. package/{types → dist/types}/plugins/tree/index.d.ts +0 -0
  226. package/{types → dist/types}/plugins/virtualization/TreeVirtualizationPlugin.d.ts +0 -0
  227. package/{types → dist/types}/plugins/virtualization/index.d.ts +0 -0
  228. package/{types → dist/types}/react-desc-prop-types.d.ts +17 -3
  229. package/{types → dist/types}/related-components/TreeViewSearchBar.d.ts +0 -0
  230. package/{types → dist/types}/sharedTypes.d.ts +1 -8
  231. package/{types → dist/types}/utils/array-helpers.d.ts +0 -0
  232. package/{types → dist/types}/utils/group-expands-helpers.d.ts +0 -0
  233. package/{types → dist/types}/utils/keyboard-helpers.d.ts +2 -1
  234. package/{types → dist/types}/utils/object-helpers.d.ts +0 -0
  235. package/{types → dist/types}/utils/refs-helpers.d.ts +1 -1
  236. package/{types → dist/types}/utils/selectable-helper.d.ts +0 -0
  237. package/{types → dist/types}/utils/string-helpers.d.ts +0 -0
  238. package/{types → dist/types}/utils/tree-helpers.d.ts +4 -1
  239. package/{types → dist/types}/utils/useInstanceRefActions.d.ts +0 -0
  240. package/{types → dist/types}/utils/useTree.d.ts +1 -0
  241. package/package.json +136 -117
  242. package/cjs/TreeView.js.map +0 -7
  243. package/cjs/TreeViewContext.js.map +0 -7
  244. package/cjs/config/useTreeview.js.map +0 -7
  245. package/cjs/parts/TreeItem.js.map +0 -7
  246. package/cjs/parts/TreeList.js.map +0 -7
  247. package/cjs/plugins/dnd/TreeDndPlugin.js +0 -59
  248. package/cjs/plugins/dnd/TreeDndPlugin.js.map +0 -7
  249. package/cjs/react-desc-prop-types.js.map +0 -7
  250. package/cjs/sharedTypes.js.map +0 -7
  251. package/cjs/utils/dnd-helpers.js +0 -146
  252. package/cjs/utils/dnd-helpers.js.map +0 -7
  253. package/cjs/utils/keyboard-helpers.js.map +0 -7
  254. package/cjs/utils/useDnDHelpers.js +0 -199
  255. package/cjs/utils/useDnDHelpers.js.map +0 -7
  256. package/cjs/utils/useTree.js.map +0 -7
  257. package/esm/TreeView.js.map +0 -7
  258. package/esm/TreeViewContext.js.map +0 -7
  259. package/esm/config/useTreeview.js.map +0 -7
  260. package/esm/parts/TreeItem.js.map +0 -7
  261. package/esm/parts/TreeList.js.map +0 -7
  262. package/esm/plugins/dnd/TreeDndPlugin.js +0 -30
  263. package/esm/plugins/dnd/TreeDndPlugin.js.map +0 -7
  264. package/esm/react-desc-prop-types.js.map +0 -7
  265. package/esm/utils/dnd-helpers.js +0 -117
  266. package/esm/utils/dnd-helpers.js.map +0 -7
  267. package/esm/utils/keyboard-helpers.js.map +0 -7
  268. package/esm/utils/useDnDHelpers.js +0 -170
  269. package/esm/utils/useDnDHelpers.js.map +0 -7
  270. package/esm/utils/useTree.js.map +0 -7
  271. package/types/parts/TreeItem.d.ts +0 -24
  272. package/types/plugins/dnd/TreeDndPlugin.d.ts +0 -3
  273. package/types/utils/dnd-helpers.d.ts +0 -39
  274. package/types/utils/useDnDHelpers.d.ts +0 -26
@@ -13,7 +13,7 @@ export declare namespace DSTreeviewT {
13
13
  interface SimpleItem {
14
14
  [key: string]: unknown;
15
15
  name: string;
16
- children: SimpleItem[];
16
+ children?: SimpleItem[];
17
17
  id: StringOrNum;
18
18
  }
19
19
  interface Item extends SimpleItem {
@@ -27,9 +27,19 @@ export declare namespace DSTreeviewT {
27
27
  matchesSearchQuery?: boolean;
28
28
  nodeItemRef?: React.RefObject<HTMLLIElement>;
29
29
  model: TreeModel.Node<Item>['model'];
30
- node: TreeModel.Node<Item>;
30
+ node: TreeModel.Node<Item> & {
31
+ parent?: TreeModel.Node<Item>;
32
+ };
31
33
  nodePath: TreeModel.Node<Item>[];
32
34
  }
35
+ interface DndItem {
36
+ uid: string;
37
+ depth: number;
38
+ realIndex: number;
39
+ childrenCount: number;
40
+ parentId: string | null;
41
+ original: SimpleItem;
42
+ }
33
43
  interface Actions {
34
44
  toggleExpandAll: (isExpand: boolean) => Promise<DSTreeviewT.Item[]>;
35
45
  scrollTo: DSTreeviewT.ScrollToFunc;
@@ -50,6 +60,7 @@ export declare namespace DSTreeviewT {
50
60
  fluid: boolean;
51
61
  isMultiSelect: boolean;
52
62
  isSingleSelect: boolean;
63
+ getIsDropValid: (active: DndItem, over: DndItem, dropIndicatorPosition: 'none' | 'before' | 'after' | 'inside') => boolean;
53
64
  restrictDragAndDrop: boolean;
54
65
  showChildrenAmount: boolean;
55
66
  sortable: boolean;
@@ -62,7 +73,7 @@ export declare namespace DSTreeviewT {
62
73
  item: Item;
63
74
  }) => void;
64
75
  onVisibleItemsChange: (newVisibleItems: Item[]) => void;
65
- onOrderChange: (newData: Item[], oldData: Item[], draggedItem: Item) => void;
76
+ onOrderChange: (newData: SimpleItem[], oldData: SimpleItem[], draggedItem: DndItem) => void;
66
77
  onSelectionChange: (selection: SelectionItems, item: Item, meta: {
67
78
  scrollToItem: ScrollToItemFunc;
68
79
  itemIndex: number;
@@ -124,6 +135,9 @@ export declare const TreeViewPropTypes: {
124
135
  isLoading: {
125
136
  deprecated: import("react-desc").PropTypesDescValidator;
126
137
  };
138
+ getIsDropValid: {
139
+ deprecated: import("react-desc").PropTypesDescValidator;
140
+ };
127
141
  restrictDragAndDrop: {
128
142
  deprecated: import("react-desc").PropTypesDescValidator;
129
143
  };
@@ -19,22 +19,15 @@ export declare namespace DSTreeviewInternalsT {
19
19
  interface CTX {
20
20
  props: DSTreeviewT.Props;
21
21
  visibleItems: DSTreeviewT.Item[];
22
+ flattenedItems: DSTreeviewT.DndItem[];
22
23
  withRadioChecks: boolean;
23
24
  withCheckboxChecks: boolean;
24
25
  withDragAndDrop: boolean;
25
- relativeMouseCord: MouseCoord;
26
- setRelativeMouseCord: StateSetter<MouseCoord>;
27
26
  triggerTreeRerender: () => void;
28
27
  tree?: TreeModel;
29
28
  treeRoot?: TreeModel.Node<DSTreeviewT.Item>;
30
29
  virtualListHelpers: ReturnType<typeof useVirtual>;
31
30
  virtualListRef?: React.MutableRefObject<HTMLUListElement | undefined>;
32
- isDragging: boolean;
33
- setIsDragging: StateSetter<boolean>;
34
- isKeyboardDragging: boolean;
35
- setIsKeyboardDragging: StateSetter<boolean>;
36
- draggedItem: DSTreeviewT.Item | null;
37
- setDraggedItem: StateSetter<DSTreeviewT.Item | null>;
38
31
  uniqueTreeViewUUID: string;
39
32
  selectedItem: DSTreeviewT.Item | null;
40
33
  setSelectedItem: StateSetter<DSTreeviewT.Item | null>;
File without changes
@@ -1,5 +1,6 @@
1
1
  import type { DSTreeviewT } from '../react-desc-prop-types';
2
2
  import type { DSTreeviewInternalsT } from '../sharedTypes';
3
- export declare const useOnItemKeyDown: (item: DSTreeviewT.Item) => (e: React.KeyboardEvent<HTMLLIElement>) => void;
3
+ import { SortableItemContextType } from '../hoc/SortableItemContext';
4
+ export declare const useOnItemKeyDown: (item: DSTreeviewT.Item, draggableProps: SortableItemContextType['draggableProps']) => (e: React.KeyboardEvent<HTMLLIElement>) => void;
4
5
  export declare const useGlobalKeyboardListener: (func: (e: KeyboardEvent) => void) => void;
5
6
  export declare const useGlobalToggleAllExpandShortcut: (treeRoot: DSTreeviewT.Item['node'], triggerTreeRerender: () => void, setLatestToggledItem: DSTreeviewInternalsT.CTX['setLatestToggledItem'], updateUserExpandedState: DSTreeviewInternalsT.CTX['updateUserExpandedState']) => void;
File without changes
@@ -1,4 +1,4 @@
1
1
  /// <reference types="react" />
2
- declare type GenericMergeableRef = null | undefined | React.MutableRefObject<unknown> | ((ref: HTMLElement) => void);
2
+ declare type GenericMergeableRef = null | undefined | React.MutableRefObject<unknown> | ((ref: HTMLElement) => void) | false;
3
3
  export declare const setMultipleRefs: (...refs: GenericMergeableRef[]) => (ref: HTMLElement) => void;
4
4
  export {};
File without changes
@@ -7,7 +7,9 @@ export declare const walkAllNodeChildren: (node: DSTreeviewT.Item['node'], callb
7
7
  export declare const getNodeById: (treeRoot: DSTreeviewT.Item['node'], id: DSTreeviewT.StringOrNum) => TreeModel.Node<DSTreeviewT.Item>;
8
8
  export declare const cloneNode: (tree: TreeModel, node: DSTreeviewT.Item) => TreeModel.Node<DSTreeviewT.Item>;
9
9
  export declare const itemsShareSameParent: (items?: DSTreeviewT.Item[]) => boolean;
10
- export declare const getItemsParentNode: (items?: DSTreeviewT.Item[], skipSameParentCheck?: boolean) => TreeModel.Node<DSTreeviewT.Item>;
10
+ export declare const getItemsParentNode: (items?: DSTreeviewT.Item[], skipSameParentCheck?: boolean) => TreeModel.Node<DSTreeviewT.Item> & {
11
+ parent?: TreeModel.Node<DSTreeviewT.Item> | undefined;
12
+ };
11
13
  export declare const getNodeMatchesSearchQuery: (node: DSTreeviewT.Item['node'], searchQuery?: string) => boolean;
12
14
  export declare const getChildrenMatchesSearchQuery: (parentNode: DSTreeviewT.Item['node'], searchQuery?: string) => boolean;
13
15
  /**
@@ -22,4 +24,5 @@ export declare const getChildrenMatchesSearchQuery: (parentNode: DSTreeviewT.Ite
22
24
  */
23
25
  export declare const enrichNodeModelInPlace: (node: TreeModel.Node<DSTreeviewT.SimpleItem>, searchQuery?: string, selection?: DSTreeviewT.SelectionItems | null, expanded?: DSTreeviewT.ExpandedItems | null) => void;
24
26
  export declare const focusItem: (item: DSTreeviewT.Item | null) => void;
27
+ export declare const flattenTreeForDnD: (data: DSTreeviewT.SimpleItem[], shouldDescend?: (datum: DSTreeviewT.SimpleItem) => boolean) => DSTreeviewT.DndItem[];
25
28
  export {};
@@ -5,6 +5,7 @@ export declare const useTree: (data: DSTreeviewT.SimpleItem[], props: DSTreeview
5
5
  setExpandedGroups: DSTreeviewInternalsT.StateSetter<DSTreeviewT.ExpandedItems>;
6
6
  }) => {
7
7
  visibleItems: DSTreeviewT.Item[];
8
+ flattenedItems: DSTreeviewT.DndItem[];
8
9
  tree: TreeModel;
9
10
  treeRoot: TreeModel.Node<DSTreeviewT.Item>;
10
11
  rerenderItems: {};
package/package.json CHANGED
@@ -1,187 +1,206 @@
1
1
  {
2
2
  "name": "@elliemae/ds-treeview",
3
- "version": "2.3.0-alpha.1",
3
+ "version": "2.3.0-alpha.10",
4
4
  "license": "MIT",
5
5
  "description": "ICE MT - Dimsum - Tree View",
6
- "module": "./esm/index.js",
7
- "main": "./cjs/index.js",
8
- "types": "./types/index.d.ts",
6
+ "files": [
7
+ "dist"
8
+ ],
9
+ "module": "./dist/esm/index.js",
10
+ "main": "./dist/cjs/index.js",
11
+ "types": "./dist/types/index.d.ts",
9
12
  "exports": {
10
13
  ".": {
11
- "import": "./esm/index.js",
12
- "require": "./cjs/index.js"
14
+ "import": "./dist/esm/index.js",
15
+ "require": "./dist/cjs/index.js"
13
16
  },
14
17
  "./utils/useTree": {
15
- "import": "./esm/utils/useTree.js",
16
- "require": "./cjs/utils/useTree.js"
18
+ "import": "./dist/esm/utils/useTree.js",
19
+ "require": "./dist/cjs/utils/useTree.js"
17
20
  },
18
21
  "./utils/useInstanceRefActions": {
19
- "import": "./esm/utils/useInstanceRefActions.js",
20
- "require": "./cjs/utils/useInstanceRefActions.js"
21
- },
22
- "./utils/useDnDHelpers": {
23
- "import": "./esm/utils/useDnDHelpers.js",
24
- "require": "./cjs/utils/useDnDHelpers.js"
22
+ "import": "./dist/esm/utils/useInstanceRefActions.js",
23
+ "require": "./dist/cjs/utils/useInstanceRefActions.js"
25
24
  },
26
25
  "./utils/tree-helpers": {
27
- "import": "./esm/utils/tree-helpers.js",
28
- "require": "./cjs/utils/tree-helpers.js"
26
+ "import": "./dist/esm/utils/tree-helpers.js",
27
+ "require": "./dist/cjs/utils/tree-helpers.js"
29
28
  },
30
29
  "./utils/string-helpers": {
31
- "import": "./esm/utils/string-helpers.js",
32
- "require": "./cjs/utils/string-helpers.js"
30
+ "import": "./dist/esm/utils/string-helpers.js",
31
+ "require": "./dist/cjs/utils/string-helpers.js"
33
32
  },
34
33
  "./utils/selectable-helper": {
35
- "import": "./esm/utils/selectable-helper.js",
36
- "require": "./cjs/utils/selectable-helper.js"
34
+ "import": "./dist/esm/utils/selectable-helper.js",
35
+ "require": "./dist/cjs/utils/selectable-helper.js"
37
36
  },
38
37
  "./utils/refs-helpers": {
39
- "import": "./esm/utils/refs-helpers.js",
40
- "require": "./cjs/utils/refs-helpers.js"
38
+ "import": "./dist/esm/utils/refs-helpers.js",
39
+ "require": "./dist/cjs/utils/refs-helpers.js"
41
40
  },
42
41
  "./utils/object-helpers": {
43
- "import": "./esm/utils/object-helpers.js",
44
- "require": "./cjs/utils/object-helpers.js"
42
+ "import": "./dist/esm/utils/object-helpers.js",
43
+ "require": "./dist/cjs/utils/object-helpers.js"
45
44
  },
46
45
  "./utils/keyboard-helpers": {
47
- "import": "./esm/utils/keyboard-helpers.js",
48
- "require": "./cjs/utils/keyboard-helpers.js"
46
+ "import": "./dist/esm/utils/keyboard-helpers.js",
47
+ "require": "./dist/cjs/utils/keyboard-helpers.js"
49
48
  },
50
49
  "./utils/group-expands-helpers": {
51
- "import": "./esm/utils/group-expands-helpers.js",
52
- "require": "./cjs/utils/group-expands-helpers.js"
53
- },
54
- "./utils/dnd-helpers": {
55
- "import": "./esm/utils/dnd-helpers.js",
56
- "require": "./cjs/utils/dnd-helpers.js"
50
+ "import": "./dist/esm/utils/group-expands-helpers.js",
51
+ "require": "./dist/cjs/utils/group-expands-helpers.js"
57
52
  },
58
53
  "./utils/array-helpers": {
59
- "import": "./esm/utils/array-helpers.js",
60
- "require": "./cjs/utils/array-helpers.js"
54
+ "import": "./dist/esm/utils/array-helpers.js",
55
+ "require": "./dist/cjs/utils/array-helpers.js"
61
56
  },
62
57
  "./TreeViewContext": {
63
- "import": "./esm/TreeViewContext.js",
64
- "require": "./cjs/TreeViewContext.js"
58
+ "import": "./dist/esm/TreeViewContext.js",
59
+ "require": "./dist/cjs/TreeViewContext.js"
65
60
  },
66
61
  "./TreeView": {
67
- "import": "./esm/TreeView.js",
68
- "require": "./cjs/TreeView.js"
62
+ "import": "./dist/esm/TreeView.js",
63
+ "require": "./dist/cjs/TreeView.js"
69
64
  },
70
65
  "./sharedTypes": {
71
- "import": "./esm/sharedTypes.js",
72
- "require": "./cjs/sharedTypes.js"
66
+ "import": "./dist/esm/sharedTypes.js",
67
+ "require": "./dist/cjs/sharedTypes.js"
73
68
  },
74
69
  "./related-components/TreeViewSearchBar": {
75
- "import": "./esm/related-components/TreeViewSearchBar.js",
76
- "require": "./cjs/related-components/TreeViewSearchBar.js"
70
+ "import": "./dist/esm/related-components/TreeViewSearchBar.js",
71
+ "require": "./dist/cjs/related-components/TreeViewSearchBar.js"
77
72
  },
78
73
  "./react-desc-prop-types": {
79
- "import": "./esm/react-desc-prop-types.js",
80
- "require": "./cjs/react-desc-prop-types.js"
74
+ "import": "./dist/esm/react-desc-prop-types.js",
75
+ "require": "./dist/cjs/react-desc-prop-types.js"
81
76
  },
82
77
  "./plugins/virtualization/TreeVirtualizationPlugin": {
83
- "import": "./esm/plugins/virtualization/TreeVirtualizationPlugin.js",
84
- "require": "./cjs/plugins/virtualization/TreeVirtualizationPlugin.js"
78
+ "import": "./dist/esm/plugins/virtualization/TreeVirtualizationPlugin.js",
79
+ "require": "./dist/cjs/plugins/virtualization/TreeVirtualizationPlugin.js"
85
80
  },
86
81
  "./plugins/virtualization": {
87
- "import": "./esm/plugins/virtualization/index.js",
88
- "require": "./cjs/plugins/virtualization/index.js"
82
+ "import": "./dist/esm/plugins/virtualization/index.js",
83
+ "require": "./dist/cjs/plugins/virtualization/index.js"
89
84
  },
90
85
  "./plugins/tree/TreeDataPlugin": {
91
- "import": "./esm/plugins/tree/TreeDataPlugin.js",
92
- "require": "./cjs/plugins/tree/TreeDataPlugin.js"
86
+ "import": "./dist/esm/plugins/tree/TreeDataPlugin.js",
87
+ "require": "./dist/cjs/plugins/tree/TreeDataPlugin.js"
93
88
  },
94
89
  "./plugins/tree": {
95
- "import": "./esm/plugins/tree/index.js",
96
- "require": "./cjs/plugins/tree/index.js"
90
+ "import": "./dist/esm/plugins/tree/index.js",
91
+ "require": "./dist/cjs/plugins/tree/index.js"
97
92
  },
98
93
  "./plugins/toolbar/TreeToolbarPlugin": {
99
- "import": "./esm/plugins/toolbar/TreeToolbarPlugin.js",
100
- "require": "./cjs/plugins/toolbar/TreeToolbarPlugin.js"
94
+ "import": "./dist/esm/plugins/toolbar/TreeToolbarPlugin.js",
95
+ "require": "./dist/cjs/plugins/toolbar/TreeToolbarPlugin.js"
101
96
  },
102
97
  "./plugins/toolbar": {
103
- "import": "./esm/plugins/toolbar/index.js",
104
- "require": "./cjs/plugins/toolbar/index.js"
98
+ "import": "./dist/esm/plugins/toolbar/index.js",
99
+ "require": "./dist/cjs/plugins/toolbar/index.js"
105
100
  },
106
101
  "./plugins/selectable/SelectablePluginTree": {
107
- "import": "./esm/plugins/selectable/SelectablePluginTree.js",
108
- "require": "./cjs/plugins/selectable/SelectablePluginTree.js"
102
+ "import": "./dist/esm/plugins/selectable/SelectablePluginTree.js",
103
+ "require": "./dist/cjs/plugins/selectable/SelectablePluginTree.js"
109
104
  },
110
105
  "./plugins/selectable": {
111
- "import": "./esm/plugins/selectable/index.js",
112
- "require": "./cjs/plugins/selectable/index.js"
106
+ "import": "./dist/esm/plugins/selectable/index.js",
107
+ "require": "./dist/cjs/plugins/selectable/index.js"
113
108
  },
114
109
  "./plugins/searchable/SearchableTreePlugin": {
115
- "import": "./esm/plugins/searchable/SearchableTreePlugin.js",
116
- "require": "./cjs/plugins/searchable/SearchableTreePlugin.js"
110
+ "import": "./dist/esm/plugins/searchable/SearchableTreePlugin.js",
111
+ "require": "./dist/cjs/plugins/searchable/SearchableTreePlugin.js"
117
112
  },
118
113
  "./plugins/searchable": {
119
- "import": "./esm/plugins/searchable/index.js",
120
- "require": "./cjs/plugins/searchable/index.js"
114
+ "import": "./dist/esm/plugins/searchable/index.js",
115
+ "require": "./dist/cjs/plugins/searchable/index.js"
121
116
  },
122
117
  "./plugins/roving/TreeRovingPlugin": {
123
- "import": "./esm/plugins/roving/TreeRovingPlugin.js",
124
- "require": "./cjs/plugins/roving/TreeRovingPlugin.js"
118
+ "import": "./dist/esm/plugins/roving/TreeRovingPlugin.js",
119
+ "require": "./dist/cjs/plugins/roving/TreeRovingPlugin.js"
125
120
  },
126
121
  "./plugins/roving": {
127
- "import": "./esm/plugins/roving/index.js",
128
- "require": "./cjs/plugins/roving/index.js"
122
+ "import": "./dist/esm/plugins/roving/index.js",
123
+ "require": "./dist/cjs/plugins/roving/index.js"
129
124
  },
130
125
  "./plugins": {
131
- "import": "./esm/plugins/index.js",
132
- "require": "./cjs/plugins/index.js"
126
+ "import": "./dist/esm/plugins/index.js",
127
+ "require": "./dist/cjs/plugins/index.js"
133
128
  },
134
129
  "./plugins/dnd/TreeDndPlugin": {
135
- "import": "./esm/plugins/dnd/TreeDndPlugin.js",
136
- "require": "./cjs/plugins/dnd/TreeDndPlugin.js"
130
+ "import": "./dist/esm/plugins/dnd/TreeDndPlugin.js",
131
+ "require": "./dist/cjs/plugins/dnd/TreeDndPlugin.js"
137
132
  },
138
133
  "./plugins/dnd": {
139
- "import": "./esm/plugins/dnd/index.js",
140
- "require": "./cjs/plugins/dnd/index.js"
134
+ "import": "./dist/esm/plugins/dnd/index.js",
135
+ "require": "./dist/cjs/plugins/dnd/index.js"
141
136
  },
142
137
  "./parts/TreeList": {
143
- "import": "./esm/parts/TreeList.js",
144
- "require": "./cjs/parts/TreeList.js"
138
+ "import": "./dist/esm/parts/TreeList.js",
139
+ "require": "./dist/cjs/parts/TreeList.js"
145
140
  },
146
141
  "./parts/TreeItemText": {
147
- "import": "./esm/parts/TreeItemText.js",
148
- "require": "./cjs/parts/TreeItemText.js"
142
+ "import": "./dist/esm/parts/TreeItemText.js",
143
+ "require": "./dist/cjs/parts/TreeItemText.js"
149
144
  },
150
145
  "./parts/TreeItem": {
151
- "import": "./esm/parts/TreeItem.js",
152
- "require": "./cjs/parts/TreeItem.js"
146
+ "import": "./dist/esm/parts/TreeItem.js",
147
+ "require": "./dist/cjs/parts/TreeItem.js"
153
148
  },
154
149
  "./parts/RadioSelectable": {
155
- "import": "./esm/parts/RadioSelectable.js",
156
- "require": "./cjs/parts/RadioSelectable.js"
150
+ "import": "./dist/esm/parts/RadioSelectable.js",
151
+ "require": "./dist/cjs/parts/RadioSelectable.js"
157
152
  },
158
153
  "./parts/NestingSpace": {
159
- "import": "./esm/parts/NestingSpace.js",
160
- "require": "./cjs/parts/NestingSpace.js"
154
+ "import": "./dist/esm/parts/NestingSpace.js",
155
+ "require": "./dist/cjs/parts/NestingSpace.js"
161
156
  },
162
157
  "./parts/Icon": {
163
- "import": "./esm/parts/Icon.js",
164
- "require": "./cjs/parts/Icon.js"
158
+ "import": "./dist/esm/parts/Icon.js",
159
+ "require": "./dist/cjs/parts/Icon.js"
165
160
  },
166
161
  "./parts/ExpandCaret": {
167
- "import": "./esm/parts/ExpandCaret.js",
168
- "require": "./cjs/parts/ExpandCaret.js"
162
+ "import": "./dist/esm/parts/ExpandCaret.js",
163
+ "require": "./dist/cjs/parts/ExpandCaret.js"
164
+ },
165
+ "./parts/DropIndicator": {
166
+ "import": "./dist/esm/parts/DropIndicator.js",
167
+ "require": "./dist/cjs/parts/DropIndicator.js"
168
+ },
169
+ "./parts/DnDHandle": {
170
+ "import": "./dist/esm/parts/DnDHandle.js",
171
+ "require": "./dist/cjs/parts/DnDHandle.js"
169
172
  },
170
173
  "./parts/ChildrenCountDisplayer": {
171
- "import": "./esm/parts/ChildrenCountDisplayer.js",
172
- "require": "./cjs/parts/ChildrenCountDisplayer.js"
174
+ "import": "./dist/esm/parts/ChildrenCountDisplayer.js",
175
+ "require": "./dist/cjs/parts/ChildrenCountDisplayer.js"
173
176
  },
174
177
  "./parts/CheckboxSelectable": {
175
- "import": "./esm/parts/CheckboxSelectable.js",
176
- "require": "./cjs/parts/CheckboxSelectable.js"
178
+ "import": "./dist/esm/parts/CheckboxSelectable.js",
179
+ "require": "./dist/cjs/parts/CheckboxSelectable.js"
180
+ },
181
+ "./hoc/WithDnDSortableItemContext": {
182
+ "import": "./dist/esm/hoc/WithDnDSortableItemContext.js",
183
+ "require": "./dist/cjs/hoc/WithDnDSortableItemContext.js"
184
+ },
185
+ "./hoc/WithConditionalDnDContext": {
186
+ "import": "./dist/esm/hoc/WithConditionalDnDContext.js",
187
+ "require": "./dist/cjs/hoc/WithConditionalDnDContext.js"
188
+ },
189
+ "./hoc/SortableItemContext": {
190
+ "import": "./dist/esm/hoc/SortableItemContext.js",
191
+ "require": "./dist/cjs/hoc/SortableItemContext.js"
192
+ },
193
+ "./hoc/DnDTreeContext": {
194
+ "import": "./dist/esm/hoc/DnDTreeContext.js",
195
+ "require": "./dist/cjs/hoc/DnDTreeContext.js"
177
196
  },
178
197
  "./config/useTreeview": {
179
- "import": "./esm/config/useTreeview.js",
180
- "require": "./cjs/config/useTreeview.js"
198
+ "import": "./dist/esm/config/useTreeview.js",
199
+ "require": "./dist/cjs/config/useTreeview.js"
181
200
  },
182
201
  "./config/cssClassesConstants": {
183
- "import": "./esm/config/cssClassesConstants.js",
184
- "require": "./cjs/config/cssClassesConstants.js"
202
+ "import": "./dist/esm/config/cssClassesConstants.js",
203
+ "require": "./dist/cjs/config/cssClassesConstants.js"
185
204
  }
186
205
  },
187
206
  "sideEffects": [
@@ -193,33 +212,25 @@
193
212
  "url": "https://git.elliemae.io/platform-ui/dimsum.git"
194
213
  },
195
214
  "engines": {
196
- "npm": ">=7",
197
- "node": ">=14"
215
+ "pnpm": ">=6",
216
+ "node": ">=16"
198
217
  },
199
218
  "author": "ICE MT",
200
- "scripts": {
201
- "test:e2e": "../../../node_modules/pui-e2e-test-sdk/node_modules/.bin/wdio run ../../../wdio.conf.js",
202
- "test:reports": "../../../node_modules/pui-e2e-test-sdk/node_modules/.bin/allure open",
203
- "prebuild": "exit 0",
204
- "predev": "exit 0",
205
- "dev": "cross-env NODE_ENV=development && node ../../scripts/build/build.js -w",
206
- "build": "node ../../scripts/build/build.js"
207
- },
208
219
  "publishConfig": {
209
220
  "access": "public",
210
- "directory": "dist",
211
- "generateSubmodules": true
221
+ "typeSafety": false
212
222
  },
213
223
  "dependencies": {
214
- "@elliemae/ds-button": "2.3.0-alpha.1",
215
- "@elliemae/ds-circular-progress-indicator": "2.3.0-alpha.1",
216
- "@elliemae/ds-classnames": "2.3.0-alpha.1",
217
- "@elliemae/ds-form": "2.3.0-alpha.1",
218
- "@elliemae/ds-icons": "2.3.0-alpha.1",
219
- "@elliemae/ds-props-helpers": "2.3.0-alpha.1",
220
- "@elliemae/ds-shared": "2.3.0-alpha.1",
221
- "@elliemae/ds-truncated-tooltip-text": "2.3.0-alpha.1",
222
- "@elliemae/ds-utilities": "2.3.0-alpha.1",
224
+ "@elliemae/ds-button": "2.3.0-alpha.10",
225
+ "@elliemae/ds-circular-progress-indicator": "2.3.0-alpha.10",
226
+ "@elliemae/ds-classnames": "2.3.0-alpha.10",
227
+ "@elliemae/ds-drag-and-drop": "2.3.0-alpha.10",
228
+ "@elliemae/ds-form": "2.3.0-alpha.10",
229
+ "@elliemae/ds-icons": "2.3.0-alpha.10",
230
+ "@elliemae/ds-props-helpers": "2.3.0-alpha.10",
231
+ "@elliemae/ds-shared": "2.3.0-alpha.10",
232
+ "@elliemae/ds-truncated-tooltip-text": "2.3.0-alpha.10",
233
+ "@elliemae/ds-utilities": "2.3.0-alpha.10",
223
234
  "@elliemae/react-sortable-hoc": "^1.0.0",
224
235
  "react-desc": "~4.1.3",
225
236
  "react-highlight-words": "~0.17.0",
@@ -236,5 +247,13 @@
236
247
  "react": "~17.0.2",
237
248
  "react-dom": "^17.0.2",
238
249
  "styled-components": "^5.3.3"
250
+ },
251
+ "scripts": {
252
+ "test:e2e": "../../../node_modules/pui-e2e-test-sdk/node_modules/.bin/wdio run ../../../wdio.conf.js",
253
+ "test:reports": "../../../node_modules/pui-e2e-test-sdk/node_modules/.bin/allure open",
254
+ "prebuild": "exit 0",
255
+ "predev": "exit 0",
256
+ "dev": "cross-env NODE_ENV=development && node ../../scripts/build/build.js -w",
257
+ "build": "node ../../scripts/build/build.js"
239
258
  }
240
259
  }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/TreeView.tsx", "../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["/* eslint-disable max-lines */\n/* eslint-disable max-statements */\nimport React, { WeakValidationMap } from 'react';\n\nimport { describe } from 'react-desc';\nimport { TreeViewPropTypes } from './react-desc-prop-types';\nimport TreeViewContext from './TreeViewContext';\nimport { TreeDnD, TreeDndPlugin } from './plugins/dnd';\nimport { useTreeview } from './config/useTreeview';\nimport { TreeList } from './parts/TreeList';\nimport type { DSTreeviewT } from './react-desc-prop-types';\nexport function TreeView(props: DSTreeviewT.Props) {\n const { plugins } = props;\n\n const { ctx } = useTreeview(props);\n\n return (\n <TreeViewContext.Provider value={ctx}>\n {plugins?.includes(TreeDndPlugin) ? <TreeDnD /> : <TreeList />}\n </TreeViewContext.Provider>\n );\n}\n\nTreeView.propTypes = TreeViewPropTypes as WeakValidationMap<unknown>;\nconst TreeViewWithSchema = describe(TreeView);\nTreeViewWithSchema.propTypes = TreeViewPropTypes;\n\nexport { TreeViewWithSchema };\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADEvB,mBAAyC;AAEzC,wBAAyB;AACzB,mCAAkC;AAClC,6BAA4B;AAC5B,iBAAuC;AACvC,yBAA4B;AAC5B,sBAAyB;AAElB,kBAAkB,OAA0B;AACjD,QAAM,EAAE,YAAY;AAEpB,QAAM,EAAE,QAAQ,oCAAY;AAE5B,SACE,mDAAC,+BAAgB,UAAjB;AAAA,IAA0B,OAAO;AAAA,KAC9B,SAAS,SAAS,4BAAiB,mDAAC,oBAAD,QAAc,mDAAC,0BAAD;AAAA;AAKxD,SAAS,YAAY;AACrB,MAAM,qBAAqB,gCAAS;AACpC,mBAAmB,YAAY;",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/TreeViewContext.tsx", "../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["/* eslint-disable no-unused-vars */\nimport { createContext, createRef } from 'react';\nimport type { DSTreeviewT } from './react-desc-prop-types';\nimport type { DSTreeviewInternalsT } from './sharedTypes';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction noop<T extends unknown[]>(..._args: T): void {}\n\nexport const defaultProps = {\n plugins: [],\n selection: {},\n instanceRef: createRef(),\n isItemDisabled: () => false,\n disableIcons: false,\n fluid: false,\n isMultiSelect: false,\n isSingleSelect: false,\n restrictDragAndDrop: false,\n showChildrenAmount: false,\n sortable: false,\n isLoading: false,\n highlightOnlyQuery: false,\n onItemClick: noop,\n onItemFocus: noop,\n onVisibleItemsChange: noop,\n onOrderChange: noop,\n onSelectionChange: noop,\n onExpandChange: noop,\n onInstanceRefInitialized: noop,\n rowSize: 'normal',\n labelOverflow: 'wrap',\n noItemsPlaceholder: 'No items found',\n nameKey: 'name',\n width: '100%',\n height: '100%',\n groupIcon: null,\n itemIcon: null,\n searchQuery: '',\n // workaround on the typings over the fact that\n // when we instantiate the context we can't have all the props\n // we only have a part of them but the final typings will include missing props\n // this is safe to do because\n // we will \"mergeWithDefaults\" + \"validatePropTypes\" when we do instantiate the context\n} as unknown as DSTreeviewT.Props;\n\nexport const defaultRelativeMouseCoord = {\n isBefore: false,\n isAfter: false,\n isValid: true,\n item: null,\n x: null,\n y: null,\n relativeElementDOMRect: null,\n relativeElementIndex: null,\n};\n\nconst defaultContext: DSTreeviewInternalsT.CTX = {\n props: defaultProps,\n visibleItems: [],\n withRadioChecks: false,\n withCheckboxChecks: false,\n withDragAndDrop: false,\n relativeMouseCord: defaultRelativeMouseCoord,\n setRelativeMouseCord: noop,\n triggerTreeRerender: noop,\n tree: undefined,\n treeRoot: undefined,\n virtualListHelpers: {\n virtualItems: [],\n totalSize: 0,\n scrollToOffset: noop,\n scrollToIndex: noop,\n },\n virtualListRef: undefined,\n isDragging: false,\n setIsDragging: noop,\n isKeyboardDragging: false,\n setIsKeyboardDragging: noop,\n draggedItem: null,\n setDraggedItem: noop,\n uniqueTreeViewUUID: '',\n selectedItem: null,\n setSelectedItem: noop,\n focusedItem: null,\n setFocusedItem: noop,\n selectedCheckboxes: {},\n setSelectedCheckboxes: noop,\n expandedGroups: {},\n setExpandedGroups: noop,\n latestToggledItem: null,\n setLatestToggledItem: noop,\n hoverItem: null,\n setHoverItem: noop,\n handleExpandGroup: noop,\n updateUserExpandedState: noop,\n};\n\n/** Context for cross component communication */\nconst TreeViewContext = createContext(defaultContext);\n\nexport default TreeViewContext;\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADCvB,mBAAyC;AAKzC,iBAAsC,OAAgB;AAAA;AAE/C,MAAM,eAAe;AAAA,EAC1B,SAAS;AAAA,EACT,WAAW;AAAA,EACX,aAAa;AAAA,EACb,gBAAgB,MAAM;AAAA,EACtB,cAAc;AAAA,EACd,OAAO;AAAA,EACP,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,qBAAqB;AAAA,EACrB,oBAAoB;AAAA,EACpB,UAAU;AAAA,EACV,WAAW;AAAA,EACX,oBAAoB;AAAA,EACpB,aAAa;AAAA,EACb,aAAa;AAAA,EACb,sBAAsB;AAAA,EACtB,eAAe;AAAA,EACf,mBAAmB;AAAA,EACnB,gBAAgB;AAAA,EAChB,0BAA0B;AAAA,EAC1B,SAAS;AAAA,EACT,eAAe;AAAA,EACf,oBAAoB;AAAA,EACpB,SAAS;AAAA,EACT,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,UAAU;AAAA,EACV,aAAa;AAAA;AAQR,MAAM,4BAA4B;AAAA,EACvC,UAAU;AAAA,EACV,SAAS;AAAA,EACT,SAAS;AAAA,EACT,MAAM;AAAA,EACN,GAAG;AAAA,EACH,GAAG;AAAA,EACH,wBAAwB;AAAA,EACxB,sBAAsB;AAAA;AAGxB,MAAM,iBAA2C;AAAA,EAC/C,OAAO;AAAA,EACP,cAAc;AAAA,EACd,iBAAiB;AAAA,EACjB,oBAAoB;AAAA,EACpB,iBAAiB;AAAA,EACjB,mBAAmB;AAAA,EACnB,sBAAsB;AAAA,EACtB,qBAAqB;AAAA,EACrB,MAAM;AAAA,EACN,UAAU;AAAA,EACV,oBAAoB;AAAA,IAClB,cAAc;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,eAAe;AAAA;AAAA,EAEjB,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,oBAAoB;AAAA,EACpB,uBAAuB;AAAA,EACvB,aAAa;AAAA,EACb,gBAAgB;AAAA,EAChB,oBAAoB;AAAA,EACpB,cAAc;AAAA,EACd,iBAAiB;AAAA,EACjB,aAAa;AAAA,EACb,gBAAgB;AAAA,EAChB,oBAAoB;AAAA,EACpB,uBAAuB;AAAA,EACvB,gBAAgB;AAAA,EAChB,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,sBAAsB;AAAA,EACtB,WAAW;AAAA,EACX,cAAc;AAAA,EACd,mBAAmB;AAAA,EACnB,yBAAyB;AAAA;AAI3B,MAAM,kBAAkB,gCAAc;AAEtC,IAAO,0BAAQ;",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/config/useTreeview.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["/* eslint-disable max-lines */\n/* eslint-disable max-statements */\nimport { useState, useRef, useEffect, useMemo, useCallback } from 'react';\nimport { useVirtual } from 'react-virtual';\nimport { useMemoMergePropsWithDefault, useValidateTypescriptPropTypes } from '@elliemae/ds-props-helpers';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport { TreeViewPropTypes } from '../react-desc-prop-types';\nimport { defaultRelativeMouseCoord, defaultProps } from '../TreeViewContext';\nimport { TreeDndPlugin } from '../plugins/dnd';\nimport { useTree } from '../utils/useTree';\nimport { useNotifyExpandedChange, toggleItemExpand } from '../utils/group-expands-helpers';\nimport { useInstanceRefActions } from '../utils/useInstanceRefActions';\nimport { useGlobalToggleAllExpandShortcut } from '../utils/keyboard-helpers';\nimport type { DSTreeviewT } from '../react-desc-prop-types';\nimport type { DSTreeviewInternalsT } from '../sharedTypes';\n\ntype UseTreeviewT = (props: DSTreeviewT.Props) => { ctx: DSTreeviewInternalsT.CTX };\n\nexport const useTreeview: UseTreeviewT = (props) => {\n const propsWithDefault = useMemoMergePropsWithDefault<DSTreeviewT.Props>(props, defaultProps);\n useValidateTypescriptPropTypes<DSTreeviewT.Props>(propsWithDefault, TreeViewPropTypes);\n const defaultActions = {\n actions: {\n toggleExpandAll: () => {},\n scrollTo: () => {},\n setSelectedItemByVirtualIndex: () => {},\n setFocusedItemByVirtualIndex: () => {},\n },\n } as unknown as DSTreeviewT.InstanceRef;\n const treeRef = useRef(defaultActions);\n const {\n data,\n plugins,\n onOrderChange,\n isMultiSelect,\n isSingleSelect,\n instanceRef,\n selection,\n onInstanceRefInitialized,\n } = propsWithDefault;\n const [isDragging, setIsDragging] = useState(false);\n const [isKeyboardDragging, setIsKeyboardDragging] = useState(false);\n const [relativeMouseCord, setRelativeMouseCord] =\n useState<DSTreeviewInternalsT.MouseCoord>(defaultRelativeMouseCoord);\n const [uniqueTreeViewUUID] = useState(uuidv4());\n const [draggedItem, setDraggedItem] = useState<DSTreeviewT.Item | null>(null);\n const [hoverItem, setHoverItem] = useState<DSTreeviewT.Item | null>(null);\n const [latestToggledItem, setLatestToggledItem] = useState<DSTreeviewT.Item | null>(null);\n const [selectedItem, setSelectedItem] = useState<DSTreeviewT.Item | null>(null);\n const [focusedItem, setFocusedItem] = useState<DSTreeviewT.Item | null>(null);\n const [selectedCheckboxes, setSelectedCheckboxes] = useState({\n ...selection,\n });\n const [expandedGroups, setExpandedGroups] = useState<DSTreeviewT.ExpandedItems>({});\n const { visibleItems, tree, treeRoot, triggerTreeRerender, updateUserExpandedState } = useTree(\n data,\n propsWithDefault,\n {\n setExpandedGroups,\n },\n );\n\n const virtualListRef = useRef<HTMLUListElement>();\n // estimateSize should not be really required given what was stated on\n // https://github.com/tannerlinsley/react-virtual/issues/23\n\n const virtualListHelpers = useVirtual({\n size: visibleItems.length,\n parentRef: virtualListRef,\n overscan: 15,\n });\n\n const withDragAndDrop = !!(plugins?.includes(TreeDndPlugin) && onOrderChange);\n const withRadioChecks = isSingleSelect && !isMultiSelect;\n const withCheckboxChecks = !isSingleSelect && isMultiSelect;\n\n const handleExpandGroup = useCallback(toggleItemExpand, []);\n\n const ctx: DSTreeviewInternalsT.CTX = useMemo(\n () => ({\n props: propsWithDefault,\n setRelativeMouseCord,\n relativeMouseCord,\n virtualListHelpers,\n virtualListRef,\n tree,\n treeRoot,\n visibleItems,\n triggerTreeRerender,\n isDragging,\n setIsDragging,\n isKeyboardDragging,\n setIsKeyboardDragging,\n draggedItem,\n setDraggedItem,\n withRadioChecks,\n withCheckboxChecks,\n withDragAndDrop,\n uniqueTreeViewUUID,\n selectedCheckboxes,\n setSelectedCheckboxes,\n selectedItem,\n setSelectedItem,\n expandedGroups,\n setExpandedGroups,\n latestToggledItem,\n setLatestToggledItem,\n focusedItem,\n setFocusedItem,\n hoverItem,\n setHoverItem,\n handleExpandGroup,\n updateUserExpandedState,\n }),\n [\n draggedItem,\n expandedGroups,\n focusedItem,\n handleExpandGroup,\n hoverItem,\n isDragging,\n isKeyboardDragging,\n latestToggledItem,\n propsWithDefault,\n relativeMouseCord,\n selectedCheckboxes,\n selectedItem,\n tree,\n treeRoot,\n triggerTreeRerender,\n uniqueTreeViewUUID,\n virtualListHelpers,\n visibleItems,\n withCheckboxChecks,\n withDragAndDrop,\n withRadioChecks,\n updateUserExpandedState,\n ],\n );\n // this hooks can't use the context because the context provider doesn't wrap this\n // as such we manually pass the second parameter as fit\n if (instanceRef) instanceRef.current = treeRef.current;\n useInstanceRefActions(treeRef.current, ctx);\n useGlobalToggleAllExpandShortcut(treeRoot, triggerTreeRerender, setLatestToggledItem, updateUserExpandedState);\n useNotifyExpandedChange(propsWithDefault, ctx);\n\n // this is an horrible hack.\n // this is required because there is no \"on rendered\" react-way to check if every children has finished rendering\n // this should be working for now, in the future we may want to review this for a better solution\n useEffect(() => {\n setTimeout(() => onInstanceRefInitialized(treeRef), 100);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return useMemo(() => ({ ctx }), [ctx]);\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": "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",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/parts/TreeItem.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["/* eslint-disable max-lines */\nimport React, { useContext, useState, useMemo, useRef, useCallback } from 'react';\nimport { SortableElement, SortableHandle } from '@elliemae/react-sortable-hoc';\n\nimport { aggregatedClasses } from '@elliemae/ds-classnames';\nimport { GripperVertical } from '@elliemae/ds-icons';\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';\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\nconst DnDHandle = SortableHandle(({ id }: { id: DSTreeviewT.StringOrNum }) => (\n <GripperVertical\n data-testid=\"drag-handle\"\n key={`${id}-drag-handle`}\n className=\"drag-handle\"\n size=\"s\"\n onMouseDown={(e: React.MouseEvent) => {\n // prevent focusing the drag-handle to avoid borders\n if (e) {\n e.preventDefault();\n }\n }}\n tabIndex=\"0\"\n />\n));\ninterface PropsT {\n item: DSTreeviewT.Item;\n itemIndex: number;\n virtualItemRef: React.RefObject<HTMLLIElement>;\n itemWrapperStyle?: { [key: string]: unknown };\n spaceForNestingLevel?: number;\n onMouseDragOverItem?: (opts: {\n event: React.MouseEvent<HTMLLIElement>;\n item: DSTreeviewT.Item;\n itemIndex: number;\n setIsDraggingOverThis: React.Dispatch<React.SetStateAction<boolean>>;\n openFolderOnHoverTimeout: React.MutableRefObject<NodeJS.Timeout | null>;\n }) => void;\n}\nexport const TreeItem = (props: PropsT): JSX.Element => {\n const {\n item,\n itemIndex,\n itemWrapperStyle = {},\n virtualItemRef,\n spaceForNestingLevel = 1.5,\n onMouseDragOverItem,\n } = props;\n const { id, node } = item;\n const { nodeItemRef } = node.model;\n const openFolderOnHoverTimeout = useRef<NodeJS.Timeout | null>(null);\n\n const [isDraggingOverThis, setIsDraggingOverThis] = useState(false);\n const onItemKeyDown = useOnItemKeyDown(item);\n\n const ctx = useContext(TreeViewContext);\n const {\n props: { disableIcons, rightAddons, onItemClick, onItemFocus, rowSize, labelOverflow },\n relativeMouseCord,\n withRadioChecks,\n withCheckboxChecks,\n withDragAndDrop,\n selectedItem,\n selectedCheckboxes,\n hoverItem,\n isDragging,\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 const setItemRefs: React.LegacyRef<HTMLLIElement> | undefined = (ref: HTMLLIElement) => {\n setMultipleRefs(virtualItemRef, nodeItemRef)(ref);\n };\n\n const dropPreviewClassName = useMemo(() => {\n if (!withDragAndDrop || !relativeMouseCord || !isDraggingOverThis) return '';\n const { isBefore, isAfter, isValid } = relativeMouseCord;\n let className = `${DSTreeViewPrefix}-${treeItemBlockName}${isValid ? '--valid' : '--invalid'}`;\n\n if (isBefore) className += '-drop-before';\n else if (isAfter) className += '-drop-after';\n else className += '-drop-in';\n return className;\n }, [withDragAndDrop, relativeMouseCord, isDraggingOverThis]);\n\n const selectedClassName = useMemo(\n () => (selectedItem?.id === item.id ? 'selected' : ''),\n [item.id, selectedItem?.id],\n );\n const hoverClassName = useMemo(\n () => (hoverItem?.id !== item.id || (withDragAndDrop && isDragging) ? '' : 'hover'),\n [hoverItem?.id, item.id, withDragAndDrop, 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 finalClassName = useMemo(\n () => `${dropPreviewClassName} ${fixedHeightClassname} ${selectedClassName} ${hoverClassName}`,\n [dropPreviewClassName, selectedClassName, hoverClassName, fixedHeightClassname],\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 onMouseMove={(event) => {\n if (withDragAndDrop && onMouseDragOverItem) {\n onMouseDragOverItem({\n event,\n item,\n itemIndex,\n setIsDraggingOverThis,\n openFolderOnHoverTimeout,\n });\n }\n }}\n onMouseLeave={() => {\n if (withDragAndDrop) {\n setIsDraggingOverThis(false);\n if (openFolderOnHoverTimeout?.current) clearTimeout(openFolderOnHoverTimeout.current);\n }\n if (hoverItem?.id === item.id) {\n setHoverItem(null);\n }\n }}\n onMouseEnter={() => {\n setHoverItem(item);\n }}\n onClick={handleItemClick}\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} /> : null}\n {withRadioChecks ? <RadioSelectable item={item} itemIndex={itemIndex} /> : null}\n {withCheckboxChecks ? <CheckboxSelectable item={item} itemIndex={itemIndex} /> : null}\n <NestingSpace item={item} spaceForNestingLevel={spaceForNestingLevel} />\n <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 </TreeListItem>\n );\n};\n\nexport const DragAndDropTreeItem = SortableElement(TreeItem);\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": "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",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/parts/TreeList.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["/* eslint-disable max-lines */\nimport React, { useContext } from 'react';\nimport { SortableContainer } from '@elliemae/react-sortable-hoc';\nimport { aggregatedClasses } from '@elliemae/ds-classnames';\nimport { DSCircularProgressIndicator } from '@elliemae/ds-circular-progress-indicator';\n\nimport TreeViewContext from '../TreeViewContext';\nimport { DSTreeViewPrefix, treeListBlockName } from '../config/cssClassesConstants';\nimport { TreeItem, DragAndDropTreeItem } from './TreeItem';\n\nimport type { DSTreeviewT } from '../react-desc-prop-types';\n\nexport const treeListNoItemsBn = `${treeListBlockName}-no-items`;\nexport const TreeListNoItems = aggregatedClasses('div', {\n 'data-testid': treeListNoItemsBn,\n})(treeListNoItemsBn) as unknown as React.ComponentType<React.ComponentProps<'div'>>;\n\n// React.ComponentProps<'ul'> uses LegacyRef typings that existed pre-hook era\n// we omit the LegacyRef typings in favor of hook-era typings\ninterface UlProps extends Omit<React.ComponentProps<'ul'>, 'ref'> {\n ref: React.MutableRefObject<HTMLUListElement | undefined> | undefined;\n}\nexport const TreeListWrapper = aggregatedClasses('ul', {\n 'data-testid': treeListBlockName,\n role: 'tree',\n})(treeListBlockName, null, ({ rowSize }: { rowSize: 'normal' | 'compact' }) => ({\n [`rowsize-${rowSize}`]: rowSize,\n})) as unknown as React.ComponentType<UlProps>;\n\nconst compactRowClass = `${DSTreeViewPrefix}-tv-row-size-compact`;\nconst normaRowClass = `${DSTreeViewPrefix}-tv-row-size-normal`;\n\ninterface PropsT {\n onMouseDragOverItem?: (opts: {\n event: React.MouseEvent<HTMLLIElement>;\n item: DSTreeviewT.Item;\n itemIndex: number;\n setIsDraggingOverThis: React.Dispatch<React.SetStateAction<boolean>>;\n openFolderOnHoverTimeout: React.MutableRefObject<NodeJS.Timeout | null>;\n }) => void;\n}\n\nexport const TreeList = (props: PropsT) => {\n const { onMouseDragOverItem } = props;\n const ctx = useContext(TreeViewContext);\n const {\n virtualListRef,\n virtualListHelpers,\n visibleItems,\n withDragAndDrop,\n props: { width, height, rowSize, noItemsPlaceholder, isLoading },\n } = ctx;\n const { totalSize, virtualItems } = virtualListHelpers;\n const className = `${rowSize === 'compact' ? `${compactRowClass}` : `${normaRowClass}`}`;\n\n return (\n <TreeListWrapper\n ref={virtualListRef}\n className={className}\n style={{\n height: `${typeof height === 'number' ? `${height}px` : height}`,\n width: `${typeof width === 'number' ? `${width}px` : width}`,\n overflow: 'auto',\n }}\n >\n {isLoading ? (\n <div\n style={{\n width: '100%',\n height: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n <DSCircularProgressIndicator size=\"xl\" loading={isLoading} showLabel waiting={false} showTooltip={false} />\n </div>\n ) : null}\n {!isLoading && virtualItems.length === 0 ? <TreeListNoItems>{noItemsPlaceholder}</TreeListNoItems> : null}\n {!isLoading && virtualItems.length !== 0 ? (\n <div\n style={{\n height: `${totalSize}px`,\n width: '100%',\n position: 'relative',\n }}\n >\n {virtualItems.map((virtualItem) => {\n const { index, measureRef, start } = virtualItem;\n const item = visibleItems[index];\n item.virtualIndex = index;\n const { id } = item;\n\n const style = {\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n transform: `translateY(${start}px)`,\n };\n\n const listItemProps = {\n key: `DS-TreeView-List-Item-${id}`,\n virtualItemRef: measureRef,\n index, // this is consumed by the DnD HOC\n itemIndex: index,\n item,\n itemWrapperStyle: style,\n };\n\n if (withDragAndDrop)\n return <DragAndDropTreeItem {...listItemProps} onMouseDragOverItem={onMouseDragOverItem} />;\n return <TreeItem {...listItemProps} />;\n })}\n </div>\n ) : null}\n </TreeListWrapper>\n );\n};\ntype SortablePropsT = PropsT & {\n disableAnimation?: boolean;\n getContainer: (element: React.ReactElement<unknown>) => HTMLElement | Promise<HTMLElement>;\n};\nexport const DragAndDropTreeList = SortableContainer<SortablePropsT>(TreeList);\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADCvB,mBAAkC;AAClC,gCAAkC;AAClC,2BAAkC;AAClC,4CAA4C;AAE5C,6BAA4B;AAC5B,iCAAoD;AACpD,sBAA8C;AAIvC,MAAM,oBAAoB,GAAG;AAC7B,MAAM,kBAAkB,4CAAkB,OAAO;AAAA,EACtD,eAAe;AAAA,GACd;AAOI,MAAM,kBAAkB,4CAAkB,MAAM;AAAA,EACrD,eAAe;AAAA,EACf,MAAM;AAAA,GACL,8CAAmB,MAAM,CAAC,EAAE,cAAkD;AAAA,GAC9E,WAAW,YAAY;AAAA;AAG1B,MAAM,kBAAkB,GAAG;AAC3B,MAAM,gBAAgB,GAAG;AAYlB,MAAM,WAAW,CAAC,UAAkB;AACzC,QAAM,EAAE,wBAAwB;AAChC,QAAM,MAAM,6BAAW;AACvB,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO,EAAE,OAAO,QAAQ,SAAS,oBAAoB;AAAA,MACnD;AACJ,QAAM,EAAE,WAAW,iBAAiB;AACpC,QAAM,YAAY,GAAG,YAAY,YAAY,GAAG,oBAAoB,GAAG;AAEvE,SACE,mDAAC,iBAAD;AAAA,IACE,KAAK;AAAA,IACL;AAAA,IACA,OAAO;AAAA,MACL,QAAQ,GAAG,OAAO,WAAW,WAAW,GAAG,aAAa;AAAA,MACxD,OAAO,GAAG,OAAO,UAAU,WAAW,GAAG,YAAY;AAAA,MACrD,UAAU;AAAA;AAAA,KAGX,YACC,mDAAC,OAAD;AAAA,IACE,OAAO;AAAA,MACL,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,gBAAgB;AAAA;AAAA,KAGlB,mDAAC,mEAAD;AAAA,IAA6B,MAAK;AAAA,IAAK,SAAS;AAAA,IAAW,WAAS;AAAA,IAAC,SAAS;AAAA,IAAO,aAAa;AAAA,QAElG,MACH,CAAC,aAAa,aAAa,WAAW,IAAI,mDAAC,iBAAD,MAAkB,sBAAwC,MACpG,CAAC,aAAa,aAAa,WAAW,IACrC,mDAAC,OAAD;AAAA,IACE,OAAO;AAAA,MACL,QAAQ,GAAG;AAAA,MACX,OAAO;AAAA,MACP,UAAU;AAAA;AAAA,KAGX,aAAa,IAAI,CAAC,gBAAgB;AACjC,UAAM,EAAE,OAAO,YAAY,UAAU;AACrC,UAAM,OAAO,aAAa;AAC1B,SAAK,eAAe;AACpB,UAAM,EAAE,OAAO;AAEf,UAAM,QAAQ;AAAA,MACZ,UAAU;AAAA,MACV,KAAK;AAAA,MACL,MAAM;AAAA,MACN,OAAO;AAAA,MACP,WAAW,cAAc;AAAA;AAG3B,UAAM,gBAAgB;AAAA,MACpB,KAAK,yBAAyB;AAAA,MAC9B,gBAAgB;AAAA,MAChB;AAAA,MACA,WAAW;AAAA,MACX;AAAA,MACA,kBAAkB;AAAA;AAGpB,QAAI;AACF,aAAO,mDAAC,qCAAD;AAAA,WAAyB;AAAA,QAAe;AAAA;AACjD,WAAO,mDAAC,0BAAD;AAAA,SAAc;AAAA;AAAA,QAGvB;AAAA;AAQH,MAAM,sBAAsB,iDAAkC;",
6
- "names": []
7
- }