@elliemae/ds-shuttle 2.2.0-alpha.4 → 3.0.0-next.2
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/cjs/AnimationState.js +19 -46
- package/cjs/DSShuttle.js +219 -166
- package/cjs/SearchState.js +25 -44
- package/cjs/Shuttle.actions.js +98 -87
- package/cjs/ShuttleContainer.js +61 -56
- package/cjs/ShuttleImpl.js +206 -109
- package/cjs/ShuttleRenderer.js +135 -140
- package/cjs/ShuttleState.js +53 -57
- package/cjs/animation/animationConfig.js +56 -53
- package/cjs/classedComponents.js +69 -70
- package/cjs/components/LoadingIndicator.js +22 -49
- package/cjs/components/OverflowList.js +48 -50
- package/cjs/components/ShuttleBreadcrumb.js +40 -52
- package/cjs/components/ShuttleInfiniteScrollIndicator.js +37 -46
- package/cjs/components/ShuttleListItem/ActionButtons.js +51 -56
- package/cjs/components/ShuttleListItem/ShuttleListItem.js +80 -78
- package/cjs/components/ShuttleListItem/ShuttleSourceListItem.js +64 -78
- package/cjs/components/ShuttleListItem/ShuttleTargetListItem.js +56 -72
- package/cjs/components/ShuttleListPanel.js +26 -44
- package/cjs/components/ShuttleSearchBox.js +72 -61
- package/cjs/components/ShuttleSource.js +146 -150
- package/cjs/components/ShuttleTarget.js +100 -88
- package/cjs/components/VirtualizedItem.js +40 -45
- package/cjs/components/VirtualizedList.js +86 -81
- package/cjs/components/VirtualizedSortableList.js +40 -47
- package/cjs/helper.js +103 -69
- package/cjs/index.js +12 -38
- package/cjs/updateShuttleStateFromProps.js +69 -73
- package/cjs/utils.js +42 -40
- package/cjs/withProviders.js +27 -43
- package/esm/AnimationState.js +8 -12
- package/esm/DSShuttle.js +198 -126
- package/esm/SearchState.js +19 -15
- package/esm/Shuttle.actions.js +80 -63
- package/esm/ShuttleContainer.js +50 -34
- package/esm/ShuttleImpl.js +183 -78
- package/esm/ShuttleRenderer.js +128 -111
- package/esm/ShuttleState.js +53 -34
- package/esm/animation/animationConfig.js +52 -24
- package/esm/classedComponents.js +51 -43
- package/esm/components/LoadingIndicator.js +15 -20
- package/esm/components/OverflowList.js +41 -21
- package/esm/components/ShuttleBreadcrumb.js +33 -23
- package/esm/components/ShuttleInfiniteScrollIndicator.js +31 -18
- package/esm/components/ShuttleListItem/ActionButtons.js +39 -27
- package/esm/components/ShuttleListItem/ShuttleListItem.js +72 -50
- package/esm/components/ShuttleListItem/ShuttleSourceListItem.js +52 -45
- package/esm/components/ShuttleListItem/ShuttleTargetListItem.js +47 -42
- package/esm/components/ShuttleListPanel.js +19 -15
- package/esm/components/ShuttleSearchBox.js +66 -32
- package/esm/components/ShuttleSource.js +129 -125
- package/esm/components/ShuttleTarget.js +89 -68
- package/esm/components/VirtualizedItem.js +33 -15
- package/esm/components/VirtualizedList.js +75 -50
- package/esm/components/VirtualizedSortableList.js +32 -17
- package/esm/helper.js +67 -43
- package/esm/index.js +2 -9
- package/esm/updateShuttleStateFromProps.js +58 -39
- package/esm/utils.js +18 -12
- package/esm/withProviders.js +20 -14
- package/package.json +11 -11
- package/types/AnimationState.d.ts +2 -3
- package/types/DSShuttle.d.ts +1 -1
- package/types/SearchState.d.ts +2 -3
- package/types/ShuttleImpl.d.ts +2 -3
- package/types/ShuttleRenderer.d.ts +0 -1
- package/types/ShuttleState.d.ts +2 -3
- package/types/components/LoadingIndicator.d.ts +0 -1
- package/types/components/OverflowList.d.ts +0 -1
- package/types/components/ShuttleBreadcrumb.d.ts +0 -1
- package/types/components/ShuttleInfiniteScrollIndicator.d.ts +0 -1
- package/types/components/ShuttleListItem/ShuttleListItem.d.ts +0 -1
- package/types/components/ShuttleListItem/ShuttleSourceListItem.d.ts +0 -1
- package/types/components/ShuttleListItem/ShuttleTargetListItem.d.ts +0 -1
- package/types/components/ShuttleListPanel.d.ts +0 -1
- package/types/components/ShuttleSearchBox.d.ts +1 -3
- package/types/components/ShuttleSource.d.ts +0 -1
- package/types/components/ShuttleTarget.d.ts +0 -1
- package/types/components/VirtualizedItem.d.ts +0 -1
- package/types/components/VirtualizedList.d.ts +0 -1
- package/types/components/VirtualizedSortableList.d.ts +0 -1
- package/types/index.d.ts +1 -1
- package/types/updateShuttleStateFromProps.d.ts +1 -3
- package/types/withProviders.d.ts +0 -1
- package/cjs/AnimationState.js.map +0 -7
- package/cjs/DSShuttle.js.map +0 -7
- package/cjs/SearchState.js.map +0 -7
- package/cjs/Shuttle.actions.js.map +0 -7
- package/cjs/ShuttleContainer.js.map +0 -7
- package/cjs/ShuttleImpl.js.map +0 -7
- package/cjs/ShuttleRenderer.js.map +0 -7
- package/cjs/ShuttleState.js.map +0 -7
- package/cjs/animation/animationConfig.js.map +0 -7
- package/cjs/classedComponents.js.map +0 -7
- package/cjs/components/LoadingIndicator.js.map +0 -7
- package/cjs/components/OverflowList.js.map +0 -7
- package/cjs/components/ShuttleBreadcrumb.js.map +0 -7
- package/cjs/components/ShuttleInfiniteScrollIndicator.js.map +0 -7
- package/cjs/components/ShuttleListItem/ActionButtons.js.map +0 -7
- package/cjs/components/ShuttleListItem/ShuttleListItem.js.map +0 -7
- package/cjs/components/ShuttleListItem/ShuttleSourceListItem.js.map +0 -7
- package/cjs/components/ShuttleListItem/ShuttleTargetListItem.js.map +0 -7
- package/cjs/components/ShuttleListPanel.js.map +0 -7
- package/cjs/components/ShuttleSearchBox.js.map +0 -7
- package/cjs/components/ShuttleSource.js.map +0 -7
- package/cjs/components/ShuttleTarget.js.map +0 -7
- package/cjs/components/VirtualizedItem.js.map +0 -7
- package/cjs/components/VirtualizedList.js.map +0 -7
- package/cjs/components/VirtualizedSortableList.js.map +0 -7
- package/cjs/helper.js.map +0 -7
- package/cjs/index.js.map +0 -7
- package/cjs/tests/utils.js +0 -1218
- package/cjs/tests/utils.js.map +0 -7
- package/cjs/updateShuttleStateFromProps.js.map +0 -7
- package/cjs/utils.js.map +0 -7
- package/cjs/withProviders.js.map +0 -7
- package/esm/AnimationState.js.map +0 -7
- package/esm/DSShuttle.js.map +0 -7
- package/esm/SearchState.js.map +0 -7
- package/esm/Shuttle.actions.js.map +0 -7
- package/esm/ShuttleContainer.js.map +0 -7
- package/esm/ShuttleImpl.js.map +0 -7
- package/esm/ShuttleRenderer.js.map +0 -7
- package/esm/ShuttleState.js.map +0 -7
- package/esm/animation/animationConfig.js.map +0 -7
- package/esm/classedComponents.js.map +0 -7
- package/esm/components/LoadingIndicator.js.map +0 -7
- package/esm/components/OverflowList.js.map +0 -7
- package/esm/components/ShuttleBreadcrumb.js.map +0 -7
- package/esm/components/ShuttleInfiniteScrollIndicator.js.map +0 -7
- package/esm/components/ShuttleListItem/ActionButtons.js.map +0 -7
- package/esm/components/ShuttleListItem/ShuttleListItem.js.map +0 -7
- package/esm/components/ShuttleListItem/ShuttleSourceListItem.js.map +0 -7
- package/esm/components/ShuttleListItem/ShuttleTargetListItem.js.map +0 -7
- package/esm/components/ShuttleListPanel.js.map +0 -7
- package/esm/components/ShuttleSearchBox.js.map +0 -7
- package/esm/components/ShuttleSource.js.map +0 -7
- package/esm/components/ShuttleTarget.js.map +0 -7
- package/esm/components/VirtualizedItem.js.map +0 -7
- package/esm/components/VirtualizedList.js.map +0 -7
- package/esm/components/VirtualizedSortableList.js.map +0 -7
- package/esm/helper.js.map +0 -7
- package/esm/index.js.map +0 -7
- package/esm/tests/utils.js +0 -1189
- package/esm/tests/utils.js.map +0 -7
- package/esm/updateShuttleStateFromProps.js.map +0 -7
- package/esm/utils.js.map +0 -7
- package/esm/withProviders.js.map +0 -7
package/cjs/Shuttle.actions.js
CHANGED
|
@@ -1,126 +1,137 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
var
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
var
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
var
|
|
21
|
-
|
|
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 Shuttle_actions_exports = {};
|
|
29
|
-
__export(Shuttle_actions_exports, {
|
|
30
|
-
addToTarget: () => addToTarget,
|
|
31
|
-
moveItem: () => moveItem,
|
|
32
|
-
navigateTo: () => navigateTo,
|
|
33
|
-
removeFromTarget: () => removeFromTarget,
|
|
34
|
-
resetCheckedItems: () => resetCheckedItems,
|
|
35
|
-
resetMovedItems: () => resetMovedItems,
|
|
36
|
-
toggleItemSelection: () => toggleItemSelection
|
|
37
|
-
});
|
|
38
|
-
var React = __toESM(require("react"));
|
|
39
|
-
var import_ds_utilities = require("@elliemae/ds-utilities");
|
|
40
|
-
var import_helper = require("./helper");
|
|
41
|
-
var import_utils = __toESM(require("./utils"));
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
6
|
+
require('core-js/modules/web.dom-collections.iterator.js');
|
|
7
|
+
require('core-js/modules/esnext.async-iterator.filter.js');
|
|
8
|
+
require('core-js/modules/esnext.iterator.constructor.js');
|
|
9
|
+
require('core-js/modules/esnext.iterator.filter.js');
|
|
10
|
+
require('core-js/modules/esnext.async-iterator.for-each.js');
|
|
11
|
+
require('core-js/modules/esnext.iterator.for-each.js');
|
|
12
|
+
var dsUtilities = require('@elliemae/ds-utilities');
|
|
13
|
+
var helper = require('./helper.js');
|
|
14
|
+
var utils = require('./utils.js');
|
|
15
|
+
|
|
16
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
17
|
+
|
|
18
|
+
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
|
|
19
|
+
|
|
20
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
21
|
+
|
|
22
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
42
23
|
function toggleItemSelection(itemId) {
|
|
43
|
-
return
|
|
44
|
-
|
|
45
|
-
checkedItems: (0, import_ds_utilities.addOrRemove)(state.checkedItems, itemId)
|
|
24
|
+
return state => _objectSpread(_objectSpread({}, state), {}, {
|
|
25
|
+
checkedItems: dsUtilities.addOrRemove(state.checkedItems, itemId)
|
|
46
26
|
});
|
|
47
27
|
}
|
|
48
28
|
function navigateTo(item, dest) {
|
|
49
|
-
const hierarchyType =
|
|
50
|
-
return
|
|
51
|
-
const indexInHierarchy = state[hierarchyType].findIndex(
|
|
29
|
+
const hierarchyType = helper.getHierarchyTypeName(dest);
|
|
30
|
+
return state => {
|
|
31
|
+
const indexInHierarchy = state[hierarchyType].findIndex(hItem => hItem.id === item.id);
|
|
52
32
|
const hierarchy = state[hierarchyType];
|
|
53
|
-
return {
|
|
54
|
-
...state,
|
|
33
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
55
34
|
[hierarchyType]: indexInHierarchy !== -1 ? hierarchy.slice(0, indexInHierarchy + 1) : [...hierarchy, item]
|
|
56
|
-
};
|
|
35
|
+
});
|
|
57
36
|
};
|
|
58
37
|
}
|
|
59
38
|
function moveItem(item) {
|
|
60
|
-
return
|
|
61
|
-
const movedItems =
|
|
62
|
-
return {
|
|
63
|
-
...state,
|
|
39
|
+
return state => {
|
|
40
|
+
const movedItems = helper.toggleInObject(state.movedItems, item.id, item);
|
|
41
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
64
42
|
movedItems
|
|
65
|
-
};
|
|
43
|
+
});
|
|
66
44
|
};
|
|
67
45
|
}
|
|
68
46
|
const defaultOptions = {
|
|
69
|
-
parentField:
|
|
70
|
-
idField:
|
|
71
|
-
op:
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
47
|
+
parentField: 'parent',
|
|
48
|
+
idField: 'id',
|
|
49
|
+
op: hasMoved => !hasMoved
|
|
50
|
+
}; // todo: optimize this
|
|
51
|
+
|
|
52
|
+
function getItemDeep(_ref) {
|
|
53
|
+
let {
|
|
54
|
+
collection,
|
|
55
|
+
id,
|
|
56
|
+
options
|
|
57
|
+
} = _ref;
|
|
58
|
+
|
|
59
|
+
const {
|
|
60
|
+
idField
|
|
61
|
+
} = _objectSpread(_objectSpread({}, defaultOptions), options);
|
|
62
|
+
|
|
63
|
+
const itemIndex = collection.findIndex(fItem => fItem[idField] === id); // get item with nested children
|
|
64
|
+
|
|
76
65
|
const item = collection[itemIndex];
|
|
77
|
-
const children = item
|
|
78
|
-
|
|
66
|
+
const children = item !== null && item !== void 0 && item.hasChildren ? dsUtilities.compose(utils.getChildren({
|
|
67
|
+
index: itemIndex
|
|
68
|
+
}))(collection) || [] : [];
|
|
69
|
+
return {
|
|
70
|
+
item,
|
|
71
|
+
children
|
|
72
|
+
};
|
|
79
73
|
}
|
|
74
|
+
|
|
80
75
|
function addToTarget(itemToAdd, collection) {
|
|
81
|
-
return (state,
|
|
76
|
+
return (state, _ref2) => {
|
|
77
|
+
let {
|
|
78
|
+
idField
|
|
79
|
+
} = _ref2;
|
|
82
80
|
const items = collection || state.preparedItems;
|
|
83
|
-
const {
|
|
81
|
+
const {
|
|
82
|
+
item,
|
|
83
|
+
children
|
|
84
|
+
} = getItemDeep({
|
|
84
85
|
collection: items,
|
|
85
86
|
id: itemToAdd[idField]
|
|
86
87
|
});
|
|
87
|
-
return {
|
|
88
|
-
...state,
|
|
88
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
89
89
|
movedItems: [...state.movedItems, item],
|
|
90
90
|
targetItems: [...state.targetItems, item, ...children]
|
|
91
|
-
};
|
|
91
|
+
});
|
|
92
92
|
};
|
|
93
|
-
}
|
|
93
|
+
} // todo: optimize this
|
|
94
|
+
|
|
94
95
|
function removeFromTarget(itemToRemove) {
|
|
95
|
-
return (state,
|
|
96
|
-
let
|
|
97
|
-
|
|
96
|
+
return (state, _ref3) => {
|
|
97
|
+
let {
|
|
98
|
+
idField
|
|
99
|
+
} = _ref3;
|
|
100
|
+
let targetItems = dsUtilities.cloneDeep(state.targetItems);
|
|
101
|
+
const itemIndex = targetItems.findIndex(fItem => fItem.id === itemToRemove.id);
|
|
98
102
|
const item = targetItems[itemIndex];
|
|
99
|
-
const children = item
|
|
103
|
+
const children = item !== null && item !== void 0 && item.hasChildren ? dsUtilities.compose(helper.filterMovedItems(state.movedItems), utils.getChildren({
|
|
104
|
+
index: itemIndex
|
|
105
|
+
}))(targetItems) || [] : [];
|
|
100
106
|
targetItems.splice(itemIndex, 1);
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
107
|
+
|
|
108
|
+
if (item !== null && item !== void 0 && item.hasChildren && children.length) {
|
|
109
|
+
const childrenHash = dsUtilities.hashArray(children, 'id');
|
|
110
|
+
targetItems = targetItems.filter(i => !childrenHash[i.id]);
|
|
104
111
|
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
movedItems: state.movedItems.filter(
|
|
112
|
+
|
|
113
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
114
|
+
movedItems: state.movedItems.filter(mItem => mItem[idField] !== itemToRemove[idField]),
|
|
108
115
|
targetItems
|
|
109
|
-
};
|
|
116
|
+
});
|
|
110
117
|
};
|
|
111
118
|
}
|
|
112
119
|
function resetCheckedItems() {
|
|
113
|
-
return
|
|
114
|
-
...state,
|
|
120
|
+
return state => _objectSpread(_objectSpread({}, state), {}, {
|
|
115
121
|
checkedItems: []
|
|
116
122
|
});
|
|
117
123
|
}
|
|
118
124
|
function resetMovedItems() {
|
|
119
|
-
return
|
|
120
|
-
...state,
|
|
125
|
+
return state => _objectSpread(_objectSpread({}, state), {}, {
|
|
121
126
|
movedItems: [],
|
|
122
127
|
targetItems: []
|
|
123
128
|
});
|
|
124
129
|
}
|
|
125
|
-
|
|
126
|
-
|
|
130
|
+
|
|
131
|
+
exports.addToTarget = addToTarget;
|
|
132
|
+
exports.moveItem = moveItem;
|
|
133
|
+
exports.navigateTo = navigateTo;
|
|
134
|
+
exports.removeFromTarget = removeFromTarget;
|
|
135
|
+
exports.resetCheckedItems = resetCheckedItems;
|
|
136
|
+
exports.resetMovedItems = resetMovedItems;
|
|
137
|
+
exports.toggleItemSelection = toggleItemSelection;
|
package/cjs/ShuttleContainer.js
CHANGED
|
@@ -1,47 +1,50 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
var
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
var
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
var ShuttleContainer_exports = {};
|
|
29
|
-
__export(ShuttleContainer_exports, {
|
|
30
|
-
default: () => ShuttleContainer_default
|
|
31
|
-
});
|
|
32
|
-
var React = __toESM(require("react"));
|
|
33
|
-
var import_react = require("react");
|
|
34
|
-
var import_ds_utilities = require("@elliemae/ds-utilities");
|
|
35
|
-
var import_withProviders = require("./withProviders");
|
|
36
|
-
var import_helper = require("./helper");
|
|
37
|
-
var import_SearchState = require("./SearchState");
|
|
38
|
-
var import_ShuttleState = require("./ShuttleState");
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
4
|
+
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
|
5
|
+
require('core-js/modules/esnext.async-iterator.filter.js');
|
|
6
|
+
require('core-js/modules/esnext.iterator.constructor.js');
|
|
7
|
+
require('core-js/modules/esnext.iterator.filter.js');
|
|
8
|
+
require('core-js/modules/esnext.async-iterator.for-each.js');
|
|
9
|
+
require('core-js/modules/esnext.iterator.for-each.js');
|
|
10
|
+
var react = require('react');
|
|
11
|
+
var dsUtilities = require('@elliemae/ds-utilities');
|
|
12
|
+
var withProviders = require('./withProviders.js');
|
|
13
|
+
var helper = require('./helper.js');
|
|
14
|
+
var SearchState = require('./SearchState.js');
|
|
15
|
+
var ShuttleState = require('./ShuttleState.js');
|
|
16
|
+
|
|
17
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
18
|
+
|
|
19
|
+
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
|
|
20
|
+
var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
|
|
21
|
+
|
|
22
|
+
const _excluded = ["state"];
|
|
23
|
+
|
|
24
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
25
|
+
|
|
26
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
27
|
+
|
|
39
28
|
function filterItemsByTerm(items, term) {
|
|
40
|
-
return items.filter(
|
|
29
|
+
return items.filter(item => item.name.toLowerCase().indexOf(String(term).toLowerCase()) !== -1 || String(item.id).indexOf(String(term).toLowerCase()) !== -1);
|
|
41
30
|
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
31
|
+
|
|
32
|
+
function ShuttleContainer(_ref) {
|
|
33
|
+
let {
|
|
34
|
+
items = [],
|
|
35
|
+
children
|
|
36
|
+
} = _ref;
|
|
37
|
+
|
|
38
|
+
const _useContext = react.useContext(ShuttleState.Context),
|
|
39
|
+
{
|
|
40
|
+
state: shuttleState
|
|
41
|
+
} = _useContext,
|
|
42
|
+
handlers = _objectWithoutProperties__default["default"](_useContext, _excluded);
|
|
43
|
+
|
|
44
|
+
const {
|
|
45
|
+
state: searchState
|
|
46
|
+
} = react.useContext(SearchState.Context);
|
|
47
|
+
|
|
45
48
|
const {
|
|
46
49
|
movedItems,
|
|
47
50
|
hierarchy,
|
|
@@ -55,28 +58,30 @@ function ShuttleContainer({ items = [], children }) {
|
|
|
55
58
|
moveCheckedItems,
|
|
56
59
|
moveItem,
|
|
57
60
|
navigate
|
|
58
|
-
} = {
|
|
59
|
-
|
|
60
|
-
const
|
|
61
|
-
|
|
62
|
-
|
|
61
|
+
} = _objectSpread(_objectSpread(_objectSpread({}, shuttleState), searchState), handlers);
|
|
62
|
+
|
|
63
|
+
const sourceItems = react.useMemo(() => dsUtilities.compose(items => items.filter(item => !movedItems[item.id]), items => searchTerm && searching ? filterItemsByTerm(items, searchTerm) : items, items => helper.filterItemsByHierarchy(items, helper.getActiveIdFromHierarchy(hierarchy).id), items => helper.prepareItems(items))(items), [items, searchTerm, searching, hierarchy, movedItems]);
|
|
64
|
+
const targetItems = react.useMemo(() => {
|
|
65
|
+
const hierarchyId = helper.getActiveIdFromHierarchy(hierarchyDest).id;
|
|
66
|
+
return dsUtilities.compose(items => dsUtilities.sortBy(items, ['name']), items => hierarchyId ? helper.filterItemsByHierarchy(items, hierarchyId).filter(item => !movedItems[item.id]) : dsUtilities.uniqBy(dsUtilities.values(movedItems), 'id'))(items);
|
|
63
67
|
}, [items, searching, hierarchyDest, movedItems]);
|
|
64
|
-
return
|
|
68
|
+
return dsUtilities.isFunction(children) && children({
|
|
65
69
|
checkedItems,
|
|
66
70
|
hierarchy,
|
|
67
71
|
hierarchyDest,
|
|
68
72
|
onCheckItem: toggleItemSelection,
|
|
69
73
|
onClearCheckedItems: resetCheckedItems,
|
|
70
74
|
onClearMovedItems: resetMovedItems,
|
|
71
|
-
onMoveCheckedItems: () => moveCheckedItems(
|
|
72
|
-
onMoveItemToSource:
|
|
73
|
-
onMoveItemToTarget:
|
|
74
|
-
onNavigateOnSourceTo:
|
|
75
|
-
onNavigateOnTargetTo:
|
|
75
|
+
onMoveCheckedItems: () => moveCheckedItems(helper.getItemsById(checkedItems, items)),
|
|
76
|
+
onMoveItemToSource: item => moveItem(item, false),
|
|
77
|
+
onMoveItemToTarget: item => moveItem(item, true),
|
|
78
|
+
onNavigateOnSourceTo: item => navigate(item, false),
|
|
79
|
+
onNavigateOnTargetTo: item => navigate(item, true),
|
|
76
80
|
sourceItems,
|
|
77
81
|
targetItems
|
|
78
82
|
});
|
|
79
83
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
84
|
+
|
|
85
|
+
var ShuttleContainer$1 = withProviders(ShuttleContainer);
|
|
86
|
+
|
|
87
|
+
module.exports = ShuttleContainer$1;
|