@elliemae/ds-shuttle-v2 3.13.0-next.4 → 3.13.1-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. package/dist/cjs/DSShuttleV2.js +3 -2
  2. package/dist/cjs/DSShuttleV2.js.map +3 -3
  3. package/dist/cjs/config/{useAutoCalculated/useDataStructure.js → configureAutoCalculated.js} +12 -22
  4. package/dist/cjs/config/configureAutoCalculated.js.map +7 -0
  5. package/dist/cjs/config/itemMovementHelpers.js +1 -17
  6. package/dist/cjs/config/itemMovementHelpers.js.map +2 -2
  7. package/dist/cjs/config/useFocusTracker/useFocusActionTrackers.js +6 -6
  8. package/dist/cjs/config/useFocusTracker/useFocusActionTrackers.js.map +2 -2
  9. package/dist/cjs/config/useShuttleV2.js +5 -4
  10. package/dist/cjs/config/useShuttleV2.js.map +2 -2
  11. package/dist/cjs/config/useStore/useStore.js +5 -14
  12. package/dist/cjs/config/useStore/useStore.js.map +2 -2
  13. package/dist/cjs/constants/index.js +0 -4
  14. package/dist/cjs/constants/index.js.map +2 -2
  15. package/dist/cjs/index.js +1 -5
  16. package/dist/cjs/index.js.map +2 -2
  17. package/dist/cjs/parts/Header.js +1 -2
  18. package/dist/cjs/parts/Header.js.map +2 -2
  19. package/dist/cjs/parts/Item/Item.js +11 -64
  20. package/dist/cjs/parts/Item/Item.js.map +3 -3
  21. package/dist/cjs/parts/Item/ItemActions/ItemActions.js +9 -10
  22. package/dist/cjs/parts/Item/ItemActions/ItemActions.js.map +2 -2
  23. package/dist/cjs/parts/Item/ItemActions/useActionsLogicHandlers.js +1 -16
  24. package/dist/cjs/parts/Item/ItemActions/useActionsLogicHandlers.js.map +2 -2
  25. package/dist/cjs/parts/Item/ItemActions/useInnerRefHandlers.js +4 -18
  26. package/dist/cjs/parts/Item/ItemActions/useInnerRefHandlers.js.map +2 -2
  27. package/dist/cjs/parts/Item/ItemMiddleSection.js +3 -4
  28. package/dist/cjs/parts/Item/ItemMiddleSection.js.map +2 -2
  29. package/dist/cjs/parts/Item/ItemSelection.js +1 -2
  30. package/dist/cjs/parts/Item/ItemSelection.js.map +2 -2
  31. package/dist/cjs/parts/Item/useItemArrowNavigation.js +0 -7
  32. package/dist/cjs/parts/Item/useItemArrowNavigation.js.map +2 -2
  33. package/dist/cjs/parts/Item/useSelectionLogic.js +1 -12
  34. package/dist/cjs/parts/Item/useSelectionLogic.js.map +2 -2
  35. package/dist/cjs/parts/MainContent.js +1 -2
  36. package/dist/cjs/parts/MainContent.js.map +2 -2
  37. package/dist/cjs/parts/Panel/bottom/LoadMoreBtn.js +1 -5
  38. package/dist/cjs/parts/Panel/bottom/LoadMoreBtn.js.map +2 -2
  39. package/dist/cjs/parts/Panel/bottom/LoadingMore.js +1 -5
  40. package/dist/cjs/parts/Panel/bottom/LoadingMore.js.map +2 -2
  41. package/dist/cjs/parts/Panel/bottom/PanelContentBottomSection.js +1 -2
  42. package/dist/cjs/parts/Panel/bottom/PanelContentBottomSection.js.map +2 -2
  43. package/dist/cjs/parts/Panel/bottom/useLoadMoreBtnArrowNavigation.js +1 -14
  44. package/dist/cjs/parts/Panel/bottom/useLoadMoreBtnArrowNavigation.js.map +2 -2
  45. package/dist/cjs/parts/Panel/middle/EmptyItems.js +1 -2
  46. package/dist/cjs/parts/Panel/middle/EmptyItems.js.map +2 -2
  47. package/dist/cjs/parts/Panel/middle/ItemListWrapper.js +102 -48
  48. package/dist/cjs/parts/Panel/middle/ItemListWrapper.js.map +2 -2
  49. package/dist/cjs/parts/Panel/middle/LoadingItems.js +1 -2
  50. package/dist/cjs/parts/Panel/middle/LoadingItems.js.map +2 -2
  51. package/dist/cjs/parts/Panel/middle/MultipleSelectionAction.js +7 -9
  52. package/dist/cjs/parts/Panel/middle/MultipleSelectionAction.js.map +2 -2
  53. package/dist/cjs/parts/Panel/middle/PanelContentMiddleSection.js +7 -120
  54. package/dist/cjs/parts/Panel/middle/PanelContentMiddleSection.js.map +2 -2
  55. package/dist/cjs/parts/Panel/top/PanelContentTopSection.js +1 -2
  56. package/dist/cjs/parts/Panel/top/PanelContentTopSection.js.map +2 -2
  57. package/dist/cjs/parts/Panel/top/PanelFilterSection.js +2 -3
  58. package/dist/cjs/parts/Panel/top/PanelFilterSection.js.map +2 -2
  59. package/dist/cjs/parts/Panel/top/SelectionHeader.js +3 -7
  60. package/dist/cjs/parts/Panel/top/SelectionHeader.js.map +2 -2
  61. package/dist/cjs/parts/PanelWrapper.js +2 -3
  62. package/dist/cjs/parts/PanelWrapper.js.map +2 -2
  63. package/dist/cjs/react-desc-prop-types.js +2 -14
  64. package/dist/cjs/react-desc-prop-types.js.map +2 -2
  65. package/dist/esm/DSShuttleV2.js +3 -2
  66. package/dist/esm/DSShuttleV2.js.map +3 -3
  67. package/dist/esm/config/{useAutoCalculated/useDataStructure.js → configureAutoCalculated.js} +9 -19
  68. package/dist/esm/config/configureAutoCalculated.js.map +7 -0
  69. package/dist/esm/config/itemMovementHelpers.js +1 -17
  70. package/dist/esm/config/itemMovementHelpers.js.map +2 -2
  71. package/dist/esm/config/useFocusTracker/useFocusActionTrackers.js +6 -6
  72. package/dist/esm/config/useFocusTracker/useFocusActionTrackers.js.map +2 -2
  73. package/dist/esm/config/useShuttleV2.js +5 -4
  74. package/dist/esm/config/useShuttleV2.js.map +2 -2
  75. package/dist/esm/config/useStore/useStore.js +5 -14
  76. package/dist/esm/config/useStore/useStore.js.map +2 -2
  77. package/dist/esm/constants/index.js +0 -4
  78. package/dist/esm/constants/index.js.map +2 -2
  79. package/dist/esm/index.js +1 -5
  80. package/dist/esm/index.js.map +2 -2
  81. package/dist/esm/parts/Header.js +1 -2
  82. package/dist/esm/parts/Header.js.map +2 -2
  83. package/dist/esm/parts/Item/Item.js +13 -66
  84. package/dist/esm/parts/Item/Item.js.map +2 -2
  85. package/dist/esm/parts/Item/ItemActions/ItemActions.js +9 -10
  86. package/dist/esm/parts/Item/ItemActions/ItemActions.js.map +2 -2
  87. package/dist/esm/parts/Item/ItemActions/useActionsLogicHandlers.js +1 -16
  88. package/dist/esm/parts/Item/ItemActions/useActionsLogicHandlers.js.map +2 -2
  89. package/dist/esm/parts/Item/ItemActions/useInnerRefHandlers.js +4 -18
  90. package/dist/esm/parts/Item/ItemActions/useInnerRefHandlers.js.map +2 -2
  91. package/dist/esm/parts/Item/ItemMiddleSection.js +3 -4
  92. package/dist/esm/parts/Item/ItemMiddleSection.js.map +2 -2
  93. package/dist/esm/parts/Item/ItemSelection.js +1 -2
  94. package/dist/esm/parts/Item/ItemSelection.js.map +2 -2
  95. package/dist/esm/parts/Item/useItemArrowNavigation.js +0 -7
  96. package/dist/esm/parts/Item/useItemArrowNavigation.js.map +2 -2
  97. package/dist/esm/parts/Item/useSelectionLogic.js +2 -13
  98. package/dist/esm/parts/Item/useSelectionLogic.js.map +2 -2
  99. package/dist/esm/parts/MainContent.js +1 -2
  100. package/dist/esm/parts/MainContent.js.map +2 -2
  101. package/dist/esm/parts/Panel/bottom/LoadMoreBtn.js +1 -5
  102. package/dist/esm/parts/Panel/bottom/LoadMoreBtn.js.map +2 -2
  103. package/dist/esm/parts/Panel/bottom/LoadingMore.js +1 -5
  104. package/dist/esm/parts/Panel/bottom/LoadingMore.js.map +2 -2
  105. package/dist/esm/parts/Panel/bottom/PanelContentBottomSection.js +1 -2
  106. package/dist/esm/parts/Panel/bottom/PanelContentBottomSection.js.map +2 -2
  107. package/dist/esm/parts/Panel/bottom/useLoadMoreBtnArrowNavigation.js +1 -14
  108. package/dist/esm/parts/Panel/bottom/useLoadMoreBtnArrowNavigation.js.map +2 -2
  109. package/dist/esm/parts/Panel/middle/EmptyItems.js +1 -2
  110. package/dist/esm/parts/Panel/middle/EmptyItems.js.map +2 -2
  111. package/dist/esm/parts/Panel/middle/ItemListWrapper.js +104 -50
  112. package/dist/esm/parts/Panel/middle/ItemListWrapper.js.map +2 -2
  113. package/dist/esm/parts/Panel/middle/LoadingItems.js +1 -2
  114. package/dist/esm/parts/Panel/middle/LoadingItems.js.map +2 -2
  115. package/dist/esm/parts/Panel/middle/MultipleSelectionAction.js +7 -9
  116. package/dist/esm/parts/Panel/middle/MultipleSelectionAction.js.map +2 -2
  117. package/dist/esm/parts/Panel/middle/PanelContentMiddleSection.js +9 -122
  118. package/dist/esm/parts/Panel/middle/PanelContentMiddleSection.js.map +2 -2
  119. package/dist/esm/parts/Panel/top/PanelContentTopSection.js +1 -2
  120. package/dist/esm/parts/Panel/top/PanelContentTopSection.js.map +2 -2
  121. package/dist/esm/parts/Panel/top/PanelFilterSection.js +2 -3
  122. package/dist/esm/parts/Panel/top/PanelFilterSection.js.map +2 -2
  123. package/dist/esm/parts/Panel/top/SelectionHeader.js +3 -7
  124. package/dist/esm/parts/Panel/top/SelectionHeader.js.map +2 -2
  125. package/dist/esm/parts/PanelWrapper.js +2 -3
  126. package/dist/esm/parts/PanelWrapper.js.map +2 -2
  127. package/dist/esm/react-desc-prop-types.js +2 -14
  128. package/dist/esm/react-desc-prop-types.js.map +2 -2
  129. package/package.json +11 -12
  130. package/dist/cjs/config/DSShuttleV2Definitions.js +0 -67
  131. package/dist/cjs/config/DSShuttleV2Definitions.js.map +0 -7
  132. package/dist/cjs/config/useAutoCalculated/index.js +0 -39
  133. package/dist/cjs/config/useAutoCalculated/index.js.map +0 -7
  134. package/dist/cjs/config/useAutoCalculated/useDataStructure.js.map +0 -7
  135. package/dist/cjs/config/useAutoCalculated/useShuttleVirtualized.js +0 -98
  136. package/dist/cjs/config/useAutoCalculated/useShuttleVirtualized.js.map +0 -7
  137. package/dist/cjs/parts/Dnd/DndHandle.js +0 -64
  138. package/dist/cjs/parts/Dnd/DndHandle.js.map +0 -7
  139. package/dist/cjs/parts/Dnd/DropIndicator.js +0 -88
  140. package/dist/cjs/parts/Dnd/DropIndicator.js.map +0 -7
  141. package/dist/cjs/parts/HoC/withConditionalDnDRowContext.js +0 -90
  142. package/dist/cjs/parts/HoC/withConditionalDnDRowContext.js.map +0 -7
  143. package/dist/cjs/parts/HoC/withConditionalUseSortable.js +0 -38
  144. package/dist/cjs/parts/HoC/withConditionalUseSortable.js.map +0 -7
  145. package/dist/cjs/parts/Item/ItemOverlay.js +0 -61
  146. package/dist/cjs/parts/Item/ItemOverlay.js.map +0 -7
  147. package/dist/esm/config/DSShuttleV2Definitions.js +0 -41
  148. package/dist/esm/config/DSShuttleV2Definitions.js.map +0 -7
  149. package/dist/esm/config/useAutoCalculated/index.js +0 -13
  150. package/dist/esm/config/useAutoCalculated/index.js.map +0 -7
  151. package/dist/esm/config/useAutoCalculated/useDataStructure.js.map +0 -7
  152. package/dist/esm/config/useAutoCalculated/useShuttleVirtualized.js +0 -72
  153. package/dist/esm/config/useAutoCalculated/useShuttleVirtualized.js.map +0 -7
  154. package/dist/esm/parts/Dnd/DndHandle.js +0 -38
  155. package/dist/esm/parts/Dnd/DndHandle.js.map +0 -7
  156. package/dist/esm/parts/Dnd/DropIndicator.js +0 -62
  157. package/dist/esm/parts/Dnd/DropIndicator.js.map +0 -7
  158. package/dist/esm/parts/HoC/withConditionalDnDRowContext.js +0 -64
  159. package/dist/esm/parts/HoC/withConditionalDnDRowContext.js.map +0 -7
  160. package/dist/esm/parts/HoC/withConditionalUseSortable.js +0 -12
  161. package/dist/esm/parts/HoC/withConditionalUseSortable.js.map +0 -7
  162. package/dist/esm/parts/Item/ItemOverlay.js +0 -35
  163. package/dist/esm/parts/Item/ItemOverlay.js.map +0 -7
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/parts/MainContent.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["import React from 'react';\nimport { styled } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { useOnBlurOut } from '@elliemae/ds-utilities';\nimport { PanelWrapper } from './PanelWrapper';\nimport { DSShuttleV2Name, DSShuttleV2Slots } from '../config/DSShuttleV2Definitions';\nimport { useFocusTracker } from '../config/useFocusTracker';\n\nconst StyledWrapper = styled(Grid, { name: DSShuttleV2Name, slot: DSShuttleV2Slots.WRAPPER })`\n min-width: 648px;\n min-height: 296px;\n`;\nconst mainContentCols = ['1fr', '1fr'];\n\nexport const MainContent = React.memo(() => {\n const { trackFocusRegionReset, trackFocusItemReset, trackFocusActionReset } = useFocusTracker();\n const config = React.useMemo(\n () => ({\n onBlur: () => {\n trackFocusRegionReset();\n trackFocusItemReset();\n trackFocusActionReset();\n },\n }),\n [trackFocusActionReset, trackFocusItemReset, trackFocusRegionReset],\n );\n const handleOnBlurOut = useOnBlurOut(config);\n return (\n <StyledWrapper cols={mainContentCols} gutter=\"xs\" p=\"xs\" onBlur={handleOnBlurOut}>\n <PanelWrapper isDestinationPanel={false} />\n <PanelWrapper isDestinationPanel />\n </StyledWrapper>\n );\n});\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;AD4BnB;AA5BJ,mBAAkB;AAClB,uBAAuB;AACvB,qBAAqB;AACrB,0BAA6B;AAC7B,0BAA6B;AAC7B,oCAAkD;AAClD,6BAAgC;AAEhC,MAAM,oBAAgB,yBAAO,qBAAM,EAAE,MAAM,+CAAiB,MAAM,+CAAiB,QAAQ,CAAC;AAAA;AAAA;AAAA;AAI5F,MAAM,kBAAkB,CAAC,OAAO,KAAK;AAE9B,MAAM,cAAc,aAAAA,QAAM,KAAK,MAAM;AAC1C,QAAM,EAAE,uBAAuB,qBAAqB,sBAAsB,QAAI,wCAAgB;AAC9F,QAAM,SAAS,aAAAA,QAAM;AAAA,IACnB,OAAO;AAAA,MACL,QAAQ,MAAM;AACZ,8BAAsB;AACtB,4BAAoB;AACpB,8BAAsB;AAAA,MACxB;AAAA,IACF;AAAA,IACA,CAAC,uBAAuB,qBAAqB,qBAAqB;AAAA,EACpE;AACA,QAAM,sBAAkB,kCAAa,MAAM;AAC3C,SACE,6CAAC,iBAAc,MAAM,iBAAiB,QAAO,MAAK,GAAE,MAAK,QAAQ,iBAC/D;AAAA,gDAAC,oCAAa,oBAAoB,OAAO;AAAA,IACzC,4CAAC,oCAAa,oBAAkB,MAAC;AAAA,KACnC;AAEJ,CAAC;",
4
+ "sourcesContent": ["import React from 'react';\nimport { styled } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { useOnBlurOut } from '@elliemae/ds-utilities';\nimport { PanelWrapper } from './PanelWrapper';\nimport { useFocusTracker } from '../config/useFocusTracker';\n\nconst StyledWrapper = styled(Grid, { name: 'ds-shuttle-v2', slot: 'wrapper' })`\n min-width: 648px;\n min-height: 296px;\n`;\nconst mainContentCols = ['1fr', '1fr'];\n\nexport const MainContent = React.memo(() => {\n const { trackFocusRegionReset, trackFocusItemReset, trackFocusActionReset } = useFocusTracker();\n const config = React.useMemo(\n () => ({\n onBlur: () => {\n trackFocusRegionReset();\n trackFocusItemReset();\n trackFocusActionReset();\n },\n }),\n [trackFocusActionReset, trackFocusItemReset, trackFocusRegionReset],\n );\n const handleOnBlurOut = useOnBlurOut(config);\n return (\n <StyledWrapper cols={mainContentCols} gutter=\"xs\" p=\"xs\" onBlur={handleOnBlurOut}>\n <PanelWrapper isDestinationPanel={false} />\n <PanelWrapper isDestinationPanel />\n </StyledWrapper>\n );\n});\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;AD2BnB;AA3BJ,mBAAkB;AAClB,uBAAuB;AACvB,qBAAqB;AACrB,0BAA6B;AAC7B,0BAA6B;AAC7B,6BAAgC;AAEhC,MAAM,oBAAgB,yBAAO,qBAAM,EAAE,MAAM,iBAAiB,MAAM,UAAU,CAAC;AAAA;AAAA;AAAA;AAI7E,MAAM,kBAAkB,CAAC,OAAO,KAAK;AAE9B,MAAM,cAAc,aAAAA,QAAM,KAAK,MAAM;AAC1C,QAAM,EAAE,uBAAuB,qBAAqB,sBAAsB,QAAI,wCAAgB;AAC9F,QAAM,SAAS,aAAAA,QAAM;AAAA,IACnB,OAAO;AAAA,MACL,QAAQ,MAAM;AACZ,8BAAsB;AACtB,4BAAoB;AACpB,8BAAsB;AAAA,MACxB;AAAA,IACF;AAAA,IACA,CAAC,uBAAuB,qBAAqB,qBAAqB;AAAA,EACpE;AACA,QAAM,sBAAkB,kCAAa,MAAM;AAC3C,SACE,6CAAC,iBAAc,MAAM,iBAAiB,QAAO,MAAK,GAAE,MAAK,QAAQ,iBAC/D;AAAA,gDAAC,oCAAa,oBAAoB,OAAO;AAAA,IACzC,4CAAC,oCAAa,oBAAkB,MAAC;AAAA,KACnC;AAEJ,CAAC;",
6
6
  "names": ["React"]
7
7
  }
@@ -35,11 +35,7 @@ var import_ds_button = require("@elliemae/ds-button");
35
35
  var import_useStore = require("../../../config/useStore");
36
36
  var import_useInnerRefHandlers = require("./useInnerRefHandlers");
37
37
  var import_useFocusTracker = require("../../../config/useFocusTracker");
38
- var import_DSShuttleV2Definitions = require("../../../config/DSShuttleV2Definitions");
39
- const StyledLoadMoreBtn = (0, import_ds_system.styled)(import_ds_button.DSButtonV2, {
40
- name: import_DSShuttleV2Definitions.DSShuttleV2Name,
41
- slot: import_DSShuttleV2Definitions.DSShuttleV2Slots.LIST_BOTTOM_LOAD_MORE_BTN
42
- })`
38
+ const StyledLoadMoreBtn = (0, import_ds_system.styled)(import_ds_button.DSButtonV2, { name: "ds-shuttle-v2", slot: "list-bottom-load-more-btn" })`
43
39
  width: 100%;
44
40
  height: 100%;
45
41
  `;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/parts/Panel/bottom/LoadMoreBtn.tsx", "../../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["import React from 'react';\nimport { styled } from '@elliemae/ds-system';\nimport { DSButtonV2, BUTTON_SIZES, type DSButtonT } from '@elliemae/ds-button';\nimport { usePropsStore } from '../../../config/useStore';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types';\nimport { useInnerRefHandlers } from './useInnerRefHandlers';\nimport { useFocusTracker } from '../../../config/useFocusTracker';\nimport { DSShuttleV2Name, DSShuttleV2Slots } from '../../../config/DSShuttleV2Definitions';\n\nconst StyledLoadMoreBtn = styled(DSButtonV2, {\n name: DSShuttleV2Name,\n slot: DSShuttleV2Slots.LIST_BOTTOM_LOAD_MORE_BTN,\n})`\n width: 100%;\n height: 100%;\n`;\n\nexport const LoadMoreBtn = (panelMetaInfo: DSShuttleV2T.PanelMetaInfo) => {\n const { isDestinationPanel = false } = panelMetaInfo;\n const { trackFocusItemLast, trackFocusActionParent, trackFocusRegionPanelItem } = useFocusTracker();\n const onLoadMore = usePropsStore((state) =>\n isDestinationPanel ? state.onDestinationLoadMore : state.onSourceLoadMore,\n );\n const handleOnClick = React.useCallback(\n (e: Parameters<Required<DSButtonT.Props>['onClick']>[0]) => {\n onLoadMore(e);\n trackFocusItemLast();\n trackFocusRegionPanelItem(panelMetaInfo.isDestinationPanel);\n trackFocusActionParent();\n },\n [\n onLoadMore,\n panelMetaInfo.isDestinationPanel,\n trackFocusActionParent,\n trackFocusItemLast,\n trackFocusRegionPanelItem,\n ],\n );\n const { innerRefHandlerLoadMoreBtn } = useInnerRefHandlers(panelMetaInfo);\n return (\n <StyledLoadMoreBtn\n buttonType=\"text\"\n onClick={handleOnClick}\n size={BUTTON_SIZES.S}\n innerRef={innerRefHandlerLoadMoreBtn}\n >\n Load More...\n </StyledLoadMoreBtn>\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADwCnB;AAxCJ,mBAAkB;AAClB,uBAAuB;AACvB,uBAAyD;AACzD,sBAA8B;AAE9B,iCAAoC;AACpC,6BAAgC;AAChC,oCAAkD;AAElD,MAAM,wBAAoB,yBAAO,6BAAY;AAAA,EAC3C,MAAM;AAAA,EACN,MAAM,+CAAiB;AACzB,CAAC;AAAA;AAAA;AAAA;AAKM,MAAM,cAAc,CAAC,kBAA8C;AACxE,QAAM,EAAE,qBAAqB,MAAM,IAAI;AACvC,QAAM,EAAE,oBAAoB,wBAAwB,0BAA0B,QAAI,wCAAgB;AAClG,QAAM,iBAAa;AAAA,IAAc,CAAC,UAChC,qBAAqB,MAAM,wBAAwB,MAAM;AAAA,EAC3D;AACA,QAAM,gBAAgB,aAAAA,QAAM;AAAA,IAC1B,CAAC,MAA2D;AAC1D,iBAAW,CAAC;AACZ,yBAAmB;AACnB,gCAA0B,cAAc,kBAAkB;AAC1D,6BAAuB;AAAA,IACzB;AAAA,IACA;AAAA,MACE;AAAA,MACA,cAAc;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACA,QAAM,EAAE,2BAA2B,QAAI,gDAAoB,aAAa;AACxE,SACE;AAAA,IAAC;AAAA;AAAA,MACC,YAAW;AAAA,MACX,SAAS;AAAA,MACT,MAAM,8BAAa;AAAA,MACnB,UAAU;AAAA,MACX;AAAA;AAAA,EAED;AAEJ;",
4
+ "sourcesContent": ["import React from 'react';\nimport { styled } from '@elliemae/ds-system';\nimport { DSButtonV2, BUTTON_SIZES, type DSButtonT } from '@elliemae/ds-button';\nimport { usePropsStore } from '../../../config/useStore';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types';\nimport { useInnerRefHandlers } from './useInnerRefHandlers';\nimport { useFocusTracker } from '../../../config/useFocusTracker';\n\nconst StyledLoadMoreBtn = styled(DSButtonV2, { name: 'ds-shuttle-v2', slot: 'list-bottom-load-more-btn' })`\n width: 100%;\n height: 100%;\n`;\n\nexport const LoadMoreBtn = (panelMetaInfo: DSShuttleV2T.PanelMetaInfo) => {\n const { isDestinationPanel = false } = panelMetaInfo;\n const { trackFocusItemLast, trackFocusActionParent, trackFocusRegionPanelItem } = useFocusTracker();\n const onLoadMore = usePropsStore((state) =>\n isDestinationPanel ? state.onDestinationLoadMore : state.onSourceLoadMore,\n );\n const handleOnClick = React.useCallback(\n (e: Parameters<Required<DSButtonT.Props>['onClick']>[0]) => {\n onLoadMore(e);\n trackFocusItemLast();\n trackFocusRegionPanelItem(panelMetaInfo.isDestinationPanel);\n trackFocusActionParent();\n },\n [\n onLoadMore,\n panelMetaInfo.isDestinationPanel,\n trackFocusActionParent,\n trackFocusItemLast,\n trackFocusRegionPanelItem,\n ],\n );\n const { innerRefHandlerLoadMoreBtn } = useInnerRefHandlers(panelMetaInfo);\n return (\n <StyledLoadMoreBtn\n buttonType=\"text\"\n onClick={handleOnClick}\n size={BUTTON_SIZES.S}\n innerRef={innerRefHandlerLoadMoreBtn}\n >\n Load More...\n </StyledLoadMoreBtn>\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADoCnB;AApCJ,mBAAkB;AAClB,uBAAuB;AACvB,uBAAyD;AACzD,sBAA8B;AAE9B,iCAAoC;AACpC,6BAAgC;AAEhC,MAAM,wBAAoB,yBAAO,6BAAY,EAAE,MAAM,iBAAiB,MAAM,4BAA4B,CAAC;AAAA;AAAA;AAAA;AAKlG,MAAM,cAAc,CAAC,kBAA8C;AACxE,QAAM,EAAE,qBAAqB,MAAM,IAAI;AACvC,QAAM,EAAE,oBAAoB,wBAAwB,0BAA0B,QAAI,wCAAgB;AAClG,QAAM,iBAAa;AAAA,IAAc,CAAC,UAChC,qBAAqB,MAAM,wBAAwB,MAAM;AAAA,EAC3D;AACA,QAAM,gBAAgB,aAAAA,QAAM;AAAA,IAC1B,CAAC,MAA2D;AAC1D,iBAAW,CAAC;AACZ,yBAAmB;AACnB,gCAA0B,cAAc,kBAAkB;AAC1D,6BAAuB;AAAA,IACzB;AAAA,IACA;AAAA,MACE;AAAA,MACA,cAAc;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACA,QAAM,EAAE,2BAA2B,QAAI,gDAAoB,aAAa;AACxE,SACE;AAAA,IAAC;AAAA;AAAA,MACC,YAAW;AAAA,MACX,SAAS;AAAA,MACT,MAAM,8BAAa;AAAA,MACnB,UAAU;AAAA,MACX;AAAA;AAAA,EAED;AAEJ;",
6
6
  "names": ["React"]
7
7
  }
@@ -32,10 +32,6 @@ var import_jsx_runtime = require("react/jsx-runtime");
32
32
  var import_ds_system = require("@elliemae/ds-system");
33
33
  var import_ds_grid = require("@elliemae/ds-grid");
34
34
  var import_ds_indeterminate_progress_indicator = require("@elliemae/ds-indeterminate-progress-indicator");
35
- var import_DSShuttleV2Definitions = require("../../../config/DSShuttleV2Definitions");
36
- const StyledBottomLoadingMore = (0, import_ds_system.styled)(import_ds_grid.Grid, {
37
- name: import_DSShuttleV2Definitions.DSShuttleV2Name,
38
- slot: import_DSShuttleV2Definitions.DSShuttleV2Slots.LIST_BOTTOM_LOADING_MORE
39
- })``;
35
+ const StyledBottomLoadingMore = (0, import_ds_system.styled)(import_ds_grid.Grid, { name: "ds-shuttle-v2", slot: "list-bottom-loading-more" })``;
40
36
  const LoadingMore = (panelMetaInfo) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StyledBottomLoadingMore, { px: "24px", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_indeterminate_progress_indicator.DSIndeterminateProgressIndicator, { processing: true, title: "Loading" }) });
41
37
  //# sourceMappingURL=LoadingMore.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/parts/Panel/bottom/LoadingMore.tsx", "../../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["/* eslint-disable no-unused-vars */\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { styled } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { DSIndeterminateProgressIndicator } from '@elliemae/ds-indeterminate-progress-indicator';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types';\nimport { DSShuttleV2Name, DSShuttleV2Slots } from '../../../config/DSShuttleV2Definitions';\n\nconst StyledBottomLoadingMore = styled(Grid, {\n name: DSShuttleV2Name,\n slot: DSShuttleV2Slots.LIST_BOTTOM_LOADING_MORE,\n})``;\nexport const LoadingMore = (panelMetaInfo: DSShuttleV2T.PanelMetaInfo) => (\n <StyledBottomLoadingMore px=\"24px\">\n <DSIndeterminateProgressIndicator processing title=\"Loading\" />\n </StyledBottomLoadingMore>\n);\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADcnB;AAZJ,uBAAuB;AACvB,qBAAqB;AACrB,iDAAiD;AAEjD,oCAAkD;AAElD,MAAM,8BAA0B,yBAAO,qBAAM;AAAA,EAC3C,MAAM;AAAA,EACN,MAAM,+CAAiB;AACzB,CAAC;AACM,MAAM,cAAc,CAAC,kBAC1B,4CAAC,2BAAwB,IAAG,QAC1B,sDAAC,+EAAiC,YAAU,MAAC,OAAM,WAAU,GAC/D;",
4
+ "sourcesContent": ["/* eslint-disable no-unused-vars */\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { styled } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { DSIndeterminateProgressIndicator } from '@elliemae/ds-indeterminate-progress-indicator';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types';\n\nconst StyledBottomLoadingMore = styled(Grid, { name: 'ds-shuttle-v2', slot: 'list-bottom-loading-more' })``;\nexport const LoadingMore = (panelMetaInfo: DSShuttleV2T.PanelMetaInfo) => (\n <StyledBottomLoadingMore px=\"24px\">\n <DSIndeterminateProgressIndicator processing title=\"Loading\" />\n </StyledBottomLoadingMore>\n);\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADUnB;AARJ,uBAAuB;AACvB,qBAAqB;AACrB,iDAAiD;AAGjD,MAAM,8BAA0B,yBAAO,qBAAM,EAAE,MAAM,iBAAiB,MAAM,2BAA2B,CAAC;AACjG,MAAM,cAAc,CAAC,kBAC1B,4CAAC,2BAAwB,IAAG,QAC1B,sDAAC,+EAAiC,YAAU,MAAC,OAAM,WAAU,GAC/D;",
6
6
  "names": []
7
7
  }
@@ -37,8 +37,7 @@ var import_useStore = require("../../../config/useStore");
37
37
  var import_LoadMoreBtn = require("./LoadMoreBtn");
38
38
  var import_LoadingMore = require("./LoadingMore");
39
39
  var import_useLoadMoreBtnArrowNavigation = require("./useLoadMoreBtnArrowNavigation");
40
- var import_DSShuttleV2Definitions = require("../../../config/DSShuttleV2Definitions");
41
- const StyledListWrapperBottom = (0, import_ds_system.styled)(import_ds_grid.Grid, { name: import_DSShuttleV2Definitions.DSShuttleV2Name, slot: import_DSShuttleV2Definitions.DSShuttleV2Slots.LIST_WRAPPER_BOTTOM })`
40
+ const StyledListWrapperBottom = (0, import_ds_system.styled)(import_ds_grid.Grid, { name: "ds-shuttle-v2", slot: "list-wrapper-bottom" })`
42
41
  min-height: 36px;
43
42
  border-top: 1px solid neutral-400;
44
43
  `;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/parts/Panel/bottom/PanelContentBottomSection.tsx", "../../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["/* eslint-disable no-unused-vars */\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React from 'react';\nimport { styled } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { useFocusTracker } from '../../../config/useFocusTracker';\nimport { usePropsStore } from '../../../config/useStore';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types';\nimport { LoadMoreBtn } from './LoadMoreBtn';\nimport { LoadingMore } from './LoadingMore';\nimport { useLoadMoreBtnArrowNavigation } from './useLoadMoreBtnArrowNavigation';\nimport { DSShuttleV2Name, DSShuttleV2Slots } from '../../../config/DSShuttleV2Definitions';\n\nconst StyledListWrapperBottom = styled(Grid, { name: DSShuttleV2Name, slot: DSShuttleV2Slots.LIST_WRAPPER_BOTTOM })`\n min-height: 36px;\n border-top: 1px solid neutral-400;\n`;\nconst wrapperColsRows = ['1fr'];\n\nexport const PanelContentBottomSection = React.memo((panelMetaInfo: DSShuttleV2T.PanelMetaInfo) => {\n const { isDestinationPanel = false } = panelMetaInfo;\n const withLoadMore = usePropsStore((state) =>\n isDestinationPanel ? state.destinationWithLoadMore : state.sourceWithLoadMore,\n );\n const isLoadingMore = usePropsStore((state) =>\n isDestinationPanel ? state.destinationIsLoadingMore : state.sourceIsLoadingMore,\n );\n const { trackFocusRegionBottom, trackFocusLoadMoreBtn, trackFocusActionReset } = useFocusTracker();\n const onBottomSectionFocus = React.useCallback(() => {\n trackFocusRegionBottom(isDestinationPanel);\n trackFocusLoadMoreBtn();\n trackFocusActionReset();\n }, [isDestinationPanel, trackFocusActionReset, trackFocusLoadMoreBtn, trackFocusRegionBottom]);\n\n // this 3 booleans MUST be auto-exclusives with each other\n const shouldDisplayLoadingMore = isLoadingMore;\n const shouldDisplayLoadMoreBtn = withLoadMore && !isLoadingMore;\n const shouldNotTakeSpace = !withLoadMore && !isLoadingMore;\n const { onLoadMoreButtonKeyDown } = useLoadMoreBtnArrowNavigation(panelMetaInfo);\n\n if (shouldNotTakeSpace) return <div />;\n return (\n <StyledListWrapperBottom\n cols={wrapperColsRows}\n rows={wrapperColsRows}\n onFocus={onBottomSectionFocus}\n onKeyDown={onLoadMoreButtonKeyDown}\n >\n {shouldDisplayLoadingMore ? <LoadingMore {...panelMetaInfo} /> : null}\n {shouldDisplayLoadMoreBtn ? <LoadMoreBtn {...panelMetaInfo} /> : null}\n </StyledListWrapperBottom>\n );\n});\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADwCU;AAtCjC,mBAAkB;AAClB,uBAAuB;AACvB,qBAAqB;AACrB,6BAAgC;AAChC,sBAA8B;AAE9B,yBAA4B;AAC5B,yBAA4B;AAC5B,2CAA8C;AAC9C,oCAAkD;AAElD,MAAM,8BAA0B,yBAAO,qBAAM,EAAE,MAAM,+CAAiB,MAAM,+CAAiB,oBAAoB,CAAC;AAAA;AAAA;AAAA;AAIlH,MAAM,kBAAkB,CAAC,KAAK;AAEvB,MAAM,4BAA4B,aAAAA,QAAM,KAAK,CAAC,kBAA8C;AACjG,QAAM,EAAE,qBAAqB,MAAM,IAAI;AACvC,QAAM,mBAAe;AAAA,IAAc,CAAC,UAClC,qBAAqB,MAAM,0BAA0B,MAAM;AAAA,EAC7D;AACA,QAAM,oBAAgB;AAAA,IAAc,CAAC,UACnC,qBAAqB,MAAM,2BAA2B,MAAM;AAAA,EAC9D;AACA,QAAM,EAAE,wBAAwB,uBAAuB,sBAAsB,QAAI,wCAAgB;AACjG,QAAM,uBAAuB,aAAAA,QAAM,YAAY,MAAM;AACnD,2BAAuB,kBAAkB;AACzC,0BAAsB;AACtB,0BAAsB;AAAA,EACxB,GAAG,CAAC,oBAAoB,uBAAuB,uBAAuB,sBAAsB,CAAC;AAG7F,QAAM,2BAA2B;AACjC,QAAM,2BAA2B,gBAAgB,CAAC;AAClD,QAAM,qBAAqB,CAAC,gBAAgB,CAAC;AAC7C,QAAM,EAAE,wBAAwB,QAAI,oEAA8B,aAAa;AAE/E,MAAI;AAAoB,WAAO,4CAAC,SAAI;AACpC,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAM;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,MACT,WAAW;AAAA,MAEV;AAAA,mCAA2B,4CAAC,kCAAa,GAAG,eAAe,IAAK;AAAA,QAChE,2BAA2B,4CAAC,kCAAa,GAAG,eAAe,IAAK;AAAA;AAAA;AAAA,EACnE;AAEJ,CAAC;",
4
+ "sourcesContent": ["/* eslint-disable no-unused-vars */\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React from 'react';\nimport { styled } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { useFocusTracker } from '../../../config/useFocusTracker';\nimport { usePropsStore } from '../../../config/useStore';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types';\nimport { LoadMoreBtn } from './LoadMoreBtn';\nimport { LoadingMore } from './LoadingMore';\nimport { useLoadMoreBtnArrowNavigation } from './useLoadMoreBtnArrowNavigation';\n\nconst StyledListWrapperBottom = styled(Grid, { name: 'ds-shuttle-v2', slot: 'list-wrapper-bottom' })`\n min-height: 36px;\n border-top: 1px solid neutral-400;\n`;\nconst wrapperColsRows = ['1fr'];\n\nexport const PanelContentBottomSection = React.memo((panelMetaInfo: DSShuttleV2T.PanelMetaInfo) => {\n const { isDestinationPanel = false } = panelMetaInfo;\n const withLoadMore = usePropsStore((state) =>\n isDestinationPanel ? state.destinationWithLoadMore : state.sourceWithLoadMore,\n );\n const isLoadingMore = usePropsStore((state) =>\n isDestinationPanel ? state.destinationIsLoadingMore : state.sourceIsLoadingMore,\n );\n const { trackFocusRegionBottom, trackFocusLoadMoreBtn, trackFocusActionReset } = useFocusTracker();\n const onBottomSectionFocus = React.useCallback(() => {\n trackFocusRegionBottom(isDestinationPanel);\n trackFocusLoadMoreBtn();\n trackFocusActionReset();\n }, [isDestinationPanel, trackFocusActionReset, trackFocusLoadMoreBtn, trackFocusRegionBottom]);\n\n // this 3 booleans MUST be auto-exclusives with each other\n const shouldDisplayLoadingMore = isLoadingMore;\n const shouldDisplayLoadMoreBtn = withLoadMore && !isLoadingMore;\n const shouldNotTakeSpace = !withLoadMore && !isLoadingMore;\n const { onLoadMoreButtonKeyDown } = useLoadMoreBtnArrowNavigation(panelMetaInfo);\n\n if (shouldNotTakeSpace) return <div />;\n return (\n <StyledListWrapperBottom\n cols={wrapperColsRows}\n rows={wrapperColsRows}\n onFocus={onBottomSectionFocus}\n onKeyDown={onLoadMoreButtonKeyDown}\n >\n {shouldDisplayLoadingMore ? <LoadingMore {...panelMetaInfo} /> : null}\n {shouldDisplayLoadMoreBtn ? <LoadMoreBtn {...panelMetaInfo} /> : null}\n </StyledListWrapperBottom>\n );\n});\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADuCU;AArCjC,mBAAkB;AAClB,uBAAuB;AACvB,qBAAqB;AACrB,6BAAgC;AAChC,sBAA8B;AAE9B,yBAA4B;AAC5B,yBAA4B;AAC5B,2CAA8C;AAE9C,MAAM,8BAA0B,yBAAO,qBAAM,EAAE,MAAM,iBAAiB,MAAM,sBAAsB,CAAC;AAAA;AAAA;AAAA;AAInG,MAAM,kBAAkB,CAAC,KAAK;AAEvB,MAAM,4BAA4B,aAAAA,QAAM,KAAK,CAAC,kBAA8C;AACjG,QAAM,EAAE,qBAAqB,MAAM,IAAI;AACvC,QAAM,mBAAe;AAAA,IAAc,CAAC,UAClC,qBAAqB,MAAM,0BAA0B,MAAM;AAAA,EAC7D;AACA,QAAM,oBAAgB;AAAA,IAAc,CAAC,UACnC,qBAAqB,MAAM,2BAA2B,MAAM;AAAA,EAC9D;AACA,QAAM,EAAE,wBAAwB,uBAAuB,sBAAsB,QAAI,wCAAgB;AACjG,QAAM,uBAAuB,aAAAA,QAAM,YAAY,MAAM;AACnD,2BAAuB,kBAAkB;AACzC,0BAAsB;AACtB,0BAAsB;AAAA,EACxB,GAAG,CAAC,oBAAoB,uBAAuB,uBAAuB,sBAAsB,CAAC;AAG7F,QAAM,2BAA2B;AACjC,QAAM,2BAA2B,gBAAgB,CAAC;AAClD,QAAM,qBAAqB,CAAC,gBAAgB,CAAC;AAC7C,QAAM,EAAE,wBAAwB,QAAI,oEAA8B,aAAa;AAE/E,MAAI;AAAoB,WAAO,4CAAC,SAAI;AACpC,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAM;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,MACT,WAAW;AAAA,MAEV;AAAA,mCAA2B,4CAAC,kCAAa,GAAG,eAAe,IAAK;AAAA,QAChE,2BAA2B,4CAAC,kCAAa,GAAG,eAAe,IAAK;AAAA;AAAA;AAAA,EACnE;AAEJ,CAAC;",
6
6
  "names": ["React"]
7
7
  }
@@ -30,19 +30,13 @@ module.exports = __toCommonJS(useLoadMoreBtnArrowNavigation_exports);
30
30
  var React = __toESM(require("react"));
31
31
  var import_react = __toESM(require("react"));
32
32
  var import_useFocusTracker = require("../../../config/useFocusTracker");
33
- var import_useStore = require("../../../config/useStore");
34
33
  const useLoadMoreBtnArrowNavigation = (panelMetaInfo) => {
35
34
  const { trackFocusPrevItem, trackFocusNextItem } = (0, import_useFocusTracker.useFocusItemTracker)();
36
35
  const { trackFocusActionParent } = (0, import_useFocusTracker.useFocusActionTrackers)();
37
36
  const { trackFocusRegionPanelItem } = (0, import_useFocusTracker.useFocusRegionTrackers)();
38
- const isActive = (0, import_useStore.useInternalStore)((state) => state.lastActiveId);
39
37
  const onLoadMoreButtonKeyDown = import_react.default.useCallback(
40
38
  (e) => {
41
39
  const { key } = e;
42
- if (isActive) {
43
- e.preventDefault();
44
- return;
45
- }
46
40
  if (["ArrowUp", "ArrowDown"].includes(key))
47
41
  e.preventDefault();
48
42
  if (["ArrowUp", "ArrowDown"].includes(key))
@@ -58,14 +52,7 @@ const useLoadMoreBtnArrowNavigation = (panelMetaInfo) => {
58
52
  trackFocusActionParent();
59
53
  }
60
54
  },
61
- [
62
- isActive,
63
- trackFocusRegionPanelItem,
64
- panelMetaInfo,
65
- trackFocusNextItem,
66
- trackFocusActionParent,
67
- trackFocusPrevItem
68
- ]
55
+ [trackFocusRegionPanelItem, panelMetaInfo, trackFocusNextItem, trackFocusActionParent, trackFocusPrevItem]
69
56
  );
70
57
  return import_react.default.useMemo(() => ({ onLoadMoreButtonKeyDown }), [onLoadMoreButtonKeyDown]);
71
58
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/parts/Panel/bottom/useLoadMoreBtnArrowNavigation.tsx", "../../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["import React from 'react';\nimport { useFocusItemTracker, useFocusActionTrackers, useFocusRegionTrackers } from '../../../config/useFocusTracker';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types';\nimport { useInternalStore } from '../../../config/useStore';\n\nexport const useLoadMoreBtnArrowNavigation = (panelMetaInfo: DSShuttleV2T.PanelMetaInfo) => {\n const { trackFocusPrevItem, trackFocusNextItem } = useFocusItemTracker();\n const { trackFocusActionParent } = useFocusActionTrackers();\n const { trackFocusRegionPanelItem } = useFocusRegionTrackers();\n const isActive = useInternalStore((state) => state.lastActiveId);\n\n const onLoadMoreButtonKeyDown = React.useCallback<React.KeyboardEventHandler<HTMLDivElement>>(\n (e) => {\n const { key } = e;\n if (isActive) {\n e.preventDefault();\n return;\n }\n // stopping prepagation it's required to avoid \"ArrowUp/ArrowDown\" to trigger parents logic\n // preventDefault it's just me thinking it's good idea when stopping propagation\n if (['ArrowUp', 'ArrowDown'].includes(key)) e.preventDefault();\n if (['ArrowUp', 'ArrowDown'].includes(key)) e.stopPropagation();\n\n // =============================================================================\n // THIS IS NOT LIKE /src/parts/Item/useItemArrowNavigation.tsx\n // THIS IS INVERTED BY DESIGN AND DESIRED TO BE INVERTED\n // =============================================================================\n // load-more-btn -> last element\n if (key === 'ArrowUp') {\n trackFocusRegionPanelItem(panelMetaInfo.isDestinationPanel);\n trackFocusNextItem(panelMetaInfo); // this results in \"Last\" element of the list\n trackFocusActionParent();\n }\n // load-more-btn -> first element\n if (key === 'ArrowDown') {\n trackFocusRegionPanelItem(panelMetaInfo.isDestinationPanel);\n trackFocusPrevItem(panelMetaInfo); // this results in \"First\" element of the list\n trackFocusActionParent();\n }\n },\n [\n isActive,\n trackFocusRegionPanelItem,\n panelMetaInfo,\n trackFocusNextItem,\n trackFocusActionParent,\n trackFocusPrevItem,\n ],\n );\n\n return React.useMemo(() => ({ onLoadMoreButtonKeyDown }), [onLoadMoreButtonKeyDown]);\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAkB;AAClB,6BAAoF;AAEpF,sBAAiC;AAE1B,MAAM,gCAAgC,CAAC,kBAA8C;AAC1F,QAAM,EAAE,oBAAoB,mBAAmB,QAAI,4CAAoB;AACvE,QAAM,EAAE,uBAAuB,QAAI,+CAAuB;AAC1D,QAAM,EAAE,0BAA0B,QAAI,+CAAuB;AAC7D,QAAM,eAAW,kCAAiB,CAAC,UAAU,MAAM,YAAY;AAE/D,QAAM,0BAA0B,aAAAA,QAAM;AAAA,IACpC,CAAC,MAAM;AACL,YAAM,EAAE,IAAI,IAAI;AAChB,UAAI,UAAU;AACZ,UAAE,eAAe;AACjB;AAAA,MACF;AAGA,UAAI,CAAC,WAAW,WAAW,EAAE,SAAS,GAAG;AAAG,UAAE,eAAe;AAC7D,UAAI,CAAC,WAAW,WAAW,EAAE,SAAS,GAAG;AAAG,UAAE,gBAAgB;AAO9D,UAAI,QAAQ,WAAW;AACrB,kCAA0B,cAAc,kBAAkB;AAC1D,2BAAmB,aAAa;AAChC,+BAAuB;AAAA,MACzB;AAEA,UAAI,QAAQ,aAAa;AACvB,kCAA0B,cAAc,kBAAkB;AAC1D,2BAAmB,aAAa;AAChC,+BAAuB;AAAA,MACzB;AAAA,IACF;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAEA,SAAO,aAAAA,QAAM,QAAQ,OAAO,EAAE,wBAAwB,IAAI,CAAC,uBAAuB,CAAC;AACrF;",
4
+ "sourcesContent": ["import React from 'react';\nimport { useFocusItemTracker, useFocusActionTrackers, useFocusRegionTrackers } from '../../../config/useFocusTracker';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types';\n\nexport const useLoadMoreBtnArrowNavigation = (panelMetaInfo: DSShuttleV2T.PanelMetaInfo) => {\n const { trackFocusPrevItem, trackFocusNextItem } = useFocusItemTracker();\n const { trackFocusActionParent } = useFocusActionTrackers();\n const { trackFocusRegionPanelItem } = useFocusRegionTrackers();\n\n const onLoadMoreButtonKeyDown = React.useCallback<React.KeyboardEventHandler<HTMLDivElement>>(\n (e) => {\n const { key } = e;\n // stopping prepagation it's required to avoid \"ArrowUp/ArrowDown\" to trigger parents logic\n // preventDefault it's just me thinking it's good idea when stopping propagation\n if (['ArrowUp', 'ArrowDown'].includes(key)) e.preventDefault();\n if (['ArrowUp', 'ArrowDown'].includes(key)) e.stopPropagation();\n\n // =============================================================================\n // THIS IS NOT LIKE /src/parts/Item/useItemArrowNavigation.tsx\n // THIS IS INVERTED BY DESIGN AND DESIRED TO BE INVERTED\n // =============================================================================\n // load-more-btn -> last element\n if (key === 'ArrowUp') {\n trackFocusRegionPanelItem(panelMetaInfo.isDestinationPanel);\n trackFocusNextItem(panelMetaInfo); // this results in \"Last\" element of the list\n trackFocusActionParent();\n }\n // load-more-btn -> first element\n if (key === 'ArrowDown') {\n trackFocusRegionPanelItem(panelMetaInfo.isDestinationPanel);\n trackFocusPrevItem(panelMetaInfo); // this results in \"First\" element of the list\n trackFocusActionParent();\n }\n },\n [trackFocusRegionPanelItem, panelMetaInfo, trackFocusNextItem, trackFocusActionParent, trackFocusPrevItem],\n );\n\n return React.useMemo(() => ({ onLoadMoreButtonKeyDown }), [onLoadMoreButtonKeyDown]);\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAkB;AAClB,6BAAoF;AAG7E,MAAM,gCAAgC,CAAC,kBAA8C;AAC1F,QAAM,EAAE,oBAAoB,mBAAmB,QAAI,4CAAoB;AACvE,QAAM,EAAE,uBAAuB,QAAI,+CAAuB;AAC1D,QAAM,EAAE,0BAA0B,QAAI,+CAAuB;AAE7D,QAAM,0BAA0B,aAAAA,QAAM;AAAA,IACpC,CAAC,MAAM;AACL,YAAM,EAAE,IAAI,IAAI;AAGhB,UAAI,CAAC,WAAW,WAAW,EAAE,SAAS,GAAG;AAAG,UAAE,eAAe;AAC7D,UAAI,CAAC,WAAW,WAAW,EAAE,SAAS,GAAG;AAAG,UAAE,gBAAgB;AAO9D,UAAI,QAAQ,WAAW;AACrB,kCAA0B,cAAc,kBAAkB;AAC1D,2BAAmB,aAAa;AAChC,+BAAuB;AAAA,MACzB;AAEA,UAAI,QAAQ,aAAa;AACvB,kCAA0B,cAAc,kBAAkB;AAC1D,2BAAmB,aAAa;AAChC,+BAAuB;AAAA,MACzB;AAAA,IACF;AAAA,IACA,CAAC,2BAA2B,eAAe,oBAAoB,wBAAwB,kBAAkB;AAAA,EAC3G;AAEA,SAAO,aAAAA,QAAM,QAAQ,OAAO,EAAE,wBAAwB,IAAI,CAAC,uBAAuB,CAAC;AACrF;",
6
6
  "names": ["React"]
7
7
  }
@@ -31,8 +31,7 @@ var React = __toESM(require("react"));
31
31
  var import_jsx_runtime = require("react/jsx-runtime");
32
32
  var import_ds_system = require("@elliemae/ds-system");
33
33
  var import_ds_grid = require("@elliemae/ds-grid");
34
- var import_DSShuttleV2Definitions = require("../../../config/DSShuttleV2Definitions");
35
- const StyledEmptyListWrapper = (0, import_ds_system.styled)(import_ds_grid.Grid, { name: import_DSShuttleV2Definitions.DSShuttleV2Name, slot: import_DSShuttleV2Definitions.DSShuttleV2Slots.EMPTY_LIST_WRAPPER })`
34
+ const StyledEmptyListWrapper = (0, import_ds_system.styled)(import_ds_grid.Grid, { name: "ds-shuttle-v2", slot: "empty-list-wrapper" })`
36
35
  color: neutral-500;
37
36
  `;
38
37
  const EmptyItems = (panelMetaInfo) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StyledEmptyListWrapper, { alignItems: "center", justifyContent: "center", children: "There are no items to display" });
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/parts/Panel/middle/EmptyItems.tsx", "../../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["/* 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", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADYrB;AATF,uBAAuB;AACvB,qBAAqB;AAErB,oCAAkD;AAElD,MAAM,6BAAyB,yBAAO,qBAAM,EAAE,MAAM,+CAAiB,MAAM,+CAAiB,mBAAmB,CAAC;AAAA;AAAA;AAGzG,MAAM,aAAa,CAAC,kBACzB,4CAAC,0BAAuB,YAAW,UAAS,gBAAe,UAAS,2CAEpE;",
4
+ "sourcesContent": ["/* 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';\n\nconst StyledEmptyListWrapper = styled(Grid, { name: 'ds-shuttle-v2', slot: '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", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADWrB;AARF,uBAAuB;AACvB,qBAAqB;AAGrB,MAAM,6BAAyB,yBAAO,qBAAM,EAAE,MAAM,iBAAiB,MAAM,qBAAqB,CAAC;AAAA;AAAA;AAG1F,MAAM,aAAa,CAAC,kBACzB,4CAAC,0BAAuB,YAAW,UAAS,gBAAe,UAAS,2CAEpE;",
6
6
  "names": []
7
7
  }
@@ -24,74 +24,128 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
24
24
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
25
25
  var ItemListWrapper_exports = {};
26
26
  __export(ItemListWrapper_exports, {
27
- ItemListWrapperWithContext: () => ItemListWrapperWithContext,
28
- default: () => ItemListWrapper_default
27
+ ItemListWrapper: () => ItemListWrapper
29
28
  });
30
29
  module.exports = __toCommonJS(ItemListWrapper_exports);
31
30
  var React = __toESM(require("react"));
32
31
  var import_jsx_runtime = require("react/jsx-runtime");
33
32
  var import_react = __toESM(require("react"));
33
+ var import_ds_utilities = require("@elliemae/ds-utilities");
34
34
  var import_ds_grid = require("@elliemae/ds-grid");
35
35
  var import_ds_system = require("@elliemae/ds-system");
36
36
  var import_useStore = require("../../../config/useStore");
37
+ var import_useFocusTracker = require("../../../config/useFocusTracker");
38
+ var import_constants = require("../../../constants");
37
39
  var import_Item = require("../../Item/Item");
38
- var import_withConditionalDnDRowContext = require("../../HoC/withConditionalDnDRowContext");
39
- var import_DSShuttleV2Definitions = require("../../../config/DSShuttleV2Definitions");
40
- const StyledItemsWrapper = (0, import_ds_system.styled)(import_ds_grid.Grid, { name: import_DSShuttleV2Definitions.DSShuttleV2Name, slot: import_DSShuttleV2Definitions.DSShuttleV2Slots.ITEMS_WRAPPER })`
40
+ var import_MultipleSelectionAction = require("./MultipleSelectionAction");
41
+ const StyledItemsWrapper = (0, import_ds_system.styled)(import_ds_grid.Grid, { name: "ds-shuttle-v2", slot: "items-wrapper" })`
41
42
  position: relative;
42
-
43
- // .ds-shuttle-v2-move-multiple-wrapper {
44
- // top: 2px;
45
- // right: 2px;
46
- // height: calc(100% - 4px);
47
- // width: calc(65px - 2px);
48
- // }
43
+ :focus,
44
+ :focus-visible {
45
+ outline: 2px solid brand-700;
46
+ outline-offset: -2px;
47
+ // .ds-shuttle-v2-move-multiple-wrapper {
48
+ // top: 2px;
49
+ // right: 2px;
50
+ // height: calc(100% - 4px);
51
+ // width: calc(65px - 2px);
52
+ // }
53
+ }
49
54
  `;
55
+ const useInnerRefHandlers = ({ isDestinationPanel }) => {
56
+ const focusRegion = (0, import_useStore.useInternalStore)((state) => state.focusRegion);
57
+ const focusItem = (0, import_useStore.useInternalStore)((state) => state.focusItem);
58
+ const focusItemAction = (0, import_useStore.useInternalStore)((state) => state.focusItemAction);
59
+ const currRegion = isDestinationPanel ? import_constants.REGIONS_FOCUSES.DESTINATION_PANEL : import_constants.REGIONS_FOCUSES.SOURCE_PANEL;
60
+ const shouldFocus = import_react.default.useMemo(
61
+ () => focusRegion === currRegion && focusItem === "" && focusItemAction === "",
62
+ [currRegion, focusItem, focusItemAction, focusRegion]
63
+ );
64
+ const innerRefHandlerParentItem = import_react.default.useCallback(
65
+ (node) => {
66
+ if (shouldFocus) {
67
+ node?.focus();
68
+ }
69
+ },
70
+ [shouldFocus]
71
+ );
72
+ return import_react.default.useMemo(() => ({ shouldFocus, innerRefHandlerParentItem }), [shouldFocus, innerRefHandlerParentItem]);
73
+ };
50
74
  const ItemListWrapper = import_react.default.memo((panelMetaInfo) => {
51
75
  const { isDestinationPanel } = panelMetaInfo;
52
76
  const itemList = (0, import_useStore.useInternalStore)(
53
77
  (state) => isDestinationPanel ? state.destinationConfiguredData : state.sourceConfiguredData
54
78
  );
55
- const totalSize = (0, import_useStore.useInternalStore)(
56
- (state) => isDestinationPanel ? state.destinationTotalSize : state.sourceTotalSize
57
- );
58
- const virtualItems = (0, import_useStore.useInternalStore)(
59
- (state) => isDestinationPanel ? state.destinationVirtualItems : state.sourceVirtualItems
60
- );
61
- const withDragNDrop = (0, import_useStore.usePropsStore)(
62
- (state) => isDestinationPanel ? !state.removeDragAndDropFromDestination : state.addDragAndDropFromSource
79
+ const withLoadMore = (0, import_useStore.usePropsStore)(
80
+ (state) => isDestinationPanel ? state.destinationWithLoadMore : state.sourceWithLoadMore
63
81
  );
82
+ const destinationHasMultipleSelectedItems = (0, import_useStore.useInternalStore)((store) => store.destinationHasMultipleSelectedItems);
83
+ const sourceHasMultipleSelectedItems = (0, import_useStore.useInternalStore)((store) => store.sourceHasMultipleSelectedItems);
84
+ const hasMultipleSelection = isDestinationPanel ? destinationHasMultipleSelectedItems : sourceHasMultipleSelectedItems;
64
85
  const rows = import_react.default.useMemo(
65
86
  () => [`repeat(${itemList?.length ? itemList?.length : "0"},min-content)`],
66
87
  [itemList.length]
67
88
  );
68
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StyledItemsWrapper, { alignItems: "flex-start", rows, style: { height: `${totalSize}px` }, children: virtualItems?.map((virtualRow) => {
69
- const item = itemList[virtualRow.index];
70
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
71
- "div",
72
- {
73
- style: {
74
- position: "absolute",
75
- top: 0,
76
- left: 0,
77
- width: "100%",
78
- height: `${virtualRow.size}px`,
79
- transform: `translateY(${virtualRow.start}px)`
80
- },
81
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
82
- import_Item.ItemSortable,
83
- {
84
- item,
85
- isDestinationPanel,
86
- withDragNDrop
87
- },
88
- item.original.id
89
- )
90
- },
91
- virtualRow.index
92
- );
93
- }) });
89
+ const {
90
+ trackFocusRegionPanel,
91
+ trackFocusItemFirst,
92
+ trackFocusItemLast,
93
+ trackFocusActionParent,
94
+ trackFocusRegionPanelItem,
95
+ trackFocusLoadMoreBtn
96
+ } = (0, import_useFocusTracker.useFocusTracker)();
97
+ const config = import_react.default.useMemo(
98
+ () => ({
99
+ onFocus: () => {
100
+ trackFocusRegionPanel(isDestinationPanel);
101
+ }
102
+ }),
103
+ [trackFocusRegionPanel, isDestinationPanel]
104
+ );
105
+ const onPanelFocus = (0, import_ds_utilities.useOnSpecificFocus)(config);
106
+ const onPanelKeyDown = import_react.default.useCallback(
107
+ (e) => {
108
+ const { key } = e;
109
+ if (["Home", "End", "ArrowUp", "ArrowDown"].includes(key)) {
110
+ e.preventDefault();
111
+ e.stopPropagation();
112
+ trackFocusRegionPanelItem(isDestinationPanel);
113
+ trackFocusActionParent();
114
+ if (key === "ArrowDown" || key === "Home")
115
+ trackFocusItemFirst();
116
+ if (key === "ArrowUp" || key === "End") {
117
+ if (withLoadMore)
118
+ trackFocusLoadMoreBtn();
119
+ else
120
+ trackFocusItemLast();
121
+ }
122
+ }
123
+ },
124
+ [
125
+ isDestinationPanel,
126
+ trackFocusActionParent,
127
+ trackFocusItemFirst,
128
+ trackFocusItemLast,
129
+ trackFocusLoadMoreBtn,
130
+ trackFocusRegionPanelItem,
131
+ withLoadMore
132
+ ]
133
+ );
134
+ const { innerRefHandlerParentItem } = useInnerRefHandlers(panelMetaInfo);
135
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
136
+ StyledItemsWrapper,
137
+ {
138
+ alignItems: "flex-start",
139
+ rows,
140
+ tabIndex: 0,
141
+ ref: innerRefHandlerParentItem,
142
+ onFocus: onPanelFocus,
143
+ onKeyDown: onPanelKeyDown,
144
+ children: [
145
+ itemList.map((item) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Item.Item, { item, isDestinationPanel }, item.original.id)),
146
+ hasMultipleSelection ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_MultipleSelectionAction.MultipleSelectionAction, { isDestinationPanel }) : null
147
+ ]
148
+ }
149
+ );
94
150
  });
