@elliemae/ds-shuttle 3.5.0-rc.4 → 3.5.0-rc.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/AnimationState.js +36 -21
- package/dist/cjs/AnimationState.js.map +2 -2
- package/dist/cjs/DSShuttle.js +28 -13
- package/dist/cjs/DSShuttle.js.map +2 -2
- package/dist/cjs/SearchState.js +4 -1
- package/dist/cjs/SearchState.js.map +2 -2
- package/dist/cjs/Shuttle.actions.js +17 -5
- package/dist/cjs/Shuttle.actions.js.map +2 -2
- package/dist/cjs/ShuttleContainer.js +25 -5
- package/dist/cjs/ShuttleContainer.js.map +2 -2
- package/dist/cjs/ShuttleImpl.js +58 -13
- package/dist/cjs/ShuttleImpl.js.map +2 -2
- package/dist/cjs/ShuttleRenderer.js +16 -5
- package/dist/cjs/ShuttleRenderer.js.map +2 -2
- package/dist/cjs/ShuttleState.js +10 -3
- package/dist/cjs/ShuttleState.js.map +2 -2
- package/dist/cjs/animation/animationConfig.js +4 -1
- package/dist/cjs/animation/animationConfig.js.map +1 -1
- package/dist/cjs/classedComponents.js +4 -1
- package/dist/cjs/classedComponents.js.map +1 -1
- package/dist/cjs/components/LoadingIndicator.js +4 -1
- package/dist/cjs/components/LoadingIndicator.js.map +2 -2
- package/dist/cjs/components/OverflowList.js +4 -1
- package/dist/cjs/components/OverflowList.js.map +2 -2
- package/dist/cjs/components/ShuttleBreadcrumb.js +4 -1
- package/dist/cjs/components/ShuttleBreadcrumb.js.map +2 -2
- package/dist/cjs/components/ShuttleInfiniteScrollIndicator.js +4 -1
- package/dist/cjs/components/ShuttleInfiniteScrollIndicator.js.map +2 -2
- package/dist/cjs/components/ShuttleListItem/ActionButtons.js +4 -1
- package/dist/cjs/components/ShuttleListItem/ActionButtons.js.map +2 -2
- package/dist/cjs/components/ShuttleListItem/ShuttleListItem.js +4 -1
- package/dist/cjs/components/ShuttleListItem/ShuttleListItem.js.map +2 -2
- package/dist/cjs/components/ShuttleListItem/ShuttleSourceListItem.js +4 -1
- package/dist/cjs/components/ShuttleListItem/ShuttleSourceListItem.js.map +2 -2
- package/dist/cjs/components/ShuttleListItem/ShuttleTargetListItem.js +4 -1
- package/dist/cjs/components/ShuttleListItem/ShuttleTargetListItem.js.map +2 -2
- package/dist/cjs/components/ShuttleListPanel.js +4 -1
- package/dist/cjs/components/ShuttleListPanel.js.map +2 -2
- package/dist/cjs/components/ShuttleSearchBox.js +4 -1
- package/dist/cjs/components/ShuttleSearchBox.js.map +2 -2
- package/dist/cjs/components/ShuttleSource.js +8 -2
- package/dist/cjs/components/ShuttleSource.js.map +2 -2
- package/dist/cjs/components/ShuttleTarget.js +4 -1
- package/dist/cjs/components/ShuttleTarget.js.map +2 -2
- package/dist/cjs/components/VirtualizedItem.js +20 -14
- package/dist/cjs/components/VirtualizedItem.js.map +1 -1
- package/dist/cjs/components/VirtualizedList.js +4 -1
- package/dist/cjs/components/VirtualizedList.js.map +2 -2
- package/dist/cjs/components/VirtualizedSortableList.js +4 -1
- package/dist/cjs/components/VirtualizedSortableList.js.map +2 -2
- package/dist/cjs/helper.js +18 -7
- package/dist/cjs/helper.js.map +2 -2
- package/dist/cjs/index.js +4 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/tests/utils.js +7 -2
- package/dist/cjs/tests/utils.js.map +1 -1
- package/dist/cjs/updateShuttleStateFromProps.js +13 -4
- package/dist/cjs/updateShuttleStateFromProps.js.map +1 -1
- package/dist/cjs/utils.js +4 -1
- package/dist/cjs/utils.js.map +1 -1
- package/dist/cjs/withProviders.js +4 -1
- package/dist/cjs/withProviders.js.map +2 -2
- package/dist/esm/AnimationState.js +32 -20
- package/dist/esm/AnimationState.js.map +1 -1
- package/dist/esm/DSShuttle.js +24 -12
- package/dist/esm/DSShuttle.js.map +2 -2
- package/dist/esm/SearchState.js.map +1 -1
- package/dist/esm/Shuttle.actions.js +13 -4
- package/dist/esm/Shuttle.actions.js.map +1 -1
- package/dist/esm/ShuttleContainer.js +21 -4
- package/dist/esm/ShuttleContainer.js.map +2 -2
- package/dist/esm/ShuttleImpl.js +54 -12
- package/dist/esm/ShuttleImpl.js.map +2 -2
- package/dist/esm/ShuttleRenderer.js +12 -4
- package/dist/esm/ShuttleRenderer.js.map +2 -2
- package/dist/esm/ShuttleState.js +6 -2
- package/dist/esm/ShuttleState.js.map +1 -1
- package/dist/esm/animation/animationConfig.js.map +1 -1
- package/dist/esm/classedComponents.js.map +1 -1
- package/dist/esm/components/LoadingIndicator.js.map +2 -2
- package/dist/esm/components/OverflowList.js.map +2 -2
- package/dist/esm/components/ShuttleBreadcrumb.js.map +2 -2
- package/dist/esm/components/ShuttleInfiniteScrollIndicator.js.map +2 -2
- package/dist/esm/components/ShuttleListItem/ActionButtons.js.map +2 -2
- package/dist/esm/components/ShuttleListItem/ShuttleListItem.js.map +2 -2
- package/dist/esm/components/ShuttleListItem/ShuttleSourceListItem.js.map +2 -2
- package/dist/esm/components/ShuttleListItem/ShuttleTargetListItem.js.map +2 -2
- package/dist/esm/components/ShuttleListPanel.js.map +2 -2
- package/dist/esm/components/ShuttleSearchBox.js.map +2 -2
- package/dist/esm/components/ShuttleSource.js +4 -1
- package/dist/esm/components/ShuttleSource.js.map +2 -2
- package/dist/esm/components/ShuttleTarget.js.map +2 -2
- package/dist/esm/components/VirtualizedItem.js +16 -13
- package/dist/esm/components/VirtualizedItem.js.map +1 -1
- package/dist/esm/components/VirtualizedList.js.map +2 -2
- package/dist/esm/components/VirtualizedSortableList.js.map +2 -2
- package/dist/esm/helper.js +14 -6
- package/dist/esm/helper.js.map +2 -2
- package/dist/esm/index.js.map +2 -2
- package/dist/esm/tests/utils.js +3 -1
- package/dist/esm/tests/utils.js.map +1 -1
- package/dist/esm/updateShuttleStateFromProps.js +9 -3
- package/dist/esm/updateShuttleStateFromProps.js.map +1 -1
- package/dist/esm/utils.js.map +1 -1
- package/dist/esm/withProviders.js.map +2 -2
- package/package.json +11 -11
|
@@ -17,7 +17,10 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
17
17
|
}
|
|
18
18
|
return to;
|
|
19
19
|
};
|
|
20
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
22
|
+
mod
|
|
23
|
+
));
|
|
21
24
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
22
25
|
var AnimationState_exports = {};
|
|
23
26
|
__export(AnimationState_exports, {
|
|
@@ -34,26 +37,38 @@ function useShuttleAnimationState() {
|
|
|
34
37
|
isMovingBack: false,
|
|
35
38
|
isDrillingDown: false
|
|
36
39
|
});
|
|
37
|
-
const reset = (0, import_react.useCallback)(
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
40
|
+
const reset = (0, import_react.useCallback)(
|
|
41
|
+
() => setAnimationState({
|
|
42
|
+
isMoving: false,
|
|
43
|
+
isMovingBack: false,
|
|
44
|
+
isDrillingDown: false
|
|
45
|
+
}),
|
|
46
|
+
[]
|
|
47
|
+
);
|
|
48
|
+
const move = (0, import_react.useCallback)(
|
|
49
|
+
() => setAnimationState({
|
|
50
|
+
isMovingBack: false,
|
|
51
|
+
isMoving: true,
|
|
52
|
+
isDrillingDown: false
|
|
53
|
+
}),
|
|
54
|
+
[]
|
|
55
|
+
);
|
|
56
|
+
const moveBack = (0, import_react.useCallback)(
|
|
57
|
+
() => setAnimationState({
|
|
58
|
+
isMovingBack: true,
|
|
59
|
+
isMoving: false,
|
|
60
|
+
isDrillingDown: false
|
|
61
|
+
}),
|
|
62
|
+
[]
|
|
63
|
+
);
|
|
64
|
+
const drilldown = (0, import_react.useCallback)(
|
|
65
|
+
() => setAnimationState({
|
|
66
|
+
isMovingBack: false,
|
|
67
|
+
isMoving: false,
|
|
68
|
+
isDrillingDown: true
|
|
69
|
+
}),
|
|
70
|
+
[]
|
|
71
|
+
);
|
|
57
72
|
return {
|
|
58
73
|
state: animationState,
|
|
59
74
|
setIsMoving: move,
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/AnimationState.tsx", "../../../../scripts/build/transpile/react-shim.js"],
|
|
4
4
|
"sourcesContent": ["import { useCallback, useState } from 'react';\nimport createContainer from 'constate';\n\nfunction useShuttleAnimationState() {\n const [animationState, setAnimationState] = useState({\n isMoving: false,\n isMovingBack: false,\n isDrillingDown: false,\n });\n const reset = useCallback(\n () =>\n setAnimationState({\n isMoving: false,\n isMovingBack: false,\n isDrillingDown: false,\n }),\n [],\n );\n const move = useCallback(\n () =>\n setAnimationState({\n isMovingBack: false,\n isMoving: true,\n isDrillingDown: false,\n }),\n [],\n );\n\n const moveBack = useCallback(\n () =>\n setAnimationState({\n isMovingBack: true,\n isMoving: false,\n isDrillingDown: false,\n }),\n [],\n );\n\n const drilldown = useCallback(\n () =>\n setAnimationState({\n isMovingBack: false,\n isMoving: false,\n isDrillingDown: true,\n }),\n [],\n );\n\n return {\n state: animationState,\n setIsMoving: move,\n setIsMovingBack: moveBack,\n setIsDrillingDown: drilldown,\n reset,\n };\n}\n\nconst AnimationState = createContainer(useShuttleAnimationState, value => [\n value.state,\n]);\n\nexport { AnimationState };\nexport default AnimationState;\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": []
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAsC;AACtC,sBAA4B;AAE5B,SAAS,2BAA2B;AAClC,QAAM,CAAC,gBAAgB,iBAAiB,QAAI,uBAAS;AAAA,IACnD,UAAU;AAAA,IACV,cAAc;AAAA,IACd,gBAAgB;AAAA,EAClB,CAAC;AACD,QAAM,YAAQ;AAAA,IACZ,MACE,kBAAkB;AAAA,MAChB,UAAU;AAAA,MACV,cAAc;AAAA,MACd,gBAAgB;AAAA,IAClB,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AACA,QAAM,WAAO;AAAA,IACX,MACE,kBAAkB;AAAA,MAChB,cAAc;AAAA,MACd,UAAU;AAAA,MACV,gBAAgB;AAAA,IAClB,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AAEA,QAAM,eAAW;AAAA,IACf,MACE,kBAAkB;AAAA,MAChB,cAAc;AAAA,MACd,UAAU;AAAA,MACV,gBAAgB;AAAA,IAClB,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AAEA,QAAM,gBAAY;AAAA,IAChB,MACE,kBAAkB;AAAA,MAChB,cAAc;AAAA,MACd,UAAU;AAAA,MACV,gBAAgB;AAAA,IAClB,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AAEA,SAAO;AAAA,IACL,OAAO;AAAA,IACP,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,mBAAmB;AAAA,IACnB;AAAA,EACF;AACF;AAEA,MAAM,qBAAiB,gBAAAA,SAAgB,0BAA0B,WAAS;AAAA,EACxE,MAAM;AACR,CAAC;AAGD,IAAO,yBAAQ;",
|
|
6
|
+
"names": ["createContainer"]
|
|
7
7
|
}
|
package/dist/cjs/DSShuttle.js
CHANGED
|
@@ -17,7 +17,10 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
17
17
|
}
|
|
18
18
|
return to;
|
|
19
19
|
};
|
|
20
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
22
|
+
mod
|
|
23
|
+
));
|
|
21
24
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
22
25
|
var DSShuttle_exports = {};
|
|
23
26
|
__export(DSShuttle_exports, {
|
|
@@ -118,24 +121,36 @@ const props = {
|
|
|
118
121
|
idField: import_ds_utilities.PropTypes.string.description("The identifier field for the item object"),
|
|
119
122
|
parentIdField: import_ds_utilities.PropTypes.string.description("The parent identifier field for the item object"),
|
|
120
123
|
showIcons: import_ds_utilities.PropTypes.string.description("Whether to show the icons or not"),
|
|
121
|
-
items: import_ds_utilities.PropTypes.arrayOf(
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
124
|
+
items: import_ds_utilities.PropTypes.arrayOf(
|
|
125
|
+
import_ds_utilities.PropTypes.shape({
|
|
126
|
+
disableDrillDown: import_ds_utilities.PropTypes.bool,
|
|
127
|
+
icon: import_ds_utilities.PropTypes.element,
|
|
128
|
+
name: import_ds_utilities.PropTypes.string,
|
|
129
|
+
readOnly: import_ds_utilities.PropTypes.bool,
|
|
130
|
+
description: import_ds_utilities.PropTypes.string
|
|
131
|
+
})
|
|
132
|
+
).description("list of items"),
|
|
133
|
+
selectedItems: import_ds_utilities.PropTypes.arrayOf(import_ds_utilities.PropTypes.string).description(
|
|
134
|
+
"Array of item ids that are selected. If passed the component behaves as controlled"
|
|
135
|
+
),
|
|
136
|
+
nonSelectedItems: import_ds_utilities.PropTypes.arrayOf(import_ds_utilities.PropTypes.string).description(
|
|
137
|
+
"Array of item ids that aren't selected.. Should include ALL non selected items, even those not rendered"
|
|
138
|
+
),
|
|
130
139
|
onSearch: import_ds_utilities.PropTypes.func.description("Handler on search"),
|
|
131
140
|
onSearchOpen: import_ds_utilities.PropTypes.func.description("Handler when the searchbox is visible"),
|
|
132
141
|
onSearchClose: import_ds_utilities.PropTypes.func.description("Handler when the searchbox is not visible"),
|
|
133
|
-
onDrillDown: import_ds_utilities.PropTypes.func.description(
|
|
134
|
-
|
|
142
|
+
onDrillDown: import_ds_utilities.PropTypes.func.description(
|
|
143
|
+
'Source handler when a user navigates to a level down on the nested structure. First param: item drilled. Second param: direction ("up" | "down")'
|
|
144
|
+
),
|
|
145
|
+
onDrillDownTarget: import_ds_utilities.PropTypes.func.description(
|
|
146
|
+
'Target handler when a user navigates to a level down on the nested structure. First param: item drilled. Second param: direction ("up" | "down")'
|
|
147
|
+
),
|
|
135
148
|
onTargetSortEnd: import_ds_utilities.PropTypes.func.description("Target handler when user stops dragging an item"),
|
|
136
149
|
onGetMoreItems: import_ds_utilities.PropTypes.func.description("Callback function that gets more items for Infinite Scroll"),
|
|
137
150
|
moreItemsLoading: import_ds_utilities.PropTypes.bool.description("Wheter there are mor items loading for Infinite Scroll"),
|
|
138
|
-
hasNextPage: import_ds_utilities.PropTypes.bool.description(
|
|
151
|
+
hasNextPage: import_ds_utilities.PropTypes.bool.description(
|
|
152
|
+
"Wheter there is a next page for Infinite Scroll, controls when to trigger onGetMoreItems"
|
|
153
|
+
),
|
|
139
154
|
setGetStatus: import_ds_utilities.PropTypes.func.description("Function that takes as a parameter an internal getter for the state"),
|
|
140
155
|
targetSortable: import_ds_utilities.PropTypes.bool.description("Whether the target can be sortable with DnD"),
|
|
141
156
|
sourceRootTitle: import_ds_utilities.PropTypes.string.description("Handler when the searchbox is visible"),
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/DSShuttle.tsx", "../../../../scripts/build/transpile/react-shim.js"],
|
|
4
4
|
"sourcesContent": ["/* eslint-disable max-lines */\nimport React from 'react';\nimport { debounce } from 'lodash';\nimport { describe, PropTypes } from '@elliemae/ds-utilities';\nimport { TooltipTextProvider } from '@elliemae/ds-truncated-tooltip-text';\nimport { ShuttleImpl } from './ShuttleImpl';\nimport utils from './utils';\n\nconst noop = () => {};\n\nconst DSShuttle = ({\n containerProps = {},\n idField = 'id',\n parentIdField = 'parent',\n showIcons = true,\n items = [],\n selectedItems = undefined, // if defined it becomes controlled (v1)\n // TODO make `nonSelectedItems` the default controlled behavior (v2)\n nonSelectedItems = undefined,\n onSearch = noop,\n onSearchOpen = noop,\n onSearchClose = noop,\n onDrillDown = noop,\n onDrillDownTarget = noop,\n onTargetSortEnd = noop,\n setGetStatus = noop,\n targetSortable = true,\n sourceEmptyMessage = 'No Items Found',\n sourceRootTitle = 'Category',\n targetEmptyMessage = 'No Items Selected',\n targetRootTitle = 'Selected Items',\n composeSourceItemProps = () => ({}),\n composeTargetItemProps = () => ({}),\n onAddToTarget = noop,\n onAddCheckedItems = noop,\n onRemoveFromTarget = noop,\n onRemoveAllFromTarget = noop,\n onChange = noop,\n renderSourceCounter = noop,\n renderTargetCounter = noop,\n sourceClearItemsText = 'CLEAR ALL',\n targetClearItemsText = 'CLEAR ALL',\n searchPlaceholder = 'Search field ID, name, etc.',\n loadingSource = false,\n loadingTarget = false,\n onGetMoreItems = () => null,\n hasNextPage = false,\n moreItemsLoading,\n}) => (\n <TooltipTextProvider>\n <ShuttleImpl\n composeSourceItemProps={composeSourceItemProps}\n composeTargetItemProps={composeTargetItemProps}\n containerProps={containerProps}\n idField={idField}\n items={items}\n onAddCheckedItems={onAddCheckedItems}\n onAddToTarget={onAddToTarget}\n onChange={onChange}\n onDrillDown={onDrillDown}\n nonSelectedItems={nonSelectedItems}\n onDrillDownTarget={onDrillDownTarget}\n onRemoveAllFromTarget={onRemoveAllFromTarget}\n onRemoveFromTarget={onRemoveFromTarget}\n onSearch={onSearch}\n onSearchClose={onSearchClose}\n onSearchOpen={onSearchOpen}\n onTargetSortEnd={onTargetSortEnd}\n parentIdField={parentIdField}\n renderSourceCounter={renderSourceCounter}\n renderTargetCounter={renderTargetCounter}\n searchPlaceholder={searchPlaceholder}\n selectedItems={selectedItems}\n setGetStatus={setGetStatus}\n showIcons={showIcons}\n sourceClearItemsText={sourceClearItemsText}\n sourceEmptyMessage={sourceEmptyMessage}\n sourceRootTitle={sourceRootTitle}\n targetClearItemsText={targetClearItemsText}\n targetEmptyMessage={targetEmptyMessage}\n targetRootTitle={targetRootTitle}\n targetSortable={targetSortable}\n loadingSource={loadingSource}\n loadingTarget={loadingTarget}\n onGetMoreItems={debounce((...args) => {\n onGetMoreItems(...args);\n }, 500)}\n moreItemsLoading={moreItemsLoading}\n hasNextPage={hasNextPage}\n />\n </TooltipTextProvider>\n);\n\nconst props = {\n /** inject props to shuttle wrapper */\n containerProps: PropTypes.object.description('inject props to shuttle wrapper'),\n /** The identifier field for the item object */\n idField: PropTypes.string.description('The identifier field for the item object'),\n /** The parent identifier field for the item object */\n parentIdField: PropTypes.string.description('The parent identifier field for the item object'),\n /** Whether to show the icons or not */\n showIcons: PropTypes.string.description('Whether to show the icons or not'),\n /** List of items */\n items: PropTypes.arrayOf(\n PropTypes.shape({\n disableDrillDown: PropTypes.bool,\n icon: PropTypes.element,\n name: PropTypes.string,\n readOnly: PropTypes.bool,\n description: PropTypes.string,\n }),\n ).description('list of items'),\n /** Array of item ids that are selected. If passed the component behaves as controlled */\n selectedItems: PropTypes.arrayOf(PropTypes.string).description(\n 'Array of item ids that are selected. If passed the component behaves as controlled',\n ),\n /** Array of item ids that aren't selected. Should include ALL non selected items, even those not rendered */\n nonSelectedItems: PropTypes.arrayOf(PropTypes.string).description(\n \"Array of item ids that aren't selected.. Should include ALL non selected items, even those not rendered\",\n ),\n /** Handler on search */\n onSearch: PropTypes.func.description('Handler on search'),\n /** Handler when the searchbox is visible */\n onSearchOpen: PropTypes.func.description('Handler when the searchbox is visible'),\n /** Handler when the searchbox is not visible */\n onSearchClose: PropTypes.func.description('Handler when the searchbox is not visible'),\n /** Source handler when a user navigates to a level down on the nested structure. First param: item drilled. Second param: direction (\"up\" | \"down\") */\n onDrillDown: PropTypes.func.description(\n 'Source handler when a user navigates to a level down on the nested structure. First param: item drilled. Second param: direction (\"up\" | \"down\")',\n ),\n /** Target handler when a user navigates to a level down on the nested structure. First param: item drilled. Second param: direction (\"up\" | \"down\") */\n onDrillDownTarget: PropTypes.func.description(\n 'Target handler when a user navigates to a level down on the nested structure. First param: item drilled. Second param: direction (\"up\" | \"down\")',\n ),\n /** Target handler when user stops dragging an item */\n onTargetSortEnd: PropTypes.func.description('Target handler when user stops dragging an item'),\n /** Callback function that gets more items for Infinite Scroll */\n onGetMoreItems: PropTypes.func.description('Callback function that gets more items for Infinite Scroll'),\n /** Wheter there are mor items loading for Infinite Scroll */\n moreItemsLoading: PropTypes.bool.description('Wheter there are mor items loading for Infinite Scroll'),\n /** Wheter there is a next page for Infinite Scroll, controls when to trigger onGetMoreItems */\n hasNextPage: PropTypes.bool.description(\n 'Wheter there is a next page for Infinite Scroll, controls when to trigger onGetMoreItems',\n ),\n /** Function that takes as a parameter an internal getter for the state */\n setGetStatus: PropTypes.func.description('Function that takes as a parameter an internal getter for the state'),\n /** Whether the target can be sortable with DnD */\n targetSortable: PropTypes.bool.description('Whether the target can be sortable with DnD'),\n /** Handler when the searchbox is visible */\n sourceRootTitle: PropTypes.string.description('Handler when the searchbox is visible'),\n /** Source text when there is no items */\n sourceEmptyMessage: PropTypes.string.description('Source text when there is no items'),\n /** Target text when there is no items */\n targetEmptyMessage: PropTypes.string.description('Target text when there is no items'),\n /** Target text for the first hierarchy item */\n targetRootTitle: PropTypes.string.description('Target text for the first hierarchy item'),\n /** Function that allow to compose the item props in the source */\n composeSourceItemProps: PropTypes.func.description('Function that allow to compose the item props in the source'),\n /** Function that allow to compose the item props in the target */\n composeTargetItemProps: PropTypes.func.description('Function that allow to compose the item props in the target'),\n /** Handler when a users moves an item to the target */\n onAddToTarget: PropTypes.func.description('Handler when a users moves an item to the target'),\n /** Handler when a users moves all the 'checked' items to the target */\n onAddCheckedItems: PropTypes.func.description(\"Handler when a users moves all the 'checked' items to the target\"),\n /** Handler when a user removes an item from the target */\n onRemoveFromTarget: PropTypes.func.description('Handler when a user removes an item from the target'),\n /** Handler when a user removes all the items from the target */\n onRemoveAllFromTarget: PropTypes.func.description('Handler when a user removes all the items from the target'),\n /** Handler for every change on the state */\n onChange: PropTypes.func.description('Handler for every change on the state'),\n /** Function that returns an element for the source counter */\n renderSourceCounter: PropTypes.func.description('Function that returns an element for the source counter'),\n /** Function that returns an element for the target counter */\n renderTargetCounter: PropTypes.func.description('Function that returns an element for the target counter'),\n /** Source text for the clear items button */\n sourceClearItemsText: PropTypes.string.description('Source text for the clear items button'),\n /** Target text for the clear items button */\n targetClearItemsText: PropTypes.string.description('Target text for the clear items button'),\n /** Searchbox placeholder */\n searchPlaceholder: PropTypes.string.description('Searchbox placeholder'),\n /** Displays loading indicator on source section */\n loadingSource: PropTypes.bool.description('Displays loading indicator on source section'),\n /** Displays loading indicator on target section */\n loadingTarget: PropTypes.bool.description('Displays loading indicator on target section'),\n};\n\nDSShuttle.propTypes = props;\nDSShuttle.displayName = 'DSShuttle';\nconst DSShuttleWithSchema = describe(DSShuttle);\nDSShuttleWithSchema.propTypes = props;\n\nexport { utils, DSShuttleWithSchema, DSShuttle };\n\nexport default DSShuttle;\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": []
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["utils", "React"]
|
|
7
7
|
}
|
package/dist/cjs/SearchState.js
CHANGED
|
@@ -17,7 +17,10 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
17
17
|
}
|
|
18
18
|
return to;
|
|
19
19
|
};
|
|
20
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
22
|
+
mod
|
|
23
|
+
));
|
|
21
24
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
22
25
|
var SearchState_exports = {};
|
|
23
26
|
__export(SearchState_exports, {
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/SearchState.tsx", "../../../../scripts/build/transpile/react-shim.js"],
|
|
4
4
|
"sourcesContent": ["import { useState } from 'react';\nimport createContainer from 'constate';\n\nfunction useSearchState() {\n const [searchTerm, setSearchTerm] = useState('');\n const [searching, setSearchBoxVisibility] = useState(false); // todo: create a hook for Visibility behavior\n\n function toggleSearchBox(userVisible) {\n if (userVisible !== undefined) {\n setSearchBoxVisibility(userVisible);\n } else {\n setSearchBoxVisibility(!searching);\n }\n }\n\n function reset() {\n setSearchTerm('');\n setSearchBoxVisibility(false);\n }\n\n return {\n state: { searchTerm, searching },\n setSearchTerm,\n toggleSearchBox,\n reset,\n };\n}\n\nconst SearchState = createContainer(useSearchState, value => [value.state]);\nexport { SearchState };\nexport default SearchState;\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": []
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAyB;AACzB,sBAA4B;AAE5B,SAAS,iBAAiB;AACxB,QAAM,CAAC,YAAY,aAAa,QAAI,uBAAS,EAAE;AAC/C,QAAM,CAAC,WAAW,sBAAsB,QAAI,uBAAS,KAAK;AAE1D,WAAS,gBAAgB,aAAa;AACpC,QAAI,gBAAgB,QAAW;AAC7B,6BAAuB,WAAW;AAAA,IACpC,OAAO;AACL,6BAAuB,CAAC,SAAS;AAAA,IACnC;AAAA,EACF;AAEA,WAAS,QAAQ;AACf,kBAAc,EAAE;AAChB,2BAAuB,KAAK;AAAA,EAC9B;AAEA,SAAO;AAAA,IACL,OAAO,EAAE,YAAY,UAAU;AAAA,IAC/B;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEA,MAAM,kBAAc,gBAAAA,SAAgB,gBAAgB,WAAS,CAAC,MAAM,KAAK,CAAC;AAE1E,IAAO,sBAAQ;",
|
|
6
|
+
"names": ["createContainer"]
|
|
7
7
|
}
|
|
@@ -17,7 +17,10 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
17
17
|
}
|
|
18
18
|
return to;
|
|
19
19
|
};
|
|
20
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
22
|
+
mod
|
|
23
|
+
));
|
|
21
24
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
22
25
|
var Shuttle_actions_exports = {};
|
|
23
26
|
__export(Shuttle_actions_exports, {
|
|
@@ -43,7 +46,9 @@ function toggleItemSelection(itemId) {
|
|
|
43
46
|
function navigateTo(item, dest) {
|
|
44
47
|
const hierarchyType = (0, import_helper.getHierarchyTypeName)(dest);
|
|
45
48
|
return (state) => {
|
|
46
|
-
const indexInHierarchy = state[hierarchyType].findIndex(
|
|
49
|
+
const indexInHierarchy = state[hierarchyType].findIndex(
|
|
50
|
+
(hItem) => hItem.id === item.id
|
|
51
|
+
);
|
|
47
52
|
const hierarchy = state[hierarchyType];
|
|
48
53
|
return {
|
|
49
54
|
...state,
|
|
@@ -89,9 +94,14 @@ function addToTarget(itemToAdd, collection) {
|
|
|
89
94
|
function removeFromTarget(itemToRemove) {
|
|
90
95
|
return (state, { idField }) => {
|
|
91
96
|
let targetItems = (0, import_ds_utilities.cloneDeep)(state.targetItems);
|
|
92
|
-
const itemIndex = targetItems.findIndex(
|
|
97
|
+
const itemIndex = targetItems.findIndex(
|
|
98
|
+
(fItem) => fItem.id === itemToRemove.id
|
|
99
|
+
);
|
|
93
100
|
const item = targetItems[itemIndex];
|
|
94
|
-
const children = item?.hasChildren ? (0, import_ds_utilities.compose)(
|
|
101
|
+
const children = item?.hasChildren ? (0, import_ds_utilities.compose)(
|
|
102
|
+
(0, import_helper.filterMovedItems)(state.movedItems),
|
|
103
|
+
import_utils.default.getChildren({ index: itemIndex })
|
|
104
|
+
)(targetItems) || [] : [];
|
|
95
105
|
targetItems.splice(itemIndex, 1);
|
|
96
106
|
if (item?.hasChildren && children.length) {
|
|
97
107
|
const childrenHash = (0, import_ds_utilities.hashArray)(children, "id");
|
|
@@ -99,7 +109,9 @@ function removeFromTarget(itemToRemove) {
|
|
|
99
109
|
}
|
|
100
110
|
return {
|
|
101
111
|
...state,
|
|
102
|
-
movedItems: state.movedItems.filter(
|
|
112
|
+
movedItems: state.movedItems.filter(
|
|
113
|
+
(mItem) => mItem[idField] !== itemToRemove[idField]
|
|
114
|
+
),
|
|
103
115
|
targetItems
|
|
104
116
|
};
|
|
105
117
|
};
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/Shuttle.actions.js", "../../../../scripts/build/transpile/react-shim.js"],
|
|
4
4
|
"sourcesContent": ["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", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": []
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["utils"]
|
|
7
7
|
}
|
|
@@ -17,7 +17,10 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
17
17
|
}
|
|
18
18
|
return to;
|
|
19
19
|
};
|
|
20
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
22
|
+
mod
|
|
23
|
+
));
|
|
21
24
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
22
25
|
var ShuttleContainer_exports = {};
|
|
23
26
|
__export(ShuttleContainer_exports, {
|
|
@@ -32,10 +35,14 @@ var import_helper = require("./helper");
|
|
|
32
35
|
var import_SearchState = require("./SearchState");
|
|
33
36
|
var import_ShuttleState = require("./ShuttleState");
|
|
34
37
|
function filterItemsByTerm(items, term) {
|
|
35
|
-
return items.filter(
|
|
38
|
+
return items.filter(
|
|
39
|
+
(item) => item.name.toLowerCase().indexOf(String(term).toLowerCase()) !== -1 || String(item.id).indexOf(String(term).toLowerCase()) !== -1
|
|
40
|
+
);
|
|
36
41
|
}
|
|
37
42
|
function ShuttleContainer({ items = [], children }) {
|
|
38
|
-
const { state: shuttleState, ...handlers } = (0, import_react.useContext)(
|
|
43
|
+
const { state: shuttleState, ...handlers } = (0, import_react.useContext)(
|
|
44
|
+
import_ShuttleState.ShuttleState.Context
|
|
45
|
+
);
|
|
39
46
|
const { state: searchState } = (0, import_react.useContext)(import_SearchState.SearchState.Context);
|
|
40
47
|
const {
|
|
41
48
|
movedItems,
|
|
@@ -51,10 +58,23 @@ function ShuttleContainer({ items = [], children }) {
|
|
|
51
58
|
moveItem,
|
|
52
59
|
navigate
|
|
53
60
|
} = { ...shuttleState, ...searchState, ...handlers };
|
|
54
|
-
const sourceItems = (0, import_react.useMemo)(
|
|
61
|
+
const sourceItems = (0, import_react.useMemo)(
|
|
62
|
+
() => (0, import_ds_utilities.compose)(
|
|
63
|
+
(items2) => items2.filter((item) => !movedItems[item.id]),
|
|
64
|
+
(items2) => searchTerm && searching ? filterItemsByTerm(items2, searchTerm) : items2,
|
|
65
|
+
(items2) => (0, import_helper.filterItemsByHierarchy)(items2, (0, import_helper.getActiveIdFromHierarchy)(hierarchy).id),
|
|
66
|
+
(items2) => (0, import_helper.prepareItems)(items2)
|
|
67
|
+
)(items),
|
|
68
|
+
[items, searchTerm, searching, hierarchy, movedItems]
|
|
69
|
+
);
|
|
55
70
|
const targetItems = (0, import_react.useMemo)(() => {
|
|
56
71
|
const hierarchyId = (0, import_helper.getActiveIdFromHierarchy)(hierarchyDest).id;
|
|
57
|
-
return (0, import_ds_utilities.compose)(
|
|
72
|
+
return (0, import_ds_utilities.compose)(
|
|
73
|
+
(items2) => (0, import_ds_utilities.sortBy)(items2, ["name"]),
|
|
74
|
+
(items2) => hierarchyId ? (0, import_helper.filterItemsByHierarchy)(items2, hierarchyId).filter(
|
|
75
|
+
(item) => !movedItems[item.id]
|
|
76
|
+
) : (0, import_ds_utilities.uniqBy)((0, import_ds_utilities.values)(movedItems), "id")
|
|
77
|
+
)(items);
|
|
58
78
|
}, [items, searching, hierarchyDest, movedItems]);
|
|
59
79
|
return (0, import_ds_utilities.isFunction)(children) && children({
|
|
60
80
|
checkedItems,
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/ShuttleContainer.tsx", "../../../../scripts/build/transpile/react-shim.js"],
|
|
4
4
|
"sourcesContent": ["/* 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", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": []
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADCvB,mBAAoC;AACpC,0BAMO;AACP,2BAA8B;AAC9B,oBAKO;AACP,yBAA4B;AAC5B,0BAA6B;AAE7B,SAAS,kBAAkB,OAAO,MAAM;AACtC,SAAO,MAAM;AAAA,IACX,UACE,KAAK,KAAK,YAAY,EAAE,QAAQ,OAAO,IAAI,EAAE,YAAY,CAAC,MAAM,MAChE,OAAO,KAAK,EAAE,EAAE,QAAQ,OAAO,IAAI,EAAE,YAAY,CAAC,MAAM;AAAA,EAC5D;AACF;AAEA,SAAS,iBAAiB,EAAE,QAAQ,CAAC,GAAG,SAAS,GAAG;AAClD,QAAM,EAAE,OAAO,iBAAiB,SAAS,QAAI;AAAA,IAC3C,iCAAa;AAAA,EACf;AACA,QAAM,EAAE,OAAO,YAAY,QAAI,yBAAW,+BAAY,OAAO;AAC7D,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,EACF,IAAI,EAAE,GAAG,cAAc,GAAG,aAAa,GAAG,SAAS;AAEnD,QAAM,kBAAc;AAAA,IAClB,UACE;AAAA,MACE,CAAAA,WAASA,OAAM,OAAO,UAAQ,CAAC,WAAW,KAAK,GAAG;AAAA,MAClD,CAAAA,WACE,cAAc,YACV,kBAAkBA,QAAO,UAAU,IACnCA;AAAA,MACN,CAAAA,eACE,sCAAuBA,YAAO,wCAAyB,SAAS,EAAE,EAAE;AAAA,MACtE,CAAAA,eAAS,4BAAaA,MAAK;AAAA,IAC7B,EAAE,KAAK;AAAA,IACT,CAAC,OAAO,YAAY,WAAW,WAAW,UAAU;AAAA,EACtD;AAEA,QAAM,kBAAc,sBAAQ,MAAM;AAChC,UAAM,kBAAc,wCAAyB,aAAa,EAAE;AAC5D,eAAO;AAAA,MACL,CAAAA,eAAS,4BAAOA,QAAO,CAAC,MAAM,CAAC;AAAA,MAC/B,CAAAA,WACE,kBACI,sCAAuBA,QAAO,WAAW,EAAE;AAAA,QACzC,UAAQ,CAAC,WAAW,KAAK;AAAA,MAC3B,QACA,gCAAO,4BAAO,UAAU,GAAG,IAAI;AAAA,IACvC,EAAE,KAAK;AAAA,EACT,GAAG,CAAC,OAAO,WAAW,eAAe,UAAU,CAAC;AAEhD,aACE,gCAAW,QAAQ,KACnB,SAAS;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,IACA,aAAa;AAAA,IACb,qBAAqB;AAAA,IACrB,mBAAmB;AAAA,IACnB,oBAAoB,MAClB,qBAAiB,4BAAa,cAAc,KAAK,CAAC;AAAA,IACpD,oBAAoB,UAAQ,SAAS,MAAM,KAAK;AAAA,IAChD,oBAAoB,UAAQ,SAAS,MAAM,IAAI;AAAA,IAC/C,sBAAsB,UAAQ,SAAS,MAAM,KAAK;AAAA,IAClD,sBAAsB,UAAQ,SAAS,MAAM,IAAI;AAAA,IACjD;AAAA,IACA;AAAA,EACF,CAAC;AAEL;AAEA,IAAO,+BAAQ,oCAAc,gBAAgB;",
|
|
6
|
+
"names": ["items"]
|
|
7
7
|
}
|
package/dist/cjs/ShuttleImpl.js
CHANGED
|
@@ -17,7 +17,10 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
17
17
|
}
|
|
18
18
|
return to;
|
|
19
19
|
};
|
|
20
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
22
|
+
mod
|
|
23
|
+
));
|
|
21
24
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
22
25
|
var ShuttleImpl_exports = {};
|
|
23
26
|
__export(ShuttleImpl_exports, {
|
|
@@ -62,9 +65,12 @@ class ShuttleImpl extends import_react.Component {
|
|
|
62
65
|
this.resetMovedItems = () => {
|
|
63
66
|
const { selectedItems, onRemoveAllFromTarget } = this.props;
|
|
64
67
|
if (!selectedItems) {
|
|
65
|
-
this.setState(
|
|
66
|
-
|
|
67
|
-
|
|
68
|
+
this.setState(
|
|
69
|
+
(0, import_helper.pipe)([(0, import_Shuttle.navigateTo)({ id: null }, true), (0, import_Shuttle.resetMovedItems)()]),
|
|
70
|
+
() => {
|
|
71
|
+
this.handleChange();
|
|
72
|
+
}
|
|
73
|
+
);
|
|
68
74
|
} else {
|
|
69
75
|
this.setState((0, import_helper.pipe)([(0, import_Shuttle.navigateTo)({ id: null }, true)]));
|
|
70
76
|
}
|
|
@@ -95,7 +101,9 @@ class ShuttleImpl extends import_react.Component {
|
|
|
95
101
|
const { onAddCheckedItems, selectedItems, nonSelectedItems } = this.props;
|
|
96
102
|
const { checkedItems, preparedItems } = this.state;
|
|
97
103
|
const isControlledV2 = !!selectedItems && !!nonSelectedItems;
|
|
98
|
-
const checked = isControlledV2 ? nonSelectedItems.filter(
|
|
104
|
+
const checked = isControlledV2 ? nonSelectedItems.filter(
|
|
105
|
+
(item) => checkedItems.some((check) => check === item)
|
|
106
|
+
) : checkedItems;
|
|
99
107
|
const items = (0, import_helper.getItemsById)(checked, preparedItems);
|
|
100
108
|
const actions = !selectedItems ? items.map((item) => (0, import_Shuttle.addToTarget)(item)) : [];
|
|
101
109
|
this.setState((0, import_helper.pipe)([...actions, (0, import_Shuttle.resetCheckedItems)()]), () => {
|
|
@@ -108,8 +116,12 @@ class ShuttleImpl extends import_react.Component {
|
|
|
108
116
|
const { targetItems, hierarchyDest, movedItems } = this.state;
|
|
109
117
|
const hierarchyId = (0, import_helper.getActiveIdFromHierarchy)(hierarchyDest).id;
|
|
110
118
|
const collection = !hierarchyId ? movedItems : targetItems;
|
|
111
|
-
const oldIndex = collection.findIndex(
|
|
112
|
-
|
|
119
|
+
const oldIndex = collection.findIndex(
|
|
120
|
+
(tItem) => tItem[idField] === sourceItem[idField]
|
|
121
|
+
);
|
|
122
|
+
const newIndex = collection.findIndex(
|
|
123
|
+
(tItem) => tItem[idField] === targetItem[idField]
|
|
124
|
+
);
|
|
113
125
|
const sortedMovedItems = !hierarchyId ? (0, import_ds_utilities.arrayMove)(movedItems, oldIndex, newIndex) : movedItems;
|
|
114
126
|
const sortedItems = hierarchyId ? (0, import_ds_utilities.arrayMove)(targetItems, oldIndex, newIndex) : targetItems;
|
|
115
127
|
this.setState({
|
|
@@ -152,22 +164,52 @@ class ShuttleImpl extends import_react.Component {
|
|
|
152
164
|
const handleControlledSourceItms = () => {
|
|
153
165
|
const { id } = (0, import_helper.getActiveIdFromHierarchy)(hierarchy);
|
|
154
166
|
if (id) {
|
|
155
|
-
return (0, import_helper.filterBySearch)(
|
|
167
|
+
return (0, import_helper.filterBySearch)(
|
|
168
|
+
searchTerm,
|
|
169
|
+
searching
|
|
170
|
+
)(
|
|
171
|
+
(0, import_helper.getChildrenFromParent)(id)(
|
|
172
|
+
nonSelectedItems.map((it) => items.find((itt) => itt.id === it))
|
|
173
|
+
)
|
|
174
|
+
);
|
|
156
175
|
}
|
|
157
|
-
return (0, import_helper.filterBySearch)(
|
|
176
|
+
return (0, import_helper.filterBySearch)(
|
|
177
|
+
searchTerm,
|
|
178
|
+
searching
|
|
179
|
+
)(
|
|
180
|
+
items.filter(
|
|
181
|
+
(it) => nonSelectedItems.some(
|
|
182
|
+
(itt) => itt === it.id && !nonSelectedItems.some((ittt) => ittt === it.parent)
|
|
183
|
+
)
|
|
184
|
+
)
|
|
185
|
+
);
|
|
158
186
|
};
|
|
159
187
|
let composedSourceItems;
|
|
160
188
|
if (nonSelectedItems) {
|
|
161
189
|
composedSourceItems = handleControlledSourceItms();
|
|
162
190
|
} else {
|
|
163
|
-
composedSourceItems = (0, import_ds_utilities.compose)(
|
|
191
|
+
composedSourceItems = (0, import_ds_utilities.compose)(
|
|
192
|
+
(0, import_helper.filterBySearch)(searchTerm, searching),
|
|
193
|
+
(0, import_helper.filterMovedItems)(movedItems),
|
|
194
|
+
(0, import_helper.getChildrenFromParent)((0, import_helper.getActiveIdFromHierarchy)(hierarchy).id)
|
|
195
|
+
)(items);
|
|
164
196
|
}
|
|
165
197
|
const handleControlledTargetItms = () => {
|
|
166
198
|
const { id } = (0, import_helper.getActiveIdFromHierarchy)(hierarchyDest);
|
|
167
199
|
if (id) {
|
|
168
|
-
return (0, import_helper.getChildrenFromParent)(
|
|
200
|
+
return (0, import_helper.getChildrenFromParent)(
|
|
201
|
+
(0, import_helper.getActiveIdFromHierarchy)(hierarchyDest).id
|
|
202
|
+
)(
|
|
203
|
+
this.props.selectedItems.map(
|
|
204
|
+
(it) => items.find((itt) => itt.id === it)
|
|
205
|
+
)
|
|
206
|
+
);
|
|
169
207
|
}
|
|
170
|
-
return targetItems.filter(
|
|
208
|
+
return targetItems.filter(
|
|
209
|
+
(it) => this.props.selectedItems.some(
|
|
210
|
+
(itt) => itt === it.id && !this.props.selectedItems.some((ittt) => ittt === it.parent)
|
|
211
|
+
)
|
|
212
|
+
);
|
|
171
213
|
};
|
|
172
214
|
let composedTargetItems;
|
|
173
215
|
if (nonSelectedItems) {
|
|
@@ -175,7 +217,10 @@ class ShuttleImpl extends import_react.Component {
|
|
|
175
217
|
} else {
|
|
176
218
|
composedTargetItems = (0, import_ds_utilities.compose)((tItems) => {
|
|
177
219
|
const hierarchyId = (0, import_helper.getActiveIdFromHierarchy)(hierarchyDest).id;
|
|
178
|
-
return hierarchyId ? (0, import_ds_utilities.compose)(
|
|
220
|
+
return hierarchyId ? (0, import_ds_utilities.compose)(
|
|
221
|
+
(0, import_helper.filterMovedItems)(movedItems),
|
|
222
|
+
(0, import_helper.getChildrenFromParent)(hierarchyId)
|
|
223
|
+
)(tItems) : movedItems;
|
|
179
224
|
})(targetItems);
|
|
180
225
|
}
|
|
181
226
|
return /* @__PURE__ */ import_react.default.createElement(import_ShuttleRenderer.ShuttleRenderer, {
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/ShuttleImpl.tsx", "../../../../scripts/build/transpile/react-shim.js"],
|
|
4
4
|
"sourcesContent": ["/* 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 }\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", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": []
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["React"]
|
|
7
7
|
}
|
|
@@ -17,7 +17,10 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
17
17
|
}
|
|
18
18
|
return to;
|
|
19
19
|
};
|
|
20
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
22
|
+
mod
|
|
23
|
+
));
|
|
21
24
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
22
25
|
var ShuttleRenderer_exports = {};
|
|
23
26
|
__export(ShuttleRenderer_exports, {
|
|
@@ -69,8 +72,12 @@ function ShuttleRenderer({
|
|
|
69
72
|
hasNextPage = false,
|
|
70
73
|
...otherProps
|
|
71
74
|
}) {
|
|
72
|
-
const { setIsMoving, setIsDrillingDown, setIsMovingBack, reset } = (0, import_react.useContext)(
|
|
73
|
-
|
|
75
|
+
const { setIsMoving, setIsDrillingDown, setIsMovingBack, reset } = (0, import_react.useContext)(
|
|
76
|
+
import_AnimationState.AnimationState.Context
|
|
77
|
+
);
|
|
78
|
+
const removeAnimationState = (0, import_react.useCallback)(
|
|
79
|
+
() => setTimeout(() => reset(), 500)
|
|
80
|
+
);
|
|
74
81
|
return /* @__PURE__ */ import_react.default.createElement(import_classedComponents.ShuttleContainer, {
|
|
75
82
|
"data-testid": "em-ds-shuttle",
|
|
76
83
|
...containerProps
|
|
@@ -93,7 +100,9 @@ function ShuttleRenderer({
|
|
|
93
100
|
removeAnimationState();
|
|
94
101
|
},
|
|
95
102
|
onNavigateTo: (item, direction = "down") => {
|
|
96
|
-
const indexInHierarchy = hierarchy.findIndex(
|
|
103
|
+
const indexInHierarchy = hierarchy.findIndex(
|
|
104
|
+
(hItem) => hItem.id === item.id
|
|
105
|
+
);
|
|
97
106
|
setIsDrillingDown(indexInHierarchy === -1);
|
|
98
107
|
onNavigateOnSourceTo(item, direction);
|
|
99
108
|
},
|
|
@@ -125,7 +134,9 @@ function ShuttleRenderer({
|
|
|
125
134
|
onMoveItemToSource(item);
|
|
126
135
|
},
|
|
127
136
|
onNavigateTo: (item, direction = "down") => {
|
|
128
|
-
const indexInHierarchy = hierarchyDest.findIndex(
|
|
137
|
+
const indexInHierarchy = hierarchyDest.findIndex(
|
|
138
|
+
(hItem) => hItem.id === item.id
|
|
139
|
+
);
|
|
129
140
|
setIsDrillingDown(indexInHierarchy === -1);
|
|
130
141
|
onNavigateOnTargetTo(item, direction);
|
|
131
142
|
},
|