@elliemae/ds-shuttle-v2 3.16.0 → 3.16.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 (282) hide show
  1. package/dist/cjs/DSShuttleV2.js +14 -3
  2. package/dist/cjs/DSShuttleV2.js.map +2 -2
  3. package/dist/cjs/config/DSShuttleV2Definitions.js +4 -0
  4. package/dist/cjs/config/DSShuttleV2Definitions.js.map +1 -1
  5. package/dist/cjs/config/itemMovementHelpers.js +5 -1
  6. package/dist/cjs/config/itemMovementHelpers.js.map +2 -2
  7. package/dist/cjs/config/useAutoCalculated/index.js +6 -2
  8. package/dist/cjs/config/useAutoCalculated/index.js.map +2 -2
  9. package/dist/cjs/config/useAutoCalculated/useDataStructure.js +4 -0
  10. package/dist/cjs/config/useAutoCalculated/useDataStructure.js.map +2 -2
  11. package/dist/cjs/config/useAutoCalculated/useShuttleVirtualized.js +4 -0
  12. package/dist/cjs/config/useAutoCalculated/useShuttleVirtualized.js.map +2 -2
  13. package/dist/cjs/config/useFocusTracker/index.js +8 -4
  14. package/dist/cjs/config/useFocusTracker/index.js.map +2 -2
  15. package/dist/cjs/config/useFocusTracker/useFocusActionTrackers.js +6 -2
  16. package/dist/cjs/config/useFocusTracker/useFocusActionTrackers.js.map +2 -2
  17. package/dist/cjs/config/useFocusTracker/useFocusItemTracker.js +6 -2
  18. package/dist/cjs/config/useFocusTracker/useFocusItemTracker.js.map +2 -2
  19. package/dist/cjs/config/useFocusTracker/useFocusRegionTrackers.js +6 -2
  20. package/dist/cjs/config/useFocusTracker/useFocusRegionTrackers.js.map +2 -2
  21. package/dist/cjs/config/useFocusTracker/useFocusTracker.js +7 -3
  22. package/dist/cjs/config/useFocusTracker/useFocusTracker.js.map +2 -2
  23. package/dist/cjs/config/useStore/focusAndTabIndexManager.js +8 -4
  24. package/dist/cjs/config/useStore/focusAndTabIndexManager.js.map +2 -2
  25. package/dist/cjs/config/useStore/index.js +5 -1
  26. package/dist/cjs/config/useStore/index.js.map +2 -2
  27. package/dist/cjs/config/useStore/useStore.js +10 -6
  28. package/dist/cjs/config/useStore/useStore.js.map +2 -2
  29. package/dist/cjs/config/useValidateProps.js +5 -1
  30. package/dist/cjs/config/useValidateProps.js.map +2 -2
  31. package/dist/cjs/constants/index.js +4 -0
  32. package/dist/cjs/constants/index.js.map +1 -1
  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 +10 -3
  38. package/dist/cjs/index.js.map +2 -2
  39. package/dist/cjs/package.json +7 -0
  40. package/dist/cjs/parts/Dnd/DndHandle.js +6 -2
  41. package/dist/cjs/parts/Dnd/DndHandle.js.map +2 -2
  42. package/dist/cjs/parts/Dnd/DragOverlay.js +6 -2
  43. package/dist/cjs/parts/Dnd/DragOverlay.js.map +2 -2
  44. package/dist/cjs/parts/Dnd/DropIndicator.js +4 -0
  45. package/dist/cjs/parts/Dnd/DropIndicator.js.map +1 -1
  46. package/dist/cjs/parts/Header.js +7 -3
  47. package/dist/cjs/parts/Header.js.map +2 -2
  48. package/dist/cjs/parts/HoC/withConditionalDnDRowContext.js +7 -2
  49. package/dist/cjs/parts/HoC/withConditionalDnDRowContext.js.map +2 -2
  50. package/dist/cjs/parts/HoC/withConditionalUseSortable.js +4 -0
  51. package/dist/cjs/parts/HoC/withConditionalUseSortable.js.map +2 -2
  52. package/dist/cjs/parts/Item/Item.js +41 -31
  53. package/dist/cjs/parts/Item/Item.js.map +2 -2
  54. package/dist/cjs/parts/Item/ItemActions/ItemActions.js +14 -7
  55. package/dist/cjs/parts/Item/ItemActions/ItemActions.js.map +2 -2
  56. package/dist/cjs/parts/Item/ItemActions/index.js +5 -1
  57. package/dist/cjs/parts/Item/ItemActions/index.js.map +2 -2
  58. package/dist/cjs/parts/Item/ItemActions/useActionsHandlers.js +5 -1
  59. package/dist/cjs/parts/Item/ItemActions/useActionsHandlers.js.map +2 -2
  60. package/dist/cjs/parts/Item/ItemActions/useActionsLogicHandlers.js +7 -3
  61. package/dist/cjs/parts/Item/ItemActions/useActionsLogicHandlers.js.map +2 -2
  62. package/dist/cjs/parts/Item/ItemActions/useInnerRefHandlers.js +6 -2
  63. package/dist/cjs/parts/Item/ItemActions/useInnerRefHandlers.js.map +2 -2
  64. package/dist/cjs/parts/Item/ItemMiddleSection.js +50 -30
  65. package/dist/cjs/parts/Item/ItemMiddleSection.js.map +2 -2
  66. package/dist/cjs/parts/Item/ItemOverlay.js +8 -4
  67. package/dist/cjs/parts/Item/ItemOverlay.js.map +2 -2
  68. package/dist/cjs/parts/Item/ItemSelection.js +5 -1
  69. package/dist/cjs/parts/Item/ItemSelection.js.map +2 -2
  70. package/dist/cjs/parts/Item/TextSection.js +5 -1
  71. package/dist/cjs/parts/Item/TextSection.js.map +2 -2
  72. package/dist/cjs/parts/Item/useItemArrowNavigation.js +6 -2
  73. package/dist/cjs/parts/Item/useItemArrowNavigation.js.map +2 -2
  74. package/dist/cjs/parts/Item/useItemKeyboardSelection.js +6 -2
  75. package/dist/cjs/parts/Item/useItemKeyboardSelection.js.map +2 -2
  76. package/dist/cjs/parts/Item/useSelectionLogic.js +6 -2
  77. package/dist/cjs/parts/Item/useSelectionLogic.js.map +2 -2
  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 +8 -4
  81. package/dist/cjs/parts/MainContent.js.map +2 -2
  82. package/dist/cjs/parts/Panel/bottom/LoadMoreBtn.js +8 -4
  83. package/dist/cjs/parts/Panel/bottom/LoadMoreBtn.js.map +2 -2
  84. package/dist/cjs/parts/Panel/bottom/LoadingMore.js +5 -1
  85. package/dist/cjs/parts/Panel/bottom/LoadingMore.js.map +2 -2
  86. package/dist/cjs/parts/Panel/bottom/PanelContentBottomSection.js +10 -6
  87. package/dist/cjs/parts/Panel/bottom/PanelContentBottomSection.js.map +2 -2
  88. package/dist/cjs/parts/Panel/bottom/useInnerRefHandlers.js +6 -2
  89. package/dist/cjs/parts/Panel/bottom/useInnerRefHandlers.js.map +2 -2
  90. package/dist/cjs/parts/Panel/bottom/useLoadMoreBtnArrowNavigation.js +6 -2
  91. package/dist/cjs/parts/Panel/bottom/useLoadMoreBtnArrowNavigation.js.map +2 -2
  92. package/dist/cjs/parts/Panel/middle/EmptyItems.js +5 -1
  93. package/dist/cjs/parts/Panel/middle/EmptyItems.js.map +2 -2
  94. package/dist/cjs/parts/Panel/middle/ItemListWrapper/Index.js +10 -6
  95. package/dist/cjs/parts/Panel/middle/ItemListWrapper/Index.js.map +2 -2
  96. package/dist/cjs/parts/Panel/middle/ItemListWrapper/getDatumFlags.js +4 -0
  97. package/dist/cjs/parts/Panel/middle/ItemListWrapper/getDatumFlags.js.map +1 -1
  98. package/dist/cjs/parts/Panel/middle/ItemListWrapper/useGetDatumHydratables.js +5 -1
  99. package/dist/cjs/parts/Panel/middle/ItemListWrapper/useGetDatumHydratables.js.map +2 -2
  100. package/dist/cjs/parts/Panel/middle/LoadingItems.js +5 -1
  101. package/dist/cjs/parts/Panel/middle/LoadingItems.js.map +2 -2
  102. package/dist/cjs/parts/Panel/middle/MultipleSelectionAction.js +21 -5
  103. package/dist/cjs/parts/Panel/middle/MultipleSelectionAction.js.map +2 -2
  104. package/dist/cjs/parts/Panel/middle/PanelContentMiddleSection.js +12 -8
  105. package/dist/cjs/parts/Panel/middle/PanelContentMiddleSection.js.map +2 -2
  106. package/dist/cjs/parts/Panel/top/PanelContentTopSection.js +8 -4
  107. package/dist/cjs/parts/Panel/top/PanelContentTopSection.js.map +2 -2
  108. package/dist/cjs/parts/Panel/top/PanelFilterSection.js +6 -2
  109. package/dist/cjs/parts/Panel/top/PanelFilterSection.js.map +2 -2
  110. package/dist/cjs/parts/Panel/top/SelectionHeader.js +6 -2
  111. package/dist/cjs/parts/Panel/top/SelectionHeader.js.map +2 -2
  112. package/dist/cjs/parts/PanelWrapper.js +9 -5
  113. package/dist/cjs/parts/PanelWrapper.js.map +2 -2
  114. package/dist/cjs/react-desc-prop-types.js +72 -50
  115. package/dist/cjs/react-desc-prop-types.js.map +2 -2
  116. package/dist/cjs/tests/configs/basic.js +5 -0
  117. package/dist/cjs/tests/configs/basic.js.map +1 -1
  118. package/dist/cjs/tests/configs/filter.js +5 -0
  119. package/dist/cjs/tests/configs/filter.js.map +1 -1
  120. package/dist/cjs/tests/configs/loadMore.js +5 -0
  121. package/dist/cjs/tests/configs/loadMore.js.map +1 -1
  122. package/dist/esm/DSShuttleV2.js +10 -3
  123. package/dist/esm/DSShuttleV2.js.map +2 -2
  124. package/dist/esm/config/itemMovementHelpers.js +1 -1
  125. package/dist/esm/config/itemMovementHelpers.js.map +2 -2
  126. package/dist/esm/config/useAutoCalculated/index.js +2 -2
  127. package/dist/esm/config/useAutoCalculated/index.js.map +1 -1
  128. package/dist/esm/config/useAutoCalculated/useDataStructure.js.map +2 -2
  129. package/dist/esm/config/useAutoCalculated/useShuttleVirtualized.js.map +1 -1
  130. package/dist/esm/config/useFocusTracker/index.js +4 -4
  131. package/dist/esm/config/useFocusTracker/index.js.map +1 -1
  132. package/dist/esm/config/useFocusTracker/useFocusActionTrackers.js +2 -2
  133. package/dist/esm/config/useFocusTracker/useFocusActionTrackers.js.map +1 -1
  134. package/dist/esm/config/useFocusTracker/useFocusItemTracker.js +2 -2
  135. package/dist/esm/config/useFocusTracker/useFocusItemTracker.js.map +2 -2
  136. package/dist/esm/config/useFocusTracker/useFocusRegionTrackers.js +2 -2
  137. package/dist/esm/config/useFocusTracker/useFocusRegionTrackers.js.map +1 -1
  138. package/dist/esm/config/useFocusTracker/useFocusTracker.js +3 -3
  139. package/dist/esm/config/useFocusTracker/useFocusTracker.js.map +1 -1
  140. package/dist/esm/config/useStore/focusAndTabIndexManager.js +4 -4
  141. package/dist/esm/config/useStore/focusAndTabIndexManager.js.map +2 -2
  142. package/dist/esm/config/useStore/index.js +1 -1
  143. package/dist/esm/config/useStore/index.js.map +1 -1
  144. package/dist/esm/config/useStore/useStore.js +6 -6
  145. package/dist/esm/config/useStore/useStore.js.map +2 -2
  146. package/dist/esm/config/useValidateProps.js +1 -1
  147. package/dist/esm/config/useValidateProps.js.map +1 -1
  148. package/dist/esm/exported-related/ShuttleItem.js +30 -0
  149. package/dist/esm/exported-related/ShuttleItem.js.map +7 -0
  150. package/dist/esm/exported-related/index.js +6 -0
  151. package/dist/esm/exported-related/index.js.map +7 -0
  152. package/dist/esm/index.js +6 -3
  153. package/dist/esm/index.js.map +2 -2
  154. package/dist/esm/package.json +7 -0
  155. package/dist/esm/parts/Dnd/DndHandle.js +2 -2
  156. package/dist/esm/parts/Dnd/DndHandle.js.map +1 -1
  157. package/dist/esm/parts/Dnd/DragOverlay.js +2 -2
  158. package/dist/esm/parts/Dnd/DragOverlay.js.map +1 -1
  159. package/dist/esm/parts/Dnd/DropIndicator.js.map +1 -1
  160. package/dist/esm/parts/Header.js +3 -3
  161. package/dist/esm/parts/Header.js.map +1 -1
  162. package/dist/esm/parts/HoC/withConditionalDnDRowContext.js +3 -2
  163. package/dist/esm/parts/HoC/withConditionalDnDRowContext.js.map +2 -2
  164. package/dist/esm/parts/HoC/withConditionalUseSortable.js.map +1 -1
  165. package/dist/esm/parts/Item/Item.js +37 -31
  166. package/dist/esm/parts/Item/Item.js.map +2 -2
  167. package/dist/esm/parts/Item/ItemActions/ItemActions.js +10 -7
  168. package/dist/esm/parts/Item/ItemActions/ItemActions.js.map +2 -2
  169. package/dist/esm/parts/Item/ItemActions/index.js +1 -1
  170. package/dist/esm/parts/Item/ItemActions/index.js.map +1 -1
  171. package/dist/esm/parts/Item/ItemActions/useActionsHandlers.js +1 -1
  172. package/dist/esm/parts/Item/ItemActions/useActionsHandlers.js.map +1 -1
  173. package/dist/esm/parts/Item/ItemActions/useActionsLogicHandlers.js +3 -3
  174. package/dist/esm/parts/Item/ItemActions/useActionsLogicHandlers.js.map +1 -1
  175. package/dist/esm/parts/Item/ItemActions/useInnerRefHandlers.js +2 -2
  176. package/dist/esm/parts/Item/ItemActions/useInnerRefHandlers.js.map +1 -1
  177. package/dist/esm/parts/Item/ItemMiddleSection.js +46 -30
  178. package/dist/esm/parts/Item/ItemMiddleSection.js.map +2 -2
  179. package/dist/esm/parts/Item/ItemOverlay.js +4 -4
  180. package/dist/esm/parts/Item/ItemOverlay.js.map +1 -1
  181. package/dist/esm/parts/Item/ItemSelection.js +1 -1
  182. package/dist/esm/parts/Item/ItemSelection.js.map +2 -2
  183. package/dist/esm/parts/Item/TextSection.js +1 -1
  184. package/dist/esm/parts/Item/TextSection.js.map +1 -1
  185. package/dist/esm/parts/Item/useItemArrowNavigation.js +6 -2
  186. package/dist/esm/parts/Item/useItemArrowNavigation.js.map +2 -2
  187. package/dist/esm/parts/Item/useItemKeyboardSelection.js +2 -2
  188. package/dist/esm/parts/Item/useItemKeyboardSelection.js.map +1 -1
  189. package/dist/esm/parts/Item/useSelectionLogic.js +2 -2
  190. package/dist/esm/parts/Item/useSelectionLogic.js.map +2 -2
  191. package/dist/esm/parts/Item/useThisItemIsFocused.js +17 -0
  192. package/dist/esm/parts/Item/useThisItemIsFocused.js.map +7 -0
  193. package/dist/esm/parts/MainContent.js +4 -4
  194. package/dist/esm/parts/MainContent.js.map +1 -1
  195. package/dist/esm/parts/Panel/bottom/LoadMoreBtn.js +4 -4
  196. package/dist/esm/parts/Panel/bottom/LoadMoreBtn.js.map +1 -1
  197. package/dist/esm/parts/Panel/bottom/LoadingMore.js +1 -1
  198. package/dist/esm/parts/Panel/bottom/LoadingMore.js.map +1 -1
  199. package/dist/esm/parts/Panel/bottom/PanelContentBottomSection.js +6 -6
  200. package/dist/esm/parts/Panel/bottom/PanelContentBottomSection.js.map +1 -1
  201. package/dist/esm/parts/Panel/bottom/useInnerRefHandlers.js +2 -2
  202. package/dist/esm/parts/Panel/bottom/useInnerRefHandlers.js.map +1 -1
  203. package/dist/esm/parts/Panel/bottom/useLoadMoreBtnArrowNavigation.js +6 -2
  204. package/dist/esm/parts/Panel/bottom/useLoadMoreBtnArrowNavigation.js.map +2 -2
  205. package/dist/esm/parts/Panel/middle/EmptyItems.js +1 -1
  206. package/dist/esm/parts/Panel/middle/EmptyItems.js.map +1 -1
  207. package/dist/esm/parts/Panel/middle/ItemListWrapper/Index.js +6 -6
  208. package/dist/esm/parts/Panel/middle/ItemListWrapper/Index.js.map +2 -2
  209. package/dist/esm/parts/Panel/middle/ItemListWrapper/useGetDatumHydratables.js +1 -1
  210. package/dist/esm/parts/Panel/middle/ItemListWrapper/useGetDatumHydratables.js.map +2 -2
  211. package/dist/esm/parts/Panel/middle/LoadingItems.js +1 -1
  212. package/dist/esm/parts/Panel/middle/LoadingItems.js.map +1 -1
  213. package/dist/esm/parts/Panel/middle/MultipleSelectionAction.js +17 -5
  214. package/dist/esm/parts/Panel/middle/MultipleSelectionAction.js.map +2 -2
  215. package/dist/esm/parts/Panel/middle/PanelContentMiddleSection.js +8 -8
  216. package/dist/esm/parts/Panel/middle/PanelContentMiddleSection.js.map +1 -1
  217. package/dist/esm/parts/Panel/top/PanelContentTopSection.js +4 -4
  218. package/dist/esm/parts/Panel/top/PanelContentTopSection.js.map +1 -1
  219. package/dist/esm/parts/Panel/top/PanelFilterSection.js +2 -2
  220. package/dist/esm/parts/Panel/top/PanelFilterSection.js.map +1 -1
  221. package/dist/esm/parts/Panel/top/SelectionHeader.js +2 -2
  222. package/dist/esm/parts/Panel/top/SelectionHeader.js.map +2 -2
  223. package/dist/esm/parts/PanelWrapper.js +5 -5
  224. package/dist/esm/parts/PanelWrapper.js.map +1 -1
  225. package/dist/esm/react-desc-prop-types.js +66 -48
  226. package/dist/esm/react-desc-prop-types.js.map +2 -2
  227. package/dist/esm/tests/configs/basic.js +1 -0
  228. package/dist/esm/tests/configs/basic.js.map +1 -1
  229. package/dist/esm/tests/configs/filter.js +1 -0
  230. package/dist/esm/tests/configs/filter.js.map +1 -1
  231. package/dist/esm/tests/configs/loadMore.js +1 -0
  232. package/dist/esm/tests/configs/loadMore.js.map +1 -1
  233. package/dist/types/DSShuttleV2.d.ts +3 -1
  234. package/dist/types/config/itemMovementHelpers.d.ts +1 -1
  235. package/dist/types/config/useAutoCalculated/index.d.ts +1 -1
  236. package/dist/types/config/useAutoCalculated/useDataStructure.d.ts +1 -1
  237. package/dist/types/config/useAutoCalculated/useShuttleVirtualized.d.ts +1 -1
  238. package/dist/types/config/useFocusTracker/index.d.ts +4 -4
  239. package/dist/types/config/useFocusTracker/useFocusActionTrackers.d.ts +1 -1
  240. package/dist/types/config/useFocusTracker/useFocusItemTracker.d.ts +1 -1
  241. package/dist/types/config/useFocusTracker/useFocusTracker.d.ts +7 -7
  242. package/dist/types/config/useStore/focusAndTabIndexManager.d.ts +1 -1
  243. package/dist/types/config/useStore/index.d.ts +1 -1
  244. package/dist/types/config/useStore/useStore.d.ts +1 -1
  245. package/dist/types/config/useValidateProps.d.ts +1 -1
  246. package/dist/types/exported-related/ShuttleItem.d.ts +8 -0
  247. package/dist/types/exported-related/index.d.ts +1 -0
  248. package/dist/types/index.d.ts +3 -2
  249. package/dist/types/parts/Header.d.ts +1 -1
  250. package/dist/types/parts/HoC/withConditionalDnDRowContext.d.ts +1 -1
  251. package/dist/types/parts/HoC/withConditionalUseSortable.d.ts +1 -1
  252. package/dist/types/parts/Item/Item.d.ts +1 -1
  253. package/dist/types/parts/Item/ItemActions/ItemActions.d.ts +1 -1
  254. package/dist/types/parts/Item/ItemActions/index.d.ts +1 -1
  255. package/dist/types/parts/Item/ItemActions/useActionsHandlers.d.ts +1 -1
  256. package/dist/types/parts/Item/ItemActions/useActionsLogicHandlers.d.ts +1 -1
  257. package/dist/types/parts/Item/ItemActions/useInnerRefHandlers.d.ts +1 -1
  258. package/dist/types/parts/Item/ItemMiddleSection.d.ts +4 -2
  259. package/dist/types/parts/Item/ItemOverlay.d.ts +1 -1
  260. package/dist/types/parts/Item/ItemSelection.d.ts +1 -1
  261. package/dist/types/parts/Item/TextSection.d.ts +1 -1
  262. package/dist/types/parts/Item/useItemArrowNavigation.d.ts +1 -1
  263. package/dist/types/parts/Item/useItemKeyboardSelection.d.ts +1 -1
  264. package/dist/types/parts/Item/useSelectionLogic.d.ts +1 -1
  265. package/dist/types/parts/Item/useThisItemIsFocused.d.ts +4 -0
  266. package/dist/types/parts/Panel/bottom/LoadMoreBtn.d.ts +1 -1
  267. package/dist/types/parts/Panel/bottom/LoadingMore.d.ts +1 -1
  268. package/dist/types/parts/Panel/bottom/PanelContentBottomSection.d.ts +1 -1
  269. package/dist/types/parts/Panel/bottom/useInnerRefHandlers.d.ts +1 -1
  270. package/dist/types/parts/Panel/bottom/useLoadMoreBtnArrowNavigation.d.ts +1 -1
  271. package/dist/types/parts/Panel/middle/EmptyItems.d.ts +1 -1
  272. package/dist/types/parts/Panel/middle/ItemListWrapper/Index.d.ts +1 -1
  273. package/dist/types/parts/Panel/middle/ItemListWrapper/useGetDatumHydratables.d.ts +1 -1
  274. package/dist/types/parts/Panel/middle/LoadingItems.d.ts +1 -1
  275. package/dist/types/parts/Panel/middle/MultipleSelectionAction.d.ts +1 -1
  276. package/dist/types/parts/Panel/middle/PanelContentMiddleSection.d.ts +1 -1
  277. package/dist/types/parts/Panel/top/PanelContentTopSection.d.ts +1 -1
  278. package/dist/types/parts/Panel/top/PanelFilterSection.d.ts +1 -1
  279. package/dist/types/parts/Panel/top/SelectionHeader.d.ts +1 -1
  280. package/dist/types/parts/PanelWrapper.d.ts +1 -1
  281. package/dist/types/react-desc-prop-types.d.ts +190 -0
  282. package/package.json +19 -18
