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

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/cjs/AnimationState.js +48 -0
  2. package/cjs/DSShuttle.js +223 -0
  3. package/cjs/SearchState.js +41 -0
  4. package/cjs/Shuttle.actions.js +137 -0
  5. package/cjs/ShuttleContainer.js +87 -0
  6. package/cjs/ShuttleImpl.js +311 -0
  7. package/cjs/ShuttleRenderer.js +139 -0
  8. package/cjs/ShuttleState.js +80 -0
  9. package/cjs/animation/animationConfig.js +81 -0
  10. package/cjs/classedComponents.js +71 -0
  11. package/cjs/components/LoadingIndicator.js +25 -0
  12. package/cjs/components/OverflowList.js +53 -0
  13. package/cjs/components/ShuttleBreadcrumb.js +42 -0
  14. package/cjs/components/ShuttleInfiniteScrollIndicator.js +39 -0
  15. package/cjs/components/ShuttleListItem/ActionButtons.js +55 -0
  16. package/cjs/components/ShuttleListItem/ShuttleListItem.js +85 -0
  17. package/cjs/components/ShuttleListItem/ShuttleSourceListItem.js +76 -0
  18. package/cjs/components/ShuttleListItem/ShuttleTargetListItem.js +57 -0
  19. package/cjs/components/ShuttleListPanel.js +31 -0
  20. package/cjs/components/ShuttleSearchBox.js +110 -0
  21. package/cjs/components/ShuttleSource.js +188 -0
  22. package/cjs/components/ShuttleTarget.js +116 -0
  23. package/cjs/components/VirtualizedItem.js +46 -0
  24. package/cjs/components/VirtualizedList.js +93 -0
  25. package/cjs/components/VirtualizedSortableList.js +41 -0
  26. package/cjs/helper.js +117 -0
  27. package/cjs/index.js +12 -0
  28. package/cjs/updateShuttleStateFromProps.js +94 -0
  29. package/cjs/utils.js +43 -0
  30. package/cjs/withProviders.js +29 -0
  31. package/{dist/esm → esm}/AnimationState.js +8 -12
  32. package/esm/DSShuttle.js +213 -0
  33. package/esm/SearchState.js +35 -0
  34. package/esm/Shuttle.actions.js +123 -0
  35. package/esm/ShuttleContainer.js +80 -0
  36. package/esm/ShuttleImpl.js +304 -0
  37. package/esm/ShuttleRenderer.js +132 -0
  38. package/esm/ShuttleState.js +74 -0
  39. package/esm/animation/animationConfig.js +77 -0
  40. package/esm/classedComponents.js +51 -0
  41. package/esm/components/LoadingIndicator.js +18 -0
  42. package/esm/components/OverflowList.js +46 -0
  43. package/esm/components/ShuttleBreadcrumb.js +35 -0
  44. package/esm/components/ShuttleInfiniteScrollIndicator.js +32 -0
  45. package/esm/components/ShuttleListItem/ActionButtons.js +43 -0
  46. package/esm/components/ShuttleListItem/ShuttleListItem.js +76 -0
  47. package/esm/components/ShuttleListItem/ShuttleSourceListItem.js +68 -0
  48. package/esm/components/ShuttleListItem/ShuttleTargetListItem.js +49 -0
  49. package/esm/components/ShuttleListPanel.js +24 -0
  50. package/esm/components/ShuttleSearchBox.js +104 -0
  51. package/esm/components/ShuttleSource.js +179 -0
  52. package/esm/components/ShuttleTarget.js +107 -0
  53. package/esm/components/VirtualizedItem.js +40 -0
  54. package/esm/components/VirtualizedList.js +84 -0
  55. package/esm/components/VirtualizedSortableList.js +34 -0
  56. package/esm/helper.js +78 -0
  57. package/esm/index.js +2 -0
  58. package/esm/updateShuttleStateFromProps.js +88 -0
  59. package/esm/utils.js +18 -0
  60. package/esm/withProviders.js +22 -0
  61. package/package.json +90 -93
  62. package/{dist/types → types}/AnimationState.d.ts +2 -3
  63. package/{dist/types → types}/DSShuttle.d.ts +1 -1
  64. package/{dist/types → types}/SearchState.d.ts +2 -3
  65. package/{dist/types → types}/Shuttle.actions.d.ts +0 -0
  66. package/{dist/types → types}/ShuttleContainer.d.ts +0 -0
  67. package/types/ShuttleImpl.d.ts +3 -0
  68. package/{dist/types → types}/ShuttleRenderer.d.ts +0 -1
  69. package/{dist/types → types}/ShuttleState.d.ts +2 -3
  70. package/{dist/types → types}/animation/animationConfig.d.ts +0 -0
  71. package/{dist/types → types}/classedComponents.d.ts +0 -0
  72. package/{dist/types → types}/components/LoadingIndicator.d.ts +0 -1
  73. package/{dist/types → types}/components/OverflowList.d.ts +0 -1
  74. package/{dist/types → types}/components/ShuttleBreadcrumb.d.ts +0 -1
  75. package/{dist/types → types}/components/ShuttleInfiniteScrollIndicator.d.ts +0 -1
  76. package/{dist/types → types}/components/ShuttleListItem/ActionButtons.d.ts +0 -0
  77. package/{dist/types → types}/components/ShuttleListItem/ShuttleListItem.d.ts +0 -1
  78. package/{dist/types → types}/components/ShuttleListItem/ShuttleSourceListItem.d.ts +0 -1
  79. package/{dist/types → types}/components/ShuttleListItem/ShuttleTargetListItem.d.ts +0 -1
  80. package/{dist/types → types}/components/ShuttleListPanel.d.ts +0 -1
  81. package/{dist/types → types}/components/ShuttleSearchBox.d.ts +1 -3
  82. package/{dist/types → types}/components/ShuttleSource.d.ts +0 -1
  83. package/{dist/types → types}/components/ShuttleTarget.d.ts +0 -1
  84. package/{dist/types → types}/components/VirtualizedItem.d.ts +0 -1
  85. package/{dist/types → types}/components/VirtualizedList.d.ts +0 -1
  86. package/{dist/types → types}/components/VirtualizedSortableList.d.ts +0 -1
  87. package/{dist/types → types}/helper.d.ts +0 -0
  88. package/types/index.d.ts +1 -0
  89. package/{dist/types → types}/tests/DSShuttle.events.test.d.ts +0 -0
  90. package/{dist/types → types}/tests/DSShuttle.test.d.ts +0 -0
  91. package/{dist/types → types}/tests/utils.d.ts +0 -0
  92. package/types/updateShuttleStateFromProps.d.ts +1 -0
  93. package/{dist/types → types}/utils.d.ts +0 -0
  94. package/{dist/types → types}/withProviders.d.ts +0 -1
  95. package/dist/cjs/AnimationState.js +0 -75
  96. package/dist/cjs/AnimationState.js.map +0 -7
  97. package/dist/cjs/DSShuttle.js +0 -170
  98. package/dist/cjs/DSShuttle.js.map +0 -7
  99. package/dist/cjs/SearchState.js +0 -60
  100. package/dist/cjs/SearchState.js.map +0 -7
  101. package/dist/cjs/Shuttle.actions.js +0 -126
  102. package/dist/cjs/Shuttle.actions.js.map +0 -7
  103. package/dist/cjs/ShuttleContainer.js +0 -82
  104. package/dist/cjs/ShuttleContainer.js.map +0 -7
  105. package/dist/cjs/ShuttleImpl.js +0 -214
  106. package/dist/cjs/ShuttleImpl.js.map +0 -7
  107. package/dist/cjs/ShuttleRenderer.js +0 -144
  108. package/dist/cjs/ShuttleRenderer.js.map +0 -7
  109. package/dist/cjs/ShuttleState.js +0 -84
  110. package/dist/cjs/ShuttleState.js.map +0 -7
  111. package/dist/cjs/animation/animationConfig.js +0 -78
  112. package/dist/cjs/animation/animationConfig.js.map +0 -7
  113. package/dist/cjs/classedComponents.js +0 -72
  114. package/dist/cjs/classedComponents.js.map +0 -7
  115. package/dist/cjs/components/LoadingIndicator.js +0 -52
  116. package/dist/cjs/components/LoadingIndicator.js.map +0 -7
  117. package/dist/cjs/components/OverflowList.js +0 -55
  118. package/dist/cjs/components/OverflowList.js.map +0 -7
  119. package/dist/cjs/components/ShuttleBreadcrumb.js +0 -54
  120. package/dist/cjs/components/ShuttleBreadcrumb.js.map +0 -7
  121. package/dist/cjs/components/ShuttleInfiniteScrollIndicator.js +0 -48
  122. package/dist/cjs/components/ShuttleInfiniteScrollIndicator.js.map +0 -7
  123. package/dist/cjs/components/ShuttleListItem/ActionButtons.js +0 -60
  124. package/dist/cjs/components/ShuttleListItem/ActionButtons.js.map +0 -7
  125. package/dist/cjs/components/ShuttleListItem/ShuttleListItem.js +0 -83
  126. package/dist/cjs/components/ShuttleListItem/ShuttleListItem.js.map +0 -7
  127. package/dist/cjs/components/ShuttleListItem/ShuttleSourceListItem.js +0 -90
  128. package/dist/cjs/components/ShuttleListItem/ShuttleSourceListItem.js.map +0 -7
  129. package/dist/cjs/components/ShuttleListItem/ShuttleTargetListItem.js +0 -73
  130. package/dist/cjs/components/ShuttleListItem/ShuttleTargetListItem.js.map +0 -7
  131. package/dist/cjs/components/ShuttleListPanel.js +0 -49
  132. package/dist/cjs/components/ShuttleListPanel.js.map +0 -7
  133. package/dist/cjs/components/ShuttleSearchBox.js +0 -99
  134. package/dist/cjs/components/ShuttleSearchBox.js.map +0 -7
  135. package/dist/cjs/components/ShuttleSource.js +0 -192
  136. package/dist/cjs/components/ShuttleSource.js.map +0 -7
  137. package/dist/cjs/components/ShuttleTarget.js +0 -104
  138. package/dist/cjs/components/ShuttleTarget.js.map +0 -7
  139. package/dist/cjs/components/VirtualizedItem.js +0 -51
  140. package/dist/cjs/components/VirtualizedItem.js.map +0 -7
  141. package/dist/cjs/components/VirtualizedList.js +0 -88
  142. package/dist/cjs/components/VirtualizedList.js.map +0 -7
  143. package/dist/cjs/components/VirtualizedSortableList.js +0 -48
  144. package/dist/cjs/components/VirtualizedSortableList.js.map +0 -7
  145. package/dist/cjs/helper.js +0 -83
  146. package/dist/cjs/helper.js.map +0 -7
  147. package/dist/cjs/index.js +0 -38
  148. package/dist/cjs/index.js.map +0 -7
  149. package/dist/cjs/tests/utils.js +0 -1218
  150. package/dist/cjs/tests/utils.js.map +0 -7
  151. package/dist/cjs/updateShuttleStateFromProps.js +0 -98
  152. package/dist/cjs/updateShuttleStateFromProps.js.map +0 -7
  153. package/dist/cjs/utils.js +0 -41
  154. package/dist/cjs/utils.js.map +0 -7
  155. package/dist/cjs/withProviders.js +0 -45
  156. package/dist/cjs/withProviders.js.map +0 -7
  157. package/dist/esm/AnimationState.js.map +0 -7
  158. package/dist/esm/DSShuttle.js +0 -141
  159. package/dist/esm/DSShuttle.js.map +0 -7
  160. package/dist/esm/SearchState.js +0 -31
  161. package/dist/esm/SearchState.js.map +0 -7
  162. package/dist/esm/Shuttle.actions.js +0 -106
  163. package/dist/esm/Shuttle.actions.js.map +0 -7
  164. package/dist/esm/ShuttleContainer.js +0 -64
  165. package/dist/esm/ShuttleContainer.js.map +0 -7
  166. package/dist/esm/ShuttleImpl.js +0 -199
  167. package/dist/esm/ShuttleImpl.js.map +0 -7
  168. package/dist/esm/ShuttleRenderer.js +0 -115
  169. package/dist/esm/ShuttleRenderer.js.map +0 -7
  170. package/dist/esm/ShuttleState.js +0 -55
  171. package/dist/esm/ShuttleState.js.map +0 -7
  172. package/dist/esm/animation/animationConfig.js +0 -49
  173. package/dist/esm/animation/animationConfig.js.map +0 -7
  174. package/dist/esm/classedComponents.js +0 -43
  175. package/dist/esm/classedComponents.js.map +0 -7
  176. package/dist/esm/components/LoadingIndicator.js +0 -23
  177. package/dist/esm/components/LoadingIndicator.js.map +0 -7
  178. package/dist/esm/components/OverflowList.js +0 -26
  179. package/dist/esm/components/OverflowList.js.map +0 -7
  180. package/dist/esm/components/ShuttleBreadcrumb.js +0 -25
  181. package/dist/esm/components/ShuttleBreadcrumb.js.map +0 -7
  182. package/dist/esm/components/ShuttleInfiniteScrollIndicator.js +0 -19
  183. package/dist/esm/components/ShuttleInfiniteScrollIndicator.js.map +0 -7
  184. package/dist/esm/components/ShuttleListItem/ActionButtons.js +0 -31
  185. package/dist/esm/components/ShuttleListItem/ActionButtons.js.map +0 -7
  186. package/dist/esm/components/ShuttleListItem/ShuttleListItem.js +0 -54
  187. package/dist/esm/components/ShuttleListItem/ShuttleListItem.js.map +0 -7
  188. package/dist/esm/components/ShuttleListItem/ShuttleSourceListItem.js +0 -61
  189. package/dist/esm/components/ShuttleListItem/ShuttleSourceListItem.js.map +0 -7
  190. package/dist/esm/components/ShuttleListItem/ShuttleTargetListItem.js +0 -44
  191. package/dist/esm/components/ShuttleListItem/ShuttleTargetListItem.js.map +0 -7
  192. package/dist/esm/components/ShuttleListPanel.js +0 -20
  193. package/dist/esm/components/ShuttleListPanel.js.map +0 -7
  194. package/dist/esm/components/ShuttleSearchBox.js +0 -70
  195. package/dist/esm/components/ShuttleSearchBox.js.map +0 -7
  196. package/dist/esm/components/ShuttleSource.js +0 -175
  197. package/dist/esm/components/ShuttleSource.js.map +0 -7
  198. package/dist/esm/components/ShuttleTarget.js +0 -86
  199. package/dist/esm/components/ShuttleTarget.js.map +0 -7
  200. package/dist/esm/components/VirtualizedItem.js +0 -22
  201. package/dist/esm/components/VirtualizedItem.js.map +0 -7
  202. package/dist/esm/components/VirtualizedList.js +0 -59
  203. package/dist/esm/components/VirtualizedList.js.map +0 -7
  204. package/dist/esm/components/VirtualizedSortableList.js +0 -19
  205. package/dist/esm/components/VirtualizedSortableList.js.map +0 -7
  206. package/dist/esm/helper.js +0 -54
  207. package/dist/esm/helper.js.map +0 -7
  208. package/dist/esm/index.js +0 -9
  209. package/dist/esm/index.js.map +0 -7
  210. package/dist/esm/tests/utils.js +0 -1189
  211. package/dist/esm/tests/utils.js.map +0 -7
  212. package/dist/esm/updateShuttleStateFromProps.js +0 -69
  213. package/dist/esm/updateShuttleStateFromProps.js.map +0 -7
  214. package/dist/esm/utils.js +0 -12
  215. package/dist/esm/utils.js.map +0 -7
  216. package/dist/esm/withProviders.js +0 -16
  217. package/dist/esm/withProviders.js.map +0 -7
  218. package/dist/types/ShuttleImpl.d.ts +0 -4
  219. package/dist/types/index.d.ts +0 -1
  220. package/dist/types/updateShuttleStateFromProps.d.ts +0 -3
