@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.
Files changed (217) hide show
  1. package/dist/cjs/AnimationState.js +75 -0
  2. package/dist/cjs/AnimationState.js.map +7 -0
  3. package/dist/cjs/DSShuttle.js +170 -0
  4. package/dist/cjs/DSShuttle.js.map +7 -0
  5. package/dist/cjs/SearchState.js +60 -0
  6. package/dist/cjs/SearchState.js.map +7 -0
  7. package/dist/cjs/Shuttle.actions.js +136 -0
  8. package/dist/cjs/Shuttle.actions.js.map +7 -0
  9. package/dist/cjs/ShuttleContainer.js +108 -0
  10. package/dist/cjs/ShuttleContainer.js.map +7 -0
  11. package/dist/cjs/ShuttleImpl.js +242 -0
  12. package/dist/cjs/ShuttleImpl.js.map +7 -0
  13. package/dist/cjs/ShuttleRenderer.js +203 -0
  14. package/dist/cjs/ShuttleRenderer.js.map +7 -0
  15. package/dist/cjs/ShuttleState.js +84 -0
  16. package/dist/cjs/ShuttleState.js.map +7 -0
  17. package/dist/cjs/animation/animationConfig.js +78 -0
  18. package/dist/cjs/animation/animationConfig.js.map +7 -0
  19. package/dist/cjs/classedComponents.js +72 -0
  20. package/dist/cjs/classedComponents.js.map +7 -0
  21. package/dist/cjs/components/LoadingIndicator.js +52 -0
  22. package/dist/cjs/components/LoadingIndicator.js.map +7 -0
  23. package/dist/cjs/components/OverflowList.js +71 -0
  24. package/dist/cjs/components/OverflowList.js.map +7 -0
  25. package/dist/cjs/components/ShuttleBreadcrumb.js +54 -0
  26. package/dist/cjs/components/ShuttleBreadcrumb.js.map +7 -0
  27. package/dist/cjs/components/ShuttleInfiniteScrollIndicator.js +48 -0
  28. package/dist/cjs/components/ShuttleInfiniteScrollIndicator.js.map +7 -0
  29. package/dist/cjs/components/ShuttleListItem/ActionButtons.js +76 -0
  30. package/dist/cjs/components/ShuttleListItem/ActionButtons.js.map +7 -0
  31. package/dist/cjs/components/ShuttleListItem/ShuttleListItem.js +121 -0
  32. package/dist/cjs/components/ShuttleListItem/ShuttleListItem.js.map +7 -0
  33. package/dist/cjs/components/ShuttleListItem/ShuttleSourceListItem.js +127 -0
  34. package/dist/cjs/components/ShuttleListItem/ShuttleSourceListItem.js.map +7 -0
  35. package/dist/cjs/components/ShuttleListItem/ShuttleTargetListItem.js +110 -0
  36. package/dist/cjs/components/ShuttleListItem/ShuttleTargetListItem.js.map +7 -0
  37. package/dist/cjs/components/ShuttleListPanel.js +49 -0
  38. package/dist/cjs/components/ShuttleListPanel.js.map +7 -0
  39. package/dist/cjs/components/ShuttleSearchBox.js +99 -0
  40. package/dist/cjs/components/ShuttleSearchBox.js.map +7 -0
  41. package/dist/cjs/components/ShuttleSource.js +223 -0
  42. package/dist/cjs/components/ShuttleSource.js.map +7 -0
  43. package/dist/cjs/components/ShuttleTarget.js +135 -0
  44. package/dist/cjs/components/ShuttleTarget.js.map +7 -0
  45. package/dist/cjs/components/VirtualizedItem.js +65 -0
  46. package/dist/cjs/components/VirtualizedItem.js.map +7 -0
  47. package/dist/cjs/components/VirtualizedList.js +104 -0
  48. package/dist/cjs/components/VirtualizedList.js.map +7 -0
  49. package/dist/cjs/components/VirtualizedSortableList.js +77 -0
  50. package/dist/cjs/components/VirtualizedSortableList.js.map +7 -0
  51. package/dist/cjs/helper.js +99 -0
  52. package/dist/cjs/helper.js.map +7 -0
  53. package/dist/cjs/index.js +38 -0
  54. package/dist/cjs/index.js.map +7 -0
  55. package/dist/cjs/tests/utils.js +1235 -0
  56. package/dist/cjs/tests/utils.js.map +7 -0
  57. package/dist/cjs/updateShuttleStateFromProps.js +108 -0
  58. package/dist/cjs/updateShuttleStateFromProps.js.map +7 -0
  59. package/dist/cjs/utils.js +54 -0
  60. package/dist/cjs/utils.js.map +7 -0
  61. package/dist/cjs/withProviders.js +57 -0
  62. package/dist/cjs/withProviders.js.map +7 -0
  63. package/{esm → dist/esm}/AnimationState.js +12 -8
  64. package/dist/esm/AnimationState.js.map +7 -0
  65. package/dist/esm/DSShuttle.js +141 -0
  66. package/dist/esm/DSShuttle.js.map +7 -0
  67. package/dist/esm/SearchState.js +31 -0
  68. package/dist/esm/SearchState.js.map +7 -0
  69. package/dist/esm/Shuttle.actions.js +118 -0
  70. package/dist/esm/Shuttle.actions.js.map +7 -0
  71. package/dist/esm/ShuttleContainer.js +92 -0
  72. package/dist/esm/ShuttleContainer.js.map +7 -0
  73. package/dist/esm/ShuttleImpl.js +229 -0
  74. package/dist/esm/ShuttleImpl.js.map +7 -0
  75. package/dist/esm/ShuttleRenderer.js +176 -0
  76. package/dist/esm/ShuttleRenderer.js.map +7 -0
  77. package/dist/esm/ShuttleState.js +55 -0
  78. package/dist/esm/ShuttleState.js.map +7 -0
  79. package/dist/esm/animation/animationConfig.js +49 -0
  80. package/dist/esm/animation/animationConfig.js.map +7 -0
  81. package/dist/esm/classedComponents.js +43 -0
  82. package/dist/esm/classedComponents.js.map +7 -0
  83. package/dist/esm/components/LoadingIndicator.js +23 -0
  84. package/dist/esm/components/LoadingIndicator.js.map +7 -0
  85. package/dist/esm/components/OverflowList.js +44 -0
  86. package/dist/esm/components/OverflowList.js.map +7 -0
  87. package/dist/esm/components/ShuttleBreadcrumb.js +25 -0
  88. package/dist/esm/components/ShuttleBreadcrumb.js.map +7 -0
  89. package/dist/esm/components/ShuttleInfiniteScrollIndicator.js +19 -0
  90. package/dist/esm/components/ShuttleInfiniteScrollIndicator.js.map +7 -0
  91. package/dist/esm/components/ShuttleListItem/ActionButtons.js +49 -0
  92. package/dist/esm/components/ShuttleListItem/ActionButtons.js.map +7 -0
  93. package/dist/esm/components/ShuttleListItem/ShuttleListItem.js +94 -0
  94. package/dist/esm/components/ShuttleListItem/ShuttleListItem.js.map +7 -0
  95. package/dist/esm/components/ShuttleListItem/ShuttleSourceListItem.js +100 -0
  96. package/dist/esm/components/ShuttleListItem/ShuttleSourceListItem.js.map +7 -0
  97. package/dist/esm/components/ShuttleListItem/ShuttleTargetListItem.js +83 -0
  98. package/dist/esm/components/ShuttleListItem/ShuttleTargetListItem.js.map +7 -0
  99. package/dist/esm/components/ShuttleListPanel.js +20 -0
  100. package/dist/esm/components/ShuttleListPanel.js.map +7 -0
  101. package/dist/esm/components/ShuttleSearchBox.js +70 -0
  102. package/dist/esm/components/ShuttleSearchBox.js.map +7 -0
  103. package/dist/esm/components/ShuttleSource.js +208 -0
  104. package/dist/esm/components/ShuttleSource.js.map +7 -0
  105. package/dist/esm/components/ShuttleTarget.js +119 -0
  106. package/dist/esm/components/ShuttleTarget.js.map +7 -0
  107. package/dist/esm/components/VirtualizedItem.js +38 -0
  108. package/dist/esm/components/VirtualizedItem.js.map +7 -0
  109. package/dist/esm/components/VirtualizedList.js +77 -0
  110. package/dist/esm/components/VirtualizedList.js.map +7 -0
  111. package/dist/esm/components/VirtualizedSortableList.js +50 -0
  112. package/dist/esm/components/VirtualizedSortableList.js.map +7 -0
  113. package/dist/esm/helper.js +72 -0
  114. package/dist/esm/helper.js.map +7 -0
  115. package/dist/esm/index.js +9 -0
  116. package/dist/esm/index.js.map +7 -0
  117. package/dist/esm/tests/utils.js +1208 -0
  118. package/dist/esm/tests/utils.js.map +7 -0
  119. package/dist/esm/updateShuttleStateFromProps.js +81 -0
  120. package/dist/esm/updateShuttleStateFromProps.js.map +7 -0
  121. package/dist/esm/utils.js +27 -0
  122. package/dist/esm/utils.js.map +7 -0
  123. package/dist/esm/withProviders.js +30 -0
  124. package/dist/esm/withProviders.js.map +7 -0
  125. package/package.json +98 -89
  126. package/cjs/AnimationState.js +0 -48
  127. package/cjs/DSShuttle.js +0 -223
  128. package/cjs/SearchState.js +0 -41
  129. package/cjs/Shuttle.actions.js +0 -137
  130. package/cjs/ShuttleContainer.js +0 -87
  131. package/cjs/ShuttleImpl.js +0 -311
  132. package/cjs/ShuttleRenderer.js +0 -139
  133. package/cjs/ShuttleState.js +0 -80
  134. package/cjs/animation/animationConfig.js +0 -81
  135. package/cjs/classedComponents.js +0 -71
  136. package/cjs/components/LoadingIndicator.js +0 -25
  137. package/cjs/components/OverflowList.js +0 -53
  138. package/cjs/components/ShuttleBreadcrumb.js +0 -42
  139. package/cjs/components/ShuttleInfiniteScrollIndicator.js +0 -39
  140. package/cjs/components/ShuttleListItem/ActionButtons.js +0 -55
  141. package/cjs/components/ShuttleListItem/ShuttleListItem.js +0 -85
  142. package/cjs/components/ShuttleListItem/ShuttleSourceListItem.js +0 -76
  143. package/cjs/components/ShuttleListItem/ShuttleTargetListItem.js +0 -57
  144. package/cjs/components/ShuttleListPanel.js +0 -31
  145. package/cjs/components/ShuttleSearchBox.js +0 -110
  146. package/cjs/components/ShuttleSource.js +0 -188
  147. package/cjs/components/ShuttleTarget.js +0 -116
  148. package/cjs/components/VirtualizedItem.js +0 -46
  149. package/cjs/components/VirtualizedList.js +0 -93
  150. package/cjs/components/VirtualizedSortableList.js +0 -41
  151. package/cjs/helper.js +0 -117
  152. package/cjs/index.js +0 -12
  153. package/cjs/updateShuttleStateFromProps.js +0 -94
  154. package/cjs/utils.js +0 -43
  155. package/cjs/withProviders.js +0 -29
  156. package/esm/DSShuttle.js +0 -213
  157. package/esm/SearchState.js +0 -35
  158. package/esm/Shuttle.actions.js +0 -123
  159. package/esm/ShuttleContainer.js +0 -80
  160. package/esm/ShuttleImpl.js +0 -304
  161. package/esm/ShuttleRenderer.js +0 -132
  162. package/esm/ShuttleState.js +0 -74
  163. package/esm/animation/animationConfig.js +0 -77
  164. package/esm/classedComponents.js +0 -51
  165. package/esm/components/LoadingIndicator.js +0 -18
  166. package/esm/components/OverflowList.js +0 -46
  167. package/esm/components/ShuttleBreadcrumb.js +0 -35
  168. package/esm/components/ShuttleInfiniteScrollIndicator.js +0 -32
  169. package/esm/components/ShuttleListItem/ActionButtons.js +0 -43
  170. package/esm/components/ShuttleListItem/ShuttleListItem.js +0 -76
  171. package/esm/components/ShuttleListItem/ShuttleSourceListItem.js +0 -68
  172. package/esm/components/ShuttleListItem/ShuttleTargetListItem.js +0 -49
  173. package/esm/components/ShuttleListPanel.js +0 -24
  174. package/esm/components/ShuttleSearchBox.js +0 -104
  175. package/esm/components/ShuttleSource.js +0 -179
  176. package/esm/components/ShuttleTarget.js +0 -107
  177. package/esm/components/VirtualizedItem.js +0 -40
  178. package/esm/components/VirtualizedList.js +0 -84
  179. package/esm/components/VirtualizedSortableList.js +0 -34
  180. package/esm/helper.js +0 -78
  181. package/esm/index.js +0 -2
  182. package/esm/updateShuttleStateFromProps.js +0 -88
  183. package/esm/utils.js +0 -18
  184. package/esm/withProviders.js +0 -22
  185. package/types/AnimationState.d.ts +0 -26
  186. package/types/DSShuttle.d.ts +0 -341
  187. package/types/SearchState.d.ts +0 -22
  188. package/types/Shuttle.actions.d.ts +0 -11
  189. package/types/ShuttleContainer.d.ts +0 -3
  190. package/types/ShuttleImpl.d.ts +0 -3
  191. package/types/ShuttleRenderer.d.ts +0 -37
  192. package/types/ShuttleState.d.ts +0 -53
  193. package/types/animation/animationConfig.d.ts +0 -68
  194. package/types/classedComponents.d.ts +0 -14
  195. package/types/components/LoadingIndicator.d.ts +0 -3
  196. package/types/components/OverflowList.d.ts +0 -7
  197. package/types/components/ShuttleBreadcrumb.d.ts +0 -7
  198. package/types/components/ShuttleInfiniteScrollIndicator.d.ts +0 -5
  199. package/types/components/ShuttleListItem/ActionButtons.d.ts +0 -4
  200. package/types/components/ShuttleListItem/ShuttleListItem.d.ts +0 -14
  201. package/types/components/ShuttleListItem/ShuttleSourceListItem.d.ts +0 -13
  202. package/types/components/ShuttleListItem/ShuttleTargetListItem.d.ts +0 -13
  203. package/types/components/ShuttleListPanel.d.ts +0 -7
  204. package/types/components/ShuttleSearchBox.d.ts +0 -20
  205. package/types/components/ShuttleSource.d.ts +0 -54
  206. package/types/components/ShuttleTarget.d.ts +0 -16
  207. package/types/components/VirtualizedItem.d.ts +0 -3
  208. package/types/components/VirtualizedList.d.ts +0 -12
  209. package/types/components/VirtualizedSortableList.d.ts +0 -6
  210. package/types/helper.d.ts +0 -16
  211. package/types/index.d.ts +0 -1
  212. package/types/tests/DSShuttle.events.test.d.ts +0 -1
  213. package/types/tests/DSShuttle.test.d.ts +0 -1
  214. package/types/tests/utils.d.ts +0 -116
  215. package/types/updateShuttleStateFromProps.d.ts +0 -1
  216. package/types/utils.d.ts +0 -2
  217. package/types/withProviders.d.ts +0 -3
