@elliemae/ds-shuttle 3.0.0-next.1 → 3.0.0-next.5
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/AnimationState.js +75 -0
- package/dist/cjs/AnimationState.js.map +7 -0
- package/dist/cjs/DSShuttle.js +170 -0
- package/dist/cjs/DSShuttle.js.map +7 -0
- package/dist/cjs/SearchState.js +60 -0
- package/dist/cjs/SearchState.js.map +7 -0
- package/dist/cjs/Shuttle.actions.js +136 -0
- package/dist/cjs/Shuttle.actions.js.map +7 -0
- package/dist/cjs/ShuttleContainer.js +108 -0
- package/dist/cjs/ShuttleContainer.js.map +7 -0
- package/dist/cjs/ShuttleImpl.js +242 -0
- package/dist/cjs/ShuttleImpl.js.map +7 -0
- package/dist/cjs/ShuttleRenderer.js +203 -0
- package/dist/cjs/ShuttleRenderer.js.map +7 -0
- package/dist/cjs/ShuttleState.js +84 -0
- package/dist/cjs/ShuttleState.js.map +7 -0
- package/dist/cjs/animation/animationConfig.js +78 -0
- package/dist/cjs/animation/animationConfig.js.map +7 -0
- package/dist/cjs/classedComponents.js +72 -0
- package/dist/cjs/classedComponents.js.map +7 -0
- package/dist/cjs/components/LoadingIndicator.js +52 -0
- package/dist/cjs/components/LoadingIndicator.js.map +7 -0
- package/dist/cjs/components/OverflowList.js +71 -0
- package/dist/cjs/components/OverflowList.js.map +7 -0
- package/dist/cjs/components/ShuttleBreadcrumb.js +54 -0
- package/dist/cjs/components/ShuttleBreadcrumb.js.map +7 -0
- package/dist/cjs/components/ShuttleInfiniteScrollIndicator.js +48 -0
- package/dist/cjs/components/ShuttleInfiniteScrollIndicator.js.map +7 -0
- package/dist/cjs/components/ShuttleListItem/ActionButtons.js +76 -0
- package/dist/cjs/components/ShuttleListItem/ActionButtons.js.map +7 -0
- package/dist/cjs/components/ShuttleListItem/ShuttleListItem.js +121 -0
- package/dist/cjs/components/ShuttleListItem/ShuttleListItem.js.map +7 -0
- package/dist/cjs/components/ShuttleListItem/ShuttleSourceListItem.js +127 -0
- package/dist/cjs/components/ShuttleListItem/ShuttleSourceListItem.js.map +7 -0
- package/dist/cjs/components/ShuttleListItem/ShuttleTargetListItem.js +110 -0
- package/dist/cjs/components/ShuttleListItem/ShuttleTargetListItem.js.map +7 -0
- package/dist/cjs/components/ShuttleListPanel.js +49 -0
- package/dist/cjs/components/ShuttleListPanel.js.map +7 -0
- package/dist/cjs/components/ShuttleSearchBox.js +99 -0
- package/dist/cjs/components/ShuttleSearchBox.js.map +7 -0
- package/dist/cjs/components/ShuttleSource.js +223 -0
- package/dist/cjs/components/ShuttleSource.js.map +7 -0
- package/dist/cjs/components/ShuttleTarget.js +135 -0
- package/dist/cjs/components/ShuttleTarget.js.map +7 -0
- package/dist/cjs/components/VirtualizedItem.js +65 -0
- package/dist/cjs/components/VirtualizedItem.js.map +7 -0
- package/dist/cjs/components/VirtualizedList.js +104 -0
- package/dist/cjs/components/VirtualizedList.js.map +7 -0
- package/dist/cjs/components/VirtualizedSortableList.js +77 -0
- package/dist/cjs/components/VirtualizedSortableList.js.map +7 -0
- package/dist/cjs/helper.js +99 -0
- package/dist/cjs/helper.js.map +7 -0
- package/dist/cjs/index.js +38 -0
- package/dist/cjs/index.js.map +7 -0
- package/dist/cjs/tests/utils.js +1235 -0
- package/dist/cjs/tests/utils.js.map +7 -0
- package/dist/cjs/updateShuttleStateFromProps.js +108 -0
- package/dist/cjs/updateShuttleStateFromProps.js.map +7 -0
- package/dist/cjs/utils.js +54 -0
- package/dist/cjs/utils.js.map +7 -0
- package/dist/cjs/withProviders.js +57 -0
- package/dist/cjs/withProviders.js.map +7 -0
- package/{esm → dist/esm}/AnimationState.js +12 -8
- package/dist/esm/AnimationState.js.map +7 -0
- package/dist/esm/DSShuttle.js +141 -0
- package/dist/esm/DSShuttle.js.map +7 -0
- package/dist/esm/SearchState.js +31 -0
- package/dist/esm/SearchState.js.map +7 -0
- package/dist/esm/Shuttle.actions.js +118 -0
- package/dist/esm/Shuttle.actions.js.map +7 -0
- package/dist/esm/ShuttleContainer.js +92 -0
- package/dist/esm/ShuttleContainer.js.map +7 -0
- package/dist/esm/ShuttleImpl.js +229 -0
- package/dist/esm/ShuttleImpl.js.map +7 -0
- package/dist/esm/ShuttleRenderer.js +176 -0
- package/dist/esm/ShuttleRenderer.js.map +7 -0
- package/dist/esm/ShuttleState.js +55 -0
- package/dist/esm/ShuttleState.js.map +7 -0
- package/dist/esm/animation/animationConfig.js +49 -0
- package/dist/esm/animation/animationConfig.js.map +7 -0
- package/dist/esm/classedComponents.js +43 -0
- package/dist/esm/classedComponents.js.map +7 -0
- package/dist/esm/components/LoadingIndicator.js +23 -0
- package/dist/esm/components/LoadingIndicator.js.map +7 -0
- package/dist/esm/components/OverflowList.js +44 -0
- package/dist/esm/components/OverflowList.js.map +7 -0
- package/dist/esm/components/ShuttleBreadcrumb.js +25 -0
- package/dist/esm/components/ShuttleBreadcrumb.js.map +7 -0
- package/dist/esm/components/ShuttleInfiniteScrollIndicator.js +19 -0
- package/dist/esm/components/ShuttleInfiniteScrollIndicator.js.map +7 -0
- package/dist/esm/components/ShuttleListItem/ActionButtons.js +49 -0
- package/dist/esm/components/ShuttleListItem/ActionButtons.js.map +7 -0
- package/dist/esm/components/ShuttleListItem/ShuttleListItem.js +94 -0
- package/dist/esm/components/ShuttleListItem/ShuttleListItem.js.map +7 -0
- package/dist/esm/components/ShuttleListItem/ShuttleSourceListItem.js +100 -0
- package/dist/esm/components/ShuttleListItem/ShuttleSourceListItem.js.map +7 -0
- package/dist/esm/components/ShuttleListItem/ShuttleTargetListItem.js +83 -0
- package/dist/esm/components/ShuttleListItem/ShuttleTargetListItem.js.map +7 -0
- package/dist/esm/components/ShuttleListPanel.js +20 -0
- package/dist/esm/components/ShuttleListPanel.js.map +7 -0
- package/dist/esm/components/ShuttleSearchBox.js +70 -0
- package/dist/esm/components/ShuttleSearchBox.js.map +7 -0
- package/dist/esm/components/ShuttleSource.js +208 -0
- package/dist/esm/components/ShuttleSource.js.map +7 -0
- package/dist/esm/components/ShuttleTarget.js +119 -0
- package/dist/esm/components/ShuttleTarget.js.map +7 -0
- package/dist/esm/components/VirtualizedItem.js +38 -0
- package/dist/esm/components/VirtualizedItem.js.map +7 -0
- package/dist/esm/components/VirtualizedList.js +77 -0
- package/dist/esm/components/VirtualizedList.js.map +7 -0
- package/dist/esm/components/VirtualizedSortableList.js +50 -0
- package/dist/esm/components/VirtualizedSortableList.js.map +7 -0
- package/dist/esm/helper.js +72 -0
- package/dist/esm/helper.js.map +7 -0
- package/dist/esm/index.js +9 -0
- package/dist/esm/index.js.map +7 -0
- package/dist/esm/tests/utils.js +1208 -0
- package/dist/esm/tests/utils.js.map +7 -0
- package/dist/esm/updateShuttleStateFromProps.js +81 -0
- package/dist/esm/updateShuttleStateFromProps.js.map +7 -0
- package/dist/esm/utils.js +27 -0
- package/dist/esm/utils.js.map +7 -0
- package/dist/esm/withProviders.js +30 -0
- package/dist/esm/withProviders.js.map +7 -0
- package/package.json +98 -89
- package/cjs/AnimationState.js +0 -48
- package/cjs/DSShuttle.js +0 -223
- package/cjs/SearchState.js +0 -41
- package/cjs/Shuttle.actions.js +0 -137
- package/cjs/ShuttleContainer.js +0 -87
- package/cjs/ShuttleImpl.js +0 -311
- package/cjs/ShuttleRenderer.js +0 -139
- package/cjs/ShuttleState.js +0 -80
- package/cjs/animation/animationConfig.js +0 -81
- package/cjs/classedComponents.js +0 -71
- package/cjs/components/LoadingIndicator.js +0 -25
- package/cjs/components/OverflowList.js +0 -53
- package/cjs/components/ShuttleBreadcrumb.js +0 -42
- package/cjs/components/ShuttleInfiniteScrollIndicator.js +0 -39
- package/cjs/components/ShuttleListItem/ActionButtons.js +0 -55
- package/cjs/components/ShuttleListItem/ShuttleListItem.js +0 -85
- package/cjs/components/ShuttleListItem/ShuttleSourceListItem.js +0 -76
- package/cjs/components/ShuttleListItem/ShuttleTargetListItem.js +0 -57
- package/cjs/components/ShuttleListPanel.js +0 -31
- package/cjs/components/ShuttleSearchBox.js +0 -110
- package/cjs/components/ShuttleSource.js +0 -188
- package/cjs/components/ShuttleTarget.js +0 -116
- package/cjs/components/VirtualizedItem.js +0 -46
- package/cjs/components/VirtualizedList.js +0 -93
- package/cjs/components/VirtualizedSortableList.js +0 -41
- package/cjs/helper.js +0 -117
- package/cjs/index.js +0 -12
- package/cjs/updateShuttleStateFromProps.js +0 -94
- package/cjs/utils.js +0 -43
- package/cjs/withProviders.js +0 -29
- package/esm/DSShuttle.js +0 -213
- package/esm/SearchState.js +0 -35
- package/esm/Shuttle.actions.js +0 -123
- package/esm/ShuttleContainer.js +0 -80
- package/esm/ShuttleImpl.js +0 -304
- package/esm/ShuttleRenderer.js +0 -132
- package/esm/ShuttleState.js +0 -74
- package/esm/animation/animationConfig.js +0 -77
- package/esm/classedComponents.js +0 -51
- package/esm/components/LoadingIndicator.js +0 -18
- package/esm/components/OverflowList.js +0 -46
- package/esm/components/ShuttleBreadcrumb.js +0 -35
- package/esm/components/ShuttleInfiniteScrollIndicator.js +0 -32
- package/esm/components/ShuttleListItem/ActionButtons.js +0 -43
- package/esm/components/ShuttleListItem/ShuttleListItem.js +0 -76
- package/esm/components/ShuttleListItem/ShuttleSourceListItem.js +0 -68
- package/esm/components/ShuttleListItem/ShuttleTargetListItem.js +0 -49
- package/esm/components/ShuttleListPanel.js +0 -24
- package/esm/components/ShuttleSearchBox.js +0 -104
- package/esm/components/ShuttleSource.js +0 -179
- package/esm/components/ShuttleTarget.js +0 -107
- package/esm/components/VirtualizedItem.js +0 -40
- package/esm/components/VirtualizedList.js +0 -84
- package/esm/components/VirtualizedSortableList.js +0 -34
- package/esm/helper.js +0 -78
- package/esm/index.js +0 -2
- package/esm/updateShuttleStateFromProps.js +0 -88
- package/esm/utils.js +0 -18
- package/esm/withProviders.js +0 -22
- package/types/AnimationState.d.ts +0 -26
- package/types/DSShuttle.d.ts +0 -341
- package/types/SearchState.d.ts +0 -22
- package/types/Shuttle.actions.d.ts +0 -11
- package/types/ShuttleContainer.d.ts +0 -3
- package/types/ShuttleImpl.d.ts +0 -3
- package/types/ShuttleRenderer.d.ts +0 -37
- package/types/ShuttleState.d.ts +0 -53
- package/types/animation/animationConfig.d.ts +0 -68
- package/types/classedComponents.d.ts +0 -14
- package/types/components/LoadingIndicator.d.ts +0 -3
- package/types/components/OverflowList.d.ts +0 -7
- package/types/components/ShuttleBreadcrumb.d.ts +0 -7
- package/types/components/ShuttleInfiniteScrollIndicator.d.ts +0 -5
- package/types/components/ShuttleListItem/ActionButtons.d.ts +0 -4
- package/types/components/ShuttleListItem/ShuttleListItem.d.ts +0 -14
- package/types/components/ShuttleListItem/ShuttleSourceListItem.d.ts +0 -13
- package/types/components/ShuttleListItem/ShuttleTargetListItem.d.ts +0 -13
- package/types/components/ShuttleListPanel.d.ts +0 -7
- package/types/components/ShuttleSearchBox.d.ts +0 -20
- package/types/components/ShuttleSource.d.ts +0 -54
- package/types/components/ShuttleTarget.d.ts +0 -16
- package/types/components/VirtualizedItem.d.ts +0 -3
- package/types/components/VirtualizedList.d.ts +0 -12
- package/types/components/VirtualizedSortableList.d.ts +0 -6
- package/types/helper.d.ts +0 -16
- package/types/index.d.ts +0 -1
- package/types/tests/DSShuttle.events.test.d.ts +0 -1
- package/types/tests/DSShuttle.test.d.ts +0 -1
- package/types/tests/utils.d.ts +0 -116
- package/types/updateShuttleStateFromProps.d.ts +0 -1
- package/types/utils.d.ts +0 -2
- package/types/withProviders.d.ts +0 -3
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __defProps = Object.defineProperties;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
6
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
8
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
9
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
10
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
11
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
12
|
+
var __spreadValues = (a, b) => {
|
|
13
|
+
for (var prop in b || (b = {}))
|
|
14
|
+
if (__hasOwnProp.call(b, prop))
|
|
15
|
+
__defNormalProp(a, prop, b[prop]);
|
|
16
|
+
if (__getOwnPropSymbols)
|
|
17
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
18
|
+
if (__propIsEnum.call(b, prop))
|
|
19
|
+
__defNormalProp(a, prop, b[prop]);
|
|
20
|
+
}
|
|
21
|
+
return a;
|
|
22
|
+
};
|
|
23
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
24
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
25
|
+
var __objRest = (source, exclude) => {
|
|
26
|
+
var target = {};
|
|
27
|
+
for (var prop in source)
|
|
28
|
+
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
29
|
+
target[prop] = source[prop];
|
|
30
|
+
if (source != null && __getOwnPropSymbols)
|
|
31
|
+
for (var prop of __getOwnPropSymbols(source)) {
|
|
32
|
+
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
33
|
+
target[prop] = source[prop];
|
|
34
|
+
}
|
|
35
|
+
return target;
|
|
36
|
+
};
|
|
37
|
+
var __export = (target, all) => {
|
|
38
|
+
for (var name in all)
|
|
39
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
40
|
+
};
|
|
41
|
+
var __reExport = (target, module2, copyDefault, desc) => {
|
|
42
|
+
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
43
|
+
for (let key of __getOwnPropNames(module2))
|
|
44
|
+
if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
|
|
45
|
+
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
|
46
|
+
}
|
|
47
|
+
return target;
|
|
48
|
+
};
|
|
49
|
+
var __toESM = (module2, isNodeMode) => {
|
|
50
|
+
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
|
|
51
|
+
};
|
|
52
|
+
var __toCommonJS = /* @__PURE__ */ ((cache) => {
|
|
53
|
+
return (module2, temp) => {
|
|
54
|
+
return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
|
|
55
|
+
};
|
|
56
|
+
})(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
|
|
57
|
+
var ShuttleImpl_exports = {};
|
|
58
|
+
__export(ShuttleImpl_exports, {
|
|
59
|
+
ShuttleImpl: () => ShuttleImplHoc,
|
|
60
|
+
default: () => ShuttleImpl_default
|
|
61
|
+
});
|
|
62
|
+
var React = __toESM(require("react"));
|
|
63
|
+
var import_react = __toESM(require("react"));
|
|
64
|
+
var import_ds_utilities = require("@elliemae/ds-utilities");
|
|
65
|
+
var import_withProviders = require("./withProviders");
|
|
66
|
+
var import_Shuttle = require("./Shuttle.actions");
|
|
67
|
+
var import_helper = require("./helper");
|
|
68
|
+
var import_ShuttleRenderer = require("./ShuttleRenderer");
|
|
69
|
+
var import_SearchState = require("./SearchState");
|
|
70
|
+
var import_updateShuttleStateFromProps = require("./updateShuttleStateFromProps");
|
|
71
|
+
class ShuttleImpl extends import_react.Component {
|
|
72
|
+
constructor(props) {
|
|
73
|
+
super(props);
|
|
74
|
+
this.getState = () => {
|
|
75
|
+
const { movedItems } = this.state;
|
|
76
|
+
return Object.keys(movedItems);
|
|
77
|
+
};
|
|
78
|
+
this.state = {
|
|
79
|
+
prevProps: {},
|
|
80
|
+
preparedItems: [],
|
|
81
|
+
checkedItems: [],
|
|
82
|
+
hierarchy: [{ name: props.sourceRootTitle, id: null }],
|
|
83
|
+
hierarchyDest: [{ name: props.targetRootTitle, id: null }],
|
|
84
|
+
movedItems: [],
|
|
85
|
+
sourceItems: [],
|
|
86
|
+
targetItems: []
|
|
87
|
+
};
|
|
88
|
+
this.moveCheckedItems = this.moveCheckedItems.bind(this);
|
|
89
|
+
this.resetMovedItems = this.resetMovedItems.bind(this);
|
|
90
|
+
}
|
|
91
|
+
static getDerivedStateFromProps(nextProps, prevState) {
|
|
92
|
+
return (0, import_updateShuttleStateFromProps.updateShuttleStateFromProps)(nextProps, prevState);
|
|
93
|
+
}
|
|
94
|
+
componentDidMount() {
|
|
95
|
+
const { setGetStatus } = this.props;
|
|
96
|
+
setGetStatus(this.getState);
|
|
97
|
+
}
|
|
98
|
+
handleChange() {
|
|
99
|
+
const { onChange } = this.props;
|
|
100
|
+
const { movedItems } = this.state;
|
|
101
|
+
onChange(Object.keys(movedItems));
|
|
102
|
+
}
|
|
103
|
+
navigate(item, dest, direction) {
|
|
104
|
+
const { onDrillDown, onDrillDownTarget } = this.props;
|
|
105
|
+
if (!dest)
|
|
106
|
+
onDrillDown(item, direction);
|
|
107
|
+
if (dest)
|
|
108
|
+
onDrillDownTarget(item, direction);
|
|
109
|
+
const { reset: resetSearchState } = this.context;
|
|
110
|
+
resetSearchState();
|
|
111
|
+
this.setState((0, import_helper.pipe)([(0, import_Shuttle.navigateTo)(item, dest), (0, import_Shuttle.resetCheckedItems)()]));
|
|
112
|
+
}
|
|
113
|
+
resetCheckedItems() {
|
|
114
|
+
this.setState((0, import_Shuttle.resetCheckedItems)());
|
|
115
|
+
}
|
|
116
|
+
resetMovedItems() {
|
|
117
|
+
const { selectedItems, onRemoveAllFromTarget } = this.props;
|
|
118
|
+
if (!selectedItems) {
|
|
119
|
+
this.setState((0, import_helper.pipe)([(0, import_Shuttle.navigateTo)({ id: null }, true), (0, import_Shuttle.resetMovedItems)()]), () => {
|
|
120
|
+
this.handleChange();
|
|
121
|
+
});
|
|
122
|
+
} else {
|
|
123
|
+
this.setState((0, import_helper.pipe)([(0, import_Shuttle.navigateTo)({ id: null }, true)]));
|
|
124
|
+
}
|
|
125
|
+
onRemoveAllFromTarget();
|
|
126
|
+
}
|
|
127
|
+
addToTarget(item) {
|
|
128
|
+
const { selectedItems, onAddToTarget } = this.props;
|
|
129
|
+
if (!selectedItems) {
|
|
130
|
+
this.setState((0, import_helper.pipe)([(0, import_Shuttle.addToTarget)(item), (0, import_Shuttle.resetCheckedItems)()]), () => {
|
|
131
|
+
this.handleChange();
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
onAddToTarget(item);
|
|
135
|
+
}
|
|
136
|
+
removeFromTarget(item) {
|
|
137
|
+
const { selectedItems, onRemoveFromTarget } = this.props;
|
|
138
|
+
if (!selectedItems) {
|
|
139
|
+
this.setState((0, import_helper.pipe)([(0, import_Shuttle.removeFromTarget)(item)]), () => {
|
|
140
|
+
this.handleChange();
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
onRemoveFromTarget(item);
|
|
144
|
+
}
|
|
145
|
+
toggleItemSelection(item) {
|
|
146
|
+
this.setState((0, import_Shuttle.toggleItemSelection)(item.id));
|
|
147
|
+
}
|
|
148
|
+
moveCheckedItems() {
|
|
149
|
+
const { onAddCheckedItems, selectedItems, nonSelectedItems } = this.props;
|
|
150
|
+
const { checkedItems, preparedItems } = this.state;
|
|
151
|
+
const isControlledV2 = !!selectedItems && !!nonSelectedItems;
|
|
152
|
+
const checked = isControlledV2 ? nonSelectedItems.filter((item) => checkedItems.some((check) => check === item)) : checkedItems;
|
|
153
|
+
const items = (0, import_helper.getItemsById)(checked, preparedItems);
|
|
154
|
+
const actions = !selectedItems ? items.map((item) => (0, import_Shuttle.addToTarget)(item)) : [];
|
|
155
|
+
this.setState((0, import_helper.pipe)([...actions, (0, import_Shuttle.resetCheckedItems)()]), () => {
|
|
156
|
+
this.handleChange();
|
|
157
|
+
});
|
|
158
|
+
onAddCheckedItems(items);
|
|
159
|
+
}
|
|
160
|
+
handleTargetSortEnd({ sourceItem, targetItem }) {
|
|
161
|
+
const { idField, onTargetSortEnd } = this.props;
|
|
162
|
+
const { targetItems, hierarchyDest, movedItems } = this.state;
|
|
163
|
+
const hierarchyId = (0, import_helper.getActiveIdFromHierarchy)(hierarchyDest).id;
|
|
164
|
+
const collection = !hierarchyId ? movedItems : targetItems;
|
|
165
|
+
const oldIndex = collection.findIndex((tItem) => tItem[idField] === sourceItem[idField]);
|
|
166
|
+
const newIndex = collection.findIndex((tItem) => tItem[idField] === targetItem[idField]);
|
|
167
|
+
const sortedMovedItems = !hierarchyId ? (0, import_ds_utilities.arrayMove)(movedItems, oldIndex, newIndex) : movedItems;
|
|
168
|
+
const sortedItems = hierarchyId ? (0, import_ds_utilities.arrayMove)(targetItems, oldIndex, newIndex) : targetItems;
|
|
169
|
+
this.setState({
|
|
170
|
+
targetItems: sortedItems,
|
|
171
|
+
movedItems: sortedMovedItems
|
|
172
|
+
});
|
|
173
|
+
onTargetSortEnd({ sourceItem, targetItem });
|
|
174
|
+
}
|
|
175
|
+
render() {
|
|
176
|
+
const _a = this.props, { idField, nonSelectedItems, moreItemsLoading } = _a, rest = __objRest(_a, ["idField", "nonSelectedItems", "moreItemsLoading"]);
|
|
177
|
+
const {
|
|
178
|
+
hierarchy,
|
|
179
|
+
hierarchyDest,
|
|
180
|
+
checkedItems,
|
|
181
|
+
movedItems,
|
|
182
|
+
preparedItems: items,
|
|
183
|
+
targetItems
|
|
184
|
+
} = this.state;
|
|
185
|
+
const {
|
|
186
|
+
state: { searchTerm, searching }
|
|
187
|
+
} = this.context;
|
|
188
|
+
const handleControlledSourceItms = () => {
|
|
189
|
+
const { id } = (0, import_helper.getActiveIdFromHierarchy)(hierarchy);
|
|
190
|
+
if (id) {
|
|
191
|
+
return (0, import_helper.filterBySearch)(searchTerm, searching)((0, import_helper.getChildrenFromParent)(id)(nonSelectedItems.map((it) => items.find((itt) => itt.id === it))));
|
|
192
|
+
}
|
|
193
|
+
return (0, import_helper.filterBySearch)(searchTerm, searching)(items.filter((it) => nonSelectedItems.some((itt) => itt === it.id && !nonSelectedItems.some((ittt) => ittt === it.parent))));
|
|
194
|
+
};
|
|
195
|
+
let composedSourceItems;
|
|
196
|
+
if (nonSelectedItems) {
|
|
197
|
+
composedSourceItems = handleControlledSourceItms();
|
|
198
|
+
} else {
|
|
199
|
+
composedSourceItems = (0, import_ds_utilities.compose)((0, import_helper.filterBySearch)(searchTerm, searching), (0, import_helper.filterMovedItems)(movedItems), (0, import_helper.getChildrenFromParent)((0, import_helper.getActiveIdFromHierarchy)(hierarchy).id))(items);
|
|
200
|
+
}
|
|
201
|
+
const handleControlledTargetItms = () => {
|
|
202
|
+
const { id } = (0, import_helper.getActiveIdFromHierarchy)(hierarchyDest);
|
|
203
|
+
if (id) {
|
|
204
|
+
return (0, import_helper.getChildrenFromParent)((0, import_helper.getActiveIdFromHierarchy)(hierarchyDest).id)(this.props.selectedItems.map((it) => items.find((itt) => itt.id === it)));
|
|
205
|
+
}
|
|
206
|
+
return targetItems.filter((it) => this.props.selectedItems.some((itt) => itt === it.id && !this.props.selectedItems.some((ittt) => ittt === it.parent)));
|
|
207
|
+
};
|
|
208
|
+
let composedTargetItems;
|
|
209
|
+
if (nonSelectedItems) {
|
|
210
|
+
composedTargetItems = handleControlledTargetItms();
|
|
211
|
+
} else {
|
|
212
|
+
composedTargetItems = (0, import_ds_utilities.compose)((tItems) => {
|
|
213
|
+
const hierarchyId = (0, import_helper.getActiveIdFromHierarchy)(hierarchyDest).id;
|
|
214
|
+
return hierarchyId ? (0, import_ds_utilities.compose)((0, import_helper.filterMovedItems)(movedItems), (0, import_helper.getChildrenFromParent)(hierarchyId))(tItems) : movedItems;
|
|
215
|
+
})(targetItems);
|
|
216
|
+
}
|
|
217
|
+
return /* @__PURE__ */ import_react.default.createElement(import_ShuttleRenderer.ShuttleRenderer, __spreadProps(__spreadValues({}, rest), {
|
|
218
|
+
moreItemsLoading,
|
|
219
|
+
checkedItems,
|
|
220
|
+
hierarchy,
|
|
221
|
+
hierarchyDest,
|
|
222
|
+
onCheckItem: this.toggleItemSelection,
|
|
223
|
+
onClearCheckedItems: this.resetCheckedItems,
|
|
224
|
+
onClearMovedItems: this.resetMovedItems,
|
|
225
|
+
onItemCheck: this.toggleItemSelection,
|
|
226
|
+
onMoveCheckedItems: this.moveCheckedItems,
|
|
227
|
+
onMoveItemToSource: (item) => this.removeFromTarget(item, false),
|
|
228
|
+
onMoveItemToTarget: (item) => this.addToTarget(item, true),
|
|
229
|
+
onNavigateOnSourceTo: (item, direction) => this.navigate(item, false, direction),
|
|
230
|
+
onNavigateOnTargetTo: (item, direction) => this.navigate(item, true, direction),
|
|
231
|
+
onSourceSortEnd: () => null,
|
|
232
|
+
onTargetSortEnd: this.handleTargetSortEnd,
|
|
233
|
+
sourceItems: composedSourceItems,
|
|
234
|
+
targetItems: composedTargetItems
|
|
235
|
+
}));
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
ShuttleImpl.contextType = import_SearchState.SearchState.Context;
|
|
239
|
+
const ShuttleImplHoc = (0, import_withProviders.withProviders)(ShuttleImpl);
|
|
240
|
+
var ShuttleImpl_default = ShuttleImplHoc;
|
|
241
|
+
module.exports = __toCommonJS(ShuttleImpl_exports);
|
|
242
|
+
//# sourceMappingURL=ShuttleImpl.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/ShuttleImpl.tsx", "../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
+
"sourcesContent": ["/* eslint-disable react/static-property-placement */\n/* eslint-disable react/prop-types */\n/* eslint-disable indent */\n/* eslint-disable import/extensions,react/no-unused-state,no-shadow,max-lines */\nimport React, { Component } from 'react';\nimport { compose, arrayMove } from '@elliemae/ds-utilities';\nimport { withProviders } from './withProviders';\nimport {\n addToTarget,\n navigateTo,\n resetCheckedItems,\n resetMovedItems,\n toggleItemSelection,\n removeFromTarget,\n} from './Shuttle.actions';\nimport {\n getActiveIdFromHierarchy,\n filterBySearch,\n getItemsById,\n pipe,\n getChildrenFromParent,\n filterMovedItems,\n} from './helper';\nimport { ShuttleRenderer } from './ShuttleRenderer';\nimport { SearchState } from './SearchState';\nimport { updateShuttleStateFromProps } from './updateShuttleStateFromProps';\n\nclass ShuttleImpl extends Component {\n static contextType = SearchState.Context;\n\n constructor(props) {\n super(props);\n this.state = {\n prevProps: {},\n preparedItems: [],\n checkedItems: [],\n // left breadcrumb\n hierarchy: [{ name: props.sourceRootTitle, id: null }],\n // right breadcrumb\n hierarchyDest: [{ name: props.targetRootTitle, id: null }],\n\n movedItems: [],\n sourceItems: [],\n targetItems: [],\n };\n this.moveCheckedItems = this.moveCheckedItems.bind(this);\n this.resetMovedItems = this.resetMovedItems.bind(this);\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n return updateShuttleStateFromProps(nextProps, prevState);\n }\n\n componentDidMount() {\n const { setGetStatus } = this.props;\n setGetStatus(this.getState);\n }\n\n getState = () => {\n const { movedItems } = this.state;\n return Object.keys(movedItems);\n };\n\n handleChange() {\n const { onChange } = this.props;\n const { movedItems } = this.state;\n onChange(Object.keys(movedItems));\n }\n\n navigate(item, dest, direction) {\n const { onDrillDown, onDrillDownTarget } = this.props;\n\n if (!dest) onDrillDown(item, direction);\n if (dest) onDrillDownTarget(item, direction);\n\n const { reset: resetSearchState } = this.context;\n resetSearchState();\n\n this.setState(pipe([navigateTo(item, dest), resetCheckedItems()]));\n }\n\n resetCheckedItems() {\n this.setState(resetCheckedItems());\n }\n\n resetMovedItems() {\n const { selectedItems, onRemoveAllFromTarget } = this.props;\n if (!selectedItems) {\n this.setState(\n pipe([navigateTo({ id: null }, true), resetMovedItems()]),\n () => {\n this.handleChange();\n },\n );\n } else {\n this.setState(pipe([navigateTo({ id: null }, true)]));\n }\n onRemoveAllFromTarget();\n }\n\n addToTarget(item) {\n const { selectedItems, onAddToTarget } = this.props;\n if (!selectedItems) {\n this.setState(pipe([addToTarget(item), resetCheckedItems()]), () => {\n this.handleChange();\n });\n }\n onAddToTarget(item);\n }\n\n removeFromTarget(item) {\n const { selectedItems, onRemoveFromTarget } = this.props;\n if (!selectedItems) {\n this.setState(pipe([removeFromTarget(item)]), () => {\n this.handleChange();\n });\n }\n onRemoveFromTarget(item);\n }\n\n toggleItemSelection(item) {\n this.setState(toggleItemSelection(item.id));\n }\n\n moveCheckedItems() {\n const { onAddCheckedItems, selectedItems, nonSelectedItems } = this.props;\n const { checkedItems, preparedItems } = this.state;\n const isControlledV2 = !!selectedItems && !!nonSelectedItems;\n const checked = isControlledV2\n ? nonSelectedItems.filter((item) =>\n checkedItems.some((check) => check === item),\n )\n : checkedItems;\n const items = getItemsById(checked, preparedItems);\n const actions = !selectedItems\n ? items.map((item) => addToTarget(item))\n : [];\n this.setState(pipe([...actions, resetCheckedItems()]), () => {\n this.handleChange();\n });\n onAddCheckedItems(items);\n }\n\n handleTargetSortEnd({ sourceItem, targetItem }) {\n const { idField, onTargetSortEnd } = this.props;\n const { targetItems, hierarchyDest, movedItems } = this.state;\n\n const hierarchyId = getActiveIdFromHierarchy(hierarchyDest).id;\n\n const collection = !hierarchyId ? movedItems : targetItems;\n\n const oldIndex = collection.findIndex(\n (tItem) => tItem[idField] === sourceItem[idField],\n );\n const newIndex = collection.findIndex(\n (tItem) => tItem[idField] === targetItem[idField],\n );\n\n const sortedMovedItems = !hierarchyId\n ? arrayMove(movedItems, oldIndex, newIndex)\n : movedItems;\n const sortedItems = hierarchyId\n ? arrayMove(targetItems, oldIndex, newIndex)\n : targetItems;\n\n this.setState({\n targetItems: sortedItems,\n movedItems: sortedMovedItems,\n });\n onTargetSortEnd({ sourceItem, targetItem });\n }\n\n render() {\n const { idField, nonSelectedItems, moreItemsLoading, ...rest } = this.props;\n const {\n hierarchy,\n hierarchyDest,\n checkedItems,\n movedItems,\n preparedItems: items,\n targetItems,\n } = this.state;\n const {\n state: { searchTerm, searching },\n } = this.context;\n\n const handleControlledSourceItms = () => {\n const { id } = getActiveIdFromHierarchy(hierarchy);\n if (id) {\n return filterBySearch(\n searchTerm,\n searching,\n )(\n getChildrenFromParent(id)(\n nonSelectedItems.map((it) => items.find((itt) => itt.id === it)),\n ),\n );\n }\n\n return filterBySearch(\n searchTerm,\n searching,\n )(\n items.filter((it) =>\n nonSelectedItems.some(\n (itt) =>\n itt === it.id &&\n !nonSelectedItems.some((ittt) => ittt === it.parent),\n ),\n ),\n );\n };\n\n let composedSourceItems;\n\n // controlled V2 TODO make it default controlled behavior\n if (nonSelectedItems) {\n composedSourceItems = handleControlledSourceItms();\n } else {\n composedSourceItems = compose(\n filterBySearch(searchTerm, searching),\n filterMovedItems(movedItems),\n getChildrenFromParent(getActiveIdFromHierarchy(hierarchy).id),\n )(items);\n }\n\n const handleControlledTargetItms = () => {\n const { id } = getActiveIdFromHierarchy(hierarchyDest);\n if (id) {\n return getChildrenFromParent(\n getActiveIdFromHierarchy(hierarchyDest).id,\n )(\n this.props.selectedItems.map((it) =>\n items.find((itt) => itt.id === it),\n ),\n );\n }\n\n return targetItems.filter((it) =>\n this.props.selectedItems.some(\n (itt) =>\n itt === it.id &&\n !this.props.selectedItems.some((ittt) => ittt === it.parent),\n ),\n );\n };\n\n let composedTargetItems;\n\n // controlled V2 TODO make it default controlled behavior\n if (nonSelectedItems) {\n composedTargetItems = handleControlledTargetItms();\n } else {\n composedTargetItems = compose((tItems) => {\n const hierarchyId = getActiveIdFromHierarchy(hierarchyDest).id;\n return hierarchyId\n ? compose(\n filterMovedItems(movedItems),\n getChildrenFromParent(hierarchyId),\n )(tItems)\n : movedItems;\n })(targetItems);\n }\n\n return (\n <ShuttleRenderer\n {...rest}\n moreItemsLoading={moreItemsLoading}\n checkedItems={checkedItems}\n hierarchy={hierarchy}\n hierarchyDest={hierarchyDest}\n onCheckItem={this.toggleItemSelection}\n onClearCheckedItems={this.resetCheckedItems}\n onClearMovedItems={this.resetMovedItems}\n onItemCheck={this.toggleItemSelection}\n onMoveCheckedItems={this.moveCheckedItems}\n onMoveItemToSource={(item) => this.removeFromTarget(item, false)}\n onMoveItemToTarget={(item) => this.addToTarget(item, true)}\n onNavigateOnSourceTo={(item, direction) =>\n this.navigate(item, false, direction)\n }\n onNavigateOnTargetTo={(item, direction) =>\n this.navigate(item, true, direction)\n }\n onSourceSortEnd={() => null}\n onTargetSortEnd={this.handleTargetSortEnd}\n sourceItems={composedSourceItems}\n targetItems={composedTargetItems}\n />\n );\n }\n}\n\nconst ShuttleImplHoc = withProviders(ShuttleImpl);\nexport { ShuttleImplHoc as ShuttleImpl };\nexport default ShuttleImplHoc;\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __defProps = Object.defineProperties;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
6
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
8
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
9
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
10
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
11
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
12
|
+
var __spreadValues = (a, b) => {
|
|
13
|
+
for (var prop in b || (b = {}))
|
|
14
|
+
if (__hasOwnProp.call(b, prop))
|
|
15
|
+
__defNormalProp(a, prop, b[prop]);
|
|
16
|
+
if (__getOwnPropSymbols)
|
|
17
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
18
|
+
if (__propIsEnum.call(b, prop))
|
|
19
|
+
__defNormalProp(a, prop, b[prop]);
|
|
20
|
+
}
|
|
21
|
+
return a;
|
|
22
|
+
};
|
|
23
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
24
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
25
|
+
var __objRest = (source, exclude) => {
|
|
26
|
+
var target = {};
|
|
27
|
+
for (var prop in source)
|
|
28
|
+
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
29
|
+
target[prop] = source[prop];
|
|
30
|
+
if (source != null && __getOwnPropSymbols)
|
|
31
|
+
for (var prop of __getOwnPropSymbols(source)) {
|
|
32
|
+
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
33
|
+
target[prop] = source[prop];
|
|
34
|
+
}
|
|
35
|
+
return target;
|
|
36
|
+
};
|
|
37
|
+
var __export = (target, all) => {
|
|
38
|
+
for (var name in all)
|
|
39
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
40
|
+
};
|
|
41
|
+
var __reExport = (target, module2, copyDefault, desc) => {
|
|
42
|
+
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
43
|
+
for (let key of __getOwnPropNames(module2))
|
|
44
|
+
if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
|
|
45
|
+
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
|
46
|
+
}
|
|
47
|
+
return target;
|
|
48
|
+
};
|
|
49
|
+
var __toESM = (module2, isNodeMode) => {
|
|
50
|
+
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
|
|
51
|
+
};
|
|
52
|
+
var __toCommonJS = /* @__PURE__ */ ((cache) => {
|
|
53
|
+
return (module2, temp) => {
|
|
54
|
+
return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
|
|
55
|
+
};
|
|
56
|
+
})(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
|
|
57
|
+
var ShuttleRenderer_exports = {};
|
|
58
|
+
__export(ShuttleRenderer_exports, {
|
|
59
|
+
ShuttleRenderer: () => ShuttleRenderer,
|
|
60
|
+
default: () => ShuttleRenderer_default
|
|
61
|
+
});
|
|
62
|
+
var React = __toESM(require("react"));
|
|
63
|
+
var import_react = __toESM(require("react"));
|
|
64
|
+
var import_ShuttleSource = require("./components/ShuttleSource");
|
|
65
|
+
var import_ShuttleTarget = require("./components/ShuttleTarget");
|
|
66
|
+
var import_classedComponents = require("./classedComponents");
|
|
67
|
+
var import_AnimationState = require("./AnimationState");
|
|
68
|
+
const noop = () => {
|
|
69
|
+
};
|
|
70
|
+
function ShuttleRenderer(_a) {
|
|
71
|
+
var _b = _a, {
|
|
72
|
+
containerProps,
|
|
73
|
+
onNavigateOnTargetTo = noop,
|
|
74
|
+
onNavigateOnSourceTo = noop,
|
|
75
|
+
onMoveItemToSource = noop,
|
|
76
|
+
onMoveItemToTarget = noop,
|
|
77
|
+
onClearMovedItems = noop,
|
|
78
|
+
onMoveCheckedItems = noop,
|
|
79
|
+
onClearCheckedItems = noop,
|
|
80
|
+
onToggleSearch = noop,
|
|
81
|
+
onSearch = noop,
|
|
82
|
+
onSearchClose = noop,
|
|
83
|
+
onSearchOpen = noop,
|
|
84
|
+
searching = false,
|
|
85
|
+
onCheckItem = noop,
|
|
86
|
+
hierarchy = [],
|
|
87
|
+
hierarchyDest = [],
|
|
88
|
+
checkedItems = [],
|
|
89
|
+
sourceItems = [],
|
|
90
|
+
targetItems = [],
|
|
91
|
+
sourceEmptyMessage,
|
|
92
|
+
targetEmptyMessage,
|
|
93
|
+
composeTargetItemProps,
|
|
94
|
+
composeSourceItemProps,
|
|
95
|
+
targetSortable,
|
|
96
|
+
sourceSortable,
|
|
97
|
+
onSourceSortEnd,
|
|
98
|
+
onTargetSortEnd,
|
|
99
|
+
loadingSource = false,
|
|
100
|
+
loadingTarget = false,
|
|
101
|
+
onGetMoreItems = () => {
|
|
102
|
+
},
|
|
103
|
+
moreItemsLoading = false,
|
|
104
|
+
hasNextPage = false
|
|
105
|
+
} = _b, otherProps = __objRest(_b, [
|
|
106
|
+
"containerProps",
|
|
107
|
+
"onNavigateOnTargetTo",
|
|
108
|
+
"onNavigateOnSourceTo",
|
|
109
|
+
"onMoveItemToSource",
|
|
110
|
+
"onMoveItemToTarget",
|
|
111
|
+
"onClearMovedItems",
|
|
112
|
+
"onMoveCheckedItems",
|
|
113
|
+
"onClearCheckedItems",
|
|
114
|
+
"onToggleSearch",
|
|
115
|
+
"onSearch",
|
|
116
|
+
"onSearchClose",
|
|
117
|
+
"onSearchOpen",
|
|
118
|
+
"searching",
|
|
119
|
+
"onCheckItem",
|
|
120
|
+
"hierarchy",
|
|
121
|
+
"hierarchyDest",
|
|
122
|
+
"checkedItems",
|
|
123
|
+
"sourceItems",
|
|
124
|
+
"targetItems",
|
|
125
|
+
"sourceEmptyMessage",
|
|
126
|
+
"targetEmptyMessage",
|
|
127
|
+
"composeTargetItemProps",
|
|
128
|
+
"composeSourceItemProps",
|
|
129
|
+
"targetSortable",
|
|
130
|
+
"sourceSortable",
|
|
131
|
+
"onSourceSortEnd",
|
|
132
|
+
"onTargetSortEnd",
|
|
133
|
+
"loadingSource",
|
|
134
|
+
"loadingTarget",
|
|
135
|
+
"onGetMoreItems",
|
|
136
|
+
"moreItemsLoading",
|
|
137
|
+
"hasNextPage"
|
|
138
|
+
]);
|
|
139
|
+
const { setIsMoving, setIsDrillingDown, setIsMovingBack, reset } = (0, import_react.useContext)(import_AnimationState.AnimationState.Context);
|
|
140
|
+
const removeAnimationState = (0, import_react.useCallback)(() => setTimeout(() => reset(), 500));
|
|
141
|
+
return /* @__PURE__ */ import_react.default.createElement(import_classedComponents.ShuttleContainer, __spreadValues({
|
|
142
|
+
"data-testid": "em-ds-shuttle"
|
|
143
|
+
}, containerProps), /* @__PURE__ */ import_react.default.createElement(import_ShuttleSource.ShuttleSource, __spreadProps(__spreadValues({}, otherProps), {
|
|
144
|
+
checkedItems,
|
|
145
|
+
composeSourceItemProps,
|
|
146
|
+
emptyMessage: sourceEmptyMessage,
|
|
147
|
+
hierarchy,
|
|
148
|
+
items: sourceItems,
|
|
149
|
+
onCheckItem,
|
|
150
|
+
onClearCheckedItems,
|
|
151
|
+
onMoveCheckedItems: (item) => {
|
|
152
|
+
setIsMoving(true);
|
|
153
|
+
onMoveCheckedItems(item);
|
|
154
|
+
},
|
|
155
|
+
onMoveItem: (item) => {
|
|
156
|
+
setIsMoving(true);
|
|
157
|
+
onMoveItemToTarget(item);
|
|
158
|
+
removeAnimationState();
|
|
159
|
+
},
|
|
160
|
+
onNavigateTo: (item, direction = "down") => {
|
|
161
|
+
const indexInHierarchy = hierarchy.findIndex((hItem) => hItem.id === item.id);
|
|
162
|
+
setIsDrillingDown(indexInHierarchy === -1);
|
|
163
|
+
onNavigateOnSourceTo(item, direction);
|
|
164
|
+
},
|
|
165
|
+
onSearch,
|
|
166
|
+
onSearchClose,
|
|
167
|
+
onSearchOpen,
|
|
168
|
+
onSortEnd: onSourceSortEnd,
|
|
169
|
+
onToggleSearch,
|
|
170
|
+
searching,
|
|
171
|
+
sourceSortable,
|
|
172
|
+
loading: loadingSource,
|
|
173
|
+
onGetMoreItems,
|
|
174
|
+
moreItemsLoading,
|
|
175
|
+
hasNextPage
|
|
176
|
+
})), /* @__PURE__ */ import_react.default.createElement(import_ShuttleTarget.ShuttleTarget, __spreadProps(__spreadValues({}, otherProps), {
|
|
177
|
+
composeTargetItemProps,
|
|
178
|
+
emptyMessage: targetEmptyMessage,
|
|
179
|
+
hierarchy: hierarchyDest,
|
|
180
|
+
items: targetItems,
|
|
181
|
+
onClearMovedItems: () => {
|
|
182
|
+
setIsMovingBack(true);
|
|
183
|
+
removeAnimationState();
|
|
184
|
+
onClearMovedItems();
|
|
185
|
+
},
|
|
186
|
+
onMoveItem: (item) => {
|
|
187
|
+
setIsMovingBack(true);
|
|
188
|
+
removeAnimationState();
|
|
189
|
+
onMoveItemToSource(item);
|
|
190
|
+
},
|
|
191
|
+
onNavigateTo: (item, direction = "down") => {
|
|
192
|
+
const indexInHierarchy = hierarchyDest.findIndex((hItem) => hItem.id === item.id);
|
|
193
|
+
setIsDrillingDown(indexInHierarchy === -1);
|
|
194
|
+
onNavigateOnTargetTo(item, direction);
|
|
195
|
+
},
|
|
196
|
+
onSortEnd: onTargetSortEnd,
|
|
197
|
+
targetSortable,
|
|
198
|
+
loading: loadingTarget
|
|
199
|
+
})));
|
|
200
|
+
}
|
|
201
|
+
var ShuttleRenderer_default = ShuttleRenderer;
|
|
202
|
+
module.exports = __toCommonJS(ShuttleRenderer_exports);
|
|
203
|
+
//# sourceMappingURL=ShuttleRenderer.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/ShuttleRenderer.tsx", "../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
+
"sourcesContent": ["/* eslint-disable react/prop-types */\n/* eslint-disable max-lines */\nimport React, { useCallback, useContext } from 'react';\nimport { ShuttleSource } from './components/ShuttleSource';\nimport { ShuttleTarget } from './components/ShuttleTarget';\nimport { ShuttleContainer } from './classedComponents';\nimport { AnimationState } from './AnimationState';\n\n// todo: clean methods on jsx\nconst noop = () => {};\nfunction ShuttleRenderer({\n containerProps,\n onNavigateOnTargetTo = noop,\n onNavigateOnSourceTo = noop,\n onMoveItemToSource = noop,\n onMoveItemToTarget = noop,\n onClearMovedItems = noop,\n onMoveCheckedItems = noop,\n onClearCheckedItems = noop,\n onToggleSearch = noop,\n onSearch = noop,\n onSearchClose = noop,\n onSearchOpen = noop,\n searching = false,\n onCheckItem = noop,\n hierarchy = [],\n hierarchyDest = [],\n checkedItems = [],\n sourceItems = [],\n targetItems = [],\n sourceEmptyMessage,\n targetEmptyMessage,\n composeTargetItemProps,\n composeSourceItemProps,\n targetSortable,\n sourceSortable,\n onSourceSortEnd,\n onTargetSortEnd,\n loadingSource = false,\n loadingTarget = false,\n onGetMoreItems = () => {},\n moreItemsLoading = false,\n hasNextPage = false,\n ...otherProps\n}) {\n const { setIsMoving, setIsDrillingDown, setIsMovingBack, reset } = useContext(\n AnimationState.Context,\n );\n\n const removeAnimationState = useCallback(() =>\n setTimeout(() => reset(), 500),\n );\n\n return (\n <ShuttleContainer data-testid=\"em-ds-shuttle\" {...containerProps}>\n <ShuttleSource\n {...otherProps}\n checkedItems={checkedItems}\n composeSourceItemProps={composeSourceItemProps}\n emptyMessage={sourceEmptyMessage}\n hierarchy={hierarchy}\n items={sourceItems}\n onCheckItem={onCheckItem}\n onClearCheckedItems={onClearCheckedItems}\n onMoveCheckedItems={(item) => {\n setIsMoving(true);\n onMoveCheckedItems(item);\n }}\n onMoveItem={(item) => {\n setIsMoving(true);\n onMoveItemToTarget(item);\n removeAnimationState();\n }}\n onNavigateTo={(item, direction = 'down') => {\n const indexInHierarchy = hierarchy.findIndex(\n (hItem) => hItem.id === item.id,\n );\n setIsDrillingDown(indexInHierarchy === -1);\n onNavigateOnSourceTo(item, direction);\n }}\n onSearch={onSearch}\n onSearchClose={onSearchClose}\n onSearchOpen={onSearchOpen}\n onSortEnd={onSourceSortEnd}\n onToggleSearch={onToggleSearch}\n searching={searching}\n sourceSortable={sourceSortable}\n loading={loadingSource}\n onGetMoreItems={onGetMoreItems}\n moreItemsLoading={moreItemsLoading}\n hasNextPage={hasNextPage}\n />\n <ShuttleTarget\n {...otherProps}\n composeTargetItemProps={composeTargetItemProps}\n emptyMessage={targetEmptyMessage}\n hierarchy={hierarchyDest}\n items={targetItems}\n onClearMovedItems={() => {\n setIsMovingBack(true);\n removeAnimationState();\n onClearMovedItems();\n }}\n onMoveItem={(item) => {\n setIsMovingBack(true);\n removeAnimationState();\n onMoveItemToSource(item);\n }}\n onNavigateTo={(item, direction = 'down') => {\n const indexInHierarchy = hierarchyDest.findIndex(\n (hItem) => hItem.id === item.id,\n );\n setIsDrillingDown(indexInHierarchy === -1);\n onNavigateOnTargetTo(item, direction);\n }}\n onSortEnd={onTargetSortEnd}\n targetSortable={targetSortable}\n loading={loadingTarget}\n />\n </ShuttleContainer>\n );\n}\n\nexport { ShuttleRenderer };\nexport default ShuttleRenderer;\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __reExport = (target, module2, copyDefault, desc) => {
|
|
13
|
+
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(module2))
|
|
15
|
+
if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
|
|
16
|
+
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return target;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (module2, isNodeMode) => {
|
|
21
|
+
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
|
|
22
|
+
};
|
|
23
|
+
var __toCommonJS = /* @__PURE__ */ ((cache) => {
|
|
24
|
+
return (module2, temp) => {
|
|
25
|
+
return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
|
|
26
|
+
};
|
|
27
|
+
})(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
|
|
28
|
+
var ShuttleState_exports = {};
|
|
29
|
+
__export(ShuttleState_exports, {
|
|
30
|
+
ShuttleState: () => useShuttleStateHOC,
|
|
31
|
+
default: () => ShuttleState_default
|
|
32
|
+
});
|
|
33
|
+
var React = __toESM(require("react"));
|
|
34
|
+
var import_react = require("react");
|
|
35
|
+
var import_constate = __toESM(require("constate"));
|
|
36
|
+
var import_helper = require("./helper");
|
|
37
|
+
var actions = __toESM(require("./Shuttle.actions"));
|
|
38
|
+
function useShuttleState() {
|
|
39
|
+
const [shuttleState, setShuttleState] = (0, import_react.useState)({
|
|
40
|
+
checkedItems: [],
|
|
41
|
+
movedItems: {},
|
|
42
|
+
hierarchy: [{ name: "Category", id: null }],
|
|
43
|
+
hierarchyDest: [{ name: "Added users", id: null }]
|
|
44
|
+
});
|
|
45
|
+
const setState = (state) => setShuttleState(state(shuttleState));
|
|
46
|
+
function setMovedItems(itemsIds = [], items = []) {
|
|
47
|
+
const itemsToMove = (0, import_helper.getItemsById)(itemsIds, items);
|
|
48
|
+
const pipeActions = itemsToMove.map((item) => actions.moveItem(item, true));
|
|
49
|
+
setState((0, import_helper.pipe)([actions.resetMovedItems(), ...pipeActions]));
|
|
50
|
+
}
|
|
51
|
+
function navigate(item, dest) {
|
|
52
|
+
setState((0, import_helper.pipe)([actions.navigateTo(item, dest), actions.resetCheckedItems()]));
|
|
53
|
+
}
|
|
54
|
+
function resetCheckedItems() {
|
|
55
|
+
setState(actions.resetCheckedItems());
|
|
56
|
+
}
|
|
57
|
+
function resetMovedItems() {
|
|
58
|
+
setState((0, import_helper.pipe)([actions.navigateTo({ id: null }, true), actions.resetMovedItems()]));
|
|
59
|
+
}
|
|
60
|
+
function moveItem(item, dest) {
|
|
61
|
+
setState((0, import_helper.pipe)([actions.moveItem(item, dest), actions.resetCheckedItems()]));
|
|
62
|
+
}
|
|
63
|
+
function toggleItemSelection(item) {
|
|
64
|
+
setState(actions.toggleItemSelection(item.id));
|
|
65
|
+
}
|
|
66
|
+
function moveCheckedItems(items, dest = true) {
|
|
67
|
+
const pipeActions = items.map((item) => moveItem(item, dest));
|
|
68
|
+
setState((0, import_helper.pipe)([...pipeActions, resetCheckedItems()]));
|
|
69
|
+
}
|
|
70
|
+
return {
|
|
71
|
+
state: shuttleState,
|
|
72
|
+
toggleItemSelection,
|
|
73
|
+
moveCheckedItems,
|
|
74
|
+
moveItem,
|
|
75
|
+
resetMovedItems,
|
|
76
|
+
resetCheckedItems,
|
|
77
|
+
navigate,
|
|
78
|
+
setMovedItems
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
const useShuttleStateHOC = (0, import_constate.default)(useShuttleState, (value) => [value.state]);
|
|
82
|
+
var ShuttleState_default = useShuttleStateHOC;
|
|
83
|
+
module.exports = __toCommonJS(ShuttleState_exports);
|
|
84
|
+
//# sourceMappingURL=ShuttleState.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/ShuttleState.tsx", "../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
+
"sourcesContent": ["import { useState } from 'react';\nimport createContainer from 'constate';\nimport { getItemsById, pipe } from './helper';\nimport * as actions from './Shuttle.actions';\n\nfunction useShuttleState() {\n const [shuttleState, setShuttleState] = useState({\n checkedItems: [],\n movedItems: {},\n hierarchy: [{ name: 'Category', id: null }],\n hierarchyDest: [{ name: 'Added users', id: null }],\n });\n\n const setState = state => setShuttleState(state(shuttleState));\n\n function setMovedItems(itemsIds = [], items = []) {\n const itemsToMove = getItemsById(itemsIds, items);\n const pipeActions = itemsToMove.map(item => actions.moveItem(item, true));\n setState(pipe([actions.resetMovedItems(), ...pipeActions]));\n }\n\n function navigate(item, dest) {\n setState(\n pipe([actions.navigateTo(item, dest), actions.resetCheckedItems()]),\n );\n }\n\n function resetCheckedItems() {\n setState(actions.resetCheckedItems());\n }\n\n function resetMovedItems() {\n setState(\n pipe([actions.navigateTo({ id: null }, true), actions.resetMovedItems()]),\n );\n }\n\n function moveItem(item, dest) {\n setState(pipe([actions.moveItem(item, dest), actions.resetCheckedItems()]));\n }\n\n function toggleItemSelection(item) {\n setState(actions.toggleItemSelection(item.id));\n }\n\n function moveCheckedItems(items, dest = true) {\n const pipeActions = items.map(item => moveItem(item, dest));\n setState(pipe([...pipeActions, resetCheckedItems()]));\n }\n\n return {\n state: shuttleState,\n toggleItemSelection,\n moveCheckedItems,\n moveItem,\n resetMovedItems,\n resetCheckedItems,\n navigate,\n setMovedItems,\n };\n}\n\nconst useShuttleStateHOC = createContainer(useShuttleState, value => [value.state]);\nexport { useShuttleStateHOC as ShuttleState };\nexport default useShuttleStateHOC;\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAyB;AACzB,sBAA4B;AAC5B,oBAAmC;AACnC,cAAyB;AAEzB,2BAA2B;AACzB,QAAM,CAAC,cAAc,mBAAmB,2BAAS;AAAA,IAC/C,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,WAAW,CAAC,EAAE,MAAM,YAAY,IAAI;AAAA,IACpC,eAAe,CAAC,EAAE,MAAM,eAAe,IAAI;AAAA;AAG7C,QAAM,WAAW,WAAS,gBAAgB,MAAM;AAEhD,yBAAuB,WAAW,IAAI,QAAQ,IAAI;AAChD,UAAM,cAAc,gCAAa,UAAU;AAC3C,UAAM,cAAc,YAAY,IAAI,UAAQ,QAAQ,SAAS,MAAM;AACnE,aAAS,wBAAK,CAAC,QAAQ,mBAAmB,GAAG;AAAA;AAG/C,oBAAkB,MAAM,MAAM;AAC5B,aACE,wBAAK,CAAC,QAAQ,WAAW,MAAM,OAAO,QAAQ;AAAA;AAIlD,+BAA6B;AAC3B,aAAS,QAAQ;AAAA;AAGnB,6BAA2B;AACzB,aACE,wBAAK,CAAC,QAAQ,WAAW,EAAE,IAAI,QAAQ,OAAO,QAAQ;AAAA;AAI1D,oBAAkB,MAAM,MAAM;AAC5B,aAAS,wBAAK,CAAC,QAAQ,SAAS,MAAM,OAAO,QAAQ;AAAA;AAGvD,+BAA6B,MAAM;AACjC,aAAS,QAAQ,oBAAoB,KAAK;AAAA;AAG5C,4BAA0B,OAAO,OAAO,MAAM;AAC5C,UAAM,cAAc,MAAM,IAAI,UAAQ,SAAS,MAAM;AACrD,aAAS,wBAAK,CAAC,GAAG,aAAa;AAAA;AAGjC,SAAO;AAAA,IACL,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA;AAIJ,MAAM,qBAAqB,6BAAgB,iBAAiB,WAAS,CAAC,MAAM;AAE5E,IAAO,uBAAQ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|