95
- const ItemListWrapperWithContext = (0, import_withConditionalDnDRowContext.withConditionalDnDRowContext)(ItemListWrapper);
96
- var ItemListWrapper_default = ItemListWrapperWithContext;
97
151
  //# sourceMappingURL=ItemListWrapper.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/parts/Panel/middle/ItemListWrapper.tsx", "../../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["import React from 'react';\nimport { Grid } from '@elliemae/ds-grid';\nimport { styled } from '@elliemae/ds-system';\nimport { useInternalStore, usePropsStore } from '../../../config/useStore';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types';\nimport { ItemSortable } from '../../Item/Item';\nimport { withConditionalDnDRowContext } from '../../HoC/withConditionalDnDRowContext';\nimport { DSShuttleV2Name, DSShuttleV2Slots } from '../../../config/DSShuttleV2Definitions';\n\nconst StyledItemsWrapper = styled(Grid, { name: DSShuttleV2Name, slot: DSShuttleV2Slots.ITEMS_WRAPPER })`\n position: relative;\n\n // .ds-shuttle-v2-move-multiple-wrapper {\n // top: 2px;\n // right: 2px;\n // height: calc(100% - 4px);\n // width: calc(65px - 2px);\n // }\n`;\n\nconst ItemListWrapper = React.memo((panelMetaInfo: DSShuttleV2T.PanelMetaInfo) => {\n const { isDestinationPanel } = panelMetaInfo;\n const itemList = useInternalStore((state) =>\n isDestinationPanel ? state.destinationConfiguredData : state.sourceConfiguredData,\n );\n\n const totalSize = useInternalStore((state) =>\n isDestinationPanel ? state.destinationTotalSize : state.sourceTotalSize,\n );\n\n const virtualItems = useInternalStore((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 return (\n <StyledItemsWrapper alignItems=\"flex-start\" rows={rows} style={{ height: `${totalSize}px` }}>\n {virtualItems?.map((virtualRow) => {\n const item = itemList[virtualRow.index];\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 <ItemSortable\n key={item.original.id}\n item={item}\n isDestinationPanel={isDestinationPanel}\n withDragNDrop={withDragNDrop}\n />\n </div>\n );\n })}\n </StyledItemsWrapper>\n );\n});\n\nexport const ItemListWrapperWithContext = withConditionalDnDRowContext(ItemListWrapper);\nexport default ItemListWrapperWithContext;\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;AD2DX;AA3DZ,mBAAkB;AAClB,qBAAqB;AACrB,uBAAuB;AACvB,sBAAgD;AAEhD,kBAA6B;AAC7B,0CAA6C;AAC7C,oCAAkD;AAElD,MAAM,yBAAqB,yBAAO,qBAAM,EAAE,MAAM,+CAAiB,MAAM,+CAAiB,cAAc,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAWvG,MAAM,kBAAkB,aAAAA,QAAM,KAAK,CAAC,kBAA8C;AAChF,QAAM,EAAE,mBAAmB,IAAI;AAC/B,QAAM,eAAW;AAAA,IAAiB,CAAC,UACjC,qBAAqB,MAAM,4BAA4B,MAAM;AAAA,EAC/D;AAEA,QAAM,gBAAY;AAAA,IAAiB,CAAC,UAClC,qBAAqB,MAAM,uBAAuB,MAAM;AAAA,EAC1D;AAEA,QAAM,mBAAe;AAAA,IAAiB,CAAC,UACrC,qBAAqB,MAAM,0BAA0B,MAAM;AAAA,EAC7D;AAEA,QAAM,oBAAgB;AAAA,IAAc,CAAC,UACnC,qBAAqB,CAAC,MAAM,mCAAmC,MAAM;AAAA,EACvE;AAEA,QAAM,OAAO,aAAAA,QAAM;AAAA,IACjB,MAAM,CAAC,UAAU,UAAU,SAAS,UAAU,SAAS,kBAAkB;AAAA,IACzE,CAAC,SAAS,MAAM;AAAA,EAClB;AAEA,SACE,4CAAC,sBAAmB,YAAW,cAAa,MAAY,OAAO,EAAE,QAAQ,GAAG,cAAc,GACvF,wBAAc,IAAI,CAAC,eAAe;AACjC,UAAM,OAAO,SAAS,WAAW;AACjC,WACE;AAAA,MAAC;AAAA;AAAA,QAEC,OAAO;AAAA,UACL,UAAU;AAAA,UACV,KAAK;AAAA,UACL,MAAM;AAAA,UACN,OAAO;AAAA,UACP,QAAQ,GAAG,WAAW;AAAA,UACtB,WAAW,cAAc,WAAW;AAAA,QACtC;AAAA,QAEA;AAAA,UAAC;AAAA;AAAA,YAEC;AAAA,YACA;AAAA,YACA;AAAA;AAAA,UAHK,KAAK,SAAS;AAAA,QAIrB;AAAA;AAAA,MAfK,WAAW;AAAA,IAgBlB;AAAA,EAEJ,CAAC,GACH;AAEJ,CAAC;AAEM,MAAM,iCAA6B,kEAA6B,eAAe;AACtF,IAAO,0BAAQ;",
