@elliemae/ds-shuttle 2.3.0-next.3 → 3.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (220) 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 +126 -0
  8. package/dist/cjs/Shuttle.actions.js.map +7 -0
  9. package/dist/cjs/ShuttleContainer.js +82 -0
  10. package/dist/cjs/ShuttleContainer.js.map +7 -0
  11. package/dist/cjs/ShuttleImpl.js +214 -0
  12. package/dist/cjs/ShuttleImpl.js.map +7 -0
  13. package/dist/cjs/ShuttleRenderer.js +144 -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 +55 -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 +60 -0
  30. package/dist/cjs/components/ShuttleListItem/ActionButtons.js.map +7 -0
  31. package/dist/cjs/components/ShuttleListItem/ShuttleListItem.js +83 -0
  32. package/dist/cjs/components/ShuttleListItem/ShuttleListItem.js.map +7 -0
  33. package/dist/cjs/components/ShuttleListItem/ShuttleSourceListItem.js +90 -0
  34. package/dist/cjs/components/ShuttleListItem/ShuttleSourceListItem.js.map +7 -0
  35. package/dist/cjs/components/ShuttleListItem/ShuttleTargetListItem.js +73 -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 +192 -0
  42. package/dist/cjs/components/ShuttleSource.js.map +7 -0
  43. package/dist/cjs/components/ShuttleTarget.js +104 -0
  44. package/dist/cjs/components/ShuttleTarget.js.map +7 -0
  45. package/dist/cjs/components/VirtualizedItem.js +51 -0
  46. package/dist/cjs/components/VirtualizedItem.js.map +7 -0
  47. package/dist/cjs/components/VirtualizedList.js +88 -0
  48. package/dist/cjs/components/VirtualizedList.js.map +7 -0
  49. package/dist/cjs/components/VirtualizedSortableList.js +48 -0
  50. package/dist/cjs/components/VirtualizedSortableList.js.map +7 -0
  51. package/dist/cjs/helper.js +83 -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 +1218 -0
  56. package/dist/cjs/tests/utils.js.map +7 -0
  57. package/dist/cjs/updateShuttleStateFromProps.js +98 -0
  58. package/dist/cjs/updateShuttleStateFromProps.js.map +7 -0
  59. package/dist/cjs/utils.js +41 -0
  60. package/dist/cjs/utils.js.map +7 -0
  61. package/dist/cjs/withProviders.js +45 -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 +106 -0
  70. package/dist/esm/Shuttle.actions.js.map +7 -0
  71. package/dist/esm/ShuttleContainer.js +64 -0
  72. package/dist/esm/ShuttleContainer.js.map +7 -0
  73. package/dist/esm/ShuttleImpl.js +199 -0
  74. package/dist/esm/ShuttleImpl.js.map +7 -0
  75. package/dist/esm/ShuttleRenderer.js +115 -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 +26 -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 +31 -0
  92. package/dist/esm/components/ShuttleListItem/ActionButtons.js.map +7 -0
  93. package/dist/esm/components/ShuttleListItem/ShuttleListItem.js +54 -0
  94. package/dist/esm/components/ShuttleListItem/ShuttleListItem.js.map +7 -0
  95. package/dist/esm/components/ShuttleListItem/ShuttleSourceListItem.js +61 -0
  96. package/dist/esm/components/ShuttleListItem/ShuttleSourceListItem.js.map +7 -0
  97. package/dist/esm/components/ShuttleListItem/ShuttleTargetListItem.js +44 -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 +175 -0
  104. package/dist/esm/components/ShuttleSource.js.map +7 -0
  105. package/dist/esm/components/ShuttleTarget.js +86 -0
  106. package/dist/esm/components/ShuttleTarget.js.map +7 -0
  107. package/dist/esm/components/VirtualizedItem.js +22 -0
  108. package/dist/esm/components/VirtualizedItem.js.map +7 -0
  109. package/dist/esm/components/VirtualizedList.js +59 -0
  110. package/dist/esm/components/VirtualizedList.js.map +7 -0
  111. package/dist/esm/components/VirtualizedSortableList.js +19 -0
  112. package/dist/esm/components/VirtualizedSortableList.js.map +7 -0
  113. package/dist/esm/helper.js +54 -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 +1189 -0
  118. package/dist/esm/tests/utils.js.map +7 -0
  119. package/dist/esm/updateShuttleStateFromProps.js +69 -0
  120. package/dist/esm/updateShuttleStateFromProps.js.map +7 -0
  121. package/dist/esm/utils.js +12 -0
  122. package/dist/esm/utils.js.map +7 -0
  123. package/dist/esm/withProviders.js +16 -0
  124. package/dist/esm/withProviders.js.map +7 -0
  125. package/{types → dist/types}/AnimationState.d.ts +3 -2
  126. package/{types → dist/types}/DSShuttle.d.ts +1 -1
  127. package/{types → dist/types}/SearchState.d.ts +3 -2
  128. package/{types → dist/types}/Shuttle.actions.d.ts +0 -0
  129. package/{types → dist/types}/ShuttleContainer.d.ts +0 -0
  130. package/dist/types/ShuttleImpl.d.ts +4 -0
  131. package/{types → dist/types}/ShuttleRenderer.d.ts +1 -0
  132. package/{types → dist/types}/ShuttleState.d.ts +3 -2
  133. package/{types → dist/types}/animation/animationConfig.d.ts +0 -0
  134. package/{types → dist/types}/classedComponents.d.ts +0 -0
  135. package/{types → dist/types}/components/LoadingIndicator.d.ts +1 -0
  136. package/{types → dist/types}/components/OverflowList.d.ts +1 -0
  137. package/{types → dist/types}/components/ShuttleBreadcrumb.d.ts +1 -0
  138. package/{types → dist/types}/components/ShuttleInfiniteScrollIndicator.d.ts +1 -0
  139. package/{types → dist/types}/components/ShuttleListItem/ActionButtons.d.ts +0 -0
  140. package/{types → dist/types}/components/ShuttleListItem/ShuttleListItem.d.ts +1 -0
  141. package/{types → dist/types}/components/ShuttleListItem/ShuttleSourceListItem.d.ts +1 -0
  142. package/{types → dist/types}/components/ShuttleListItem/ShuttleTargetListItem.d.ts +1 -0
  143. package/{types → dist/types}/components/ShuttleListPanel.d.ts +1 -0
  144. package/{types → dist/types}/components/ShuttleSearchBox.d.ts +3 -1
  145. package/{types → dist/types}/components/ShuttleSource.d.ts +1 -0
  146. package/{types → dist/types}/components/ShuttleTarget.d.ts +1 -0
  147. package/{types → dist/types}/components/VirtualizedItem.d.ts +1 -0
  148. package/{types → dist/types}/components/VirtualizedList.d.ts +1 -0
  149. package/{types → dist/types}/components/VirtualizedSortableList.d.ts +1 -0
  150. package/{types → dist/types}/helper.d.ts +0 -0
  151. package/dist/types/index.d.ts +1 -0
  152. package/{types → dist/types}/tests/DSShuttle.events.test.d.ts +0 -0
  153. package/{types → dist/types}/tests/DSShuttle.test.d.ts +0 -0
  154. package/{types → dist/types}/tests/utils.d.ts +0 -0
  155. package/dist/types/updateShuttleStateFromProps.d.ts +3 -0
  156. package/{types → dist/types}/utils.d.ts +0 -0
  157. package/{types → dist/types}/withProviders.d.ts +1 -0
  158. package/package.json +97 -89
  159. package/cjs/AnimationState.js +0 -48
  160. package/cjs/DSShuttle.js +0 -223
  161. package/cjs/SearchState.js +0 -41
  162. package/cjs/Shuttle.actions.js +0 -137
  163. package/cjs/ShuttleContainer.js +0 -87
  164. package/cjs/ShuttleImpl.js +0 -311
  165. package/cjs/ShuttleRenderer.js +0 -139
  166. package/cjs/ShuttleState.js +0 -80
  167. package/cjs/animation/animationConfig.js +0 -81
  168. package/cjs/classedComponents.js +0 -71
  169. package/cjs/components/LoadingIndicator.js +0 -25
  170. package/cjs/components/OverflowList.js +0 -53
  171. package/cjs/components/ShuttleBreadcrumb.js +0 -42
  172. package/cjs/components/ShuttleInfiniteScrollIndicator.js +0 -39
  173. package/cjs/components/ShuttleListItem/ActionButtons.js +0 -55
  174. package/cjs/components/ShuttleListItem/ShuttleListItem.js +0 -85
  175. package/cjs/components/ShuttleListItem/ShuttleSourceListItem.js +0 -76
  176. package/cjs/components/ShuttleListItem/ShuttleTargetListItem.js +0 -57
  177. package/cjs/components/ShuttleListPanel.js +0 -31
  178. package/cjs/components/ShuttleSearchBox.js +0 -110
  179. package/cjs/components/ShuttleSource.js +0 -188
  180. package/cjs/components/ShuttleTarget.js +0 -116
  181. package/cjs/components/VirtualizedItem.js +0 -46
  182. package/cjs/components/VirtualizedList.js +0 -93
  183. package/cjs/components/VirtualizedSortableList.js +0 -41
  184. package/cjs/helper.js +0 -117
  185. package/cjs/index.js +0 -12
  186. package/cjs/updateShuttleStateFromProps.js +0 -94
  187. package/cjs/utils.js +0 -43
  188. package/cjs/withProviders.js +0 -29
  189. package/esm/DSShuttle.js +0 -213
  190. package/esm/SearchState.js +0 -35
  191. package/esm/Shuttle.actions.js +0 -123
  192. package/esm/ShuttleContainer.js +0 -80
  193. package/esm/ShuttleImpl.js +0 -304
  194. package/esm/ShuttleRenderer.js +0 -132
  195. package/esm/ShuttleState.js +0 -74
  196. package/esm/animation/animationConfig.js +0 -77
  197. package/esm/classedComponents.js +0 -51
  198. package/esm/components/LoadingIndicator.js +0 -18
  199. package/esm/components/OverflowList.js +0 -46
  200. package/esm/components/ShuttleBreadcrumb.js +0 -35
  201. package/esm/components/ShuttleInfiniteScrollIndicator.js +0 -32
  202. package/esm/components/ShuttleListItem/ActionButtons.js +0 -43
  203. package/esm/components/ShuttleListItem/ShuttleListItem.js +0 -76
  204. package/esm/components/ShuttleListItem/ShuttleSourceListItem.js +0 -68
  205. package/esm/components/ShuttleListItem/ShuttleTargetListItem.js +0 -49
  206. package/esm/components/ShuttleListPanel.js +0 -24
  207. package/esm/components/ShuttleSearchBox.js +0 -104
  208. package/esm/components/ShuttleSource.js +0 -179
  209. package/esm/components/ShuttleTarget.js +0 -107
  210. package/esm/components/VirtualizedItem.js +0 -40
  211. package/esm/components/VirtualizedList.js +0 -84
  212. package/esm/components/VirtualizedSortableList.js +0 -34
  213. package/esm/helper.js +0 -78
  214. package/esm/index.js +0 -2
  215. package/esm/updateShuttleStateFromProps.js +0 -88
  216. package/esm/utils.js +0 -18
  217. package/esm/withProviders.js +0 -22
  218. package/types/ShuttleImpl.d.ts +0 -3
  219. package/types/index.d.ts +0 -1
  220. package/types/updateShuttleStateFromProps.d.ts +0 -1