@@ -2,7 +2,7 @@ import * as React from "react";
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  import { styled } from "@elliemae/ds-system";
4
4
  import { Grid } from "@elliemae/ds-grid";
5
- import { DSShuttleV2Name, DSShuttleV2Slots } from "../../../config/DSShuttleV2Definitions";
5
+ import { DSShuttleV2Name, DSShuttleV2Slots } from "../../../config/DSShuttleV2Definitions.js";
6
6
  const StyledEmptyListWrapper = styled(Grid, { name: DSShuttleV2Name, slot: DSShuttleV2Slots.EMPTY_LIST_WRAPPER })`
7
7
  color: neutral-500;
8
8
  `;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../scripts/build/transpile/react-shim.js", "../../../../../src/parts/Panel/middle/EmptyItems.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable no-unused-vars */\nimport React from 'react';\nimport { styled } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types';\nimport { DSShuttleV2Name, DSShuttleV2Slots } from '../../../config/DSShuttleV2Definitions';\n\nconst StyledEmptyListWrapper = styled(Grid, { name: DSShuttleV2Name, slot: DSShuttleV2Slots.EMPTY_LIST_WRAPPER })`\n color: neutral-500;\n`;\nexport const EmptyItems = (panelMetaInfo: DSShuttleV2T.PanelMetaInfo) => (\n <StyledEmptyListWrapper alignItems=\"center\" justifyContent=\"center\">\n There are no items to display\n </StyledEmptyListWrapper>\n);\n"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable no-unused-vars */\nimport React from 'react';\nimport { styled } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types.js';\nimport { DSShuttleV2Name, DSShuttleV2Slots } from '../../../config/DSShuttleV2Definitions.js';\n\nconst StyledEmptyListWrapper = styled(Grid, { name: DSShuttleV2Name, slot: DSShuttleV2Slots.EMPTY_LIST_WRAPPER })`\n color: neutral-500;\n`;\nexport const EmptyItems = (panelMetaInfo: DSShuttleV2T.PanelMetaInfo) => (\n <StyledEmptyListWrapper alignItems=\"center\" justifyContent=\"center\">\n There are no items to display\n </StyledEmptyListWrapper>\n);\n"],
5
5
  "mappings": "AAAA,YAAY,WAAW;ACYrB;AATF,SAAS,cAAc;AACvB,SAAS,YAAY;AAErB,SAAS,iBAAiB,wBAAwB;AAElD,MAAM,yBAAyB,OAAO,MAAM,EAAE,MAAM,iBAAiB,MAAM,iBAAiB,mBAAmB,CAAC;AAAA;AAAA;AAGzG,MAAM,aAAa,CAAC,kBACzB,oBAAC,0BAAuB,YAAW,UAAS,gBAAe,UAAS,2CAEpE;",
6
6
  "names": []
7
7
  }
@@ -3,12 +3,12 @@ import { jsx } from "react/jsx-runtime";
3
3
  import React2, { useMemo } from "react";
4
4
  import { Grid } from "@elliemae/ds-grid";
5
5
  import { styled } from "@elliemae/ds-system";