@@ -1,311 +0,0 @@
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.some.js');
9
- require('core-js/modules/esnext.iterator.some.js');
10
- require('core-js/modules/esnext.async-iterator.map.js');
11
- require('core-js/modules/esnext.iterator.map.js');
12
- require('core-js/modules/web.dom-collections.iterator.js');
13
- require('core-js/modules/esnext.async-iterator.find.js');
14
- require('core-js/modules/esnext.iterator.find.js');
15
- require('core-js/modules/esnext.async-iterator.for-each.js');
16
- require('core-js/modules/esnext.iterator.for-each.js');
17
- var react = require('react');
18
- var dsUtilities = require('@elliemae/ds-utilities');
19
- var withProviders = require('./withProviders.js');
20
- var Shuttle_actions = require('./Shuttle.actions.js');
21
- var helper = require('./helper.js');
22
- var ShuttleRenderer = require('./ShuttleRenderer.js');
23
- var SearchState = require('./SearchState.js');
24
- var updateShuttleStateFromProps = require('./updateShuttleStateFromProps.js');
25
- var jsxRuntime = require('react/jsx-runtime');
26
-
27
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
28
-
29
- var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
30
- var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
31
-
32
- const _excluded = ["idField", "nonSelectedItems", "moreItemsLoading"];
33
-
34
- 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; }
35
-
36
- 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; }
37
-
38
- class ShuttleImpl extends react.Component {
39
- constructor(props) {
40
- super(props);
41
-
42
- this.getState = () => {
43
- const {
44
- movedItems
45
- } = this.state;
46
- return Object.keys(movedItems);
47
- };
48
-
49
- this.state = {
50
- prevProps: {},
51
- preparedItems: [],
52
- checkedItems: [],
53
- // left breadcrumb
54
- hierarchy: [{
55
- name: props.sourceRootTitle,
56
- id: null
57
- }],
58
- // right breadcrumb
59
- hierarchyDest: [{
60
- name: props.targetRootTitle,
61
- id: null
62
- }],
63
- movedItems: [],
64
- sourceItems: [],
65
- targetItems: []
66
- };
67
- this.toggleItemSelection = this.toggleItemSelection.bind(this);
68
- this.resetCheckedItems = this.resetCheckedItems.bind(this);
69
- this.resetMovedItems = this.resetMovedItems.bind(this);
70
- this.moveCheckedItems = this.moveCheckedItems.bind(this);
71
- this.handleTargetSortEnd = this.handleTargetSortEnd.bind(this);
72
- }
73
-
74
- static getDerivedStateFromProps(nextProps, prevState) {
75
- return updateShuttleStateFromProps(nextProps, prevState);
76
- }
77
-
78
- componentDidMount() {
79
- const {
80
- setGetStatus
81
- } = this.props;
82
- setGetStatus(this.getState);
83
- }
84
-
85
- handleChange() {
86
- const {
87
- onChange
88
- } = this.props;
89
- const {
90
- movedItems
91
- } = this.state;
92
- onChange(Object.keys(movedItems));
93
- }
94
-
95
- navigate(item, dest, direction) {
96
- const {
97
- onDrillDown,
98
- onDrillDownTarget
99
- } = this.props;
100
- if (!dest) onDrillDown(item, direction);
101
- if (dest) onDrillDownTarget(item, direction);
102
- const {
103
- reset: resetSearchState
104
- } = this.context;
105
- resetSearchState();
106
- this.setState(helper.pipe([Shuttle_actions.navigateTo(item, dest), Shuttle_actions.resetCheckedItems()]));
107
- }
108
-
109
- resetCheckedItems() {
110
- this.setState(Shuttle_actions.resetCheckedItems());
111
- }
112
-
113
- resetMovedItems() {
114
- const {
115
- selectedItems,
116
- onRemoveAllFromTarget
117
- } = this.props;
118
-
119
- if (!selectedItems) {
120
- this.setState(helper.pipe([Shuttle_actions.navigateTo({
121
- id: null
122
- }, true), Shuttle_actions.resetMovedItems()]), () => {
123
- this.handleChange();
124
- });
125
- } else {
126
- this.setState(helper.pipe([Shuttle_actions.navigateTo({
127
- id: null
128
- }, true)]));
129
- }
130
-
131
- onRemoveAllFromTarget();
132
- }
133
-
134
- addToTarget(item) {
135
- const {
136
- selectedItems,
137
- onAddToTarget
138
- } = this.props;
139
-
140
- if (!selectedItems) {
141
- this.setState(helper.pipe([Shuttle_actions.addToTarget(item), Shuttle_actions.resetCheckedItems()]), () => {
142
- this.handleChange();
143
- });
144
- }
145
-
146
- onAddToTarget(item);
147
- }
148
-
149
- removeFromTarget(item) {
150
- const {
151
- selectedItems,
152
- onRemoveFromTarget
153
- } = this.props;
154
-
155
- if (!selectedItems) {
156
- this.setState(helper.pipe([Shuttle_actions.removeFromTarget(item)]), () => {
157
- this.handleChange();
158
- });
159
- }
160
-
161
- onRemoveFromTarget(item);
162
- }
163
-
164
- toggleItemSelection(item) {
165
- this.setState(Shuttle_actions.toggleItemSelection(item.id));
166
- }
167
-
168
- moveCheckedItems() {
169
- const {
170
- onAddCheckedItems,
171
- selectedItems,
172
- nonSelectedItems
173
- } = this.props;
174
- const {
175
- checkedItems,
176
- preparedItems
177
- } = this.state;
178
- const isControlledV2 = !!selectedItems && !!nonSelectedItems;
179
- const checked = isControlledV2 ? nonSelectedItems.filter(item => checkedItems.some(check => check === item)) : checkedItems;
180
- const items = helper.getItemsById(checked, preparedItems);
181
- const actions = !selectedItems ? items.map(item => Shuttle_actions.addToTarget(item)) : [];
182
- this.setState(helper.pipe([...actions, Shuttle_actions.resetCheckedItems()]), () => {
183
- this.handleChange();
184
- });
185
- onAddCheckedItems(items);
186
- }
187
-
188
- handleTargetSortEnd(_ref) {
189
- let {
190
- sourceItem,
191
- targetItem
192
- } = _ref;
193
- const {
194
- idField,
195
- onTargetSortEnd
196
- } = this.props;
197
- const {
198
- targetItems,
199
- hierarchyDest,
200
- movedItems
201
- } = this.state;
202
- const hierarchyId = helper.getActiveIdFromHierarchy(hierarchyDest).id;
203
- const collection = !hierarchyId ? movedItems : targetItems;
204
- const oldIndex = collection.findIndex(tItem => tItem[idField] === sourceItem[idField]);
205
- const newIndex = collection.findIndex(tItem => tItem[idField] === targetItem[idField]);
206
- const sortedMovedItems = !hierarchyId ? dsUtilities.arrayMove(movedItems, oldIndex, newIndex) : movedItems;
207
- const sortedItems = hierarchyId ? dsUtilities.arrayMove(targetItems, oldIndex, newIndex) : targetItems;
208
- this.setState({
209
- targetItems: sortedItems,
210
- movedItems: sortedMovedItems
211
- });
212
- onTargetSortEnd({
213
- sourceItem,
214
- targetItem
215
- });
216
- }
217
-
218
- render() {
219
- const _this$props = this.props,
220
- {
221
- idField,
222
- nonSelectedItems,
223
- moreItemsLoading
224
- } = _this$props,
225
- rest = _objectWithoutProperties__default["default"](_this$props, _excluded);
226
-
227
- const {
228
- hierarchy,
229
- hierarchyDest,
230
- checkedItems,
231
- movedItems,
232
- preparedItems: items,
233
- targetItems
234
- } = this.state;
235
- const {
236
- state: {
237
- searchTerm,
238
- searching
239
- }
240
- } = this.context;
241
-
242
- const handleControlledSourceItms = () => {
243
- const {
244
- id
245
- } = helper.getActiveIdFromHierarchy(hierarchy);
246
-
247
- if (id) {
248
- return helper.filterBySearch(searchTerm, searching)(helper.getChildrenFromParent(id)(nonSelectedItems.map(it => items.find(itt => itt.id === it))));
249
- }
250
-
251
- return helper.filterBySearch(searchTerm, searching)(items.filter(it => nonSelectedItems.some(itt => itt === it.id && !nonSelectedItems.some(ittt => ittt === it.parent))));
252
- };
253
-
254
- let composedSourceItems; // controlled V2 TODO make it default controlled behavior
255
-
256
- if (nonSelectedItems) {
257
- composedSourceItems = handleControlledSourceItms();
258
- } else {
259
- composedSourceItems = dsUtilities.compose(helper.filterBySearch(searchTerm, searching), helper.filterMovedItems(movedItems), helper.getChildrenFromParent(helper.getActiveIdFromHierarchy(hierarchy).id))(items);
260
- }
261
-
262
- const handleControlledTargetItms = () => {
263
- const {
264
- id
265
- } = helper.getActiveIdFromHierarchy(hierarchyDest);
266
-
267
- if (id) {
268
- return helper.getChildrenFromParent(helper.getActiveIdFromHierarchy(hierarchyDest).id)(this.props.selectedItems.map(it => items.find(itt => itt.id === it)));
269
- }
270
-
271
- return targetItems.filter(it => this.props.selectedItems.some(itt => itt === it.id && !this.props.selectedItems.some(ittt => ittt === it.parent)));
272
- };
273
-
274
- let composedTargetItems; // controlled V2 TODO make it default controlled behavior
275
-
276
- if (nonSelectedItems) {
277
- composedTargetItems = handleControlledTargetItms();
278
- } else {
279
- composedTargetItems = dsUtilities.compose(tItems => {
280
- const hierarchyId = helper.getActiveIdFromHierarchy(hierarchyDest).id;
281
- return hierarchyId ? dsUtilities.compose(helper.filterMovedItems(movedItems), helper.getChildrenFromParent(hierarchyId))(tItems) : movedItems;
282
- })(targetItems);
283
- }
284
-
285
- return /*#__PURE__*/jsxRuntime.jsx(ShuttleRenderer, _objectSpread(_objectSpread({}, rest), {}, {
286
- moreItemsLoading: moreItemsLoading,
287
- checkedItems: checkedItems,
288
- hierarchy: hierarchy,
289
- hierarchyDest: hierarchyDest,
290
- onCheckItem: this.toggleItemSelection,
291
- onClearCheckedItems: this.resetCheckedItems,
292
- onClearMovedItems: this.resetMovedItems,
293
- onItemCheck: this.toggleItemSelection,
294
- onMoveCheckedItems: this.moveCheckedItems,
295
- onMoveItemToSource: item => this.removeFromTarget(item, false),
296
- onMoveItemToTarget: item => this.addToTarget(item, true),
297
- onNavigateOnSourceTo: (item, direction) => this.navigate(item, false, direction),
298
- onNavigateOnTargetTo: (item, direction) => this.navigate(item, true, direction),
299
- onSourceSortEnd: () => null,
300
- onTargetSortEnd: this.handleTargetSortEnd,
301
- sourceItems: composedSourceItems,
302
- targetItems: composedTargetItems
303
- }));
304
- }
305
-
306
- }
307
-
308
- ShuttleImpl.contextType = SearchState.Context;
309
- var ShuttleImpl$1 = withProviders(ShuttleImpl);
310
-
311
- module.exports = ShuttleImpl$1;
@@ -1,139 +0,0 @@
1
- 'use strict';
2
-
3
- require('core-js/modules/esnext.async-iterator.filter.js');
4
- require('core-js/modules/esnext.iterator.constructor.js');
5
- require('core-js/modules/esnext.iterator.filter.js');
6
- require('core-js/modules/esnext.async-iterator.for-each.js');
7
- require('core-js/modules/esnext.iterator.for-each.js');
8
- var _defineProperty = require('@babel/runtime/helpers/defineProperty');
9
- var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
10
- var react = require('react');
11
- var ShuttleSource = require('./components/ShuttleSource.js');
12
- var ShuttleTarget = require('./components/ShuttleTarget.js');
13
- var classedComponents = require('./classedComponents.js');
14
- var AnimationState = require('./AnimationState.js');
15
- var jsxRuntime = require('react/jsx-runtime');
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 = ["containerProps", "onNavigateOnTargetTo", "onNavigateOnSourceTo", "onMoveItemToSource", "onMoveItemToTarget", "onClearMovedItems", "onMoveCheckedItems", "onClearCheckedItems", "onToggleSearch", "onSearch", "onSearchClose", "onSearchOpen", "searching", "onCheckItem", "hierarchy", "hierarchyDest", "checkedItems", "sourceItems", "targetItems", "sourceEmptyMessage", "targetEmptyMessage", "composeTargetItemProps", "composeSourceItemProps", "targetSortable", "sourceSortable", "onSourceSortEnd", "onTargetSortEnd", "loadingSource", "loadingTarget", "onGetMoreItems", "moreItemsLoading", "hasNextPage"];
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
-
28
- const noop = () => {};
29
-
30
- function ShuttleRenderer(_ref) {
31
- let {
32
- containerProps,
33
- onNavigateOnTargetTo = noop,
34
- onNavigateOnSourceTo = noop,
35
- onMoveItemToSource = noop,
36
- onMoveItemToTarget = noop,
37
- onClearMovedItems = noop,
38
- onMoveCheckedItems = noop,
39
- onClearCheckedItems = noop,
40
- onToggleSearch = noop,
41
- onSearch = noop,
42
- onSearchClose = noop,
43
- onSearchOpen = noop,
44
- searching = false,
45
- onCheckItem = noop,
46
- hierarchy = [],
47
- hierarchyDest = [],
48
- checkedItems = [],
49
- sourceItems = [],
50
- targetItems = [],
51
- sourceEmptyMessage,
52
- targetEmptyMessage,
53
- composeTargetItemProps,
54
- composeSourceItemProps,
55
- targetSortable,
56
- sourceSortable,
57
- onSourceSortEnd,
58
- onTargetSortEnd,
59
- loadingSource = false,
60
- loadingTarget = false,
61
- onGetMoreItems = () => {},
62
- moreItemsLoading = false,
63
- hasNextPage = false
64
- } = _ref,
65
- otherProps = _objectWithoutProperties__default["default"](_ref, _excluded);
66
-
67
- const {
68
- setIsMoving,
69
- setIsDrillingDown,
70
- setIsMovingBack,
71
- reset
72
- } = react.useContext(AnimationState.Context);
73
- const removeAnimationState = react.useCallback(() => setTimeout(() => reset(), 500));
74
- return /*#__PURE__*/jsxRuntime.jsxs(classedComponents.ShuttleContainer, _objectSpread(_objectSpread({
75
- "data-testid": "em-ds-shuttle"
76
- }, containerProps), {}, {
77
- children: [/*#__PURE__*/jsxRuntime.jsx(ShuttleSource, _objectSpread(_objectSpread({}, otherProps), {}, {
78
- checkedItems: checkedItems,
79
- composeSourceItemProps: composeSourceItemProps,
80
- emptyMessage: sourceEmptyMessage,
81
- hierarchy: hierarchy,
82
- items: sourceItems,
83
- onCheckItem: onCheckItem,
84
- onClearCheckedItems: onClearCheckedItems,
85
- onMoveCheckedItems: item => {
86
- setIsMoving(true);
87
- onMoveCheckedItems(item);
88
- },
89
- onMoveItem: item => {
90
- setIsMoving(true);
91
- onMoveItemToTarget(item);
92
- removeAnimationState();
93
- },
94
- onNavigateTo: function (item) {
95
- let direction = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'down';
96
- const indexInHierarchy = hierarchy.findIndex(hItem => hItem.id === item.id);
97
- setIsDrillingDown(indexInHierarchy === -1);
98
- onNavigateOnSourceTo(item, direction);
99
- },
100
- onSearch: onSearch,
101
- onSearchClose: onSearchClose,
102
- onSearchOpen: onSearchOpen,
103
- onSortEnd: onSourceSortEnd,
104
- onToggleSearch: onToggleSearch,
105
- searching: searching,
106
- sourceSortable: sourceSortable,
107
- loading: loadingSource,
108
- onGetMoreItems: onGetMoreItems,
109
- moreItemsLoading: moreItemsLoading,
110
- hasNextPage: hasNextPage
111
- })), /*#__PURE__*/jsxRuntime.jsx(ShuttleTarget, _objectSpread(_objectSpread({}, otherProps), {}, {
112
- composeTargetItemProps: composeTargetItemProps,
113
- emptyMessage: targetEmptyMessage,
114
- hierarchy: hierarchyDest,
115
- items: targetItems,
116
- onClearMovedItems: () => {
117
- setIsMovingBack(true);
118
- removeAnimationState();
119
- onClearMovedItems();
120
- },
121
- onMoveItem: item => {
122
- setIsMovingBack(true);
123
- removeAnimationState();
124
- onMoveItemToSource(item);
125
- },
126
- onNavigateTo: function (item) {
127
- let direction = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'down';
128
- const indexInHierarchy = hierarchyDest.findIndex(hItem => hItem.id === item.id);
129
- setIsDrillingDown(indexInHierarchy === -1);
130
- onNavigateOnTargetTo(item, direction);
131
- },
132
- onSortEnd: onTargetSortEnd,
133
- targetSortable: targetSortable,
134
- loading: loadingTarget
135
- }))]
136
- }));
137
- }
138
-
139
- module.exports = ShuttleRenderer;
@@ -1,80 +0,0 @@
1
- 'use strict';
2
-
3
- require('core-js/modules/web.dom-collections.iterator.js');
4
- require('core-js/modules/esnext.async-iterator.map.js');
5
- require('core-js/modules/esnext.iterator.map.js');
6
- var react = require('react');
7
- var createContainer = require('constate');
8
- var helper = require('./helper.js');
9
- var Shuttle_actions = require('./Shuttle.actions.js');
10
-
11
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
12
-
13
- var createContainer__default = /*#__PURE__*/_interopDefaultLegacy(createContainer);
14
-
15
- function useShuttleState() {
16
- const [shuttleState, setShuttleState] = react.useState({
17
- checkedItems: [],
18
- movedItems: {},
19
- hierarchy: [{
20
- name: 'Category',
21
- id: null
22
- }],
23
- hierarchyDest: [{
24
- name: 'Added users',
25
- id: null
26
- }]
27
- });
28
-
29
- const setState = state => setShuttleState(state(shuttleState));
30
-
31
- function setMovedItems() {
32
- let itemsIds = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
33
- let items = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
34
- const itemsToMove = helper.getItemsById(itemsIds, items);
35
- const pipeActions = itemsToMove.map(item => Shuttle_actions.moveItem(item));
36
- setState(helper.pipe([Shuttle_actions.resetMovedItems(), ...pipeActions]));
37
- }
38
-
39
- function navigate(item, dest) {
40
- setState(helper.pipe([Shuttle_actions.navigateTo(item, dest), Shuttle_actions.resetCheckedItems()]));
41
- }
42
-
43
- function resetCheckedItems() {
44
- setState(Shuttle_actions.resetCheckedItems());
45
- }
46
-
47
- function resetMovedItems() {
48
- setState(helper.pipe([Shuttle_actions.navigateTo({
49
- id: null
50
- }, true), Shuttle_actions.resetMovedItems()]));
51
- }
52
-
53
- function moveItem(item, dest) {
54
- setState(helper.pipe([Shuttle_actions.moveItem(item), Shuttle_actions.resetCheckedItems()]));
55
- }
56
-
57
- function toggleItemSelection(item) {
58
- setState(Shuttle_actions.toggleItemSelection(item.id));
59
- }
60
-
61
- function moveCheckedItems(items) {
62
- const pipeActions = items.map(item => moveItem(item));
63
- setState(helper.pipe([...pipeActions, resetCheckedItems()]));
64
- }
65
-
66
- return {
67
- state: shuttleState,
68
- toggleItemSelection,
69
- moveCheckedItems,
70
- moveItem,
71
- resetMovedItems,
72
- resetCheckedItems,
73
- navigate,
74
- setMovedItems
75
- };
76
- }
77
-
78
- var useShuttleState$1 = createContainer__default["default"](useShuttleState, value => [value.state]);
79
-
80
- module.exports = useShuttleState$1;
@@ -1,81 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- // shuttle list and items constants
6
- const itemAnimationDuration = 300;
7
- const listAnimationDuration = 300;
8
- const xPosMovement = 500; // breadcrumb constants
9
-
10
- const breadcrumbDuration = 200;
11
- const xBreadcrumbPos = 300;
12
- const animationConfig = {
13
- slideRight: {
14
- from: {
15
- transform: 'translate3d(0,0,0)'
16
- },
17
- to: {
18
- transform: "translate3d(".concat(xPosMovement, "px,0,0)")
19
- }
20
- },
21
- slideLeft: {
22
- from: {
23
- transform: 'translate3d(0,0,0)'
24
- },
25
- to: {
26
- transform: "translate3d(".concat(-xPosMovement, "px,0,0)")
27
- }
28
- },
29
- moveItem: isMovingLeft => ({
30
- config: {
31
- duration: itemAnimationDuration
32
- },
33
- enter: {
34
- opacity: 1,
35
- transform: "translate3d(".concat(0, "px,0,0)")
36
- },
37
- from: {
38
- opacity: 1,
39
- transform: "translate3d(".concat(isMovingLeft ? -xPosMovement : xPosMovement, "px,0,0)")
40
- },
41
- leave: {
42
- transform: "translate3d(".concat(isMovingLeft ? -xPosMovement : xPosMovement, "px,0,0)")
43
- }
44
- }),
45
- moveList: isDrillingDown => ({
46
- config: {
47
- duration: listAnimationDuration
48
- },
49
- enter: {
50
- opacity: 1,
51
- transform: 'translate3d(0,0,0)'
52
- },
53
- from: {
54
- opacity: 0,
55
- transform: "translate3d(0px,".concat(isDrillingDown ? xPosMovement : -xPosMovement, "px,0)")
56
- },
57
- leave: {
58
- opacity: 0,
59
- transform: "translate3d(0,".concat(isDrillingDown ? -xPosMovement : xPosMovement, "px,0)")
60
- }
61
- }),
62
- breadcrumb: () => ({
63
- config: {
64
- duration: breadcrumbDuration
65
- },
66
- enter: {
67
- opacity: 1,
68
- transform: "translate3d(".concat(0, "px,0,0)")
69
- },
70
- from: {
71
- opacity: 0,
72
- transform: "translate3d(".concat(xBreadcrumbPos, "px,0px,0)")
73
- },
74
- leave: {
75
- opacity: 0,
76
- transform: "translate3d(".concat(xBreadcrumbPos, "px,0,0)")
77
- }
78
- })
79
- };
80
-
81
- exports.animationConfig = animationConfig;
@@ -1,71 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var DSButton = require('@elliemae/ds-button');
6
- var dsClassnames = require('@elliemae/ds-classnames');
7
- var ShuttleBreadcrumb = require('./components/ShuttleBreadcrumb.js');
8
- var OverflowList = require('./components/OverflowList.js');
9
-
10
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
11
-
12
- var DSButton__default = /*#__PURE__*/_interopDefaultLegacy(DSButton);
13
-
14
- const blockName = 'shuttle';
15
- const headerBlockName = "".concat(blockName, "-header");
16
- const listBlockName = "".concat(blockName, "-list");
17
- const footerBlockName = "".concat(blockName, "-footer");
18
- const ShuttleContainer = dsClassnames.aggregatedClasses('div')(blockName); // wrapper
19
-
20
- const ShuttleWrapper = dsClassnames.aggregatedClasses('div')("".concat(blockName, "-wrapper")); // header
21
-
22
- const ShuttleHeader = dsClassnames.aggregatedClasses('div')(headerBlockName);
23
- const ShuttleHeaderBreadcrumb = dsClassnames.aggregatedClasses(ShuttleBreadcrumb)(headerBlockName, 'breadcrumb');
24
- const ShuttleHeaderSearchToggle = dsClassnames.aggregatedClasses(DSButton__default["default"])(headerBlockName, 'search-toggle'); // list
25
-
26
- const ShuttleList = dsClassnames.aggregatedClasses('div')(listBlockName, null, _ref => {
27
- let {
28
- showPulse
29
- } = _ref;
30
- return {
31
- 'show-pulse': showPulse
32
- };
33
- });
34
- const ShuttleListPanel = dsClassnames.aggregatedClasses('div')(listBlockName, 'panel', _ref2 => {
35
- let {
36
- open
37
- } = _ref2;
38
- return {
39
- open
40
- };
41
- });
42
- const Overflow = dsClassnames.aggregatedClasses(OverflowList)(listBlockName, 'overflow', _ref3 => {
43
- let {
44
- empty,
45
- searching
46
- } = _ref3;
47
- return {
48
- empty,
49
- searching
50
- };
51
- });
52
- const EmptyMessage = dsClassnames.aggregatedClasses('span')(listBlockName, 'empty-message');
53
- const LoadingList = dsClassnames.aggregatedClasses('div')(listBlockName, 'loading-list'); // footer
54
-
55
- const ShuttleFooter = dsClassnames.aggregatedClasses('div')(footerBlockName);
56
- const ShuttleFooterActions = dsClassnames.aggregatedClasses('div')(footerBlockName, 'actions');
57
- const ShuttleFooterCounter = dsClassnames.aggregatedClasses('span')(footerBlockName, 'counter');
58
-
59
- exports.EmptyMessage = EmptyMessage;
60
- exports.LoadingList = LoadingList;
61
- exports.Overflow = Overflow;
62
- exports.ShuttleContainer = ShuttleContainer;
63
- exports.ShuttleFooter = ShuttleFooter;
64
- exports.ShuttleFooterActions = ShuttleFooterActions;
65
- exports.ShuttleFooterCounter = ShuttleFooterCounter;
66
- exports.ShuttleHeader = ShuttleHeader;
67
- exports.ShuttleHeaderBreadcrumb = ShuttleHeaderBreadcrumb;
68
- exports.ShuttleHeaderSearchToggle = ShuttleHeaderSearchToggle;
69
- exports.ShuttleList = ShuttleList;
70
- exports.ShuttleListPanel = ShuttleListPanel;
71
- exports.ShuttleWrapper = ShuttleWrapper;