@@ -1,137 +0,0 @@
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; }
23
- function toggleItemSelection(itemId) {
24
- return state => _objectSpread(_objectSpread({}, state), {}, {
25
- checkedItems: dsUtilities.addOrRemove(state.checkedItems, itemId)
26
- });
27
- }
28
- function navigateTo(item, dest) {
29
- const hierarchyType = helper.getHierarchyTypeName(dest);
30
- return state => {
31
- const indexInHierarchy = state[hierarchyType].findIndex(hItem => hItem.id === item.id);
32
- const hierarchy = state[hierarchyType];
33
- return _objectSpread(_objectSpread({}, state), {}, {
34
- [hierarchyType]: indexInHierarchy !== -1 ? hierarchy.slice(0, indexInHierarchy + 1) : [...hierarchy, item]
35
- });
36
- };
37
- }
38
- function moveItem(item) {
39
- return state => {
40
- const movedItems = helper.toggleInObject(state.movedItems, item.id, item);
41
- return _objectSpread(_objectSpread({}, state), {}, {
42
- movedItems
43
- });
44
- };
45
- }
46
- const defaultOptions = {
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
-
65
- const item = collection[itemIndex];
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
- };
73
- }
74
-
75
- function addToTarget(itemToAdd, collection) {
76
- return (state, _ref2) => {
77
- let {
78
- idField
79
- } = _ref2;
80
- const items = collection || state.preparedItems;
81
- const {
82
- item,
83
- children
84
- } = getItemDeep({
85
- collection: items,
86
- id: itemToAdd[idField]
87
- });
88
- return _objectSpread(_objectSpread({}, state), {}, {
89
- movedItems: [...state.movedItems, item],
90
- targetItems: [...state.targetItems, item, ...children]
91
- });
92
- };
93
- } // todo: optimize this
94
-
95
- function removeFromTarget(itemToRemove) {
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);
102
- const item = targetItems[itemIndex];
103
- const children = item !== null && item !== void 0 && item.hasChildren ? dsUtilities.compose(helper.filterMovedItems(state.movedItems), utils.getChildren({
104
- index: itemIndex
105
- }))(targetItems) || [] : [];
106
- targetItems.splice(itemIndex, 1);
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]);
111
- }
112
-
113
- return _objectSpread(_objectSpread({}, state), {}, {
114
- movedItems: state.movedItems.filter(mItem => mItem[idField] !== itemToRemove[idField]),
115
- targetItems
116
- });
117
- };
118
- }
119
- function resetCheckedItems() {
120
- return state => _objectSpread(_objectSpread({}, state), {}, {
121
- checkedItems: []
122
- });
123
- }
124
- function resetMovedItems() {
125
- return state => _objectSpread(_objectSpread({}, state), {}, {
126
- movedItems: [],
127
- targetItems: []
128
- });
129
- }
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;
@@ -1,87 +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.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
-
28
- function filterItemsByTerm(items, term) {
29
- return items.filter(item => item.name.toLowerCase().indexOf(String(term).toLowerCase()) !== -1 || String(item.id).indexOf(String(term).toLowerCase()) !== -1);
30
- }
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
-
48
- const {
49
- movedItems,
50
- hierarchy,
51
- hierarchyDest,
52
- checkedItems,
53
- searchTerm,
54
- searching,
55
- toggleItemSelection,
56
- resetCheckedItems,
57
- resetMovedItems,
58
- moveCheckedItems,
59
- moveItem,
60
- navigate
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);
67
- }, [items, searching, hierarchyDest, movedItems]);
68
- return dsUtilities.isFunction(children) && children({
69
- checkedItems,
70
- hierarchy,
71
- hierarchyDest,
72
- onCheckItem: toggleItemSelection,
73
- onClearCheckedItems: resetCheckedItems,
74
- onClearMovedItems: resetMovedItems,
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),
80
- sourceItems,
81
- targetItems
82
- });
83
- }
84
-
85
- var ShuttleContainer$1 = withProviders(ShuttleContainer);
86
-
87
- module.exports = ShuttleContainer$1;
@@ -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;