@elliemae/ds-shuttle-v2 3.13.0-next.4 → 3.13.1-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/DSShuttleV2.js +3 -2
- package/dist/cjs/DSShuttleV2.js.map +3 -3
- package/dist/cjs/config/{useAutoCalculated/useDataStructure.js → configureAutoCalculated.js} +12 -22
- package/dist/cjs/config/configureAutoCalculated.js.map +7 -0
- package/dist/cjs/config/itemMovementHelpers.js +1 -17
- package/dist/cjs/config/itemMovementHelpers.js.map +2 -2
- package/dist/cjs/config/useFocusTracker/useFocusActionTrackers.js +6 -6
- package/dist/cjs/config/useFocusTracker/useFocusActionTrackers.js.map +2 -2
- package/dist/cjs/config/useShuttleV2.js +5 -4
- package/dist/cjs/config/useShuttleV2.js.map +2 -2
- package/dist/cjs/config/useStore/useStore.js +5 -14
- package/dist/cjs/config/useStore/useStore.js.map +2 -2
- package/dist/cjs/constants/index.js +0 -4
- package/dist/cjs/constants/index.js.map +2 -2
- package/dist/cjs/index.js +1 -5
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs/parts/Header.js +1 -2
- package/dist/cjs/parts/Header.js.map +2 -2
- package/dist/cjs/parts/Item/Item.js +11 -64
- package/dist/cjs/parts/Item/Item.js.map +3 -3
- package/dist/cjs/parts/Item/ItemActions/ItemActions.js +9 -10
- package/dist/cjs/parts/Item/ItemActions/ItemActions.js.map +2 -2
- package/dist/cjs/parts/Item/ItemActions/useActionsLogicHandlers.js +1 -16
- package/dist/cjs/parts/Item/ItemActions/useActionsLogicHandlers.js.map +2 -2
- package/dist/cjs/parts/Item/ItemActions/useInnerRefHandlers.js +4 -18
- package/dist/cjs/parts/Item/ItemActions/useInnerRefHandlers.js.map +2 -2
- package/dist/cjs/parts/Item/ItemMiddleSection.js +3 -4
- package/dist/cjs/parts/Item/ItemMiddleSection.js.map +2 -2
- package/dist/cjs/parts/Item/ItemSelection.js +1 -2
- package/dist/cjs/parts/Item/ItemSelection.js.map +2 -2
- package/dist/cjs/parts/Item/useItemArrowNavigation.js +0 -7
- package/dist/cjs/parts/Item/useItemArrowNavigation.js.map +2 -2
- package/dist/cjs/parts/Item/useSelectionLogic.js +1 -12
- package/dist/cjs/parts/Item/useSelectionLogic.js.map +2 -2
- package/dist/cjs/parts/MainContent.js +1 -2
- package/dist/cjs/parts/MainContent.js.map +2 -2
- package/dist/cjs/parts/Panel/bottom/LoadMoreBtn.js +1 -5
- package/dist/cjs/parts/Panel/bottom/LoadMoreBtn.js.map +2 -2
- package/dist/cjs/parts/Panel/bottom/LoadingMore.js +1 -5
- package/dist/cjs/parts/Panel/bottom/LoadingMore.js.map +2 -2
- package/dist/cjs/parts/Panel/bottom/PanelContentBottomSection.js +1 -2
- package/dist/cjs/parts/Panel/bottom/PanelContentBottomSection.js.map +2 -2
- package/dist/cjs/parts/Panel/bottom/useLoadMoreBtnArrowNavigation.js +1 -14
- package/dist/cjs/parts/Panel/bottom/useLoadMoreBtnArrowNavigation.js.map +2 -2
- package/dist/cjs/parts/Panel/middle/EmptyItems.js +1 -2
- package/dist/cjs/parts/Panel/middle/EmptyItems.js.map +2 -2
- package/dist/cjs/parts/Panel/middle/ItemListWrapper.js +102 -48
- package/dist/cjs/parts/Panel/middle/ItemListWrapper.js.map +2 -2
- package/dist/cjs/parts/Panel/middle/LoadingItems.js +1 -2
- package/dist/cjs/parts/Panel/middle/LoadingItems.js.map +2 -2
- package/dist/cjs/parts/Panel/middle/MultipleSelectionAction.js +7 -9
- package/dist/cjs/parts/Panel/middle/MultipleSelectionAction.js.map +2 -2
- package/dist/cjs/parts/Panel/middle/PanelContentMiddleSection.js +7 -120
- package/dist/cjs/parts/Panel/middle/PanelContentMiddleSection.js.map +2 -2
- package/dist/cjs/parts/Panel/top/PanelContentTopSection.js +1 -2
- package/dist/cjs/parts/Panel/top/PanelContentTopSection.js.map +2 -2
- package/dist/cjs/parts/Panel/top/PanelFilterSection.js +2 -3
- package/dist/cjs/parts/Panel/top/PanelFilterSection.js.map +2 -2
- package/dist/cjs/parts/Panel/top/SelectionHeader.js +3 -7
- package/dist/cjs/parts/Panel/top/SelectionHeader.js.map +2 -2
- package/dist/cjs/parts/PanelWrapper.js +2 -3
- package/dist/cjs/parts/PanelWrapper.js.map +2 -2
- package/dist/cjs/react-desc-prop-types.js +2 -14
- package/dist/cjs/react-desc-prop-types.js.map +2 -2
- package/dist/esm/DSShuttleV2.js +3 -2
- package/dist/esm/DSShuttleV2.js.map +3 -3
- package/dist/esm/config/{useAutoCalculated/useDataStructure.js → configureAutoCalculated.js} +9 -19
- package/dist/esm/config/configureAutoCalculated.js.map +7 -0
- package/dist/esm/config/itemMovementHelpers.js +1 -17
- package/dist/esm/config/itemMovementHelpers.js.map +2 -2
- package/dist/esm/config/useFocusTracker/useFocusActionTrackers.js +6 -6
- package/dist/esm/config/useFocusTracker/useFocusActionTrackers.js.map +2 -2
- package/dist/esm/config/useShuttleV2.js +5 -4
- package/dist/esm/config/useShuttleV2.js.map +2 -2
- package/dist/esm/config/useStore/useStore.js +5 -14
- package/dist/esm/config/useStore/useStore.js.map +2 -2
- package/dist/esm/constants/index.js +0 -4
- package/dist/esm/constants/index.js.map +2 -2
- package/dist/esm/index.js +1 -5
- package/dist/esm/index.js.map +2 -2
- package/dist/esm/parts/Header.js +1 -2
- package/dist/esm/parts/Header.js.map +2 -2
- package/dist/esm/parts/Item/Item.js +13 -66
- package/dist/esm/parts/Item/Item.js.map +2 -2
- package/dist/esm/parts/Item/ItemActions/ItemActions.js +9 -10
- package/dist/esm/parts/Item/ItemActions/ItemActions.js.map +2 -2
- package/dist/esm/parts/Item/ItemActions/useActionsLogicHandlers.js +1 -16
- package/dist/esm/parts/Item/ItemActions/useActionsLogicHandlers.js.map +2 -2
- package/dist/esm/parts/Item/ItemActions/useInnerRefHandlers.js +4 -18
- package/dist/esm/parts/Item/ItemActions/useInnerRefHandlers.js.map +2 -2
- package/dist/esm/parts/Item/ItemMiddleSection.js +3 -4
- package/dist/esm/parts/Item/ItemMiddleSection.js.map +2 -2
- package/dist/esm/parts/Item/ItemSelection.js +1 -2
- package/dist/esm/parts/Item/ItemSelection.js.map +2 -2
- package/dist/esm/parts/Item/useItemArrowNavigation.js +0 -7
- package/dist/esm/parts/Item/useItemArrowNavigation.js.map +2 -2
- package/dist/esm/parts/Item/useSelectionLogic.js +2 -13
- package/dist/esm/parts/Item/useSelectionLogic.js.map +2 -2
- package/dist/esm/parts/MainContent.js +1 -2
- package/dist/esm/parts/MainContent.js.map +2 -2
- package/dist/esm/parts/Panel/bottom/LoadMoreBtn.js +1 -5
- package/dist/esm/parts/Panel/bottom/LoadMoreBtn.js.map +2 -2
- package/dist/esm/parts/Panel/bottom/LoadingMore.js +1 -5
- package/dist/esm/parts/Panel/bottom/LoadingMore.js.map +2 -2
- package/dist/esm/parts/Panel/bottom/PanelContentBottomSection.js +1 -2
- package/dist/esm/parts/Panel/bottom/PanelContentBottomSection.js.map +2 -2
- package/dist/esm/parts/Panel/bottom/useLoadMoreBtnArrowNavigation.js +1 -14
- package/dist/esm/parts/Panel/bottom/useLoadMoreBtnArrowNavigation.js.map +2 -2
- package/dist/esm/parts/Panel/middle/EmptyItems.js +1 -2
- package/dist/esm/parts/Panel/middle/EmptyItems.js.map +2 -2
- package/dist/esm/parts/Panel/middle/ItemListWrapper.js +104 -50
- package/dist/esm/parts/Panel/middle/ItemListWrapper.js.map +2 -2
- package/dist/esm/parts/Panel/middle/LoadingItems.js +1 -2
- package/dist/esm/parts/Panel/middle/LoadingItems.js.map +2 -2
- package/dist/esm/parts/Panel/middle/MultipleSelectionAction.js +7 -9
- package/dist/esm/parts/Panel/middle/MultipleSelectionAction.js.map +2 -2
- package/dist/esm/parts/Panel/middle/PanelContentMiddleSection.js +9 -122
- package/dist/esm/parts/Panel/middle/PanelContentMiddleSection.js.map +2 -2
- package/dist/esm/parts/Panel/top/PanelContentTopSection.js +1 -2
- package/dist/esm/parts/Panel/top/PanelContentTopSection.js.map +2 -2
- package/dist/esm/parts/Panel/top/PanelFilterSection.js +2 -3
- package/dist/esm/parts/Panel/top/PanelFilterSection.js.map +2 -2
- package/dist/esm/parts/Panel/top/SelectionHeader.js +3 -7
- package/dist/esm/parts/Panel/top/SelectionHeader.js.map +2 -2
- package/dist/esm/parts/PanelWrapper.js +2 -3
- package/dist/esm/parts/PanelWrapper.js.map +2 -2
- package/dist/esm/react-desc-prop-types.js +2 -14
- package/dist/esm/react-desc-prop-types.js.map +2 -2
- package/package.json +11 -12
- package/dist/cjs/config/DSShuttleV2Definitions.js +0 -67
- package/dist/cjs/config/DSShuttleV2Definitions.js.map +0 -7
- package/dist/cjs/config/useAutoCalculated/index.js +0 -39
- package/dist/cjs/config/useAutoCalculated/index.js.map +0 -7
- package/dist/cjs/config/useAutoCalculated/useDataStructure.js.map +0 -7
- package/dist/cjs/config/useAutoCalculated/useShuttleVirtualized.js +0 -98
- package/dist/cjs/config/useAutoCalculated/useShuttleVirtualized.js.map +0 -7
- package/dist/cjs/parts/Dnd/DndHandle.js +0 -64
- package/dist/cjs/parts/Dnd/DndHandle.js.map +0 -7
- package/dist/cjs/parts/Dnd/DropIndicator.js +0 -88
- package/dist/cjs/parts/Dnd/DropIndicator.js.map +0 -7
- package/dist/cjs/parts/HoC/withConditionalDnDRowContext.js +0 -90
- package/dist/cjs/parts/HoC/withConditionalDnDRowContext.js.map +0 -7
- package/dist/cjs/parts/HoC/withConditionalUseSortable.js +0 -38
- package/dist/cjs/parts/HoC/withConditionalUseSortable.js.map +0 -7
- package/dist/cjs/parts/Item/ItemOverlay.js +0 -61
- package/dist/cjs/parts/Item/ItemOverlay.js.map +0 -7
- package/dist/esm/config/DSShuttleV2Definitions.js +0 -41
- package/dist/esm/config/DSShuttleV2Definitions.js.map +0 -7
- package/dist/esm/config/useAutoCalculated/index.js +0 -13
- package/dist/esm/config/useAutoCalculated/index.js.map +0 -7
- package/dist/esm/config/useAutoCalculated/useDataStructure.js.map +0 -7
- package/dist/esm/config/useAutoCalculated/useShuttleVirtualized.js +0 -72
- package/dist/esm/config/useAutoCalculated/useShuttleVirtualized.js.map +0 -7
- package/dist/esm/parts/Dnd/DndHandle.js +0 -38
- package/dist/esm/parts/Dnd/DndHandle.js.map +0 -7
- package/dist/esm/parts/Dnd/DropIndicator.js +0 -62
- package/dist/esm/parts/Dnd/DropIndicator.js.map +0 -7
- package/dist/esm/parts/HoC/withConditionalDnDRowContext.js +0 -64
- package/dist/esm/parts/HoC/withConditionalDnDRowContext.js.map +0 -7
- package/dist/esm/parts/HoC/withConditionalUseSortable.js +0 -12
- package/dist/esm/parts/HoC/withConditionalUseSortable.js.map +0 -7
- package/dist/esm/parts/Item/ItemOverlay.js +0 -35
- package/dist/esm/parts/Item/ItemOverlay.js.map +0 -7
|
@@ -32,55 +32,15 @@ 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_utilities = require("@elliemae/ds-utilities");
|
|
36
35
|
var import_useStore = require("../../../config/useStore");
|
|
37
36
|
var import_ItemListWrapper = require("./ItemListWrapper");
|
|
38
37
|
var import_EmptyItems = require("./EmptyItems");
|
|
39
|
-
var import_useFocusTracker = require("../../../config/useFocusTracker");
|
|
40
38
|
var import_LoadingItems = require("./LoadingItems");
|
|
41
|
-
|
|
42
|
-
var import_constants = require("../../../constants");
|
|
43
|
-
var import_DSShuttleV2Definitions = require("../../../config/DSShuttleV2Definitions");
|
|
44
|
-
const useInnerRefHandlers = (isDestinationPanel) => {
|
|
45
|
-
const focusRegion = (0, import_useStore.useInternalStore)((state) => state.focusRegion);
|
|
46
|
-
const focusItem = (0, import_useStore.useInternalStore)((state) => state.focusItem);
|
|
47
|
-
const focusItemAction = (0, import_useStore.useInternalStore)((state) => state.focusItemAction);
|
|
48
|
-
const currRegion = isDestinationPanel ? import_constants.REGIONS_FOCUSES.DESTINATION_PANEL : import_constants.REGIONS_FOCUSES.SOURCE_PANEL;
|
|
49
|
-
const shouldFocus = import_react.default.useMemo(
|
|
50
|
-
() => focusRegion === currRegion && focusItem === "" && focusItemAction === "",
|
|
51
|
-
[currRegion, focusItem, focusItemAction, focusRegion]
|
|
52
|
-
);
|
|
53
|
-
const innerRefHandlerParentItem = import_react.default.useCallback(
|
|
54
|
-
(node) => {
|
|
55
|
-
if (shouldFocus) {
|
|
56
|
-
node?.focus();
|
|
57
|
-
}
|
|
58
|
-
},
|
|
59
|
-
[shouldFocus]
|
|
60
|
-
);
|
|
61
|
-
return import_react.default.useMemo(() => ({ shouldFocus, innerRefHandlerParentItem }), [shouldFocus, innerRefHandlerParentItem]);
|
|
62
|
-
};
|
|
63
|
-
const StyledListWrapperMid = (0, import_ds_system.styled)(import_ds_grid.Grid, { name: import_DSShuttleV2Definitions.DSShuttleV2Name, slot: import_DSShuttleV2Definitions.DSShuttleV2Slots.LIST_WRAPPER_MID })`
|
|
39
|
+
const StyledListWrapperMid = (0, import_ds_system.styled)(import_ds_grid.Grid, { name: "ds-shuttle-v2", slot: "list-wrapper-mid" })`
|
|
64
40
|
overflow: hidden;
|
|
65
|
-
position: relative;
|
|
66
|
-
|
|
67
|
-
:focus,
|
|
68
|
-
:focus-visible {
|
|
69
|
-
outline: none;
|
|
70
|
-
|
|
71
|
-
&::after {
|
|
72
|
-
position: absolute;
|
|
73
|
-
content: ' ';
|
|
74
|
-
outline: 2px solid brand-700;
|
|
75
|
-
outline-offset: -2px;
|
|
76
|
-
width: 100%;
|
|
77
|
-
height: 100%;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
41
|
`;
|
|
81
|
-
const StyledMidScroller = (0, import_ds_system.styled)(import_ds_grid.Grid, { name:
|
|
42
|
+
const StyledMidScroller = (0, import_ds_system.styled)(import_ds_grid.Grid, { name: "ds-shuttle-v2", slot: "list-wrapper-mid" })`
|
|
82
43
|
overflow: auto;
|
|
83
|
-
max-height: '500px';
|
|
84
44
|
`;
|
|
85
45
|
const PanelContentMiddleSection = import_react.default.memo((panelMetaInfo) => {
|
|
86
46
|
const { isDestinationPanel = false } = panelMetaInfo;
|
|
@@ -90,83 +50,10 @@ const PanelContentMiddleSection = import_react.default.memo((panelMetaInfo) => {
|
|
|
90
50
|
const isLoading = (0, import_useStore.usePropsStore)((state) => isDestinationPanel ? state.destinationIsLoading : state.sourceIsLoading);
|
|
91
51
|
const showEmptyMessage = !isLoading && itemsLength === 0;
|
|
92
52
|
const showItems = !isLoading && !showEmptyMessage;
|
|
93
|
-
|
|
94
|
-
(
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
const hasMultipleSelection = isDestinationPanel ? destinationHasMultipleSelectedItems : sourceHasMultipleSelectedItems;
|
|
99
|
-
const isDragging = (0, import_useStore.useInternalStore)((state) => state.lastActiveId !== "");
|
|
100
|
-
const withLoadMore = (0, import_useStore.usePropsStore)(
|
|
101
|
-
(state) => isDestinationPanel ? state.destinationWithLoadMore : state.sourceWithLoadMore
|
|
102
|
-
);
|
|
103
|
-
const { innerRefHandlerParentItem } = useInnerRefHandlers(isDestinationPanel);
|
|
104
|
-
const {
|
|
105
|
-
trackFocusRegionPanel,
|
|
106
|
-
trackFocusItemFirst,
|
|
107
|
-
trackFocusItemLast,
|
|
108
|
-
trackFocusActionParent,
|
|
109
|
-
trackFocusRegionPanelItem,
|
|
110
|
-
trackFocusLoadMoreBtn
|
|
111
|
-
} = (0, import_useFocusTracker.useFocusTracker)();
|
|
112
|
-
const config = import_react.default.useMemo(
|
|
113
|
-
() => ({
|
|
114
|
-
onFocus: () => {
|
|
115
|
-
trackFocusRegionPanel(isDestinationPanel);
|
|
116
|
-
}
|
|
117
|
-
}),
|
|
118
|
-
[trackFocusRegionPanel, isDestinationPanel]
|
|
119
|
-
);
|
|
120
|
-
const onPanelFocus = (0, import_ds_utilities.useOnSpecificFocus)(config);
|
|
121
|
-
const onPanelKeyDown = import_react.default.useCallback(
|
|
122
|
-
(e) => {
|
|
123
|
-
const { key } = e;
|
|
124
|
-
if (isDragging) {
|
|
125
|
-
e.preventDefault();
|
|
126
|
-
return;
|
|
127
|
-
}
|
|
128
|
-
if (["Home", "End", "ArrowUp", "ArrowDown"].includes(key)) {
|
|
129
|
-
e.preventDefault();
|
|
130
|
-
e.stopPropagation();
|
|
131
|
-
trackFocusRegionPanelItem(isDestinationPanel);
|
|
132
|
-
trackFocusActionParent();
|
|
133
|
-
if (key === "ArrowDown" || key === "Home")
|
|
134
|
-
trackFocusItemFirst();
|
|
135
|
-
if (key === "ArrowUp" || key === "End") {
|
|
136
|
-
if (withLoadMore)
|
|
137
|
-
trackFocusLoadMoreBtn();
|
|
138
|
-
else
|
|
139
|
-
trackFocusItemLast();
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
},
|
|
143
|
-
[
|
|
144
|
-
isDragging,
|
|
145
|
-
isDestinationPanel,
|
|
146
|
-
trackFocusActionParent,
|
|
147
|
-
trackFocusItemFirst,
|
|
148
|
-
trackFocusItemLast,
|
|
149
|
-
trackFocusLoadMoreBtn,
|
|
150
|
-
trackFocusRegionPanelItem,
|
|
151
|
-
withLoadMore
|
|
152
|
-
]
|
|
153
|
-
);
|
|
154
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
155
|
-
StyledListWrapperMid,
|
|
156
|
-
{
|
|
157
|
-
onFocus: onPanelFocus,
|
|
158
|
-
onKeyDown: onPanelKeyDown,
|
|
159
|
-
tabIndex: 0,
|
|
160
|
-
ref: innerRefHandlerParentItem,
|
|
161
|
-
children: [
|
|
162
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(StyledMidScroller, { ref: virtualRef, children: [
|
|
163
|
-
isLoading ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_LoadingItems.LoadingItems, { ...panelMetaInfo }) : null,
|
|
164
|
-
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
|
|
166
|
-
] }),
|
|
167
|
-
hasMultipleSelection ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_MultipleSelectionAction.MultipleSelectionAction, { isDestinationPanel }) : null
|
|
168
|
-
]
|
|
169
|
-
}
|
|
170
|
-
);
|
|
53
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StyledListWrapperMid, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(StyledMidScroller, { children: [
|
|
54
|
+
isLoading ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_LoadingItems.LoadingItems, { ...panelMetaInfo }) : null,
|
|
55
|
+
showEmptyMessage ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_EmptyItems.EmptyItems, { ...panelMetaInfo }) : null,
|
|
56
|
+
showItems ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ItemListWrapper.ItemListWrapper, { ...panelMetaInfo }) : null
|
|
57
|
+
] }) });
|
|
171
58
|
});
|
|
172
59
|
//# sourceMappingURL=PanelContentMiddleSection.js.map
|
|
@@ -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 {
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;
|
|
4
|
+
"sourcesContent": ["import React from 'react';\nimport { styled } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { usePropsStore } from '../../../config/useStore';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types';\nimport { ItemListWrapper } from './ItemListWrapper';\nimport { EmptyItems } from './EmptyItems';\nimport { LoadingItems } from './LoadingItems';\n\nconst StyledListWrapperMid = styled(Grid, { name: 'ds-shuttle-v2', slot: 'list-wrapper-mid' })`\n overflow: hidden;\n`;\nconst StyledMidScroller = styled(Grid, { name: 'ds-shuttle-v2', slot: 'list-wrapper-mid' })`\n overflow: auto;\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 return (\n <StyledListWrapperMid>\n <StyledMidScroller>\n {isLoading ? <LoadingItems {...panelMetaInfo} /> : null}\n {showEmptyMessage ? <EmptyItems {...panelMetaInfo} /> : null}\n {showItems ? <ItemListWrapper {...panelMetaInfo} /> : null}\n </StyledMidScroller>\n </StyledListWrapperMid>\n );\n});\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;AD0BjB;AA1BN,mBAAkB;AAClB,uBAAuB;AACvB,qBAAqB;AACrB,sBAA8B;AAE9B,6BAAgC;AAChC,wBAA2B;AAC3B,0BAA6B;AAE7B,MAAM,2BAAuB,yBAAO,qBAAM,EAAE,MAAM,iBAAiB,MAAM,mBAAmB,CAAC;AAAA;AAAA;AAG7F,MAAM,wBAAoB,yBAAO,qBAAM,EAAE,MAAM,iBAAiB,MAAM,mBAAmB,CAAC;AAAA;AAAA;AAGnF,MAAM,4BAA4B,aAAAA,QAAM,KAAK,CAAC,kBAA8C;AACjG,QAAM,EAAE,qBAAqB,MAAM,IAAI;AACvC,QAAM,kBAAc;AAAA,IAAc,CAAC,UACjC,qBAAqB,MAAM,gBAAgB,SAAS,MAAM,WAAW;AAAA,EACvE;AACA,QAAM,gBAAY,+BAAc,CAAC,UAAW,qBAAqB,MAAM,uBAAuB,MAAM,eAAgB;AACpH,QAAM,mBAAmB,CAAC,aAAa,gBAAgB;AACvD,QAAM,YAAY,CAAC,aAAa,CAAC;AAEjC,SACE,4CAAC,wBACC,uDAAC,qBACE;AAAA,gBAAY,4CAAC,oCAAc,GAAG,eAAe,IAAK;AAAA,IAClD,mBAAmB,4CAAC,gCAAY,GAAG,eAAe,IAAK;AAAA,IACvD,YAAY,4CAAC,0CAAiB,GAAG,eAAe,IAAK;AAAA,KACxD,GACF;AAEJ,CAAC;",
|
|
6
6
|
"names": ["React"]
|
|
7
7
|
}
|
|
@@ -35,8 +35,7 @@ var import_ds_grid = require("@elliemae/ds-grid");
|
|
|
35
35
|
var import_useStore = require("../../../config/useStore");
|
|
36
36
|
var import_SelectionHeader = require("./SelectionHeader");
|
|
37
37
|
var import_PanelFilterSection = require("./PanelFilterSection");
|
|
38
|
-
|
|
39
|
-
const StyledListWrapperTop = (0, import_ds_system.styled)(import_ds_grid.Grid, { name: import_DSShuttleV2Definitions.DSShuttleV2Name, slot: import_DSShuttleV2Definitions.DSShuttleV2Slots.LIST_WRAPPER_TOP })``;
|
|
38
|
+
const StyledListWrapperTop = (0, import_ds_system.styled)(import_ds_grid.Grid, { name: "ds-shuttle-v2", slot: "list-wrapper-top" })``;
|
|
40
39
|
const PanelContentTopSection = (panelMetaInfo) => {
|
|
41
40
|
const { isDestinationPanel = false } = panelMetaInfo;
|
|
42
41
|
const isSearchBarOpen = (0, import_useStore.usePropsStore)(
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/parts/Panel/top/PanelContentTopSection.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 { usePropsStore } from '../../../config/useStore';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types';\nimport { SelectionHeader } from './SelectionHeader';\nimport { PanelFilterSection } from './PanelFilterSection';\
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;
|
|
4
|
+
"sourcesContent": ["import React from 'react';\nimport { styled } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { usePropsStore } from '../../../config/useStore';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types';\nimport { SelectionHeader } from './SelectionHeader';\nimport { PanelFilterSection } from './PanelFilterSection';\n\nconst StyledListWrapperTop = styled(Grid, { name: 'ds-shuttle-v2', slot: 'list-wrapper-top' })``;\n\nexport const PanelContentTopSection = (panelMetaInfo: DSShuttleV2T.PanelMetaInfo) => {\n const { isDestinationPanel = false } = panelMetaInfo;\n const isSearchBarOpen = usePropsStore((state) =>\n isDestinationPanel ? state.destinationShowSearchbar : state.sourceShowSearchbar,\n );\n const topSectionRows = React.useMemo(() => {\n const cols = [];\n if (isSearchBarOpen) cols.push('auto');\n cols.push('auto');\n return cols;\n }, [isSearchBarOpen]);\n return (\n <StyledListWrapperTop rows={topSectionRows}>\n {isSearchBarOpen ? <PanelFilterSection {...panelMetaInfo} /> : null}\n <SelectionHeader {...panelMetaInfo} />\n </StyledListWrapperTop>\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADsBnB;AAtBJ,mBAAkB;AAClB,uBAAuB;AACvB,qBAAqB;AACrB,sBAA8B;AAE9B,6BAAgC;AAChC,gCAAmC;AAEnC,MAAM,2BAAuB,yBAAO,qBAAM,EAAE,MAAM,iBAAiB,MAAM,mBAAmB,CAAC;AAEtF,MAAM,yBAAyB,CAAC,kBAA8C;AACnF,QAAM,EAAE,qBAAqB,MAAM,IAAI;AACvC,QAAM,sBAAkB;AAAA,IAAc,CAAC,UACrC,qBAAqB,MAAM,2BAA2B,MAAM;AAAA,EAC9D;AACA,QAAM,iBAAiB,aAAAA,QAAM,QAAQ,MAAM;AACzC,UAAM,OAAO,CAAC;AACd,QAAI;AAAiB,WAAK,KAAK,MAAM;AACrC,SAAK,KAAK,MAAM;AAChB,WAAO;AAAA,EACT,GAAG,CAAC,eAAe,CAAC;AACpB,SACE,6CAAC,wBAAqB,MAAM,gBACzB;AAAA,sBAAkB,4CAAC,gDAAoB,GAAG,eAAe,IAAK;AAAA,IAC/D,4CAAC,0CAAiB,GAAG,eAAe;AAAA,KACtC;AAEJ;",
|
|
6
6
|
"names": ["React"]
|
|
7
7
|
}
|
|
@@ -34,12 +34,11 @@ var import_ds_grid = require("@elliemae/ds-grid");
|
|
|
34
34
|
var import_ds_system = require("@elliemae/ds-system");
|
|
35
35
|
var import_ds_form_input_text = require("@elliemae/ds-form-input-text");
|
|
36
36
|
var import_useStore = require("../../../config/useStore");
|
|
37
|
-
|
|
38
|
-
const StyledSearchWrapper = (0, import_ds_system.styled)(import_ds_grid.Grid, { name: import_DSShuttleV2Definitions.DSShuttleV2Name, slot: import_DSShuttleV2Definitions.DSShuttleV2Slots.AREA_SEARCH_WRAPPER })`
|
|
37
|
+
const StyledSearchWrapper = (0, import_ds_system.styled)(import_ds_grid.Grid, { name: "ds-shuttle-v2", slot: "area-search-wrapper" })`
|
|
39
38
|
border-bottom: 1px solid neutral-400;
|
|
40
39
|
border-radius: 0;
|
|
41
40
|
`;
|
|
42
|
-
const StyledInputText = (0, import_ds_system.styled)(import_ds_form_input_text.DSInputText, { name:
|
|
41
|
+
const StyledInputText = (0, import_ds_system.styled)(import_ds_form_input_text.DSInputText, { name: "ds-shuttle-v2", slot: "area-search-bar" })`
|
|
43
42
|
border: none;
|
|
44
43
|
:focus {
|
|
45
44
|
border-radius: 0;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/parts/Panel/top/PanelFilterSection.tsx", "../../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["import React from 'react';\nimport { Grid } from '@elliemae/ds-grid';\nimport { styled } from '@elliemae/ds-system';\nimport { DSInputText } from '@elliemae/ds-form-input-text';\nimport { usePropsStore } from '../../../config/useStore';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types';\
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;
|
|
4
|
+
"sourcesContent": ["import React from 'react';\nimport { Grid } from '@elliemae/ds-grid';\nimport { styled } from '@elliemae/ds-system';\nimport { DSInputText } from '@elliemae/ds-form-input-text';\nimport { usePropsStore } from '../../../config/useStore';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types';\n\nconst StyledSearchWrapper = styled(Grid, { name: 'ds-shuttle-v2', slot: 'area-search-wrapper' })`\n border-bottom: 1px solid neutral-400;\n border-radius: 0;\n`;\nconst StyledInputText = styled(DSInputText, { name: 'ds-shuttle-v2', slot: 'area-search-bar' })`\n border: none;\n :focus {\n border-radius: 0;\n }\n`;\n\nexport const PanelFilterSection = (panelMetaInfo: DSShuttleV2T.PanelMetaInfo) => {\n const { isDestinationPanel = false } = panelMetaInfo;\n const onFilterCb = usePropsStore((state) =>\n isDestinationPanel ? state.onDestinationFilterChange : state.onSourceFilterChange,\n );\n const filterValue = usePropsStore((state) =>\n isDestinationPanel ? state.destinationFilterValue : state.sourceFilterValue,\n );\n const handleFilterChange = React.useCallback(\n (value: string | number, event: React.ChangeEvent<HTMLInputElement>) => {\n onFilterCb?.(`${value}`, { event });\n },\n [onFilterCb],\n );\n return (\n <StyledSearchWrapper>\n <StyledInputText value={filterValue} onValueChange={handleFilterChange} />\n </StyledSearchWrapper>\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADkCjB;AAlCN,mBAAkB;AAClB,qBAAqB;AACrB,uBAAuB;AACvB,gCAA4B;AAC5B,sBAA8B;AAG9B,MAAM,0BAAsB,yBAAO,qBAAM,EAAE,MAAM,iBAAiB,MAAM,sBAAsB,CAAC;AAAA;AAAA;AAAA;AAI/F,MAAM,sBAAkB,yBAAO,uCAAa,EAAE,MAAM,iBAAiB,MAAM,kBAAkB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAOvF,MAAM,qBAAqB,CAAC,kBAA8C;AAC/E,QAAM,EAAE,qBAAqB,MAAM,IAAI;AACvC,QAAM,iBAAa;AAAA,IAAc,CAAC,UAChC,qBAAqB,MAAM,4BAA4B,MAAM;AAAA,EAC/D;AACA,QAAM,kBAAc;AAAA,IAAc,CAAC,UACjC,qBAAqB,MAAM,yBAAyB,MAAM;AAAA,EAC5D;AACA,QAAM,qBAAqB,aAAAA,QAAM;AAAA,IAC/B,CAAC,OAAwB,UAA+C;AACtE,mBAAa,GAAG,SAAS,EAAE,MAAM,CAAC;AAAA,IACpC;AAAA,IACA,CAAC,UAAU;AAAA,EACb;AACA,SACE,4CAAC,uBACC,sDAAC,mBAAgB,OAAO,aAAa,eAAe,oBAAoB,GAC1E;AAEJ;",
|
|
6
6
|
"names": ["React"]
|
|
7
7
|
}
|
|
@@ -34,19 +34,15 @@ var import_ds_system = require("@elliemae/ds-system");
|
|
|
34
34
|
var import_ds_form_checkbox = require("@elliemae/ds-form-checkbox");
|
|
35
35
|
var import_ds_grid = require("@elliemae/ds-grid");
|
|
36
36
|
var import_useStore = require("../../../config/useStore");
|
|
37
|
-
|
|
38
|
-
const StyledSelectionHeaderWrapper = (0, import_ds_system.styled)(import_ds_grid.Grid, {
|
|
39
|
-
name: import_DSShuttleV2Definitions.DSShuttleV2Name,
|
|
40
|
-
slot: import_DSShuttleV2Definitions.DSShuttleV2Slots.AREA_SELECTION_HEADER
|
|
41
|
-
})`
|
|
37
|
+
const StyledSelectionHeaderWrapper = (0, import_ds_system.styled)(import_ds_grid.Grid, { name: "ds-shuttle-v2", slot: "area-selection-header" })`
|
|
42
38
|
line-height: 1;
|
|
43
39
|
font-size: 1rem;
|
|
44
40
|
background-color: neutral-000;
|
|
45
41
|
border-bottom: 1px solid neutral-400;
|
|
46
42
|
`;
|
|
47
43
|
const StyledSelectionHeaderCountLabel = (0, import_ds_system.styled)("div", {
|
|
48
|
-
name:
|
|
49
|
-
slot:
|
|
44
|
+
name: "ds-shuttle-v2",
|
|
45
|
+
slot: "area-selection-header-count-label"
|
|
50
46
|
})`
|
|
51
47
|
text-align: end;
|
|
52
48
|
color: neutral-500;
|
|
@@ -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';\
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;
|
|
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';\n\nconst StyledSelectionHeaderWrapper = styled(Grid, { name: 'ds-shuttle-v2', slot: 'area-selection-header' })`\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: 'ds-shuttle-v2',\n slot: '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;AD6Df;AA7DR,mBAAkB;AAClB,uBAAuB;AACvB,8BAAiE;AACjE,qBAAqB;AACrB,sBAAgD;AAGhD,MAAM,mCAA+B,yBAAO,qBAAM,EAAE,MAAM,iBAAiB,MAAM,wBAAwB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAM1G,MAAM,sCAAkC,yBAAO,OAAO;AAAA,EACpD,MAAM;AAAA,EACN,MAAM;AACR,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;",
|
|
6
6
|
"names": ["React"]
|
|
7
7
|
}
|
|
@@ -36,12 +36,11 @@ var import_Header = require("./Header");
|
|
|
36
36
|
var import_PanelContentTopSection = require("./Panel/top/PanelContentTopSection");
|
|
37
37
|
var import_PanelContentMiddleSection = require("./Panel/middle/PanelContentMiddleSection");
|
|
38
38
|
var import_PanelContentBottomSection = require("./Panel/bottom/PanelContentBottomSection");
|
|
39
|
-
|
|
40
|
-
const StyledPanelWrapper = (0, import_ds_system.styled)(import_ds_grid.Grid, { name: import_DSShuttleV2Definitions.DSShuttleV2Name, slot: import_DSShuttleV2Definitions.DSShuttleV2Slots.PANEL_WRAPPER })`
|
|
39
|
+
const StyledPanelWrapper = (0, import_ds_system.styled)(import_ds_grid.Grid, { name: "ds-shuttle-v2", slot: "panel-wrapper" })`
|
|
41
40
|
min-width: 300px;
|
|
42
41
|
min-height: 264px;
|
|
43
42
|
`;
|
|
44
|
-
const StyledListWrapper = (0, import_ds_system.styled)(import_ds_grid.Grid, { name:
|
|
43
|
+
const StyledListWrapper = (0, import_ds_system.styled)(import_ds_grid.Grid, { name: "ds-shuttle-v2", slot: "list-wrapper" })`
|
|
45
44
|
border: 1px solid neutral-400;
|
|
46
45
|
`;
|
|
47
46
|
const panelWrapperRows = ["auto", "1fr"];
|
|
@@ -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';\
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;
|
|
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';\n\nconst StyledPanelWrapper = styled(Grid, { name: 'ds-shuttle-v2', slot: 'panel-wrapper' })`\n min-width: 300px;\n min-height: 264px;\n`;\nconst StyledListWrapper = styled(Grid, { name: 'ds-shuttle-v2', slot: 'list-wrapper' })`\n border: 1px solid neutral-400;\n`;\nconst panelWrapperRows = ['auto', '1fr'];\nconst listWrapperRows = ['auto', '1fr', 'auto'];\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;ADuBjB;AAvBN,mBAAkB;AAClB,uBAAuB;AACvB,qBAAqB;AAErB,oBAAuB;AACvB,oCAAuC;AACvC,uCAA0C;AAC1C,uCAA0C;AAE1C,MAAM,yBAAqB,yBAAO,qBAAM,EAAE,MAAM,iBAAiB,MAAM,gBAAgB,CAAC;AAAA;AAAA;AAAA;AAIxF,MAAM,wBAAoB,yBAAO,qBAAM,EAAE,MAAM,iBAAiB,MAAM,eAAe,CAAC;AAAA;AAAA;AAGtF,MAAM,mBAAmB,CAAC,QAAQ,KAAK;AACvC,MAAM,kBAAkB,CAAC,QAAQ,OAAO,MAAM;AACvC,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;",
|
|
6
6
|
"names": ["React"]
|
|
7
7
|
}
|
|
@@ -32,30 +32,18 @@ var React = __toESM(require("react"));
|
|
|
32
32
|
var import_ds_utilities = require("@elliemae/ds-utilities");
|
|
33
33
|
const defaultProps = {
|
|
34
34
|
sourceWithSoftDelete: false,
|
|
35
|
-
|
|
35
|
+
removeDragAndDropFromSource: false,
|
|
36
36
|
sourceIsLoading: false,
|
|
37
37
|
sourceWithLoadMore: false,
|
|
38
38
|
sourceIsLoadingMore: false,
|
|
39
39
|
onSourceLoadMore: () => {
|
|
40
40
|
},
|
|
41
|
-
onSourceChange: () => {
|
|
42
|
-
},
|
|
43
|
-
onSourceAdd: () => {
|
|
44
|
-
},
|
|
45
|
-
onSourceRemove: () => {
|
|
46
|
-
},
|
|
47
41
|
destinationWithSoftDelete: false,
|
|
48
|
-
|
|
42
|
+
addDragAndDropToDestiantion: false,
|
|
49
43
|
destinationIsLoading: false,
|
|
50
44
|
destinationWithLoadMore: false,
|
|
51
45
|
destinationIsLoadingMore: false,
|
|
52
46
|
onDestinationLoadMore: () => {
|
|
53
|
-
},
|
|
54
|
-
onDestinationChange: () => {
|
|
55
|
-
},
|
|
56
|
-
onDestinationAdd: () => {
|
|
57
|
-
},
|
|
58
|
-
onDestinationRemove: () => {
|
|
59
47
|
}
|
|
60
48
|
};
|
|
61
49
|
const DSSkeletonPropTypes = {
|
|
@@ -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';\
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADGvB,0BAA4D;
|
|
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';\n\nexport declare namespace DSShuttleV2T {\n export type PanelMetaInfo = { isDestinationPanel: boolean };\n export interface ItemMeta extends PanelMetaInfo {\n item: DSShuttleV2T.ConfiguredDatum;\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 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 onSourceChange: OnDataChange;\n sourceSelectedItems: SelectionMap;\n onSourceSelectionChange: OnSelectionChange;\n SourceHeader: React.ComponentType<unknown>;\n onSourceDrilldown: OnSelectionDrilldown;\n\n destinationData: Datum[];\n onDestinationChange: OnDataChange;\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 onSourceLoadMore: OnLoadMore;\n removeDragAndDropFromSource: boolean;\n\n destinationIsLoading: boolean;\n destinationWithSoftDelete: boolean;\n destinationWithLoadMore: boolean;\n destinationIsLoadingMore: boolean;\n onDestinationLoadMore: OnLoadMore;\n addDragAndDropToDestiantion: boolean;\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 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 removeDragAndDropFromSource: false,\n sourceIsLoading: false,\n sourceWithLoadMore: false,\n sourceIsLoadingMore: false,\n onSourceLoadMore: () => {},\n\n destinationWithSoftDelete: false,\n addDragAndDropToDestiantion: false,\n destinationIsLoading: false,\n destinationWithLoadMore: false,\n destinationIsLoadingMore: false,\n onDestinationLoadMore: () => {},\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;AAgIrD,MAAM,eAA0C;AAAA,EACrD,sBAAsB;AAAA,EACtB,6BAA6B;AAAA,EAC7B,iBAAiB;AAAA,EACjB,oBAAoB;AAAA,EACpB,qBAAqB;AAAA,EACrB,kBAAkB,MAAM;AAAA,EAAC;AAAA,EAEzB,2BAA2B;AAAA,EAC3B,6BAA6B;AAAA,EAC7B,sBAAsB;AAAA,EACtB,yBAAyB;AAAA,EACzB,0BAA0B;AAAA,EAC1B,uBAAuB,MAAM;AAAA,EAAC;AAChC;AAEO,MAAM,sBAAsB;AAAA,EACjC,GAAG;AAAA,EACH,GAAG;AACL;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/esm/DSShuttleV2.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import React2 from "react";
|
|
3
4
|
import { useShuttleV2 } from "./config/useShuttleV2";
|
|
4
5
|
import {
|
|
5
6
|
InternalProvider,
|
|
@@ -8,10 +9,10 @@ import {
|
|
|
8
9
|
useShuttleV2PropsStoreConfig
|
|
9
10
|
} from "./config/useStore";
|
|
10
11
|
import { MainContent } from "./parts/MainContent";
|
|
11
|
-
const ConfiguredComponent = (props) => {
|
|
12
|
+
const ConfiguredComponent = React2.memo((props) => {
|
|
12
13
|
useShuttleV2(props.userProps);
|
|
13
14
|
return /* @__PURE__ */ jsx(MainContent, {});
|
|
14
|
-
};
|
|
15
|
+
});
|
|
15
16
|
const DSShuttleV2 = (props) => {
|
|
16
17
|
const createInternalStore = useShuttleV2InternalStoreConfig(props);
|
|
17
18
|
const createPropsStore = useShuttleV2PropsStoreConfig(props);
|
|
@@ -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;
|
|
6
|
-
"names": []
|
|
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 = React.memo((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;AAvBT,OAAOA,YAAW;AAClB,SAAS,oBAAoB;AAC7B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AAEP,SAAS,mBAAmB;AAE5B,MAAM,sBAAsBA,OAAM,KAAK,CAAC,UAA6C;AACnF,eAAa,MAAM,SAAS;AAU5B,SAAO,oBAAC,eAAY;AACtB,CAAC;AAEM,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
|
+
"names": ["React"]
|
|
7
7
|
}
|
package/dist/esm/config/{useAutoCalculated/useDataStructure.js → configureAutoCalculated.js}
RENAMED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
import { useMemo } from "react";
|
|
3
2
|
const getDatumFlags = (datum) => ({
|
|
4
3
|
selectionPrevented: Boolean(datum.softDeleted || datum.preventMove),
|
|
5
4
|
withActions: !datum.softDeleted,
|
|
@@ -27,10 +26,7 @@ const configureDestination = ({ destinationData, destinationSelectedItems }) =>
|
|
|
27
26
|
original: datum,
|
|
28
27
|
localIndex: i,
|
|
29
28
|
isFirst: i === 0,
|
|
30
|
-
isLast: i === destinationData.length - 1
|
|
31
|
-
uid: datum.id,
|
|
32
|
-
depth: 0,
|
|
33
|
-
realIndex: datum.id
|
|
29
|
+
isLast: i === destinationData.length - 1
|
|
34
30
|
};
|
|
35
31
|
destinationConfiguredData.push(configuredItem);
|
|
36
32
|
if (!datum.preventMove) {
|
|
@@ -72,10 +68,7 @@ const configureSource = ({ sourceData, sourceSelectedItems }) => {
|
|
|
72
68
|
original: datum,
|
|
73
69
|
localIndex: i,
|
|
74
70
|
isFirst: i === 0,
|
|
75
|
-
isLast: i === sourceData.length - 1
|
|
76
|
-
uid: datum.id,
|
|
77
|
-
depth: 0,
|
|
78
|
-
realIndex: datum.id
|
|
71
|
+
isLast: i === sourceData.length - 1
|
|
79
72
|
};
|
|
80
73
|
sourceConfiguredData.push(configuredItem);
|
|
81
74
|
if (!datum.preventMove) {
|
|
@@ -96,17 +89,14 @@ const configureSource = ({ sourceData, sourceSelectedItems }) => {
|
|
|
96
89
|
sourceSelectionableIds
|
|
97
90
|
};
|
|
98
91
|
};
|
|
99
|
-
const
|
|
92
|
+
const configureAutoCalculated = (propsFromUser) => {
|
|
100
93
|
const { sourceData, sourceSelectedItems, destinationData, destinationSelectedItems } = propsFromUser;
|
|
101
|
-
return
|
|
102
|
-
(
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
}),
|
|
106
|
-
[destinationData, destinationSelectedItems, sourceData, sourceSelectedItems]
|
|
107
|
-
);
|
|
94
|
+
return {
|
|
95
|
+
...configureSource({ sourceData, sourceSelectedItems }),
|
|
96
|
+
...configureDestination({ destinationData, destinationSelectedItems })
|
|
97
|
+
};
|
|
108
98
|
};
|
|
109
99
|
export {
|
|
110
|
-
|
|
100
|
+
configureAutoCalculated
|
|
111
101
|
};
|
|
112
|
-
//# sourceMappingURL=
|
|
102
|
+
//# sourceMappingURL=configureAutoCalculated.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/config/configureAutoCalculated.ts"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { type DSShuttleV2T } from '../react-desc-prop-types';\n\nconst getDatumFlags = (datum: DSShuttleV2T.Datum) => ({\n selectionPrevented: Boolean(datum.softDeleted || datum.preventMove),\n withActions: !datum.softDeleted,\n withMoveBtn: !datum.softDeleted && !datum.preventMove,\n withDrilldownBtn: !datum.softDeleted && !datum.preventDrilldown,\n});\n\ntype ConfigureDestinationConfig = {\n destinationData: DSShuttleV2T.Datum[];\n destinationSelectedItems: Record<DSShuttleV2T.Datum['id'], boolean>;\n};\nconst configureDestination = ({ destinationData, destinationSelectedItems }: ConfigureDestinationConfig) => {\n const destinationSelectedItemsMap: Record<string, { datum: DSShuttleV2T.Datum; index: number }> = {};\n const destinationSelectionItemArray: DSShuttleV2T.Datum[] = [];\n const destinationSelectionArray: DSShuttleV2T.Datum['id'][] = [];\n const destinationConfiguredData: DSShuttleV2T.ConfiguredDatum[] = [];\n const destinationSelectionableData: DSShuttleV2T.ConfiguredDatum[] = [];\n const destinationSelectionableDataIds: DSShuttleV2T.Datum['id'][] = [];\n destinationData.forEach((datum, i) => {\n let isSelected = false;\n if (destinationSelectedItems[datum.id] === true) {\n destinationSelectionItemArray.push(datum);\n destinationSelectionArray.push(datum.id);\n isSelected = true;\n }\n destinationSelectedItemsMap[datum.id] = { datum, index: i };\n const configuredItem = {\n isSelected,\n ...getDatumFlags(datum),\n original: datum,\n localIndex: i,\n isFirst: i === 0,\n isLast: i === destinationData.length - 1,\n };\n destinationConfiguredData.push(configuredItem);\n if (!datum.preventMove) {\n destinationSelectionableData.push(configuredItem);\n destinationSelectionableDataIds.push(datum.id);\n }\n });\n const destinationHasMultipleSelectedItems = destinationSelectionArray.length >= 1;\n const destinationSelectionableIds = destinationSelectionableDataIds.join(' ');\n return {\n destinationSelectedItemsMap,\n destinationSelectionItemArray,\n destinationSelectionArray,\n destinationHasMultipleSelectedItems,\n destinationConfiguredData,\n destinationSelectionableData,\n destinationSelectionableDataIds,\n destinationSelectionableIds,\n };\n};\ntype ConfigureSourceConfig = {\n sourceData: DSShuttleV2T.Datum[];\n sourceSelectedItems: Record<DSShuttleV2T.Datum['id'], boolean>;\n};\n\nconst configureSource = ({ sourceData, sourceSelectedItems }: ConfigureSourceConfig) => {\n const sourceSelectedItemsMap: Record<string, { datum: DSShuttleV2T.Datum; index: number }> = {};\n const sourceSelectionItemArray: DSShuttleV2T.Datum[] = [];\n const sourceSelectionArray: DSShuttleV2T.Datum['id'][] = [];\n const sourceConfiguredData: DSShuttleV2T.ConfiguredDatum[] = [];\n const sourceSelectionableData: DSShuttleV2T.ConfiguredDatum[] = [];\n const sourceSelectionableDataIds: DSShuttleV2T.Datum['id'][] = [];\n sourceData.forEach((datum, i) => {\n let isSelected = false;\n if (sourceSelectedItems[datum.id] === true) {\n sourceSelectionItemArray.push(datum);\n sourceSelectionArray.push(datum.id);\n isSelected = true;\n }\n\n sourceSelectedItemsMap[datum.id] = { datum, index: i };\n const configuredItem = {\n isSelected,\n ...getDatumFlags(datum),\n original: datum,\n localIndex: i,\n isFirst: i === 0,\n isLast: i === sourceData.length - 1,\n };\n sourceConfiguredData.push(configuredItem);\n if (!datum.preventMove) {\n sourceSelectionableData.push(configuredItem);\n sourceSelectionableDataIds.push(datum.id);\n }\n });\n const sourceHasMultipleSelectedItems = sourceSelectionArray.length >= 1;\n const sourceSelectionableIds = sourceSelectionableDataIds.join(' ');\n return {\n sourceConfiguredData,\n sourceSelectedItemsMap,\n sourceSelectionItemArray,\n sourceSelectionArray,\n sourceHasMultipleSelectedItems,\n sourceSelectionableData,\n sourceSelectionableDataIds,\n sourceSelectionableIds,\n };\n};\n\nexport const configureAutoCalculated = (propsFromUser: DSShuttleV2T.InternalProps) => {\n const { sourceData, sourceSelectedItems, destinationData, destinationSelectedItems } = propsFromUser;\n return {\n ...configureSource({ sourceData, sourceSelectedItems }),\n ...configureDestination({ destinationData, destinationSelectedItems }),\n };\n};\n"],
|
|
5
|
+
"mappings": "AAAA,YAAY,WAAW;ACEvB,MAAM,gBAAgB,CAAC,WAA+B;AAAA,EACpD,oBAAoB,QAAQ,MAAM,eAAe,MAAM,WAAW;AAAA,EAClE,aAAa,CAAC,MAAM;AAAA,EACpB,aAAa,CAAC,MAAM,eAAe,CAAC,MAAM;AAAA,EAC1C,kBAAkB,CAAC,MAAM,eAAe,CAAC,MAAM;AACjD;AAMA,MAAM,uBAAuB,CAAC,EAAE,iBAAiB,yBAAyB,MAAkC;AAC1G,QAAM,8BAA4F,CAAC;AACnG,QAAM,gCAAsD,CAAC;AAC7D,QAAM,4BAAwD,CAAC;AAC/D,QAAM,4BAA4D,CAAC;AACnE,QAAM,+BAA+D,CAAC;AACtE,QAAM,kCAA8D,CAAC;AACrE,kBAAgB,QAAQ,CAAC,OAAO,MAAM;AACpC,QAAI,aAAa;AACjB,QAAI,yBAAyB,MAAM,QAAQ,MAAM;AAC/C,oCAA8B,KAAK,KAAK;AACxC,gCAA0B,KAAK,MAAM,EAAE;AACvC,mBAAa;AAAA,IACf;AACA,gCAA4B,MAAM,MAAM,EAAE,OAAO,OAAO,EAAE;AAC1D,UAAM,iBAAiB;AAAA,MACrB;AAAA,MACA,GAAG,cAAc,KAAK;AAAA,MACtB,UAAU;AAAA,MACV,YAAY;AAAA,MACZ,SAAS,MAAM;AAAA,MACf,QAAQ,MAAM,gBAAgB,SAAS;AAAA,IACzC;AACA,8BAA0B,KAAK,cAAc;AAC7C,QAAI,CAAC,MAAM,aAAa;AACtB,mCAA6B,KAAK,cAAc;AAChD,sCAAgC,KAAK,MAAM,EAAE;AAAA,IAC/C;AAAA,EACF,CAAC;AACD,QAAM,sCAAsC,0BAA0B,UAAU;AAChF,QAAM,8BAA8B,gCAAgC,KAAK,GAAG;AAC5E,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAMA,MAAM,kBAAkB,CAAC,EAAE,YAAY,oBAAoB,MAA6B;AACtF,QAAM,yBAAuF,CAAC;AAC9F,QAAM,2BAAiD,CAAC;AACxD,QAAM,uBAAmD,CAAC;AAC1D,QAAM,uBAAuD,CAAC;AAC9D,QAAM,0BAA0D,CAAC;AACjE,QAAM,6BAAyD,CAAC;AAChE,aAAW,QAAQ,CAAC,OAAO,MAAM;AAC/B,QAAI,aAAa;AACjB,QAAI,oBAAoB,MAAM,QAAQ,MAAM;AAC1C,+BAAyB,KAAK,KAAK;AACnC,2BAAqB,KAAK,MAAM,EAAE;AAClC,mBAAa;AAAA,IACf;AAEA,2BAAuB,MAAM,MAAM,EAAE,OAAO,OAAO,EAAE;AACrD,UAAM,iBAAiB;AAAA,MACrB;AAAA,MACA,GAAG,cAAc,KAAK;AAAA,MACtB,UAAU;AAAA,MACV,YAAY;AAAA,MACZ,SAAS,MAAM;AAAA,MACf,QAAQ,MAAM,WAAW,SAAS;AAAA,IACpC;AACA,yBAAqB,KAAK,cAAc;AACxC,QAAI,CAAC,MAAM,aAAa;AACtB,8BAAwB,KAAK,cAAc;AAC3C,iCAA2B,KAAK,MAAM,EAAE;AAAA,IAC1C;AAAA,EACF,CAAC;AACD,QAAM,iCAAiC,qBAAqB,UAAU;AACtE,QAAM,yBAAyB,2BAA2B,KAAK,GAAG;AAClE,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEO,MAAM,0BAA0B,CAAC,kBAA8C;AACpF,QAAM,EAAE,YAAY,qBAAqB,iBAAiB,yBAAyB,IAAI;AACvF,SAAO;AAAA,IACL,GAAG,gBAAgB,EAAE,YAAY,oBAAoB,CAAC;AAAA,IACtD,GAAG,qBAAqB,EAAE,iBAAiB,yBAAyB,CAAC;AAAA,EACvE;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -44,9 +44,6 @@ const useHandleMoveSelection = ({ isDestinationPanel }) => {
|
|
|
44
44
|
const currOnChange = usePropsStore(
|
|
45
45
|
(state) => isDestinationPanel ? state.onDestinationChange : state.onSourceChange
|
|
46
46
|
);
|
|
47
|
-
const currOnRemove = usePropsStore(
|
|
48
|
-
(state) => isDestinationPanel ? state.onDestinationRemove : state.onSourceRemove
|
|
49
|
-
);
|
|
50
47
|
const onSelectionChange = usePropsStore(
|
|
51
48
|
(state) => isDestinationPanel ? state.onDestinationSelectionChange : state.onSourceSelectionChange
|
|
52
49
|
);
|
|
@@ -54,7 +51,6 @@ const useHandleMoveSelection = ({ isDestinationPanel }) => {
|
|
|
54
51
|
const otherPanelOnChange = usePropsStore(
|
|
55
52
|
(state) => isDestinationPanel ? state.onSourceChange : state.onDestinationChange
|
|
56
53
|
);
|
|
57
|
-
const otherPanelOnAdd = usePropsStore((state) => isDestinationPanel ? state.onSourceAdd : state.onDestinationAdd);
|
|
58
54
|
const destinationSelectionArray = useInternalStore((store) => store.destinationSelectionItemArray);
|
|
59
55
|
const sourceSelectionArray = useInternalStore((store) => store.sourceSelectionItemArray);
|
|
60
56
|
const selectedItems = isDestinationPanel ? destinationSelectionArray : sourceSelectionArray;
|
|
@@ -75,22 +71,10 @@ const useHandleMoveSelection = ({ isDestinationPanel }) => {
|
|
|
75
71
|
iteratedNewOtherData = newOtherData;
|
|
76
72
|
});
|
|
77
73
|
currOnChange(iteratedNewCurrData, { event, selectedItems });
|
|
78
|
-
currOnRemove(selectedItems, { event });
|
|
79
74
|
otherPanelOnChange(iteratedNewOtherData, { event, selectedItems });
|
|
80
|
-
otherPanelOnAdd(selectedItems, { event });
|
|
81
75
|
onSelectionChange({}, { event });
|
|
82
76
|
},
|
|
83
|
-
[
|
|
84
|
-
currData,
|
|
85
|
-
otherData,
|
|
86
|
-
selectedItems,
|
|
87
|
-
currOnChange,
|
|
88
|
-
currOnRemove,
|
|
89
|
-
otherPanelOnChange,
|
|
90
|
-
otherPanelOnAdd,
|
|
91
|
-
onSelectionChange,
|
|
92
|
-
currWithSoftDelete
|
|
93
|
-
]
|
|
77
|
+
[currData, otherData, selectedItems, currOnChange, otherPanelOnChange, onSelectionChange, currWithSoftDelete]
|
|
94
78
|
);
|
|
95
79
|
return React2.useMemo(() => ({ moveSelection }), [moveSelection]);
|
|
96
80
|
};
|