@elliemae/ds-legacy-shuttle-v2 1.0.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (306) hide show
  1. package/dist/cjs/DSShuttleV2.js +46 -0
  2. package/dist/cjs/DSShuttleV2.js.map +7 -0
  3. package/dist/cjs/config/DSShuttleV2Definitions.js +74 -0
  4. package/dist/cjs/config/DSShuttleV2Definitions.js.map +7 -0
  5. package/dist/cjs/config/itemMovementHelpers.js +133 -0
  6. package/dist/cjs/config/itemMovementHelpers.js.map +7 -0
  7. package/dist/cjs/config/useAutoCalculated/index.js +43 -0
  8. package/dist/cjs/config/useAutoCalculated/index.js.map +7 -0
  9. package/dist/cjs/config/useAutoCalculated/useDataStructure.js +182 -0
  10. package/dist/cjs/config/useAutoCalculated/useDataStructure.js.map +7 -0
  11. package/dist/cjs/config/useAutoCalculated/useShuttleVirtualized.js +51 -0
  12. package/dist/cjs/config/useAutoCalculated/useShuttleVirtualized.js.map +7 -0
  13. package/dist/cjs/config/useFocusTracker/index.js +42 -0
  14. package/dist/cjs/config/useFocusTracker/index.js.map +7 -0
  15. package/dist/cjs/config/useFocusTracker/useFocusActionTrackers.js +149 -0
  16. package/dist/cjs/config/useFocusTracker/useFocusActionTrackers.js.map +7 -0
  17. package/dist/cjs/config/useFocusTracker/useFocusItemTracker.js +103 -0
  18. package/dist/cjs/config/useFocusTracker/useFocusItemTracker.js.map +7 -0
  19. package/dist/cjs/config/useFocusTracker/useFocusRegionTrackers.js +87 -0
  20. package/dist/cjs/config/useFocusTracker/useFocusRegionTrackers.js.map +7 -0
  21. package/dist/cjs/config/useFocusTracker/useFocusTracker.js +52 -0
  22. package/dist/cjs/config/useFocusTracker/useFocusTracker.js.map +7 -0
  23. package/dist/cjs/config/useStore/focusAndTabIndexManager.js +77 -0
  24. package/dist/cjs/config/useStore/focusAndTabIndexManager.js.map +7 -0
  25. package/dist/cjs/config/useStore/index.js +30 -0
  26. package/dist/cjs/config/useStore/index.js.map +7 -0
  27. package/dist/cjs/config/useStore/useStore.js +86 -0
  28. package/dist/cjs/config/useStore/useStore.js.map +7 -0
  29. package/dist/cjs/config/useValidateProps.js +40 -0
  30. package/dist/cjs/config/useValidateProps.js.map +7 -0
  31. package/dist/cjs/constants/index.js +69 -0
  32. package/dist/cjs/constants/index.js.map +7 -0
  33. package/dist/cjs/exported-related/ShuttleItem.js +60 -0
  34. package/dist/cjs/exported-related/ShuttleItem.js.map +7 -0
  35. package/dist/cjs/exported-related/index.js +36 -0
  36. package/dist/cjs/exported-related/index.js.map +7 -0
  37. package/dist/cjs/index.js +43 -0
  38. package/dist/cjs/index.js.map +7 -0
  39. package/dist/cjs/package.json +7 -0
  40. package/dist/cjs/parts/Dnd/DndHandle.js +89 -0
  41. package/dist/cjs/parts/Dnd/DndHandle.js.map +7 -0
  42. package/dist/cjs/parts/Dnd/DragOverlay.js +51 -0
  43. package/dist/cjs/parts/Dnd/DragOverlay.js.map +7 -0
  44. package/dist/cjs/parts/Dnd/DropIndicator.js +92 -0
  45. package/dist/cjs/parts/Dnd/DropIndicator.js.map +7 -0
  46. package/dist/cjs/parts/Header.js +91 -0
  47. package/dist/cjs/parts/Header.js.map +7 -0
  48. package/dist/cjs/parts/HoC/withConditionalDnDRowContext.js +121 -0
  49. package/dist/cjs/parts/HoC/withConditionalDnDRowContext.js.map +7 -0
  50. package/dist/cjs/parts/HoC/withConditionalUseSortable.js +43 -0
  51. package/dist/cjs/parts/HoC/withConditionalUseSortable.js.map +7 -0
  52. package/dist/cjs/parts/Item/Item.js +222 -0
  53. package/dist/cjs/parts/Item/Item.js.map +7 -0
  54. package/dist/cjs/parts/Item/ItemActions/ItemActions.js +164 -0
  55. package/dist/cjs/parts/Item/ItemActions/ItemActions.js.map +7 -0
  56. package/dist/cjs/parts/Item/ItemActions/index.js +30 -0
  57. package/dist/cjs/parts/Item/ItemActions/index.js.map +7 -0
  58. package/dist/cjs/parts/Item/ItemActions/useActionsHandlers.js +54 -0
  59. package/dist/cjs/parts/Item/ItemActions/useActionsHandlers.js.map +7 -0
  60. package/dist/cjs/parts/Item/ItemActions/useActionsLogicHandlers.js +82 -0
  61. package/dist/cjs/parts/Item/ItemActions/useActionsLogicHandlers.js.map +7 -0
  62. package/dist/cjs/parts/Item/ItemActions/useInnerRefHandlers.js +69 -0
  63. package/dist/cjs/parts/Item/ItemActions/useInnerRefHandlers.js.map +7 -0
  64. package/dist/cjs/parts/Item/ItemMiddleSection.js +140 -0
  65. package/dist/cjs/parts/Item/ItemMiddleSection.js.map +7 -0
  66. package/dist/cjs/parts/Item/ItemOverlay.js +76 -0
  67. package/dist/cjs/parts/Item/ItemOverlay.js.map +7 -0
  68. package/dist/cjs/parts/Item/ItemSelection.js +70 -0
  69. package/dist/cjs/parts/Item/ItemSelection.js.map +7 -0
  70. package/dist/cjs/parts/Item/TextSection.js +56 -0
  71. package/dist/cjs/parts/Item/TextSection.js.map +7 -0
  72. package/dist/cjs/parts/Item/useItemArrowNavigation.js +104 -0
  73. package/dist/cjs/parts/Item/useItemArrowNavigation.js.map +7 -0
  74. package/dist/cjs/parts/Item/useItemKeyboardSelection.js +61 -0
  75. package/dist/cjs/parts/Item/useItemKeyboardSelection.js.map +7 -0
  76. package/dist/cjs/parts/Item/useSelectionLogic.js +128 -0
  77. package/dist/cjs/parts/Item/useSelectionLogic.js.map +7 -0
  78. package/dist/cjs/parts/Item/useThisItemIsFocused.js +47 -0
  79. package/dist/cjs/parts/Item/useThisItemIsFocused.js.map +7 -0
  80. package/dist/cjs/parts/MainContent.js +116 -0
  81. package/dist/cjs/parts/MainContent.js.map +7 -0
  82. package/dist/cjs/parts/Panel/bottom/LoadMoreBtn.js +81 -0
  83. package/dist/cjs/parts/Panel/bottom/LoadMoreBtn.js.map +7 -0
  84. package/dist/cjs/parts/Panel/bottom/LoadingMore.js +59 -0
  85. package/dist/cjs/parts/Panel/bottom/LoadingMore.js.map +7 -0
  86. package/dist/cjs/parts/Panel/bottom/PanelContentBottomSection.js +97 -0
  87. package/dist/cjs/parts/Panel/bottom/PanelContentBottomSection.js.map +7 -0
  88. package/dist/cjs/parts/Panel/bottom/useInnerRefHandlers.js +51 -0
  89. package/dist/cjs/parts/Panel/bottom/useInnerRefHandlers.js.map +7 -0
  90. package/dist/cjs/parts/Panel/bottom/useLoadMoreBtnArrowNavigation.js +77 -0
  91. package/dist/cjs/parts/Panel/bottom/useLoadMoreBtnArrowNavigation.js.map +7 -0
  92. package/dist/cjs/parts/Panel/middle/EmptyItems.js +58 -0
  93. package/dist/cjs/parts/Panel/middle/EmptyItems.js.map +7 -0
  94. package/dist/cjs/parts/Panel/middle/ItemListWrapper/Index.js +93 -0
  95. package/dist/cjs/parts/Panel/middle/ItemListWrapper/Index.js.map +7 -0
  96. package/dist/cjs/parts/Panel/middle/ItemListWrapper/getDatumFlags.js +48 -0
  97. package/dist/cjs/parts/Panel/middle/ItemListWrapper/getDatumFlags.js.map +7 -0
  98. package/dist/cjs/parts/Panel/middle/ItemListWrapper/useGetDatumHydratables.js +60 -0
  99. package/dist/cjs/parts/Panel/middle/ItemListWrapper/useGetDatumHydratables.js.map +7 -0
  100. package/dist/cjs/parts/Panel/middle/LoadingItems.js +68 -0
  101. package/dist/cjs/parts/Panel/middle/LoadingItems.js.map +7 -0
  102. package/dist/cjs/parts/Panel/middle/MultipleSelectionAction.js +186 -0
  103. package/dist/cjs/parts/Panel/middle/MultipleSelectionAction.js.map +7 -0
  104. package/dist/cjs/parts/Panel/middle/PanelContentMiddleSection.js +174 -0
  105. package/dist/cjs/parts/Panel/middle/PanelContentMiddleSection.js.map +7 -0
  106. package/dist/cjs/parts/Panel/top/PanelContentTopSection.js +71 -0
  107. package/dist/cjs/parts/Panel/top/PanelContentTopSection.js.map +7 -0
  108. package/dist/cjs/parts/Panel/top/PanelFilterSection.js +79 -0
  109. package/dist/cjs/parts/Panel/top/PanelFilterSection.js.map +7 -0
  110. package/dist/cjs/parts/Panel/top/SelectionHeader.js +137 -0
  111. package/dist/cjs/parts/Panel/top/SelectionHeader.js.map +7 -0
  112. package/dist/cjs/parts/PanelWrapper.js +83 -0
  113. package/dist/cjs/parts/PanelWrapper.js.map +7 -0
  114. package/dist/cjs/react-desc-prop-types.js +157 -0
  115. package/dist/cjs/react-desc-prop-types.js.map +7 -0
  116. package/dist/cjs/tests/configs/basic.js +164 -0
  117. package/dist/cjs/tests/configs/basic.js.map +7 -0
  118. package/dist/cjs/tests/configs/filter.js +199 -0
  119. package/dist/cjs/tests/configs/filter.js.map +7 -0
  120. package/dist/cjs/tests/configs/loadMore.js +179 -0
  121. package/dist/cjs/tests/configs/loadMore.js.map +7 -0
  122. package/dist/esm/DSShuttleV2.js +16 -0
  123. package/dist/esm/DSShuttleV2.js.map +7 -0
  124. package/dist/esm/config/DSShuttleV2Definitions.js +44 -0
  125. package/dist/esm/config/DSShuttleV2Definitions.js.map +7 -0
  126. package/dist/esm/config/itemMovementHelpers.js +103 -0
  127. package/dist/esm/config/itemMovementHelpers.js.map +7 -0
  128. package/dist/esm/config/useAutoCalculated/index.js +13 -0
  129. package/dist/esm/config/useAutoCalculated/index.js.map +7 -0
  130. package/dist/esm/config/useAutoCalculated/useDataStructure.js +152 -0
  131. package/dist/esm/config/useAutoCalculated/useDataStructure.js.map +7 -0
  132. package/dist/esm/config/useAutoCalculated/useShuttleVirtualized.js +21 -0
  133. package/dist/esm/config/useAutoCalculated/useShuttleVirtualized.js.map +7 -0
  134. package/dist/esm/config/useFocusTracker/index.js +12 -0
  135. package/dist/esm/config/useFocusTracker/index.js.map +7 -0
  136. package/dist/esm/config/useFocusTracker/useFocusActionTrackers.js +119 -0
  137. package/dist/esm/config/useFocusTracker/useFocusActionTrackers.js.map +7 -0
  138. package/dist/esm/config/useFocusTracker/useFocusItemTracker.js +73 -0
  139. package/dist/esm/config/useFocusTracker/useFocusItemTracker.js.map +7 -0
  140. package/dist/esm/config/useFocusTracker/useFocusRegionTrackers.js +57 -0
  141. package/dist/esm/config/useFocusTracker/useFocusRegionTrackers.js.map +7 -0
  142. package/dist/esm/config/useFocusTracker/useFocusTracker.js +22 -0
  143. package/dist/esm/config/useFocusTracker/useFocusTracker.js.map +7 -0
  144. package/dist/esm/config/useStore/focusAndTabIndexManager.js +47 -0
  145. package/dist/esm/config/useStore/focusAndTabIndexManager.js.map +7 -0
  146. package/dist/esm/config/useStore/index.js +3 -0
  147. package/dist/esm/config/useStore/index.js.map +7 -0
  148. package/dist/esm/config/useStore/useStore.js +56 -0
  149. package/dist/esm/config/useStore/useStore.js.map +7 -0
  150. package/dist/esm/config/useValidateProps.js +10 -0
  151. package/dist/esm/config/useValidateProps.js.map +7 -0
  152. package/dist/esm/constants/index.js +39 -0
  153. package/dist/esm/constants/index.js.map +7 -0
  154. package/dist/esm/exported-related/ShuttleItem.js +30 -0
  155. package/dist/esm/exported-related/ShuttleItem.js.map +7 -0
  156. package/dist/esm/exported-related/index.js +6 -0
  157. package/dist/esm/exported-related/index.js.map +7 -0
  158. package/dist/esm/index.js +13 -0
  159. package/dist/esm/index.js.map +7 -0
  160. package/dist/esm/package.json +7 -0
  161. package/dist/esm/parts/Dnd/DndHandle.js +59 -0
  162. package/dist/esm/parts/Dnd/DndHandle.js.map +7 -0
  163. package/dist/esm/parts/Dnd/DragOverlay.js +21 -0
  164. package/dist/esm/parts/Dnd/DragOverlay.js.map +7 -0
  165. package/dist/esm/parts/Dnd/DropIndicator.js +62 -0
  166. package/dist/esm/parts/Dnd/DropIndicator.js.map +7 -0
  167. package/dist/esm/parts/Header.js +63 -0
  168. package/dist/esm/parts/Header.js.map +7 -0
  169. package/dist/esm/parts/HoC/withConditionalDnDRowContext.js +91 -0
  170. package/dist/esm/parts/HoC/withConditionalDnDRowContext.js.map +7 -0
  171. package/dist/esm/parts/HoC/withConditionalUseSortable.js +13 -0
  172. package/dist/esm/parts/HoC/withConditionalUseSortable.js.map +7 -0
  173. package/dist/esm/parts/Item/Item.js +192 -0
  174. package/dist/esm/parts/Item/Item.js.map +7 -0
  175. package/dist/esm/parts/Item/ItemActions/ItemActions.js +134 -0
  176. package/dist/esm/parts/Item/ItemActions/ItemActions.js.map +7 -0
  177. package/dist/esm/parts/Item/ItemActions/index.js +3 -0
  178. package/dist/esm/parts/Item/ItemActions/index.js.map +7 -0
  179. package/dist/esm/parts/Item/ItemActions/useActionsHandlers.js +24 -0
  180. package/dist/esm/parts/Item/ItemActions/useActionsHandlers.js.map +7 -0
  181. package/dist/esm/parts/Item/ItemActions/useActionsLogicHandlers.js +52 -0
  182. package/dist/esm/parts/Item/ItemActions/useActionsLogicHandlers.js.map +7 -0
  183. package/dist/esm/parts/Item/ItemActions/useInnerRefHandlers.js +39 -0
  184. package/dist/esm/parts/Item/ItemActions/useInnerRefHandlers.js.map +7 -0
  185. package/dist/esm/parts/Item/ItemMiddleSection.js +110 -0
  186. package/dist/esm/parts/Item/ItemMiddleSection.js.map +7 -0
  187. package/dist/esm/parts/Item/ItemOverlay.js +46 -0
  188. package/dist/esm/parts/Item/ItemOverlay.js.map +7 -0
  189. package/dist/esm/parts/Item/ItemSelection.js +40 -0
  190. package/dist/esm/parts/Item/ItemSelection.js.map +7 -0
  191. package/dist/esm/parts/Item/TextSection.js +26 -0
  192. package/dist/esm/parts/Item/TextSection.js.map +7 -0
  193. package/dist/esm/parts/Item/useItemArrowNavigation.js +78 -0
  194. package/dist/esm/parts/Item/useItemArrowNavigation.js.map +7 -0
  195. package/dist/esm/parts/Item/useItemKeyboardSelection.js +31 -0
  196. package/dist/esm/parts/Item/useItemKeyboardSelection.js.map +7 -0
  197. package/dist/esm/parts/Item/useSelectionLogic.js +98 -0
  198. package/dist/esm/parts/Item/useSelectionLogic.js.map +7 -0
  199. package/dist/esm/parts/Item/useThisItemIsFocused.js +17 -0
  200. package/dist/esm/parts/Item/useThisItemIsFocused.js.map +7 -0
  201. package/dist/esm/parts/MainContent.js +86 -0
  202. package/dist/esm/parts/MainContent.js.map +7 -0
  203. package/dist/esm/parts/Panel/bottom/LoadMoreBtn.js +51 -0
  204. package/dist/esm/parts/Panel/bottom/LoadMoreBtn.js.map +7 -0
  205. package/dist/esm/parts/Panel/bottom/LoadingMore.js +29 -0
  206. package/dist/esm/parts/Panel/bottom/LoadingMore.js.map +7 -0
  207. package/dist/esm/parts/Panel/bottom/PanelContentBottomSection.js +67 -0
  208. package/dist/esm/parts/Panel/bottom/PanelContentBottomSection.js.map +7 -0
  209. package/dist/esm/parts/Panel/bottom/useInnerRefHandlers.js +21 -0
  210. package/dist/esm/parts/Panel/bottom/useInnerRefHandlers.js.map +7 -0
  211. package/dist/esm/parts/Panel/bottom/useLoadMoreBtnArrowNavigation.js +51 -0
  212. package/dist/esm/parts/Panel/bottom/useLoadMoreBtnArrowNavigation.js.map +7 -0
  213. package/dist/esm/parts/Panel/middle/EmptyItems.js +28 -0
  214. package/dist/esm/parts/Panel/middle/EmptyItems.js.map +7 -0
  215. package/dist/esm/parts/Panel/middle/ItemListWrapper/Index.js +63 -0
  216. package/dist/esm/parts/Panel/middle/ItemListWrapper/Index.js.map +7 -0
  217. package/dist/esm/parts/Panel/middle/ItemListWrapper/getDatumFlags.js +18 -0
  218. package/dist/esm/parts/Panel/middle/ItemListWrapper/getDatumFlags.js.map +7 -0
  219. package/dist/esm/parts/Panel/middle/ItemListWrapper/useGetDatumHydratables.js +30 -0
  220. package/dist/esm/parts/Panel/middle/ItemListWrapper/useGetDatumHydratables.js.map +7 -0
  221. package/dist/esm/parts/Panel/middle/LoadingItems.js +38 -0
  222. package/dist/esm/parts/Panel/middle/LoadingItems.js.map +7 -0
  223. package/dist/esm/parts/Panel/middle/MultipleSelectionAction.js +156 -0
  224. package/dist/esm/parts/Panel/middle/MultipleSelectionAction.js.map +7 -0
  225. package/dist/esm/parts/Panel/middle/PanelContentMiddleSection.js +144 -0
  226. package/dist/esm/parts/Panel/middle/PanelContentMiddleSection.js.map +7 -0
  227. package/dist/esm/parts/Panel/top/PanelContentTopSection.js +41 -0
  228. package/dist/esm/parts/Panel/top/PanelContentTopSection.js.map +7 -0
  229. package/dist/esm/parts/Panel/top/PanelFilterSection.js +49 -0
  230. package/dist/esm/parts/Panel/top/PanelFilterSection.js.map +7 -0
  231. package/dist/esm/parts/Panel/top/SelectionHeader.js +107 -0
  232. package/dist/esm/parts/Panel/top/SelectionHeader.js.map +7 -0
  233. package/dist/esm/parts/PanelWrapper.js +53 -0
  234. package/dist/esm/parts/PanelWrapper.js.map +7 -0
  235. package/dist/esm/react-desc-prop-types.js +132 -0
  236. package/dist/esm/react-desc-prop-types.js.map +7 -0
  237. package/dist/esm/tests/configs/basic.js +134 -0
  238. package/dist/esm/tests/configs/basic.js.map +7 -0
  239. package/dist/esm/tests/configs/filter.js +169 -0
  240. package/dist/esm/tests/configs/filter.js.map +7 -0
  241. package/dist/esm/tests/configs/loadMore.js +149 -0
  242. package/dist/esm/tests/configs/loadMore.js.map +7 -0
  243. package/dist/types/DSShuttleV2.d.ts +4 -0
  244. package/dist/types/config/DSShuttleV2Definitions.d.ts +36 -0
  245. package/dist/types/config/itemMovementHelpers.d.ts +7 -0
  246. package/dist/types/config/useAutoCalculated/index.d.ts +32 -0
  247. package/dist/types/config/useAutoCalculated/useDataStructure.d.ts +25 -0
  248. package/dist/types/config/useAutoCalculated/useShuttleVirtualized.d.ts +9 -0
  249. package/dist/types/config/useFocusTracker/index.d.ts +4 -0
  250. package/dist/types/config/useFocusTracker/useFocusActionTrackers.d.ts +10 -0
  251. package/dist/types/config/useFocusTracker/useFocusItemTracker.d.ts +11 -0
  252. package/dist/types/config/useFocusTracker/useFocusRegionTrackers.d.ts +18 -0
  253. package/dist/types/config/useFocusTracker/useFocusTracker.d.ts +33 -0
  254. package/dist/types/config/useStore/focusAndTabIndexManager.d.ts +10 -0
  255. package/dist/types/config/useStore/index.d.ts +1 -0
  256. package/dist/types/config/useStore/useStore.d.ts +301 -0
  257. package/dist/types/config/useValidateProps.d.ts +3 -0
  258. package/dist/types/constants/index.d.ts +32 -0
  259. package/dist/types/exported-related/ShuttleItem.d.ts +8 -0
  260. package/dist/types/exported-related/index.d.ts +1 -0
  261. package/dist/types/index.d.ts +3 -0
  262. package/dist/types/parts/Dnd/DndHandle.d.ts +15 -0
  263. package/dist/types/parts/Dnd/DragOverlay.d.ts +6 -0
  264. package/dist/types/parts/Dnd/DropIndicator.d.ts +15 -0
  265. package/dist/types/parts/Header.d.ts +3 -0
  266. package/dist/types/parts/HoC/withConditionalDnDRowContext.d.ts +10 -0
  267. package/dist/types/parts/HoC/withConditionalUseSortable.d.ts +8 -0
  268. package/dist/types/parts/Item/Item.d.ts +6 -0
  269. package/dist/types/parts/Item/ItemActions/ItemActions.d.ts +3 -0
  270. package/dist/types/parts/Item/ItemActions/index.d.ts +1 -0
  271. package/dist/types/parts/Item/ItemActions/useActionsHandlers.d.ts +7 -0
  272. package/dist/types/parts/Item/ItemActions/useActionsLogicHandlers.d.ts +7 -0
  273. package/dist/types/parts/Item/ItemActions/useInnerRefHandlers.d.ts +6 -0
  274. package/dist/types/parts/Item/ItemMiddleSection.d.ts +5 -0
  275. package/dist/types/parts/Item/ItemOverlay.d.ts +5 -0
  276. package/dist/types/parts/Item/ItemSelection.d.ts +3 -0
  277. package/dist/types/parts/Item/TextSection.d.ts +3 -0
  278. package/dist/types/parts/Item/useItemArrowNavigation.d.ts +5 -0
  279. package/dist/types/parts/Item/useItemKeyboardSelection.d.ts +5 -0
  280. package/dist/types/parts/Item/useSelectionLogic.d.ts +6 -0
  281. package/dist/types/parts/Item/useThisItemIsFocused.d.ts +4 -0
  282. package/dist/types/parts/MainContent.d.ts +2 -0
  283. package/dist/types/parts/Panel/bottom/LoadMoreBtn.d.ts +2 -0
  284. package/dist/types/parts/Panel/bottom/LoadingMore.d.ts +2 -0
  285. package/dist/types/parts/Panel/bottom/PanelContentBottomSection.d.ts +3 -0
  286. package/dist/types/parts/Panel/bottom/useInnerRefHandlers.d.ts +4 -0
  287. package/dist/types/parts/Panel/bottom/useLoadMoreBtnArrowNavigation.d.ts +5 -0
  288. package/dist/types/parts/Panel/middle/EmptyItems.d.ts +2 -0
  289. package/dist/types/parts/Panel/middle/ItemListWrapper/Index.d.ts +4 -0
  290. package/dist/types/parts/Panel/middle/ItemListWrapper/getDatumFlags.d.ts +15 -0
  291. package/dist/types/parts/Panel/middle/ItemListWrapper/useGetDatumHydratables.d.ts +11 -0
  292. package/dist/types/parts/Panel/middle/LoadingItems.d.ts +2 -0
  293. package/dist/types/parts/Panel/middle/MultipleSelectionAction.d.ts +3 -0
  294. package/dist/types/parts/Panel/middle/PanelContentMiddleSection.d.ts +3 -0
  295. package/dist/types/parts/Panel/top/PanelContentTopSection.d.ts +2 -0
  296. package/dist/types/parts/Panel/top/PanelFilterSection.d.ts +2 -0
  297. package/dist/types/parts/Panel/top/SelectionHeader.d.ts +3 -0
  298. package/dist/types/parts/PanelWrapper.d.ts +3 -0
  299. package/dist/types/react-desc-prop-types.d.ts +199 -0
  300. package/dist/types/tests/configs/basic.d.ts +25 -0
  301. package/dist/types/tests/configs/filter.d.ts +29 -0
  302. package/dist/types/tests/configs/loadMore.d.ts +29 -0
  303. package/dist/types/tests/shuttle-v2.basic.test.d.ts +1 -0
  304. package/dist/types/tests/shuttle-v2.filter.test.d.ts +1 -0
  305. package/dist/types/tests/shuttle-v2.load-more.test.d.ts +1 -0
  306. package/package.json +87 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../../scripts/build/transpile/react-shim.js", "../../../../../src/parts/Panel/middle/LoadingItems.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useCallback } from 'react';\nimport { styled } from '@elliemae/ds-legacy-system';\nimport { Grid } from '@elliemae/ds-legacy-grid';\nimport { DSCircularIndeterminateIndicator } from '@elliemae/ds-legacy-circular-progress-indicator';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types.js';\nimport { DSShuttleV2Name, DSShuttleV2Slots } from '../../../config/DSShuttleV2Definitions.js';\nimport { usePropsStore } from '../../../config/useStore/useStore.js';\n\nconst StyledLoadingListWrapper = styled(Grid, { name: DSShuttleV2Name, slot: DSShuttleV2Slots.LOADING_LIST_WRAPPER })`\n color: neutral-500;\n`;\n\nconst StyledLoadingIndicator = styled(DSCircularIndeterminateIndicator)``;\n\nexport const LoadingItems = (panelMetaInfo: DSShuttleV2T.PanelMetaInfo) => {\n const getOwnerProps = usePropsStore((store) => store.get);\n const getOwnerPropsArguments = useCallback(() => panelMetaInfo, [panelMetaInfo]);\n\n return (\n <StyledLoadingListWrapper\n alignItems=\"center\"\n justifyContent=\"center\"\n getOwnerProps={getOwnerProps}\n getOwnerPropsArguments={getOwnerPropsArguments}\n >\n <StyledLoadingIndicator\n size=\"xl\"\n text=\"Loading...\"\n getOwnerProps={getOwnerProps}\n getOwnerPropsArguments={getOwnerPropsArguments}\n />\n </StyledLoadingListWrapper>\n );\n};\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACyBjB;AAzBN,SAAgB,mBAAmB;AACnC,SAAS,cAAc;AACvB,SAAS,YAAY;AACrB,SAAS,wCAAwC;AAEjD,SAAS,iBAAiB,wBAAwB;AAClD,SAAS,qBAAqB;AAE9B,MAAM,2BAA2B,OAAO,MAAM,EAAE,MAAM,iBAAiB,MAAM,iBAAiB,qBAAqB,CAAC;AAAA;AAAA;AAIpH,MAAM,yBAAyB,OAAO,gCAAgC;AAE/D,MAAM,eAAe,CAAC,kBAA8C;AACzE,QAAM,gBAAgB,cAAc,CAAC,UAAU,MAAM,GAAG;AACxD,QAAM,yBAAyB,YAAY,MAAM,eAAe,CAAC,aAAa,CAAC;AAE/E,SACE;AAAA,IAAC;AAAA;AAAA,MACC,YAAW;AAAA,MACX,gBAAe;AAAA,MACf;AAAA,MACA;AAAA,MAEA;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,MAAK;AAAA,UACL;AAAA,UACA;AAAA;AAAA,MACF;AAAA;AAAA,EACF;AAEJ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,156 @@
