@elliemae/ds-shuttle 1.55.0-next.7 → 2.0.0-alpha.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (190) hide show
  1. package/cjs/AnimationState.js +25 -42
  2. package/cjs/DSShuttle.js +89 -189
  3. package/cjs/SearchState.js +9 -22
  4. package/cjs/Shuttle.actions.js +57 -75
  5. package/cjs/ShuttleContainer.js +44 -79
  6. package/cjs/ShuttleImpl.js +236 -342
  7. package/cjs/ShuttleRenderer.js +114 -188
  8. package/cjs/ShuttleState.js +19 -41
  9. package/cjs/animation/animationConfig.js +58 -65
  10. package/cjs/classedComponents.js +37 -49
  11. package/cjs/components/LoadingIndicator.js +11 -12
  12. package/cjs/components/OverflowList.js +27 -34
  13. package/cjs/components/ShuttleBreadcrumb.js +23 -35
  14. package/cjs/components/ShuttleInfiniteScrollIndicator.js +21 -23
  15. package/cjs/components/ShuttleListItem/ActionButtons.js +34 -34
  16. package/cjs/components/ShuttleListItem/ShuttleListItem.js +57 -64
  17. package/cjs/components/ShuttleListItem/ShuttleSourceListItem.js +34 -64
  18. package/cjs/components/ShuttleListItem/ShuttleTargetListItem.js +30 -53
  19. package/cjs/components/ShuttleListPanel.js +11 -24
  20. package/cjs/components/ShuttleSearchBox.js +81 -107
  21. package/cjs/components/ShuttleSource.js +93 -175
  22. package/cjs/components/ShuttleTarget.js +55 -85
  23. package/cjs/components/VirtualizedItem.js +22 -22
  24. package/cjs/components/VirtualizedList.js +56 -66
  25. package/cjs/components/VirtualizedSortableList.js +20 -23
  26. package/cjs/helper.js +37 -89
  27. package/cjs/index.js +1 -64
  28. package/cjs/package.json +7 -0
  29. package/cjs/updateShuttleStateFromProps.js +31 -40
  30. package/cjs/utils.js +4 -9
  31. package/cjs/withProviders.js +10 -16
  32. package/esm/AnimationState.js +24 -40
  33. package/esm/DSShuttle.js +86 -186
  34. package/esm/SearchState.js +8 -20
  35. package/esm/Shuttle.actions.js +56 -73
  36. package/esm/ShuttleContainer.js +42 -77
  37. package/esm/ShuttleImpl.js +240 -337
  38. package/esm/ShuttleRenderer.js +110 -183
  39. package/esm/ShuttleState.js +14 -34
  40. package/esm/animation/animationConfig.js +58 -65
  41. package/esm/classedComponents.js +31 -43
  42. package/esm/components/LoadingIndicator.js +10 -11
  43. package/esm/components/OverflowList.js +23 -30
  44. package/esm/components/ShuttleBreadcrumb.js +21 -33
  45. package/esm/components/ShuttleInfiniteScrollIndicator.js +20 -22
  46. package/esm/components/ShuttleListItem/ActionButtons.js +32 -32
  47. package/esm/components/ShuttleListItem/ShuttleListItem.js +55 -62
  48. package/esm/components/ShuttleListItem/ShuttleSourceListItem.js +30 -59
  49. package/esm/components/ShuttleListItem/ShuttleTargetListItem.js +26 -49
  50. package/esm/components/ShuttleListPanel.js +10 -23
  51. package/esm/components/ShuttleSearchBox.js +79 -99
  52. package/esm/components/ShuttleSource.js +82 -162
  53. package/esm/components/ShuttleTarget.js +49 -79
  54. package/esm/components/VirtualizedItem.js +20 -20
  55. package/esm/components/VirtualizedList.js +52 -62
  56. package/esm/components/VirtualizedSortableList.js +16 -18
  57. package/esm/helper.js +35 -85
  58. package/esm/index.js +0 -63
  59. package/esm/package.json +7 -0
  60. package/esm/updateShuttleStateFromProps.js +30 -38
  61. package/esm/utils.js +1 -4
  62. package/esm/withProviders.js +8 -15
  63. package/package.json +150 -13
  64. package/types/AnimationState.d.ts +26 -0
  65. package/types/DSShuttle.d.ts +119 -0
  66. package/types/SearchState.d.ts +22 -0
  67. package/types/Shuttle.actions.d.ts +11 -0
  68. package/types/ShuttleContainer.d.ts +3 -0
  69. package/types/ShuttleImpl.d.ts +3 -0
  70. package/types/ShuttleRenderer.d.ts +37 -0
  71. package/types/ShuttleState.d.ts +53 -0
  72. package/types/animation/animationConfig.d.ts +68 -0
  73. package/types/classedComponents.d.ts +14 -0
  74. package/types/components/LoadingIndicator.d.ts +3 -0
  75. package/types/components/OverflowList.d.ts +7 -0
  76. package/types/components/ShuttleBreadcrumb.d.ts +7 -0
  77. package/types/components/ShuttleInfiniteScrollIndicator.d.ts +5 -0
  78. package/types/components/ShuttleListItem/ActionButtons.d.ts +4 -0
  79. package/types/components/ShuttleListItem/ShuttleListItem.d.ts +14 -0
  80. package/types/components/ShuttleListItem/ShuttleSourceListItem.d.ts +13 -0
  81. package/types/components/ShuttleListItem/ShuttleTargetListItem.d.ts +13 -0
  82. package/types/components/ShuttleListPanel.d.ts +7 -0
  83. package/types/components/ShuttleSearchBox.d.ts +20 -0
  84. package/types/components/ShuttleSource.d.ts +54 -0
  85. package/types/components/ShuttleTarget.d.ts +16 -0
  86. package/types/components/VirtualizedItem.d.ts +3 -0
  87. package/types/components/VirtualizedList.d.ts +12 -0
  88. package/types/components/VirtualizedSortableList.d.ts +6 -0
  89. package/types/helper.d.ts +16 -0
  90. package/types/index.d.ts +1 -0
  91. package/types/tests/DSShuttle.events.test.d.ts +1 -0
  92. package/types/tests/DSShuttle.test.d.ts +1 -0
  93. package/types/tests/utils.d.ts +116 -0
  94. package/types/updateShuttleStateFromProps.d.ts +1 -0
  95. package/types/utils.d.ts +2 -0
  96. package/types/withProviders.d.ts +3 -0
  97. package/AnimationState/package.json +0 -10
  98. package/DSShuttle/package.json +0 -10
  99. package/SearchState/package.json +0 -10
  100. package/Shuttle.actions/package.json +0 -10
  101. package/ShuttleContainer/package.json +0 -10
  102. package/ShuttleImpl/package.json +0 -10
  103. package/ShuttleRenderer/package.json +0 -10
  104. package/ShuttleState/package.json +0 -10
  105. package/animation/animationConfig/package.json +0 -10
  106. package/cjs/AnimationState.js.map +0 -1
  107. package/cjs/DSShuttle.js.map +0 -1
  108. package/cjs/SearchState.js.map +0 -1
  109. package/cjs/Shuttle.actions.js.map +0 -1
  110. package/cjs/ShuttleContainer.js.map +0 -1
  111. package/cjs/ShuttleImpl.js.map +0 -1
  112. package/cjs/ShuttleRenderer.js.map +0 -1
  113. package/cjs/ShuttleState.js.map +0 -1
  114. package/cjs/animation/animationConfig.js.map +0 -1
  115. package/cjs/classedComponents.js.map +0 -1
  116. package/cjs/components/LoadingIndicator.js.map +0 -1
  117. package/cjs/components/OverflowList.js.map +0 -1
  118. package/cjs/components/ShuttleBreadcrumb.js.map +0 -1
  119. package/cjs/components/ShuttleInfiniteScrollIndicator.js.map +0 -1
  120. package/cjs/components/ShuttleListItem/ActionButtons.js.map +0 -1
  121. package/cjs/components/ShuttleListItem/ShuttleListItem.js.map +0 -1
  122. package/cjs/components/ShuttleListItem/ShuttleSourceListItem.js.map +0 -1
  123. package/cjs/components/ShuttleListItem/ShuttleTargetListItem.js.map +0 -1
  124. package/cjs/components/ShuttleListPanel.js.map +0 -1
  125. package/cjs/components/ShuttleSearchBox.js.map +0 -1
  126. package/cjs/components/ShuttleSource.js.map +0 -1
  127. package/cjs/components/ShuttleTarget.js.map +0 -1
  128. package/cjs/components/VirtualizedItem.js.map +0 -1
  129. package/cjs/components/VirtualizedList.js.map +0 -1
  130. package/cjs/components/VirtualizedSortableList.js.map +0 -1
  131. package/cjs/helper.js.map +0 -1
  132. package/cjs/index.js.map +0 -1
  133. package/cjs/tests/utils.js +0 -1112
  134. package/cjs/tests/utils.js.map +0 -1
  135. package/cjs/updateShuttleStateFromProps.js.map +0 -1
  136. package/cjs/utils.js.map +0 -1
  137. package/cjs/withProviders.js.map +0 -1
  138. package/classedComponents/package.json +0 -10
  139. package/components/LoadingIndicator/package.json +0 -10
  140. package/components/OverflowList/package.json +0 -10
  141. package/components/ShuttleBreadcrumb/package.json +0 -10
  142. package/components/ShuttleInfiniteScrollIndicator/package.json +0 -10
  143. package/components/ShuttleListItem/ActionButtons/package.json +0 -10
  144. package/components/ShuttleListItem/ShuttleListItem/package.json +0 -10
  145. package/components/ShuttleListItem/ShuttleSourceListItem/package.json +0 -10
  146. package/components/ShuttleListItem/ShuttleTargetListItem/package.json +0 -10
  147. package/components/ShuttleListPanel/package.json +0 -10
  148. package/components/ShuttleSearchBox/package.json +0 -10
  149. package/components/ShuttleSource/package.json +0 -10
  150. package/components/ShuttleTarget/package.json +0 -10
  151. package/components/VirtualizedItem/package.json +0 -10
  152. package/components/VirtualizedList/package.json +0 -10
  153. package/components/VirtualizedSortableList/package.json +0 -10
  154. package/esm/AnimationState.js.map +0 -1
  155. package/esm/DSShuttle.js.map +0 -1
  156. package/esm/SearchState.js.map +0 -1
  157. package/esm/Shuttle.actions.js.map +0 -1
  158. package/esm/ShuttleContainer.js.map +0 -1
  159. package/esm/ShuttleImpl.js.map +0 -1
  160. package/esm/ShuttleRenderer.js.map +0 -1
  161. package/esm/ShuttleState.js.map +0 -1
  162. package/esm/animation/animationConfig.js.map +0 -1
  163. package/esm/classedComponents.js.map +0 -1
  164. package/esm/components/LoadingIndicator.js.map +0 -1
  165. package/esm/components/OverflowList.js.map +0 -1
  166. package/esm/components/ShuttleBreadcrumb.js.map +0 -1
  167. package/esm/components/ShuttleInfiniteScrollIndicator.js.map +0 -1
  168. package/esm/components/ShuttleListItem/ActionButtons.js.map +0 -1
  169. package/esm/components/ShuttleListItem/ShuttleListItem.js.map +0 -1
  170. package/esm/components/ShuttleListItem/ShuttleSourceListItem.js.map +0 -1
  171. package/esm/components/ShuttleListItem/ShuttleTargetListItem.js.map +0 -1
  172. package/esm/components/ShuttleListPanel.js.map +0 -1
  173. package/esm/components/ShuttleSearchBox.js.map +0 -1
  174. package/esm/components/ShuttleSource.js.map +0 -1
  175. package/esm/components/ShuttleTarget.js.map +0 -1
  176. package/esm/components/VirtualizedItem.js.map +0 -1
  177. package/esm/components/VirtualizedList.js.map +0 -1
  178. package/esm/components/VirtualizedSortableList.js.map +0 -1
  179. package/esm/helper.js.map +0 -1
  180. package/esm/index.js.map +0 -1
  181. package/esm/tests/utils.js +0 -1100
  182. package/esm/tests/utils.js.map +0 -1
  183. package/esm/updateShuttleStateFromProps.js.map +0 -1
  184. package/esm/utils.js.map +0 -1
  185. package/esm/withProviders.js.map +0 -1
  186. package/helper/package.json +0 -10
  187. package/tests/utils/package.json +0 -10
  188. package/updateShuttleStateFromProps/package.json +0 -10
  189. package/utils/package.json +0 -10
  190. package/withProviders/package.json +0 -10