6
- import { usePropsStore } from "../../../../config/useStore";
7
- import { DSShuttleV2Name, DSShuttleV2Slots } from "../../../../config/DSShuttleV2Definitions";
8
- import { ItemSortable } from "../../../Item/Item";
9
- import { withConditionalDnDRowContext } from "../../../HoC/withConditionalDnDRowContext";
10
- import { useGetDatumHydratables } from "./useGetDatumHydratables";
11
- import { getDatumFlags } from "./getDatumFlags";
6
+ import { usePropsStore } from "../../../../config/useStore/index.js";
7
+ import { DSShuttleV2Name, DSShuttleV2Slots } from "../../../../config/DSShuttleV2Definitions.js";
8
+ import { ItemSortable } from "../../../Item/Item.js";
9
+ import { withConditionalDnDRowContext } from "../../../HoC/withConditionalDnDRowContext.js";
10
+ import { useGetDatumHydratables } from "./useGetDatumHydratables.js";
11
+ import { getDatumFlags } from "./getDatumFlags.js";
12
12
  const StyledItemsWrapper = styled(Grid, { name: DSShuttleV2Name, slot: DSShuttleV2Slots.ITEMS_WRAPPER })`
13
13
  position: relative;
14
14
  `;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../../scripts/build/transpile/react-shim.js", "../../../../../../src/parts/Panel/middle/ItemListWrapper/Index.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable indent */\nimport React, { useMemo } from 'react';\nimport { Grid } from '@elliemae/ds-grid';\nimport { styled } from '@elliemae/ds-system';\nimport { usePropsStore } from '../../../../config/useStore';\nimport { type DSShuttleV2T } from '../../../../react-desc-prop-types';\nimport { DSShuttleV2Name, DSShuttleV2Slots } from '../../../../config/DSShuttleV2Definitions';\nimport { ItemSortable } from '../../../Item/Item';\nimport { withConditionalDnDRowContext } from '../../../HoC/withConditionalDnDRowContext';\nimport { useGetDatumHydratables } from './useGetDatumHydratables';\nimport { getDatumFlags } from './getDatumFlags';\n\nconst StyledItemsWrapper = styled(Grid, { name: DSShuttleV2Name, slot: DSShuttleV2Slots.ITEMS_WRAPPER })`\n position: relative;\n`;\n\nconst ItemListWrapper = React.memo((panelMetaInfo: DSShuttleV2T.PanelMetaInfo) => {\n const { isDestinationPanel } = panelMetaInfo;\n const itemList = usePropsStore((state) =>\n isDestinationPanel ? state.destinationConfiguredData : state.sourceConfiguredData,\n );\n\n const totalSize = usePropsStore((state) => (isDestinationPanel ? state.destinationTotalSize : state.sourceTotalSize));\n\n const virtualItems = usePropsStore((state) =>\n isDestinationPanel ? state.destinationVirtualItems : state.sourceVirtualItems,\n );\n\n const withDragNDrop = usePropsStore((state) =>\n isDestinationPanel ? !state.removeDragAndDropFromDestination : state.addDragAndDropFromSource,\n );\n\n const rows = React.useMemo(\n () => [`repeat(${itemList?.length ? itemList?.length : '0'},min-content)`],\n [itemList.length],\n );\n\n const wrapperAriaLabel = useMemo(\n () => `${isDestinationPanel ? 'destination' : 'source'} panel`,\n [isDestinationPanel],\n );\n const getDatumHydratables = useGetDatumHydratables(panelMetaInfo);\n return (\n <StyledItemsWrapper\n aria-label={wrapperAriaLabel}\n role=\"listbox\"\n alignItems=\"flex-start\"\n rows={rows}\n style={{ height: `${totalSize}px` }}\n >\n {virtualItems?.map((virtualRow) => {\n const item = itemList[virtualRow.index];\n const { original: datum, ...datumInternalMeta } = item;\n const datumHydratables = getDatumHydratables(item);\n const datumRenderFlags = getDatumFlags({ ...datumInternalMeta, ...datumHydratables, ...panelMetaInfo });\n const itemMeta = {\n datum,\n datumHydratables,\n datumInternalMeta,\n datumRenderFlags,\n ...panelMetaInfo,\n withDragNDrop,\n };\n return (\n <div\n key={virtualRow.index}\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: `${virtualRow.size}px`,\n transform: `translateY(${virtualRow.start}px)`,\n }}\n >\n <div ref={virtualRow.measureRef}>\n <ItemSortable key={datumHydratables.id} {...itemMeta} />\n </div>\n </div>\n );\n })}\n </StyledItemsWrapper>\n );\n});\n\nexport const ItemListWrapperWithContext = withConditionalDnDRowContext(ItemListWrapper);\nexport default ItemListWrapperWithContext;\n"],
5
- "mappings": "AAAA,YAAY,WAAW;AC4ET;AA3Ed,OAAOA,UAAS,eAAe;AAC/B,SAAS,YAAY;AACrB,SAAS,cAAc;AACvB,SAAS,qBAAqB;AAE9B,SAAS,iBAAiB,wBAAwB;AAClD,SAAS,oBAAoB;AAC7B,SAAS,oCAAoC;AAC7C,SAAS,8BAA8B;AACvC,SAAS,qBAAqB;AAE9B,MAAM,qBAAqB,OAAO,MAAM,EAAE,MAAM,iBAAiB,MAAM,iBAAiB,cAAc,CAAC;AAAA;AAAA;AAIvG,MAAM,kBAAkBA,OAAM,KAAK,CAAC,kBAA8C;AAChF,QAAM,EAAE,mBAAmB,IAAI;AAC/B,QAAM,WAAW;AAAA,IAAc,CAAC,UAC9B,qBAAqB,MAAM,4BAA4B,MAAM;AAAA,EAC/D;AAEA,QAAM,YAAY,cAAc,CAAC,UAAW,qBAAqB,MAAM,uBAAuB,MAAM,eAAgB;AAEpH,QAAM,eAAe;AAAA,IAAc,CAAC,UAClC,qBAAqB,MAAM,0BAA0B,MAAM;AAAA,EAC7D;AAEA,QAAM,gBAAgB;AAAA,IAAc,CAAC,UACnC,qBAAqB,CAAC,MAAM,mCAAmC,MAAM;AAAA,EACvE;AAEA,QAAM,OAAOA,OAAM;AAAA,IACjB,MAAM,CAAC,UAAU,UAAU,SAAS,UAAU,SAAS,kBAAkB;AAAA,IACzE,CAAC,SAAS,MAAM;AAAA,EAClB;AAEA,QAAM,mBAAmB;AAAA,IACvB,MAAM,GAAG,qBAAqB,gBAAgB;AAAA,IAC9C,CAAC,kBAAkB;AAAA,EACrB;AACA,QAAM,sBAAsB,uBAAuB,aAAa;AAChE,SACE;AAAA,IAAC;AAAA;AAAA,MACC,cAAY;AAAA,MACZ,MAAK;AAAA,MACL,YAAW;AAAA,MACX;AAAA,MACA,OAAO,EAAE,QAAQ,GAAG,cAAc;AAAA,MAEjC,wBAAc,IAAI,CAAC,eAAe;AACjC,cAAM,OAAO,SAAS,WAAW;AACjC,cAAM,EAAE,UAAU,UAAU,kBAAkB,IAAI;AAClD,cAAM,mBAAmB,oBAAoB,IAAI;AACjD,cAAM,mBAAmB,cAAc,EAAE,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,cAAc,CAAC;AACtG,cAAM,WAAW;AAAA,UACf;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,GAAG;AAAA,UACH;AAAA,QACF;AACA,eACE;AAAA,UAAC;AAAA;AAAA,YAEC,OAAO;AAAA,cACL,UAAU;AAAA,cACV,KAAK;AAAA,cACL,MAAM;AAAA,cACN,OAAO;AAAA,cACP,QAAQ,GAAG,WAAW;AAAA,cACtB,WAAW,cAAc,WAAW;AAAA,YACtC;AAAA,YAEA,8BAAC,SAAI,KAAK,WAAW,YACnB,8BAAC,gBAAwC,GAAG,YAAzB,iBAAiB,EAAkB,GACxD;AAAA;AAAA,UAZK,WAAW;AAAA,QAalB;AAAA,MAEJ,CAAC;AAAA;AAAA,EACH;AAEJ,CAAC;AAEM,MAAM,6BAA6B,6BAA6B,eAAe;AACtF,IAAO,gBAAQ;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable indent */\nimport React, { useMemo } from 'react';\nimport { Grid } from '@elliemae/ds-grid';\nimport { styled } from '@elliemae/ds-system';\nimport { usePropsStore } from '../../../../config/useStore/index.js';\nimport { type DSShuttleV2T } from '../../../../react-desc-prop-types.js';\nimport { DSShuttleV2Name, DSShuttleV2Slots } from '../../../../config/DSShuttleV2Definitions.js';\nimport { ItemSortable } from '../../../Item/Item.js';\nimport { withConditionalDnDRowContext } from '../../../HoC/withConditionalDnDRowContext.js';\nimport { useGetDatumHydratables } from './useGetDatumHydratables.js';\nimport { getDatumFlags } from './getDatumFlags.js';\n\nconst StyledItemsWrapper = styled(Grid, { name: DSShuttleV2Name, slot: DSShuttleV2Slots.ITEMS_WRAPPER })`\n position: relative;\n`;\n\nconst ItemListWrapper = React.memo((panelMetaInfo: DSShuttleV2T.PanelMetaInfo) => {\n const { isDestinationPanel } = panelMetaInfo;\n const itemList = usePropsStore((state) =>\n isDestinationPanel ? state.destinationConfiguredData : state.sourceConfiguredData,\n );\n\n const totalSize = usePropsStore((state) => (isDestinationPanel ? state.destinationTotalSize : state.sourceTotalSize));\n\n const virtualItems = usePropsStore((state) =>\n isDestinationPanel ? state.destinationVirtualItems : state.sourceVirtualItems,\n );\n\n const withDragNDrop = usePropsStore((state) =>\n isDestinationPanel ? !state.removeDragAndDropFromDestination : state.addDragAndDropFromSource,\n );\n\n const rows = React.useMemo(\n () => [`repeat(${itemList?.length ? itemList?.length : '0'},min-content)`],\n [itemList.length],\n );\n\n const wrapperAriaLabel = useMemo(\n () => `${isDestinationPanel ? 'destination' : 'source'} panel`,\n [isDestinationPanel],\n );\n const getDatumHydratables = useGetDatumHydratables(panelMetaInfo);\n return (\n <StyledItemsWrapper\n aria-label={wrapperAriaLabel}\n role=\"listbox\"\n alignItems=\"flex-start\"\n rows={rows}\n style={{ height: `${totalSize}px` }}\n >\n {virtualItems?.map((virtualRow) => {\n const item = itemList[virtualRow.index];\n const { original: datum, ...datumInternalMeta } = item;\n const datumHydratables = getDatumHydratables(item);\n const datumRenderFlags = getDatumFlags({ ...datumInternalMeta, ...datumHydratables, ...panelMetaInfo });\n const itemMeta = {\n datum,\n datumHydratables,\n datumInternalMeta,\n datumRenderFlags,\n ...panelMetaInfo,\n withDragNDrop,\n };\n return (\n <div\n key={virtualRow.index}\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: `${virtualRow.size}px`,\n transform: `translateY(${virtualRow.start}px)`,\n }}\n >\n <div ref={virtualRow.measureRef}>\n <ItemSortable key={datumHydratables.id} {...itemMeta} />\n </div>\n </div>\n );\n })}\n </StyledItemsWrapper>\n );\n});\n\nexport const ItemListWrapperWithContext = withConditionalDnDRowContext(ItemListWrapper);\nexport default ItemListWrapperWithContext;\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;AC4ET;AA3Ed,OAAOA,UAAS,eAAe;AAC/B,SAAS,YAAY;AACrB,SAAS,cAAc;AACvB,SAAS,qBAAqB;AAE9B,SAAS,iBAAiB,wBAAwB;AAClD,SAAS,oBAAoB;AAC7B,SAAS,oCAAoC;AAC7C,SAAS,8BAA8B;AACvC,SAAS,qBAAqB;AAE9B,MAAM,qBAAqB,OAAO,MAAM,EAAE,MAAM,iBAAiB,MAAM,iBAAiB,cAAc,CAAC;AAAA;AAAA;AAIvG,MAAM,kBAAkBA,OAAM,KAAK,CAAC,kBAA8C;AAChF,QAAM,EAAE,mBAAmB,IAAI;AAC/B,QAAM,WAAW;AAAA,IAAc,CAAC,UAC9B,qBAAqB,MAAM,4BAA4B,MAAM;AAAA,EAC/D;AAEA,QAAM,YAAY,cAAc,CAAC,UAAW,qBAAqB,MAAM,uBAAuB,MAAM,eAAgB;AAEpH,QAAM,eAAe;AAAA,IAAc,CAAC,UAClC,qBAAqB,MAAM,0BAA0B,MAAM;AAAA,EAC7D;AAEA,QAAM,gBAAgB;AAAA,IAAc,CAAC,UACnC,qBAAqB,CAAC,MAAM,mCAAmC,MAAM;AAAA,EACvE;AAEA,QAAM,OAAOA,OAAM;AAAA,IACjB,MAAM,CAAC,UAAU,UAAU,SAAS,UAAU,SAAS,kBAAkB;AAAA,IACzE,CAAC,SAAS,MAAM;AAAA,EAClB;AAEA,QAAM,mBAAmB;AAAA,IACvB,MAAM,GAAG,qBAAqB,gBAAgB;AAAA,IAC9C,CAAC,kBAAkB;AAAA,EACrB;AACA,QAAM,sBAAsB,uBAAuB,aAAa;AAChE,SACE;AAAA,IAAC;AAAA;AAAA,MACC,cAAY;AAAA,MACZ,MAAK;AAAA,MACL,YAAW;AAAA,MACX;AAAA,MACA,OAAO,EAAE,QAAQ,GAAG,cAAc;AAAA,MAEjC,wBAAc,IAAI,CAAC,eAAe;AACjC,cAAM,OAAO,SAAS,WAAW,KAAK;AACtC,cAAM,EAAE,UAAU,OAAO,GAAG,kBAAkB,IAAI;AAClD,cAAM,mBAAmB,oBAAoB,IAAI;AACjD,cAAM,mBAAmB,cAAc,EAAE,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,cAAc,CAAC;AACtG,cAAM,WAAW;AAAA,UACf;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,GAAG;AAAA,UACH;AAAA,QACF;AACA,eACE;AAAA,UAAC;AAAA;AAAA,YAEC,OAAO;AAAA,cACL,UAAU;AAAA,cACV,KAAK;AAAA,cACL,MAAM;AAAA,cACN,OAAO;AAAA,cACP,QAAQ,GAAG,WAAW;AAAA,cACtB,WAAW,cAAc,WAAW;AAAA,YACtC;AAAA,YAEA,8BAAC,SAAI,KAAK,WAAW,YACnB,8BAAC,gBAAwC,GAAG,YAAzB,iBAAiB,EAAkB,GACxD;AAAA;AAAA,UAZK,WAAW;AAAA,QAalB;AAAA,MAEJ,CAAC;AAAA;AAAA,EACH;AAEJ,CAAC;AAEM,MAAM,6BAA6B,6BAA6B,eAAe;AACtF,IAAO,gBAAQ;",
6
6
  "names": ["React"]
7
7
  }
@@ -1,6 +1,6 @@
1
1
  import * as React from "react";
2
2
  import React2 from "react";
3
- import { usePropsStore } from "../../../../config/useStore";
3
+ import { usePropsStore } from "../../../../config/useStore/index.js";
4
4
  const useGetDatumHydratables = (panelMetaInfo) => {
5
5
  const getLabel = usePropsStore((state) => state.getLabel);
6
6
  const getSubtitle = usePropsStore((state) => state.getSubtitle);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../../scripts/build/transpile/react-shim.js", "../../../../../../src/parts/Panel/middle/ItemListWrapper/useGetDatumHydratables.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport { usePropsStore } from '../../../../config/useStore';\nimport { type DSShuttleV2T } from '../../../../react-desc-prop-types';\n\nexport const useGetDatumHydratables = (panelMetaInfo: DSShuttleV2T.PanelMetaInfo) => {\n const getLabel = usePropsStore((state) => state.getLabel);\n const getSubtitle = usePropsStore((state) => state.getSubtitle);\n const getIcon = usePropsStore((state) => state.getIcon);\n const getCustomRenderer = usePropsStore((state) => state.getCustomRenderer);\n const getPreventDrilldown = usePropsStore((state) => state.getPreventDrilldown);\n\n const getDatumHydratables = React.useCallback(\n (item: DSShuttleV2T.ConfiguredDatum) => {\n const { original, ...datumMeta } = item;\n\n return {\n id: datumMeta.hydratedId,\n preventMove: datumMeta.hydratedPreventMove,\n label: getLabel(original, { datumMeta, panelMetaInfo }),\n ...(getSubtitle !== undefined ? { subtitle: getSubtitle(original, { datumMeta, panelMetaInfo }) } : {}),\n ...(getIcon !== undefined ? { Icon: getIcon(original, { datumMeta, panelMetaInfo }) } : {}),\n ...(getCustomRenderer !== undefined\n ? { CustomRenderer: getCustomRenderer(original, { datumMeta, panelMetaInfo }) }\n : {}),\n ...(getPreventDrilldown !== undefined\n ? { preventDrilldown: getPreventDrilldown(original, { datumMeta, panelMetaInfo }) }\n : {}),\n };\n },\n [getCustomRenderer, getIcon, getLabel, getPreventDrilldown, getSubtitle, panelMetaInfo],\n );\n return getDatumHydratables;\n};\n"],
5
- "mappings": "AAAA,YAAY,WAAW;ACAvB,OAAOA,YAAW;AAClB,SAAS,qBAAqB;AAGvB,MAAM,yBAAyB,CAAC,kBAA8C;AACnF,QAAM,WAAW,cAAc,CAAC,UAAU,MAAM,QAAQ;AACxD,QAAM,cAAc,cAAc,CAAC,UAAU,MAAM,WAAW;AAC9D,QAAM,UAAU,cAAc,CAAC,UAAU,MAAM,OAAO;AACtD,QAAM,oBAAoB,cAAc,CAAC,UAAU,MAAM,iBAAiB;AAC1E,QAAM,sBAAsB,cAAc,CAAC,UAAU,MAAM,mBAAmB;AAE9E,QAAM,sBAAsBA,OAAM;AAAA,IAChC,CAAC,SAAuC;AACtC,YAAM,EAAE,aAAa,UAAU,IAAI;AAEnC,aAAO;AAAA,QACL,IAAI,UAAU;AAAA,QACd,aAAa,UAAU;AAAA,QACvB,OAAO,SAAS,UAAU,EAAE,WAAW,cAAc,CAAC;AAAA,QACtD,GAAI,gBAAgB,SAAY,EAAE,UAAU,YAAY,UAAU,EAAE,WAAW,cAAc,CAAC,EAAE,IAAI,CAAC;AAAA,QACrG,GAAI,YAAY,SAAY,EAAE,MAAM,QAAQ,UAAU,EAAE,WAAW,cAAc,CAAC,EAAE,IAAI,CAAC;AAAA,QACzF,GAAI,sBAAsB,SACtB,EAAE,gBAAgB,kBAAkB,UAAU,EAAE,WAAW,cAAc,CAAC,EAAE,IAC5E,CAAC;AAAA,QACL,GAAI,wBAAwB,SACxB,EAAE,kBAAkB,oBAAoB,UAAU,EAAE,WAAW,cAAc,CAAC,EAAE,IAChF,CAAC;AAAA,MACP;AAAA,IACF;AAAA,IACA,CAAC,mBAAmB,SAAS,UAAU,qBAAqB,aAAa,aAAa;AAAA,EACxF;AACA,SAAO;AACT;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport { usePropsStore } from '../../../../config/useStore/index.js';\nimport { type DSShuttleV2T } from '../../../../react-desc-prop-types.js';\n\nexport const useGetDatumHydratables = (panelMetaInfo: DSShuttleV2T.PanelMetaInfo) => {\n const getLabel = usePropsStore((state) => state.getLabel);\n const getSubtitle = usePropsStore((state) => state.getSubtitle);\n const getIcon = usePropsStore((state) => state.getIcon);\n const getCustomRenderer = usePropsStore((state) => state.getCustomRenderer);\n const getPreventDrilldown = usePropsStore((state) => state.getPreventDrilldown);\n\n const getDatumHydratables = React.useCallback(\n (item: DSShuttleV2T.ConfiguredDatum) => {\n const { original, ...datumMeta } = item;\n\n return {\n id: datumMeta.hydratedId,\n preventMove: datumMeta.hydratedPreventMove,\n label: getLabel(original, { datumMeta, panelMetaInfo }),\n ...(getSubtitle !== undefined ? { subtitle: getSubtitle(original, { datumMeta, panelMetaInfo }) } : {}),\n ...(getIcon !== undefined ? { Icon: getIcon(original, { datumMeta, panelMetaInfo }) } : {}),\n ...(getCustomRenderer !== undefined\n ? { CustomRenderer: getCustomRenderer(original, { datumMeta, panelMetaInfo }) }\n : {}),\n ...(getPreventDrilldown !== undefined\n ? { preventDrilldown: getPreventDrilldown(original, { datumMeta, panelMetaInfo }) }\n : {}),\n };\n },\n [getCustomRenderer, getIcon, getLabel, getPreventDrilldown, getSubtitle, panelMetaInfo],\n );\n return getDatumHydratables;\n};\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACAvB,OAAOA,YAAW;AAClB,SAAS,qBAAqB;AAGvB,MAAM,yBAAyB,CAAC,kBAA8C;AACnF,QAAM,WAAW,cAAc,CAAC,UAAU,MAAM,QAAQ;AACxD,QAAM,cAAc,cAAc,CAAC,UAAU,MAAM,WAAW;AAC9D,QAAM,UAAU,cAAc,CAAC,UAAU,MAAM,OAAO;AACtD,QAAM,oBAAoB,cAAc,CAAC,UAAU,MAAM,iBAAiB;AAC1E,QAAM,sBAAsB,cAAc,CAAC,UAAU,MAAM,mBAAmB;AAE9E,QAAM,sBAAsBA,OAAM;AAAA,IAChC,CAAC,SAAuC;AACtC,YAAM,EAAE,UAAU,GAAG,UAAU,IAAI;AAEnC,aAAO;AAAA,QACL,IAAI,UAAU;AAAA,QACd,aAAa,UAAU;AAAA,QACvB,OAAO,SAAS,UAAU,EAAE,WAAW,cAAc,CAAC;AAAA,QACtD,GAAI,gBAAgB,SAAY,EAAE,UAAU,YAAY,UAAU,EAAE,WAAW,cAAc,CAAC,EAAE,IAAI,CAAC;AAAA,QACrG,GAAI,YAAY,SAAY,EAAE,MAAM,QAAQ,UAAU,EAAE,WAAW,cAAc,CAAC,EAAE,IAAI,CAAC;AAAA,QACzF,GAAI,sBAAsB,SACtB,EAAE,gBAAgB,kBAAkB,UAAU,EAAE,WAAW,cAAc,CAAC,EAAE,IAC5E,CAAC;AAAA,QACL,GAAI,wBAAwB,SACxB,EAAE,kBAAkB,oBAAoB,UAAU,EAAE,WAAW,cAAc,CAAC,EAAE,IAChF,CAAC;AAAA,MACP;AAAA,IACF;AAAA,IACA,CAAC,mBAAmB,SAAS,UAAU,qBAAqB,aAAa,aAAa;AAAA,EACxF;AACA,SAAO;AACT;",
6
6
  "names": ["React"]
7
7
  }
@@ -3,7 +3,7 @@ import { jsx } from "react/jsx-runtime";
3
3
  import { styled } from "@elliemae/ds-system";
4
4
  import { Grid } from "@elliemae/ds-grid";
5
5
  import { DSCircularIndeterminateIndicator } from "@elliemae/ds-circular-progress-indicator";
6
- import { DSShuttleV2Name, DSShuttleV2Slots } from "../../../config/DSShuttleV2Definitions";
6
+ import { DSShuttleV2Name, DSShuttleV2Slots } from "../../../config/DSShuttleV2Definitions.js";
7
7
  const StyledLoadingListWrapper = styled(Grid, { name: DSShuttleV2Name, slot: DSShuttleV2Slots.LOADING_LIST_WRAPPER })`
8
8
  color: neutral-500;
9
9
  `;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
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", "/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable no-unused-vars */\nimport React from 'react';\nimport { styled } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { DSCircularIndeterminateIndicator } from '@elliemae/ds-circular-progress-indicator';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types';\nimport { DSShuttleV2Name, DSShuttleV2Slots } from '../../../config/DSShuttleV2Definitions';\n\nconst StyledLoadingListWrapper = styled(Grid, { name: DSShuttleV2Name, slot: DSShuttleV2Slots.LOADING_LIST_WRAPPER })`\n color: neutral-500;\n`;\nexport const LoadingItems = (panelMetaInfo: DSShuttleV2T.PanelMetaInfo) => (\n <StyledLoadingListWrapper alignItems=\"center\" justifyContent=\"center\">\n <DSCircularIndeterminateIndicator size=\"xl\" text=\"Loading...\" />\n </StyledLoadingListWrapper>\n);\n"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable no-unused-vars */\nimport React from 'react';\nimport { styled } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { DSCircularIndeterminateIndicator } from '@elliemae/ds-circular-progress-indicator';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types.js';\nimport { DSShuttleV2Name, DSShuttleV2Slots } from '../../../config/DSShuttleV2Definitions.js';\n\nconst StyledLoadingListWrapper = styled(Grid, { name: DSShuttleV2Name, slot: DSShuttleV2Slots.LOADING_LIST_WRAPPER })`\n color: neutral-500;\n`;\nexport const LoadingItems = (panelMetaInfo: DSShuttleV2T.PanelMetaInfo) => (\n <StyledLoadingListWrapper alignItems=\"center\" justifyContent=\"center\">\n <DSCircularIndeterminateIndicator size=\"xl\" text=\"Loading...\" />\n </StyledLoadingListWrapper>\n);\n"],
5
5
  "mappings": "AAAA,YAAY,WAAW;ACcnB;AAXJ,SAAS,cAAc;AACvB,SAAS,YAAY;AACrB,SAAS,wCAAwC;AAEjD,SAAS,iBAAiB,wBAAwB;AAElD,MAAM,2BAA2B,OAAO,MAAM,EAAE,MAAM,iBAAiB,MAAM,iBAAiB,qBAAqB,CAAC;AAAA;AAAA;AAG7G,MAAM,eAAe,CAAC,kBAC3B,oBAAC,4BAAyB,YAAW,UAAS,gBAAe,UAC3D,8BAAC,oCAAiC,MAAK,MAAK,MAAK,cAAa,GAChE;",
6
6
  "names": []
7
7
  }