4
+ "sourcesContent": ["import React from 'react';\nimport { useOnSpecificFocus } from '@elliemae/ds-utilities';\nimport { Grid } from '@elliemae/ds-grid';\nimport { styled } from '@elliemae/ds-system';\nimport { useInternalStore, usePropsStore } from '../../../config/useStore';\nimport { useFocusTracker } from '../../../config/useFocusTracker';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types';\nimport { REGIONS_FOCUSES } from '../../../constants';\nimport { Item } from '../../Item/Item';\nimport { MultipleSelectionAction } from './MultipleSelectionAction';\n\nconst StyledItemsWrapper = styled(Grid, { name: 'ds-shuttle-v2', slot: 'items-wrapper' })`\n position: relative;\n :focus,\n :focus-visible {\n outline: 2px solid brand-700;\n outline-offset: -2px;\n // .ds-shuttle-v2-move-multiple-wrapper {\n // top: 2px;\n // right: 2px;\n // height: calc(100% - 4px);\n // width: calc(65px - 2px);\n // }\n }\n`;\n\nconst useInnerRefHandlers = ({ isDestinationPanel }: DSShuttleV2T.PanelMetaInfo) => {\n const focusRegion = useInternalStore((state) => state.focusRegion);\n const focusItem = useInternalStore((state) => state.focusItem);\n const focusItemAction = useInternalStore((state) => state.focusItemAction);\n const currRegion = isDestinationPanel ? REGIONS_FOCUSES.DESTINATION_PANEL : REGIONS_FOCUSES.SOURCE_PANEL;\n\n const shouldFocus = React.useMemo(\n () => focusRegion === currRegion && focusItem === '' && focusItemAction === '',\n [currRegion, focusItem, focusItemAction, focusRegion],\n );\n const innerRefHandlerParentItem = React.useCallback(\n (node: HTMLDivElement) => {\n if (shouldFocus) {\n node?.focus();\n }\n },\n [shouldFocus],\n );\n return React.useMemo(() => ({ shouldFocus, innerRefHandlerParentItem }), [shouldFocus, innerRefHandlerParentItem]);\n};\n\nexport const ItemListWrapper = React.memo((panelMetaInfo: DSShuttleV2T.PanelMetaInfo) => {\n const { isDestinationPanel } = panelMetaInfo;\n const itemList = useInternalStore((state) =>\n isDestinationPanel ? state.destinationConfiguredData : state.sourceConfiguredData,\n );\n const withLoadMore = usePropsStore((state) =>\n isDestinationPanel ? state.destinationWithLoadMore : state.sourceWithLoadMore,\n );\n const destinationHasMultipleSelectedItems = useInternalStore((store) => store.destinationHasMultipleSelectedItems);\n const sourceHasMultipleSelectedItems = useInternalStore((store) => store.sourceHasMultipleSelectedItems);\n const hasMultipleSelection = isDestinationPanel\n ? destinationHasMultipleSelectedItems\n : sourceHasMultipleSelectedItems;\n\n const rows = React.useMemo(\n () => [`repeat(${itemList?.length ? itemList?.length : '0'},min-content)`],\n [itemList.length],\n );\n const {\n trackFocusRegionPanel,\n trackFocusItemFirst,\n trackFocusItemLast,\n trackFocusActionParent,\n trackFocusRegionPanelItem,\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 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') trackFocusItemFirst();\n if (key === 'ArrowUp' || key === 'End') {\n if (withLoadMore) trackFocusLoadMoreBtn();\n else trackFocusItemLast();\n }\n }\n },\n [\n isDestinationPanel,\n trackFocusActionParent,\n trackFocusItemFirst,\n trackFocusItemLast,\n trackFocusLoadMoreBtn,\n trackFocusRegionPanelItem,\n withLoadMore,\n ],\n );\n const { innerRefHandlerParentItem } = useInnerRefHandlers(panelMetaInfo);\n return (\n <StyledItemsWrapper\n alignItems=\"flex-start\"\n rows={rows}\n tabIndex={0}\n ref={innerRefHandlerParentItem}\n onFocus={onPanelFocus}\n onKeyDown={onPanelKeyDown}\n >\n {itemList.map((item) => (\n <Item key={item.original.id} item={item} isDestinationPanel={isDestinationPanel} />\n ))}\n {hasMultipleSelection ? <MultipleSelectionAction isDestinationPanel={isDestinationPanel} /> : null}\n </StyledItemsWrapper>\n );\n});\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;AD+GnB;AA/GJ,mBAAkB;AAClB,0BAAmC;AACnC,qBAAqB;AACrB,uBAAuB;AACvB,sBAAgD;AAChD,6BAAgC;AAEhC,uBAAgC;AAChC,kBAAqB;AACrB,qCAAwC;AAExC,MAAM,yBAAqB,yBAAO,qBAAM,EAAE,MAAM,iBAAiB,MAAM,gBAAgB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAexF,MAAM,sBAAsB,CAAC,EAAE,mBAAmB,MAAkC;AAClF,QAAM,kBAAc,kCAAiB,CAAC,UAAU,MAAM,WAAW;AACjE,QAAM,gBAAY,kCAAiB,CAAC,UAAU,MAAM,SAAS;AAC7D,QAAM,sBAAkB,kCAAiB,CAAC,UAAU,MAAM,eAAe;AACzE,QAAM,aAAa,qBAAqB,iCAAgB,oBAAoB,iCAAgB;AAE5F,QAAM,cAAc,aAAAA,QAAM;AAAA,IACxB,MAAM,gBAAgB,cAAc,cAAc,MAAM,oBAAoB;AAAA,IAC5E,CAAC,YAAY,WAAW,iBAAiB,WAAW;AAAA,EACtD;AACA,QAAM,4BAA4B,aAAAA,QAAM;AAAA,IACtC,CAAC,SAAyB;AACxB,UAAI,aAAa;AACf,cAAM,MAAM;AAAA,MACd;AAAA,IACF;AAAA,IACA,CAAC,WAAW;AAAA,EACd;AACA,SAAO,aAAAA,QAAM,QAAQ,OAAO,EAAE,aAAa,0BAA0B,IAAI,CAAC,aAAa,yBAAyB,CAAC;AACnH;AAEO,MAAM,kBAAkB,aAAAA,QAAM,KAAK,CAAC,kBAA8C;AACvF,QAAM,EAAE,mBAAmB,IAAI;AAC/B,QAAM,eAAW;AAAA,IAAiB,CAAC,UACjC,qBAAqB,MAAM,4BAA4B,MAAM;AAAA,EAC/D;AACA,QAAM,mBAAe;AAAA,IAAc,CAAC,UAClC,qBAAqB,MAAM,0BAA0B,MAAM;AAAA,EAC7D;AACA,QAAM,0CAAsC,kCAAiB,CAAC,UAAU,MAAM,mCAAmC;AACjH,QAAM,qCAAiC,kCAAiB,CAAC,UAAU,MAAM,8BAA8B;AACvG,QAAM,uBAAuB,qBACzB,sCACA;AAEJ,QAAM,OAAO,aAAAA,QAAM;AAAA,IACjB,MAAM,CAAC,UAAU,UAAU,SAAS,UAAU,SAAS,kBAAkB;AAAA,IACzE,CAAC,SAAS,MAAM;AAAA,EAClB;AACA,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,QAAI,wCAAgB;AACpB,QAAM,SAAS,aAAAA,QAAM;AAAA,IACnB,OAAO;AAAA,MACL,SAAS,MAAM;AACb,8BAAsB,kBAAkB;AAAA,MAC1C;AAAA,IACF;AAAA,IACA,CAAC,uBAAuB,kBAAkB;AAAA,EAC5C;AACA,QAAM,mBAAe,wCAAmB,MAAM;AAE9C,QAAM,iBAAiB,aAAAA,QAAM;AAAA,IAC3B,CAAC,MAAM;AACL,YAAM,EAAE,IAAI,IAAI;AAChB,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;AAAQ,8BAAoB;AAC/D,YAAI,QAAQ,aAAa,QAAQ,OAAO;AACtC,cAAI;AAAc,kCAAsB;AAAA;AACnC,+BAAmB;AAAA,QAC1B;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACA,QAAM,EAAE,0BAA0B,IAAI,oBAAoB,aAAa;AACvE,SACE;AAAA,IAAC;AAAA;AAAA,MACC,YAAW;AAAA,MACX;AAAA,MACA,UAAU;AAAA,MACV,KAAK;AAAA,MACL,SAAS;AAAA,MACT,WAAW;AAAA,MAEV;AAAA,iBAAS,IAAI,CAAC,SACb,4CAAC,oBAA4B,MAAY,sBAA9B,KAAK,SAAS,EAAwD,CAClF;AAAA,QACA,uBAAuB,4CAAC,0DAAwB,oBAAwC,IAAK;AAAA;AAAA;AAAA,EAChG;AAEJ,CAAC;",
6
6
  "names": ["React"]
7
7
  }
