@elliemae/ds-shuttle-v2 3.14.0-next.1 → 3.14.0-next.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (170) hide show
  1. package/dist/cjs/DSShuttleV2.js.map +2 -2
  2. package/dist/cjs/config/DSShuttleV2Definitions.js.map +1 -1
  3. package/dist/cjs/config/itemMovementHelpers.js +99 -74
  4. package/dist/cjs/config/itemMovementHelpers.js.map +2 -2
  5. package/dist/cjs/config/useAutoCalculated/useDataStructure.js +55 -34
  6. package/dist/cjs/config/useAutoCalculated/useDataStructure.js.map +2 -2
  7. package/dist/cjs/config/useAutoCalculated/useShuttleVirtualized.js.map +2 -2
  8. package/dist/cjs/config/useFocusTracker/useFocusActionTrackers.js +6 -6
  9. package/dist/cjs/config/useFocusTracker/useFocusActionTrackers.js.map +2 -2
  10. package/dist/cjs/config/useFocusTracker/useFocusItemTracker.js +5 -5
  11. package/dist/cjs/config/useFocusTracker/useFocusItemTracker.js.map +2 -2
  12. package/dist/cjs/config/useFocusTracker/useFocusRegionTrackers.js +2 -2
  13. package/dist/cjs/config/useFocusTracker/useFocusRegionTrackers.js.map +2 -2
  14. package/dist/cjs/config/useShuttleV2.js +2 -0
  15. package/dist/cjs/config/useShuttleV2.js.map +2 -2
  16. package/dist/cjs/config/useStore/createAtomInStore.bak +18 -0
  17. package/dist/cjs/config/useStore/useStore.js +14 -1
  18. package/dist/cjs/config/useStore/useStore.js.map +2 -2
  19. package/dist/cjs/config/{useStore/createAtomInStore.js → useValidateProps.js} +9 -13
  20. package/dist/cjs/config/useValidateProps.js.map +7 -0
  21. package/dist/cjs/constants/index.js +3 -1
  22. package/dist/cjs/constants/index.js.map +2 -2
  23. package/dist/cjs/parts/Dnd/DndHandle.js +17 -10
  24. package/dist/cjs/parts/Dnd/DndHandle.js.map +2 -2
  25. package/dist/cjs/parts/Dnd/DragOverlay.js +47 -0
  26. package/dist/cjs/parts/Dnd/DragOverlay.js.map +7 -0
  27. package/dist/cjs/parts/Header.js +5 -5
  28. package/dist/cjs/parts/Header.js.map +2 -2
  29. package/dist/cjs/parts/HoC/withConditionalDnDRowContext.js +42 -17
  30. package/dist/cjs/parts/HoC/withConditionalDnDRowContext.js.map +3 -3
  31. package/dist/cjs/parts/HoC/withConditionalUseSortable.js +4 -3
  32. package/dist/cjs/parts/HoC/withConditionalUseSortable.js.map +2 -2
  33. package/dist/cjs/parts/Item/Item.js +42 -33
  34. package/dist/cjs/parts/Item/Item.js.map +2 -2
  35. package/dist/cjs/parts/Item/ItemActions/ItemActions.js +16 -14
  36. package/dist/cjs/parts/Item/ItemActions/ItemActions.js.map +2 -2
  37. package/dist/cjs/parts/Item/ItemActions/useActionsHandlers.js +8 -3
  38. package/dist/cjs/parts/Item/ItemActions/useActionsHandlers.js.map +2 -2
  39. package/dist/cjs/parts/Item/ItemActions/useActionsLogicHandlers.js +27 -39
  40. package/dist/cjs/parts/Item/ItemActions/useActionsLogicHandlers.js.map +2 -2
  41. package/dist/cjs/parts/Item/ItemActions/useInnerRefHandlers.js +2 -2
  42. package/dist/cjs/parts/Item/ItemActions/useInnerRefHandlers.js.map +2 -2
  43. package/dist/cjs/parts/Item/ItemMiddleSection.js +21 -22
  44. package/dist/cjs/parts/Item/ItemMiddleSection.js.map +2 -2
  45. package/dist/cjs/parts/Item/ItemOverlay.js +15 -7
  46. package/dist/cjs/parts/Item/ItemOverlay.js.map +2 -2
  47. package/dist/cjs/parts/Item/ItemSelection.js +3 -1
  48. package/dist/cjs/parts/Item/ItemSelection.js.map +2 -2
  49. package/dist/cjs/parts/Item/TextSection.js +50 -0
  50. package/dist/cjs/parts/Item/TextSection.js.map +7 -0
  51. package/dist/cjs/parts/Item/useItemArrowNavigation.js +46 -20
  52. package/dist/cjs/parts/Item/useItemArrowNavigation.js.map +2 -2
  53. package/dist/cjs/parts/Item/useItemKeyboardSelection.js +57 -0
  54. package/dist/cjs/parts/Item/useItemKeyboardSelection.js.map +7 -0
  55. package/dist/cjs/parts/Item/useSelectionLogic.js +64 -21
  56. package/dist/cjs/parts/Item/useSelectionLogic.js.map +2 -2
  57. package/dist/cjs/parts/MainContent.js +5 -2
  58. package/dist/cjs/parts/MainContent.js.map +2 -2
  59. package/dist/cjs/parts/Panel/bottom/LoadMoreBtn.js +3 -3
  60. package/dist/cjs/parts/Panel/bottom/LoadMoreBtn.js.map +2 -2
  61. package/dist/cjs/parts/Panel/bottom/LoadingMore.js +1 -1
  62. package/dist/cjs/parts/Panel/bottom/LoadingMore.js.map +2 -2
  63. package/dist/cjs/parts/Panel/bottom/PanelContentBottomSection.js +1 -1
  64. package/dist/cjs/parts/Panel/bottom/PanelContentBottomSection.js.map +1 -1
  65. package/dist/cjs/parts/Panel/bottom/useLoadMoreBtnArrowNavigation.js +4 -3
  66. package/dist/cjs/parts/Panel/bottom/useLoadMoreBtnArrowNavigation.js.map +2 -2
  67. package/dist/cjs/parts/Panel/middle/{ItemListWrapper.js → ItemListWrapper/Index.js} +25 -19
  68. package/dist/cjs/parts/Panel/middle/ItemListWrapper/Index.js.map +7 -0
  69. package/dist/cjs/parts/Panel/middle/ItemListWrapper/getDatumFlags.js +44 -0
  70. package/dist/cjs/parts/Panel/middle/ItemListWrapper/getDatumFlags.js.map +7 -0
  71. package/dist/cjs/parts/Panel/middle/ItemListWrapper/useGetDatumHydratables.js +57 -0
  72. package/dist/cjs/parts/Panel/middle/ItemListWrapper/useGetDatumHydratables.js.map +7 -0
  73. package/dist/cjs/parts/Panel/middle/MultipleSelectionAction.js +30 -7
  74. package/dist/cjs/parts/Panel/middle/MultipleSelectionAction.js.map +2 -2
  75. package/dist/cjs/parts/Panel/middle/PanelContentMiddleSection.js +12 -22
  76. package/dist/cjs/parts/Panel/middle/PanelContentMiddleSection.js.map +2 -2
  77. package/dist/cjs/parts/Panel/top/SelectionHeader.js +1 -1
  78. package/dist/cjs/parts/Panel/top/SelectionHeader.js.map +2 -2
  79. package/dist/cjs/parts/PanelWrapper.js +8 -11
  80. package/dist/cjs/parts/PanelWrapper.js.map +2 -2
  81. package/dist/cjs/react-desc-prop-types.js +31 -14
  82. package/dist/cjs/react-desc-prop-types.js.map +2 -2
  83. package/dist/esm/DSShuttleV2.js.map +2 -2
  84. package/dist/esm/config/DSShuttleV2Definitions.js.map +1 -1
  85. package/dist/esm/config/itemMovementHelpers.js +99 -74
  86. package/dist/esm/config/itemMovementHelpers.js.map +2 -2
  87. package/dist/esm/config/useAutoCalculated/useDataStructure.js +55 -34
  88. package/dist/esm/config/useAutoCalculated/useDataStructure.js.map +2 -2
  89. package/dist/esm/config/useAutoCalculated/useShuttleVirtualized.js.map +2 -2
  90. package/dist/esm/config/useFocusTracker/useFocusActionTrackers.js +6 -6
  91. package/dist/esm/config/useFocusTracker/useFocusActionTrackers.js.map +2 -2
  92. package/dist/esm/config/useFocusTracker/useFocusItemTracker.js +5 -5
  93. package/dist/esm/config/useFocusTracker/useFocusItemTracker.js.map +2 -2
  94. package/dist/esm/config/useFocusTracker/useFocusRegionTrackers.js +2 -2
  95. package/dist/esm/config/useFocusTracker/useFocusRegionTrackers.js.map +2 -2
  96. package/dist/esm/config/useShuttleV2.js +3 -1
  97. package/dist/esm/config/useShuttleV2.js.map +2 -2
  98. package/dist/esm/config/useStore/createAtomInStore.bak +18 -0
  99. package/dist/esm/config/useStore/useStore.js +14 -1
  100. package/dist/esm/config/useStore/useStore.js.map +2 -2
  101. package/dist/esm/config/useValidateProps.js +10 -0
  102. package/dist/esm/config/useValidateProps.js.map +7 -0
  103. package/dist/esm/constants/index.js +3 -1
  104. package/dist/esm/constants/index.js.map +2 -2
  105. package/dist/esm/parts/Dnd/DndHandle.js +17 -10
  106. package/dist/esm/parts/Dnd/DndHandle.js.map +2 -2
  107. package/dist/esm/parts/Dnd/DragOverlay.js +21 -0
  108. package/dist/esm/parts/Dnd/DragOverlay.js.map +7 -0
  109. package/dist/esm/parts/Header.js +4 -4
  110. package/dist/esm/parts/Header.js.map +2 -2
  111. package/dist/esm/parts/HoC/withConditionalDnDRowContext.js +43 -18
  112. package/dist/esm/parts/HoC/withConditionalDnDRowContext.js.map +3 -3
  113. package/dist/esm/parts/HoC/withConditionalUseSortable.js +4 -3
  114. package/dist/esm/parts/HoC/withConditionalUseSortable.js.map +2 -2
  115. package/dist/esm/parts/Item/Item.js +42 -33
  116. package/dist/esm/parts/Item/Item.js.map +2 -2
  117. package/dist/esm/parts/Item/ItemActions/ItemActions.js +13 -11
  118. package/dist/esm/parts/Item/ItemActions/ItemActions.js.map +2 -2
  119. package/dist/esm/parts/Item/ItemActions/useActionsHandlers.js +8 -3
  120. package/dist/esm/parts/Item/ItemActions/useActionsHandlers.js.map +2 -2
  121. package/dist/esm/parts/Item/ItemActions/useActionsLogicHandlers.js +28 -40
  122. package/dist/esm/parts/Item/ItemActions/useActionsLogicHandlers.js.map +2 -2
  123. package/dist/esm/parts/Item/ItemActions/useInnerRefHandlers.js +2 -2
  124. package/dist/esm/parts/Item/ItemActions/useInnerRefHandlers.js.map +2 -2
  125. package/dist/esm/parts/Item/ItemMiddleSection.js +20 -21
  126. package/dist/esm/parts/Item/ItemMiddleSection.js.map +2 -2
  127. package/dist/esm/parts/Item/ItemOverlay.js +15 -7
  128. package/dist/esm/parts/Item/ItemOverlay.js.map +2 -2
  129. package/dist/esm/parts/Item/ItemSelection.js +3 -1
  130. package/dist/esm/parts/Item/ItemSelection.js.map +2 -2
  131. package/dist/esm/parts/Item/TextSection.js +24 -0
  132. package/dist/esm/parts/Item/TextSection.js.map +7 -0
  133. package/dist/esm/parts/Item/useItemArrowNavigation.js +47 -21
  134. package/dist/esm/parts/Item/useItemArrowNavigation.js.map +2 -2
  135. package/dist/esm/parts/Item/useItemKeyboardSelection.js +31 -0
  136. package/dist/esm/parts/Item/useItemKeyboardSelection.js.map +7 -0
  137. package/dist/esm/parts/Item/useSelectionLogic.js +64 -21
  138. package/dist/esm/parts/Item/useSelectionLogic.js.map +2 -2
  139. package/dist/esm/parts/MainContent.js +5 -2
  140. package/dist/esm/parts/MainContent.js.map +2 -2
  141. package/dist/esm/parts/Panel/bottom/LoadMoreBtn.js +1 -1
  142. package/dist/esm/parts/Panel/bottom/LoadMoreBtn.js.map +1 -1
  143. package/dist/esm/parts/Panel/bottom/LoadingMore.js +1 -1
  144. package/dist/esm/parts/Panel/bottom/LoadingMore.js.map +2 -2
  145. package/dist/esm/parts/Panel/bottom/PanelContentBottomSection.js +1 -1
  146. package/dist/esm/parts/Panel/bottom/PanelContentBottomSection.js.map +1 -1
  147. package/dist/esm/parts/Panel/bottom/useLoadMoreBtnArrowNavigation.js +4 -3
  148. package/dist/esm/parts/Panel/bottom/useLoadMoreBtnArrowNavigation.js.map +2 -2
  149. package/dist/esm/parts/Panel/middle/{ItemListWrapper.js → ItemListWrapper/Index.js} +22 -16
  150. package/dist/esm/parts/Panel/middle/ItemListWrapper/Index.js.map +7 -0
  151. package/dist/esm/parts/Panel/middle/ItemListWrapper/getDatumFlags.js +18 -0
  152. package/dist/esm/parts/Panel/middle/ItemListWrapper/getDatumFlags.js.map +7 -0
  153. package/dist/esm/parts/Panel/middle/ItemListWrapper/useGetDatumHydratables.js +31 -0
  154. package/dist/esm/parts/Panel/middle/ItemListWrapper/useGetDatumHydratables.js.map +7 -0
  155. package/dist/esm/parts/Panel/middle/MultipleSelectionAction.js +29 -6
  156. package/dist/esm/parts/Panel/middle/MultipleSelectionAction.js.map +2 -2
  157. package/dist/esm/parts/Panel/middle/PanelContentMiddleSection.js +11 -21
  158. package/dist/esm/parts/Panel/middle/PanelContentMiddleSection.js.map +2 -2
  159. package/dist/esm/parts/Panel/top/SelectionHeader.js +1 -1
  160. package/dist/esm/parts/Panel/top/SelectionHeader.js.map +2 -2
  161. package/dist/esm/parts/PanelWrapper.js +8 -11
  162. package/dist/esm/parts/PanelWrapper.js.map +2 -2
  163. package/dist/esm/react-desc-prop-types.js +32 -15
  164. package/dist/esm/react-desc-prop-types.js.map +2 -2
  165. package/package.json +13 -11
  166. package/dist/cjs/config/useStore/createAtomInStore.js.map +0 -7
  167. package/dist/cjs/parts/Panel/middle/ItemListWrapper.js.map +0 -7
  168. package/dist/esm/config/useStore/createAtomInStore.js +0 -14
  169. package/dist/esm/config/useStore/createAtomInStore.js.map +0 -7
  170. package/dist/esm/parts/Panel/middle/ItemListWrapper.js.map +0 -7
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
22
+ mod
23
+ ));
24
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
25
+ var useGetDatumHydratables_exports = {};
26
+ __export(useGetDatumHydratables_exports, {
27
+ useGetDatumHydratables: () => useGetDatumHydratables
28
+ });
29
+ module.exports = __toCommonJS(useGetDatumHydratables_exports);
30
+ var React = __toESM(require("react"));
31
+ var import_react = __toESM(require("react"));
32
+ var import_useStore = require("../../../../config/useStore");
33
+ const useGetDatumHydratables = (panelMetaInfo) => {
34
+ const getLabel = (0, import_useStore.usePropsStore)((state) => state.getLabel);
35
+ const getSubtitle = (0, import_useStore.usePropsStore)((state) => state.getSubtitle);
36
+ const getIcon = (0, import_useStore.usePropsStore)((state) => state.getIcon);
37
+ const getCustomRenderer = (0, import_useStore.usePropsStore)((state) => state.getCustomRenderer);
38
+ const getPreventDrilldown = (0, import_useStore.usePropsStore)((state) => state.getPreventDrilldown);
39
+ const getPreventMove = (0, import_useStore.usePropsStore)((state) => state.getPreventMove);
40
+ const getDatumHydratables = import_react.default.useCallback(
41
+ (item) => {
42
+ const { original, ...datumMeta } = item;
43
+ return {
44
+ id: datumMeta.hydratedId,
45
+ label: getLabel(original, { datumMeta, panelMetaInfo }),
46
+ ...getSubtitle !== void 0 ? { subtitle: getSubtitle(original, { datumMeta, panelMetaInfo }) } : {},
47
+ ...getIcon !== void 0 ? { Icon: getIcon(original, { datumMeta, panelMetaInfo }) } : {},
48
+ ...getCustomRenderer !== void 0 ? { CustomRenderer: getCustomRenderer(original, { datumMeta, panelMetaInfo }) } : {},
49
+ ...getPreventDrilldown !== void 0 ? { preventDrilldown: getPreventDrilldown(original, { datumMeta, panelMetaInfo }) } : {},
50
+ ...getPreventMove !== void 0 ? { preventMove: getPreventMove(original, { datumMeta, panelMetaInfo }) } : {}
51
+ };
52
+ },
53
+ [getCustomRenderer, getIcon, getLabel, getPreventDrilldown, getPreventMove, getSubtitle, panelMetaInfo]
54
+ );
55
+ return getDatumHydratables;
56
+ };
57
+ //# sourceMappingURL=useGetDatumHydratables.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/parts/Panel/middle/ItemListWrapper/useGetDatumHydratables.tsx", "../../../../../../../../scripts/build/transpile/react-shim.js"],
4
+ "sourcesContent": ["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 const getPreventMove = usePropsStore((state) => state.getPreventMove);\n\n const getDatumHydratables = React.useCallback(\n (item: DSShuttleV2T.ConfiguredDatum) => {\n const { original, ...datumMeta } = item;\n\n return {\n id: datumMeta.hydratedId,\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 ...(getPreventMove !== undefined\n ? { preventMove: getPreventMove(original, { datumMeta, panelMetaInfo }) }\n : {}),\n };\n },\n [getCustomRenderer, getIcon, getLabel, getPreventDrilldown, getPreventMove, getSubtitle, panelMetaInfo],\n );\n return getDatumHydratables;\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAkB;AAClB,sBAA8B;AAGvB,MAAM,yBAAyB,CAAC,kBAA8C;AACnF,QAAM,eAAW,+BAAc,CAAC,UAAU,MAAM,QAAQ;AACxD,QAAM,kBAAc,+BAAc,CAAC,UAAU,MAAM,WAAW;AAC9D,QAAM,cAAU,+BAAc,CAAC,UAAU,MAAM,OAAO;AACtD,QAAM,wBAAoB,+BAAc,CAAC,UAAU,MAAM,iBAAiB;AAC1E,QAAM,0BAAsB,+BAAc,CAAC,UAAU,MAAM,mBAAmB;AAC9E,QAAM,qBAAiB,+BAAc,CAAC,UAAU,MAAM,cAAc;AAEpE,QAAM,sBAAsB,aAAAA,QAAM;AAAA,IAChC,CAAC,SAAuC;AACtC,YAAM,EAAE,aAAa,UAAU,IAAI;AAEnC,aAAO;AAAA,QACL,IAAI,UAAU;AAAA,QACd,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,QACL,GAAI,mBAAmB,SACnB,EAAE,aAAa,eAAe,UAAU,EAAE,WAAW,cAAc,CAAC,EAAE,IACtE,CAAC;AAAA,MACP;AAAA,IACF;AAAA,IACA,CAAC,mBAAmB,SAAS,UAAU,qBAAqB,gBAAgB,aAAa,aAAa;AAAA,EACxG;AACA,SAAO;AACT;",
6
+ "names": ["React"]
7
+ }
@@ -32,9 +32,11 @@ var import_jsx_runtime = require("react/jsx-runtime");
32
32
  var import_react = __toESM(require("react"));