@@ -5,11 +5,11 @@ import { styled } from "@elliemae/ds-system";
5
5
  import { Grid } from "@elliemae/ds-grid";
6
6
  import { DSButtonV2 } from "@elliemae/ds-button-v2";
7
7
  import { ArrowShortRight, CloseMedium } from "@elliemae/ds-icons";
8
- import { REGIONS_FOCUSES } from "../../../constants";
9
- import { useHandleMoveSelection } from "../../../config/itemMovementHelpers";
10
- import { useInternalStore } from "../../../config/useStore";
11
- import { useFocusTracker } from "../../../config/useFocusTracker";
12
- import { DSShuttleV2Name, DSShuttleV2Slots } from "../../../config/DSShuttleV2Definitions";
8
+ import { REGIONS_FOCUSES } from "../../../constants/index.js";
9
+ import { useHandleMoveSelection } from "../../../config/itemMovementHelpers.js";
10
+ import { useInternalStore } from "../../../config/useStore/index.js";
11
+ import { useFocusTracker } from "../../../config/useFocusTracker/index.js";
12
+ import { DSShuttleV2Name, DSShuttleV2Slots } from "../../../config/DSShuttleV2Definitions.js";
13
13
  const StyledMoveMultipleWrapper = styled(Grid, { name: DSShuttleV2Name, slot: DSShuttleV2Slots.MOVE_MULTIPLE_WRAPPER })`
14
14
  position: absolute;
15
15
  background-color: neutral-000;
@@ -78,6 +78,17 @@ const MultipleSelectionAction = React2.memo((panelMeta) => {
78
78
  },
79
79
  [currRegion, setZustandRef]
80
80
  );
81
+ const handleMoveAllKeyDown = React2.useCallback(
82
+ (e) => {
83
+ const { key } = e;
84
+ if (["ArrowLeft", "ArrowRight"].includes(key)) {
85
+ trackFocusItemReset();
86
+ trackFocusActionReset();
87
+ trackFocusRegionPanel(isDestinationPanel);
88
+ }
89
+ },
90
+ [trackFocusItemReset, trackFocusActionReset, trackFocusRegionPanel, isDestinationPanel]
91
+ );
81
92
  return /* @__PURE__ */ jsx(
82
93
  StyledMoveMultipleWrapper,
83
94
  {
@@ -92,6 +103,7 @@ const MultipleSelectionAction = React2.memo((panelMeta) => {
92
103
  buttonType: "icon",
93
104
  onClick: handleMoveAllAction,
94
105
  onFocus: handleMoveAllBtnFocus,
106
+ onKeyDown: handleMoveAllKeyDown,
95
107
  innerRef: innerRefHandlerMoveAll,
96
108
  children: isDestinationPanel ? /* @__PURE__ */ jsx(StyledCloseMediumIcon, { width: "1.538rem", height: "1.538rem" }) : /* @__PURE__ */ jsx(StyledArrowShortRightIcon, { width: "1.538", height: "1.538rem" })
97
109
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
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-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { DSButtonV2, type DSButtonT } from '@elliemae/ds-button-v2';\nimport { ArrowShortRight, CloseMedium } from '@elliemae/ds-icons';\nimport { REGIONS_FOCUSES } from '../../../constants';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types';\nimport { useHandleMoveSelection } from '../../../config/itemMovementHelpers';\nimport { useInternalStore } from '../../../config/useStore';\nimport { useFocusTracker } from '../../../config/useFocusTracker';\nimport { DSShuttleV2Name, DSShuttleV2Slots } from '../../../config/DSShuttleV2Definitions';\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 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 return (\n <StyledMoveMultipleWrapper\n boxShadow=\"xs\"\n alignItems=\"center\"\n justifyContent=\"center\"\n cols={gridFullFraction}\n rows={gridFullFraction}\n >\n <StyledButton\n buttonType=\"icon\"\n onClick={handleMoveAllAction}\n onFocus={handleMoveAllBtnFocus}\n innerRef={innerRefHandlerMoveAll}\n >\n {isDestinationPanel ? (\n <StyledCloseMediumIcon width=\"1.538rem\" height=\"1.538rem\" />\n ) : (\n <StyledArrowShortRightIcon width=\"1.538\" height=\"1.538rem\" />\n )}\n </StyledButton>\n </StyledMoveMultipleWrapper>\n );\n});\n"],
5
- "mappings": "AAAA,YAAY,WAAW;ACoGb;AApGV,OAAOA,YAAW;AAClB,SAAS,cAAc;AACvB,SAAS,YAAY;AACrB,SAAS,kBAAkC;AAC3C,SAAS,iBAAiB,mBAAmB;AAC7C,SAAS,uBAAuB;AAEhC,SAAS,8BAA8B;AACvC,SAAS,wBAAwB;AACjC,SAAS,uBAAuB;AAChC,SAAS,iBAAiB,wBAAwB;AAElD,MAAM,4BAA4B,OAAO,MAAM,EAAE,MAAM,iBAAiB,MAAM,iBAAiB,sBAAsB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAkBtH,MAAM,eAAe,OAAO,YAAY;AAAA,EACtC,MAAM;AAAA,EACN,MAAM,iBAAiB;AACzB,CAAC;AAAA;AAAA;AAAA;AAID,MAAM,wBAAwB,OAAO,aAAa;AAAA,EAChD,MAAM;AAAA,EACN,MAAM,iBAAiB;AACzB,CAAC;AAAA;AAAA;AAAA;AAAA;AAKD,MAAM,4BAA4B,OAAO,iBAAiB;AAAA,EACxD,MAAM;AAAA,EACN,MAAM,iBAAiB;AACzB,CAAC;AAAA;AAAA;AAAA;AAAA;AAKD,MAAM,mBAAmB,CAAC,KAAK;AAExB,MAAM,0BAA0BA,OAAM,KAAK,CAAC,cAA0C;AAC3F,QAAM,EAAE,mBAAmB,IAAI;AAC/B,QAAM,EAAE,cAAc,IAAI,uBAAuB,SAAS;AAC1D,QAAM,EAAE,uBAAuB,mCAAmC,qBAAqB,sBAAsB,IAC3G,gBAAgB;AAClB,QAAM,sBAAsBA,OAAM;AAAA,IAChC,CAAC,UAAU;AACT,oBAAc,KAAK;AACnB,0BAAoB;AACpB,4BAAsB;AACtB,4BAAsB,kBAAkB;AAAA,IAC1C;AAAA,IACA,CAAC,oBAAoB,eAAe,uBAAuB,qBAAqB,qBAAqB;AAAA,EACvG;AACA,QAAM,wBAAoEA,OAAM,YAAY,MAAM;AAChG,wBAAoB;AACpB,0BAAsB;AACtB,sCAAkC,kBAAkB;AAAA,EACtD,GAAG,CAAC,oBAAoB,uBAAuB,qBAAqB,iCAAiC,CAAC;AACtG,QAAM,gBAAgB,iBAAiB,CAAC,UAAU,MAAM,aAAa;AACrE,QAAM,aAAa,qBACf,gBAAgB,kCAChB,gBAAgB;AACpB,QAAM,yBAAyBA,OAAM;AAAA,IACnC,CAAC,SAAmC;AAClC,oBAAc,CAAC,YAAY,IAAI,EAAE,GAAG,IAAI;AAAA,IAC1C;AAAA,IACA,CAAC,YAAY,aAAa;AAAA,EAC5B;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAU;AAAA,MACV,YAAW;AAAA,MACX,gBAAe;AAAA,MACf,MAAM;AAAA,MACN,MAAM;AAAA,MAEN;AAAA,QAAC;AAAA;AAAA,UACC,YAAW;AAAA,UACX,SAAS;AAAA,UACT,SAAS;AAAA,UACT,UAAU;AAAA,UAET,+BACC,oBAAC,yBAAsB,OAAM,YAAW,QAAO,YAAW,IAE1D,oBAAC,6BAA0B,OAAM,SAAQ,QAAO,YAAW;AAAA;AAAA,MAE/D;AAAA;AAAA,EACF;AAEJ,CAAC;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport { styled } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { DSButtonV2, type DSButtonT } from '@elliemae/ds-button-v2';\nimport { ArrowShortRight, CloseMedium } from '@elliemae/ds-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 } 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 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 return (\n <StyledMoveMultipleWrapper\n boxShadow=\"xs\"\n alignItems=\"center\"\n justifyContent=\"center\"\n cols={gridFullFraction}\n rows={gridFullFraction}\n >\n <StyledButton\n buttonType=\"icon\"\n onClick={handleMoveAllAction}\n onFocus={handleMoveAllBtnFocus}\n onKeyDown={handleMoveAllKeyDown}\n innerRef={innerRefHandlerMoveAll}\n >\n {isDestinationPanel ? (\n <StyledCloseMediumIcon width=\"1.538rem\" height=\"1.538rem\" />\n ) : (\n <StyledArrowShortRightIcon width=\"1.538\" height=\"1.538rem\" />\n )}\n </StyledButton>\n </StyledMoveMultipleWrapper>\n );\n});\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACiHb;AAjHV,OAAOA,YAAW;AAClB,SAAS,cAAc;AACvB,SAAS,YAAY;AACrB,SAAS,kBAAkC;AAC3C,SAAS,iBAAiB,mBAAmB;AAC7C,SAAS,uBAAuB;AAEhC,SAAS,8BAA8B;AACvC,SAAS,wBAAwB;AACjC,SAAS,uBAAuB;AAChC,SAAS,iBAAiB,wBAAwB;AAElD,MAAM,4BAA4B,OAAO,MAAM,EAAE,MAAM,iBAAiB,MAAM,iBAAiB,sBAAsB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAkBtH,MAAM,eAAe,OAAO,YAAY;AAAA,EACtC,MAAM;AAAA,EACN,MAAM,iBAAiB;AACzB,CAAC;AAAA;AAAA;AAAA;AAID,MAAM,wBAAwB,OAAO,aAAa;AAAA,EAChD,MAAM;AAAA,EACN,MAAM,iBAAiB;AACzB,CAAC;AAAA;AAAA;AAAA;AAAA;AAKD,MAAM,4BAA4B,OAAO,iBAAiB;AAAA,EACxD,MAAM;AAAA,EACN,MAAM,iBAAiB;AACzB,CAAC;AAAA;AAAA;AAAA;AAAA;AAKD,MAAM,mBAAmB,CAAC,KAAK;AAExB,MAAM,0BAA0BA,OAAM,KAAK,CAAC,cAA0C;AAC3F,QAAM,EAAE,mBAAmB,IAAI;AAC/B,QAAM,EAAE,cAAc,IAAI,uBAAuB,SAAS;AAC1D,QAAM,EAAE,uBAAuB,mCAAmC,qBAAqB,sBAAsB,IAC3G,gBAAgB;AAClB,QAAM,sBAAsBA,OAAM;AAAA,IAChC,CAAC,UAAU;AACT,oBAAc,KAAK;AACnB,0BAAoB;AACpB,4BAAsB;AACtB,4BAAsB,kBAAkB;AAAA,IAC1C;AAAA,IACA,CAAC,oBAAoB,eAAe,uBAAuB,qBAAqB,qBAAqB;AAAA,EACvG;AACA,QAAM,wBAAoEA,OAAM,YAAY,MAAM;AAChG,wBAAoB;AACpB,0BAAsB;AACtB,sCAAkC,kBAAkB;AAAA,EACtD,GAAG,CAAC,oBAAoB,uBAAuB,qBAAqB,iCAAiC,CAAC;AACtG,QAAM,gBAAgB,iBAAiB,CAAC,UAAU,MAAM,aAAa;AACrE,QAAM,aAAa,qBACf,gBAAgB,kCAChB,gBAAgB;AACpB,QAAM,yBAAyBA,OAAM;AAAA,IACnC,CAAC,SAAmC;AAClC,oBAAc,CAAC,YAAY,IAAI,EAAE,GAAG,IAAI;AAAA,IAC1C;AAAA,IACA,CAAC,YAAY,aAAa;AAAA,EAC5B;AAEA,QAAM,uBAAuBA,OAAM;AAAA,IACjC,CAAC,MAAM;AACL,YAAM,EAAE,IAAI,IAAI;AAChB,UAAI,CAAC,aAAa,YAAY,EAAE,SAAS,GAAG,GAAG;AAC7C,4BAAoB;AACpB,8BAAsB;AACtB,8BAAsB,kBAAkB;AAAA,MAC1C;AAAA,IACF;AAAA,IACA,CAAC,qBAAqB,uBAAuB,uBAAuB,kBAAkB;AAAA,EACxF;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAU;AAAA,MACV,YAAW;AAAA,MACX,gBAAe;AAAA,MACf,MAAM;AAAA,MACN,MAAM;AAAA,MAEN;AAAA,QAAC;AAAA;AAAA,UACC,YAAW;AAAA,UACX,SAAS;AAAA,UACT,SAAS;AAAA,UACT,WAAW;AAAA,UACX,UAAU;AAAA,UAET,+BACC,oBAAC,yBAAsB,OAAM,YAAW,QAAO,YAAW,IAE1D,oBAAC,6BAA0B,OAAM,SAAQ,QAAO,YAAW;AAAA;AAAA,MAE/D;AAAA;AAAA,EACF;AAEJ,CAAC;",
6
6
  "names": ["React"]
7
7
  }
@@ -4,14 +4,14 @@ import React2 from "react";
4
4
  import { styled } from "@elliemae/ds-system";
5
5
  import { Grid } from "@elliemae/ds-grid";
6
6
  import { useOnSpecificFocus } from "@elliemae/ds-utilities";
7
- import { usePropsStore, useInternalStore } from "../../../config/useStore";
8
- import { ItemListWrapperWithContext } from "./ItemListWrapper/Index";
9
- import { EmptyItems } from "./EmptyItems";
10
- import { useFocusTracker } from "../../../config/useFocusTracker";
11
- import { LoadingItems } from "./LoadingItems";
12
- import { MultipleSelectionAction } from "./MultipleSelectionAction";
13
- import { REGIONS_FOCUSES } from "../../../constants";
14
- import { DSShuttleV2Name, DSShuttleV2Slots } from "../../../config/DSShuttleV2Definitions";
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
15
  const useInnerRefHandlers = (isDestinationPanel) => {
16
16
  const setZustandRef = useInternalStore((state) => state.setZustandRef);
17
17
  const currRegion = isDestinationPanel ? REGIONS_FOCUSES.DESTINATION_PANEL : REGIONS_FOCUSES.SOURCE_PANEL;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
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 from 'react';\nimport { styled } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { useOnSpecificFocus } from '@elliemae/ds-utilities';\nimport { usePropsStore, useInternalStore } from '../../../config/useStore';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types';\nimport { ItemListWrapperWithContext } from './ItemListWrapper/Index';\nimport { EmptyItems } from './EmptyItems';\nimport { useFocusTracker } from '../../../config/useFocusTracker';\nimport { LoadingItems } from './LoadingItems';\nimport { MultipleSelectionAction } from './MultipleSelectionAction';\nimport { REGIONS_FOCUSES } from '../../../constants';\nimport { DSShuttleV2Name, DSShuttleV2Slots } from '../../../config/DSShuttleV2Definitions';\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) => {\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\n :focus,\n :focus-visible {\n outline: 2px solid brand-700;\n }\n }\n`;\nconst StyledMidScroller = styled(Grid, { name: DSShuttleV2Name, slot: DSShuttleV2Slots.LIST_WRAPPER_MID_SCROLLER })`\n overflow: auto;\n max-height: 38.462rem;\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 virtualRef = usePropsStore((state) =>\n isDestinationPanel ? state.destinationVirtualRef : state.sourceVirtualRef,\n );\n const scrollToIndex = usePropsStore((state) =>\n isDestinationPanel ? state.destinationScrollToIndex : state.sourceScrollToIndex,\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 scrollToIndex(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 scrollToIndex(itemsLength - 1);\n }\n }\n }\n },\n [\n getIsDragAndDropHappening,\n trackFocusRegionPanelItem,\n isDestinationPanel,\n trackFocusActionParent,\n scrollToIndex,\n trackFocusItemFirst,\n panelMetaInfo,\n withLoadMore,\n trackFocusLoadMoreBtnDestination,\n trackFocusLoadMoreBtn,\n trackFocusItemLast,\n itemsLength,\n ],\n );\n\n return (\n <StyledListWrapperMid\n onFocus={onPanelFocus}\n onKeyDown={onPanelKeyDown}\n tabIndex={0}\n ref={innerRefHandlerParentItem}\n >\n <StyledMidScroller ref={virtualRef}>\n {isLoading ? <LoadingItems {...panelMetaInfo} /> : null}\n {showEmptyMessage ? <EmptyItems {...panelMetaInfo} /> : null}\n {showItems ? <ItemListWrapperWithContext {...panelMetaInfo} /> : null}\n </StyledMidScroller>\n {hasMultipleSelection ? <MultipleSelectionAction {...panelMetaInfo} /> : null}\n </StyledListWrapperMid>\n );\n});\n"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport { styled } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { useOnSpecificFocus } from '@elliemae/ds-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) => {\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\n :focus,\n :focus-visible {\n outline: 2px solid brand-700;\n }\n }\n`;\nconst StyledMidScroller = styled(Grid, { name: DSShuttleV2Name, slot: DSShuttleV2Slots.LIST_WRAPPER_MID_SCROLLER })`\n overflow: auto;\n max-height: 38.462rem;\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 virtualRef = usePropsStore((state) =>\n isDestinationPanel ? state.destinationVirtualRef : state.sourceVirtualRef,\n );\n const scrollToIndex = usePropsStore((state) =>\n isDestinationPanel ? state.destinationScrollToIndex : state.sourceScrollToIndex,\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 scrollToIndex(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 scrollToIndex(itemsLength - 1);\n }\n }\n }\n },\n [\n getIsDragAndDropHappening,\n trackFocusRegionPanelItem,\n isDestinationPanel,\n trackFocusActionParent,\n scrollToIndex,\n trackFocusItemFirst,\n panelMetaInfo,\n withLoadMore,\n trackFocusLoadMoreBtnDestination,\n trackFocusLoadMoreBtn,\n trackFocusItemLast,\n itemsLength,\n ],\n );\n\n return (\n <StyledListWrapperMid\n onFocus={onPanelFocus}\n onKeyDown={onPanelKeyDown}\n tabIndex={0}\n ref={innerRefHandlerParentItem}\n >\n <StyledMidScroller ref={virtualRef}>\n {isLoading ? <LoadingItems {...panelMetaInfo} /> : null}\n {showEmptyMessage ? <EmptyItems {...panelMetaInfo} /> : null}\n {showItems ? <ItemListWrapperWithContext {...panelMetaInfo} /> : null}\n </StyledMidScroller>\n {hasMultipleSelection ? <MultipleSelectionAction {...panelMetaInfo} /> : null}\n </StyledListWrapperMid>\n );\n});\n"],
5
5
  "mappings": "AAAA,YAAY,WAAW;ACsIjB,SACe,KADf;AAtIN,OAAOA,YAAW;AAClB,SAAS,cAAc;AACvB,SAAS,YAAY;AACrB,SAAS,0BAA0B;AACnC,SAAS,eAAe,wBAAwB;AAEhD,SAAS,kCAAkC;AAC3C,SAAS,kBAAkB;AAC3B,SAAS,uBAAuB;AAChC,SAAS,oBAAoB;AAC7B,SAAS,+BAA+B;AACxC,SAAS,uBAAuB;AAChC,SAAS,iBAAiB,wBAAwB;AAElD,MAAM,sBAAsB,CAAC,uBAAgC;AAC3D,QAAM,gBAAgB,iBAAiB,CAAC,UAAU,MAAM,aAAa;AACrE,QAAM,aAAa,qBAAqB,gBAAgB,oBAAoB,gBAAgB;AAE5F,QAAM,4BAA4BA,OAAM;AAAA,IACtC,CAAC,SAAyB;AACxB,oBAAc,CAAC,YAAY,IAAI,EAAE,GAAG,IAAI;AAAA,IAC1C;AAAA,IACA,CAAC,YAAY,aAAa;AAAA,EAC5B;AACA,SAAOA,OAAM,QAAQ,OAAO,EAAE,0BAA0B,IAAI,CAAC,yBAAyB,CAAC;AACzF;AAEA,MAAM,uBAAuB,OAAO,MAAM,EAAE,MAAM,iBAAiB,MAAM,iBAAiB,iBAAiB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAU5G,MAAM,oBAAoB,OAAO,MAAM,EAAE,MAAM,iBAAiB,MAAM,iBAAiB,0BAA0B,CAAC;AAAA;AAAA;AAAA;AAI3G,MAAM,4BAA4BA,OAAM,KAAK,CAAC,kBAA8C;AACjG,QAAM,EAAE,qBAAqB,OAAO,qBAAqB,IAAI;AAC7D,QAAM,cAAc;AAAA,IAAc,CAAC,UACjC,qBAAqB,MAAM,gBAAgB,SAAS,MAAM,WAAW;AAAA,EACvE;AACA,QAAM,YAAY,cAAc,CAAC,UAAW,qBAAqB,MAAM,uBAAuB,MAAM,eAAgB;AACpH,QAAM,mBAAmB,CAAC,aAAa,gBAAgB;AACvD,QAAM,YAAY,CAAC,aAAa,CAAC;AAEjC,QAAM,aAAa;AAAA,IAAc,CAAC,UAChC,qBAAqB,MAAM,wBAAwB,MAAM;AAAA,EAC3D;AACA,QAAM,gBAAgB;AAAA,IAAc,CAAC,UACnC,qBAAqB,MAAM,2BAA2B,MAAM;AAAA,EAC9D;AAEA,QAAM,4BAA4B,iBAAiB,CAAC,UAAU,MAAM,yBAAyB;AAC7F,QAAM,eAAe;AAAA,IAAc,CAAC,UAClC,qBAAqB,MAAM,0BAA0B,MAAM;AAAA,EAC7D;AACA,QAAM,EAAE,0BAA0B,IAAI,oBAAoB,kBAAkB;AAC5E,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,gBAAgB;AACpB,QAAM,SAASA,OAAM;AAAA,IACnB,OAAO;AAAA,MACL,SAAS,MAAM;AACb,8BAAsB,kBAAkB;AAAA,MAC1C;AAAA,IACF;AAAA,IACA,CAAC,uBAAuB,kBAAkB;AAAA,EAC5C;AACA,QAAM,eAAe,mBAAmB,MAAM;AAE9C,QAAM,iBAAiBA,OAAM;AAAA,IAC3B,CAAC,MAAM;AACL,YAAM,EAAE,IAAI,IAAI;AAEhB,YAAM,yBAAyB,0BAA0B;AACzD,UAAI,wBAAwB;AAC1B,UAAE,eAAe;AACjB;AAAA,MACF;AACA,UAAI,CAAC,QAAQ,OAAO,WAAW,WAAW,EAAE,SAAS,GAAG,GAAG;AACzD,UAAE,eAAe;AACjB,UAAE,gBAAgB;AAClB,kCAA0B,kBAAkB;AAC5C,+BAAuB;AAEvB,YAAI,QAAQ,eAAe,QAAQ,QAAQ;AACzC,wBAAc,CAAC;AACf,8BAAoB,aAAa;AAAA,QACnC;AACA,YAAI,QAAQ,aAAa,QAAQ,OAAO;AACtC,cAAI,cAAc;AAChB,gBAAI;AAAoB,+CAAiC;AAAA;AACpD,oCAAsB;AAAA,UAC7B,OAAO;AACL,+BAAmB,aAAa;AAChC,0BAAc,cAAc,CAAC;AAAA,UAC/B;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,SAAS;AAAA,MACT,WAAW;AAAA,MACX,UAAU;AAAA,MACV,KAAK;AAAA,MAEL;AAAA,6BAAC,qBAAkB,KAAK,YACrB;AAAA,sBAAY,oBAAC,gBAAc,GAAG,eAAe,IAAK;AAAA,UAClD,mBAAmB,oBAAC,cAAY,GAAG,eAAe,IAAK;AAAA,UACvD,YAAY,oBAAC,8BAA4B,GAAG,eAAe,IAAK;AAAA,WACnE;AAAA,QACC,uBAAuB,oBAAC,2BAAyB,GAAG,eAAe,IAAK;AAAA;AAAA;AAAA,EAC3E;AAEJ,CAAC;",
6
6
  "names": ["React"]
7
7
  }
@@ -3,10 +3,10 @@ import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import React2 from "react";
4
4
  import { styled } from "@elliemae/ds-system";
5
5
  import { Grid } from "@elliemae/ds-grid";
6
- import { usePropsStore } from "../../../config/useStore";
7
- import { SelectionHeader } from "./SelectionHeader";
8
- import { PanelFilterSection } from "./PanelFilterSection";
9
- import { DSShuttleV2Name, DSShuttleV2Slots } from "../../../config/DSShuttleV2Definitions";
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
10
  const StyledListWrapperTop = styled(Grid, { name: DSShuttleV2Name, slot: DSShuttleV2Slots.LIST_WRAPPER_TOP })``;
11
11
  const PanelContentTopSection = (panelMetaInfo) => {
12
12
  const { isDestinationPanel = false } = panelMetaInfo;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
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 from 'react';\nimport { styled } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { usePropsStore } from '../../../config/useStore';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types';\nimport { SelectionHeader } from './SelectionHeader';\nimport { PanelFilterSection } from './PanelFilterSection';\nimport { DSShuttleV2Name, DSShuttleV2Slots } from '../../../config/DSShuttleV2Definitions';\n\nconst StyledListWrapperTop = styled(Grid, { name: DSShuttleV2Name, slot: DSShuttleV2Slots.LIST_WRAPPER_TOP })``;\n\nexport const PanelContentTopSection = (panelMetaInfo: DSShuttleV2T.PanelMetaInfo) => {\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 rows={topSectionRows}>\n {isSearchBarOpen ? <PanelFilterSection {...panelMetaInfo} /> : null}\n <SelectionHeader {...panelMetaInfo} />\n </StyledListWrapperTop>\n );\n};\n"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport { styled } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-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 { 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 rows={topSectionRows}>\n {isSearchBarOpen ? <PanelFilterSection {...panelMetaInfo} /> : null}\n <SelectionHeader {...panelMetaInfo} />\n </StyledListWrapperTop>\n );\n};\n"],
5
5
  "mappings": "AAAA,YAAY,WAAW;ACuBnB,SACqB,KADrB;AAvBJ,OAAOA,YAAW;AAClB,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,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,qBAAC,wBAAqB,MAAM,gBACzB;AAAA,sBAAkB,oBAAC,sBAAoB,GAAG,eAAe,IAAK;AAAA,IAC/D,oBAAC,mBAAiB,GAAG,eAAe;AAAA,KACtC;AAEJ;",
6
6
  "names": ["React"]
7
7
  }
@@ -4,8 +4,8 @@ import React2 from "react";
4
4
  import { Grid } from "@elliemae/ds-grid";
5
5
  import { styled } from "@elliemae/ds-system";
6
6
  import { DSInputText } from "@elliemae/ds-form-input-text";
7
- import { usePropsStore } from "../../../config/useStore";
8
- import { DSShuttleV2Name, DSShuttleV2Slots } from "../../../config/DSShuttleV2Definitions";
7
+ import { usePropsStore } from "../../../config/useStore/index.js";
8
+ import { DSShuttleV2Name, DSShuttleV2Slots } from "../../../config/DSShuttleV2Definitions.js";
9
9
  const StyledSearchWrapper = styled(Grid, { name: DSShuttleV2Name, slot: DSShuttleV2Slots.AREA_SEARCH_WRAPPER })`