1
+ import * as React from "react";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import React2 from "react";
4
+ import { styled } from "@elliemae/ds-legacy-system";
5
+ import { Grid } from "@elliemae/ds-legacy-grid";
6
+ import { useGetGlobalAttributes } from "@elliemae/ds-legacy-props-helpers";
7
+ import { DSButtonV2 } from "@elliemae/ds-legacy-button-v2";
8
+ import { ArrowShortRight, CloseMedium } from "@elliemae/ds-legacy-icons";
9
+ import { REGIONS_FOCUSES } from "../../../constants/index.js";
10
+ import { useHandleMoveSelection } from "../../../config/itemMovementHelpers.js";
11
+ import { useInternalStore, usePropsStore } from "../../../config/useStore/index.js";
12
+ import { useFocusTracker } from "../../../config/useFocusTracker/index.js";
13
+ import { DSShuttleV2Name, DSShuttleV2Slots } from "../../../config/DSShuttleV2Definitions.js";
14
+ const StyledMoveMultipleWrapper = styled(Grid, { name: DSShuttleV2Name, slot: DSShuttleV2Slots.MOVE_MULTIPLE_WRAPPER })`
15
+ position: absolute;
16
+ background-color: neutral-000;
17
+ top: 0px;
18
+ right: 0px;
19
+ transform: translateX(0);
20
+ height: 100%;
21
+ width: 5rem;
22
+ :hover {
23
+ background-color: brand-200;
24
+ > svg {
25
+ fill: brand-700;
26
+ }
27
+ }
28
+ > svg {
29
+ fill: brand-600;
30
+ }
31
+ `;
32
+ const StyledButton = styled(DSButtonV2, {
33
+ name: DSShuttleV2Name,
34
+ slot: DSShuttleV2Slots.MOVE_MULTIPLE_BTN
35
+ })`
36
+ width: 100%;
37
+ height: 100%;
38
+ `;
39
+ const StyledCloseMediumIcon = styled(CloseMedium, {
40
+ name: DSShuttleV2Name,
41
+ slot: DSShuttleV2Slots.ITEM_ACTION_BTN_TO_SOURCE_ICON
42
+ })`
43
+ > svg {
44
+ fill: brand-600;
45
+ }
46
+ `;
47
+ const StyledArrowShortRightIcon = styled(ArrowShortRight, {
48
+ name: DSShuttleV2Name,
49
+ slot: DSShuttleV2Slots.ITEM_ACTION_BTN_TO_DESTINATION_ICON
50
+ })`
51
+ > svg {
52
+ fill: brand-600;
53
+ }
54
+ `;
55
+ const gridFullFraction = ["1fr"];
56
+ const MultipleSelectionAction = React2.memo((panelMeta) => {
57
+ const { isDestinationPanel } = panelMeta;
58
+ const { moveSelection } = useHandleMoveSelection(panelMeta);
59
+ const { trackFocusRegionPanel, trackFocusRegionPanelFocusMoveAll, trackFocusItemReset, trackFocusActionReset } = useFocusTracker();
60
+ const handleMoveAllAction = React2.useCallback(
61
+ (event) => {
62
+ moveSelection(event);
63
+ trackFocusItemReset();
64
+ trackFocusActionReset();
65
+ trackFocusRegionPanel(isDestinationPanel);
66
+ },
67
+ [isDestinationPanel, moveSelection, trackFocusActionReset, trackFocusItemReset, trackFocusRegionPanel]
68
+ );
69
+ const handleMoveAllBtnFocus = React2.useCallback(() => {
70
+ trackFocusItemReset();
71
+ trackFocusActionReset();
72
+ trackFocusRegionPanelFocusMoveAll(isDestinationPanel);
73
+ }, [isDestinationPanel, trackFocusActionReset, trackFocusItemReset, trackFocusRegionPanelFocusMoveAll]);
74
+ const setZustandRef = useInternalStore((state) => state.setZustandRef);
75
+ const currRegion = isDestinationPanel ? REGIONS_FOCUSES.DESTINATION_PANEL_ITEM_MOVE_ALL : REGIONS_FOCUSES.SOURCE_PANEL_ITEM_MOVE_ALL;
76
+ const innerRefHandlerMoveAll = React2.useCallback(
77
+ (node) => {
78
+ setZustandRef([currRegion, "", ""], node);
79
+ },
80
+ [currRegion, setZustandRef]
81
+ );
82
+ const handleMoveAllKeyDown = React2.useCallback(
83
+ (e) => {
84
+ const { key } = e;
85
+ if (["ArrowLeft", "ArrowRight"].includes(key)) {
86
+ trackFocusItemReset();
87
+ trackFocusActionReset();
88
+ trackFocusRegionPanel(isDestinationPanel);
89
+ }
90
+ },
91
+ [trackFocusItemReset, trackFocusActionReset, trackFocusRegionPanel, isDestinationPanel]
92
+ );
93
+ const getBatchActionableButtonProps = usePropsStore((state) => state.getBatchActionableButtonProps);
94
+ const batchActionableButtonProps = React2.useMemo(
95
+ () => getBatchActionableButtonProps !== void 0 ? getBatchActionableButtonProps(panelMeta) : {},
96
+ [getBatchActionableButtonProps, panelMeta]
97
+ );
98
+ const buttonActions = React2.useMemo(
99
+ () => ({
100
+ onClick: handleMoveAllAction,
101
+ onFocus: handleMoveAllBtnFocus,
102
+ onKeyDown: handleMoveAllKeyDown
103
+ }),
104
+ [handleMoveAllAction, handleMoveAllBtnFocus, handleMoveAllKeyDown]
105
+ );
106
+ const spreadableButtonProps = useGetGlobalAttributes(batchActionableButtonProps, buttonActions);
107
+ const getOwnerProps = usePropsStore((store) => store.get);
108
+ const getOwnerPropsArguments = React2.useCallback(() => panelMeta, [panelMeta]);
109
+ return /* @__PURE__ */ jsx(
110
+ StyledMoveMultipleWrapper,
111
+ {
112
+ boxShadow: "xs",
113
+ alignItems: "center",
114
+ justifyContent: "center",
115
+ cols: gridFullFraction,
116
+ rows: gridFullFraction,
117
+ getOwnerProps,
118
+ getOwnerPropsArguments,
119
+ children: /* @__PURE__ */ jsx(
120
+ StyledButton,
121
+ {
122
+ "aria-label": "massive action button",
123
+ buttonType: "icon",
124
+ onClick: handleMoveAllAction,
125
+ onFocus: handleMoveAllBtnFocus,
126
+ onKeyDown: handleMoveAllKeyDown,
127
+ innerRef: innerRefHandlerMoveAll,
128
+ ...spreadableButtonProps,
129
+ getOwnerProps,
130
+ getOwnerPropsArguments,
131
+ children: isDestinationPanel ? /* @__PURE__ */ jsx(
132
+ StyledCloseMediumIcon,
133
+ {
134
+ width: "1.538rem",
135
+ height: "1.538rem",
136
+ getOwnerProps,
137
+ getOwnerPropsArguments
138
+ }
139
+ ) : /* @__PURE__ */ jsx(
140
+ StyledArrowShortRightIcon,
141
+ {
142
+ width: "1.538",
143
+ height: "1.538rem",
144
+ getOwnerProps,
145
+ getOwnerPropsArguments
146
+ }
147
+ )
148
+ }
149
+ )
150
+ }
151
+ );
152
+ });
153
+ export {
154
+ MultipleSelectionAction
155
+ };
156
+ //# sourceMappingURL=MultipleSelectionAction.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../../scripts/build/transpile/react-shim.js", "../../../../../src/parts/Panel/middle/MultipleSelectionAction.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport { styled } from '@elliemae/ds-legacy-system';\nimport { Grid } from '@elliemae/ds-legacy-grid';\nimport { useGetGlobalAttributes } from '@elliemae/ds-legacy-props-helpers';\nimport { DSButtonV2, type DSButtonT } from '@elliemae/ds-legacy-button-v2';\nimport { ArrowShortRight, CloseMedium } from '@elliemae/ds-legacy-icons';\nimport { REGIONS_FOCUSES } from '../../../constants/index.js';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types.js';\nimport { useHandleMoveSelection } from '../../../config/itemMovementHelpers.js';\nimport { useInternalStore, usePropsStore } from '../../../config/useStore/index.js';\nimport { useFocusTracker } from '../../../config/useFocusTracker/index.js';\nimport { DSShuttleV2Name, DSShuttleV2Slots } from '../../../config/DSShuttleV2Definitions.js';\n\nconst StyledMoveMultipleWrapper = styled(Grid, { name: DSShuttleV2Name, slot: DSShuttleV2Slots.MOVE_MULTIPLE_WRAPPER })`\n position: absolute;\n background-color: neutral-000;\n top: 0px;\n right: 0px;\n transform: translateX(0);\n height: 100%;\n width: 5rem;\n :hover {\n background-color: brand-200;\n > svg {\n fill: brand-700;\n }\n }\n > svg {\n fill: brand-600;\n }\n`;\nconst StyledButton = styled(DSButtonV2, {\n name: DSShuttleV2Name,\n slot: DSShuttleV2Slots.MOVE_MULTIPLE_BTN,\n})`\n width: 100%;\n height: 100%;\n`;\nconst StyledCloseMediumIcon = styled(CloseMedium, {\n name: DSShuttleV2Name,\n slot: DSShuttleV2Slots.ITEM_ACTION_BTN_TO_SOURCE_ICON,\n})`\n > svg {\n fill: brand-600;\n }\n`;\nconst StyledArrowShortRightIcon = styled(ArrowShortRight, {\n name: DSShuttleV2Name,\n slot: DSShuttleV2Slots.ITEM_ACTION_BTN_TO_DESTINATION_ICON,\n})`\n > svg {\n fill: brand-600;\n }\n`;\nconst gridFullFraction = ['1fr'];\n\nexport const MultipleSelectionAction = React.memo((panelMeta: DSShuttleV2T.PanelMetaInfo) => {\n const { isDestinationPanel } = panelMeta;\n const { moveSelection } = useHandleMoveSelection(panelMeta);\n const { trackFocusRegionPanel, trackFocusRegionPanelFocusMoveAll, trackFocusItemReset, trackFocusActionReset } =\n useFocusTracker();\n const handleMoveAllAction = React.useCallback<Required<DSButtonT.Props>['onClick']>(\n (event) => {\n moveSelection(event);\n trackFocusItemReset();\n trackFocusActionReset();\n trackFocusRegionPanel(isDestinationPanel);\n },\n [isDestinationPanel, moveSelection, trackFocusActionReset, trackFocusItemReset, trackFocusRegionPanel],\n );\n const handleMoveAllBtnFocus: React.FocusEventHandler<HTMLButtonElement> = React.useCallback(() => {\n trackFocusItemReset();\n trackFocusActionReset();\n trackFocusRegionPanelFocusMoveAll(isDestinationPanel);\n }, [isDestinationPanel, trackFocusActionReset, trackFocusItemReset, trackFocusRegionPanelFocusMoveAll]);\n const setZustandRef = useInternalStore((state) => state.setZustandRef);\n\n const currRegion = isDestinationPanel\n ? REGIONS_FOCUSES.DESTINATION_PANEL_ITEM_MOVE_ALL\n : REGIONS_FOCUSES.SOURCE_PANEL_ITEM_MOVE_ALL;\n const innerRefHandlerMoveAll = React.useCallback(\n (node: HTMLButtonElement | null) => {\n setZustandRef([currRegion, '', ''], node);\n },\n [currRegion, setZustandRef],\n );\n\n const handleMoveAllKeyDown = React.useCallback<React.KeyboardEventHandler<HTMLButtonElement>>(\n (e) => {\n const { key } = e;\n if (['ArrowLeft', 'ArrowRight'].includes(key)) {\n trackFocusItemReset();\n trackFocusActionReset();\n trackFocusRegionPanel(isDestinationPanel);\n }\n },\n [trackFocusItemReset, trackFocusActionReset, trackFocusRegionPanel, isDestinationPanel],\n );\n\n const getBatchActionableButtonProps = usePropsStore((state) => state.getBatchActionableButtonProps);\n const batchActionableButtonProps = React.useMemo(\n () => (getBatchActionableButtonProps !== undefined ? getBatchActionableButtonProps(panelMeta) : {}),\n [getBatchActionableButtonProps, panelMeta],\n );\n const buttonActions = React.useMemo(\n () => ({\n onClick: handleMoveAllAction,\n onFocus: handleMoveAllBtnFocus,\n onKeyDown: handleMoveAllKeyDown,\n }),\n [handleMoveAllAction, handleMoveAllBtnFocus, handleMoveAllKeyDown],\n );\n\n // this \"as DSButtonT.Props\" is a workaround for the fact that useGetGlobalAttributes is not able to understand overloaded types\n // intellisense will mostly lie because of this but we are using this for the spread operator and it will work for aria-* and data-* props\n const spreadableButtonProps = useGetGlobalAttributes(batchActionableButtonProps, buttonActions) as DSButtonT.Props;\n\n const getOwnerProps = usePropsStore((store) => store.get);\n const getOwnerPropsArguments = React.useCallback(() => panelMeta, [panelMeta]);\n\n return (\n <StyledMoveMultipleWrapper\n boxShadow=\"xs\"\n alignItems=\"center\"\n justifyContent=\"center\"\n cols={gridFullFraction}\n rows={gridFullFraction}\n getOwnerProps={getOwnerProps}\n getOwnerPropsArguments={getOwnerPropsArguments}\n >\n <StyledButton\n aria-label=\"massive action button\"\n buttonType=\"icon\"\n onClick={handleMoveAllAction}\n onFocus={handleMoveAllBtnFocus}\n onKeyDown={handleMoveAllKeyDown}\n innerRef={innerRefHandlerMoveAll}\n {...spreadableButtonProps}\n getOwnerProps={getOwnerProps}\n getOwnerPropsArguments={getOwnerPropsArguments}\n >\n {isDestinationPanel ? (\n <StyledCloseMediumIcon\n width=\"1.538rem\"\n height=\"1.538rem\"\n getOwnerProps={getOwnerProps}\n getOwnerPropsArguments={getOwnerPropsArguments}\n />\n ) : (\n <StyledArrowShortRightIcon\n width=\"1.538\"\n height=\"1.538rem\"\n getOwnerProps={getOwnerProps}\n getOwnerPropsArguments={getOwnerPropsArguments}\n />\n )}\n </StyledButton>\n </StyledMoveMultipleWrapper>\n );\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["React"]
7
+ }
@@ -0,0 +1,144 @@
1
+ import * as React from "react";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import React2, { useCallback } from "react";
4
+ import { styled } from "@elliemae/ds-legacy-system";
5
+ import { Grid } from "@elliemae/ds-legacy-grid";
6
+ import { useOnSpecificFocus } from "@elliemae/ds-legacy-utilities";
7
+ import { usePropsStore, useInternalStore } from "../../../config/useStore/index.js";
8
+ import { ItemListWrapperWithContext } from "./ItemListWrapper/Index.js";
9
+ import { EmptyItems } from "./EmptyItems.js";
10
+ import { useFocusTracker } from "../../../config/useFocusTracker/index.js";
11
+ import { LoadingItems } from "./LoadingItems.js";
12
+ import { MultipleSelectionAction } from "./MultipleSelectionAction.js";
13
+ import { REGIONS_FOCUSES } from "../../../constants/index.js";
14
+ import { DSShuttleV2Name, DSShuttleV2Slots } from "../../../config/DSShuttleV2Definitions.js";
15
+ const useInnerRefHandlers = (isDestinationPanel) => {
16
+ const setZustandRef = useInternalStore((state) => state.setZustandRef);
17
+ const currRegion = isDestinationPanel ? REGIONS_FOCUSES.DESTINATION_PANEL : REGIONS_FOCUSES.SOURCE_PANEL;
18
+ const innerRefHandlerParentItem = React2.useCallback(
19
+ (node) => {
20
+ setZustandRef([currRegion, "", ""], node);
21
+ },
22
+ [currRegion, setZustandRef]
23
+ );
24
+ return React2.useMemo(() => ({ innerRefHandlerParentItem }), [innerRefHandlerParentItem]);
25
+ };
26
+ const StyledListWrapperMid = styled(Grid, { name: DSShuttleV2Name, slot: DSShuttleV2Slots.LIST_WRAPPER_MID })`
27
+ overflow: hidden;
28
+ position: relative;
29
+ :focus,
30
+ :focus-visible {
31
+ outline: 2px solid brand-700;
32
+ }
33
+ `;
34
+ const PanelContentMiddleSection = React2.memo((panelMetaInfo) => {
35
+ const { isDestinationPanel = false, hasMultipleSelection } = panelMetaInfo;
36
+ const itemsLength = usePropsStore(
37
+ (state) => isDestinationPanel ? state.destinationData.length : state.sourceData.length
38
+ );
39
+ const isLoading = usePropsStore((state) => isDestinationPanel ? state.destinationIsLoading : state.sourceIsLoading);
40
+ const showEmptyMessage = !isLoading && itemsLength === 0;
41
+ const showItems = !isLoading && !showEmptyMessage;
42
+ const actionRef = usePropsStore(
43
+ (state) => isDestinationPanel ? state.destinationVirtualRef : state.sourceVirtualRef
44
+ );
45
+ const getIsDragAndDropHappening = useInternalStore((state) => state.getIsDragAndDropHappening);
46
+ const withLoadMore = usePropsStore(
47
+ (state) => isDestinationPanel ? state.destinationWithLoadMore : state.sourceWithLoadMore
48
+ );
49
+ const { innerRefHandlerParentItem } = useInnerRefHandlers(isDestinationPanel);
50
+ const {
51
+ trackFocusRegionPanel,
52
+ trackFocusItemFirst,
53
+ trackFocusItemLast,
54
+ trackFocusActionParent,
55
+ trackFocusRegionPanelItem,
56
+ trackFocusLoadMoreBtnDestination,
57
+ trackFocusLoadMoreBtn
58
+ } = useFocusTracker();
59
+ const config = React2.useMemo(
60
+ () => ({
61
+ onFocus: () => {
62
+ trackFocusRegionPanel(isDestinationPanel);
63
+ }
64
+ }),
65
+ [trackFocusRegionPanel, isDestinationPanel]
66
+ );
67
+ const onPanelFocus = useOnSpecificFocus(config);
68
+ const onPanelKeyDown = React2.useCallback(
69
+ (e) => {
70
+ const { key } = e;
71
+ const isDragAndDropHappening = getIsDragAndDropHappening();
72
+ if (isDragAndDropHappening) {
73
+ e.preventDefault();
74
+ return;
75
+ }
76
+ if (["Home", "End", "ArrowUp", "ArrowDown"].includes(key)) {
77
+ e.preventDefault();
78
+ e.stopPropagation();
79
+ trackFocusRegionPanelItem(isDestinationPanel);
80
+ trackFocusActionParent();
81
+ if (key === "ArrowDown" || key === "Home") {
82
+ actionRef.current.scrollTo(0);
83
+ trackFocusItemFirst(panelMetaInfo);
84
+ }
85
+ if (key === "ArrowUp" || key === "End") {
86
+ if (withLoadMore) {
87
+ if (isDestinationPanel)
88
+ trackFocusLoadMoreBtnDestination();
89
+ else
90
+ trackFocusLoadMoreBtn();
91
+ } else {
92
+ trackFocusItemLast(panelMetaInfo);
93
+ actionRef.current.scrollTo(itemsLength - 1);
94
+ }
95
+ }
96
+ }
97
+ },
98
+ [
99
+ getIsDragAndDropHappening,
100
+ trackFocusRegionPanelItem,
101
+ isDestinationPanel,
102
+ trackFocusActionParent,
103
+ actionRef,
104
+ trackFocusItemFirst,
105
+ panelMetaInfo,
106
+ withLoadMore,
107
+ trackFocusLoadMoreBtnDestination,
108
+ trackFocusLoadMoreBtn,
109
+ trackFocusItemLast,
110
+ itemsLength
111
+ ]
112
+ );
113
+ const cols = React2.useMemo(() => {
114
+ if (hasMultipleSelection)
115
+ return ["1fr", "5rem"];
116
+ return ["auto"];
117
+ }, [hasMultipleSelection]);
118
+ const getOwnerProps = usePropsStore((store) => store.get);
119
+ const getOwnerPropsArguments = useCallback(() => panelMetaInfo, [panelMetaInfo]);
120
+ return /* @__PURE__ */ jsx(
121
+ StyledListWrapperMid,
122
+ {
123
+ onFocus: onPanelFocus,
124
+ onKeyDown: onPanelKeyDown,
125
+ role: "region",
126
+ "aria-label": `${isDestinationPanel ? "destination" : "source"} panel`,
127
+ tabIndex: 0,
128
+ rows: [1],
129
+ getOwnerProps,
130
+ getOwnerPropsArguments,
131
+ ref: innerRefHandlerParentItem,
132
+ children: /* @__PURE__ */ jsxs(Grid, { cols, rows: [1], children: [
133
+ isLoading ? /* @__PURE__ */ jsx(LoadingItems, { ...panelMetaInfo }) : null,
134
+ showEmptyMessage ? /* @__PURE__ */ jsx(EmptyItems, { ...panelMetaInfo }) : null,
135
+ showItems ? /* @__PURE__ */ jsx(ItemListWrapperWithContext, { ...panelMetaInfo }) : null,
136
+ hasMultipleSelection ? /* @__PURE__ */ jsx(MultipleSelectionAction, { ...panelMetaInfo }) : null
137
+ ] })
138
+ }
139
+ );
140
+ });
141
+ export {
142
+ PanelContentMiddleSection
143
+ };
144
+ //# sourceMappingURL=PanelContentMiddleSection.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../../scripts/build/transpile/react-shim.js", "../../../../../src/parts/Panel/middle/PanelContentMiddleSection.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useCallback } from 'react';\nimport { styled } from '@elliemae/ds-legacy-system';\nimport { Grid } from '@elliemae/ds-legacy-grid';\nimport { useOnSpecificFocus } from '@elliemae/ds-legacy-utilities';\nimport { usePropsStore, useInternalStore } from '../../../config/useStore/index.js';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types.js';\nimport { ItemListWrapperWithContext } from './ItemListWrapper/Index.js';\nimport { EmptyItems } from './EmptyItems.js';\nimport { useFocusTracker } from '../../../config/useFocusTracker/index.js';\nimport { LoadingItems } from './LoadingItems.js';\nimport { MultipleSelectionAction } from './MultipleSelectionAction.js';\nimport { REGIONS_FOCUSES } from '../../../constants/index.js';\nimport { DSShuttleV2Name, DSShuttleV2Slots } from '../../../config/DSShuttleV2Definitions.js';\n\nconst useInnerRefHandlers = (isDestinationPanel: boolean) => {\n const setZustandRef = useInternalStore((state) => state.setZustandRef);\n const currRegion = isDestinationPanel ? REGIONS_FOCUSES.DESTINATION_PANEL : REGIONS_FOCUSES.SOURCE_PANEL;\n\n const innerRefHandlerParentItem = React.useCallback(\n (node: HTMLDivElement | null) => {\n setZustandRef([currRegion, '', ''], node);\n },\n [currRegion, setZustandRef],\n );\n return React.useMemo(() => ({ innerRefHandlerParentItem }), [innerRefHandlerParentItem]);\n};\n\nconst StyledListWrapperMid = styled(Grid, { name: DSShuttleV2Name, slot: DSShuttleV2Slots.LIST_WRAPPER_MID })`\n overflow: hidden;\n position: relative;\n :focus,\n :focus-visible {\n outline: 2px solid brand-700;\n }\n`;\n\nexport const PanelContentMiddleSection = React.memo((panelMetaInfo: DSShuttleV2T.PanelMetaInfo) => {\n const { isDestinationPanel = false, hasMultipleSelection } = panelMetaInfo;\n const itemsLength = usePropsStore((state) =>\n isDestinationPanel ? state.destinationData.length : state.sourceData.length,\n );\n const isLoading = usePropsStore((state) => (isDestinationPanel ? state.destinationIsLoading : state.sourceIsLoading));\n const showEmptyMessage = !isLoading && itemsLength === 0;\n const showItems = !isLoading && !showEmptyMessage;\n\n const actionRef = usePropsStore((state) =>\n isDestinationPanel ? state.destinationVirtualRef : state.sourceVirtualRef,\n );\n\n const getIsDragAndDropHappening = useInternalStore((state) => state.getIsDragAndDropHappening);\n const withLoadMore = usePropsStore((state) =>\n isDestinationPanel ? state.destinationWithLoadMore : state.sourceWithLoadMore,\n );\n const { innerRefHandlerParentItem } = useInnerRefHandlers(isDestinationPanel);\n const {\n trackFocusRegionPanel,\n trackFocusItemFirst,\n trackFocusItemLast,\n trackFocusActionParent,\n trackFocusRegionPanelItem,\n trackFocusLoadMoreBtnDestination,\n trackFocusLoadMoreBtn,\n } = useFocusTracker();\n const config = React.useMemo(\n () => ({\n onFocus: () => {\n trackFocusRegionPanel(isDestinationPanel);\n },\n }),\n [trackFocusRegionPanel, isDestinationPanel],\n );\n const onPanelFocus = useOnSpecificFocus(config);\n\n const onPanelKeyDown = React.useCallback<React.KeyboardEventHandler<HTMLDivElement>>(\n (e) => {\n const { key } = e;\n // we need to invoke \"getIsDragAndDropHappening\" here to ensure we have the latest info at the moment of the event\n const isDragAndDropHappening = getIsDragAndDropHappening();\n if (isDragAndDropHappening) {\n e.preventDefault();\n return;\n }\n if (['Home', 'End', 'ArrowUp', 'ArrowDown'].includes(key)) {\n e.preventDefault();\n e.stopPropagation();\n trackFocusRegionPanelItem(isDestinationPanel);\n trackFocusActionParent();\n // we won't receive ArrowUp/ArrowDown if this happens in a child because children are stopping propagation\n if (key === 'ArrowDown' || key === 'Home') {\n actionRef.current.scrollTo(0);\n trackFocusItemFirst(panelMetaInfo);\n }\n if (key === 'ArrowUp' || key === 'End') {\n if (withLoadMore) {\n if (isDestinationPanel) trackFocusLoadMoreBtnDestination();\n else trackFocusLoadMoreBtn();\n } else {\n trackFocusItemLast(panelMetaInfo);\n actionRef.current.scrollTo(itemsLength - 1);\n }\n }\n }\n },\n [\n getIsDragAndDropHappening,\n trackFocusRegionPanelItem,\n isDestinationPanel,\n trackFocusActionParent,\n actionRef,\n trackFocusItemFirst,\n panelMetaInfo,\n withLoadMore,\n trackFocusLoadMoreBtnDestination,\n trackFocusLoadMoreBtn,\n trackFocusItemLast,\n itemsLength,\n ],\n );\n\n const cols = React.useMemo(() => {\n if (hasMultipleSelection) return ['1fr', '5rem'];\n return ['auto'];\n }, [hasMultipleSelection]);\n\n const getOwnerProps = usePropsStore((store) => store.get);\n const getOwnerPropsArguments = useCallback(() => panelMetaInfo, [panelMetaInfo]);\n\n return (\n <StyledListWrapperMid\n onFocus={onPanelFocus}\n onKeyDown={onPanelKeyDown}\n role=\"region\"\n aria-label={`${isDestinationPanel ? 'destination' : 'source'} panel`}\n tabIndex={0}\n rows={[1]}\n getOwnerProps={getOwnerProps}\n getOwnerPropsArguments={getOwnerPropsArguments}\n ref={innerRefHandlerParentItem}\n >\n <Grid cols={cols} rows={[1]}>\n {isLoading ? <LoadingItems {...panelMetaInfo} /> : null}\n {showEmptyMessage ? <EmptyItems {...panelMetaInfo} /> : null}\n {showItems ? <ItemListWrapperWithContext {...panelMetaInfo} /> : null}\n {hasMultipleSelection ? <MultipleSelectionAction {...panelMetaInfo} /> : null}\n </Grid>\n </StyledListWrapperMid>\n );\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["React"]
7
+ }
@@ -0,0 +1,41 @@
1
+ import * as React from "react";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import React2, { useCallback } from "react";
4
+ import { styled } from "@elliemae/ds-legacy-system";
5
+ import { Grid } from "@elliemae/ds-legacy-grid";
6
+ import { usePropsStore } from "../../../config/useStore/index.js";
7
+ import { SelectionHeader } from "./SelectionHeader.js";
8
+ import { PanelFilterSection } from "./PanelFilterSection.js";
9
+ import { DSShuttleV2Name, DSShuttleV2Slots } from "../../../config/DSShuttleV2Definitions.js";
10
+ const StyledListWrapperTop = styled(Grid, { name: DSShuttleV2Name, slot: DSShuttleV2Slots.LIST_WRAPPER_TOP })``;
11
+ const PanelContentTopSection = (panelMetaInfo) => {
12
+ const getOwnerProps = usePropsStore((store) => store.get);
13
+ const getOwnerPropsArguments = useCallback(() => panelMetaInfo, [panelMetaInfo]);
14
+ const { isDestinationPanel = false } = panelMetaInfo;
15
+ const isSearchBarOpen = usePropsStore(
16
+ (state) => isDestinationPanel ? state.destinationShowSearchbar : state.sourceShowSearchbar
17
+ );
18
+ const topSectionRows = React2.useMemo(() => {
19
+ const cols = [];
20
+ if (isSearchBarOpen)
21
+ cols.push("auto");
22
+ cols.push("auto");
23
+ return cols;
24
+ }, [isSearchBarOpen]);
25
+ return /* @__PURE__ */ jsxs(
26
+ StyledListWrapperTop,
27
+ {
28
+ rows: topSectionRows,
29
+ getOwnerProps,
30
+ getOwnerPropsArguments,
31
+ children: [
32
+ isSearchBarOpen ? /* @__PURE__ */ jsx(PanelFilterSection, { ...panelMetaInfo }) : null,
33
+ /* @__PURE__ */ jsx(SelectionHeader, { ...panelMetaInfo })
34
+ ]
35
+ }
36
+ );
37
+ };
38
+ export {
39
+ PanelContentTopSection
40
+ };
41
+ //# sourceMappingURL=PanelContentTopSection.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../../scripts/build/transpile/react-shim.js", "../../../../../src/parts/Panel/top/PanelContentTopSection.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useCallback } from 'react';\nimport { styled } from '@elliemae/ds-legacy-system';\nimport { Grid } from '@elliemae/ds-legacy-grid';\nimport { usePropsStore } from '../../../config/useStore/index.js';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types.js';\nimport { SelectionHeader } from './SelectionHeader.js';\nimport { PanelFilterSection } from './PanelFilterSection.js';\nimport { DSShuttleV2Name, DSShuttleV2Slots } from '../../../config/DSShuttleV2Definitions.js';\n\nconst StyledListWrapperTop = styled(Grid, { name: DSShuttleV2Name, slot: DSShuttleV2Slots.LIST_WRAPPER_TOP })``;\n\nexport const PanelContentTopSection = (panelMetaInfo: DSShuttleV2T.PanelMetaInfo) => {\n const getOwnerProps = usePropsStore((store) => store.get);\n const getOwnerPropsArguments = useCallback(() => panelMetaInfo, [panelMetaInfo]);\n\n const { isDestinationPanel = false } = panelMetaInfo;\n const isSearchBarOpen = usePropsStore((state) =>\n isDestinationPanel ? state.destinationShowSearchbar : state.sourceShowSearchbar,\n );\n const topSectionRows = React.useMemo(() => {\n const cols = [];\n if (isSearchBarOpen) cols.push('auto');\n cols.push('auto');\n return cols;\n }, [isSearchBarOpen]);\n return (\n <StyledListWrapperTop\n rows={topSectionRows}\n getOwnerProps={getOwnerProps}\n getOwnerPropsArguments={getOwnerPropsArguments}\n >\n {isSearchBarOpen ? <PanelFilterSection {...panelMetaInfo} /> : null}\n <SelectionHeader {...panelMetaInfo} />\n </StyledListWrapperTop>\n );\n};\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;AC0BnB,SAKqB,KALrB;AA1BJ,OAAOA,UAAS,mBAAmB;AACnC,SAAS,cAAc;AACvB,SAAS,YAAY;AACrB,SAAS,qBAAqB;AAE9B,SAAS,uBAAuB;AAChC,SAAS,0BAA0B;AACnC,SAAS,iBAAiB,wBAAwB;AAElD,MAAM,uBAAuB,OAAO,MAAM,EAAE,MAAM,iBAAiB,MAAM,iBAAiB,iBAAiB,CAAC;AAErG,MAAM,yBAAyB,CAAC,kBAA8C;AACnF,QAAM,gBAAgB,cAAc,CAAC,UAAU,MAAM,GAAG;AACxD,QAAM,yBAAyB,YAAY,MAAM,eAAe,CAAC,aAAa,CAAC;AAE/E,QAAM,EAAE,qBAAqB,MAAM,IAAI;AACvC,QAAM,kBAAkB;AAAA,IAAc,CAAC,UACrC,qBAAqB,MAAM,2BAA2B,MAAM;AAAA,EAC9D;AACA,QAAM,iBAAiBA,OAAM,QAAQ,MAAM;AACzC,UAAM,OAAO,CAAC;AACd,QAAI;AAAiB,WAAK,KAAK,MAAM;AACrC,SAAK,KAAK,MAAM;AAChB,WAAO;AAAA,EACT,GAAG,CAAC,eAAe,CAAC;AACpB,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAM;AAAA,MACN;AAAA,MACA;AAAA,MAEC;AAAA,0BAAkB,oBAAC,sBAAoB,GAAG,eAAe,IAAK;AAAA,QAC/D,oBAAC,mBAAiB,GAAG,eAAe;AAAA;AAAA;AAAA,EACtC;AAEJ;",
6
+ "names": ["React"]
7
+ }
@@ -0,0 +1,49 @@
1
+ import * as React from "react";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import React2, { useCallback } from "react";
4
+ import { Grid } from "@elliemae/ds-legacy-grid";
5
+ import { styled } from "@elliemae/ds-legacy-system";
6
+ import { DSInputText } from "@elliemae/ds-legacy-form-input-text";
7
+ import { usePropsStore } from "../../../config/useStore/index.js";
8
+ import { DSShuttleV2Name, DSShuttleV2Slots } from "../../../config/DSShuttleV2Definitions.js";
9
+ const StyledSearchWrapper = styled(Grid, { name: DSShuttleV2Name, slot: DSShuttleV2Slots.AREA_SEARCH_WRAPPER })`
10
+ border-bottom: 1px solid neutral-400;
11
+ border-radius: 0;
12
+ `;
13
+ const StyledInputText = styled(DSInputText, { name: DSShuttleV2Name, slot: DSShuttleV2Slots.AREA_SEARCH_BAR })`
14
+ border: none;
15
+ :focus {
16
+ border-radius: 0;
17
+ }
18
+ `;
19
+ const PanelFilterSection = (panelMetaInfo) => {
20
+ const getOwnerProps = usePropsStore((store) => store.get);
21
+ const getOwnerPropsArguments = useCallback(() => panelMetaInfo, [panelMetaInfo]);
22
+ const { isDestinationPanel = false } = panelMetaInfo;
23
+ const onFilterCb = usePropsStore(
24
+ (state) => isDestinationPanel ? state.onDestinationFilterChange : state.onSourceFilterChange
25
+ );
26
+ const filterValue = usePropsStore(
27
+ (state) => isDestinationPanel ? state.destinationFilterValue : state.sourceFilterValue
28
+ );
29
+ const handleFilterChange = React2.useCallback(
30
+ (value, event) => {
31
+ onFilterCb?.(`${value}`, { event });
32
+ },
33
+ [onFilterCb]
34
+ );
35
+ return /* @__PURE__ */ jsx(StyledSearchWrapper, { getOwnerProps, getOwnerPropsArguments, children: /* @__PURE__ */ jsx(
36
+ StyledInputText,
37
+ {
38
+ value: filterValue,
39
+ onValueChange: handleFilterChange,
40
+ "aria-label": isDestinationPanel ? "Destination input search" : "Source input search",
41
+ getOwnerProps,
42
+ getOwnerPropsArguments
43
+ }
44
+ ) });
45
+ };
46
+ export {
47
+ PanelFilterSection
48
+ };
49
+ //# sourceMappingURL=PanelFilterSection.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../../scripts/build/transpile/react-shim.js", "../../../../../src/parts/Panel/top/PanelFilterSection.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useCallback } from 'react';\nimport { Grid } from '@elliemae/ds-legacy-grid';\nimport { styled } from '@elliemae/ds-legacy-system';\nimport { DSInputText } from '@elliemae/ds-legacy-form-input-text';\nimport { usePropsStore } from '../../../config/useStore/index.js';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types.js';\nimport { DSShuttleV2Name, DSShuttleV2Slots } from '../../../config/DSShuttleV2Definitions.js';\n\nconst StyledSearchWrapper = styled(Grid, { name: DSShuttleV2Name, slot: DSShuttleV2Slots.AREA_SEARCH_WRAPPER })`\n border-bottom: 1px solid neutral-400;\n border-radius: 0;\n`;\nconst StyledInputText = styled(DSInputText, { name: DSShuttleV2Name, slot: DSShuttleV2Slots.AREA_SEARCH_BAR })`\n border: none;\n :focus {\n border-radius: 0;\n }\n`;\n\nexport const PanelFilterSection = (panelMetaInfo: DSShuttleV2T.PanelMetaInfo) => {\n const getOwnerProps = usePropsStore((store) => store.get);\n const getOwnerPropsArguments = useCallback(() => panelMetaInfo, [panelMetaInfo]);\n\n const { isDestinationPanel = false } = panelMetaInfo;\n const onFilterCb = usePropsStore((state) =>\n isDestinationPanel ? state.onDestinationFilterChange : state.onSourceFilterChange,\n );\n const filterValue = usePropsStore((state) =>\n isDestinationPanel ? state.destinationFilterValue : state.sourceFilterValue,\n );\n const handleFilterChange = React.useCallback(\n (value: string | number, event: React.ChangeEvent<HTMLInputElement>) => {\n onFilterCb?.(`${value}`, { event });\n },\n [onFilterCb],\n );\n return (\n <StyledSearchWrapper getOwnerProps={getOwnerProps} getOwnerPropsArguments={getOwnerPropsArguments}>\n <StyledInputText\n value={filterValue}\n onValueChange={handleFilterChange}\n aria-label={isDestinationPanel ? 'Destination input search' : 'Source input search'}\n getOwnerProps={getOwnerProps}\n getOwnerPropsArguments={getOwnerPropsArguments}\n />\n </StyledSearchWrapper>\n );\n};\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACsCjB;AAtCN,OAAOA,UAAS,mBAAmB;AACnC,SAAS,YAAY;AACrB,SAAS,cAAc;AACvB,SAAS,mBAAmB;AAC5B,SAAS,qBAAqB;AAE9B,SAAS,iBAAiB,wBAAwB;AAElD,MAAM,sBAAsB,OAAO,MAAM,EAAE,MAAM,iBAAiB,MAAM,iBAAiB,oBAAoB,CAAC;AAAA;AAAA;AAAA;AAI9G,MAAM,kBAAkB,OAAO,aAAa,EAAE,MAAM,iBAAiB,MAAM,iBAAiB,gBAAgB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAOtG,MAAM,qBAAqB,CAAC,kBAA8C;AAC/E,QAAM,gBAAgB,cAAc,CAAC,UAAU,MAAM,GAAG;AACxD,QAAM,yBAAyB,YAAY,MAAM,eAAe,CAAC,aAAa,CAAC;AAE/E,QAAM,EAAE,qBAAqB,MAAM,IAAI;AACvC,QAAM,aAAa;AAAA,IAAc,CAAC,UAChC,qBAAqB,MAAM,4BAA4B,MAAM;AAAA,EAC/D;AACA,QAAM,cAAc;AAAA,IAAc,CAAC,UACjC,qBAAqB,MAAM,yBAAyB,MAAM;AAAA,EAC5D;AACA,QAAM,qBAAqBA,OAAM;AAAA,IAC/B,CAAC,OAAwB,UAA+C;AACtE,mBAAa,GAAG,SAAS,EAAE,MAAM,CAAC;AAAA,IACpC;AAAA,IACA,CAAC,UAAU;AAAA,EACb;AACA,SACE,oBAAC,uBAAoB,eAA8B,wBACjD;AAAA,IAAC;AAAA;AAAA,MACC,OAAO;AAAA,MACP,eAAe;AAAA,MACf,cAAY,qBAAqB,6BAA6B;AAAA,MAC9D;AAAA,MACA;AAAA;AAAA,EACF,GACF;AAEJ;",
6
+ "names": ["React"]
7
+ }
@@ -0,0 +1,107 @@
1
+ import * as React from "react";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import React2, { useCallback, useMemo } from "react";
4
+ import { styled } from "@elliemae/ds-legacy-system";
5
+ import { DSControlledCheckbox } from "@elliemae/ds-legacy-form-checkbox";
6
+ import { Grid } from "@elliemae/ds-legacy-grid";
7
+ import { usePropsStore } from "../../../config/useStore/index.js";
8
+ import { DSShuttleV2Name, DSShuttleV2Slots } from "../../../config/DSShuttleV2Definitions.js";
9
+ const StyledSelectionHeaderWrapper = styled(Grid, {
10
+ name: DSShuttleV2Name,
11
+ slot: DSShuttleV2Slots.AREA_SELECTION_HEADER
12
+ })`
13
+ line-height: 1;
14
+ font-size: 1rem;
15
+ background-color: neutral-000;
16
+ border-bottom: 1px solid neutral-400;
17
+ `;
18
+ const StyledSelectionHeaderCountLabel = styled("div", {
19
+ name: DSShuttleV2Name,
20
+ slot: DSShuttleV2Slots.AREA_SELECTION_HEADER_COUNT_LABEL
21
+ })`
22
+ text-align: end;
23
+ color: neutral-500;
24
+ font-weight: 600;
25
+ `;
26
+ const StyledCheckbox = styled(DSControlledCheckbox)``;
27
+ const wrapperCols = ["auto", "1fr"];
28
+ const SelectionHeader = React2.memo((panelMetaInfo) => {
29
+ const { isDestinationPanel = false } = panelMetaInfo;
30
+ const selectionableItems = usePropsStore(
31
+ (state) => isDestinationPanel ? state.destinationSelectionableData : state.sourceSelectionableData
32
+ );
33
+ const ids = usePropsStore(
34
+ (state) => isDestinationPanel ? state.destinationSelectionableIds : state.sourceSelectionableIds
35
+ );
36
+ const ariaControls = useMemo(
37
+ () => ids.length === 0 ? "" : ids.split(" ").map((d) => `${d}-wrapper`).join(" "),
38
+ [ids]
39
+ );
40
+ const onSelectionChange = usePropsStore(
41
+ (state) => isDestinationPanel ? state.onDestinationSelectionChange : state.onSourceSelectionChange
42
+ );
43
+ const selectionLength = usePropsStore(
44
+ (state) => isDestinationPanel ? state.destinationSelectionItemArray.length : state.sourceSelectionItemArray.length
45
+ );
46
+ const checkboxValue = React2.useMemo(() => {
47
+ let newVal = false;
48
+ if (selectionLength > 0)
49
+ if (selectionLength === selectionableItems.length)
50
+ newVal = true;
51
+ else
52
+ newVal = "mixed";
53
+ return newVal;
54
+ }, [selectionableItems.length, selectionLength]);
55
+ const handleSelectAll = React2.useCallback(
56
+ (_, event) => {
57
+ if (checkboxValue === true) {
58
+ onSelectionChange({}, { event });
59
+ } else {
60
+ const newSelection = {};
61
+ selectionableItems.forEach((selectableItem) => {
62
+ newSelection[selectableItem.hydratedId] = true;
63
+ });
64
+ onSelectionChange(newSelection, { event });
65
+ }
66
+ },
67
+ [checkboxValue, onSelectionChange, selectionableItems]
68
+ );
69
+ const getOwnerProps = usePropsStore((store) => store.get);
70
+ const getOwnerPropsArguments = useCallback(() => panelMetaInfo, [panelMetaInfo]);
71
+ return /* @__PURE__ */ jsxs(
72
+ StyledSelectionHeaderWrapper,
73
+ {
74
+ cols: wrapperCols,
75
+ justifyContent: "center",
76
+ alignItems: "center",
77
+ py: "7px",
78
+ px: "xxs2",
79
+ getOwnerProps,
80
+ getOwnerPropsArguments,
81
+ children: [
82
+ /* @__PURE__ */ jsx(Grid, { justifyContent: "center", alignItems: "center", children: /* @__PURE__ */ jsx(
83
+ StyledCheckbox,
84
+ {
85
+ checked: checkboxValue,
86
+ "aria-label": `${checkboxValue === true ? "Deselect" : "Select"} all ${isDestinationPanel ? "destination" : "source"} items`,
87
+ onChange: handleSelectAll,
88
+ "aria-controls": ariaControls,
89
+ "aria-labelledby": "",
90
+ disabled: selectionableItems.length === 0,
91
+ "aria-disabled": selectionableItems.length === 0,
92
+ getOwnerProps,
93
+ getOwnerPropsArguments
94
+ }
95
+ ) }),
96
+ /* @__PURE__ */ jsxs(StyledSelectionHeaderCountLabel, { getOwnerProps, getOwnerPropsArguments, children: [
97
+ selectionLength,
98
+ " selected"
99
+ ] })
100
+ ]
101
+ }
102
+ );
103
+ });
104
+ export {
105
+ SelectionHeader
106
+ };
107
+ //# sourceMappingURL=SelectionHeader.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../../scripts/build/transpile/react-shim.js", "../../../../../src/parts/Panel/top/SelectionHeader.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useCallback, useMemo } from 'react';\nimport { styled } from '@elliemae/ds-legacy-system';\nimport { DSControlledCheckbox, type DSControlledCheckboxT } from '@elliemae/ds-legacy-form-checkbox';\nimport { Grid } from '@elliemae/ds-legacy-grid';\nimport { usePropsStore } from '../../../config/useStore/index.js';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types.js';\nimport { DSShuttleV2Name, DSShuttleV2Slots } from '../../../config/DSShuttleV2Definitions.js';\n\nconst StyledSelectionHeaderWrapper = styled(Grid, {\n name: DSShuttleV2Name,\n slot: DSShuttleV2Slots.AREA_SELECTION_HEADER,\n})`\n line-height: 1;\n font-size: 1rem;\n background-color: neutral-000;\n border-bottom: 1px solid neutral-400;\n`;\nconst StyledSelectionHeaderCountLabel = styled('div', {\n name: DSShuttleV2Name,\n slot: DSShuttleV2Slots.AREA_SELECTION_HEADER_COUNT_LABEL,\n})`\n text-align: end;\n color: neutral-500;\n font-weight: 600;\n`;\n\nconst StyledCheckbox = styled(DSControlledCheckbox)``;\n\nconst wrapperCols = ['auto', '1fr'];\nexport const SelectionHeader = React.memo((panelMetaInfo: DSShuttleV2T.PanelMetaInfo) => {\n const { isDestinationPanel = false } = panelMetaInfo;\n const selectionableItems = usePropsStore((state) =>\n isDestinationPanel ? state.destinationSelectionableData : state.sourceSelectionableData,\n );\n const ids = usePropsStore((state) =>\n isDestinationPanel ? state.destinationSelectionableIds : state.sourceSelectionableIds,\n );\n const ariaControls = useMemo(\n () =>\n ids.length === 0\n ? ''\n : ids\n .split(' ')\n .map((d) => `${d}-wrapper`)\n .join(' '),\n [ids],\n );\n\n const onSelectionChange = usePropsStore((state) =>\n isDestinationPanel ? state.onDestinationSelectionChange : state.onSourceSelectionChange,\n );\n const selectionLength = usePropsStore((state) =>\n isDestinationPanel ? state.destinationSelectionItemArray.length : state.sourceSelectionItemArray.length,\n );\n const checkboxValue = React.useMemo(() => {\n let newVal: boolean | 'mixed' = false;\n if (selectionLength > 0)\n if (selectionLength === selectionableItems.length) newVal = true;\n else newVal = 'mixed';\n return newVal;\n }, [selectionableItems.length, selectionLength]);\n\n const handleSelectAll = React.useCallback<DSControlledCheckboxT.InternalProps['onChange']>(\n (_, event) => {\n if (checkboxValue === true) {\n onSelectionChange({}, { event });\n } else {\n const newSelection: DSShuttleV2T.InternalProps['sourceSelectedItems'] = {};\n selectionableItems.forEach((selectableItem) => {\n newSelection[selectableItem.hydratedId] = true;\n });\n onSelectionChange(newSelection, { event });\n }\n },\n [checkboxValue, onSelectionChange, selectionableItems],\n );\n\n const getOwnerProps = usePropsStore((store) => store.get);\n const getOwnerPropsArguments = useCallback(() => panelMetaInfo, [panelMetaInfo]);\n\n return (\n <StyledSelectionHeaderWrapper\n cols={wrapperCols}\n justifyContent=\"center\"\n alignItems=\"center\"\n py=\"7px\"\n px=\"xxs2\"\n getOwnerProps={getOwnerProps}\n getOwnerPropsArguments={getOwnerPropsArguments}\n >\n <Grid justifyContent=\"center\" alignItems=\"center\">\n <StyledCheckbox\n checked={checkboxValue}\n aria-label={`${checkboxValue === true ? 'Deselect' : 'Select'} all ${\n isDestinationPanel ? 'destination' : 'source'\n } items`}\n onChange={handleSelectAll}\n aria-controls={ariaControls}\n // need to overwrite this becasue the default aria-labelledby is not working for axe-core\n aria-labelledby=\"\"\n disabled={selectionableItems.length === 0}\n aria-disabled={selectionableItems.length === 0}\n getOwnerProps={getOwnerProps}\n getOwnerPropsArguments={getOwnerPropsArguments}\n />\n </Grid>\n <StyledSelectionHeaderCountLabel getOwnerProps={getOwnerProps} getOwnerPropsArguments={getOwnerPropsArguments}>\n {selectionLength} selected\n </StyledSelectionHeaderCountLabel>\n </StyledSelectionHeaderWrapper>\n );\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["React"]
7
+ }