33
33
  var import_ds_system = require("@elliemae/ds-system");
34
34
  var import_ds_grid = require("@elliemae/ds-grid");
35
- var import_ds_button = require("@elliemae/ds-button");
35
+ var import_ds_button_v2 = require("@elliemae/ds-button-v2");
36
36
  var import_ds_icons = require("@elliemae/ds-icons");
37
+ var import_constants = require("../../../constants");
37
38
  var import_itemMovementHelpers = require("../../../config/itemMovementHelpers");
39
+ var import_useStore = require("../../../config/useStore");
38
40
  var import_useFocusTracker = require("../../../config/useFocusTracker");
39
41
  var import_DSShuttleV2Definitions = require("../../../config/DSShuttleV2Definitions");
40
42
  const StyledMoveMultipleWrapper = (0, import_ds_system.styled)(import_ds_grid.Grid, { name: import_DSShuttleV2Definitions.DSShuttleV2Name, slot: import_DSShuttleV2Definitions.DSShuttleV2Slots.MOVE_MULTIPLE_WRAPPER })`
@@ -44,7 +46,7 @@ const StyledMoveMultipleWrapper = (0, import_ds_system.styled)(import_ds_grid.Gr
44
46
  right: 0px;
45
47
  transform: translateX(0);
46
48
  height: 100%;
47
- width: 65px;
49
+ width: 5rem;
48
50
  :hover {
49
51
  background-color: brand-200;
50
52
  > svg {
@@ -55,7 +57,7 @@ const StyledMoveMultipleWrapper = (0, import_ds_system.styled)(import_ds_grid.Gr
55
57
  fill: brand-600;
56
58
  }
57
59
  `;
