@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
|
@@ -24,18 +24,14 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
24
24
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
25
25
|
var Item_exports = {};
|
|
26
26
|
__export(Item_exports, {
|
|
27
|
-
Item: () => Item
|
|
28
|
-
ItemSortable: () => ItemSortable,
|
|
29
|
-
default: () => Item_default
|
|
27
|
+
Item: () => Item
|
|
30
28
|
});
|
|
31
29
|
module.exports = __toCommonJS(Item_exports);
|
|
32
30
|
var React = __toESM(require("react"));
|
|
33
31
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
34
32
|
var import_react = __toESM(require("react"));
|
|
35
33
|
var import_ds_system = require("@elliemae/ds-system");
|
|
36
|
-
var import_ds_utilities = require("@elliemae/ds-utilities");
|
|
37
34
|
var import_ds_grid = require("@elliemae/ds-grid");
|
|
38
|
-
var import_DSShuttleV2Definitions = require("../../config/DSShuttleV2Definitions");
|
|
39
35
|
var import_useStore = require("../../config/useStore");
|
|
40
36
|
var import_useFocusTracker = require("../../config/useFocusTracker");
|
|
41
37
|
var import_ItemSelection = require("./ItemSelection");
|
|
@@ -44,40 +40,21 @@ var import_ItemMiddleSection = require("./ItemMiddleSection");
|
|
|
44
40
|
var import_useSelectionLogic = require("./useSelectionLogic");
|
|
45
41
|
var import_useItemArrowNavigation = require("./useItemArrowNavigation");
|
|
46
42
|
var import_constants = require("../../constants");
|
|
47
|
-
|
|
48
|
-
var import_DropIndicator = require("../Dnd/DropIndicator");
|
|
49
|
-
var import_withConditionalUseSortable = require("../HoC/withConditionalUseSortable");
|
|
50
|
-
var import_useInnerRefHandlers = require("./ItemActions/useInnerRefHandlers");
|
|
51
|
-
const cssDisabled = import_ds_system.css`
|
|
52
|
-
background-color: ${({ theme }) => theme.colors.neutral["100"]};
|
|
53
|
-
color: ${({ theme }) => theme.colors.neutral["300"]};
|
|
54
|
-
.ds-shuttle-v2-item-action-btn-to-source-icon > svg,
|
|
55
|
-
.ds-shuttle-v2-item-action-btn-to-destination-icon > svg,
|
|
56
|
-
.ds-shuttle-v2-item-action-btn-drilldown-icon > svg {
|
|
57
|
-
fill: ${({ theme }) => theme.colors.neutral["300"]};
|
|
58
|
-
}
|
|
59
|
-
`;
|
|
60
|
-
const ItemWrapper = (0, import_ds_system.styled)(import_ds_grid.Grid, { name: import_DSShuttleV2Definitions.DSShuttleV2Name, slot: import_DSShuttleV2Definitions.DSShuttleV2Slots.ITEM_WRAPPER })`
|
|
43
|
+
const ItemWrapper = (0, import_ds_system.styled)(import_ds_grid.Grid, { name: "ds-shuttle-v2", slot: "item-wrapper" })`
|
|
61
44
|
min-height: 36px;
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
&:hover {
|
|
65
|
-
background-color: ${({ isDndActive, theme }) => !isDndActive ? theme.colors.brand["200"] : "white"};
|
|
45
|
+
:hover {
|
|
46
|
+
background-color: brand-200;
|
|
66
47
|
.ds-shuttle-v2-item-action-btn-to-source-icon > svg,
|
|
67
48
|
.ds-shuttle-v2-item-action-btn-to-destination-icon > svg,
|
|
68
49
|
.ds-shuttle-v2-item-action-btn-drilldown-icon > svg {
|
|
69
50
|
fill: brand-700;
|
|
70
51
|
}
|
|
71
|
-
${({ isDragging }) => isDragging && cssDisabled}
|
|
72
52
|
}
|
|
73
|
-
|
|
74
|
-
&:focus {
|
|
53
|
+
:focus {
|
|
75
54
|
outline: 2px solid brand-700;
|
|
76
55
|
outline-offset: -2px;
|
|
77
56
|
}
|
|
78
57
|
border-bottom: 1px solid neutral-100;
|
|
79
|
-
|
|
80
|
-
${({ isDragging }) => isDragging && cssDisabled}
|
|
81
58
|
`;
|
|
82
59
|
const useInnerRefHandlers = ({ item, isDestinationPanel }) => {
|
|
83
60
|
const { isFirst, isLast } = item;
|
|
@@ -102,74 +79,44 @@ const useInnerRefHandlers = ({ item, isDestinationPanel }) => {
|
|
|
102
79
|
);
|
|
103
80
|
return import_react.default.useMemo(() => ({ shouldFocus, innerRefHandlerParentItem }), [shouldFocus, innerRefHandlerParentItem]);
|
|
104
81
|
};
|
|
82
|
+
const cols = ["5px", "1fr", "auto"];
|
|
105
83
|
const Item = import_react.default.memo((itemMeta) => {
|
|
106
|
-
const { item
|
|
84
|
+
const { item } = itemMeta;
|
|
107
85
|
const { original, isSelected } = item;
|
|
108
86
|
const { id } = original;
|
|
109
|
-
const cols = (0, import_react.useMemo)(() => {
|
|
110
|
-
if (withDragNDrop)
|
|
111
|
-
return ["5px", "auto", "1fr", "auto"];
|
|
112
|
-
return ["5px", "1fr", "auto"];
|
|
113
|
-
}, [withDragNDrop]);
|
|
114
|
-
const dndActiveId = (0, import_useStore.useInternalStore)((state) => state.lastActiveId);
|
|
115
|
-
const isActive = (0, import_react.useMemo)(() => dndActiveId !== "", [dndActiveId]);
|
|
116
87
|
const selectItem = (0, import_useSelectionLogic.useSelectionLogic)(itemMeta);
|
|
117
88
|
const { onItemContainerKeyDown } = (0, import_useItemArrowNavigation.useItemArrowNavigation)(itemMeta);
|
|
118
89
|
const handleItemKeyDown = import_react.default.useCallback(
|
|
119
90
|
(event) => {
|
|
120
91
|
const { key } = event;
|
|
121
92
|
if (["Spacebar", " ", "Enter"].includes(key)) {
|
|
122
|
-
if (isActive || event.target.id === `${id}-drag-handle`) {
|
|
123
|
-
event.preventDefault();
|
|
124
|
-
return;
|
|
125
|
-
}
|
|
126
93
|
event.preventDefault();
|
|
127
94
|
event.stopPropagation();
|
|
128
95
|
selectItem(event);
|
|
129
96
|
}
|
|
130
97
|
onItemContainerKeyDown(event);
|
|
131
98
|
},
|
|
132
|
-
[
|
|
99
|
+
[onItemContainerKeyDown, selectItem]
|
|
133
100
|
);
|
|
134
101
|
const { shouldFocus, innerRefHandlerParentItem } = useInnerRefHandlers(itemMeta);
|
|
135
|
-
const { innerRefHandlerDnd } = (0, import_useInnerRefHandlers.useInnerRefHandlers)(itemMeta);
|
|
136
|
-
const overId = (0, import_useStore.useInternalStore)((state) => state.overId);
|
|
137
|
-
const isDropValid = (0, import_useStore.useInternalStore)((state) => state.isDropValid);
|
|
138
|
-
const dropIndicatorPosition = (0, import_useStore.useInternalStore)((state) => state.dropIndicatorPosition);
|
|
139
|
-
const showDropIndicatorPosition = id === overId && dropIndicatorPosition;
|
|
140
102
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
141
103
|
ItemWrapper,
|
|
142
104
|
{
|
|
143
|
-
isDragging: dndActiveId === id,
|
|
144
|
-
isDndActive: isActive,
|
|
145
105
|
cols,
|
|
146
106
|
alignItems: "center",
|
|
147
107
|
onClick: selectItem,
|
|
148
|
-
ref: (0, import_ds_utilities.mergeRefs)(innerRefHandlerParentItem, useSortableHelpers?.setNodeRef),
|
|
149
108
|
onKeyDown: handleItemKeyDown,
|
|
109
|
+
ref: innerRefHandlerParentItem,
|
|
150
110
|
tabIndex: shouldFocus ? 0 : -1,
|
|
151
111
|
role: "checkbox",
|
|
152
112
|
"aria-checked": isSelected,
|
|
153
|
-
id
|
|
113
|
+
id,
|
|
154
114
|
children: [
|
|
155
115
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ItemSelection.ItemSelection, { ...itemMeta }),
|
|
156
|
-
withDragNDrop ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
157
|
-
import_DndHandle.DragHandle,
|
|
158
|
-
{
|
|
159
|
-
id,
|
|
160
|
-
useSortableHelpers,
|
|
161
|
-
isDndActive: !!isActive,
|
|
162
|
-
isDragging: dndActiveId === id,
|
|
163
|
-
innerRef: innerRefHandlerDnd
|
|
164
|
-
}
|
|
165
|
-
) : null,
|
|
166
116
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ItemMiddleSection.ItemMiddleSection, { ...itemMeta }),
|
|
167
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ItemActions.ItemActions, { ...itemMeta })
|
|
168
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_DropIndicator.DropIndicator, { vertical: false, dropIndicatorPosition: showDropIndicatorPosition, isDropValid })
|
|
117
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ItemActions.ItemActions, { ...itemMeta })
|
|
169
118
|
]
|
|
170
119
|
}
|
|
171
120
|
);
|
|
172
121
|
});
|
|
173
|
-
const ItemSortable = (0, import_withConditionalUseSortable.withConditionalUseSortable)(Item);
|
|
174
|
-
var Item_default = ItemSortable;
|
|
175
122
|
//# sourceMappingURL=Item.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/parts/Item/Item.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["import React
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
6
|
-
"names": ["React"
|
|
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 { useInternalStore } from '../../config/useStore';\nimport { useFocusTracker } from '../../config/useFocusTracker';\nimport { ItemSelection } from './ItemSelection';\nimport { ItemActions } from './ItemActions';\nimport { ItemMiddleSection } from './ItemMiddleSection';\nimport { useSelectionLogic } from './useSelectionLogic';\nimport { useItemArrowNavigation } from './useItemArrowNavigation';\nimport { REGIONS_FOCUSES } from '../../constants';\n\n// we are using the class-name added via slot for the children `:hover` styling of icon colors\nconst ItemWrapper = styled(Grid, { name: 'ds-shuttle-v2', slot: 'item-wrapper' })`\n min-height: 36px;\n :hover {\n background-color: brand-200;\n .ds-shuttle-v2-item-action-btn-to-source-icon > svg,\n .ds-shuttle-v2-item-action-btn-to-destination-icon > svg,\n .ds-shuttle-v2-item-action-btn-drilldown-icon > svg {\n fill: brand-700;\n }\n }\n :focus {\n outline: 2px solid brand-700;\n outline-offset: -2px;\n }\n border-bottom: 1px solid neutral-100;\n`;\n\nconst useInnerRefHandlers = ({ item, isDestinationPanel }: DSShuttleV2T.ItemMeta) => {\n const { isFirst, isLast } = item;\n const { trackFocusItem } = useFocusTracker();\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_ITEM : REGIONS_FOCUSES.SOURCE_PANEL_ITEM;\n const currItemId = item.original.id;\n\n const shouldFocus = React.useMemo(\n () =>\n focusRegion === currRegion &&\n focusItemAction === 'parent' &&\n (focusItem === currItemId || (isFirst && focusItem === 'first') || (isLast && focusItem === 'last')),\n [currItemId, currRegion, focusItem, focusItemAction, focusRegion, isFirst, isLast],\n );\n const innerRefHandlerParentItem = React.useCallback(\n (node: HTMLDivElement) => {\n if (shouldFocus) {\n node?.focus();\n trackFocusItem(item); // this converts 'first'/'last' to actual id -> prevents 'last' to focus \"new last\" if new items are added\n }\n },\n [item, shouldFocus, trackFocusItem],\n );\n return React.useMemo(() => ({ shouldFocus, innerRefHandlerParentItem }), [shouldFocus, innerRefHandlerParentItem]);\n};\n\nconst cols = ['5px', '1fr', 'auto'];\nexport const Item = React.memo((itemMeta: DSShuttleV2T.ItemMeta) => {\n const { item } = itemMeta;\n const { original, isSelected } = item;\n const { id } = original;\n\n const selectItem = useSelectionLogic(itemMeta);\n const { onItemContainerKeyDown } = useItemArrowNavigation(itemMeta);\n const handleItemKeyDown: React.KeyboardEventHandler<HTMLDivElement> = React.useCallback(\n (event) => {\n const { key } = event;\n // Spacebar AND ' ' are cross-browser compatibility thing\n if (['Spacebar', ' ', 'Enter'].includes(key)) {\n event.preventDefault();\n event.stopPropagation();\n selectItem(event);\n }\n onItemContainerKeyDown(event);\n },\n [onItemContainerKeyDown, selectItem],\n );\n const { shouldFocus, innerRefHandlerParentItem } = useInnerRefHandlers(itemMeta);\n\n return (\n <ItemWrapper\n cols={cols}\n alignItems=\"center\"\n onClick={selectItem}\n onKeyDown={handleItemKeyDown}\n ref={innerRefHandlerParentItem}\n tabIndex={shouldFocus ? 0 : -1}\n role=\"checkbox\"\n aria-checked={isSelected}\n id={id}\n >\n <ItemSelection {...itemMeta} />\n <ItemMiddleSection {...itemMeta} />\n <ItemActions {...itemMeta} />\n </ItemWrapper>\n );\n});\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADmFnB;AAnFJ,mBAAkB;AAClB,uBAAuB;AACvB,qBAAqB;AAErB,sBAAiC;AACjC,6BAAgC;AAChC,2BAA8B;AAC9B,yBAA4B;AAC5B,+BAAkC;AAClC,+BAAkC;AAClC,oCAAuC;AACvC,uBAAgC;AAGhC,MAAM,kBAAc,yBAAO,qBAAM,EAAE,MAAM,iBAAiB,MAAM,eAAe,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAiBhF,MAAM,sBAAsB,CAAC,EAAE,MAAM,mBAAmB,MAA6B;AACnF,QAAM,EAAE,SAAS,OAAO,IAAI;AAC5B,QAAM,EAAE,eAAe,QAAI,wCAAgB;AAC3C,QAAM,kBAAc,kCAAiB,CAAC,UAAU,MAAM,WAAW;AACjE,QAAM,gBAAY,kCAAiB,CAAC,UAAU,MAAM,SAAS;AAC7D,QAAM,sBAAkB,kCAAiB,CAAC,UAAU,MAAM,eAAe;AACzE,QAAM,aAAa,qBAAqB,iCAAgB,yBAAyB,iCAAgB;AACjG,QAAM,aAAa,KAAK,SAAS;AAEjC,QAAM,cAAc,aAAAA,QAAM;AAAA,IACxB,MACE,gBAAgB,cAChB,oBAAoB,aACnB,cAAc,cAAe,WAAW,cAAc,WAAa,UAAU,cAAc;AAAA,IAC9F,CAAC,YAAY,YAAY,WAAW,iBAAiB,aAAa,SAAS,MAAM;AAAA,EACnF;AACA,QAAM,4BAA4B,aAAAA,QAAM;AAAA,IACtC,CAAC,SAAyB;AACxB,UAAI,aAAa;AACf,cAAM,MAAM;AACZ,uBAAe,IAAI;AAAA,MACrB;AAAA,IACF;AAAA,IACA,CAAC,MAAM,aAAa,cAAc;AAAA,EACpC;AACA,SAAO,aAAAA,QAAM,QAAQ,OAAO,EAAE,aAAa,0BAA0B,IAAI,CAAC,aAAa,yBAAyB,CAAC;AACnH;AAEA,MAAM,OAAO,CAAC,OAAO,OAAO,MAAM;AAC3B,MAAM,OAAO,aAAAA,QAAM,KAAK,CAAC,aAAoC;AAClE,QAAM,EAAE,KAAK,IAAI;AACjB,QAAM,EAAE,UAAU,WAAW,IAAI;AACjC,QAAM,EAAE,GAAG,IAAI;AAEf,QAAM,iBAAa,4CAAkB,QAAQ;AAC7C,QAAM,EAAE,uBAAuB,QAAI,sDAAuB,QAAQ;AAClE,QAAM,oBAAgE,aAAAA,QAAM;AAAA,IAC1E,CAAC,UAAU;AACT,YAAM,EAAE,IAAI,IAAI;AAEhB,UAAI,CAAC,YAAY,KAAK,OAAO,EAAE,SAAS,GAAG,GAAG;AAC5C,cAAM,eAAe;AACrB,cAAM,gBAAgB;AACtB,mBAAW,KAAK;AAAA,MAClB;AACA,6BAAuB,KAAK;AAAA,IAC9B;AAAA,IACA,CAAC,wBAAwB,UAAU;AAAA,EACrC;AACA,QAAM,EAAE,aAAa,0BAA0B,IAAI,oBAAoB,QAAQ;AAE/E,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,YAAW;AAAA,MACX,SAAS;AAAA,MACT,WAAW;AAAA,MACX,KAAK;AAAA,MACL,UAAU,cAAc,IAAI;AAAA,MAC5B,MAAK;AAAA,MACL,gBAAc;AAAA,MACd;AAAA,MAEA;AAAA,oDAAC,sCAAe,GAAG,UAAU;AAAA,QAC7B,4CAAC,8CAAmB,GAAG,UAAU;AAAA,QACjC,4CAAC,kCAAa,GAAG,UAAU;AAAA;AAAA;AAAA,EAC7B;AAEJ,CAAC;",
|
|
6
|
+
"names": ["React"]
|
|
7
7
|
}
|
|
@@ -36,10 +36,9 @@ var import_ds_button = require("@elliemae/ds-button");
|
|
|
36
36
|
var import_ds_icons = require("@elliemae/ds-icons");
|
|
37
37
|
var import_useActionsHandlers = require("./useActionsHandlers");
|
|
38
38
|
var import_useInnerRefHandlers = require("./useInnerRefHandlers");
|
|
39
|
-
|
|
40
|
-
const
|
|
41
|
-
const
|
|
42
|
-
const StyledButton = (0, import_ds_system.styled)(import_ds_button.DSButtonV2, { name: import_DSShuttleV2Definitions.DSShuttleV2Name, slot: import_DSShuttleV2Definitions.DSShuttleV2Slots.ITEM_ACTION_BTN })`
|
|
39
|
+
const StyledItemActions = (0, import_ds_system.styled)(import_ds_grid.Grid, { name: "ds-shuttle-v2", slot: "item-actions-wrapper" })``;
|
|
40
|
+
const StyledItemActionWrapper = (0, import_ds_system.styled)(import_ds_grid.Grid, { name: "ds-shuttle-v2", slot: "item-action-wrapper" })``;
|
|
41
|
+
const StyledButton = (0, import_ds_system.styled)(import_ds_button.DSButtonV2, { name: "ds-shuttle-v2", slot: "item-action-btn" })`
|
|
43
42
|
height: 22px !important;
|
|
44
43
|
svg {
|
|
45
44
|
fill: brand-600;
|
|
@@ -49,16 +48,16 @@ const StyledButton = (0, import_ds_system.styled)(import_ds_button.DSButtonV2, {
|
|
|
49
48
|
}
|
|
50
49
|
`;
|
|
51
50
|
const StyledDrilldownIcon = (0, import_ds_system.styled)(import_ds_icons.ArrowShortReturn, {
|
|
52
|
-
name:
|
|
53
|
-
slot:
|
|
51
|
+
name: "ds-shuttle-v2",
|
|
52
|
+
slot: "item-action-btn-drilldown-icon"
|
|
54
53
|
})``;
|
|
55
54
|
const StyledCloseMediumIcon = (0, import_ds_system.styled)(import_ds_icons.CloseMedium, {
|
|
56
|
-
name:
|
|
57
|
-
slot:
|
|
55
|
+
name: "ds-shuttle-v2",
|
|
56
|
+
slot: "item-action-btn-to-source-icon"
|
|
58
57
|
})``;
|
|
59
58
|
const StyledArrowShortRightIcon = (0, import_ds_system.styled)(import_ds_icons.ArrowShortRight, {
|
|
60
|
-
name:
|
|
61
|
-
slot:
|
|
59
|
+
name: "ds-shuttle-v2",
|
|
60
|
+
slot: "item-action-btn-to-destination-icon"
|
|
62
61
|
})``;
|
|
63
62
|
const actionsCols = ["20px", "20px"];
|
|
64
63
|
const ItemActions = import_react.default.memo((itemMeta) => {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/parts/Item/ItemActions/ItemActions.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, BUTTON_SIZES } from '@elliemae/ds-button';\nimport { ArrowShortReturn, ArrowShortRight, CloseMedium } from '@elliemae/ds-icons';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types';\nimport { useActionsHandlers } from './useActionsHandlers';\nimport { useInnerRefHandlers } from './useInnerRefHandlers';\
|
|
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 { DSButtonV2, BUTTON_SIZES } from '@elliemae/ds-button';\nimport { ArrowShortReturn, ArrowShortRight, CloseMedium } from '@elliemae/ds-icons';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types';\nimport { useActionsHandlers } from './useActionsHandlers';\nimport { useInnerRefHandlers } from './useInnerRefHandlers';\n\nconst StyledItemActions = styled(Grid, { name: 'ds-shuttle-v2', slot: 'item-actions-wrapper' })``;\nconst StyledItemActionWrapper = styled(Grid, { name: 'ds-shuttle-v2', slot: 'item-action-wrapper' })``;\nconst StyledButton = styled(DSButtonV2, { name: 'ds-shuttle-v2', slot: 'item-action-btn' })`\n height: 22px !important;\n svg {\n fill: brand-600;\n }\n :disabled svg {\n fill: neutral-200 !important;\n }\n`;\nconst StyledDrilldownIcon = styled(ArrowShortReturn, {\n name: 'ds-shuttle-v2',\n slot: 'item-action-btn-drilldown-icon',\n})``;\nconst StyledCloseMediumIcon = styled(CloseMedium, {\n name: 'ds-shuttle-v2',\n slot: 'item-action-btn-to-source-icon',\n})``;\nconst StyledArrowShortRightIcon = styled(ArrowShortRight, {\n name: 'ds-shuttle-v2',\n slot: 'item-action-btn-to-destination-icon',\n})``;\n\nconst actionsCols = ['20px', '20px'];\n\nexport const ItemActions = React.memo((itemMeta: DSShuttleV2T.ItemMeta) => {\n const { item, isDestinationPanel } = itemMeta;\n // withActions is calculated in /src/config/configureAutoCalculated.ts\n const { original, withActions } = item;\n const { preventDrilldown, preventMove } = original;\n const { shouldFocusDrilldown, shouldFocusMove, innerRefHandlerDrilldown, innerRefHandlerMove } =\n useInnerRefHandlers(itemMeta);\n const { handleClickDrilldown, handleClickSingleMove } = useActionsHandlers(itemMeta);\n\n return (\n <StyledItemActions cols={actionsCols} gutter=\"xxs\" pl=\"xs\" pr=\"xxs\" alignItems=\"center\">\n {withActions ? (\n <>\n <StyledItemActionWrapper>\n <StyledButton\n buttonType=\"icon\"\n onClick={handleClickDrilldown}\n size={BUTTON_SIZES.S}\n innerRef={innerRefHandlerDrilldown}\n tabIndex={shouldFocusDrilldown && !preventDrilldown ? 0 : -1}\n disabled={preventDrilldown === true}\n >\n <StyledDrilldownIcon width=\"20px\" height=\"20px\" />\n </StyledButton>\n </StyledItemActionWrapper>\n <StyledItemActionWrapper>\n <StyledButton\n buttonType=\"icon\"\n onClick={handleClickSingleMove}\n size={BUTTON_SIZES.S}\n innerRef={innerRefHandlerMove}\n tabIndex={shouldFocusMove && !preventMove ? 0 : -1}\n disabled={preventMove === true}\n >\n {isDestinationPanel ? (\n <StyledCloseMediumIcon width=\"20px\" height=\"20px\" />\n ) : (\n <StyledArrowShortRightIcon width=\"20px\" height=\"20px\" />\n )}\n </StyledButton>\n </StyledItemActionWrapper>\n </>\n ) : (\n // this is a place-holder used for mantainting the grid spacing\n <>\n <div />\n <div />\n </>\n )}\n </StyledItemActions>\n );\n});\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;AD+Cf;AA/CR,mBAAkB;AAClB,uBAAuB;AACvB,qBAAqB;AACrB,uBAAyC;AACzC,sBAA+D;AAE/D,gCAAmC;AACnC,iCAAoC;AAEpC,MAAM,wBAAoB,yBAAO,qBAAM,EAAE,MAAM,iBAAiB,MAAM,uBAAuB,CAAC;AAC9F,MAAM,8BAA0B,yBAAO,qBAAM,EAAE,MAAM,iBAAiB,MAAM,sBAAsB,CAAC;AACnG,MAAM,mBAAe,yBAAO,6BAAY,EAAE,MAAM,iBAAiB,MAAM,kBAAkB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAS1F,MAAM,0BAAsB,yBAAO,kCAAkB;AAAA,EACnD,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AACD,MAAM,4BAAwB,yBAAO,6BAAa;AAAA,EAChD,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AACD,MAAM,gCAA4B,yBAAO,iCAAiB;AAAA,EACxD,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AAED,MAAM,cAAc,CAAC,QAAQ,MAAM;AAE5B,MAAM,cAAc,aAAAA,QAAM,KAAK,CAAC,aAAoC;AACzE,QAAM,EAAE,MAAM,mBAAmB,IAAI;AAErC,QAAM,EAAE,UAAU,YAAY,IAAI;AAClC,QAAM,EAAE,kBAAkB,YAAY,IAAI;AAC1C,QAAM,EAAE,sBAAsB,iBAAiB,0BAA0B,oBAAoB,QAC3F,gDAAoB,QAAQ;AAC9B,QAAM,EAAE,sBAAsB,sBAAsB,QAAI,8CAAmB,QAAQ;AAEnF,SACE,4CAAC,qBAAkB,MAAM,aAAa,QAAO,OAAM,IAAG,MAAK,IAAG,OAAM,YAAW,UAC5E,wBACC,4EACE;AAAA,gDAAC,2BACC;AAAA,MAAC;AAAA;AAAA,QACC,YAAW;AAAA,QACX,SAAS;AAAA,QACT,MAAM,8BAAa;AAAA,QACnB,UAAU;AAAA,QACV,UAAU,wBAAwB,CAAC,mBAAmB,IAAI;AAAA,QAC1D,UAAU,qBAAqB;AAAA,QAE/B,sDAAC,uBAAoB,OAAM,QAAO,QAAO,QAAO;AAAA;AAAA,IAClD,GACF;AAAA,IACA,4CAAC,2BACC;AAAA,MAAC;AAAA;AAAA,QACC,YAAW;AAAA,QACX,SAAS;AAAA,QACT,MAAM,8BAAa;AAAA,QACnB,UAAU;AAAA,QACV,UAAU,mBAAmB,CAAC,cAAc,IAAI;AAAA,QAChD,UAAU,gBAAgB;AAAA,QAEzB,+BACC,4CAAC,yBAAsB,OAAM,QAAO,QAAO,QAAO,IAElD,4CAAC,6BAA0B,OAAM,QAAO,QAAO,QAAO;AAAA;AAAA,IAE1D,GACF;AAAA,KACF,IAGA,4EACE;AAAA,gDAAC,SAAI;AAAA,IACL,4CAAC,SAAI;AAAA,KACP,GAEJ;AAEJ,CAAC;",
|
|
6
6
|
"names": ["React"]
|
|
7
7
|
}
|
|
@@ -40,9 +40,6 @@ const useActionsLogicHandlers = (itemMeta) => {
|
|
|
40
40
|
const currOnChange = (0, import_useStore.usePropsStore)(
|
|
41
41
|
(state) => isDestinationPanel ? state.onDestinationChange : state.onSourceChange
|
|
42
42
|
);
|
|
43
|
-
const currOnRemove = (0, import_useStore.usePropsStore)(
|
|
44
|
-
(state) => isDestinationPanel ? state.onDestinationRemove : state.onSourceRemove
|
|
45
|
-
);
|
|
46
43
|
const currDrilldown = (0, import_useStore.usePropsStore)(
|
|
47
44
|
(state) => isDestinationPanel ? state.onDestinationDrilldown : state.onSourceDrilldown
|
|
48
45
|
);
|
|
@@ -50,7 +47,6 @@ const useActionsLogicHandlers = (itemMeta) => {
|
|
|
50
47
|
const otherPanelOnChange = (0, import_useStore.usePropsStore)(
|
|
51
48
|
(state) => isDestinationPanel ? state.onSourceChange : state.onDestinationChange
|
|
52
49
|
);
|
|
53
|
-
const otherPanelOnAdd = (0, import_useStore.usePropsStore)((state) => isDestinationPanel ? state.onSourceAdd : state.onDestinationAdd);
|
|
54
50
|
const handleDrilldown = import_react.default.useCallback(
|
|
55
51
|
(event) => {
|
|
56
52
|
event.preventDefault();
|
|
@@ -69,21 +65,10 @@ const useActionsLogicHandlers = (itemMeta) => {
|
|
|
69
65
|
currWithSoftDelete,
|
|
70
66
|
otherData
|
|
71
67
|
});
|
|
72
|
-
currOnRemove([item.original], { event });
|
|
73
|
-
otherPanelOnAdd([item.original], { event });
|
|
74
68
|
currOnChange(newCurrData, { item: item.original, event });
|
|
75
69
|
otherPanelOnChange(newOtherData, { item: item.original, event });
|
|
76
70
|
},
|
|
77
|
-
[
|
|
78
|
-
currData,
|
|
79
|
-
currOnChange,
|
|
80
|
-
currOnRemove,
|
|
81
|
-
currWithSoftDelete,
|
|
82
|
-
item.original,
|
|
83
|
-
otherData,
|
|
84
|
-
otherPanelOnAdd,
|
|
85
|
-
otherPanelOnChange
|
|
86
|
-
]
|
|
71
|
+
[currData, currOnChange, currWithSoftDelete, item, otherData, otherPanelOnChange]
|
|
87
72
|
);
|
|
88
73
|
return import_react.default.useMemo(() => ({ handleDrilldown, handleSingleMove }), [handleDrilldown, handleSingleMove]);
|
|
89
74
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/parts/Item/ItemActions/useActionsLogicHandlers.tsx", "../../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["import React from 'react';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types';\nimport { usePropsStore } from '../../../config/useStore';\nimport { getNewDatasWithItemMoved } from '../../../config/itemMovementHelpers';\n\nexport const useActionsLogicHandlers = (itemMeta: DSShuttleV2T.ItemMeta) => {\n const { item, isDestinationPanel } = itemMeta;\n\n const currData = usePropsStore((state) => (isDestinationPanel ? state.destinationData : state.sourceData));\n const currWithSoftDelete = usePropsStore((state) =>\n isDestinationPanel ? state.destinationWithSoftDelete : state.sourceWithSoftDelete,\n );\n const currOnChange = usePropsStore((state) =>\n isDestinationPanel ? state.onDestinationChange : state.onSourceChange,\n );\n const
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAkB;AAElB,sBAA8B;AAC9B,iCAAyC;AAElC,MAAM,0BAA0B,CAAC,aAAoC;AAC1E,QAAM,EAAE,MAAM,mBAAmB,IAAI;AAErC,QAAM,eAAW,+BAAc,CAAC,UAAW,qBAAqB,MAAM,kBAAkB,MAAM,UAAW;AACzG,QAAM,yBAAqB;AAAA,IAAc,CAAC,UACxC,qBAAqB,MAAM,4BAA4B,MAAM;AAAA,EAC/D;AACA,QAAM,mBAAe;AAAA,IAAc,CAAC,UAClC,qBAAqB,MAAM,sBAAsB,MAAM;AAAA,EACzD;AACA,QAAM,
|
|
4
|
+
"sourcesContent": ["import React from 'react';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types';\nimport { usePropsStore } from '../../../config/useStore';\nimport { getNewDatasWithItemMoved } from '../../../config/itemMovementHelpers';\n\nexport const useActionsLogicHandlers = (itemMeta: DSShuttleV2T.ItemMeta) => {\n const { item, isDestinationPanel } = itemMeta;\n\n const currData = usePropsStore((state) => (isDestinationPanel ? state.destinationData : state.sourceData));\n const currWithSoftDelete = usePropsStore((state) =>\n isDestinationPanel ? state.destinationWithSoftDelete : state.sourceWithSoftDelete,\n );\n const currOnChange = usePropsStore((state) =>\n isDestinationPanel ? state.onDestinationChange : state.onSourceChange,\n );\n const currDrilldown = usePropsStore((state) =>\n isDestinationPanel ? state.onDestinationDrilldown : state.onSourceDrilldown,\n );\n\n const otherData = usePropsStore((state) => (isDestinationPanel ? state.sourceData : state.destinationData));\n const otherPanelOnChange = usePropsStore((state) =>\n isDestinationPanel ? state.onSourceChange : state.onDestinationChange,\n );\n\n const handleDrilldown = React.useCallback(\n (event: React.MouseEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLButtonElement>) => {\n event.preventDefault();\n event.stopPropagation();\n currDrilldown(item.original, { event });\n },\n [currDrilldown, item],\n );\n\n const handleSingleMove = React.useCallback(\n (event: React.MouseEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLButtonElement>) => {\n event.preventDefault();\n event.stopPropagation();\n const { newCurrData, newOtherData } = getNewDatasWithItemMoved({\n item: item.original,\n currData,\n currWithSoftDelete,\n otherData,\n });\n\n currOnChange(newCurrData, { item: item.original, event });\n otherPanelOnChange(newOtherData, { item: item.original, event });\n },\n [currData, currOnChange, currWithSoftDelete, item, otherData, otherPanelOnChange],\n );\n return React.useMemo(() => ({ handleDrilldown, handleSingleMove }), [handleDrilldown, handleSingleMove]);\n};\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAkB;AAElB,sBAA8B;AAC9B,iCAAyC;AAElC,MAAM,0BAA0B,CAAC,aAAoC;AAC1E,QAAM,EAAE,MAAM,mBAAmB,IAAI;AAErC,QAAM,eAAW,+BAAc,CAAC,UAAW,qBAAqB,MAAM,kBAAkB,MAAM,UAAW;AACzG,QAAM,yBAAqB;AAAA,IAAc,CAAC,UACxC,qBAAqB,MAAM,4BAA4B,MAAM;AAAA,EAC/D;AACA,QAAM,mBAAe;AAAA,IAAc,CAAC,UAClC,qBAAqB,MAAM,sBAAsB,MAAM;AAAA,EACzD;AACA,QAAM,oBAAgB;AAAA,IAAc,CAAC,UACnC,qBAAqB,MAAM,yBAAyB,MAAM;AAAA,EAC5D;AAEA,QAAM,gBAAY,+BAAc,CAAC,UAAW,qBAAqB,MAAM,aAAa,MAAM,eAAgB;AAC1G,QAAM,yBAAqB;AAAA,IAAc,CAAC,UACxC,qBAAqB,MAAM,iBAAiB,MAAM;AAAA,EACpD;AAEA,QAAM,kBAAkB,aAAAA,QAAM;AAAA,IAC5B,CAAC,UAAwF;AACvF,YAAM,eAAe;AACrB,YAAM,gBAAgB;AACtB,oBAAc,KAAK,UAAU,EAAE,MAAM,CAAC;AAAA,IACxC;AAAA,IACA,CAAC,eAAe,IAAI;AAAA,EACtB;AAEA,QAAM,mBAAmB,aAAAA,QAAM;AAAA,IAC7B,CAAC,UAAwF;AACvF,YAAM,eAAe;AACrB,YAAM,gBAAgB;AACtB,YAAM,EAAE,aAAa,aAAa,QAAI,qDAAyB;AAAA,QAC7D,MAAM,KAAK;AAAA,QACX;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC;AAED,mBAAa,aAAa,EAAE,MAAM,KAAK,UAAU,MAAM,CAAC;AACxD,yBAAmB,cAAc,EAAE,MAAM,KAAK,UAAU,MAAM,CAAC;AAAA,IACjE;AAAA,IACA,CAAC,UAAU,cAAc,oBAAoB,MAAM,WAAW,kBAAkB;AAAA,EAClF;AACA,SAAO,aAAAA,QAAM,QAAQ,OAAO,EAAE,iBAAiB,iBAAiB,IAAI,CAAC,iBAAiB,gBAAgB,CAAC;AACzG;",
|
|
6
6
|
"names": ["React"]
|
|
7
7
|
}
|
|
@@ -37,11 +37,10 @@ const useInnerRefHandlers = ({ item, isDestinationPanel }) => {
|
|
|
37
37
|
const focusItemAction = (0, import_useStore.useInternalStore)((state) => state.focusItemAction);
|
|
38
38
|
const currRegion = isDestinationPanel ? import_constants.REGIONS_FOCUSES.DESTINATION_PANEL_ITEM : import_constants.REGIONS_FOCUSES.SOURCE_PANEL_ITEM;
|
|
39
39
|
const currItemId = item.original.id;
|
|
40
|
-
const { shouldFocusDrilldown, shouldFocusMove
|
|
40
|
+
const { shouldFocusDrilldown, shouldFocusMove } = import_react.default.useMemo(
|
|
41
41
|
() => ({
|
|
42
42
|
shouldFocusDrilldown: focusItem === currItemId && focusRegion === currRegion && focusItemAction === import_constants.ACTIONS_FOCUSES.DRILLDOWN_BTN,
|
|
43
|
-
shouldFocusMove: focusItem === currItemId && focusRegion === currRegion && focusItemAction === import_constants.ACTIONS_FOCUSES.MOVE_BTN
|
|
44
|
-
shouldFocusDnd: focusItem === currItemId && focusRegion === currRegion && focusItemAction === import_constants.ACTIONS_FOCUSES.DRAG_N_DROP
|
|
43
|
+
shouldFocusMove: focusItem === currItemId && focusRegion === currRegion && focusItemAction === import_constants.ACTIONS_FOCUSES.MOVE_BTN
|
|
45
44
|
}),
|
|
46
45
|
[currItemId, currRegion, focusItem, focusItemAction, focusRegion]
|
|
47
46
|
);
|
|
@@ -59,22 +58,9 @@ const useInnerRefHandlers = ({ item, isDestinationPanel }) => {
|
|
|
59
58
|
},
|
|
60
59
|
[shouldFocusMove]
|
|
61
60
|
);
|
|
62
|
-
const innerRefHandlerDnd = import_react.default.useCallback(
|
|
63
|
-
(node) => {
|
|
64
|
-
if (shouldFocusDnd)
|
|
65
|
-
node?.focus();
|
|
66
|
-
},
|
|
67
|
-
[shouldFocusDnd]
|
|
68
|
-
);
|
|
69
61
|
return import_react.default.useMemo(
|
|
70
|
-
() => ({
|
|
71
|
-
|
|
72
|
-
shouldFocusMove,
|
|
73
|
-
innerRefHandlerDnd,
|
|
74
|
-
innerRefHandlerDrilldown,
|
|
75
|
-
innerRefHandlerMove
|
|
76
|
-
}),
|
|
77
|
-
[innerRefHandlerDrilldown, innerRefHandlerDnd, innerRefHandlerMove, shouldFocusDrilldown, shouldFocusMove]
|
|
62
|
+
() => ({ shouldFocusDrilldown, shouldFocusMove, innerRefHandlerDrilldown, innerRefHandlerMove }),
|
|
63
|
+
[innerRefHandlerDrilldown, innerRefHandlerMove, shouldFocusDrilldown, shouldFocusMove]
|
|
78
64
|
);
|
|
79
65
|
};
|
|
80
66
|
//# sourceMappingURL=useInnerRefHandlers.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/parts/Item/ItemActions/useInnerRefHandlers.tsx", "../../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["import React from 'react';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types';\nimport { useInternalStore } from '../../../config/useStore';\nimport { REGIONS_FOCUSES, ACTIONS_FOCUSES } from '../../../constants';\n\nexport const useInnerRefHandlers = ({ item, isDestinationPanel }: DSShuttleV2T.ItemMeta) => {\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_ITEM : REGIONS_FOCUSES.SOURCE_PANEL_ITEM;\n const currItemId = item.original.id;\n const { shouldFocusDrilldown, shouldFocusMove
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAkB;AAElB,sBAAiC;AACjC,uBAAiD;AAE1C,MAAM,sBAAsB,CAAC,EAAE,MAAM,mBAAmB,MAA6B;AAC1F,QAAM,kBAAc,kCAAiB,CAAC,UAAU,MAAM,WAAW;AACjE,QAAM,gBAAY,kCAAiB,CAAC,UAAU,MAAM,SAAS;AAC7D,QAAM,sBAAkB,kCAAiB,CAAC,UAAU,MAAM,eAAe;AACzE,QAAM,aAAa,qBAAqB,iCAAgB,yBAAyB,iCAAgB;AACjG,QAAM,aAAa,KAAK,SAAS;AACjC,QAAM,EAAE,sBAAsB,
|
|
4
|
+
"sourcesContent": ["import React from 'react';\nimport { type DSShuttleV2T } from '../../../react-desc-prop-types';\nimport { useInternalStore } from '../../../config/useStore';\nimport { REGIONS_FOCUSES, ACTIONS_FOCUSES } from '../../../constants';\n\nexport const useInnerRefHandlers = ({ item, isDestinationPanel }: DSShuttleV2T.ItemMeta) => {\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_ITEM : REGIONS_FOCUSES.SOURCE_PANEL_ITEM;\n const currItemId = item.original.id;\n const { shouldFocusDrilldown, shouldFocusMove } = React.useMemo(\n () => ({\n shouldFocusDrilldown:\n focusItem === currItemId && focusRegion === currRegion && focusItemAction === ACTIONS_FOCUSES.DRILLDOWN_BTN,\n shouldFocusMove:\n focusItem === currItemId && focusRegion === currRegion && focusItemAction === ACTIONS_FOCUSES.MOVE_BTN,\n }),\n [currItemId, currRegion, focusItem, focusItemAction, focusRegion],\n );\n const innerRefHandlerDrilldown = React.useCallback(\n (node: HTMLButtonElement) => {\n if (shouldFocusDrilldown) node?.focus();\n },\n [shouldFocusDrilldown],\n );\n const innerRefHandlerMove = React.useCallback(\n (node: HTMLButtonElement) => {\n if (shouldFocusMove) node?.focus();\n },\n [shouldFocusMove],\n );\n return React.useMemo(\n () => ({ shouldFocusDrilldown, shouldFocusMove, innerRefHandlerDrilldown, innerRefHandlerMove }),\n [innerRefHandlerDrilldown, innerRefHandlerMove, shouldFocusDrilldown, shouldFocusMove],\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAkB;AAElB,sBAAiC;AACjC,uBAAiD;AAE1C,MAAM,sBAAsB,CAAC,EAAE,MAAM,mBAAmB,MAA6B;AAC1F,QAAM,kBAAc,kCAAiB,CAAC,UAAU,MAAM,WAAW;AACjE,QAAM,gBAAY,kCAAiB,CAAC,UAAU,MAAM,SAAS;AAC7D,QAAM,sBAAkB,kCAAiB,CAAC,UAAU,MAAM,eAAe;AACzE,QAAM,aAAa,qBAAqB,iCAAgB,yBAAyB,iCAAgB;AACjG,QAAM,aAAa,KAAK,SAAS;AACjC,QAAM,EAAE,sBAAsB,gBAAgB,IAAI,aAAAA,QAAM;AAAA,IACtD,OAAO;AAAA,MACL,sBACE,cAAc,cAAc,gBAAgB,cAAc,oBAAoB,iCAAgB;AAAA,MAChG,iBACE,cAAc,cAAc,gBAAgB,cAAc,oBAAoB,iCAAgB;AAAA,IAClG;AAAA,IACA,CAAC,YAAY,YAAY,WAAW,iBAAiB,WAAW;AAAA,EAClE;AACA,QAAM,2BAA2B,aAAAA,QAAM;AAAA,IACrC,CAAC,SAA4B;AAC3B,UAAI;AAAsB,cAAM,MAAM;AAAA,IACxC;AAAA,IACA,CAAC,oBAAoB;AAAA,EACvB;AACA,QAAM,sBAAsB,aAAAA,QAAM;AAAA,IAChC,CAAC,SAA4B;AAC3B,UAAI;AAAiB,cAAM,MAAM;AAAA,IACnC;AAAA,IACA,CAAC,eAAe;AAAA,EAClB;AACA,SAAO,aAAAA,QAAM;AAAA,IACX,OAAO,EAAE,sBAAsB,iBAAiB,0BAA0B,oBAAoB;AAAA,IAC9F,CAAC,0BAA0B,qBAAqB,sBAAsB,eAAe;AAAA,EACvF;AACF;",
|
|
6
6
|
"names": ["React"]
|
|
7
7
|
}
|
|
@@ -33,14 +33,13 @@ 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
35
|
var import_ds_typography = require("@elliemae/ds-typography");
|
|
36
|
-
|
|
37
|
-
const IconWrapper = (0, import_ds_system.styled)(import_ds_grid.Grid, { name: import_DSShuttleV2Definitions.DSShuttleV2Name, slot: import_DSShuttleV2Definitions.DSShuttleV2Slots.ITEM_ICON_WRAPPER })`
|
|
36
|
+
const IconWrapper = (0, import_ds_system.styled)(import_ds_grid.Grid, { name: "ds-shuttle-v2", slot: "item-icon-wrapper" })`
|
|
38
37
|
min-height: 1rem;
|
|
39
38
|
`;
|
|
40
|
-
const LabelWrapper = (0, import_ds_system.styled)(import_ds_grid.Grid, { name:
|
|
39
|
+
const LabelWrapper = (0, import_ds_system.styled)(import_ds_grid.Grid, { name: "ds-shuttle-v2", slot: "item-label-wrapper" })`
|
|
41
40
|
min-height: 1rem;
|
|
42
41
|
`;
|
|
43
|
-
const MidSection = (0, import_ds_system.styled)(import_ds_grid.Grid, { name:
|
|
42
|
+
const MidSection = (0, import_ds_system.styled)(import_ds_grid.Grid, { name: "ds-shuttle-v2", slot: "item-midsection-wrapper" })`
|
|
44
43
|
min-height: 1rem;
|
|
45
44
|
${(props) => {
|
|
46
45
|
if (props.$softDeleted)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/parts/Item/ItemMiddleSection.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 { DSTypography } from '@elliemae/ds-typography';\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 { Grid } from '@elliemae/ds-grid';\nimport { DSTypography } from '@elliemae/ds-typography';\nimport { type DSShuttleV2T } from '../../react-desc-prop-types';\n\nconst IconWrapper = styled(Grid, { name: 'ds-shuttle-v2', slot: 'item-icon-wrapper' })`\n min-height: 1rem;\n`;\nconst LabelWrapper = styled(Grid, { name: 'ds-shuttle-v2', slot: 'item-label-wrapper' })`\n min-height: 1rem;\n`;\nconst MidSection = styled(Grid, { name: 'ds-shuttle-v2', slot: 'item-midsection-wrapper' })`\n min-height: 1rem;\n ${(props) => {\n if (props.$softDeleted)\n return `\n color: ${props.theme.colors.neutral[500]};\n svg {\n fill: ${props.theme.colors.neutral[400]};\n }\n `;\n return '';\n }};\n`;\nconst customMidSectionCols = ['1fr'];\nconst customMidSectionRows = ['1fr'];\n\nconst withSubtitleRows = ['auto', 'auto'];\nconst TextSection = React.memo((props: DSShuttleV2T.ItemMeta) => {\n const { label, subtitle } = props.item.original;\n if (subtitle === undefined)\n return (\n <LabelWrapper alignItems=\"center\">\n <DSTypography variant=\"b1\">{label}</DSTypography>\n </LabelWrapper>\n );\n return (\n <Grid alignItems=\"center\" rows={withSubtitleRows} gutter=\"1px\">\n <DSTypography variant=\"b1\">{label}</DSTypography>\n <DSTypography variant=\"b4\">{subtitle}</DSTypography>\n </Grid>\n );\n});\n\nexport const ItemMiddleSection = React.memo((itemMeta: DSShuttleV2T.ItemMeta) => {\n const { item } = itemMeta;\n const { original } = item;\n const { Icon, CustomRenderer, softDeleted } = original;\n const cols = React.useMemo(() => {\n // if CustomRenderer is defined, shortcircuit\n if (CustomRenderer) return [];\n const dynamicCols = [];\n if (Icon) dynamicCols.push('auto');\n dynamicCols.push('1fr');\n return dynamicCols;\n }, [CustomRenderer, Icon]);\n\n if (CustomRenderer)\n return (\n <MidSection cols={customMidSectionCols} rows={customMidSectionRows} $softDeleted={softDeleted}>\n <CustomRenderer {...itemMeta} />\n </MidSection>\n );\n\n return (\n <MidSection cols={cols} alignItems=\"center\" ml=\"xxs\" $softDeleted={softDeleted}>\n {Icon ? (\n <IconWrapper alignItems=\"center\" mr=\"xxs\">\n <Icon {...itemMeta} />\n </IconWrapper>\n ) : null}\n <TextSection {...itemMeta} />\n </MidSection>\n );\n});\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADkCf;AAlCR,mBAAkB;AAClB,uBAAuB;AACvB,qBAAqB;AACrB,2BAA6B;AAG7B,MAAM,kBAAc,yBAAO,qBAAM,EAAE,MAAM,iBAAiB,MAAM,oBAAoB,CAAC;AAAA;AAAA;AAGrF,MAAM,mBAAe,yBAAO,qBAAM,EAAE,MAAM,iBAAiB,MAAM,qBAAqB,CAAC;AAAA;AAAA;AAGvF,MAAM,iBAAa,yBAAO,qBAAM,EAAE,MAAM,iBAAiB,MAAM,0BAA0B,CAAC;AAAA;AAAA,IAEtF,CAAC,UAAU;AACX,MAAI,MAAM;AACR,WAAO;AAAA,eACE,MAAM,MAAM,OAAO,QAAQ;AAAA;AAAA,gBAE1B,MAAM,MAAM,OAAO,QAAQ;AAAA;AAAA;AAGvC,SAAO;AACT;AAAA;AAEF,MAAM,uBAAuB,CAAC,KAAK;AACnC,MAAM,uBAAuB,CAAC,KAAK;AAEnC,MAAM,mBAAmB,CAAC,QAAQ,MAAM;AACxC,MAAM,cAAc,aAAAA,QAAM,KAAK,CAAC,UAAiC;AAC/D,QAAM,EAAE,OAAO,SAAS,IAAI,MAAM,KAAK;AACvC,MAAI,aAAa;AACf,WACE,4CAAC,gBAAa,YAAW,UACvB,sDAAC,qCAAa,SAAQ,MAAM,iBAAM,GACpC;AAEJ,SACE,6CAAC,uBAAK,YAAW,UAAS,MAAM,kBAAkB,QAAO,OACvD;AAAA,gDAAC,qCAAa,SAAQ,MAAM,iBAAM;AAAA,IAClC,4CAAC,qCAAa,SAAQ,MAAM,oBAAS;AAAA,KACvC;AAEJ,CAAC;AAEM,MAAM,oBAAoB,aAAAA,QAAM,KAAK,CAAC,aAAoC;AAC/E,QAAM,EAAE,KAAK,IAAI;AACjB,QAAM,EAAE,SAAS,IAAI;AACrB,QAAM,EAAE,MAAM,gBAAgB,YAAY,IAAI;AAC9C,QAAM,OAAO,aAAAA,QAAM,QAAQ,MAAM;AAE/B,QAAI;AAAgB,aAAO,CAAC;AAC5B,UAAM,cAAc,CAAC;AACrB,QAAI;AAAM,kBAAY,KAAK,MAAM;AACjC,gBAAY,KAAK,KAAK;AACtB,WAAO;AAAA,EACT,GAAG,CAAC,gBAAgB,IAAI,CAAC;AAEzB,MAAI;AACF,WACE,4CAAC,cAAW,MAAM,sBAAsB,MAAM,sBAAsB,cAAc,aAChF,sDAAC,kBAAgB,GAAG,UAAU,GAChC;AAGJ,SACE,6CAAC,cAAW,MAAY,YAAW,UAAS,IAAG,OAAM,cAAc,aAChE;AAAA,WACC,4CAAC,eAAY,YAAW,UAAS,IAAG,OAClC,sDAAC,QAAM,GAAG,UAAU,GACtB,IACE;AAAA,IACJ,4CAAC,eAAa,GAAG,UAAU;AAAA,KAC7B;AAEJ,CAAC;",
|
|
6
6
|
"names": ["React"]
|
|
7
7
|
}
|
|
@@ -32,8 +32,7 @@ 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
|
-
|
|
36
|
-
const StyledItemSelection = (0, import_ds_system.styled)(import_ds_grid.Grid, { name: import_DSShuttleV2Definitions.DSShuttleV2Name, slot: import_DSShuttleV2Definitions.DSShuttleV2Slots.ITEM_SELECTION })`
|
|
35
|
+
const StyledItemSelection = (0, import_ds_system.styled)(import_ds_grid.Grid, { name: "ds-shuttle-v2", slot: "item-selection" })`
|
|
37
36
|
width: 5px;
|
|
38
37
|
height: 100%;
|
|
39
38
|
box-sizing: border-box;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/parts/Item/ItemSelection.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';\
|
|
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';\n\n// border-right: ${(props) => {\n// if (props.$selectionPrevented === true) return `1px solid ${props.theme.colors.neutral['200']}`;\n// return '';\n// }};\n// border-bottom: ${(props) => {\n// if (props.$selectionPrevented === true) return `1px solid ${props.theme.colors.neutral['200']}`;\n// return '';\n// }};\n\nconst StyledItemSelection = styled(Grid, { name: 'ds-shuttle-v2', slot: 'item-selection' })<{\n $isSelected: boolean;\n $selectionPrevented?: boolean;\n}>`\n width: 5px;\n height: 100%;\n box-sizing: border-box;\n background-color: ${(props) => {\n if (props.$isSelected) return props.theme.colors.brand[600];\n if (props.$selectionPrevented === true) return props.theme.colors.neutral['080'];\n return props.theme.colors.brand[300];\n }};\n`;\n\nexport const ItemSelection = React.memo(({ item: { isSelected, selectionPrevented } }: DSShuttleV2T.ItemMeta) => (\n <StyledItemSelection $isSelected={isSelected} $selectionPrevented={selectionPrevented} />\n));\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;AD6BrB;AA7BF,mBAAkB;AAClB,uBAAuB;AACvB,qBAAqB;AAYrB,MAAM,0BAAsB,yBAAO,qBAAM,EAAE,MAAM,iBAAiB,MAAM,iBAAiB,CAAC;AAAA;AAAA;AAAA;AAAA,sBAOpE,CAAC,UAAU;AAC7B,MAAI,MAAM;AAAa,WAAO,MAAM,MAAM,OAAO,MAAM;AACvD,MAAI,MAAM,wBAAwB;AAAM,WAAO,MAAM,MAAM,OAAO,QAAQ;AAC1E,SAAO,MAAM,MAAM,OAAO,MAAM;AAClC;AAAA;AAGK,MAAM,gBAAgB,aAAAA,QAAM,KAAK,CAAC,EAAE,MAAM,EAAE,YAAY,mBAAmB,EAAE,MAClF,4CAAC,uBAAoB,aAAa,YAAY,qBAAqB,oBAAoB,CACxF;",
|
|
6
6
|
"names": ["React"]
|
|
7
7
|
}
|
|
@@ -30,20 +30,14 @@ module.exports = __toCommonJS(useItemArrowNavigation_exports);
|
|
|
30
30
|
var React = __toESM(require("react"));
|
|
31
31
|
var import_react = __toESM(require("react"));
|
|
32
32
|
var import_useFocusTracker = require("../../config/useFocusTracker");
|
|
33
|
-
var import_useStore = require("../../config/useStore");
|
|
34
33
|
const useItemArrowNavigation = (itemMeta) => {
|
|
35
34
|
const { mutableFocusItem, trackFocusPrevItem, trackFocusNextItem, trackFocusItem } = (0, import_useFocusTracker.useFocusItemTracker)();
|
|
36
35
|
const { trackFocusNextAction, trackFocusPrevAction, trackFocusActionParent } = (0, import_useFocusTracker.useFocusActionTrackers)();
|
|
37
36
|
const { item } = itemMeta;
|
|
38
37
|
const { isFirst, isLast } = item;
|
|
39
|
-
const isActive = (0, import_useStore.useInternalStore)((state) => state.lastActiveId);
|
|
40
38
|
const onItemContainerKeyDown = import_react.default.useCallback(
|
|
41
39
|
(e) => {
|
|
42
40
|
const { key } = e;
|
|
43
|
-
if (isActive) {
|
|
44
|
-
e.preventDefault();
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
41
|
if (["ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight"].includes(key))
|
|
48
42
|
e.preventDefault();
|
|
49
43
|
if (["ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight"].includes(key))
|
|
@@ -70,7 +64,6 @@ const useItemArrowNavigation = (itemMeta) => {
|
|
|
70
64
|
}
|
|
71
65
|
},
|
|
72
66
|
[
|
|
73
|
-
isActive,
|
|
74
67
|
mutableFocusItem,
|
|
75
68
|
isFirst,
|
|
76
69
|
isLast,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/parts/Item/useItemArrowNavigation.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["/* eslint-disable complexity */\nimport React from 'react';\nimport { useFocusItemTracker, useFocusActionTrackers } from '../../config/useFocusTracker';\nimport { type DSShuttleV2T } from '../../react-desc-prop-types';\
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADCvB,mBAAkB;AAClB,6BAA4D;
|
|
4
|
+
"sourcesContent": ["/* eslint-disable complexity */\nimport React from 'react';\nimport { useFocusItemTracker, useFocusActionTrackers } from '../../config/useFocusTracker';\nimport { type DSShuttleV2T } from '../../react-desc-prop-types';\n\nexport const useItemArrowNavigation = (itemMeta: DSShuttleV2T.ItemMeta) => {\n const { mutableFocusItem, trackFocusPrevItem, trackFocusNextItem, trackFocusItem } = useFocusItemTracker();\n const { trackFocusNextAction, trackFocusPrevAction, trackFocusActionParent } = useFocusActionTrackers();\n const { item } = itemMeta;\n const { isFirst, isLast } = item;\n\n const onItemContainerKeyDown = React.useCallback<React.KeyboardEventHandler<HTMLDivElement>>(\n (e) => {\n const { key } = e;\n // stopping prepagation it's required to avoid \"ArrowUp/ArrowDown\" to trigger parents logic\n // preventDefault it's just me thinking it's good idea when stopping propagation\n if (['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].includes(key)) e.preventDefault();\n if (['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].includes(key)) e.stopPropagation();\n if (key === 'ArrowLeft') {\n if ((mutableFocusItem.current === 'first' && isFirst) || (mutableFocusItem.current === 'last' && isLast)) {\n trackFocusItem(item);\n }\n trackFocusPrevAction(itemMeta);\n }\n if (key === 'ArrowRight') {\n if ((mutableFocusItem.current === 'first' && isFirst) || (mutableFocusItem.current === 'last' && isLast)) {\n trackFocusItem(item);\n }\n trackFocusNextAction(itemMeta);\n }\n if (key === 'ArrowUp') {\n trackFocusPrevItem(itemMeta);\n trackFocusActionParent();\n }\n if (key === 'ArrowDown') {\n trackFocusNextItem(itemMeta);\n trackFocusActionParent();\n }\n },\n [\n mutableFocusItem,\n isFirst,\n isLast,\n trackFocusPrevAction,\n itemMeta,\n trackFocusItem,\n item,\n trackFocusNextAction,\n trackFocusPrevItem,\n trackFocusActionParent,\n trackFocusNextItem,\n ],\n );\n\n return React.useMemo(() => ({ onItemContainerKeyDown }), [onItemContainerKeyDown]);\n};\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADCvB,mBAAkB;AAClB,6BAA4D;AAGrD,MAAM,yBAAyB,CAAC,aAAoC;AACzE,QAAM,EAAE,kBAAkB,oBAAoB,oBAAoB,eAAe,QAAI,4CAAoB;AACzG,QAAM,EAAE,sBAAsB,sBAAsB,uBAAuB,QAAI,+CAAuB;AACtG,QAAM,EAAE,KAAK,IAAI;AACjB,QAAM,EAAE,SAAS,OAAO,IAAI;AAE5B,QAAM,yBAAyB,aAAAA,QAAM;AAAA,IACnC,CAAC,MAAM;AACL,YAAM,EAAE,IAAI,IAAI;AAGhB,UAAI,CAAC,WAAW,aAAa,aAAa,YAAY,EAAE,SAAS,GAAG;AAAG,UAAE,eAAe;AACxF,UAAI,CAAC,WAAW,aAAa,aAAa,YAAY,EAAE,SAAS,GAAG;AAAG,UAAE,gBAAgB;AACzF,UAAI,QAAQ,aAAa;AACvB,YAAK,iBAAiB,YAAY,WAAW,WAAa,iBAAiB,YAAY,UAAU,QAAS;AACxG,yBAAe,IAAI;AAAA,QACrB;AACA,6BAAqB,QAAQ;AAAA,MAC/B;AACA,UAAI,QAAQ,cAAc;AACxB,YAAK,iBAAiB,YAAY,WAAW,WAAa,iBAAiB,YAAY,UAAU,QAAS;AACxG,yBAAe,IAAI;AAAA,QACrB;AACA,6BAAqB,QAAQ;AAAA,MAC/B;AACA,UAAI,QAAQ,WAAW;AACrB,2BAAmB,QAAQ;AAC3B,+BAAuB;AAAA,MACzB;AACA,UAAI,QAAQ,aAAa;AACvB,2BAAmB,QAAQ;AAC3B,+BAAuB;AAAA,MACzB;AAAA,IACF;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAEA,SAAO,aAAAA,QAAM,QAAQ,OAAO,EAAE,uBAAuB,IAAI,CAAC,sBAAsB,CAAC;AACnF;",
|
|
6
6
|
"names": ["React"]
|
|
7
7
|
}
|
|
@@ -34,7 +34,6 @@ var import_useFocusTracker = require("../../config/useFocusTracker");
|
|
|
34
34
|
const useSelectionLogic = ({ item, isDestinationPanel }) => {
|
|
35
35
|
const { trackFocusItem } = (0, import_useFocusTracker.useFocusItemTracker)();
|
|
36
36
|
const { trackFocusActionParent } = (0, import_useFocusTracker.useFocusActionTrackers)();
|
|
37
|
-
const { trackFocusRegionPanelItem } = (0, import_useFocusTracker.useFocusTracker)();
|
|
38
37
|
const destinationSelectionArray = (0, import_useStore.useInternalStore)((store) => store.destinationSelectionArray);
|
|
39
38
|
const sourceSelectionArray = (0, import_useStore.useInternalStore)((store) => store.sourceSelectionArray);
|
|
40
39
|
const panelSelectedItemsArray = isDestinationPanel ? destinationSelectionArray : sourceSelectionArray;
|
|
@@ -61,20 +60,10 @@ const useSelectionLogic = ({ item, isDestinationPanel }) => {
|
|
|
61
60
|
delete newSelection[id];
|
|
62
61
|
onSelectionChange(newSelection, { event, item: original });
|
|
63
62
|
}
|
|
64
|
-
trackFocusRegionPanelItem(isDestinationPanel);
|
|
65
63
|
trackFocusItem(item);
|
|
66
64
|
trackFocusActionParent();
|
|
67
65
|
},
|
|
68
|
-
[
|
|
69
|
-
isDestinationPanel,
|
|
70
|
-
item,
|
|
71
|
-
onSelectionChange,
|
|
72
|
-
panelSelectedItems,
|
|
73
|
-
panelSelectedItemsArray,
|
|
74
|
-
trackFocusActionParent,
|
|
75
|
-
trackFocusItem,
|
|
76
|
-
trackFocusRegionPanelItem
|
|
77
|
-
]
|
|
66
|
+
[item, onSelectionChange, panelSelectedItems, panelSelectedItemsArray, trackFocusActionParent, trackFocusItem]
|
|
78
67
|
);
|
|
79
68
|
return selectItem;
|
|
80
69
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/parts/Item/useSelectionLogic.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["import React from 'react';\nimport { useInternalStore, usePropsStore } from '../../config/useStore';\nimport { type DSShuttleV2T } from '../../react-desc-prop-types';\nimport { useFocusItemTracker, useFocusActionTrackers
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAkB;AAClB,sBAAgD;AAEhD,
|
|
4
|
+
"sourcesContent": ["import React from 'react';\nimport { useInternalStore, usePropsStore } from '../../config/useStore';\nimport { type DSShuttleV2T } from '../../react-desc-prop-types';\nimport { useFocusItemTracker, useFocusActionTrackers } from '../../config/useFocusTracker';\n\nexport const useSelectionLogic = ({ item, isDestinationPanel }: DSShuttleV2T.ItemMeta) => {\n const { trackFocusItem } = useFocusItemTracker();\n const { trackFocusActionParent } = useFocusActionTrackers();\n const destinationSelectionArray = useInternalStore((store) => store.destinationSelectionArray);\n const sourceSelectionArray = useInternalStore((store) => store.sourceSelectionArray);\n\n const panelSelectedItemsArray = isDestinationPanel ? destinationSelectionArray : sourceSelectionArray;\n const onSelectionChange = usePropsStore((state) =>\n isDestinationPanel ? state.onDestinationSelectionChange : state.onSourceSelectionChange,\n );\n const panelSelectedItems = usePropsStore((state) =>\n isDestinationPanel ? state.destinationSelectedItems : state.sourceSelectedItems,\n );\n const selectItem = React.useCallback(\n (event: React.KeyboardEvent<HTMLDivElement> | React.MouseEvent<HTMLDivElement | HTMLButtonElement>) => {\n const { selectionPrevented, original } = item;\n const { id } = original;\n if (!selectionPrevented) {\n const newSelection = { ...panelSelectedItems };\n let isAddition = true;\n panelSelectedItemsArray.forEach((selItem) => {\n if (selItem === id) isAddition = false;\n });\n if (isAddition) newSelection[id] = true;\n else delete newSelection[id];\n onSelectionChange(newSelection, { event, item: original });\n }\n // focus tracking logic\n trackFocusItem(item);\n trackFocusActionParent();\n },\n [item, onSelectionChange, panelSelectedItems, panelSelectedItemsArray, trackFocusActionParent, trackFocusItem],\n );\n\n return selectItem;\n};\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAkB;AAClB,sBAAgD;AAEhD,6BAA4D;AAErD,MAAM,oBAAoB,CAAC,EAAE,MAAM,mBAAmB,MAA6B;AACxF,QAAM,EAAE,eAAe,QAAI,4CAAoB;AAC/C,QAAM,EAAE,uBAAuB,QAAI,+CAAuB;AAC1D,QAAM,gCAA4B,kCAAiB,CAAC,UAAU,MAAM,yBAAyB;AAC7F,QAAM,2BAAuB,kCAAiB,CAAC,UAAU,MAAM,oBAAoB;AAEnF,QAAM,0BAA0B,qBAAqB,4BAA4B;AACjF,QAAM,wBAAoB;AAAA,IAAc,CAAC,UACvC,qBAAqB,MAAM,+BAA+B,MAAM;AAAA,EAClE;AACA,QAAM,yBAAqB;AAAA,IAAc,CAAC,UACxC,qBAAqB,MAAM,2BAA2B,MAAM;AAAA,EAC9D;AACA,QAAM,aAAa,aAAAA,QAAM;AAAA,IACvB,CAAC,UAAsG;AACrG,YAAM,EAAE,oBAAoB,SAAS,IAAI;AACzC,YAAM,EAAE,GAAG,IAAI;AACf,UAAI,CAAC,oBAAoB;AACvB,cAAM,eAAe,EAAE,GAAG,mBAAmB;AAC7C,YAAI,aAAa;AACjB,gCAAwB,QAAQ,CAAC,YAAY;AAC3C,cAAI,YAAY;AAAI,yBAAa;AAAA,QACnC,CAAC;AACD,YAAI;AAAY,uBAAa,MAAM;AAAA;AAC9B,iBAAO,aAAa;AACzB,0BAAkB,cAAc,EAAE,OAAO,MAAM,SAAS,CAAC;AAAA,MAC3D;AAEA,qBAAe,IAAI;AACnB,6BAAuB;AAAA,IACzB;AAAA,IACA,CAAC,MAAM,mBAAmB,oBAAoB,yBAAyB,wBAAwB,cAAc;AAAA,EAC/G;AAEA,SAAO;AACT;",
|
|
6
6
|
"names": ["React"]
|
|
7
7
|
}
|
|
@@ -34,9 +34,8 @@ 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_PanelWrapper = require("./PanelWrapper");
|
|
37
|
-
var import_DSShuttleV2Definitions = require("../config/DSShuttleV2Definitions");
|
|
38
37
|
var import_useFocusTracker = require("../config/useFocusTracker");
|
|
39
|
-
const StyledWrapper = (0, import_ds_system.styled)(import_ds_grid.Grid, { name:
|
|
38
|
+
const StyledWrapper = (0, import_ds_system.styled)(import_ds_grid.Grid, { name: "ds-shuttle-v2", slot: "wrapper" })`
|
|
40
39
|
min-width: 648px;
|
|
41
40
|
min-height: 296px;
|
|
42
41
|
`;
|