10
10
  border-bottom: 1px solid neutral-400;
11
11
  border-radius: 0;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
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 from 'react';\nimport { Grid } from '@elliemae/ds-grid';\nimport { styled } from '@elliemae/ds-system';\nimport { DSInputText } from '@elliemae/ds-form-input-text';\nimport { usePropsStore } from '../../../config/useStore';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types';\nimport { DSShuttleV2Name, DSShuttleV2Slots } from '../../../config/DSShuttleV2Definitions';\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 { 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>\n <StyledInputText value={filterValue} onValueChange={handleFilterChange} />\n </StyledSearchWrapper>\n );\n};\n"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport { Grid } from '@elliemae/ds-grid';\nimport { styled } from '@elliemae/ds-system';\nimport { DSInputText } from '@elliemae/ds-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 { 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>\n <StyledInputText value={filterValue} onValueChange={handleFilterChange} />\n </StyledSearchWrapper>\n );\n};\n"],
5
5
  "mappings": "AAAA,YAAY,WAAW;ACmCjB;AAnCN,OAAOA,YAAW;AAClB,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,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,uBACC,8BAAC,mBAAgB,OAAO,aAAa,eAAe,oBAAoB,GAC1E;AAEJ;",
6
6
  "names": ["React"]
7
7
  }