58
- const StyledButton = (0, import_ds_system.styled)(import_ds_button.DSButtonV2, {
60
+ const StyledButton = (0, import_ds_system.styled)(import_ds_button_v2.DSButtonV2, {
59
61
  name: import_DSShuttleV2Definitions.DSShuttleV2Name,
60
62
  slot: import_DSShuttleV2Definitions.DSShuttleV2Slots.MOVE_MULTIPLE_BTN
61
63
  })`
@@ -82,7 +84,7 @@ const gridFullFraction = ["1fr"];
82
84
  const MultipleSelectionAction = import_react.default.memo((panelMeta) => {
83
85
  const { isDestinationPanel } = panelMeta;
84
86
  const { moveSelection } = (0, import_itemMovementHelpers.useHandleMoveSelection)(panelMeta);
85
- const { trackFocusRegionPanel, trackFocusRegionPanelFocusAll, trackFocusItemReset, trackFocusActionReset } = (0, import_useFocusTracker.useFocusTracker)();
87
+ const { trackFocusRegionPanel, trackFocusRegionPanelFocusMoveAll, trackFocusItemReset, trackFocusActionReset } = (0, import_useFocusTracker.useFocusTracker)();
86
88
  const handleMoveAllAction = import_react.default.useCallback(
87
89
  (event) => {
88
90
  moveSelection(event);
@@ -95,8 +97,20 @@ const MultipleSelectionAction = import_react.default.memo((panelMeta) => {
95
97
  const handleMoveAllBtnFocus = import_react.default.useCallback(() => {
96
98
  trackFocusItemReset();
97
99
  trackFocusActionReset();
98
- trackFocusRegionPanelFocusAll(isDestinationPanel);
99
- }, [isDestinationPanel, trackFocusActionReset, trackFocusItemReset, trackFocusRegionPanelFocusAll]);
100
+ trackFocusRegionPanelFocusMoveAll(isDestinationPanel);
101
+ }, [isDestinationPanel, trackFocusActionReset, trackFocusItemReset, trackFocusRegionPanelFocusMoveAll]);
102
+ const focusRegion = (0, import_useStore.useInternalStore)((state) => state.focusRegion);
103
+ const focusItem = (0, import_useStore.useInternalStore)((state) => state.focusItem);
104
+ const focusItemAction = (0, import_useStore.useInternalStore)((state) => state.focusItemAction);
105
+ const currRegion = isDestinationPanel ? import_constants.REGIONS_FOCUSES.DESTINATION_PANEL_ITEM_MOVE_ALL : import_constants.REGIONS_FOCUSES.SOURCE_PANEL_ITEM_MOVE_ALL;
106
+ const shouldFocusMoveAll = focusItem === "" && focusItemAction === "" && focusRegion === currRegion;
107
+ const innerRefHandlerMoveAll = import_react.default.useCallback(
108
+ (node) => {
109
+ if (shouldFocusMoveAll)
110
+ node?.focus();
111
+ },
112
+ [shouldFocusMoveAll]
113
+ );
100
114
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
101
115
  StyledMoveMultipleWrapper,
102
116
  {
@@ -105,7 +119,16 @@ const MultipleSelectionAction = import_react.default.memo((panelMeta) => {
105
119
  justifyContent: "center",
106
120
  cols: gridFullFraction,
107
121
  rows: gridFullFraction,
108
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StyledButton, { buttonType: "icon", onClick: handleMoveAllAction, onFocus: handleMoveAllBtnFocus, children: isDestinationPanel ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StyledCloseMediumIcon, { width: "20px", height: "20px" }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StyledArrowShortRightIcon, { width: "20px", height: "20px" }) })
122
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
123
+ StyledButton,
124
+ {
125
+ buttonType: "icon",
126
+ onClick: handleMoveAllAction,
127
+ onFocus: handleMoveAllBtnFocus,
128
+ innerRef: innerRefHandlerMoveAll,
129
+ children: isDestinationPanel ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StyledCloseMediumIcon, { width: "1.538rem", height: "1.538rem" }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StyledArrowShortRightIcon, { width: "1.538", height: "1.538rem" })
130
+ }
131
+ )
109
132
  }
110
133
  );
111
134
  });
@@ -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-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 focusRegion = useInternalStore((state) => state.focusRegion);\n const focusItem = useInternalStore((state) => state.focusItem);\n const focusItemAction = useInternalStore((state) => state.focusItemAction);\n const currRegion = isDestinationPanel\n ? REGIONS_FOCUSES.DESTINATION_PANEL_ITEM_MOVE_ALL\n : REGIONS_FOCUSES.SOURCE_PANEL_ITEM_MOVE_ALL;\n const shouldFocusMoveAll = focusItem === '' && focusItemAction === '' && focusRegion === currRegion;\n const innerRefHandlerMoveAll = React.useCallback(\n (node: HTMLButtonElement | null) => {\n if (shouldFocusMoveAll) node?.focus();\n },\n [shouldFocusMoveAll],\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", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADuGb;AAvGV,mBAAkB;AAClB,uBAAuB;AACvB,qBAAqB;AACrB,0BAA2C;AAC3C,sBAA6C;AAC7C,uBAAgC;AAEhC,iCAAuC;AACvC,sBAAiC;AACjC,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,gCAAY;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,mCAAmC,qBAAqB,sBAAsB,QAC3G,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,sCAAkC,kBAAkB;AAAA,EACtD,GAAG,CAAC,oBAAoB,uBAAuB,qBAAqB,iCAAiC,CAAC;AACtG,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,qBACf,iCAAgB,kCAChB,iCAAgB;AACpB,QAAM,qBAAqB,cAAc,MAAM,oBAAoB,MAAM,gBAAgB;AACzF,QAAM,yBAAyB,aAAAA,QAAM;AAAA,IACnC,CAAC,SAAmC;AAClC,UAAI;AAAoB,cAAM,MAAM;AAAA,IACtC;AAAA,IACA,CAAC,kBAAkB;AAAA,EACrB;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,4CAAC,yBAAsB,OAAM,YAAW,QAAO,YAAW,IAE1D,4CAAC,6BAA0B,OAAM,SAAQ,QAAO,YAAW;AAAA;AAAA,MAE/D;AAAA;AAAA,EACF;AAEJ,CAAC;",
6
6
  "names": ["React"]
7
7
  }
@@ -34,7 +34,7 @@ var import_ds_system = require("@elliemae/ds-system");
34
34
  var import_ds_grid = require("@elliemae/ds-grid");
35
35
  var import_ds_utilities = require("@elliemae/ds-utilities");
36
36
  var import_useStore = require("../../../config/useStore");
37
- var import_ItemListWrapper = require("./ItemListWrapper");
37
+ var import_Index = require("./ItemListWrapper/Index");
38
38
  var import_EmptyItems = require("./EmptyItems");
39
39
  var import_useFocusTracker = require("../../../config/useFocusTracker");
40
40
  var import_LoadingItems = require("./LoadingItems");
@@ -66,24 +66,16 @@ const StyledListWrapperMid = (0, import_ds_system.styled)(import_ds_grid.Grid, {
66
66
 
67
67
  :focus,
68
68
  :focus-visible {
69
- outline: none;
70
-
71
- &::after {
72
- position: absolute;
73
- content: ' ';
74
69
  outline: 2px solid brand-700;
75
- outline-offset: -2px;
76
- width: 100%;
77
- height: 100%;
78
70
  }
79
71
  }
80
72
  `;
81
73
  const StyledMidScroller = (0, import_ds_system.styled)(import_ds_grid.Grid, { name: import_DSShuttleV2Definitions.DSShuttleV2Name, slot: import_DSShuttleV2Definitions.DSShuttleV2Slots.LIST_WRAPPER_MID })`
82
74
  overflow: auto;
83
- max-height: '500px';
75
+ max-height: 38.462rem;
84
76
  `;
85
77
  const PanelContentMiddleSection = import_react.default.memo((panelMetaInfo) => {
86
- const { isDestinationPanel = false } = panelMetaInfo;
78
+ const { isDestinationPanel = false, hasMultipleSelection } = panelMetaInfo;
87
79
  const itemsLength = (0, import_useStore.usePropsStore)(
88
80
  (state) => isDestinationPanel ? state.destinationData.length : state.sourceData.length
89
81
  );
@@ -93,10 +85,7 @@ const PanelContentMiddleSection = import_react.default.memo((panelMetaInfo) => {
93
85
  const virtualRef = (0, import_useStore.useInternalStore)(
94
86
  (state) => isDestinationPanel ? state.destinationVirtualRef : state.sourceVirtualRef
95
87
  );
96
- const destinationHasMultipleSelectedItems = (0, import_useStore.useInternalStore)((store) => store.destinationHasMultipleSelectedItems);
97
- const sourceHasMultipleSelectedItems = (0, import_useStore.useInternalStore)((store) => store.sourceHasMultipleSelectedItems);
98
- const hasMultipleSelection = isDestinationPanel ? destinationHasMultipleSelectedItems : sourceHasMultipleSelectedItems;
99
- const isDragging = (0, import_useStore.useInternalStore)((state) => state.lastActiveId !== "");
88
+ const getIsDragAndDropHappening = (0, import_useStore.useInternalStore)((state) => state.getIsDragAndDropHappening);
100
89
  const withLoadMore = (0, import_useStore.usePropsStore)(
101
90
  (state) => isDestinationPanel ? state.destinationWithLoadMore : state.sourceWithLoadMore
102
91
  );
@@ -121,7 +110,8 @@ const PanelContentMiddleSection = import_react.default.memo((panelMetaInfo) => {
121
110
  const onPanelKeyDown = import_react.default.useCallback(
122
111
  (e) => {
123
112
  const { key } = e;
124
- if (isDragging) {
113
+ const isDragAndDropHappening = getIsDragAndDropHappening();
114
+ if (isDragAndDropHappening) {
125
115
  e.preventDefault();
126
116
  return;
127
117
  }
@@ -141,14 +131,14 @@ const PanelContentMiddleSection = import_react.default.memo((panelMetaInfo) => {
141
131
  }
142
132
  },
143
133
  [
144
- isDragging,
134
+ getIsDragAndDropHappening,
135
+ trackFocusRegionPanelItem,
145
136
  isDestinationPanel,
146
137
  trackFocusActionParent,
147
138
  trackFocusItemFirst,
148
- trackFocusItemLast,
139
+ withLoadMore,
149
140
  trackFocusLoadMoreBtn,
150
- trackFocusRegionPanelItem,
151
- withLoadMore
141
+ trackFocusItemLast
152
142
  ]
153
143
  );
154
144
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
@@ -162,9 +152,9 @@ const PanelContentMiddleSection = import_react.default.memo((panelMetaInfo) => {
162
152
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(StyledMidScroller, { ref: virtualRef, children: [
163
153
  isLoading ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_LoadingItems.LoadingItems, { ...panelMetaInfo }) : null,
164
154
  showEmptyMessage ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_EmptyItems.EmptyItems, { ...panelMetaInfo }) : null,
165
- showItems ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ItemListWrapper.ItemListWrapperWithContext, { ...panelMetaInfo }) : null
155
+ showItems ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Index.ItemListWrapperWithContext, { ...panelMetaInfo }) : null
166
156
  ] }),
167
- hasMultipleSelection ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_MultipleSelectionAction.MultipleSelectionAction, { isDestinationPanel }) : null
157
+ hasMultipleSelection ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_MultipleSelectionAction.MultipleSelectionAction, { ...panelMetaInfo }) : null
168
158
  ]
169
159
  }
170
160
  );
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/parts/Panel/middle/PanelContentMiddleSection.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 { useOnSpecificFocus } from '@elliemae/ds-utilities';\n\nimport { usePropsStore, useInternalStore } from '../../../config/useStore';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types';\nimport { ItemListWrapperWithContext } from './ItemListWrapper';\nimport { EmptyItems } from './EmptyItems';\nimport { useFocusTracker } from '../../../config/useFocusTracker';\n\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 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\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\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: none;\n\n &::after {\n position: absolute;\n content: ' ';\n outline: 2px solid brand-700;\n outline-offset: -2px;\n width: 100%;\n height: 100%;\n }\n }\n`;\nconst StyledMidScroller = styled(Grid, { name: DSShuttleV2Name, slot: DSShuttleV2Slots.LIST_WRAPPER_MID })`\n overflow: auto;\n max-height: '500px';\n`;\nexport const PanelContentMiddleSection = React.memo((panelMetaInfo: DSShuttleV2T.PanelMetaInfo) => {\n const { isDestinationPanel = false } = 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 = useInternalStore((state) =>\n isDestinationPanel ? state.destinationVirtualRef : state.sourceVirtualRef,\n );\n\n const destinationHasMultipleSelectedItems = useInternalStore((store) => store.destinationHasMultipleSelectedItems);\n const sourceHasMultipleSelectedItems = useInternalStore((store) => store.sourceHasMultipleSelectedItems);\n const hasMultipleSelection = isDestinationPanel\n ? destinationHasMultipleSelectedItems\n : sourceHasMultipleSelectedItems;\n const isDragging = useInternalStore((state) => state.lastActiveId !== '');\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 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\n if (isDragging) {\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') trackFocusItemFirst();\n if (key === 'ArrowUp' || key === 'End') {\n if (withLoadMore) trackFocusLoadMoreBtn();\n else trackFocusItemLast();\n }\n }\n },\n [\n isDragging,\n isDestinationPanel,\n trackFocusActionParent,\n trackFocusItemFirst,\n trackFocusItemLast,\n trackFocusLoadMoreBtn,\n trackFocusRegionPanelItem,\n withLoadMore,\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 isDestinationPanel={isDestinationPanel} /> : null}\n </StyledListWrapperMid>\n );\n});\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import React from 'react';\nimport { styled } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { useOnSpecificFocus } from '@elliemae/ds-utilities';\n\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';\n\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 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\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\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 })`\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 = useInternalStore((state) =>\n isDestinationPanel ? state.destinationVirtualRef : state.sourceVirtualRef,\n );\n\n const getIsDragAndDropHappening = useInternalStore((state) => state.getIsDragAndDropHappening);\n const withLoadMore = usePropsStore((state) =>\n isDestinationPanel ? state.destinationWithLoadMore : state.sourceWithLoadMore,\n );\n const { innerRefHandlerParentItem } = useInnerRefHandlers(isDestinationPanel);\n const {\n trackFocusRegionPanel,\n trackFocusItemFirst,\n trackFocusItemLast,\n trackFocusActionParent,\n trackFocusRegionPanelItem,\n 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') trackFocusItemFirst();\n if (key === 'ArrowUp' || key === 'End') {\n if (withLoadMore) trackFocusLoadMoreBtn();\n else trackFocusItemLast();\n }\n }\n },\n [\n getIsDragAndDropHappening,\n trackFocusRegionPanelItem,\n isDestinationPanel,\n trackFocusActionParent,\n trackFocusItemFirst,\n withLoadMore,\n trackFocusLoadMoreBtn,\n trackFocusItemLast,\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", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": "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",
6
6
  "names": ["React"]
7
7
  }