@@ -32,8 +32,7 @@ var import_jsx_runtime = require("react/jsx-runtime");
32
32
  var import_ds_system = require("@elliemae/ds-system");
33
33
  var import_ds_grid = require("@elliemae/ds-grid");
34
34
  var import_ds_circular_progress_indicator = require("@elliemae/ds-circular-progress-indicator");
35
- var import_DSShuttleV2Definitions = require("../../../config/DSShuttleV2Definitions");
36
- const StyledLoadingListWrapper = (0, import_ds_system.styled)(import_ds_grid.Grid, { name: import_DSShuttleV2Definitions.DSShuttleV2Name, slot: import_DSShuttleV2Definitions.DSShuttleV2Slots.LOADING_LIST_WRAPPER })`
35
+ const StyledLoadingListWrapper = (0, import_ds_system.styled)(import_ds_grid.Grid, { name: "ds-shuttle-v2", slot: "loading-list-wrapper" })`
37
36
  color: neutral-500;
38
37
  `;
39
38
  const LoadingItems = (panelMetaInfo) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StyledLoadingListWrapper, { alignItems: "center", justifyContent: "center", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_circular_progress_indicator.DSCircularIndeterminateIndicator, { size: "xl", text: "Loading..." }) });
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/parts/Panel/middle/LoadingItems.tsx", "../../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["/* 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", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADcnB;AAXJ,uBAAuB;AACvB,qBAAqB;AACrB,4CAAiD;AAEjD,oCAAkD;AAElD,MAAM,+BAA2B,yBAAO,qBAAM,EAAE,MAAM,+CAAiB,MAAM,+CAAiB,qBAAqB,CAAC;AAAA;AAAA;AAG7G,MAAM,eAAe,CAAC,kBAC3B,4CAAC,4BAAyB,YAAW,UAAS,gBAAe,UAC3D,sDAAC,0EAAiC,MAAK,MAAK,MAAK,cAAa,GAChE;",
4
+ "sourcesContent": ["/* 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';\n\nconst StyledLoadingListWrapper = styled(Grid, { name: 'ds-shuttle-v2', slot: '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", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADanB;AAVJ,uBAAuB;AACvB,qBAAqB;AACrB,4CAAiD;AAGjD,MAAM,+BAA2B,yBAAO,qBAAM,EAAE,MAAM,iBAAiB,MAAM,uBAAuB,CAAC;AAAA;AAAA;AAG9F,MAAM,eAAe,CAAC,kBAC3B,4CAAC,4BAAyB,YAAW,UAAS,gBAAe,UAC3D,sDAAC,0EAAiC,MAAK,MAAK,MAAK,cAAa,GAChE;",
6
6
  "names": []
7
7
  }
@@ -36,13 +36,11 @@ var import_ds_button = require("@elliemae/ds-button");
36
36
  var import_ds_icons = require("@elliemae/ds-icons");
37
37
  var import_itemMovementHelpers = require("../../../config/itemMovementHelpers");
38
38
  var import_useFocusTracker = require("../../../config/useFocusTracker");
39
- var import_DSShuttleV2Definitions = require("../../../config/DSShuttleV2Definitions");
40
- const StyledMoveMultipleWrapper = (0, import_ds_system.styled)(import_ds_grid.Grid, { name: import_DSShuttleV2Definitions.DSShuttleV2Name, slot: import_DSShuttleV2Definitions.DSShuttleV2Slots.MOVE_MULTIPLE_WRAPPER })`
39
+ const StyledMoveMultipleWrapper = (0, import_ds_system.styled)(import_ds_grid.Grid, { name: "ds-shuttle-v2", slot: "move-multiple-wrapper" })`
41
40
  position: absolute;
42
41
  background-color: neutral-000;
43
42
  top: 0px;
44
43
  right: 0px;
45
- transform: translateX(0);
46
44
  height: 100%;
47
45
  width: 65px;
48
46
  :hover {
@@ -56,23 +54,23 @@ const StyledMoveMultipleWrapper = (0, import_ds_system.styled)(import_ds_grid.Gr
56
54
  }
57
55
  `;