@@ -1,14 +1,6 @@
1
- import _extends from '@babel/runtime/helpers/esm/extends';
2
1
  import _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';
3
- import _toConsumableArray from '@babel/runtime/helpers/esm/toConsumableArray';
4
- import _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';
5
- import _createClass from '@babel/runtime/helpers/esm/createClass';
6
- import _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';
7
- import _inherits from '@babel/runtime/helpers/esm/inherits';
8
- import _possibleConstructorReturn from '@babel/runtime/helpers/esm/possibleConstructorReturn';
9
- import _getPrototypeOf from '@babel/runtime/helpers/esm/getPrototypeOf';
10
2
  import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
11
- import React, { Component } from 'react';
3
+ import { Component } from 'react';
12
4
  import { arrayMove, compose } from '@elliemae/ds-utilities/utils';
13
5
  import withProviders from './withProviders.js';
14
6
  import { navigateTo, resetCheckedItems, resetMovedItems, addToTarget, removeFromTarget, toggleItemSelection } from './Shuttle.actions.js';
@@ -16,73 +8,26 @@ import { pipe, getItemsById, getActiveIdFromHierarchy, filterBySearch, filterMov
16
8
  import ShuttleRenderer from './ShuttleRenderer.js';
17
9
  import SearchState from './SearchState.js';
18
10
  import updateShuttleStateFromProps from './updateShuttleStateFromProps.js';
19
- import './AnimationState.js';
20
- import '@babel/runtime/helpers/esm/slicedToArray';
21
- import 'constate';
22
- import './ShuttleState.js';
23
- import 'treetabular';
24
- import './utils.js';
25
- import './components/ShuttleSource.js';
26
- import 'prop-types';
27
- import '@elliemae/ds-icons/ArrowShortRight';
28
- import '@elliemae/ds-basic/Button';
29
- import '@elliemae/ds-icons/Search';
30
- import './components/ShuttleSearchBox.js';
31
- import '@elliemae/ds-classnames';
32
- import '@elliemae/ds-basic/form/TextBox';
33
- import './components/ShuttleInfiniteScrollIndicator.js';
34
- import '@elliemae/ds-basic/IndeterminateProgressIndicator';
35
- import './components/ShuttleListItem/ShuttleSourceListItem.js';
36
- import './components/ShuttleListItem/ActionButtons.js';
37
- import '@elliemae/ds-icons/CloseCircle';
38
- import '@elliemae/ds-icons/ArrowShortReturn';
39
- import './components/ShuttleListItem/ShuttleListItem.js';
40
- import 'react-spring/web.cjs';
41
- import '@elliemae/ds-basic/TruncatedTooltipText';
42
- import 'react-sortable-hoc';
43
- import '@elliemae/ds-icons/GripperVertical';
44
- import './classedComponents.js';
45
- import './components/ShuttleBreadcrumb.js';
46
- import '@elliemae/ds-basic/Breadcrumb';
47
- import './animation/animationConfig.js';
48
- import './components/OverflowList.js';
49
- import './components/ShuttleListPanel.js';
50
- import './components/VirtualizedList.js';
51
- import 'react-window';
52
- import 'react-window-infinite-loader';
53
- import 'react-virtualized-auto-sizer';
54
- import './components/VirtualizedItem.js';
55
- import './components/VirtualizedSortableList.js';
56
- import './components/LoadingIndicator.js';
57
- import '@elliemae/ds-basic/CircularProgressIndicator';
58
- import 'styled-components';
59
- import './components/ShuttleTarget.js';
60
- import './components/ShuttleListItem/ShuttleTargetListItem.js';
61
-
62
- var _excluded = ["idField", "nonSelectedItems", "moreItemsLoading"];
63
-
64
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
65
-
66
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
67
-
68
- var ShuttleImpl = /*#__PURE__*/function (_Component) {
69
- _inherits(ShuttleImpl, _Component);
70
-
71
- var _super = _createSuper(ShuttleImpl);
72
-
73
- function ShuttleImpl(props) {
74
- var _this;
75
-
76
- _classCallCheck(this, ShuttleImpl);
77
-
78
- _this = _super.call(this, props);
79
-
80
- _defineProperty(_assertThisInitialized(_this), "getState", function () {
81
- var movedItems = _this.state.movedItems;
11
+ import { jsx } from 'react/jsx-runtime';
12
+
13
+ const _excluded = ["idField", "nonSelectedItems", "moreItemsLoading"];
14
+
15
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
16
+
17
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
18
+
19
+ class ShuttleImpl extends Component {
20
+ constructor(props) {
21
+ super(props);
22
+
23
+ _defineProperty(this, "getState", () => {
24
+ const {
25
+ movedItems
26
+ } = this.state;
82
27
  return Object.keys(movedItems);
83
28
  });
84
29
 
85
- _this.state = {
30
+ this.state = {
86
31
  prevProps: {},
87
32
  preparedItems: [],
88
33
  checkedItems: [],
@@ -100,290 +45,248 @@ var ShuttleImpl = /*#__PURE__*/function (_Component) {
100
45
  sourceItems: [],
101
46
  targetItems: []
102
47
  };
103
- _this.toggleItemSelection = _this.toggleItemSelection.bind(_assertThisInitialized(_this));
104
- _this.resetCheckedItems = _this.resetCheckedItems.bind(_assertThisInitialized(_this));
105
- _this.resetMovedItems = _this.resetMovedItems.bind(_assertThisInitialized(_this));
106
- _this.moveCheckedItems = _this.moveCheckedItems.bind(_assertThisInitialized(_this));
107
- _this.handleTargetSortEnd = _this.handleTargetSortEnd.bind(_assertThisInitialized(_this));
108
- return _this;
48
+ this.toggleItemSelection = this.toggleItemSelection.bind(this);
49
+ this.resetCheckedItems = this.resetCheckedItems.bind(this);
50
+ this.resetMovedItems = this.resetMovedItems.bind(this);
51
+ this.moveCheckedItems = this.moveCheckedItems.bind(this);
52
+ this.handleTargetSortEnd = this.handleTargetSortEnd.bind(this);
109
53
  }
110
54
 
111
- _createClass(ShuttleImpl, [{
112
- key: "componentDidMount",
113
- value: function componentDidMount() {
114
- var setGetStatus = this.props.setGetStatus;
115
- setGetStatus(this.getState);
116
- }
117
- }, {
118
- key: "handleChange",
119
- value: function handleChange() {
120
- var onChange = this.props.onChange;
121
- var movedItems = this.state.movedItems;
122
- onChange(Object.keys(movedItems));
123
- }
124
- }, {
125
- key: "navigate",
126
- value: function navigate(item, dest, direction) {
127
- var _this$props = this.props,
128
- onDrillDown = _this$props.onDrillDown,
129
- onDrillDownTarget = _this$props.onDrillDownTarget;
130
- if (!dest) onDrillDown(item, direction);
131
- if (dest) onDrillDownTarget(item, direction);
132
- var resetSearchState = this.context.reset;
133
- resetSearchState();
134
- this.setState(pipe([navigateTo(item, dest), resetCheckedItems()]));
135
- }
136
- }, {
137
- key: "resetCheckedItems",
138
- value: function resetCheckedItems$1() {
139
- this.setState(resetCheckedItems());
140
- }
141
- }, {
142
- key: "resetMovedItems",
143
- value: function resetMovedItems$1() {
144
- var _this2 = this;
145
-
146
- var _this$props2 = this.props,
147
- selectedItems = _this$props2.selectedItems,
148
- onRemoveAllFromTarget = _this$props2.onRemoveAllFromTarget;
149
-
150
- if (!selectedItems) {
151
- this.setState(pipe([navigateTo({
152
- id: null
153
- }, true), resetMovedItems()]), function () {
154
- _this2.handleChange();
155
- });
156
- } else {
157
- this.setState(pipe([navigateTo({
158
- id: null
159
- }, true)]));
160
- }
55
+ static getDerivedStateFromProps(nextProps, prevState) {
56
+ return updateShuttleStateFromProps(nextProps, prevState);
57
+ }
161
58
 
162
- onRemoveAllFromTarget();
163
- }
164
- }, {
165
- key: "addToTarget",
166
- value: function addToTarget$1(item) {
167
- var _this3 = this;
168
-
169
- var _this$props3 = this.props,
170
- selectedItems = _this$props3.selectedItems,
171
- onAddToTarget = _this$props3.onAddToTarget;
172
-
173
- if (!selectedItems) {
174
- this.setState(pipe([addToTarget(item), resetCheckedItems()]), function () {
175
- _this3.handleChange();
176
- });
177
- }
59
+ componentDidMount() {
60
+ const {
61
+ setGetStatus
62
+ } = this.props;
63
+ setGetStatus(this.getState);
64
+ }
178
65
 
179
- onAddToTarget(item);
180
- }
181
- }, {
182
- key: "removeFromTarget",
183
- value: function removeFromTarget$1(item) {
184
- var _this4 = this;
185
-
186
- var _this$props4 = this.props,
187
- selectedItems = _this$props4.selectedItems,
188
- onRemoveFromTarget = _this$props4.onRemoveFromTarget;
189
-
190
- if (!selectedItems) {
191
- this.setState(pipe([removeFromTarget(item)]), function () {
192
- _this4.handleChange();
193
- });
194
- }
66
+ handleChange() {
67
+ const {
68
+ onChange
69
+ } = this.props;
70
+ const {
71
+ movedItems
72
+ } = this.state;
73
+ onChange(Object.keys(movedItems));
74
+ }
195
75
 
196
- onRemoveFromTarget(item);
197
- }
198
- }, {
199
- key: "toggleItemSelection",
200
- value: function toggleItemSelection$1(item) {
201
- this.setState(toggleItemSelection(item.id));
202
- }
203
- }, {
204
- key: "moveCheckedItems",
205
- value: function moveCheckedItems() {
206
- var _this5 = this;
207
-
208
- var _this$props5 = this.props,
209
- onAddCheckedItems = _this$props5.onAddCheckedItems,
210
- selectedItems = _this$props5.selectedItems,
211
- nonSelectedItems = _this$props5.nonSelectedItems;
212
- var _this$state = this.state,
213
- checkedItems = _this$state.checkedItems,
214
- preparedItems = _this$state.preparedItems;
215
- var isControlledV2 = !!selectedItems && !!nonSelectedItems;
216
- var checked = isControlledV2 ? nonSelectedItems.filter(function (item) {
217
- return checkedItems.some(function (check) {
218
- return check === item;
219
- });
220
- }) : checkedItems;
221
- var items = getItemsById(checked, preparedItems);
222
- var actions = !selectedItems ? items.map(function (item) {
223
- return addToTarget(item);
224
- }) : [];
225
- this.setState(pipe([].concat(_toConsumableArray(actions), [resetCheckedItems()])), function () {
226
- _this5.handleChange();
76
+ navigate(item, dest, direction) {
77
+ const {
78
+ onDrillDown,
79
+ onDrillDownTarget
80
+ } = this.props;
81
+ if (!dest) onDrillDown(item, direction);
82
+ if (dest) onDrillDownTarget(item, direction);
83
+ const {
84
+ reset: resetSearchState
85
+ } = this.context;
86
+ resetSearchState();
87
+ this.setState(pipe([navigateTo(item, dest), resetCheckedItems()]));
88
+ }
89
+
90
+ resetCheckedItems() {
91
+ this.setState(resetCheckedItems());
92
+ }
93
+
94
+ resetMovedItems() {
95
+ const {
96
+ selectedItems,
97
+ onRemoveAllFromTarget
98
+ } = this.props;
99
+
100
+ if (!selectedItems) {
101
+ this.setState(pipe([navigateTo({
102
+ id: null
103
+ }, true), resetMovedItems()]), () => {
104
+ this.handleChange();
227
105
  });
228
- onAddCheckedItems(items);
106
+ } else {
107
+ this.setState(pipe([navigateTo({
108
+ id: null
109
+ }, true)]));
229
110
  }
230
- }, {
231
- key: "handleTargetSortEnd",
232
- value: function handleTargetSortEnd(_ref) {
233
- var sourceItem = _ref.sourceItem,
234
- targetItem = _ref.targetItem;
235
- var _this$props6 = this.props,
236
- idField = _this$props6.idField,
237
- onTargetSortEnd = _this$props6.onTargetSortEnd;
238
- var _this$state2 = this.state,
239
- targetItems = _this$state2.targetItems,
240
- hierarchyDest = _this$state2.hierarchyDest,
241
- movedItems = _this$state2.movedItems;
242
- var hierarchyId = getActiveIdFromHierarchy(hierarchyDest).id;
243
- var collection = !hierarchyId ? movedItems : targetItems;
244
- var oldIndex = collection.findIndex(function (tItem) {
245
- return tItem[idField] === sourceItem[idField];
246
- });
247
- var newIndex = collection.findIndex(function (tItem) {
248
- return tItem[idField] === targetItem[idField];
249
- });
250
- var sortedMovedItems = !hierarchyId ? arrayMove(movedItems, oldIndex, newIndex) : movedItems;
251
- var sortedItems = hierarchyId ? arrayMove(targetItems, oldIndex, newIndex) : targetItems;
252
- this.setState({
253
- targetItems: sortedItems,
254
- movedItems: sortedMovedItems
111
+
112
+ onRemoveAllFromTarget();
113
+ }
114
+
115
+ addToTarget(item) {
116
+ const {
117
+ selectedItems,
118
+ onAddToTarget
119
+ } = this.props;
120
+
121
+ if (!selectedItems) {
122
+ this.setState(pipe([addToTarget(item), resetCheckedItems()]), () => {
123
+ this.handleChange();
255
124
  });
256
- onTargetSortEnd({
257
- sourceItem: sourceItem,
258
- targetItem: targetItem
125
+ }
126
+
127
+ onAddToTarget(item);
128
+ }
129
+
130
+ removeFromTarget(item) {
131
+ const {
132
+ selectedItems,
133
+ onRemoveFromTarget
134
+ } = this.props;
135
+
136
+ if (!selectedItems) {
137
+ this.setState(pipe([removeFromTarget(item)]), () => {
138
+ this.handleChange();
259
139
  });
260
140
  }
261
- }, {
262
- key: "render",
263
- value: function render() {
264
- var _this6 = this;
265
-
266
- var _this$props7 = this.props;
267
- _this$props7.idField;
268
- var nonSelectedItems = _this$props7.nonSelectedItems,
269
- moreItemsLoading = _this$props7.moreItemsLoading,
270
- rest = _objectWithoutProperties(_this$props7, _excluded);
271
-
272
- var _this$state3 = this.state,
273
- hierarchy = _this$state3.hierarchy,
274
- hierarchyDest = _this$state3.hierarchyDest,
275
- checkedItems = _this$state3.checkedItems,
276
- movedItems = _this$state3.movedItems,
277
- items = _this$state3.preparedItems,
278
- targetItems = _this$state3.targetItems;
279
- var _this$context$state = this.context.state,
280
- searchTerm = _this$context$state.searchTerm,
281
- searching = _this$context$state.searching;
282
-
283
- var handleControlledSourceItms = function handleControlledSourceItms() {
284
- var _getActiveIdFromHiera = getActiveIdFromHierarchy(hierarchy),
285
- id = _getActiveIdFromHiera.id;
286
-
287
- if (id) {
288
- return filterBySearch(searchTerm, searching)(getChildrenFromParent(id)(nonSelectedItems.map(function (it) {
289
- return items.find(function (itt) {
290
- return itt.id === it;
291
- });
292
- })));
293
- }
294
-
295
- return filterBySearch(searchTerm, searching)(items.filter(function (it) {
296
- return nonSelectedItems.some(function (itt) {
297
- return itt === it.id && !nonSelectedItems.some(function (ittt) {
298
- return ittt === it.parent;
299
- });
300
- });
301
- }));
302
- };
303
-
304
- var composedSourceItems; // controlled V2 TODO make it default controlled behavior
305
-
306
- if (nonSelectedItems) {
307
- composedSourceItems = handleControlledSourceItms();
308
- } else {
309
- composedSourceItems = compose(filterBySearch(searchTerm, searching), filterMovedItems(movedItems), getChildrenFromParent(getActiveIdFromHierarchy(hierarchy).id))(items);
141
+
142
+ onRemoveFromTarget(item);
143
+ }
144
+
145
+ toggleItemSelection(item) {
146
+ this.setState(toggleItemSelection(item.id));
147
+ }
148
+
149
+ moveCheckedItems() {
150
+ const {
151
+ onAddCheckedItems,
152
+ selectedItems,
153
+ nonSelectedItems
154
+ } = this.props;
155
+ const {
156
+ checkedItems,
157
+ preparedItems
158
+ } = this.state;
159
+ const isControlledV2 = !!selectedItems && !!nonSelectedItems;
160
+ const checked = isControlledV2 ? nonSelectedItems.filter(item => checkedItems.some(check => check === item)) : checkedItems;
161
+ const items = getItemsById(checked, preparedItems);
162
+ const actions = !selectedItems ? items.map(item => addToTarget(item)) : [];
163
+ this.setState(pipe([...actions, resetCheckedItems()]), () => {
164
+ this.handleChange();
165
+ });
166
+ onAddCheckedItems(items);
167
+ }
168
+
169
+ handleTargetSortEnd({
170
+ sourceItem,
171
+ targetItem
172
+ }) {
173
+ const {
174
+ idField,
175
+ onTargetSortEnd
176
+ } = this.props;
177
+ const {
178
+ targetItems,
179
+ hierarchyDest,
180
+ movedItems
181
+ } = this.state;
182
+ const hierarchyId = getActiveIdFromHierarchy(hierarchyDest).id;
183
+ const collection = !hierarchyId ? movedItems : targetItems;
184
+ const oldIndex = collection.findIndex(tItem => tItem[idField] === sourceItem[idField]);
185
+ const newIndex = collection.findIndex(tItem => tItem[idField] === targetItem[idField]);
186
+ const sortedMovedItems = !hierarchyId ? arrayMove(movedItems, oldIndex, newIndex) : movedItems;
187
+ const sortedItems = hierarchyId ? arrayMove(targetItems, oldIndex, newIndex) : targetItems;
188
+ this.setState({
189
+ targetItems: sortedItems,
190
+ movedItems: sortedMovedItems
191
+ });
192
+ onTargetSortEnd({
193
+ sourceItem,
194
+ targetItem
195
+ });
196
+ }
197
+
198
+ render() {
199
+ const _this$props = this.props,
200
+ {
201
+ idField,
202
+ nonSelectedItems,
203
+ moreItemsLoading
204
+ } = _this$props,
205
+ rest = _objectWithoutProperties(_this$props, _excluded);
206
+
207
+ const {
208
+ hierarchy,
209
+ hierarchyDest,
210
+ checkedItems,
211
+ movedItems,
212
+ preparedItems: items,
213
+ targetItems
214
+ } = this.state;
215
+ const {
216
+ state: {
217
+ searchTerm,
218
+ searching
310
219
  }
220
+ } = this.context;
311
221
 
312
- var handleControlledTargetItms = function handleControlledTargetItms() {
313
- var _getActiveIdFromHiera2 = getActiveIdFromHierarchy(hierarchyDest),
314
- id = _getActiveIdFromHiera2.id;
315
-
316
- if (id) {
317
- return getChildrenFromParent(getActiveIdFromHierarchy(hierarchyDest).id)(_this6.props.selectedItems.map(function (it) {
318
- return items.find(function (itt) {
319
- return itt.id === it;
320
- });
321
- }));
322
- }
323
-
324
- return targetItems.filter(function (it) {
325
- return _this6.props.selectedItems.some(function (itt) {
326
- return itt === it.id && !_this6.props.selectedItems.some(function (ittt) {
327
- return ittt === it.parent;
328
- });
329
- });
330
- });
331
- };
332
-
333
- var composedTargetItems; // controlled V2 TODO make it default controlled behavior
334
-
335
- if (nonSelectedItems) {
336
- composedTargetItems = handleControlledTargetItms();
337
- } else {
338
- composedTargetItems = compose(function (tItems) {
339
- var hierarchyId = getActiveIdFromHierarchy(hierarchyDest).id;
340
- return hierarchyId ? compose(filterMovedItems(movedItems), getChildrenFromParent(hierarchyId))(tItems) : movedItems;
341
- })(targetItems);
222
+ const handleControlledSourceItms = () => {
223
+ const {
224
+ id
225
+ } = getActiveIdFromHierarchy(hierarchy);
226
+
227
+ if (id) {
228
+ return filterBySearch(searchTerm, searching)(getChildrenFromParent(id)(nonSelectedItems.map(it => items.find(itt => itt.id === it))));
342
229
  }
343
230
 
344
- return /*#__PURE__*/React.createElement(ShuttleRenderer, _extends({}, rest, {
345
- moreItemsLoading: moreItemsLoading,
346
- checkedItems: checkedItems,
347
- hierarchy: hierarchy,
348
- hierarchyDest: hierarchyDest,
349
- onCheckItem: this.toggleItemSelection,
350
- onClearCheckedItems: this.resetCheckedItems,
351
- onClearMovedItems: this.resetMovedItems,
352
- onItemCheck: this.toggleItemSelection,
353
- onMoveCheckedItems: this.moveCheckedItems,
354
- onMoveItemToSource: function onMoveItemToSource(item) {
355
- return _this6.removeFromTarget(item, false);
356
- },
357
- onMoveItemToTarget: function onMoveItemToTarget(item) {
358
- return _this6.addToTarget(item, true);
359
- },
360
- onNavigateOnSourceTo: function onNavigateOnSourceTo(item, direction) {
361
- return _this6.navigate(item, false, direction);
362
- },
363
- onNavigateOnTargetTo: function onNavigateOnTargetTo(item, direction) {
364
- return _this6.navigate(item, true, direction);
365
- },
366
- onSourceSortEnd: function onSourceSortEnd() {
367
- return null;
368
- },
369
- onTargetSortEnd: this.handleTargetSortEnd,
370
- sourceItems: composedSourceItems,
371
- targetItems: composedTargetItems
372
- }));
231
+ return filterBySearch(searchTerm, searching)(items.filter(it => nonSelectedItems.some(itt => itt === it.id && !nonSelectedItems.some(ittt => ittt === it.parent))));
232
+ };
233
+
234
+ let composedSourceItems; // controlled V2 TODO make it default controlled behavior
235
+
236
+ if (nonSelectedItems) {
237
+ composedSourceItems = handleControlledSourceItms();
238
+ } else {
239
+ composedSourceItems = compose(filterBySearch(searchTerm, searching), filterMovedItems(movedItems), getChildrenFromParent(getActiveIdFromHierarchy(hierarchy).id))(items);
373
240
  }
374
- }], [{
375
- key: "getDerivedStateFromProps",
376
- value: function getDerivedStateFromProps(nextProps, prevState) {
377
- return updateShuttleStateFromProps(nextProps, prevState);
241
+
242
+ const handleControlledTargetItms = () => {
243
+ const {
244
+ id
245
+ } = getActiveIdFromHierarchy(hierarchyDest);
246
+
247
+ if (id) {
248
+ return getChildrenFromParent(getActiveIdFromHierarchy(hierarchyDest).id)(this.props.selectedItems.map(it => items.find(itt => itt.id === it)));
249
+ }
250
+
251
+ return targetItems.filter(it => this.props.selectedItems.some(itt => itt === it.id && !this.props.selectedItems.some(ittt => ittt === it.parent)));
252
+ };
253
+
254
+ let composedTargetItems; // controlled V2 TODO make it default controlled behavior
255
+
256
+ if (nonSelectedItems) {
257
+ composedTargetItems = handleControlledTargetItms();
258
+ } else {
259
+ composedTargetItems = compose(tItems => {
260
+ const hierarchyId = getActiveIdFromHierarchy(hierarchyDest).id;
261
+ return hierarchyId ? compose(filterMovedItems(movedItems), getChildrenFromParent(hierarchyId))(tItems) : movedItems;
262
+ })(targetItems);
378
263
  }
379
- }]);
380
264
 
381
- return ShuttleImpl;
382
- }(Component);
265
+ return /*#__PURE__*/jsx(ShuttleRenderer, _objectSpread(_objectSpread({}, rest), {}, {
266
+ moreItemsLoading: moreItemsLoading,
267
+ checkedItems: checkedItems,
268
+ hierarchy: hierarchy,
269
+ hierarchyDest: hierarchyDest,
270
+ onCheckItem: this.toggleItemSelection,
271
+ onClearCheckedItems: this.resetCheckedItems,
272
+ onClearMovedItems: this.resetMovedItems,
273
+ onItemCheck: this.toggleItemSelection,
274
+ onMoveCheckedItems: this.moveCheckedItems,
275
+ onMoveItemToSource: item => this.removeFromTarget(item, false),
276
+ onMoveItemToTarget: item => this.addToTarget(item, true),
277
+ onNavigateOnSourceTo: (item, direction) => this.navigate(item, false, direction),
278
+ onNavigateOnTargetTo: (item, direction) => this.navigate(item, true, direction),
279
+ onSourceSortEnd: () => null,
280
+ onTargetSortEnd: this.handleTargetSortEnd,
281
+ sourceItems: composedSourceItems,
282
+ targetItems: composedTargetItems
283
+ }));
284
+ }
285
+
286
+ }
383
287
 
384
288
  _defineProperty(ShuttleImpl, "contextType", SearchState.Context);
385
289
 
386
290
  var ShuttleImpl$1 = withProviders(ShuttleImpl);
387
291
 
388
292
  export { ShuttleImpl$1 as default };
389
- //# sourceMappingURL=ShuttleImpl.js.map