@@ -81,7 +81,7 @@ const SelectionHeader = import_react.default.memo(({ isDestinationPanel = false
81
81
  } else {
82
82
  const newSelection = {};
83
83
  selectionableItems.forEach((selectableItem) => {
84
- newSelection[selectableItem.original.id] = true;
84
+ newSelection[selectableItem.hydratedId] = true;
85
85
  });
86
86
  onSelectionChange(newSelection, { event });
87
87
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/parts/Panel/top/SelectionHeader.tsx", "../../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["import React 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, useInternalStore } 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`;\n\nconst wrapperCols = ['auto', '1fr'];\nexport const SelectionHeader = React.memo(({ isDestinationPanel = false }: DSShuttleV2T.PanelMetaInfo) => {\n const selectionableItems = useInternalStore((state) =>\n isDestinationPanel ? state.destinationSelectionableData : state.sourceSelectionableData,\n );\n const ariaControls = useInternalStore((state) =>\n isDestinationPanel ? state.destinationSelectionableIds : state.sourceSelectionableIds,\n );\n const onSelectionChange = usePropsStore((state) =>\n isDestinationPanel ? state.onDestinationSelectionChange : state.onSourceSelectionChange,\n );\n const selectionLength = useInternalStore((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.original.id] = 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", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADiEf;AAjER,mBAAkB;AAClB,uBAAuB;AACvB,8BAAiE;AACjE,qBAAqB;AACrB,sBAAgD;AAEhD,oCAAkD;AAElD,MAAM,mCAA+B,yBAAO,qBAAM;AAAA,EAChD,MAAM;AAAA,EACN,MAAM,+CAAiB;AACzB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAMD,MAAM,sCAAkC,yBAAO,OAAO;AAAA,EACpD,MAAM;AAAA,EACN,MAAM,+CAAiB;AACzB,CAAC;AAAA;AAAA;AAAA;AAKD,MAAM,cAAc,CAAC,QAAQ,KAAK;AAC3B,MAAM,kBAAkB,aAAAA,QAAM,KAAK,CAAC,EAAE,qBAAqB,MAAM,MAAkC;AACxG,QAAM,yBAAqB;AAAA,IAAiB,CAAC,UAC3C,qBAAqB,MAAM,+BAA+B,MAAM;AAAA,EAClE;AACA,QAAM,mBAAe;AAAA,IAAiB,CAAC,UACrC,qBAAqB,MAAM,8BAA8B,MAAM;AAAA,EACjE;AACA,QAAM,wBAAoB;AAAA,IAAc,CAAC,UACvC,qBAAqB,MAAM,+BAA+B,MAAM;AAAA,EAClE;AACA,QAAM,sBAAkB;AAAA,IAAiB,CAAC,UACxC,qBAAqB,MAAM,8BAA8B,SAAS,MAAM,yBAAyB;AAAA,EACnG;AACA,QAAM,gBAAgB,aAAAA,QAAM,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,kBAAkB,aAAAA,QAAM;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,SAAS,MAAM;AAAA,QAC7C,CAAC;AACD,0BAAkB,cAAc,EAAE,MAAM,CAAC;AAAA,MAC3C;AAAA,IACF;AAAA,IACA,CAAC,eAAe,mBAAmB,kBAAkB;AAAA,EACvD;AAEA,SACE,6CAAC,gCAA6B,MAAM,aAAa,gBAAe,UAAS,YAAW,UAAS,IAAG,OAAM,IAAG,QACvG;AAAA,gDAAC,uBAAK,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,6CAAC,mCAAiC;AAAA;AAAA,MAAgB;AAAA,OAAS;AAAA,KAC7D;AAEJ,CAAC;",
4
+ "sourcesContent": ["import React 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, useInternalStore } 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`;\n\nconst wrapperCols = ['auto', '1fr'];\nexport const SelectionHeader = React.memo(({ isDestinationPanel = false }: DSShuttleV2T.PanelMetaInfo) => {\n const selectionableItems = useInternalStore((state) =>\n isDestinationPanel ? state.destinationSelectionableData : state.sourceSelectionableData,\n );\n const ariaControls = useInternalStore((state) =>\n isDestinationPanel ? state.destinationSelectionableIds : state.sourceSelectionableIds,\n );\n const onSelectionChange = usePropsStore((state) =>\n isDestinationPanel ? state.onDestinationSelectionChange : state.onSourceSelectionChange,\n );\n const selectionLength = useInternalStore((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", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADiEf;AAjER,mBAAkB;AAClB,uBAAuB;AACvB,8BAAiE;AACjE,qBAAqB;AACrB,sBAAgD;AAEhD,oCAAkD;AAElD,MAAM,mCAA+B,yBAAO,qBAAM;AAAA,EAChD,MAAM;AAAA,EACN,MAAM,+CAAiB;AACzB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAMD,MAAM,sCAAkC,yBAAO,OAAO;AAAA,EACpD,MAAM;AAAA,EACN,MAAM,+CAAiB;AACzB,CAAC;AAAA;AAAA;AAAA;AAKD,MAAM,cAAc,CAAC,QAAQ,KAAK;AAC3B,MAAM,kBAAkB,aAAAA,QAAM,KAAK,CAAC,EAAE,qBAAqB,MAAM,MAAkC;AACxG,QAAM,yBAAqB;AAAA,IAAiB,CAAC,UAC3C,qBAAqB,MAAM,+BAA+B,MAAM;AAAA,EAClE;AACA,QAAM,mBAAe;AAAA,IAAiB,CAAC,UACrC,qBAAqB,MAAM,8BAA8B,MAAM;AAAA,EACjE;AACA,QAAM,wBAAoB;AAAA,IAAc,CAAC,UACvC,qBAAqB,MAAM,+BAA+B,MAAM;AAAA,EAClE;AACA,QAAM,sBAAkB;AAAA,IAAiB,CAAC,UACxC,qBAAqB,MAAM,8BAA8B,SAAS,MAAM,yBAAyB;AAAA,EACnG;AACA,QAAM,gBAAgB,aAAAA,QAAM,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,kBAAkB,aAAAA,QAAM;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,6CAAC,gCAA6B,MAAM,aAAa,gBAAe,UAAS,YAAW,UAAS,IAAG,OAAM,IAAG,QACvG;AAAA,gDAAC,uBAAK,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,6CAAC,mCAAiC;AAAA;AAAA,MAAgB;AAAA,OAAS;AAAA,KAC7D;AAEJ,CAAC;",
6
6
  "names": ["React"]
7
7
  }
@@ -46,15 +46,12 @@ const StyledListWrapper = (0, import_ds_system.styled)(import_ds_grid.Grid, { na
46
46
  `;
47
47
  const panelWrapperRows = ["auto", "1fr"];
48
48
  const listWrapperRows = ["auto", "1fr", "auto"];
49
- const PanelWrapper = import_react.default.memo((panelMetaInfo) => {
50
- const { isDestinationPanel = false } = panelMetaInfo;
51
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(StyledPanelWrapper, { rows: panelWrapperRows, gutter: "xxxs", children: [
52
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Header.Header, { isDestinationPanel }),
53
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(StyledListWrapper, { rows: listWrapperRows, children: [
54
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_PanelContentTopSection.PanelContentTopSection, { ...panelMetaInfo }),
55
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_PanelContentMiddleSection.PanelContentMiddleSection, { ...panelMetaInfo }),
56
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_PanelContentBottomSection.PanelContentBottomSection, { ...panelMetaInfo })
57
- ] })
58
- ] });
59
- });
49
+ const PanelWrapper = import_react.default.memo((panelMetaInfo) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(StyledPanelWrapper, { rows: panelWrapperRows, gutter: "xxxs", children: [
50
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Header.Header, { ...panelMetaInfo }),
51
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(StyledListWrapper, { rows: listWrapperRows, children: [
52
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_PanelContentTopSection.PanelContentTopSection, { ...panelMetaInfo }),
53
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_PanelContentMiddleSection.PanelContentMiddleSection, { ...panelMetaInfo }),
54
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_PanelContentBottomSection.PanelContentBottomSection, { ...panelMetaInfo })
55
+ ] })
56
+ ] }));
60
57
  //# sourceMappingURL=PanelWrapper.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/parts/PanelWrapper.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 { 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 const { isDestinationPanel = false } = panelMetaInfo;\n\n return (\n <StyledPanelWrapper rows={panelWrapperRows} gutter=\"xxxs\">\n <Header isDestinationPanel={isDestinationPanel} />\n <StyledListWrapper rows={listWrapperRows}>\n <PanelContentTopSection {...panelMetaInfo} />\n <PanelContentMiddleSection {...panelMetaInfo} />\n <PanelContentBottomSection {...panelMetaInfo} />\n </StyledListWrapper>\n </StyledPanelWrapper>\n );\n});\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADyBjB;AAzBN,mBAAkB;AAClB,uBAAuB;AACvB,qBAAqB;AAErB,oBAAuB;AACvB,oCAAuC;AACvC,uCAA0C;AAC1C,uCAA0C;AAC1C,oCAAkD;AAElD,MAAM,yBAAqB,yBAAO,qBAAM,EAAE,MAAM,+CAAiB,MAAM,+CAAiB,cAAc,CAAC;AAAA;AAAA;AAAA;AAIvG,MAAM,wBAAoB,yBAAO,qBAAM,EAAE,MAAM,+CAAiB,MAAM,+CAAiB,aAAa,CAAC;AAAA;AAAA;AAGrG,MAAM,mBAAmB,CAAC,QAAQ,KAAK;AACvC,MAAM,kBAAkB,CAAC,QAAQ,OAAO,MAAM;AAEvC,MAAM,eAAe,aAAAA,QAAM,KAAK,CAAC,kBAA8C;AACpF,QAAM,EAAE,qBAAqB,MAAM,IAAI;AAEvC,SACE,6CAAC,sBAAmB,MAAM,kBAAkB,QAAO,QACjD;AAAA,gDAAC,wBAAO,oBAAwC;AAAA,IAChD,6CAAC,qBAAkB,MAAM,iBACvB;AAAA,kDAAC,wDAAwB,GAAG,eAAe;AAAA,MAC3C,4CAAC,8DAA2B,GAAG,eAAe;AAAA,MAC9C,4CAAC,8DAA2B,GAAG,eAAe;AAAA,OAChD;AAAA,KACF;AAEJ,CAAC;",
4
+ "sourcesContent": ["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", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADsBnB;AAtBJ,mBAAkB;AAClB,uBAAuB;AACvB,qBAAqB;AAErB,oBAAuB;AACvB,oCAAuC;AACvC,uCAA0C;AAC1C,uCAA0C;AAC1C,oCAAkD;AAElD,MAAM,yBAAqB,yBAAO,qBAAM,EAAE,MAAM,+CAAiB,MAAM,+CAAiB,cAAc,CAAC;AAAA;AAAA;AAAA;AAIvG,MAAM,wBAAoB,yBAAO,qBAAM,EAAE,MAAM,+CAAiB,MAAM,+CAAiB,aAAa,CAAC;AAAA;AAAA;AAGrG,MAAM,mBAAmB,CAAC,QAAQ,KAAK;AACvC,MAAM,kBAAkB,CAAC,QAAQ,OAAO,MAAM;AAEvC,MAAM,eAAe,aAAAA,QAAM,KAAK,CAAC,kBACtC,6CAAC,sBAAmB,MAAM,kBAAkB,QAAO,QACjD;AAAA,8CAAC,wBAAQ,GAAG,eAAe;AAAA,EAC3B,6CAAC,qBAAkB,MAAM,iBACvB;AAAA,gDAAC,wDAAwB,GAAG,eAAe;AAAA,IAC3C,4CAAC,8DAA2B,GAAG,eAAe;AAAA,IAC9C,4CAAC,8DAA2B,GAAG,eAAe;AAAA,KAChD;AAAA,GACF,CACD;",
6
6
  "names": ["React"]
7
7
  }
@@ -24,42 +24,59 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
24
24
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
25
25
  var react_desc_prop_types_exports = {};
26
26
  __export(react_desc_prop_types_exports, {
27
- DSSkeletonPropTypes: () => DSSkeletonPropTypes,
27
+ DSShuttleV2PropTypesSchema: () => DSShuttleV2PropTypesSchema,
28
28
  defaultProps: () => defaultProps
29
29
  });
30
30
  module.exports = __toCommonJS(react_desc_prop_types_exports);
31
31
  var React = __toESM(require("react"));
32
32
  var import_ds_utilities = require("@elliemae/ds-utilities");
33
33
  const defaultProps = {
34
- sourceWithSoftDelete: false,
35
34
  addDragAndDropFromSource: false,
35
+ removeDragAndDropFromDestination: false,
36
36
  sourceIsLoading: false,
37
+ destinationIsLoading: false,
37
38
  sourceWithLoadMore: false,
39
+ destinationWithLoadMore: false,
38
40
  sourceIsLoadingMore: false,
41
+ destinationIsLoadingMore: false,
39
42
  onSourceLoadMore: () => {
40
43
  },
41
- onSourceChange: () => {
44
+ onDestinationLoadMore: () => {
42
45
  },
43
46
  onSourceAdd: () => {
44
47
  },
48
+ onDestinationAdd: () => {
49
+ },
45
50
  onSourceRemove: () => {
46
51
  },
47
- destinationWithSoftDelete: false,
48
- removeDragAndDropFromDestination: false,
49
- destinationIsLoading: false,
50
- destinationWithLoadMore: false,
51
- destinationIsLoadingMore: false,
52
- onDestinationLoadMore: () => {
52
+ onDestinationRemove: () => {
53
53
  },
54
- onDestinationChange: () => {
54
+ onSourceReorder: () => {
55
55
  },
56
- onDestinationAdd: () => {
56
+ onDestinationReorder: () => {
57
57
  },
58
- onDestinationRemove: () => {
58
+ sourceSoftDeletedItems: {},
59
+ onSourceSoftDelete: () => {
60
+ },
61
+ destinationSoftDeletedItems: {},
62
+ onDestinationSoftDelete: () => {
59
63
  }
60
64
  };
61
- const DSSkeletonPropTypes = {
65
+ const DSShuttleV2PropTypes = {
62
66
  ...import_ds_utilities.globalAttributesPropTypes,
63
- ...import_ds_utilities.xstyledPropTypes
67
+ ...import_ds_utilities.xstyledPropTypes,
68
+ sourceData: import_ds_utilities.PropTypes.arrayOf(import_ds_utilities.PropTypes.object).description("hello!").isRequired,
69
+ sourceSelectedItems: import_ds_utilities.PropTypes.object.description("hello!").isRequired,
70
+ onSourceSelectionChange: import_ds_utilities.PropTypes.func.description("hello!").isRequired,
71
+ SourceHeader: import_ds_utilities.PropTypes.node.description("hello!").isRequired,
72
+ onSourceDrilldown: import_ds_utilities.PropTypes.func.description("hello!").isRequired,
73
+ destinationData: import_ds_utilities.PropTypes.arrayOf(import_ds_utilities.PropTypes.object).description("hello!").isRequired,
74
+ destinationSelectedItems: import_ds_utilities.PropTypes.object.description("hello!").isRequired,
75
+ onDestinationSelectionChange: import_ds_utilities.PropTypes.func.description("hello!").isRequired,
76
+ DestinationHeader: import_ds_utilities.PropTypes.node.description("hello!").isRequired,
77
+ onDestinationDrilldown: import_ds_utilities.PropTypes.func.description("hello!").isRequired,
78
+ getId: import_ds_utilities.PropTypes.func.description("hello!").isRequired,
79
+ getLabel: import_ds_utilities.PropTypes.func.description("hello!").isRequired
64
80
  };
81
+ const DSShuttleV2PropTypesSchema = DSShuttleV2PropTypes;
65
82
  //# sourceMappingURL=react-desc-prop-types.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/react-desc-prop-types.ts", "../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["import type { WeakValidationMap } from 'react';\nimport type React from 'react';\nimport type { GlobalAttributesT, XstyledProps } from '@elliemae/ds-utilities';\nimport { globalAttributesPropTypes, xstyledPropTypes } from '@elliemae/ds-utilities';\nimport { type DSControlledCheckboxT } from '@elliemae/ds-form-checkbox';\nimport { type DSButtonT } from '@elliemae/ds-button';\nimport { type useSortable } from '@elliemae/ds-drag-and-drop';\n\nexport declare namespace DSShuttleV2T {\n export type PanelMetaInfo = { isDestinationPanel: boolean };\n export interface ItemMeta extends PanelMetaInfo {\n item: DSShuttleV2T.ConfiguredDatum;\n withDragNDrop: boolean;\n useSortableHelpers?: ReturnType<typeof useSortable>;\n }\n\n export interface Datum extends Record<string, unknown> {\n id: string;\n label: string;\n subtitle?: string;\n Icon?: React.ComponentType<ItemMeta>;\n CustomRenderer?: React.ComponentType<ItemMeta>;\n softDeleted?: boolean;\n preventDrilldown?: boolean;\n preventMove?: boolean;\n }\n export interface ConfiguredDatum {\n isFirst: boolean;\n isLast: boolean;\n isSelected: boolean;\n selectionPrevented: boolean;\n withActions: boolean;\n withMoveBtn: boolean;\n withDrilldownBtn: boolean;\n original: Datum;\n localIndex: number;\n }\n\n type SelectionMap = Record<string, boolean>;\n type OnDataChange = (\n newData: Datum[],\n metainfo: {\n event: React.MouseEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLButtonElement>;\n item?: Datum;\n selectedItems?: Datum[];\n },\n ) => void;\n\n type OnChangeEvent = (\n items: Datum[],\n metainfo: {\n event: React.MouseEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLButtonElement>;\n },\n ) => void;\n\n type OnReorderEvent = (newData: Datum[], metadata: { active: Datum; targetIndex: number }) => void;\n\n type OnSelectionChange = (\n newSelection: SelectionMap,\n metainfo: {\n event:\n | Parameters<Required<DSButtonT.Props>['onClick']>[0]\n | Parameters<DSControlledCheckboxT.InternalProps['onChange']>[1]\n | React.MouseEvent<HTMLButtonElement | HTMLDivElement>\n | React.KeyboardEvent<HTMLDivElement>\n | React.ChangeEvent<HTMLInputElement>;\n item?: Datum;\n },\n ) => void;\n type OnSelectionDrilldown = (\n item: Datum,\n metainfo: { event: React.MouseEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLButtonElement> },\n ) => void;\n\n type OnLoadMore = (e: Parameters<Required<DSButtonT.Props>['onClick']>[0]) => void;\n\n export interface RequiredProps {\n sourceData: Datum[];\n sourceSelectedItems: SelectionMap;\n onSourceSelectionChange: OnSelectionChange;\n SourceHeader: React.ComponentType<unknown>;\n onSourceDrilldown: OnSelectionDrilldown;\n\n destinationData: Datum[];\n destinationSelectedItems: SelectionMap;\n onDestinationSelectionChange: OnSelectionChange;\n DestinationHeader: React.ComponentType<unknown>;\n onDestinationDrilldown: OnSelectionDrilldown;\n }\n\n export interface DefaultProps {\n sourceIsLoading: boolean;\n sourceWithSoftDelete: boolean;\n sourceWithLoadMore: boolean;\n sourceIsLoadingMore: boolean;\n onSourceChange: OnDataChange;\n onSourceAdd: OnChangeEvent;\n onSourceRemove: OnChangeEvent;\n onSourceReorder: OnReorderEvent;\n onSourceLoadMore: OnLoadMore;\n addDragAndDropFromSource: boolean;\n removeDragAndDropFromDestination: boolean;\n destinationIsLoading: boolean;\n destinationWithSoftDelete: boolean;\n destinationWithLoadMore: boolean;\n destinationIsLoadingMore: boolean;\n onDestinationLoadMore: OnLoadMore;\n onDestinationChange: OnDataChange;\n onDestinationAdd: OnChangeEvent;\n onDestinationRemove: OnChangeEvent;\n onDestinationReorder: OnReorderEvent;\n }\n\n type OnFilterChange = (\n newfilter: string | null,\n metainfo: { event: React.ChangeEvent<HTMLInputElement> | React.MouseEvent<HTMLButtonElement> },\n ) => void;\n type OnSearchbarOpen = (\n newfilter: boolean,\n metainfo: { event: Parameters<Required<DSButtonT.Props>['onClick']>[0] },\n ) => void;\n export interface OptionalProps {\n sourceItemProps?: Record<string, unknown>;\n destinationItemProps?: Record<string, unknown>;\n sourceFilterValue?: string;\n\n onSourceFilterChange?: OnFilterChange;\n onSourceOpenSearchbar?: OnSearchbarOpen;\n sourceShowSearchbar?: boolean;\n destinationFilterValue?: string;\n onDestinationFilterChange?: OnFilterChange;\n onDesinationOpenSearchbar?: OnSearchbarOpen;\n destinationShowSearchbar?: boolean;\n }\n\n export interface Props\n extends Partial<DefaultProps>,\n OptionalProps,\n Omit<GlobalAttributesT<HTMLButtonElement>, keyof DefaultProps | keyof OptionalProps | keyof RequiredProps>,\n XstyledProps,\n RequiredProps {}\n\n export interface InternalProps\n extends DefaultProps,\n OptionalProps,\n Omit<GlobalAttributesT<HTMLButtonElement>, keyof DefaultProps | keyof OptionalProps | keyof RequiredProps>,\n XstyledProps,\n RequiredProps {}\n}\n\nexport const defaultProps: DSShuttleV2T.DefaultProps = {\n sourceWithSoftDelete: false,\n addDragAndDropFromSource: false,\n sourceIsLoading: false,\n sourceWithLoadMore: false,\n sourceIsLoadingMore: false,\n onSourceLoadMore: () => {},\n onSourceChange: () => {},\n onSourceAdd: () => {},\n onSourceRemove: () => {},\n\n destinationWithSoftDelete: false,\n removeDragAndDropFromDestination: false,\n destinationIsLoading: false,\n destinationWithLoadMore: false,\n destinationIsLoadingMore: false,\n onDestinationLoadMore: () => {},\n onDestinationChange: () => {},\n onDestinationAdd: () => {},\n onDestinationRemove: () => {},\n};\n\nexport const DSSkeletonPropTypes = {\n ...globalAttributesPropTypes,\n ...xstyledPropTypes,\n} as WeakValidationMap<unknown>;\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADGvB,0BAA4D;AAmJrD,MAAM,eAA0C;AAAA,EACrD,sBAAsB;AAAA,EACtB,0BAA0B;AAAA,EAC1B,iBAAiB;AAAA,EACjB,oBAAoB;AAAA,EACpB,qBAAqB;AAAA,EACrB,kBAAkB,MAAM;AAAA,EAAC;AAAA,EACzB,gBAAgB,MAAM;AAAA,EAAC;AAAA,EACvB,aAAa,MAAM;AAAA,EAAC;AAAA,EACpB,gBAAgB,MAAM;AAAA,EAAC;AAAA,EAEvB,2BAA2B;AAAA,EAC3B,kCAAkC;AAAA,EAClC,sBAAsB;AAAA,EACtB,yBAAyB;AAAA,EACzB,0BAA0B;AAAA,EAC1B,uBAAuB,MAAM;AAAA,EAAC;AAAA,EAC9B,qBAAqB,MAAM;AAAA,EAAC;AAAA,EAC5B,kBAAkB,MAAM;AAAA,EAAC;AAAA,EACzB,qBAAqB,MAAM;AAAA,EAAC;AAC9B;AAEO,MAAM,sBAAsB;AAAA,EACjC,GAAG;AAAA,EACH,GAAG;AACL;",
4
+ "sourcesContent": ["/* eslint-disable max-lines */\nimport type { WeakValidationMap } from 'react';\nimport type React from 'react';\nimport type { GlobalAttributesT, XstyledProps, DSPropTypesSchema } from '@elliemae/ds-utilities';\nimport { PropTypes, globalAttributesPropTypes, xstyledPropTypes } from '@elliemae/ds-utilities';\nimport { type DSControlledCheckboxT } from '@elliemae/ds-form-checkbox';\nimport { type DSButtonT } from '@elliemae/ds-button-v2';\nimport { type useSortable, type DnDKitTree } from '@elliemae/ds-drag-and-drop';\n\nexport declare namespace DSShuttleV2T {\n export type Datum = Record<string, unknown>;\n export type PanelMetaInfo = { isDestinationPanel: boolean; hasMultipleSelection: boolean };\n type HydratedId = string;\n\n export type DatumInternalMeta = {\n isFirst: boolean;\n isLast: boolean;\n isSelected: boolean;\n softDeleted: boolean;\n localIndex: number;\n hydratedId: HydratedId;\n };\n export type DatumRenderFlags = {\n selectionPrevented: boolean;\n withActions: boolean;\n withMoveBtn: boolean;\n withDrilldownBtn: boolean;\n internallyDisabledMove: boolean;\n internallyDisabledDrilldown: boolean;\n };\n\n // =============================================================================\n // Hydratables section\n // Component-less\n // =============================================================================\n export type PrimaryKeyHydratables = {\n id: HydratedId;\n };\n type RequiredDatumHydratablesWithoutComponents = {\n label: string;\n };\n type OptionalDatumHydratablesWithoutComponents = {\n subtitle?: string;\n preventDrilldown?: boolean;\n preventMove?: boolean;\n };\n type DatumHydratablesWithoutComponents = PrimaryKeyHydratables &\n RequiredDatumHydratablesWithoutComponents &\n OptionalDatumHydratablesWithoutComponents;\n // =============================================================================\n // Hydratables section\n // Component-only\n // =============================================================================\n export type ComponentProps = {\n datum: Datum;\n panelMetaInfo: PanelMetaInfo;\n datumInternalMeta: DatumInternalMeta;\n datumHydratables: DatumHydratablesWithoutComponents;\n };\n // eslint-disable-next-line @typescript-eslint/ban-types\n type RequiredDatumHydratablesComponents = {};\n type OptionalDatumHydratablesComponents = {\n Icon?: React.ComponentType<ComponentProps>;\n CustomRenderer?: React.ComponentType<ComponentProps>;\n };\n // =============================================================================\n // Hydratables section\n // Finals\n // =============================================================================\n type RequiredDatumHydratables = RequiredDatumHydratablesWithoutComponents & RequiredDatumHydratablesComponents;\n type OptionalDatumHydratables = OptionalDatumHydratablesWithoutComponents & OptionalDatumHydratablesComponents;\n export type DatumHydratables = RequiredDatumHydratables & OptionalDatumHydratables;\n\n // =============================================================================\n // Hydraters\n // =============================================================================\n export type PrimaryKeyHydraters = Hydraters<PrimaryKeyHydratables, [Datum]>;\n type HydratersMeta = { datumMeta: DatumInternalMeta; panelMetaInfo: PanelMetaInfo };\n type RequiredDatumHydraters = Hydraters<RequiredDatumHydratables, [Datum, HydratersMeta]>;\n type OptionalDatumHydraters = Hydraters<OptionalDatumHydratables, [Datum, HydratersMeta]>;\n\n type DatumHydraters = PrimaryKeyHydraters & RequiredDatumHydraters & OptionalDatumHydraters;\n\n // =============================================================================\n // Datum & Internals structures\n // =============================================================================\n export type ConfiguredDatum = DatumInternalMeta & { original: Datum };\n export interface ItemMeta extends PanelMetaInfo {\n datum: Datum;\n datumHydratables: DatumHydratables;\n datumInternalMeta: DatumInternalMeta;\n datumRenderFlags: DatumRenderFlags;\n withDragNDrop: boolean;\n useSortableHelpers?: ReturnType<typeof useSortable>;\n }\n\n // =============================================================================\n // Callbacks\n // =============================================================================\n type OnDataChange = (\n newData: Datum[],\n metainfo: {\n event: React.MouseEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLButtonElement>;\n item?: Datum;\n selectedItems?: Datum[];\n },\n ) => void;\n\n type OnChangeEvent = (\n items: Datum[],\n metainfo: {\n event: React.MouseEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLButtonElement>;\n },\n ) => void;\n\n type OnReorderEventMetadata = Omit<DnDKitTree.OnReorder<DSShuttleV2T.Datum>, 'considerExpanding'>;\n type OnReorderEvent = (movedItem: Datum, metadata: OnReorderEventMetadata) => void;\n\n export type SelectionMap = Record<string, boolean>;\n type OnSelectionChange = (\n newSelection: SelectionMap,\n metainfo: {\n event:\n | Parameters<Required<DSButtonT.Props>['onClick']>[0]\n | Parameters<DSControlledCheckboxT.InternalProps['onChange']>[1]\n | React.MouseEvent<HTMLButtonElement | HTMLDivElement>\n | React.KeyboardEvent<HTMLDivElement>\n | React.ChangeEvent<HTMLInputElement>;\n item?: Datum;\n },\n ) => void;\n type OnSelectionDrilldown = (\n item: Datum,\n metainfo: { event: React.MouseEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLButtonElement> },\n ) => void;\n\n type OnLoadMore = (e: Parameters<Required<DSButtonT.Props>['onClick']>[0]) => void;\n type OnFilterChange = (\n newfilter: string | null,\n metainfo: { event: React.ChangeEvent<HTMLInputElement> | React.MouseEvent<HTMLButtonElement> },\n ) => void;\n type OnSearchbarOpen = (\n newfilter: boolean,\n metainfo: { event: Parameters<Required<DSButtonT.Props>['onClick']>[0] },\n ) => void;\n\n export type SoftDeletedMap = Record<string, boolean>;\n type OnSoftDeletedChange = (\n newSoftDeleted: SoftDeletedMap,\n metainfo: {\n event:\n | Parameters<Required<DSButtonT.Props>['onClick']>[0]\n | Parameters<DSControlledCheckboxT.InternalProps['onChange']>[1]\n | React.MouseEvent<HTMLButtonElement | HTMLDivElement>\n | React.KeyboardEvent<HTMLDivElement>\n | React.ChangeEvent<HTMLInputElement>;\n item?: Datum;\n },\n ) => void;\n // =============================================================================\n // Final Props\n // =============================================================================\n export interface RequiredProps extends RequiredDatumHydraters, PrimaryKeyHydraters {\n sourceData: Datum[];\n sourceSelectedItems: SelectionMap;\n onSourceSelectionChange: OnSelectionChange;\n SourceHeader: React.ComponentType<unknown>;\n onSourceDrilldown: OnSelectionDrilldown;\n\n destinationData: Datum[];\n destinationSelectedItems: SelectionMap;\n onDestinationSelectionChange: OnSelectionChange;\n DestinationHeader: React.ComponentType<unknown>;\n onDestinationDrilldown: OnSelectionDrilldown;\n }\n\n export interface DefaultProps {\n // load-more and loaders\n sourceIsLoading: boolean;\n sourceWithLoadMore: boolean;\n sourceIsLoadingMore: boolean;\n onSourceLoadMore: OnLoadMore;\n destinationIsLoading: boolean;\n destinationWithLoadMore: boolean;\n destinationIsLoadingMore: boolean;\n onDestinationLoadMore: OnLoadMore;\n\n // switch side\n onSourceAdd: OnChangeEvent;\n onSourceRemove: OnChangeEvent;\n onDestinationAdd: OnChangeEvent;\n onDestinationRemove: OnChangeEvent;\n\n // dnd\n addDragAndDropFromSource: boolean;\n removeDragAndDropFromDestination: boolean;\n onSourceReorder: OnReorderEvent;\n onDestinationReorder: OnReorderEvent;\n\n // soft delete\n sourceSoftDeletedItems: SoftDeletedMap;\n onSourceSoftDelete: OnSoftDeletedChange;\n destinationSoftDeletedItems: SoftDeletedMap;\n onDestinationSoftDelete: OnSoftDeletedChange;\n }\n\n export interface OptionalProps extends OptionalDatumHydraters {\n sourceItemProps?: Record<string, unknown>;\n destinationItemProps?: Record<string, unknown>;\n\n // filtering\n sourceShowSearchbar?: boolean;\n destinationShowSearchbar?: boolean;\n onSourceOpenSearchbar?: OnSearchbarOpen;\n onDesinationOpenSearchbar?: OnSearchbarOpen;\n\n sourceFilterValue?: string;\n destinationFilterValue?: string;\n onSourceFilterChange?: OnFilterChange;\n onDestinationFilterChange?: OnFilterChange;\n }\n\n export interface Props\n extends Partial<DefaultProps>,\n OptionalProps,\n Omit<GlobalAttributesT<HTMLButtonElement>, keyof DefaultProps | keyof OptionalProps | keyof RequiredProps>,\n XstyledProps,\n RequiredProps {}\n\n export interface InternalProps\n extends DefaultProps,\n OptionalProps,\n Omit<GlobalAttributesT<HTMLButtonElement>, keyof DefaultProps | keyof OptionalProps | keyof RequiredProps>,\n XstyledProps,\n RequiredProps {}\n}\n\nexport const defaultProps: DSShuttleV2T.DefaultProps = {\n addDragAndDropFromSource: false,\n removeDragAndDropFromDestination: false,\n\n sourceIsLoading: false,\n destinationIsLoading: false,\n sourceWithLoadMore: false,\n destinationWithLoadMore: false,\n sourceIsLoadingMore: false,\n destinationIsLoadingMore: false,\n onSourceLoadMore: () => {},\n onDestinationLoadMore: () => {},\n\n onSourceAdd: () => {},\n onDestinationAdd: () => {},\n onSourceRemove: () => {},\n onDestinationRemove: () => {},\n onSourceReorder: () => {},\n onDestinationReorder: () => {},\n\n sourceSoftDeletedItems: {},\n onSourceSoftDelete: () => {},\n destinationSoftDeletedItems: {},\n onDestinationSoftDelete: () => {},\n};\n\nconst DSShuttleV2PropTypes: DSPropTypesSchema<DSShuttleV2T.Props> = {\n ...globalAttributesPropTypes,\n ...xstyledPropTypes,\n\n sourceData: PropTypes.arrayOf(PropTypes.object).description('hello!').isRequired,\n sourceSelectedItems: PropTypes.object.description('hello!').isRequired,\n onSourceSelectionChange: PropTypes.func.description('hello!').isRequired,\n SourceHeader: PropTypes.node.description('hello!').isRequired,\n onSourceDrilldown: PropTypes.func.description('hello!').isRequired,\n\n destinationData: PropTypes.arrayOf(PropTypes.object).description('hello!').isRequired,\n destinationSelectedItems: PropTypes.object.description('hello!').isRequired,\n onDestinationSelectionChange: PropTypes.func.description('hello!').isRequired,\n DestinationHeader: PropTypes.node.description('hello!').isRequired,\n onDestinationDrilldown: PropTypes.func.description('hello!').isRequired,\n\n getId: PropTypes.func.description('hello!').isRequired,\n getLabel: PropTypes.func.description('hello!').isRequired,\n};\nexport const DSShuttleV2PropTypesSchema = DSShuttleV2PropTypes as unknown as WeakValidationMap<DSShuttleV2T.Props>;\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADIvB,0BAAuE;AAyOhE,MAAM,eAA0C;AAAA,EACrD,0BAA0B;AAAA,EAC1B,kCAAkC;AAAA,EAElC,iBAAiB;AAAA,EACjB,sBAAsB;AAAA,EACtB,oBAAoB;AAAA,EACpB,yBAAyB;AAAA,EACzB,qBAAqB;AAAA,EACrB,0BAA0B;AAAA,EAC1B,kBAAkB,MAAM;AAAA,EAAC;AAAA,EACzB,uBAAuB,MAAM;AAAA,EAAC;AAAA,EAE9B,aAAa,MAAM;AAAA,EAAC;AAAA,EACpB,kBAAkB,MAAM;AAAA,EAAC;AAAA,EACzB,gBAAgB,MAAM;AAAA,EAAC;AAAA,EACvB,qBAAqB,MAAM;AAAA,EAAC;AAAA,EAC5B,iBAAiB,MAAM;AAAA,EAAC;AAAA,EACxB,sBAAsB,MAAM;AAAA,EAAC;AAAA,EAE7B,wBAAwB,CAAC;AAAA,EACzB,oBAAoB,MAAM;AAAA,EAAC;AAAA,EAC3B,6BAA6B,CAAC;AAAA,EAC9B,yBAAyB,MAAM;AAAA,EAAC;AAClC;AAEA,MAAM,uBAA8D;AAAA,EAClE,GAAG;AAAA,EACH,GAAG;AAAA,EAEH,YAAY,8BAAU,QAAQ,8BAAU,MAAM,EAAE,YAAY,QAAQ,EAAE;AAAA,EACtE,qBAAqB,8BAAU,OAAO,YAAY,QAAQ,EAAE;AAAA,EAC5D,yBAAyB,8BAAU,KAAK,YAAY,QAAQ,EAAE;AAAA,EAC9D,cAAc,8BAAU,KAAK,YAAY,QAAQ,EAAE;AAAA,EACnD,mBAAmB,8BAAU,KAAK,YAAY,QAAQ,EAAE;AAAA,EAExD,iBAAiB,8BAAU,QAAQ,8BAAU,MAAM,EAAE,YAAY,QAAQ,EAAE;AAAA,EAC3E,0BAA0B,8BAAU,OAAO,YAAY,QAAQ,EAAE;AAAA,EACjE,8BAA8B,8BAAU,KAAK,YAAY,QAAQ,EAAE;AAAA,EACnE,mBAAmB,8BAAU,KAAK,YAAY,QAAQ,EAAE;AAAA,EACxD,wBAAwB,8BAAU,KAAK,YAAY,QAAQ,EAAE;AAAA,EAE7D,OAAO,8BAAU,KAAK,YAAY,QAAQ,EAAE;AAAA,EAC5C,UAAU,8BAAU,KAAK,YAAY,QAAQ,EAAE;AACjD;AACO,MAAM,6BAA6B;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../scripts/build/transpile/react-shim.js", "../../src/DSShuttleV2.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport { useShuttleV2 } from './config/useShuttleV2';\nimport {\n InternalProvider,\n PropsProvider,\n useShuttleV2InternalStoreConfig,\n useShuttleV2PropsStoreConfig,\n // useInternalStore,\n} from './config/useStore';\nimport { type DSShuttleV2T } from './react-desc-prop-types';\nimport { MainContent } from './parts/MainContent';\n\nconst ConfiguredComponent = (props: { userProps: DSShuttleV2T.Props }) => {\n useShuttleV2(props.userProps);\n // const store = useInternalStore((state) => state);\n // React.useEffect(() => {\n // console.group('-----------------------------------------');\n // console.groupCollapsed('Full Store');\n // console.log(store);\n // console.groupEnd();\n // console.groupEnd();\n // }, [store]);\n\n return <MainContent />;\n};\n\nexport const DSShuttleV2 = (props: DSShuttleV2T.Props) => {\n const createInternalStore = useShuttleV2InternalStoreConfig(props);\n const createPropsStore = useShuttleV2PropsStoreConfig(props);\n\n return (\n <PropsProvider createStore={createPropsStore}>\n <InternalProvider createStore={createInternalStore}>\n <ConfiguredComponent userProps={props} />\n </InternalProvider>\n </PropsProvider>\n );\n};\n"],
5
- "mappings": "AAAA,YAAY,WAAW;ACuBd;AAtBT,SAAS,oBAAoB;AAC7B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AAEP,SAAS,mBAAmB;AAE5B,MAAM,sBAAsB,CAAC,UAA6C;AACxE,eAAa,MAAM,SAAS;AAU5B,SAAO,oBAAC,eAAY;AACtB;AAEO,MAAM,cAAc,CAAC,UAA8B;AACxD,QAAM,sBAAsB,gCAAgC,KAAK;AACjE,QAAM,mBAAmB,6BAA6B,KAAK;AAE3D,SACE,oBAAC,iBAAc,aAAa,kBAC1B,8BAAC,oBAAiB,aAAa,qBAC7B,8BAAC,uBAAoB,WAAW,OAAO,GACzC,GACF;AAEJ;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport { useShuttleV2 } from './config/useShuttleV2';\nimport {\n InternalProvider,\n PropsProvider,\n useShuttleV2InternalStoreConfig,\n useShuttleV2PropsStoreConfig,\n // useInternalStore,\n} from './config/useStore';\nimport { type DSShuttleV2T } from './react-desc-prop-types';\nimport { MainContent } from './parts/MainContent';\n\nconst ConfiguredComponent = (props: { userProps: DSShuttleV2T.Props }) => {\n useShuttleV2(props.userProps);\n // const store = useInternalStore((state) => state);\n // React.useEffect(() => {\n // console.group('-----------------------------------------');\n // console.groupCollapsed('Full Store');\n // // console.log(store);\n // console.log('focusItem', store.focusItem);\n // console.log('focusItemAction', store.focusItemAction);\n // console.log('focusRegion', store.focusRegion);\n // console.groupEnd();\n // console.groupEnd();\n // }, [store]);\n\n return <MainContent />;\n};\n\nexport const DSShuttleV2 = (props: DSShuttleV2T.Props) => {\n const createInternalStore = useShuttleV2InternalStoreConfig(props);\n const createPropsStore = useShuttleV2PropsStoreConfig(props);\n\n return (\n <PropsProvider createStore={createPropsStore}>\n <InternalProvider createStore={createInternalStore}>\n <ConfiguredComponent userProps={props} />\n </InternalProvider>\n </PropsProvider>\n );\n};\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;AC0Bd;AAzBT,SAAS,oBAAoB;AAC7B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AAEP,SAAS,mBAAmB;AAE5B,MAAM,sBAAsB,CAAC,UAA6C;AACxE,eAAa,MAAM,SAAS;AAa5B,SAAO,oBAAC,eAAY;AACtB;AAEO,MAAM,cAAc,CAAC,UAA8B;AACxD,QAAM,sBAAsB,gCAAgC,KAAK;AACjE,QAAM,mBAAmB,6BAA6B,KAAK;AAE3D,SACE,oBAAC,iBAAc,aAAa,kBAC1B,8BAAC,oBAAiB,aAAa,qBAC7B,8BAAC,uBAAoB,WAAW,OAAO,GACzC,GACF;AAEJ;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/config/DSShuttleV2Definitions.ts"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { slotObjectToDataTestIds } from '@elliemae/ds-system';\n\nexport const DSShuttleV2Name = 'DSShuttleV2';\n\nexport const DSShuttleV2Slots = {\n HEADER_SEARCH_ICON: 'header-search-icon',\n WRAPPER: 'wrapper',\n PANEL_WRAPPER: 'panel-wrapper',\n LIST_WRAPPER: 'list-wrapper',\n ITEM_WRAPPER: 'item-wrapper',\n ITEM_ICON_WRAPPER: 'item-icon-wrapper',\n ITEM_LABEL_WRAPPER: 'item-label-wrapper',\n ITEM_MIDSECTION_WRAPPER: 'item-midsection-wrapper',\n ITEM_SELECTION: 'item-selection',\n ITEM_ACTIONS_WRAPPER: 'item-actions-wrapper',\n ITEM_ACTION_WRAPPER: 'item-action-wrapper',\n ITEM_ACTION_BTN: 'item-action-btn',\n ITEM_ACTION_BTN_DRILLDOWN_ICON: 'item-action-btn-drilldown-icon',\n ITEM_ACTION_BTN_TO_SOURCE_ICON: 'item-action-btn-to-source-icon',\n ITEM_ACTION_BTN_TO_DESTINATION_ICON: 'item-action-btn-to-destination-icon',\n LIST_BOTTOM_LOADING_MORE: 'list-bottom-loading-more',\n LIST_BOTTOM_LOAD_MORE_BTN: 'list-bottom-load-more-btn',\n LIST_WRAPPER_BOTTOM: 'list-wrapper-bottom',\n EMPTY_LIST_WRAPPER: 'empty-list-wrapper',\n ITEMS_WRAPPER: 'items-wrapper',\n LOADING_LIST_WRAPPER: 'loading-list-wrapper',\n MOVE_MULTIPLE_WRAPPER: 'move-multiple-wrapper',\n MOVE_MULTIPLE_BTN: 'move-multiple-btn',\n LIST_WRAPPER_MID: 'list-wrapper-mid',\n LIST_WRAPPER_TOP: 'list-wrapper-top',\n AREA_SEARCH_WRAPPER: 'area-search-wrapper',\n AREA_SEARCH_BAR: 'area-search-bar',\n AREA_SELECTION_HEADER: 'area-selection-header',\n AREA_SELECTION_HEADER_COUNT_LABEL: 'area-selection-header-count-label',\n};\n\nexport const DSShuttleV2DataTestIds = slotObjectToDataTestIds(DSShuttleV2Name, DSShuttleV2Slots);\n"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { slotObjectToDataTestIds } from '@elliemae/ds-system';\n\nexport const DSShuttleV2Name = 'DSShuttleV2' as const;\n\nexport const DSShuttleV2Slots = {\n HEADER_SEARCH_ICON: 'header-search-icon',\n WRAPPER: 'wrapper',\n PANEL_WRAPPER: 'panel-wrapper',\n LIST_WRAPPER: 'list-wrapper',\n ITEM_WRAPPER: 'item-wrapper',\n ITEM_ICON_WRAPPER: 'item-icon-wrapper',\n ITEM_LABEL_WRAPPER: 'item-label-wrapper',\n ITEM_MIDSECTION_WRAPPER: 'item-midsection-wrapper',\n ITEM_SELECTION: 'item-selection',\n ITEM_ACTIONS_WRAPPER: 'item-actions-wrapper',\n ITEM_ACTION_WRAPPER: 'item-action-wrapper',\n ITEM_ACTION_BTN: 'item-action-btn',\n ITEM_ACTION_BTN_DRILLDOWN_ICON: 'item-action-btn-drilldown-icon',\n ITEM_ACTION_BTN_TO_SOURCE_ICON: 'item-action-btn-to-source-icon',\n ITEM_ACTION_BTN_TO_DESTINATION_ICON: 'item-action-btn-to-destination-icon',\n LIST_BOTTOM_LOADING_MORE: 'list-bottom-loading-more',\n LIST_BOTTOM_LOAD_MORE_BTN: 'list-bottom-load-more-btn',\n LIST_WRAPPER_BOTTOM: 'list-wrapper-bottom',\n EMPTY_LIST_WRAPPER: 'empty-list-wrapper',\n ITEMS_WRAPPER: 'items-wrapper',\n LOADING_LIST_WRAPPER: 'loading-list-wrapper',\n MOVE_MULTIPLE_WRAPPER: 'move-multiple-wrapper',\n MOVE_MULTIPLE_BTN: 'move-multiple-btn',\n LIST_WRAPPER_MID: 'list-wrapper-mid',\n LIST_WRAPPER_TOP: 'list-wrapper-top',\n AREA_SEARCH_WRAPPER: 'area-search-wrapper',\n AREA_SEARCH_BAR: 'area-search-bar',\n AREA_SELECTION_HEADER: 'area-selection-header',\n AREA_SELECTION_HEADER_COUNT_LABEL: 'area-selection-header-count-label',\n} as const;\n\nexport const DSShuttleV2DataTestIds = slotObjectToDataTestIds(DSShuttleV2Name, DSShuttleV2Slots);\n"],
5
5
  "mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,+BAA+B;AAEjC,MAAM,kBAAkB;AAExB,MAAM,mBAAmB;AAAA,EAC9B,oBAAoB;AAAA,EACpB,SAAS;AAAA,EACT,eAAe;AAAA,EACf,cAAc;AAAA,EACd,cAAc;AAAA,EACd,mBAAmB;AAAA,EACnB,oBAAoB;AAAA,EACpB,yBAAyB;AAAA,EACzB,gBAAgB;AAAA,EAChB,sBAAsB;AAAA,EACtB,qBAAqB;AAAA,EACrB,iBAAiB;AAAA,EACjB,gCAAgC;AAAA,EAChC,gCAAgC;AAAA,EAChC,qCAAqC;AAAA,EACrC,0BAA0B;AAAA,EAC1B,2BAA2B;AAAA,EAC3B,qBAAqB;AAAA,EACrB,oBAAoB;AAAA,EACpB,eAAe;AAAA,EACf,sBAAsB;AAAA,EACtB,uBAAuB;AAAA,EACvB,mBAAmB;AAAA,EACnB,kBAAkB;AAAA,EAClB,kBAAkB;AAAA,EAClB,qBAAqB;AAAA,EACrB,iBAAiB;AAAA,EACjB,uBAAuB;AAAA,EACvB,mCAAmC;AACrC;AAEO,MAAM,yBAAyB,wBAAwB,iBAAiB,gBAAgB;",
6
6
  "names": []
7
7
  }