@@ -4,8 +4,8 @@ import React2, { useMemo } from "react";
4
4
  import { styled } from "@elliemae/ds-system";
5
5
  import { DSControlledCheckbox } from "@elliemae/ds-form-checkbox";
6
6
  import { Grid } from "@elliemae/ds-grid";
7
- import { usePropsStore } from "../../../config/useStore";
8
- import { DSShuttleV2Name, DSShuttleV2Slots } from "../../../config/DSShuttleV2Definitions";
7
+ import { usePropsStore } from "../../../config/useStore/index.js";
8
+ import { DSShuttleV2Name, DSShuttleV2Slots } from "../../../config/DSShuttleV2Definitions.js";
9
9
  const StyledSelectionHeaderWrapper = styled(Grid, {
10
10
  name: DSShuttleV2Name,
11
11
  slot: DSShuttleV2Slots.AREA_SELECTION_HEADER
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
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, { useMemo } from 'react';\nimport { styled } from '@elliemae/ds-system';\nimport { DSControlledCheckbox, type DSControlledCheckboxT } from '@elliemae/ds-form-checkbox';\nimport { Grid } from '@elliemae/ds-grid';\nimport { usePropsStore } from '../../../config/useStore';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types';\nimport { DSShuttleV2Name, DSShuttleV2Slots } from '../../../config/DSShuttleV2Definitions';\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 wrapperCols = ['auto', '1fr'];\nexport const SelectionHeader = React.memo(({ isDestinationPanel = false }: DSShuttleV2T.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\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 return (\n <StyledSelectionHeaderWrapper cols={wrapperCols} justifyContent=\"center\" alignItems=\"center\" py=\"7px\" px=\"xxs2\">\n <Grid justifyContent=\"center\" alignItems=\"center\">\n <DSControlledCheckbox\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 disabled={selectionableItems.length === 0}\n />\n </Grid>\n <StyledSelectionHeaderCountLabel>{selectionLength} selected</StyledSelectionHeaderCountLabel>\n </StyledSelectionHeaderWrapper>\n );\n});\n"],
5
- "mappings": "AAAA,YAAY,WAAW;AC2Ef,cAUF,YAVE;AA3ER,OAAOA,UAAS,eAAe;AAC/B,SAAS,cAAc;AACvB,SAAS,4BAAwD;AACjE,SAAS,YAAY;AACrB,SAAS,qBAAqB;AAE9B,SAAS,iBAAiB,wBAAwB;AAElD,MAAM,+BAA+B,OAAO,MAAM;AAAA,EAChD,MAAM;AAAA,EACN,MAAM,iBAAiB;AACzB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAMD,MAAM,kCAAkC,OAAO,OAAO;AAAA,EACpD,MAAM;AAAA,EACN,MAAM,iBAAiB;AACzB,CAAC;AAAA;AAAA;AAAA;AAAA;AAMD,MAAM,cAAc,CAAC,QAAQ,KAAK;AAC3B,MAAM,kBAAkBA,OAAM,KAAK,CAAC,EAAE,qBAAqB,MAAM,MAAkC;AACxG,QAAM,qBAAqB;AAAA,IAAc,CAAC,UACxC,qBAAqB,MAAM,+BAA+B,MAAM;AAAA,EAClE;AACA,QAAM,MAAM;AAAA,IAAc,CAAC,UACzB,qBAAqB,MAAM,8BAA8B,MAAM;AAAA,EACjE;AACA,QAAM,eAAe;AAAA,IACnB,MACE,IACG,MAAM,GAAG,EACT,IAAI,CAAC,MAAM,GAAG,WAAW,EACzB,KAAK,GAAG;AAAA,IACb,CAAC,GAAG;AAAA,EACN;AAEA,QAAM,oBAAoB;AAAA,IAAc,CAAC,UACvC,qBAAqB,MAAM,+BAA+B,MAAM;AAAA,EAClE;AACA,QAAM,kBAAkB;AAAA,IAAc,CAAC,UACrC,qBAAqB,MAAM,8BAA8B,SAAS,MAAM,yBAAyB;AAAA,EACnG;AACA,QAAM,gBAAgBA,OAAM,QAAQ,MAAM;AACxC,QAAI,SAA4B;AAChC,QAAI,kBAAkB;AACpB,UAAI,oBAAoB,mBAAmB;AAAQ,iBAAS;AAAA;AACvD,iBAAS;AAChB,WAAO;AAAA,EACT,GAAG,CAAC,mBAAmB,QAAQ,eAAe,CAAC;AAE/C,QAAM,kBAAkBA,OAAM;AAAA,IAC5B,CAAC,GAAG,UAAU;AACZ,UAAI,kBAAkB,MAAM;AAC1B,0BAAkB,CAAC,GAAG,EAAE,MAAM,CAAC;AAAA,MACjC,OAAO;AACL,cAAM,eAAkE,CAAC;AACzE,2BAAmB,QAAQ,CAAC,mBAAmB;AAC7C,uBAAa,eAAe,cAAc;AAAA,QAC5C,CAAC;AACD,0BAAkB,cAAc,EAAE,MAAM,CAAC;AAAA,MAC3C;AAAA,IACF;AAAA,IACA,CAAC,eAAe,mBAAmB,kBAAkB;AAAA,EACvD;AAEA,SACE,qBAAC,gCAA6B,MAAM,aAAa,gBAAe,UAAS,YAAW,UAAS,IAAG,OAAM,IAAG,QACvG;AAAA,wBAAC,QAAK,gBAAe,UAAS,YAAW,UACvC;AAAA,MAAC;AAAA;AAAA,QACC,SAAS;AAAA,QACT,cAAY,GAAG,kBAAkB,OAAO,aAAa,gBACnD,qBAAqB,gBAAgB;AAAA,QAEvC,UAAU;AAAA,QACV,iBAAe;AAAA,QACf,UAAU,mBAAmB,WAAW;AAAA;AAAA,IAC1C,GACF;AAAA,IACA,qBAAC,mCAAiC;AAAA;AAAA,MAAgB;AAAA,OAAS;AAAA,KAC7D;AAEJ,CAAC;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useMemo } from 'react';\nimport { styled } from '@elliemae/ds-system';\nimport { DSControlledCheckbox, type DSControlledCheckboxT } from '@elliemae/ds-form-checkbox';\nimport { Grid } from '@elliemae/ds-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 wrapperCols = ['auto', '1fr'];\nexport const SelectionHeader = React.memo(({ isDestinationPanel = false }: DSShuttleV2T.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\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 return (\n <StyledSelectionHeaderWrapper cols={wrapperCols} justifyContent=\"center\" alignItems=\"center\" py=\"7px\" px=\"xxs2\">\n <Grid justifyContent=\"center\" alignItems=\"center\">\n <DSControlledCheckbox\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 disabled={selectionableItems.length === 0}\n />\n </Grid>\n <StyledSelectionHeaderCountLabel>{selectionLength} selected</StyledSelectionHeaderCountLabel>\n </StyledSelectionHeaderWrapper>\n );\n});\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;AC2Ef,cAUF,YAVE;AA3ER,OAAOA,UAAS,eAAe;AAC/B,SAAS,cAAc;AACvB,SAAS,4BAAwD;AACjE,SAAS,YAAY;AACrB,SAAS,qBAAqB;AAE9B,SAAS,iBAAiB,wBAAwB;AAElD,MAAM,+BAA+B,OAAO,MAAM;AAAA,EAChD,MAAM;AAAA,EACN,MAAM,iBAAiB;AACzB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAMD,MAAM,kCAAkC,OAAO,OAAO;AAAA,EACpD,MAAM;AAAA,EACN,MAAM,iBAAiB;AACzB,CAAC;AAAA;AAAA;AAAA;AAAA;AAMD,MAAM,cAAc,CAAC,QAAQ,KAAK;AAC3B,MAAM,kBAAkBA,OAAM,KAAK,CAAC,EAAE,qBAAqB,MAAM,MAAkC;AACxG,QAAM,qBAAqB;AAAA,IAAc,CAAC,UACxC,qBAAqB,MAAM,+BAA+B,MAAM;AAAA,EAClE;AACA,QAAM,MAAM;AAAA,IAAc,CAAC,UACzB,qBAAqB,MAAM,8BAA8B,MAAM;AAAA,EACjE;AACA,QAAM,eAAe;AAAA,IACnB,MACE,IACG,MAAM,GAAG,EACT,IAAI,CAAC,MAAM,GAAG,WAAW,EACzB,KAAK,GAAG;AAAA,IACb,CAAC,GAAG;AAAA,EACN;AAEA,QAAM,oBAAoB;AAAA,IAAc,CAAC,UACvC,qBAAqB,MAAM,+BAA+B,MAAM;AAAA,EAClE;AACA,QAAM,kBAAkB;AAAA,IAAc,CAAC,UACrC,qBAAqB,MAAM,8BAA8B,SAAS,MAAM,yBAAyB;AAAA,EACnG;AACA,QAAM,gBAAgBA,OAAM,QAAQ,MAAM;AACxC,QAAI,SAA4B;AAChC,QAAI,kBAAkB;AACpB,UAAI,oBAAoB,mBAAmB;AAAQ,iBAAS;AAAA;AACvD,iBAAS;AAChB,WAAO;AAAA,EACT,GAAG,CAAC,mBAAmB,QAAQ,eAAe,CAAC;AAE/C,QAAM,kBAAkBA,OAAM;AAAA,IAC5B,CAAC,GAAG,UAAU;AACZ,UAAI,kBAAkB,MAAM;AAC1B,0BAAkB,CAAC,GAAG,EAAE,MAAM,CAAC;AAAA,MACjC,OAAO;AACL,cAAM,eAAkE,CAAC;AACzE,2BAAmB,QAAQ,CAAC,mBAAmB;AAC7C,uBAAa,eAAe,UAAU,IAAI;AAAA,QAC5C,CAAC;AACD,0BAAkB,cAAc,EAAE,MAAM,CAAC;AAAA,MAC3C;AAAA,IACF;AAAA,IACA,CAAC,eAAe,mBAAmB,kBAAkB;AAAA,EACvD;AAEA,SACE,qBAAC,gCAA6B,MAAM,aAAa,gBAAe,UAAS,YAAW,UAAS,IAAG,OAAM,IAAG,QACvG;AAAA,wBAAC,QAAK,gBAAe,UAAS,YAAW,UACvC;AAAA,MAAC;AAAA;AAAA,QACC,SAAS;AAAA,QACT,cAAY,GAAG,kBAAkB,OAAO,aAAa,gBACnD,qBAAqB,gBAAgB;AAAA,QAEvC,UAAU;AAAA,QACV,iBAAe;AAAA,QACf,UAAU,mBAAmB,WAAW;AAAA;AAAA,IAC1C,GACF;AAAA,IACA,qBAAC,mCAAiC;AAAA;AAAA,MAAgB;AAAA,OAAS;AAAA,KAC7D;AAEJ,CAAC;",
6
6
  "names": ["React"]
7
7
  }
@@ -3,11 +3,11 @@ import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import React2 from "react";
4
4
  import { styled } from "@elliemae/ds-system";
5
5
  import { Grid } from "@elliemae/ds-grid";
6
- import { Header } from "./Header";
7
- import { PanelContentTopSection } from "./Panel/top/PanelContentTopSection";
8
- import { PanelContentMiddleSection } from "./Panel/middle/PanelContentMiddleSection";
9
- import { PanelContentBottomSection } from "./Panel/bottom/PanelContentBottomSection";
10
- import { DSShuttleV2Name, DSShuttleV2Slots } from "../config/DSShuttleV2Definitions";
6
+ import { Header } from "./Header.js";
7
+ import { PanelContentTopSection } from "./Panel/top/PanelContentTopSection.js";
8
+ import { PanelContentMiddleSection } from "./Panel/middle/PanelContentMiddleSection.js";
9
+ import { PanelContentBottomSection } from "./Panel/bottom/PanelContentBottomSection.js";
10
+ import { DSShuttleV2Name, DSShuttleV2Slots } from "../config/DSShuttleV2Definitions.js";
11
11
  const StyledPanelWrapper = styled(Grid, { name: DSShuttleV2Name, slot: DSShuttleV2Slots.PANEL_WRAPPER })`
12
12
  min-width: 300px;
13
13
  min-height: 264px;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/parts/PanelWrapper.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport { styled } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { type DSShuttleV2T } from '../react-desc-prop-types';\nimport { Header } from './Header';\nimport { PanelContentTopSection } from './Panel/top/PanelContentTopSection';\nimport { PanelContentMiddleSection } from './Panel/middle/PanelContentMiddleSection';\nimport { PanelContentBottomSection } from './Panel/bottom/PanelContentBottomSection';\nimport { DSShuttleV2Name, DSShuttleV2Slots } from '../config/DSShuttleV2Definitions';\n\nconst StyledPanelWrapper = styled(Grid, { name: DSShuttleV2Name, slot: DSShuttleV2Slots.PANEL_WRAPPER })`\n min-width: 300px;\n min-height: 264px;\n`;\nconst StyledListWrapper = styled(Grid, { name: DSShuttleV2Name, slot: DSShuttleV2Slots.LIST_WRAPPER })`\n border: 1px solid neutral-400;\n`;\nconst panelWrapperRows = ['auto', '1fr'];\nconst listWrapperRows = ['auto', '1fr', 'auto'];\n\nexport const PanelWrapper = React.memo((panelMetaInfo: DSShuttleV2T.PanelMetaInfo) => (\n <StyledPanelWrapper rows={panelWrapperRows} gutter=\"xxxs\">\n <Header {...panelMetaInfo} />\n <StyledListWrapper rows={listWrapperRows}>\n <PanelContentTopSection {...panelMetaInfo} />\n <PanelContentMiddleSection {...panelMetaInfo} />\n <PanelContentBottomSection {...panelMetaInfo} />\n </StyledListWrapper>\n </StyledPanelWrapper>\n));\n"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport { styled } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { type DSShuttleV2T } from '../react-desc-prop-types.js';\nimport { Header } from './Header.js';\nimport { PanelContentTopSection } from './Panel/top/PanelContentTopSection.js';\nimport { PanelContentMiddleSection } from './Panel/middle/PanelContentMiddleSection.js';\nimport { PanelContentBottomSection } from './Panel/bottom/PanelContentBottomSection.js';\nimport { DSShuttleV2Name, DSShuttleV2Slots } from '../config/DSShuttleV2Definitions.js';\n\nconst StyledPanelWrapper = styled(Grid, { name: DSShuttleV2Name, slot: DSShuttleV2Slots.PANEL_WRAPPER })`\n min-width: 300px;\n min-height: 264px;\n`;\nconst StyledListWrapper = styled(Grid, { name: DSShuttleV2Name, slot: DSShuttleV2Slots.LIST_WRAPPER })`\n border: 1px solid neutral-400;\n`;\nconst panelWrapperRows = ['auto', '1fr'];\nconst listWrapperRows = ['auto', '1fr', 'auto'];\n\nexport const PanelWrapper = React.memo((panelMetaInfo: DSShuttleV2T.PanelMetaInfo) => (\n <StyledPanelWrapper rows={panelWrapperRows} gutter=\"xxxs\">\n <Header {...panelMetaInfo} />\n <StyledListWrapper rows={listWrapperRows}>\n <PanelContentTopSection {...panelMetaInfo} />\n <PanelContentMiddleSection {...panelMetaInfo} />\n <PanelContentBottomSection {...panelMetaInfo} />\n </StyledListWrapper>\n </StyledPanelWrapper>\n));\n"],
5
5
  "mappings": "AAAA,YAAY,WAAW;ACsBnB,cACA,YADA;AAtBJ,OAAOA,YAAW;AAClB,SAAS,cAAc;AACvB,SAAS,YAAY;AAErB,SAAS,cAAc;AACvB,SAAS,8BAA8B;AACvC,SAAS,iCAAiC;AAC1C,SAAS,iCAAiC;AAC1C,SAAS,iBAAiB,wBAAwB;AAElD,MAAM,qBAAqB,OAAO,MAAM,EAAE,MAAM,iBAAiB,MAAM,iBAAiB,cAAc,CAAC;AAAA;AAAA;AAAA;AAIvG,MAAM,oBAAoB,OAAO,MAAM,EAAE,MAAM,iBAAiB,MAAM,iBAAiB,aAAa,CAAC;AAAA;AAAA;AAGrG,MAAM,mBAAmB,CAAC,QAAQ,KAAK;AACvC,MAAM,kBAAkB,CAAC,QAAQ,OAAO,MAAM;AAEvC,MAAM,eAAeA,OAAM,KAAK,CAAC,kBACtC,qBAAC,sBAAmB,MAAM,kBAAkB,QAAO,QACjD;AAAA,sBAAC,UAAQ,GAAG,eAAe;AAAA,EAC3B,qBAAC,qBAAkB,MAAM,iBACvB;AAAA,wBAAC,0BAAwB,GAAG,eAAe;AAAA,IAC3C,oBAAC,6BAA2B,GAAG,eAAe;AAAA,IAC9C,oBAAC,6BAA2B,GAAG,eAAe;AAAA,KAChD;AAAA,GACF,CACD;",
6
6
  "names": ["React"]
7
7
  }
@@ -1,5 +1,5 @@
1
1
  import * as React from "react";
2
- import { PropTypes, globalAttributesPropTypes, xstyledPropTypes } from "@elliemae/ds-props-helpers";
2
+ import { PropTypes, globalAttributesPropTypes, xstyledPropTypes } from "@elliemae/ds-utilities";
3
3
  const defaultProps = {
4
4
  addDragAndDropFromSource: false,
5
5
  removeDragAndDropFromDestination: false,
@@ -36,67 +36,85 @@ const defaultProps = {
36
36
  const DSShuttleV2PropTypes = {
37
37
  ...globalAttributesPropTypes,
38
38
  ...xstyledPropTypes,
39
- sourceData: PropTypes.arrayOf(PropTypes.object).description("hello!").isRequired,
40
- sourceSelectedItems: PropTypes.object.description("hello!").isRequired,
41
- onSourceSelectionChange: PropTypes.func.description("hello!").isRequired,
42
- SourceHeader: PropTypes.node.description("hello!").isRequired,
43
- onSourceDrilldown: PropTypes.func.description("hello!").isRequired,
44
- destinationData: PropTypes.arrayOf(PropTypes.object).description("hello!").isRequired,
45
- destinationSelectedItems: PropTypes.object.description("hello!").isRequired,
46
- onDestinationSelectionChange: PropTypes.func.description("hello!").isRequired,
47
- DestinationHeader: PropTypes.node.description("hello!").isRequired,
48
- onDestinationDrilldown: PropTypes.func.description("hello!").isRequired,
49
- getId: PropTypes.func.description("hello!").isRequired,
50
- getLabel: PropTypes.func.description("hello!").isRequired,
51
- sourceIsLoading: PropTypes.bool.description("hello!").defaultValue(false),
52
- destinationIsLoading: PropTypes.bool.description("hello!").defaultValue(false),
53
- sourceWithLoadMore: PropTypes.bool.description("hello!").defaultValue(false),
54
- destinationWithLoadMore: PropTypes.bool.description("hello!").defaultValue(false),
55
- sourceIsLoadingMore: PropTypes.bool.description("hello!").defaultValue(false),
56
- destinationIsLoadingMore: PropTypes.bool.description("hello!").defaultValue(false),
57
- onSourceLoadMore: PropTypes.func.description("hello!").defaultValue(() => {
39
+ sourceData: PropTypes.arrayOf(PropTypes.object).description(
40
+ "An array of objects representing the items in the source list"
41
+ ).isRequired,
42
+ sourceSelectedItems: PropTypes.object.description("An object representing the selected items in the source list").isRequired,
43
+ onSourceSelectionChange: PropTypes.func.description("A function called when the selection in the source list changes").isRequired,
44
+ SourceHeader: PropTypes.node.description("The header component for the source list").isRequired,
45
+ onSourceDrilldown: PropTypes.func.description("A function called when an item in the source list is clicked").isRequired,
46
+ destinationData: PropTypes.arrayOf(PropTypes.object).description(
47
+ "An array of objects representing the items in the destination list"
48
+ ).isRequired,
49
+ destinationSelectedItems: PropTypes.object.description(
50
+ "An object representing the selected items in the destination list"
51
+ ).isRequired,
52
+ onDestinationSelectionChange: PropTypes.func.description(
53
+ "A function called when the selection in the destination list changes"
54
+ ).isRequired,
55
+ DestinationHeader: PropTypes.node.description("The header component for the destination list").isRequired,
56
+ onDestinationDrilldown: PropTypes.func.description(
57
+ "A function called when an item in the destination list is clicked"
58
+ ).isRequired,
59
+ getId: PropTypes.func.description(
60
+ "A function that takes an item from the source/destination list and returns its unique identifier"
61
+ ).isRequired,
62
+ getLabel: PropTypes.func.description(
63
+ "A function that takes an item from the source/destination list and returns its display label"
64
+ ).isRequired,
65
+ sourceIsLoading: PropTypes.bool.description("A boolean indicating whether the source list is currently loading data").defaultValue(false),
66
+ destinationIsLoading: PropTypes.bool.description("A boolean indicating whether the destination list is currently loading data").defaultValue(false),
67
+ sourceWithLoadMore: PropTypes.bool.description('A boolean indicating whether the source list supports "load more" functionality').defaultValue(false),
68
+ destinationWithLoadMore: PropTypes.bool.description('A boolean indicating whether the destination list supports "load more" functionality').defaultValue(false),
69
+ sourceIsLoadingMore: PropTypes.bool.description("A boolean indicating whether the source list is currently loading more data").defaultValue(false),
70
+ destinationIsLoadingMore: PropTypes.bool.description("A boolean indicating whether the destination list is currently loading more data").defaultValue(false),
71
+ onSourceLoadMore: PropTypes.func.description('A function called when the "load more" button in the source list is clicked').defaultValue(() => {
58
72
  }),
59
- onDestinationLoadMore: PropTypes.func.description("hello!").defaultValue(() => {
73
+ onDestinationLoadMore: PropTypes.func.description('A function called when the "load more" button in the destination list is clicked').defaultValue(() => {
60
74
  }),
61
- onSourceAdd: PropTypes.func.description("hello!").defaultValue(() => {
75
+ onSourceAdd: PropTypes.func.description("A function called when an item is added from the source list to the destination list").defaultValue(() => {
62
76
  }),
63
- onDestinationAdd: PropTypes.func.description("hello!").defaultValue(() => {
77
+ onDestinationAdd: PropTypes.func.description("A function called when an item is added from the destination list to the source list").defaultValue(() => {
64
78
  }),
65
- onSourceRemove: PropTypes.func.description("hello!").defaultValue(() => {
79
+ onSourceRemove: PropTypes.func.description("A function called when an item is removed from the destination list").defaultValue(() => {
66
80
  }),
67
- onDestinationRemove: PropTypes.func.description("hello!").defaultValue(() => {
81
+ onDestinationRemove: PropTypes.func.description("Callback function to handle when an item is removed from the destination shuttle list. ").defaultValue(() => {
68
82
  }),
69
- onSourceReorder: PropTypes.func.description("hello!").defaultValue(() => {
83
+ onSourceReorder: PropTypes.func.description("Callback function to handle when items are reordered in the source shuttle list.").defaultValue(() => {
70
84
  }),
71
- onDestinationReorder: PropTypes.func.description("hello!").defaultValue(() => {
85
+ onDestinationReorder: PropTypes.func.description("Callback function to handle when items are reordered in the destination shuttle list. ").defaultValue(() => {
72
86
  }),
73
- sourceSoftDeletedItems: PropTypes.object.description("hello!").defaultValue({}),
74
- onSourceSoftDelete: PropTypes.func.description("hello!").defaultValue(() => {
87
+ sourceSoftDeletedItems: PropTypes.object.description(
88
+ "Object containing the soft deleted items in the source shuttle list, where the key is the item ID and the value is the deleted item."
89
+ ).defaultValue({}),
90
+ onSourceSoftDelete: PropTypes.func.description("Callback function to handle when an item is soft deleted in the source shuttle list. ").defaultValue(() => {
75
91
  }),
76
- destinationSoftDeletedItems: PropTypes.object.description("hello!").defaultValue({}),
77
- onDestinationSoftDelete: PropTypes.func.description("hello!").defaultValue(() => {
92
+ destinationSoftDeletedItems: PropTypes.object.description(
93
+ "Object containing the soft deleted items in the destination shuttle list, where the key is the item ID and the value is the deleted item."
94
+ ).defaultValue({}),
95
+ onDestinationSoftDelete: PropTypes.func.description("Callback function to handle when an item is soft deleted in the destination shuttle list.").defaultValue(() => {
78
96
  }),
79
- getPreventMove: PropTypes.func.description("hello!").defaultValue(() => false),
80
- addDragAndDropFromSource: PropTypes.bool.description("hello!").defaultValue(false),
81
- removeDragAndDropFromDestination: PropTypes.bool.description("hello!").defaultValue(false),
82
- sourceItemProps: PropTypes.object.description("hello!").defaultValue({}),
83
- destinationItemProps: PropTypes.object.description("hello!").defaultValue({}),
84
- sourceShowSearchbar: PropTypes.bool.description("hello!").defaultValue(false),
85
- destinationShowSearchbar: PropTypes.bool.description("hello!").defaultValue(false),
86
- onSourceOpenSearchbar: PropTypes.func.description("hello!").defaultValue(() => {
97
+ getPreventMove: PropTypes.func.description("Function that determines whether a specific item can be moved to the destination shuttle list. ").defaultValue(() => false),
98
+ addDragAndDropFromSource: PropTypes.bool.description("Specifies whether items can be dragged from the source list and dropped into the destination list.").defaultValue(false),
99
+ removeDragAndDropFromDestination: PropTypes.bool.description("Specifies whether items can be removed from the destination list by dragging them out of the list.").defaultValue(false),
100
+ sourceItemProps: PropTypes.object.description("Specifies additional props to be applied to each item in the source list.").defaultValue({}),
101
+ destinationItemProps: PropTypes.object.description("Specifies additional props to be applied to each item in the destination list.").defaultValue({}),
102
+ sourceShowSearchbar: PropTypes.bool.description("Specifies whether the search bar should be shown in the source list.").defaultValue(false),
103
+ destinationShowSearchbar: PropTypes.bool.description("Specifies whether the search bar should be shown in the destination list.").defaultValue(false),
104
+ onSourceOpenSearchbar: PropTypes.func.description("Callback function that is called when the search bar in the source list is opened.").defaultValue(() => {
87
105
  }),
88
- onDesinationOpenSearchbar: PropTypes.func.description("hello!").defaultValue(() => {
106
+ onDesinationOpenSearchbar: PropTypes.func.description("Callback function that is called when the search bar in the destination list is opened.").defaultValue(() => {
89
107
  }),
90
- sourceFilterValue: PropTypes.string.description("hello!").defaultValue(""),
91
- destinationFilterValue: PropTypes.string.description("hello!").defaultValue(""),
92
- onSourceFilterChange: PropTypes.func.description("hello!").defaultValue(() => {
108
+ sourceFilterValue: PropTypes.string.description("Specifies the current value of the search filter in the source list.").defaultValue(""),
109
+ destinationFilterValue: PropTypes.string.description("Specifies the current value of the search filter in the destination list.").defaultValue(""),
110
+ onSourceFilterChange: PropTypes.func.description("Callback function that is called when the search filter in the source list is changed.").defaultValue(() => {
93
111
  }),
94
- onDestinationFilterChange: PropTypes.func.description("hello!").defaultValue(() => {
112
+ onDestinationFilterChange: PropTypes.func.description("Callback function that is called when the search filter in the destination list is changed.").defaultValue(() => {
95
113
  }),
96
- getSubtitle: PropTypes.func.description("hello!").defaultValue(() => ""),
97
- getIcon: PropTypes.func.description("hello!").defaultValue(() => ""),
98
- getPreventDrilldown: PropTypes.func.description("hello!").defaultValue(() => false),
99
- getCustomRenderer: PropTypes.func.description("hello!").defaultValue(() => void 0)
114
+ getSubtitle: PropTypes.func.description("Callback function that returns the subtitle to be displayed for each item in the list.").defaultValue(() => ""),
115
+ getIcon: PropTypes.func.description("Callback function that returns the icon to be displayed for each item in the list.").defaultValue(() => ""),
116
+ getPreventDrilldown: PropTypes.func.description("Callback function that determines whether drilldown should be prevented for a particular item.").defaultValue(() => false),
117
+ getCustomRenderer: PropTypes.func.description("Callback function that returns a custom renderer for each item in the list.").defaultValue(() => void 0)
100
118
  };
101
119
  const DSShuttleV2PropTypesSchema = DSShuttleV2PropTypes;
102
120
  export {