@@ -1,106 +0,0 @@
1
- import * as React from "react";
2
- import {
3
- addOrRemove,
4
- cloneDeep,
5
- hashArray,
6
- compose
7
- } from "@elliemae/ds-utilities";
8
- import {
9
- getHierarchyTypeName,
10
- toggleInObject,
11
- filterMovedItems
12
- } from "./helper";
13
- import utils from "./utils";
14
- function toggleItemSelection(itemId) {
15
- return (state) => ({
16
- ...state,
17
- checkedItems: addOrRemove(state.checkedItems, itemId)
18
- });
19
- }
20
- function navigateTo(item, dest) {
21
- const hierarchyType = getHierarchyTypeName(dest);
22
- return (state) => {
23
- const indexInHierarchy = state[hierarchyType].findIndex((hItem) => hItem.id === item.id);
24
- const hierarchy = state[hierarchyType];
25
- return {
26
- ...state,
27
- [hierarchyType]: indexInHierarchy !== -1 ? hierarchy.slice(0, indexInHierarchy + 1) : [...hierarchy, item]
28
- };
29
- };
30
- }
31
- function moveItem(item) {
32
- return (state) => {
33
- const movedItems = toggleInObject(state.movedItems, item.id, item);
34
- return {
35
- ...state,
36
- movedItems
37
- };
38
- };
39
- }
40
- const defaultOptions = {
41
- parentField: "parent",
42
- idField: "id",
43
- op: (hasMoved) => !hasMoved
44
- };
45
- function getItemDeep({ collection, id, options }) {
46
- const { idField } = { ...defaultOptions, ...options };
47
- const itemIndex = collection.findIndex((fItem) => fItem[idField] === id);
48
- const item = collection[itemIndex];
49
- const children = item?.hasChildren ? compose(utils.getChildren({ index: itemIndex }))(collection) || [] : [];
50
- return { item, children };
51
- }
52
- function addToTarget(itemToAdd, collection) {
53
- return (state, { idField }) => {
54
- const items = collection || state.preparedItems;
55
- const { item, children } = getItemDeep({
56
- collection: items,
57
- id: itemToAdd[idField]
58
- });
59
- return {
60
- ...state,
61
- movedItems: [...state.movedItems, item],
62
- targetItems: [...state.targetItems, item, ...children]
63
- };
64
- };
65
- }
66
- function removeFromTarget(itemToRemove) {
67
- return (state, { idField }) => {
68
- let targetItems = cloneDeep(state.targetItems);
69
- const itemIndex = targetItems.findIndex((fItem) => fItem.id === itemToRemove.id);
70
- const item = targetItems[itemIndex];
71
- const children = item?.hasChildren ? compose(filterMovedItems(state.movedItems), utils.getChildren({ index: itemIndex }))(targetItems) || [] : [];
72
- targetItems.splice(itemIndex, 1);
73
- if (item?.hasChildren && children.length) {
74
- const childrenHash = hashArray(children, "id");
75
- targetItems = targetItems.filter((i) => !childrenHash[i.id]);
76
- }
77
- return {
78
- ...state,
79
- movedItems: state.movedItems.filter((mItem) => mItem[idField] !== itemToRemove[idField]),
80
- targetItems
81
- };
82
- };
83
- }
84
- function resetCheckedItems() {
85
- return (state) => ({
86
- ...state,
87
- checkedItems: []
88
- });
89
- }
90
- function resetMovedItems() {
91
- return (state) => ({
92
- ...state,
93
- movedItems: [],
94
- targetItems: []
95
- });
96
- }
97
- export {
98
- addToTarget,
99
- moveItem,
100
- navigateTo,
101
- removeFromTarget,
102
- resetCheckedItems,
103
- resetMovedItems,
104
- toggleItemSelection
105
- };
106
- //# sourceMappingURL=Shuttle.actions.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../scripts/build/transpile/react-shim.js", "../../src/Shuttle.actions.js"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import {\n addOrRemove,\n cloneDeep,\n hashArray,\n compose,\n} from '@elliemae/ds-utilities';\nimport {\n getHierarchyTypeName,\n toggleInObject,\n filterMovedItems,\n} from './helper';\n\nimport utils from './utils';\n\nexport function toggleItemSelection(itemId) {\n return state => ({\n ...state,\n checkedItems: addOrRemove(state.checkedItems, itemId),\n });\n}\nexport function navigateTo(item, dest) {\n const hierarchyType = getHierarchyTypeName(dest);\n return state => {\n const indexInHierarchy = state[hierarchyType].findIndex(\n hItem => hItem.id === item.id,\n );\n const hierarchy = state[hierarchyType];\n return {\n ...state,\n [hierarchyType]:\n indexInHierarchy !== -1\n ? hierarchy.slice(0, indexInHierarchy + 1)\n : [...hierarchy, item],\n };\n };\n}\nexport function moveItem(item) {\n return state => {\n const movedItems = toggleInObject(state.movedItems, item.id, item);\n return {\n ...state,\n movedItems,\n };\n };\n}\n\nconst defaultOptions = {\n parentField: 'parent',\n idField: 'id',\n op: hasMoved => !hasMoved,\n};\n\n// todo: optimize this\nfunction getItemDeep({ collection, id, options }) {\n const { idField } = { ...defaultOptions, ...options };\n const itemIndex = collection.findIndex(fItem => fItem[idField] === id);\n\n // get item with nested children\n const item = collection[itemIndex];\n const children = item?.hasChildren\n ? compose(utils.getChildren({ index: itemIndex }))(collection) || []\n : [];\n\n return { item, children };\n}\n\nexport function addToTarget(itemToAdd, collection) {\n return (state, { idField }) => {\n const items = collection || state.preparedItems;\n\n const { item, children } = getItemDeep({\n collection: items,\n id: itemToAdd[idField],\n });\n\n return {\n ...state,\n movedItems: [...state.movedItems, item],\n targetItems: [...state.targetItems, item, ...children],\n };\n };\n}\n\n// todo: optimize this\nexport function removeFromTarget(itemToRemove) {\n return (state, { idField }) => {\n let targetItems = cloneDeep(state.targetItems);\n\n const itemIndex = targetItems.findIndex(\n fItem => fItem.id === itemToRemove.id,\n );\n\n const item = targetItems[itemIndex];\n const children = item?.hasChildren\n ? compose(\n filterMovedItems(state.movedItems),\n utils.getChildren({ index: itemIndex }),\n )(targetItems) || []\n : [];\n\n targetItems.splice(itemIndex, 1);\n if (item?.hasChildren && children.length) {\n const childrenHash = hashArray(children, 'id');\n targetItems = targetItems.filter(i => !childrenHash[i.id]);\n }\n\n return {\n ...state,\n movedItems: state.movedItems.filter(\n mItem => mItem[idField] !== itemToRemove[idField],\n ),\n targetItems,\n };\n };\n}\n\nexport function resetCheckedItems() {\n return state => ({\n ...state,\n checkedItems: [],\n });\n}\nexport function resetMovedItems() {\n return state => ({\n ...state,\n movedItems: [],\n targetItems: [],\n });\n}\n"],
5
- "mappings": "AAAA;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA;AAAA;AAAA;AAAA;AAAA;AAMA;AAEO,6BAA6B,QAAQ;AAC1C,SAAO,WAAU;AAAA,OACZ;AAAA,IACH,cAAc,YAAY,MAAM,cAAc;AAAA;AAAA;AAG3C,oBAAoB,MAAM,MAAM;AACrC,QAAM,gBAAgB,qBAAqB;AAC3C,SAAO,WAAS;AACd,UAAM,mBAAmB,MAAM,eAAe,UAC5C,WAAS,MAAM,OAAO,KAAK;AAE7B,UAAM,YAAY,MAAM;AACxB,WAAO;AAAA,SACF;AAAA,OACF,gBACC,qBAAqB,KACjB,UAAU,MAAM,GAAG,mBAAmB,KACtC,CAAC,GAAG,WAAW;AAAA;AAAA;AAAA;AAIpB,kBAAkB,MAAM;AAC7B,SAAO,WAAS;AACd,UAAM,aAAa,eAAe,MAAM,YAAY,KAAK,IAAI;AAC7D,WAAO;AAAA,SACF;AAAA,MACH;AAAA;AAAA;AAAA;AAKN,MAAM,iBAAiB;AAAA,EACrB,aAAa;AAAA,EACb,SAAS;AAAA,EACT,IAAI,cAAY,CAAC;AAAA;AAInB,qBAAqB,EAAE,YAAY,IAAI,WAAW;AAChD,QAAM,EAAE,YAAY,KAAK,mBAAmB;AAC5C,QAAM,YAAY,WAAW,UAAU,WAAS,MAAM,aAAa;AAGnE,QAAM,OAAO,WAAW;AACxB,QAAM,WAAW,MAAM,cACnB,QAAQ,MAAM,YAAY,EAAE,OAAO,cAAc,eAAe,KAChE;AAEJ,SAAO,EAAE,MAAM;AAAA;AAGV,qBAAqB,WAAW,YAAY;AACjD,SAAO,CAAC,OAAO,EAAE,cAAc;AAC7B,UAAM,QAAQ,cAAc,MAAM;AAElC,UAAM,EAAE,MAAM,aAAa,YAAY;AAAA,MACrC,YAAY;AAAA,MACZ,IAAI,UAAU;AAAA;AAGhB,WAAO;AAAA,SACF;AAAA,MACH,YAAY,CAAC,GAAG,MAAM,YAAY;AAAA,MAClC,aAAa,CAAC,GAAG,MAAM,aAAa,MAAM,GAAG;AAAA;AAAA;AAAA;AAM5C,0BAA0B,cAAc;AAC7C,SAAO,CAAC,OAAO,EAAE,cAAc;AAC7B,QAAI,cAAc,UAAU,MAAM;AAElC,UAAM,YAAY,YAAY,UAC5B,WAAS,MAAM,OAAO,aAAa;AAGrC,UAAM,OAAO,YAAY;AACzB,UAAM,WAAW,MAAM,cACnB,QACE,iBAAiB,MAAM,aACvB,MAAM,YAAY,EAAE,OAAO,cAC3B,gBAAgB,KAClB;AAEJ,gBAAY,OAAO,WAAW;AAC9B,QAAI,MAAM,eAAe,SAAS,QAAQ;AACxC,YAAM,eAAe,UAAU,UAAU;AACzC,oBAAc,YAAY,OAAO,OAAK,CAAC,aAAa,EAAE;AAAA;AAGxD,WAAO;AAAA,SACF;AAAA,MACH,YAAY,MAAM,WAAW,OAC3B,WAAS,MAAM,aAAa,aAAa;AAAA,MAE3C;AAAA;AAAA;AAAA;AAKC,6BAA6B;AAClC,SAAO,WAAU;AAAA,OACZ;AAAA,IACH,cAAc;AAAA;AAAA;AAGX,2BAA2B;AAChC,SAAO,WAAU;AAAA,OACZ;AAAA,IACH,YAAY;AAAA,IACZ,aAAa;AAAA;AAAA;",
6
- "names": []
7
- }
@@ -1,64 +0,0 @@
1
- import * as React from "react";
2
- import { useContext, useMemo } from "react";
3
- import {
4
- isFunction,
5
- compose,
6
- uniqBy,
7
- values,
8
- sortBy
9
- } from "@elliemae/ds-utilities";
10
- import { withProviders } from "./withProviders";
11
- import {
12
- prepareItems,
13
- getActiveIdFromHierarchy,
14
- filterItemsByHierarchy,
15
- getItemsById
16
- } from "./helper";
17
- import { SearchState } from "./SearchState";
18
- import { ShuttleState } from "./ShuttleState";
19
- function filterItemsByTerm(items, term) {
20
- return items.filter((item) => item.name.toLowerCase().indexOf(String(term).toLowerCase()) !== -1 || String(item.id).indexOf(String(term).toLowerCase()) !== -1);
21
- }
22
- function ShuttleContainer({ items = [], children }) {
23
- const { state: shuttleState, ...handlers } = useContext(ShuttleState.Context);
24
- const { state: searchState } = useContext(SearchState.Context);
25
- const {
26
- movedItems,
27
- hierarchy,
28
- hierarchyDest,
29
- checkedItems,
30
- searchTerm,
31
- searching,
32
- toggleItemSelection,
33
- resetCheckedItems,
34
- resetMovedItems,
35
- moveCheckedItems,
36
- moveItem,
37
- navigate
38
- } = { ...shuttleState, ...searchState, ...handlers };
39
- const sourceItems = useMemo(() => compose((items2) => items2.filter((item) => !movedItems[item.id]), (items2) => searchTerm && searching ? filterItemsByTerm(items2, searchTerm) : items2, (items2) => filterItemsByHierarchy(items2, getActiveIdFromHierarchy(hierarchy).id), (items2) => prepareItems(items2))(items), [items, searchTerm, searching, hierarchy, movedItems]);
40
- const targetItems = useMemo(() => {
41
- const hierarchyId = getActiveIdFromHierarchy(hierarchyDest).id;
42
- return compose((items2) => sortBy(items2, ["name"]), (items2) => hierarchyId ? filterItemsByHierarchy(items2, hierarchyId).filter((item) => !movedItems[item.id]) : uniqBy(values(movedItems), "id"))(items);
43
- }, [items, searching, hierarchyDest, movedItems]);
44
- return isFunction(children) && children({
45
- checkedItems,
46
- hierarchy,
47
- hierarchyDest,
48
- onCheckItem: toggleItemSelection,
49
- onClearCheckedItems: resetCheckedItems,
50
- onClearMovedItems: resetMovedItems,
51
- onMoveCheckedItems: () => moveCheckedItems(getItemsById(checkedItems, items)),
52
- onMoveItemToSource: (item) => moveItem(item, false),
53
- onMoveItemToTarget: (item) => moveItem(item, true),
54
- onNavigateOnSourceTo: (item) => navigate(item, false),
55
- onNavigateOnTargetTo: (item) => navigate(item, true),
56
- sourceItems,
57
- targetItems
58
- });
59
- }
60
- var ShuttleContainer_default = withProviders(ShuttleContainer);
61
- export {
62
- ShuttleContainer_default as default
63
- };
64
- //# sourceMappingURL=ShuttleContainer.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../scripts/build/transpile/react-shim.js", "../../src/ShuttleContainer.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable no-shadow */\nimport { useContext, useMemo } from 'react';\nimport {\n isFunction,\n compose,\n uniqBy,\n values,\n sortBy,\n} from '@elliemae/ds-utilities';\nimport { withProviders } from './withProviders';\nimport {\n prepareItems,\n getActiveIdFromHierarchy,\n filterItemsByHierarchy,\n getItemsById,\n} from './helper';\nimport { SearchState } from './SearchState';\nimport { ShuttleState } from './ShuttleState';\n\nfunction filterItemsByTerm(items, term) {\n return items.filter(\n item =>\n item.name.toLowerCase().indexOf(String(term).toLowerCase()) !== -1 ||\n String(item.id).indexOf(String(term).toLowerCase()) !== -1,\n );\n}\n\nfunction ShuttleContainer({ items = [], children }) {\n const { state: shuttleState, ...handlers } = useContext(\n ShuttleState.Context,\n );\n const { state: searchState } = useContext(SearchState.Context);\n const {\n movedItems,\n hierarchy,\n hierarchyDest,\n checkedItems,\n searchTerm,\n searching,\n toggleItemSelection,\n resetCheckedItems,\n resetMovedItems,\n moveCheckedItems,\n moveItem,\n navigate,\n } = { ...shuttleState, ...searchState, ...handlers };\n\n const sourceItems = useMemo(\n () =>\n compose(\n items => items.filter(item => !movedItems[item.id]),\n items =>\n searchTerm && searching\n ? filterItemsByTerm(items, searchTerm)\n : items,\n items =>\n filterItemsByHierarchy(items, getActiveIdFromHierarchy(hierarchy).id),\n items => prepareItems(items),\n )(items),\n [items, searchTerm, searching, hierarchy, movedItems],\n );\n\n const targetItems = useMemo(() => {\n const hierarchyId = getActiveIdFromHierarchy(hierarchyDest).id;\n return compose(\n items => sortBy(items, ['name']),\n items =>\n hierarchyId\n ? filterItemsByHierarchy(items, hierarchyId).filter(\n item => !movedItems[item.id],\n )\n : uniqBy(values(movedItems), 'id'),\n )(items);\n }, [items, searching, hierarchyDest, movedItems]);\n\n return (\n isFunction(children) &&\n children({\n checkedItems,\n hierarchy,\n hierarchyDest,\n onCheckItem: toggleItemSelection,\n onClearCheckedItems: resetCheckedItems,\n onClearMovedItems: resetMovedItems,\n onMoveCheckedItems: () =>\n moveCheckedItems(getItemsById(checkedItems, items)),\n onMoveItemToSource: item => moveItem(item, false),\n onMoveItemToTarget: item => moveItem(item, true),\n onNavigateOnSourceTo: item => navigate(item, false),\n onNavigateOnTargetTo: item => navigate(item, true),\n sourceItems,\n targetItems,\n })\n );\n}\n\nexport default withProviders(ShuttleContainer);\n"],
5
- "mappings": "AAAA;ACCA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA;AACA;AAEA,2BAA2B,OAAO,MAAM;AACtC,SAAO,MAAM,OACX,UACE,KAAK,KAAK,cAAc,QAAQ,OAAO,MAAM,mBAAmB,MAChE,OAAO,KAAK,IAAI,QAAQ,OAAO,MAAM,mBAAmB;AAAA;AAI9D,0BAA0B,EAAE,QAAQ,IAAI,YAAY;AAClD,QAAM,EAAE,OAAO,iBAAiB,aAAa,WAC3C,aAAa;AAEf,QAAM,EAAE,OAAO,gBAAgB,WAAW,YAAY;AACtD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,MACE,KAAK,iBAAiB,gBAAgB;AAE1C,QAAM,cAAc,QAClB,MACE,QACE,YAAS,OAAM,OAAO,UAAQ,CAAC,WAAW,KAAK,MAC/C,YACE,cAAc,YACV,kBAAkB,QAAO,cACzB,QACN,YACE,uBAAuB,QAAO,yBAAyB,WAAW,KACpE,YAAS,aAAa,SACtB,QACJ,CAAC,OAAO,YAAY,WAAW,WAAW;AAG5C,QAAM,cAAc,QAAQ,MAAM;AAChC,UAAM,cAAc,yBAAyB,eAAe;AAC5D,WAAO,QACL,YAAS,OAAO,QAAO,CAAC,UACxB,YACE,cACI,uBAAuB,QAAO,aAAa,OACzC,UAAQ,CAAC,WAAW,KAAK,OAE3B,OAAO,OAAO,aAAa,OACjC;AAAA,KACD,CAAC,OAAO,WAAW,eAAe;AAErC,SACE,WAAW,aACX,SAAS;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,IACA,aAAa;AAAA,IACb,qBAAqB;AAAA,IACrB,mBAAmB;AAAA,IACnB,oBAAoB,MAClB,iBAAiB,aAAa,cAAc;AAAA,IAC9C,oBAAoB,UAAQ,SAAS,MAAM;AAAA,IAC3C,oBAAoB,UAAQ,SAAS,MAAM;AAAA,IAC3C,sBAAsB,UAAQ,SAAS,MAAM;AAAA,IAC7C,sBAAsB,UAAQ,SAAS,MAAM;AAAA,IAC7C;AAAA,IACA;AAAA;AAAA;AAKN,IAAO,2BAAQ,cAAc;",
6
- "names": []
7
- }
@@ -1,199 +0,0 @@
1
- import * as React from "react";
2
- import React2, { Component } from "react";
3
- import { compose, arrayMove } from "@elliemae/ds-utilities";
4
- import { withProviders } from "./withProviders";
5
- import {
6
- addToTarget,
7
- navigateTo,
8
- resetCheckedItems,
9
- resetMovedItems,
10
- toggleItemSelection,
11
- removeFromTarget
12
- } from "./Shuttle.actions";
13
- import {
14
- getActiveIdFromHierarchy,
15
- filterBySearch,
16
- getItemsById,
17
- pipe,
18
- getChildrenFromParent,
19
- filterMovedItems
20
- } from "./helper";
21
- import { ShuttleRenderer } from "./ShuttleRenderer";
22
- import { SearchState } from "./SearchState";
23
- import { updateShuttleStateFromProps } from "./updateShuttleStateFromProps";
24
- class ShuttleImpl extends Component {
25
- constructor(props) {
26
- super(props);
27
- this.getState = () => {
28
- const { movedItems } = this.state;
29
- return Object.keys(movedItems);
30
- };
31
- this.state = {
32
- prevProps: {},
33
- preparedItems: [],
34
- checkedItems: [],
35
- hierarchy: [{ name: props.sourceRootTitle, id: null }],
36
- hierarchyDest: [{ name: props.targetRootTitle, id: null }],
37
- movedItems: [],
38
- sourceItems: [],
39
- targetItems: []
40
- };
41
- this.moveCheckedItems = this.moveCheckedItems.bind(this);
42
- this.resetMovedItems = this.resetMovedItems.bind(this);
43
- }
44
- static getDerivedStateFromProps(nextProps, prevState) {
45
- return updateShuttleStateFromProps(nextProps, prevState);
46
- }
47
- componentDidMount() {
48
- const { setGetStatus } = this.props;
49
- setGetStatus(this.getState);
50
- }
51
- handleChange() {
52
- const { onChange } = this.props;
53
- const { movedItems } = this.state;
54
- onChange(Object.keys(movedItems));
55
- }
56
- navigate(item, dest, direction) {
57
- const { onDrillDown, onDrillDownTarget } = this.props;
58
- if (!dest)
59
- onDrillDown(item, direction);
60
- if (dest)
61
- onDrillDownTarget(item, direction);
62
- const { reset: resetSearchState } = this.context;
63
- resetSearchState();
64
- this.setState(pipe([navigateTo(item, dest), resetCheckedItems()]));
65
- }
66
- resetCheckedItems() {
67
- this.setState(resetCheckedItems());
68
- }
69
- resetMovedItems() {
70
- const { selectedItems, onRemoveAllFromTarget } = this.props;
71
- if (!selectedItems) {
72
- this.setState(pipe([navigateTo({ id: null }, true), resetMovedItems()]), () => {
73
- this.handleChange();
74
- });
75
- } else {
76
- this.setState(pipe([navigateTo({ id: null }, true)]));
77
- }
78
- onRemoveAllFromTarget();
79
- }
80
- addToTarget(item) {
81
- const { selectedItems, onAddToTarget } = this.props;
82
- if (!selectedItems) {
83
- this.setState(pipe([addToTarget(item), resetCheckedItems()]), () => {
84
- this.handleChange();
85
- });
86
- }
87
- onAddToTarget(item);
88
- }
89
- removeFromTarget(item) {
90
- const { selectedItems, onRemoveFromTarget } = this.props;
91
- if (!selectedItems) {
92
- this.setState(pipe([removeFromTarget(item)]), () => {
93
- this.handleChange();
94
- });
95
- }
96
- onRemoveFromTarget(item);
97
- }
98
- toggleItemSelection(item) {
99
- this.setState(toggleItemSelection(item.id));
100
- }
101
- moveCheckedItems() {
102
- const { onAddCheckedItems, selectedItems, nonSelectedItems } = this.props;
103
- const { checkedItems, preparedItems } = this.state;
104
- const isControlledV2 = !!selectedItems && !!nonSelectedItems;
105
- const checked = isControlledV2 ? nonSelectedItems.filter((item) => checkedItems.some((check) => check === item)) : checkedItems;
106
- const items = getItemsById(checked, preparedItems);
107
- const actions = !selectedItems ? items.map((item) => addToTarget(item)) : [];
108
- this.setState(pipe([...actions, resetCheckedItems()]), () => {
109
- this.handleChange();
110
- });
111
- onAddCheckedItems(items);
112
- }
113
- handleTargetSortEnd({ sourceItem, targetItem }) {
114
- const { idField, onTargetSortEnd } = this.props;
115
- const { targetItems, hierarchyDest, movedItems } = this.state;
116
- const hierarchyId = getActiveIdFromHierarchy(hierarchyDest).id;
117
- const collection = !hierarchyId ? movedItems : targetItems;
118
- const oldIndex = collection.findIndex((tItem) => tItem[idField] === sourceItem[idField]);
119
- const newIndex = collection.findIndex((tItem) => tItem[idField] === targetItem[idField]);
120
- const sortedMovedItems = !hierarchyId ? arrayMove(movedItems, oldIndex, newIndex) : movedItems;
121
- const sortedItems = hierarchyId ? arrayMove(targetItems, oldIndex, newIndex) : targetItems;
122
- this.setState({
123
- targetItems: sortedItems,
124
- movedItems: sortedMovedItems
125
- });
126
- onTargetSortEnd({ sourceItem, targetItem });
127
- }
128
- render() {
129
- const { idField, nonSelectedItems, moreItemsLoading, ...rest } = this.props;
130
- const {
131
- hierarchy,
132
- hierarchyDest,
133
- checkedItems,
134
- movedItems,
135
- preparedItems: items,
136
- targetItems
137
- } = this.state;
138
- const {
139
- state: { searchTerm, searching }
140
- } = this.context;
141
- const handleControlledSourceItms = () => {
142
- const { id } = getActiveIdFromHierarchy(hierarchy);
143
- if (id) {
144
- return filterBySearch(searchTerm, searching)(getChildrenFromParent(id)(nonSelectedItems.map((it) => items.find((itt) => itt.id === it))));
145
- }
146
- return filterBySearch(searchTerm, searching)(items.filter((it) => nonSelectedItems.some((itt) => itt === it.id && !nonSelectedItems.some((ittt) => ittt === it.parent))));
147
- };
148
- let composedSourceItems;
149
- if (nonSelectedItems) {
150
- composedSourceItems = handleControlledSourceItms();
151
- } else {
152
- composedSourceItems = compose(filterBySearch(searchTerm, searching), filterMovedItems(movedItems), getChildrenFromParent(getActiveIdFromHierarchy(hierarchy).id))(items);
153
- }
154
- const handleControlledTargetItms = () => {
155
- const { id } = getActiveIdFromHierarchy(hierarchyDest);
156
- if (id) {
157
- return getChildrenFromParent(getActiveIdFromHierarchy(hierarchyDest).id)(this.props.selectedItems.map((it) => items.find((itt) => itt.id === it)));
158
- }
159
- return targetItems.filter((it) => this.props.selectedItems.some((itt) => itt === it.id && !this.props.selectedItems.some((ittt) => ittt === it.parent)));
160
- };
161
- let composedTargetItems;
162
- if (nonSelectedItems) {
163
- composedTargetItems = handleControlledTargetItms();
164
- } else {
165
- composedTargetItems = compose((tItems) => {
166
- const hierarchyId = getActiveIdFromHierarchy(hierarchyDest).id;
167
- return hierarchyId ? compose(filterMovedItems(movedItems), getChildrenFromParent(hierarchyId))(tItems) : movedItems;
168
- })(targetItems);
169
- }
170
- return /* @__PURE__ */ React2.createElement(ShuttleRenderer, {
171
- ...rest,
172
- moreItemsLoading,
173
- checkedItems,
174
- hierarchy,
175
- hierarchyDest,
176
- onCheckItem: this.toggleItemSelection,
177
- onClearCheckedItems: this.resetCheckedItems,
178
- onClearMovedItems: this.resetMovedItems,
179
- onItemCheck: this.toggleItemSelection,
180
- onMoveCheckedItems: this.moveCheckedItems,
181
- onMoveItemToSource: (item) => this.removeFromTarget(item, false),
182
- onMoveItemToTarget: (item) => this.addToTarget(item, true),
183
- onNavigateOnSourceTo: (item, direction) => this.navigate(item, false, direction),
184
- onNavigateOnTargetTo: (item, direction) => this.navigate(item, true, direction),
185
- onSourceSortEnd: () => null,
186
- onTargetSortEnd: this.handleTargetSortEnd,
187
- sourceItems: composedSourceItems,
188
- targetItems: composedTargetItems
189
- });
190
- }
191
- }
192
- ShuttleImpl.contextType = SearchState.Context;
193
- const ShuttleImplHoc = withProviders(ShuttleImpl);
194
- var ShuttleImpl_default = ShuttleImplHoc;
195
- export {
196
- ShuttleImplHoc as ShuttleImpl,
197
- ShuttleImpl_default as default
198
- };
199
- //# sourceMappingURL=ShuttleImpl.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../scripts/build/transpile/react-shim.js", "../../src/ShuttleImpl.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable react/static-property-placement */\n/* eslint-disable react/prop-types */\n/* eslint-disable indent */\n/* eslint-disable import/extensions,react/no-unused-state,no-shadow,max-lines */\nimport React, { Component } from 'react';\nimport { compose, arrayMove } from '@elliemae/ds-utilities';\nimport { withProviders } from './withProviders';\nimport {\n addToTarget,\n navigateTo,\n resetCheckedItems,\n resetMovedItems,\n toggleItemSelection,\n removeFromTarget,\n} from './Shuttle.actions';\nimport {\n getActiveIdFromHierarchy,\n filterBySearch,\n getItemsById,\n pipe,\n getChildrenFromParent,\n filterMovedItems,\n} from './helper';\nimport { ShuttleRenderer } from './ShuttleRenderer';\nimport { SearchState } from './SearchState';\nimport { updateShuttleStateFromProps } from './updateShuttleStateFromProps';\n\nclass ShuttleImpl extends Component {\n static contextType = SearchState.Context;\n\n constructor(props) {\n super(props);\n this.state = {\n prevProps: {},\n preparedItems: [],\n checkedItems: [],\n // left breadcrumb\n hierarchy: [{ name: props.sourceRootTitle, id: null }],\n // right breadcrumb\n hierarchyDest: [{ name: props.targetRootTitle, id: null }],\n\n movedItems: [],\n sourceItems: [],\n targetItems: [],\n };\n this.moveCheckedItems = this.moveCheckedItems.bind(this);\n this.resetMovedItems = this.resetMovedItems.bind(this);\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n return updateShuttleStateFromProps(nextProps, prevState);\n }\n\n componentDidMount() {\n const { setGetStatus } = this.props;\n setGetStatus(this.getState);\n }\n\n getState = () => {\n const { movedItems } = this.state;\n return Object.keys(movedItems);\n };\n\n handleChange() {\n const { onChange } = this.props;\n const { movedItems } = this.state;\n onChange(Object.keys(movedItems));\n }\n\n navigate(item, dest, direction) {\n const { onDrillDown, onDrillDownTarget } = this.props;\n\n if (!dest) onDrillDown(item, direction);\n if (dest) onDrillDownTarget(item, direction);\n\n const { reset: resetSearchState } = this.context;\n resetSearchState();\n\n this.setState(pipe([navigateTo(item, dest), resetCheckedItems()]));\n }\n\n resetCheckedItems() {\n this.setState(resetCheckedItems());\n }\n\n resetMovedItems() {\n const { selectedItems, onRemoveAllFromTarget } = this.props;\n if (!selectedItems) {\n this.setState(\n pipe([navigateTo({ id: null }, true), resetMovedItems()]),\n () => {\n this.handleChange();\n },\n );\n } else {\n this.setState(pipe([navigateTo({ id: null }, true)]));\n }\n onRemoveAllFromTarget();\n }\n\n addToTarget(item) {\n const { selectedItems, onAddToTarget } = this.props;\n if (!selectedItems) {\n this.setState(pipe([addToTarget(item), resetCheckedItems()]), () => {\n this.handleChange();\n });\n }\n onAddToTarget(item);\n }\n\n removeFromTarget(item) {\n const { selectedItems, onRemoveFromTarget } = this.props;\n if (!selectedItems) {\n this.setState(pipe([removeFromTarget(item)]), () => {\n this.handleChange();\n });\n }\n onRemoveFromTarget(item);\n }\n\n toggleItemSelection(item) {\n this.setState(toggleItemSelection(item.id));\n }\n\n moveCheckedItems() {\n const { onAddCheckedItems, selectedItems, nonSelectedItems } = this.props;\n const { checkedItems, preparedItems } = this.state;\n const isControlledV2 = !!selectedItems && !!nonSelectedItems;\n const checked = isControlledV2\n ? nonSelectedItems.filter((item) =>\n checkedItems.some((check) => check === item),\n )\n : checkedItems;\n const items = getItemsById(checked, preparedItems);\n const actions = !selectedItems\n ? items.map((item) => addToTarget(item))\n : [];\n this.setState(pipe([...actions, resetCheckedItems()]), () => {\n this.handleChange();\n });\n onAddCheckedItems(items);\n }\n\n handleTargetSortEnd({ sourceItem, targetItem }) {\n const { idField, onTargetSortEnd } = this.props;\n const { targetItems, hierarchyDest, movedItems } = this.state;\n\n const hierarchyId = getActiveIdFromHierarchy(hierarchyDest).id;\n\n const collection = !hierarchyId ? movedItems : targetItems;\n\n const oldIndex = collection.findIndex(\n (tItem) => tItem[idField] === sourceItem[idField],\n );\n const newIndex = collection.findIndex(\n (tItem) => tItem[idField] === targetItem[idField],\n );\n\n const sortedMovedItems = !hierarchyId\n ? arrayMove(movedItems, oldIndex, newIndex)\n : movedItems;\n const sortedItems = hierarchyId\n ? arrayMove(targetItems, oldIndex, newIndex)\n : targetItems;\n\n this.setState({\n targetItems: sortedItems,\n movedItems: sortedMovedItems,\n });\n onTargetSortEnd({ sourceItem, targetItem });\n }\n\n render() {\n const { idField, nonSelectedItems, moreItemsLoading, ...rest } = this.props;\n const {\n hierarchy,\n hierarchyDest,\n checkedItems,\n movedItems,\n preparedItems: items,\n targetItems,\n } = this.state;\n const {\n state: { searchTerm, searching },\n } = this.context;\n\n const handleControlledSourceItms = () => {\n const { id } = getActiveIdFromHierarchy(hierarchy);\n if (id) {\n return filterBySearch(\n searchTerm,\n searching,\n )(\n getChildrenFromParent(id)(\n nonSelectedItems.map((it) => items.find((itt) => itt.id === it)),\n ),\n );\n }\n\n return filterBySearch(\n searchTerm,\n searching,\n )(\n items.filter((it) =>\n nonSelectedItems.some(\n (itt) =>\n itt === it.id &&\n !nonSelectedItems.some((ittt) => ittt === it.parent),\n ),\n ),\n );\n };\n\n let composedSourceItems;\n\n // controlled V2 TODO make it default controlled behavior\n if (nonSelectedItems) {\n composedSourceItems = handleControlledSourceItms();\n } else {\n composedSourceItems = compose(\n filterBySearch(searchTerm, searching),\n filterMovedItems(movedItems),\n getChildrenFromParent(getActiveIdFromHierarchy(hierarchy).id),\n )(items);\n }\n\n const handleControlledTargetItms = () => {\n const { id } = getActiveIdFromHierarchy(hierarchyDest);\n if (id) {\n return getChildrenFromParent(\n getActiveIdFromHierarchy(hierarchyDest).id,\n )(\n this.props.selectedItems.map((it) =>\n items.find((itt) => itt.id === it),\n ),\n );\n }\n\n return targetItems.filter((it) =>\n this.props.selectedItems.some(\n (itt) =>\n itt === it.id &&\n !this.props.selectedItems.some((ittt) => ittt === it.parent),\n ),\n );\n };\n\n let composedTargetItems;\n\n // controlled V2 TODO make it default controlled behavior\n if (nonSelectedItems) {\n composedTargetItems = handleControlledTargetItms();\n } else {\n composedTargetItems = compose((tItems) => {\n const hierarchyId = getActiveIdFromHierarchy(hierarchyDest).id;\n return hierarchyId\n ? compose(\n filterMovedItems(movedItems),\n getChildrenFromParent(hierarchyId),\n )(tItems)\n : movedItems;\n })(targetItems);\n }\n\n return (\n <ShuttleRenderer\n {...rest}\n moreItemsLoading={moreItemsLoading}\n checkedItems={checkedItems}\n hierarchy={hierarchy}\n hierarchyDest={hierarchyDest}\n onCheckItem={this.toggleItemSelection}\n onClearCheckedItems={this.resetCheckedItems}\n onClearMovedItems={this.resetMovedItems}\n onItemCheck={this.toggleItemSelection}\n onMoveCheckedItems={this.moveCheckedItems}\n onMoveItemToSource={(item) => this.removeFromTarget(item, false)}\n onMoveItemToTarget={(item) => this.addToTarget(item, true)}\n onNavigateOnSourceTo={(item, direction) =>\n this.navigate(item, false, direction)\n }\n onNavigateOnTargetTo={(item, direction) =>\n this.navigate(item, true, direction)\n }\n onSourceSortEnd={() => null}\n onTargetSortEnd={this.handleTargetSortEnd}\n sourceItems={composedSourceItems}\n targetItems={composedTargetItems}\n />\n );\n }\n}\n\nconst ShuttleImplHoc = withProviders(ShuttleImpl);\nexport { ShuttleImplHoc as ShuttleImpl };\nexport default ShuttleImplHoc;\n"],
5
- "mappings": "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",
6
- "names": []
7
- }
@@ -1,115 +0,0 @@
1
- import * as React from "react";
2
- import React2, { useCallback, useContext } from "react";
3
- import { ShuttleSource } from "./components/ShuttleSource";
4
- import { ShuttleTarget } from "./components/ShuttleTarget";
5
- import { ShuttleContainer } from "./classedComponents";
6
- import { AnimationState } from "./AnimationState";
7
- const noop = () => {
8
- };
9
- function ShuttleRenderer({
10
- containerProps,
11
- onNavigateOnTargetTo = noop,
12
- onNavigateOnSourceTo = noop,
13
- onMoveItemToSource = noop,
14
- onMoveItemToTarget = noop,
15
- onClearMovedItems = noop,
16
- onMoveCheckedItems = noop,
17
- onClearCheckedItems = noop,
18
- onToggleSearch = noop,
19
- onSearch = noop,
20
- onSearchClose = noop,
21
- onSearchOpen = noop,
22
- searching = false,
23
- onCheckItem = noop,
24
- hierarchy = [],
25
- hierarchyDest = [],
26
- checkedItems = [],
27
- sourceItems = [],
28
- targetItems = [],
29
- sourceEmptyMessage,
30
- targetEmptyMessage,
31
- composeTargetItemProps,
32
- composeSourceItemProps,
33
- targetSortable,
34
- sourceSortable,
35
- onSourceSortEnd,
36
- onTargetSortEnd,
37
- loadingSource = false,
38
- loadingTarget = false,
39
- onGetMoreItems = () => {
40
- },
41
- moreItemsLoading = false,
42
- hasNextPage = false,
43
- ...otherProps
44
- }) {
45
- const { setIsMoving, setIsDrillingDown, setIsMovingBack, reset } = useContext(AnimationState.Context);
46
- const removeAnimationState = useCallback(() => setTimeout(() => reset(), 500));
47
- return /* @__PURE__ */ React2.createElement(ShuttleContainer, {
48
- "data-testid": "em-ds-shuttle",
49
- ...containerProps
50
- }, /* @__PURE__ */ React2.createElement(ShuttleSource, {
51
- ...otherProps,
52
- checkedItems,
53
- composeSourceItemProps,
54
- emptyMessage: sourceEmptyMessage,
55
- hierarchy,
56
- items: sourceItems,
57
- onCheckItem,
58
- onClearCheckedItems,
59
- onMoveCheckedItems: (item) => {
60
- setIsMoving(true);
61
- onMoveCheckedItems(item);
62
- },
63
- onMoveItem: (item) => {
64
- setIsMoving(true);
65
- onMoveItemToTarget(item);
66
- removeAnimationState();
67
- },
68
- onNavigateTo: (item, direction = "down") => {
69
- const indexInHierarchy = hierarchy.findIndex((hItem) => hItem.id === item.id);
70
- setIsDrillingDown(indexInHierarchy === -1);
71
- onNavigateOnSourceTo(item, direction);
72
- },
73
- onSearch,
74
- onSearchClose,
75
- onSearchOpen,
76
- onSortEnd: onSourceSortEnd,
77
- onToggleSearch,
78
- searching,
79
- sourceSortable,
80
- loading: loadingSource,
81
- onGetMoreItems,
82
- moreItemsLoading,
83
- hasNextPage
84
- }), /* @__PURE__ */ React2.createElement(ShuttleTarget, {
85
- ...otherProps,
86
- composeTargetItemProps,
87
- emptyMessage: targetEmptyMessage,
88
- hierarchy: hierarchyDest,
89
- items: targetItems,
90
- onClearMovedItems: () => {
91
- setIsMovingBack(true);
92
- removeAnimationState();
93
- onClearMovedItems();
94
- },
95
- onMoveItem: (item) => {
96
- setIsMovingBack(true);
97
- removeAnimationState();
98
- onMoveItemToSource(item);
99
- },
100
- onNavigateTo: (item, direction = "down") => {
101
- const indexInHierarchy = hierarchyDest.findIndex((hItem) => hItem.id === item.id);
102
- setIsDrillingDown(indexInHierarchy === -1);
103
- onNavigateOnTargetTo(item, direction);
104
- },
105
- onSortEnd: onTargetSortEnd,
106
- targetSortable,
107
- loading: loadingTarget
108
- }));
109
- }
110
- var ShuttleRenderer_default = ShuttleRenderer;
111
- export {
112
- ShuttleRenderer,
113
- ShuttleRenderer_default as default
114
- };
115
- //# sourceMappingURL=ShuttleRenderer.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../scripts/build/transpile/react-shim.js", "../../src/ShuttleRenderer.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable react/prop-types */\n/* eslint-disable max-lines */\nimport React, { useCallback, useContext } from 'react';\nimport { ShuttleSource } from './components/ShuttleSource';\nimport { ShuttleTarget } from './components/ShuttleTarget';\nimport { ShuttleContainer } from './classedComponents';\nimport { AnimationState } from './AnimationState';\n\n// todo: clean methods on jsx\nconst noop = () => {};\nfunction ShuttleRenderer({\n containerProps,\n onNavigateOnTargetTo = noop,\n onNavigateOnSourceTo = noop,\n onMoveItemToSource = noop,\n onMoveItemToTarget = noop,\n onClearMovedItems = noop,\n onMoveCheckedItems = noop,\n onClearCheckedItems = noop,\n onToggleSearch = noop,\n onSearch = noop,\n onSearchClose = noop,\n onSearchOpen = noop,\n searching = false,\n onCheckItem = noop,\n hierarchy = [],\n hierarchyDest = [],\n checkedItems = [],\n sourceItems = [],\n targetItems = [],\n sourceEmptyMessage,\n targetEmptyMessage,\n composeTargetItemProps,\n composeSourceItemProps,\n targetSortable,\n sourceSortable,\n onSourceSortEnd,\n onTargetSortEnd,\n loadingSource = false,\n loadingTarget = false,\n onGetMoreItems = () => {},\n moreItemsLoading = false,\n hasNextPage = false,\n ...otherProps\n}) {\n const { setIsMoving, setIsDrillingDown, setIsMovingBack, reset } = useContext(\n AnimationState.Context,\n );\n\n const removeAnimationState = useCallback(() =>\n setTimeout(() => reset(), 500),\n );\n\n return (\n <ShuttleContainer data-testid=\"em-ds-shuttle\" {...containerProps}>\n <ShuttleSource\n {...otherProps}\n checkedItems={checkedItems}\n composeSourceItemProps={composeSourceItemProps}\n emptyMessage={sourceEmptyMessage}\n hierarchy={hierarchy}\n items={sourceItems}\n onCheckItem={onCheckItem}\n onClearCheckedItems={onClearCheckedItems}\n onMoveCheckedItems={(item) => {\n setIsMoving(true);\n onMoveCheckedItems(item);\n }}\n onMoveItem={(item) => {\n setIsMoving(true);\n onMoveItemToTarget(item);\n removeAnimationState();\n }}\n onNavigateTo={(item, direction = 'down') => {\n const indexInHierarchy = hierarchy.findIndex(\n (hItem) => hItem.id === item.id,\n );\n setIsDrillingDown(indexInHierarchy === -1);\n onNavigateOnSourceTo(item, direction);\n }}\n onSearch={onSearch}\n onSearchClose={onSearchClose}\n onSearchOpen={onSearchOpen}\n onSortEnd={onSourceSortEnd}\n onToggleSearch={onToggleSearch}\n searching={searching}\n sourceSortable={sourceSortable}\n loading={loadingSource}\n onGetMoreItems={onGetMoreItems}\n moreItemsLoading={moreItemsLoading}\n hasNextPage={hasNextPage}\n />\n <ShuttleTarget\n {...otherProps}\n composeTargetItemProps={composeTargetItemProps}\n emptyMessage={targetEmptyMessage}\n hierarchy={hierarchyDest}\n items={targetItems}\n onClearMovedItems={() => {\n setIsMovingBack(true);\n removeAnimationState();\n onClearMovedItems();\n }}\n onMoveItem={(item) => {\n setIsMovingBack(true);\n removeAnimationState();\n onMoveItemToSource(item);\n }}\n onNavigateTo={(item, direction = 'down') => {\n const indexInHierarchy = hierarchyDest.findIndex(\n (hItem) => hItem.id === item.id,\n );\n setIsDrillingDown(indexInHierarchy === -1);\n onNavigateOnTargetTo(item, direction);\n }}\n onSortEnd={onTargetSortEnd}\n targetSortable={targetSortable}\n loading={loadingTarget}\n />\n </ShuttleContainer>\n );\n}\n\nexport { ShuttleRenderer };\nexport default ShuttleRenderer;\n"],
5
- "mappings": "AAAA;ACEA;AACA;AACA;AACA;AACA;AAGA,MAAM,OAAO,MAAM;AAAA;AACnB,yBAAyB;AAAA,EACvB;AAAA,EACA,uBAAuB;AAAA,EACvB,uBAAuB;AAAA,EACvB,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,oBAAoB;AAAA,EACpB,qBAAqB;AAAA,EACrB,sBAAsB;AAAA,EACtB,iBAAiB;AAAA,EACjB,WAAW;AAAA,EACX,gBAAgB;AAAA,EAChB,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,eAAe;AAAA,EACf,cAAc;AAAA,EACd,cAAc;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,iBAAiB,MAAM;AAAA;AAAA,EACvB,mBAAmB;AAAA,EACnB,cAAc;AAAA,KACX;AAAA,GACF;AACD,QAAM,EAAE,aAAa,mBAAmB,iBAAiB,UAAU,WACjE,eAAe;AAGjB,QAAM,uBAAuB,YAAY,MACvC,WAAW,MAAM,SAAS;AAG5B,SACE,qCAAC,kBAAD;AAAA,IAAkB,eAAY;AAAA,OAAoB;AAAA,KAChD,qCAAC,eAAD;AAAA,OACM;AAAA,IACJ;AAAA,IACA;AAAA,IACA,cAAc;AAAA,IACd;AAAA,IACA,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA,oBAAoB,CAAC,SAAS;AAC5B,kBAAY;AACZ,yBAAmB;AAAA;AAAA,IAErB,YAAY,CAAC,SAAS;AACpB,kBAAY;AACZ,yBAAmB;AACnB;AAAA;AAAA,IAEF,cAAc,CAAC,MAAM,YAAY,WAAW;AAC1C,YAAM,mBAAmB,UAAU,UACjC,CAAC,UAAU,MAAM,OAAO,KAAK;AAE/B,wBAAkB,qBAAqB;AACvC,2BAAqB,MAAM;AAAA;AAAA,IAE7B;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,MAEF,qCAAC,eAAD;AAAA,OACM;AAAA,IACJ;AAAA,IACA,cAAc;AAAA,IACd,WAAW;AAAA,IACX,OAAO;AAAA,IACP,mBAAmB,MAAM;AACvB,sBAAgB;AAChB;AACA;AAAA;AAAA,IAEF,YAAY,CAAC,SAAS;AACpB,sBAAgB;AAChB;AACA,yBAAmB;AAAA;AAAA,IAErB,cAAc,CAAC,MAAM,YAAY,WAAW;AAC1C,YAAM,mBAAmB,cAAc,UACrC,CAAC,UAAU,MAAM,OAAO,KAAK;AAE/B,wBAAkB,qBAAqB;AACvC,2BAAqB,MAAM;AAAA;AAAA,IAE7B,WAAW;AAAA,IACX;AAAA,IACA,SAAS;AAAA;AAAA;AAOjB,IAAO,0BAAQ;",
6
- "names": []
7
- }
@@ -1,55 +0,0 @@
1
- import * as React from "react";
2
- import { useState } from "react";
3
- import createContainer from "constate";
4
- import { getItemsById, pipe } from "./helper";
5
- import * as actions from "./Shuttle.actions";
6
- function useShuttleState() {
7
- const [shuttleState, setShuttleState] = useState({
8
- checkedItems: [],
9
- movedItems: {},
10
- hierarchy: [{ name: "Category", id: null }],
11
- hierarchyDest: [{ name: "Added users", id: null }]
12
- });
13
- const setState = (state) => setShuttleState(state(shuttleState));
14
- function setMovedItems(itemsIds = [], items = []) {
15
- const itemsToMove = getItemsById(itemsIds, items);
16
- const pipeActions = itemsToMove.map((item) => actions.moveItem(item, true));
17
- setState(pipe([actions.resetMovedItems(), ...pipeActions]));
18
- }
19
- function navigate(item, dest) {
20
- setState(pipe([actions.navigateTo(item, dest), actions.resetCheckedItems()]));
21
- }
22
- function resetCheckedItems() {
23
- setState(actions.resetCheckedItems());
24
- }
25
- function resetMovedItems() {
26
- setState(pipe([actions.navigateTo({ id: null }, true), actions.resetMovedItems()]));
27
- }
28
- function moveItem(item, dest) {
29
- setState(pipe([actions.moveItem(item, dest), actions.resetCheckedItems()]));
30
- }
31
- function toggleItemSelection(item) {
32
- setState(actions.toggleItemSelection(item.id));
33
- }
34
- function moveCheckedItems(items, dest = true) {
35
- const pipeActions = items.map((item) => moveItem(item, dest));
36
- setState(pipe([...pipeActions, resetCheckedItems()]));
37
- }
38
- return {
39
- state: shuttleState,
40
- toggleItemSelection,
41
- moveCheckedItems,
42
- moveItem,
43
- resetMovedItems,
44
- resetCheckedItems,
45
- navigate,
46
- setMovedItems
47
- };
48
- }
49
- const useShuttleStateHOC = createContainer(useShuttleState, (value) => [value.state]);
50
- var ShuttleState_default = useShuttleStateHOC;
51
- export {
52
- useShuttleStateHOC as ShuttleState,
53
- ShuttleState_default as default
54
- };
55
- //# sourceMappingURL=ShuttleState.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../scripts/build/transpile/react-shim.js", "../../src/ShuttleState.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { useState } from 'react';\nimport createContainer from 'constate';\nimport { getItemsById, pipe } from './helper';\nimport * as actions from './Shuttle.actions';\n\nfunction useShuttleState() {\n const [shuttleState, setShuttleState] = useState({\n checkedItems: [],\n movedItems: {},\n hierarchy: [{ name: 'Category', id: null }],\n hierarchyDest: [{ name: 'Added users', id: null }],\n });\n\n const setState = state => setShuttleState(state(shuttleState));\n\n function setMovedItems(itemsIds = [], items = []) {\n const itemsToMove = getItemsById(itemsIds, items);\n const pipeActions = itemsToMove.map(item => actions.moveItem(item, true));\n setState(pipe([actions.resetMovedItems(), ...pipeActions]));\n }\n\n function navigate(item, dest) {\n setState(\n pipe([actions.navigateTo(item, dest), actions.resetCheckedItems()]),\n );\n }\n\n function resetCheckedItems() {\n setState(actions.resetCheckedItems());\n }\n\n function resetMovedItems() {\n setState(\n pipe([actions.navigateTo({ id: null }, true), actions.resetMovedItems()]),\n );\n }\n\n function moveItem(item, dest) {\n setState(pipe([actions.moveItem(item, dest), actions.resetCheckedItems()]));\n }\n\n function toggleItemSelection(item) {\n setState(actions.toggleItemSelection(item.id));\n }\n\n function moveCheckedItems(items, dest = true) {\n const pipeActions = items.map(item => moveItem(item, dest));\n setState(pipe([...pipeActions, resetCheckedItems()]));\n }\n\n return {\n state: shuttleState,\n toggleItemSelection,\n moveCheckedItems,\n moveItem,\n resetMovedItems,\n resetCheckedItems,\n navigate,\n setMovedItems,\n };\n}\n\nconst useShuttleStateHOC = createContainer(useShuttleState, value => [value.state]);\nexport { useShuttleStateHOC as ShuttleState };\nexport default useShuttleStateHOC;\n"],
5
- "mappings": "AAAA;ACAA;AACA;AACA;AACA;AAEA,2BAA2B;AACzB,QAAM,CAAC,cAAc,mBAAmB,SAAS;AAAA,IAC/C,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,WAAW,CAAC,EAAE,MAAM,YAAY,IAAI;AAAA,IACpC,eAAe,CAAC,EAAE,MAAM,eAAe,IAAI;AAAA;AAG7C,QAAM,WAAW,WAAS,gBAAgB,MAAM;AAEhD,yBAAuB,WAAW,IAAI,QAAQ,IAAI;AAChD,UAAM,cAAc,aAAa,UAAU;AAC3C,UAAM,cAAc,YAAY,IAAI,UAAQ,QAAQ,SAAS,MAAM;AACnE,aAAS,KAAK,CAAC,QAAQ,mBAAmB,GAAG;AAAA;AAG/C,oBAAkB,MAAM,MAAM;AAC5B,aACE,KAAK,CAAC,QAAQ,WAAW,MAAM,OAAO,QAAQ;AAAA;AAIlD,+BAA6B;AAC3B,aAAS,QAAQ;AAAA;AAGnB,6BAA2B;AACzB,aACE,KAAK,CAAC,QAAQ,WAAW,EAAE,IAAI,QAAQ,OAAO,QAAQ;AAAA;AAI1D,oBAAkB,MAAM,MAAM;AAC5B,aAAS,KAAK,CAAC,QAAQ,SAAS,MAAM,OAAO,QAAQ;AAAA;AAGvD,+BAA6B,MAAM;AACjC,aAAS,QAAQ,oBAAoB,KAAK;AAAA;AAG5C,4BAA0B,OAAO,OAAO,MAAM;AAC5C,UAAM,cAAc,MAAM,IAAI,UAAQ,SAAS,MAAM;AACrD,aAAS,KAAK,CAAC,GAAG,aAAa;AAAA;AAGjC,SAAO;AAAA,IACL,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA;AAIJ,MAAM,qBAAqB,gBAAgB,iBAAiB,WAAS,CAAC,MAAM;AAE5E,IAAO,uBAAQ;",
6
- "names": []
7
- }