58
56
  const StyledButton = (0, import_ds_system.styled)(import_ds_button.DSButtonV2, {
59
- name: import_DSShuttleV2Definitions.DSShuttleV2Name,
60
- slot: import_DSShuttleV2Definitions.DSShuttleV2Slots.MOVE_MULTIPLE_BTN
57
+ name: "ds-shuttle-v2",
58
+ slot: "move-multiple-btn"
61
59
  })`
62
60
  width: 100%;
63
61
  height: 100%;
64
62
  `;
65
63
  const StyledCloseMediumIcon = (0, import_ds_system.styled)(import_ds_icons.CloseMedium, {
66
- name: import_DSShuttleV2Definitions.DSShuttleV2Name,
67
- slot: import_DSShuttleV2Definitions.DSShuttleV2Slots.ITEM_ACTION_BTN_TO_SOURCE_ICON
64
+ name: "ds-shuttle-v2",
65
+ slot: "item-action-btn-to-source-icon"
68
66
  })`
69
67
  > svg {
70
68
  fill: brand-600;
71
69
  }
72
70
  `;
73
71
  const StyledArrowShortRightIcon = (0, import_ds_system.styled)(import_ds_icons.ArrowShortRight, {
74
- name: import_DSShuttleV2Definitions.DSShuttleV2Name,
75
- slot: import_DSShuttleV2Definitions.DSShuttleV2Slots.ITEM_ACTION_BTN_TO_DESTINATION_ICON
72
+ name: "ds-shuttle-v2",
73
+ slot: "item-action-btn-to-destination-icon"
76
74
  })`
77
75
  > svg {
78
76
  fill: brand-600;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/parts/Panel/middle/MultipleSelectionAction.tsx", "../../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["import React from 'react';\nimport { styled } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { DSButtonV2, type DSButtonT } from '@elliemae/ds-button';\nimport { ArrowShortRight, CloseMedium } from '@elliemae/ds-icons';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types';\nimport { useHandleMoveSelection } from '../../../config/itemMovementHelpers';\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: 65px;\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, trackFocusRegionPanelFocusAll, 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 trackFocusRegionPanelFocusAll(isDestinationPanel);\n }, [isDestinationPanel, trackFocusActionReset, trackFocusItemReset, trackFocusRegionPanelFocusAll]);\n\n return (\n <StyledMoveMultipleWrapper\n boxShadow=\"xs\"\n alignItems=\"center\"\n justifyContent=\"center\"\n cols={gridFullFraction}\n rows={gridFullFraction}\n >\n <StyledButton buttonType=\"icon\" onClick={handleMoveAllAction} onFocus={handleMoveAllBtnFocus}>\n {isDestinationPanel ? (\n <StyledCloseMediumIcon width=\"20px\" height=\"20px\" />\n ) : (\n <StyledArrowShortRightIcon width=\"20px\" height=\"20px\" />\n )}\n </StyledButton>\n </StyledMoveMultipleWrapper>\n );\n});\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADmFb;AAnFV,mBAAkB;AAClB,uBAAuB;AACvB,qBAAqB;AACrB,uBAA2C;AAC3C,sBAA6C;AAE7C,iCAAuC;AACvC,6BAAgC;AAChC,oCAAkD;AAElD,MAAM,gCAA4B,yBAAO,qBAAM,EAAE,MAAM,+CAAiB,MAAM,+CAAiB,sBAAsB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAkBtH,MAAM,mBAAe,yBAAO,6BAAY;AAAA,EACtC,MAAM;AAAA,EACN,MAAM,+CAAiB;AACzB,CAAC;AAAA;AAAA;AAAA;AAID,MAAM,4BAAwB,yBAAO,6BAAa;AAAA,EAChD,MAAM;AAAA,EACN,MAAM,+CAAiB;AACzB,CAAC;AAAA;AAAA;AAAA;AAAA;AAKD,MAAM,gCAA4B,yBAAO,iCAAiB;AAAA,EACxD,MAAM;AAAA,EACN,MAAM,+CAAiB;AACzB,CAAC;AAAA;AAAA;AAAA;AAAA;AAKD,MAAM,mBAAmB,CAAC,KAAK;AAExB,MAAM,0BAA0B,aAAAA,QAAM,KAAK,CAAC,cAA0C;AAC3F,QAAM,EAAE,mBAAmB,IAAI;AAC/B,QAAM,EAAE,cAAc,QAAI,mDAAuB,SAAS;AAC1D,QAAM,EAAE,uBAAuB,+BAA+B,qBAAqB,sBAAsB,QACvG,wCAAgB;AAClB,QAAM,sBAAsB,aAAAA,QAAM;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,wBAAoE,aAAAA,QAAM,YAAY,MAAM;AAChG,wBAAoB;AACpB,0BAAsB;AACtB,kCAA8B,kBAAkB;AAAA,EAClD,GAAG,CAAC,oBAAoB,uBAAuB,qBAAqB,6BAA6B,CAAC;AAElG,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAU;AAAA,MACV,YAAW;AAAA,MACX,gBAAe;AAAA,MACf,MAAM;AAAA,MACN,MAAM;AAAA,MAEN,sDAAC,gBAAa,YAAW,QAAO,SAAS,qBAAqB,SAAS,uBACpE,+BACC,4CAAC,yBAAsB,OAAM,QAAO,QAAO,QAAO,IAElD,4CAAC,6BAA0B,OAAM,QAAO,QAAO,QAAO,GAE1D;AAAA;AAAA,EACF;AAEJ,CAAC;",
4
+ "sourcesContent": ["import React from 'react';\nimport { styled } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { DSButtonV2, type DSButtonT } from '@elliemae/ds-button';\nimport { ArrowShortRight, CloseMedium } from '@elliemae/ds-icons';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types';\nimport { useHandleMoveSelection } from '../../../config/itemMovementHelpers';\nimport { useFocusTracker } from '../../../config/useFocusTracker';\n\nconst StyledMoveMultipleWrapper = styled(Grid, { name: 'ds-shuttle-v2', slot: 'move-multiple-wrapper' })`\n position: absolute;\n background-color: neutral-000;\n top: 0px;\n right: 0px;\n height: 100%;\n width: 65px;\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: 'ds-shuttle-v2',\n slot: 'move-multiple-btn',\n})`\n width: 100%;\n height: 100%;\n`;\nconst StyledCloseMediumIcon = styled(CloseMedium, {\n name: 'ds-shuttle-v2',\n slot: 'item-action-btn-to-source-icon',\n})`\n > svg {\n fill: brand-600;\n }\n`;\nconst StyledArrowShortRightIcon = styled(ArrowShortRight, {\n name: 'ds-shuttle-v2',\n slot: '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, trackFocusRegionPanelFocusAll, 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 trackFocusRegionPanelFocusAll(isDestinationPanel);\n }, [isDestinationPanel, trackFocusActionReset, trackFocusItemReset, trackFocusRegionPanelFocusAll]);\n\n return (\n <StyledMoveMultipleWrapper\n boxShadow=\"xs\"\n alignItems=\"center\"\n justifyContent=\"center\"\n cols={gridFullFraction}\n rows={gridFullFraction}\n >\n <StyledButton buttonType=\"icon\" onClick={handleMoveAllAction} onFocus={handleMoveAllBtnFocus}>\n {isDestinationPanel ? (\n <StyledCloseMediumIcon width=\"20px\" height=\"20px\" />\n ) : (\n <StyledArrowShortRightIcon width=\"20px\" height=\"20px\" />\n )}\n </StyledButton>\n </StyledMoveMultipleWrapper>\n );\n});\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADiFb;AAjFV,mBAAkB;AAClB,uBAAuB;AACvB,qBAAqB;AACrB,uBAA2C;AAC3C,sBAA6C;AAE7C,iCAAuC;AACvC,6BAAgC;AAEhC,MAAM,gCAA4B,yBAAO,qBAAM,EAAE,MAAM,iBAAiB,MAAM,wBAAwB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAiBvG,MAAM,mBAAe,yBAAO,6BAAY;AAAA,EACtC,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AAAA;AAAA;AAAA;AAID,MAAM,4BAAwB,yBAAO,6BAAa;AAAA,EAChD,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AAAA;AAAA;AAAA;AAAA;AAKD,MAAM,gCAA4B,yBAAO,iCAAiB;AAAA,EACxD,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AAAA;AAAA;AAAA;AAAA;AAKD,MAAM,mBAAmB,CAAC,KAAK;AAExB,MAAM,0BAA0B,aAAAA,QAAM,KAAK,CAAC,cAA0C;AAC3F,QAAM,EAAE,mBAAmB,IAAI;AAC/B,QAAM,EAAE,cAAc,QAAI,mDAAuB,SAAS;AAC1D,QAAM,EAAE,uBAAuB,+BAA+B,qBAAqB,sBAAsB,QACvG,wCAAgB;AAClB,QAAM,sBAAsB,aAAAA,QAAM;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,wBAAoE,aAAAA,QAAM,YAAY,MAAM;AAChG,wBAAoB;AACpB,0BAAsB;AACtB,kCAA8B,kBAAkB;AAAA,EAClD,GAAG,CAAC,oBAAoB,uBAAuB,qBAAqB,6BAA6B,CAAC;AAElG,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAU;AAAA,MACV,YAAW;AAAA,MACX,gBAAe;AAAA,MACf,MAAM;AAAA,MACN,MAAM;AAAA,MAEN,sDAAC,gBAAa,YAAW,QAAO,SAAS,qBAAqB,SAAS,uBACpE,+BACC,4CAAC,yBAAsB,OAAM,QAAO,QAAO,QAAO,IAElD,4CAAC,6BAA0B,OAAM,QAAO,QAAO,QAAO,GAE1D;AAAA;AAAA,EACF;AAEJ,CAAC;",
6
6
  "names": ["React"]
7
7
  }