@elliemae/ds-shuttle 3.5.0-rc.9 → 3.6.0-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/DSShuttle.js +43 -41
- package/dist/cjs/DSShuttle.js.map +2 -2
- package/dist/cjs/ShuttleImpl.js +3 -2
- package/dist/cjs/ShuttleImpl.js.map +2 -2
- package/dist/cjs/ShuttleRenderer.js +71 -66
- package/dist/cjs/ShuttleRenderer.js.map +2 -2
- package/dist/cjs/components/LoadingIndicator.js +8 -7
- package/dist/cjs/components/LoadingIndicator.js.map +2 -2
- package/dist/cjs/components/OverflowList.js +6 -5
- package/dist/cjs/components/OverflowList.js.map +2 -2
- package/dist/cjs/components/ShuttleBreadcrumb.js +13 -12
- package/dist/cjs/components/ShuttleBreadcrumb.js.map +2 -2
- package/dist/cjs/components/ShuttleInfiniteScrollIndicator.js +8 -7
- package/dist/cjs/components/ShuttleInfiniteScrollIndicator.js.map +2 -2
- package/dist/cjs/components/ShuttleListItem/ActionButtons.js +7 -7
- package/dist/cjs/components/ShuttleListItem/ActionButtons.js.map +2 -2
- package/dist/cjs/components/ShuttleListItem/ShuttleListItem.js +29 -15
- package/dist/cjs/components/ShuttleListItem/ShuttleListItem.js.map +2 -2
- package/dist/cjs/components/ShuttleListItem/ShuttleSourceListItem.js +7 -8
- package/dist/cjs/components/ShuttleListItem/ShuttleSourceListItem.js.map +2 -2
- package/dist/cjs/components/ShuttleListItem/ShuttleTargetListItem.js +7 -8
- package/dist/cjs/components/ShuttleListItem/ShuttleTargetListItem.js.map +2 -2
- package/dist/cjs/components/ShuttleListPanel.js +10 -9
- package/dist/cjs/components/ShuttleListPanel.js.map +2 -2
- package/dist/cjs/components/ShuttleSearchBox.js +14 -12
- package/dist/cjs/components/ShuttleSearchBox.js.map +2 -2
- package/dist/cjs/components/ShuttleSource.js +90 -57
- package/dist/cjs/components/ShuttleSource.js.map +2 -2
- package/dist/cjs/components/ShuttleTarget.js +56 -32
- package/dist/cjs/components/ShuttleTarget.js.map +2 -2
- package/dist/cjs/components/VirtualizedList.js +24 -19
- package/dist/cjs/components/VirtualizedList.js.map +2 -2
- package/dist/cjs/components/VirtualizedSortableList.js +5 -4
- package/dist/cjs/components/VirtualizedSortableList.js.map +2 -2
- package/dist/cjs/withProviders.js +10 -4
- package/dist/cjs/withProviders.js.map +2 -2
- package/dist/esm/DSShuttle.js +43 -41
- package/dist/esm/DSShuttle.js.map +2 -2
- package/dist/esm/ShuttleImpl.js +3 -2
- package/dist/esm/ShuttleImpl.js.map +2 -2
- package/dist/esm/ShuttleRenderer.js +71 -66
- package/dist/esm/ShuttleRenderer.js.map +2 -2
- package/dist/esm/components/LoadingIndicator.js +8 -7
- package/dist/esm/components/LoadingIndicator.js.map +2 -2
- package/dist/esm/components/OverflowList.js +6 -5
- package/dist/esm/components/OverflowList.js.map +2 -2
- package/dist/esm/components/ShuttleBreadcrumb.js +13 -12
- package/dist/esm/components/ShuttleBreadcrumb.js.map +2 -2
- package/dist/esm/components/ShuttleInfiniteScrollIndicator.js +8 -7
- package/dist/esm/components/ShuttleInfiniteScrollIndicator.js.map +2 -2
- package/dist/esm/components/ShuttleListItem/ActionButtons.js +7 -7
- package/dist/esm/components/ShuttleListItem/ActionButtons.js.map +2 -2
- package/dist/esm/components/ShuttleListItem/ShuttleListItem.js +29 -15
- package/dist/esm/components/ShuttleListItem/ShuttleListItem.js.map +2 -2
- package/dist/esm/components/ShuttleListItem/ShuttleSourceListItem.js +7 -8
- package/dist/esm/components/ShuttleListItem/ShuttleSourceListItem.js.map +2 -2
- package/dist/esm/components/ShuttleListItem/ShuttleTargetListItem.js +7 -8
- package/dist/esm/components/ShuttleListItem/ShuttleTargetListItem.js.map +2 -2
- package/dist/esm/components/ShuttleListPanel.js +10 -9
- package/dist/esm/components/ShuttleListPanel.js.map +2 -2
- package/dist/esm/components/ShuttleSearchBox.js +14 -12
- package/dist/esm/components/ShuttleSearchBox.js.map +2 -2
- package/dist/esm/components/ShuttleSource.js +90 -57
- package/dist/esm/components/ShuttleSource.js.map +2 -2
- package/dist/esm/components/ShuttleTarget.js +56 -32
- package/dist/esm/components/ShuttleTarget.js.map +2 -2
- package/dist/esm/components/VirtualizedList.js +24 -19
- package/dist/esm/components/VirtualizedList.js.map +2 -2
- package/dist/esm/components/VirtualizedSortableList.js +5 -4
- package/dist/esm/components/VirtualizedSortableList.js.map +2 -2
- package/dist/esm/withProviders.js +10 -4
- package/dist/esm/withProviders.js.map +2 -2
- package/package.json +11 -11
|
@@ -29,7 +29,8 @@ __export(ShuttleTarget_exports, {
|
|
|
29
29
|
});
|
|
30
30
|
module.exports = __toCommonJS(ShuttleTarget_exports);
|
|
31
31
|
var React = __toESM(require("react"));
|
|
32
|
-
var
|
|
32
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
33
|
+
var import_react = require("react");
|
|
33
34
|
var import_ds_button = require("@elliemae/ds-button");
|
|
34
35
|
var import_classedComponents = require("../classedComponents");
|
|
35
36
|
var import_helper = require("../helper");
|
|
@@ -58,7 +59,9 @@ function ShuttleTarget({
|
|
|
58
59
|
state: { isMoving = false }
|
|
59
60
|
} = (0, import_react.useContext)(import_AnimationState.AnimationState.Context);
|
|
60
61
|
const isEmpty = !items.length;
|
|
61
|
-
const emptyContent = loading ? /* @__PURE__ */
|
|
62
|
+
const emptyContent = loading ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_LoadingIndicator.LoadingIndicator, {}) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_classedComponents.EmptyMessage, {
|
|
63
|
+
children: emptyMessage
|
|
64
|
+
});
|
|
62
65
|
const ComponentList = targetSortable ? import_VirtualizedSortableList.VirtualizedSortableList : import_VirtualizedList.VirtualizedList;
|
|
63
66
|
const handleSortEnd = ({ oldIndex, newIndex }) => {
|
|
64
67
|
onSortEnd({
|
|
@@ -66,36 +69,57 @@ function ShuttleTarget({
|
|
|
66
69
|
targetItem: items[newIndex]
|
|
67
70
|
});
|
|
68
71
|
};
|
|
69
|
-
return /* @__PURE__ */
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
72
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_classedComponents.ShuttleWrapper, {
|
|
73
|
+
children: [
|
|
74
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_classedComponents.ShuttleHeader, {
|
|
75
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_classedComponents.ShuttleHeaderBreadcrumb, {
|
|
76
|
+
hierarchy,
|
|
77
|
+
onNavigateTo
|
|
78
|
+
})
|
|
79
|
+
}),
|
|
80
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_classedComponents.ShuttleList, {
|
|
81
|
+
classProps: { showPulse: isMoving },
|
|
82
|
+
children: !loading && !isEmpty ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_classedComponents.Overflow, {
|
|
83
|
+
activeHierarchy: (0, import_helper.getActiveIdFromHierarchy)(hierarchy).id,
|
|
84
|
+
classProps: {
|
|
85
|
+
empty: !items.length
|
|
86
|
+
},
|
|
87
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ComponentList, {
|
|
88
|
+
itemRenderer: ({ item, ...rest }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ShuttleTargetListItem.ShuttleTargetListItem, {
|
|
89
|
+
"data-testid": "target-list-item",
|
|
90
|
+
...rest,
|
|
91
|
+
...composeTargetItemProps(item, rest),
|
|
92
|
+
isRoot: !(0, import_helper.getActiveIdFromHierarchy)(hierarchy).id,
|
|
93
|
+
item,
|
|
94
|
+
onMoveToSource: onMoveItem,
|
|
95
|
+
onNavigateOnTargetTo: onNavigateTo,
|
|
96
|
+
showSortHandler: targetSortable
|
|
97
|
+
}),
|
|
98
|
+
items,
|
|
99
|
+
onSortEnd: handleSortEnd,
|
|
100
|
+
target: true
|
|
101
|
+
})
|
|
102
|
+
}) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_classedComponents.LoadingList, {
|
|
103
|
+
children: emptyContent
|
|
104
|
+
})
|
|
105
|
+
}),
|
|
106
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_classedComponents.ShuttleFooter, {
|
|
107
|
+
children: [
|
|
108
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_classedComponents.ShuttleFooterActions, {
|
|
109
|
+
children: !!items.length && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_button.DSButton, {
|
|
110
|
+
containerProps: { "data-testid": "shuttle-clear-all-target" },
|
|
111
|
+
buttonType: "link",
|
|
112
|
+
labelText: targetClearItemsText,
|
|
113
|
+
onClick: onClearMovedItems
|
|
114
|
+
})
|
|
115
|
+
}),
|
|
116
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_classedComponents.ShuttleFooterCounter, {
|
|
117
|
+
children: renderTargetCounter(items.length)
|
|
118
|
+
})
|
|
119
|
+
]
|
|
120
|
+
})
|
|
121
|
+
]
|
|
122
|
+
});
|
|
99
123
|
}
|
|
100
124
|
var ShuttleTarget_default = ShuttleTarget;
|
|
101
125
|
//# sourceMappingURL=ShuttleTarget.js.map
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/ShuttleTarget.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
4
|
"sourcesContent": ["import React, { useContext } from 'react';\nimport { DSButton } from '@elliemae/ds-button';\n\nimport {\n EmptyMessage,\n Overflow,\n ShuttleFooter,\n ShuttleFooterActions,\n ShuttleFooterCounter,\n ShuttleHeader,\n ShuttleHeaderBreadcrumb,\n ShuttleList,\n ShuttleWrapper,\n LoadingList,\n} from '../classedComponents';\nimport { getActiveIdFromHierarchy } from '../helper';\nimport { AnimationState } from '../AnimationState';\nimport { VirtualizedList } from './VirtualizedList';\nimport { ShuttleTargetListItem } from './ShuttleListItem/ShuttleTargetListItem';\nimport { VirtualizedSortableList } from './VirtualizedSortableList';\nimport { LoadingIndicator } from './LoadingIndicator';\n\nconst noop = () => {};\n\nfunction ShuttleTarget({\n items = [],\n hierarchy = [],\n onNavigateTo = noop,\n onMoveItem = noop,\n onClearMovedItems = noop,\n emptyMessage = 'No items selected',\n composeTargetItemProps = () => ({}),\n targetSortable = false,\n onSortEnd = noop,\n targetClearItemsText = 'CLEAR ALL',\n renderTargetCounter = (amount) => `${amount} items`,\n loading = false,\n}) {\n const {\n state: { isMoving = false },\n } = useContext(AnimationState.Context);\n const isEmpty = !items.length;\n const emptyContent = loading ? <LoadingIndicator /> : <EmptyMessage>{emptyMessage}</EmptyMessage>;\n\n const ComponentList = targetSortable ? VirtualizedSortableList : VirtualizedList;\n\n const handleSortEnd = ({ oldIndex, newIndex }) => {\n onSortEnd({\n sourceItem: items[oldIndex],\n targetItem: items[newIndex],\n });\n };\n\n return (\n <ShuttleWrapper>\n <ShuttleHeader>\n <ShuttleHeaderBreadcrumb hierarchy={hierarchy} onNavigateTo={onNavigateTo} />\n </ShuttleHeader>\n <ShuttleList classProps={{ showPulse: isMoving }}>\n {!loading && !isEmpty ? (\n <Overflow\n activeHierarchy={getActiveIdFromHierarchy(hierarchy).id}\n classProps={{\n empty: !items.length,\n }}\n >\n <ComponentList\n itemRenderer={({ item, ...rest }) => (\n <ShuttleTargetListItem\n data-testid=\"target-list-item\"\n {...rest}\n {...composeTargetItemProps(item, rest)}\n isRoot={!getActiveIdFromHierarchy(hierarchy).id}\n item={item}\n onMoveToSource={onMoveItem}\n onNavigateOnTargetTo={onNavigateTo}\n showSortHandler={targetSortable}\n />\n )}\n items={items}\n onSortEnd={handleSortEnd}\n target\n />\n </Overflow>\n ) : (\n <LoadingList>{emptyContent}</LoadingList>\n )}\n </ShuttleList>\n <ShuttleFooter>\n <ShuttleFooterActions>\n {!!items.length && (\n <DSButton\n containerProps={{ 'data-testid': 'shuttle-clear-all-target' }}\n buttonType=\"link\"\n labelText={targetClearItemsText}\n onClick={onClearMovedItems}\n />\n )}\n </ShuttleFooterActions>\n <ShuttleFooterCounter>{renderTargetCounter(items.length)}</ShuttleFooterCounter>\n </ShuttleFooter>\n </ShuttleWrapper>\n );\n}\n\nexport { ShuttleTarget };\nexport default ShuttleTarget;\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAkC;AAClC,uBAAyB;AAEzB,+BAWO;AACP,oBAAyC;AACzC,4BAA+B;AAC/B,6BAAgC;AAChC,mCAAsC;AACtC,qCAAwC;AACxC,8BAAiC;AAEjC,MAAM,OAAO,MAAM;AAAC;AAEpB,SAAS,cAAc;AAAA,EACrB,QAAQ,CAAC;AAAA,EACT,YAAY,CAAC;AAAA,EACb,eAAe;AAAA,EACf,aAAa;AAAA,EACb,oBAAoB;AAAA,EACpB,eAAe;AAAA,EACf,yBAAyB,OAAO,CAAC;AAAA,EACjC,iBAAiB;AAAA,EACjB,YAAY;AAAA,EACZ,uBAAuB;AAAA,EACvB,sBAAsB,CAAC,WAAW,GAAG;AAAA,EACrC,UAAU;AACZ,GAAG;AACD,QAAM;AAAA,IACJ,OAAO,EAAE,WAAW,MAAM;AAAA,EAC5B,QAAI,yBAAW,qCAAe,OAAO;AACrC,QAAM,UAAU,CAAC,MAAM;AACvB,QAAM,eAAe,UAAU,
|
|
6
|
-
"names": [
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB;AAAA,mBAAkC;AAClC,uBAAyB;AAEzB,+BAWO;AACP,oBAAyC;AACzC,4BAA+B;AAC/B,6BAAgC;AAChC,mCAAsC;AACtC,qCAAwC;AACxC,8BAAiC;AAEjC,MAAM,OAAO,MAAM;AAAC;AAEpB,SAAS,cAAc;AAAA,EACrB,QAAQ,CAAC;AAAA,EACT,YAAY,CAAC;AAAA,EACb,eAAe;AAAA,EACf,aAAa;AAAA,EACb,oBAAoB;AAAA,EACpB,eAAe;AAAA,EACf,yBAAyB,OAAO,CAAC;AAAA,EACjC,iBAAiB;AAAA,EACjB,YAAY;AAAA,EACZ,uBAAuB;AAAA,EACvB,sBAAsB,CAAC,WAAW,GAAG;AAAA,EACrC,UAAU;AACZ,GAAG;AACD,QAAM;AAAA,IACJ,OAAO,EAAE,WAAW,MAAM;AAAA,EAC5B,QAAI,yBAAW,qCAAe,OAAO;AACrC,QAAM,UAAU,CAAC,MAAM;AACvB,QAAM,eAAe,UAAU,4CAAC,4CAAiB,IAAK,4CAAC;AAAA,IAAc;AAAA,GAAa;AAElF,QAAM,gBAAgB,iBAAiB,yDAA0B;AAEjE,QAAM,gBAAgB,CAAC,EAAE,UAAU,SAAS,MAAM;AAChD,cAAU;AAAA,MACR,YAAY,MAAM;AAAA,MAClB,YAAY,MAAM;AAAA,IACpB,CAAC;AAAA,EACH;AAEA,SACE,6CAAC;AAAA,IACC;AAAA,kDAAC;AAAA,QACC,sDAAC;AAAA,UAAwB;AAAA,UAAsB;AAAA,SAA4B;AAAA,OAC7E;AAAA,MACA,4CAAC;AAAA,QAAY,YAAY,EAAE,WAAW,SAAS;AAAA,QAC5C,WAAC,WAAW,CAAC,UACZ,4CAAC;AAAA,UACC,qBAAiB,wCAAyB,SAAS,EAAE;AAAA,UACrD,YAAY;AAAA,YACV,OAAO,CAAC,MAAM;AAAA,UAChB;AAAA,UAEA,sDAAC;AAAA,YACC,cAAc,CAAC,EAAE,SAAS,KAAK,MAC7B,4CAAC;AAAA,cACC,eAAY;AAAA,cACX,GAAG;AAAA,cACH,GAAG,uBAAuB,MAAM,IAAI;AAAA,cACrC,QAAQ,KAAC,wCAAyB,SAAS,EAAE;AAAA,cAC7C;AAAA,cACA,gBAAgB;AAAA,cAChB,sBAAsB;AAAA,cACtB,iBAAiB;AAAA,aACnB;AAAA,YAEF;AAAA,YACA,WAAW;AAAA,YACX,QAAM;AAAA,WACR;AAAA,SACF,IAEA,4CAAC;AAAA,UAAa;AAAA,SAAa;AAAA,OAE/B;AAAA,MACA,6CAAC;AAAA,QACC;AAAA,sDAAC;AAAA,YACE,WAAC,CAAC,MAAM,UACP,4CAAC;AAAA,cACC,gBAAgB,EAAE,eAAe,2BAA2B;AAAA,cAC5D,YAAW;AAAA,cACX,WAAW;AAAA,cACX,SAAS;AAAA,aACX;AAAA,WAEJ;AAAA,UACA,4CAAC;AAAA,YAAsB,8BAAoB,MAAM,MAAM;AAAA,WAAE;AAAA;AAAA,OAC3D;AAAA;AAAA,GACF;AAEJ;AAGA,IAAO,wBAAQ;",
|
|
6
|
+
"names": []
|
|
7
7
|
}
|
|
@@ -29,7 +29,8 @@ __export(VirtualizedList_exports, {
|
|
|
29
29
|
});
|
|
30
30
|
module.exports = __toCommonJS(VirtualizedList_exports);
|
|
31
31
|
var React = __toESM(require("react"));
|
|
32
|
-
var
|
|
32
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
33
|
+
var import_react = require("react");
|
|
33
34
|
var import_web = require("react-spring/web");
|
|
34
35
|
var import_react_window = require("react-window");
|
|
35
36
|
var import_react_window_infinite_loader = __toESM(require("react-window-infinite-loader"));
|
|
@@ -62,24 +63,28 @@ function VirtualizedList({
|
|
|
62
63
|
});
|
|
63
64
|
const itemCount = hasNextPage ? items.length + 1 : items.length;
|
|
64
65
|
const isItemLoaded = (index) => !hasNextPage || index < items.length;
|
|
65
|
-
return /* @__PURE__ */
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
66
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_virtualized_auto_sizer.default, {
|
|
67
|
+
children: ({ height, width }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_window_infinite_loader.default, {
|
|
68
|
+
isItemLoaded,
|
|
69
|
+
itemCount,
|
|
70
|
+
loadMoreItems: getMoreItems,
|
|
71
|
+
children: ({ onItemsRendered, ref }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_window.FixedSizeList, {
|
|
72
|
+
height: searching ? 300 : height,
|
|
73
|
+
width,
|
|
74
|
+
innerRef,
|
|
75
|
+
itemCount: transitions.length,
|
|
76
|
+
itemData: {
|
|
77
|
+
items: transitions,
|
|
78
|
+
itemRenderer,
|
|
79
|
+
isItemMoving: hasMounted.current && (isMoving || isMovingBack)
|
|
80
|
+
},
|
|
81
|
+
itemSize: 35,
|
|
82
|
+
onItemsRendered,
|
|
83
|
+
ref,
|
|
84
|
+
children: children || import_VirtualizedItem.VirtualizedItem
|
|
85
|
+
})
|
|
86
|
+
})
|
|
87
|
+
});
|
|
83
88
|
}
|
|
84
89
|
var VirtualizedList_default = VirtualizedList;
|
|
85
90
|
//# sourceMappingURL=VirtualizedList.js.map
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/VirtualizedList.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
4
|
"sourcesContent": ["/* eslint-disable react/prop-types */\nimport React, { useContext, useEffect, useRef } from 'react';\nimport { useTransition } from 'react-spring/web';\nimport { FixedSizeList as List } from 'react-window';\nimport InfiniteLoader from 'react-window-infinite-loader';\nimport AutoSizer from 'react-virtualized-auto-sizer';\nimport { animationConfig } from '../animation/animationConfig';\nimport { AnimationState } from '../AnimationState';\nimport { VirtualizedItem } from './VirtualizedItem';\n\nfunction VirtualizedList({\n items,\n itemRenderer,\n searching,\n target = false,\n innerRef,\n children,\n hasNextPage = true,\n getMoreItems = () => {},\n}) {\n const hasMounted = useRef(false);\n const {\n state: { isMoving, isMovingBack },\n reset,\n } = useContext(AnimationState.Context);\n\n useEffect(() => {\n hasMounted.current = true;\n }, []);\n\n const transitions = useTransition(items, (item) => item.id, {\n ...animationConfig.moveItem(target),\n onDestroyed: () => reset(),\n });\n\n const itemCount = hasNextPage ? items.length + 1 : items.length;\n\n const isItemLoaded = (index) => !hasNextPage || index < items.length;\n\n return (\n <AutoSizer>\n {({ height, width }) => (\n <InfiniteLoader\n isItemLoaded={isItemLoaded}\n itemCount={itemCount}\n loadMoreItems={getMoreItems}\n >\n {({ onItemsRendered, ref }) => (\n <List\n height={searching ? 300 : height}\n width={width}\n innerRef={innerRef}\n itemCount={transitions.length}\n itemData={{\n items: transitions,\n itemRenderer,\n isItemMoving: hasMounted.current && (isMoving || isMovingBack),\n }}\n itemSize={35}\n onItemsRendered={onItemsRendered}\n ref={ref}\n >\n {children || VirtualizedItem}\n </List>\n )}\n </InfiniteLoader>\n )}\n </AutoSizer>\n );\n}\n\nexport { VirtualizedList };\nexport default VirtualizedList;\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;
|
|
6
|
-
"names": ["
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB;AACA,mBAAqD;AACrD,iBAA8B;AAC9B,0BAAsC;AACtC,0CAA2B;AAC3B,0CAAsB;AACtB,6BAAgC;AAChC,4BAA+B;AAC/B,6BAAgC;AAEhC,SAAS,gBAAgB;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA,SAAS;AAAA,EACT;AAAA,EACA;AAAA,EACA,cAAc;AAAA,EACd,eAAe,MAAM;AAAA,EAAC;AACxB,GAAG;AACD,QAAM,iBAAa,qBAAO,KAAK;AAC/B,QAAM;AAAA,IACJ,OAAO,EAAE,UAAU,aAAa;AAAA,IAChC;AAAA,EACF,QAAI,yBAAW,qCAAe,OAAO;AAErC,8BAAU,MAAM;AACd,eAAW,UAAU;AAAA,EACvB,GAAG,CAAC,CAAC;AAEL,QAAM,kBAAc,0BAAc,OAAO,CAAC,SAAS,KAAK,IAAI;AAAA,IAC1D,GAAG,uCAAgB,SAAS,MAAM;AAAA,IAClC,aAAa,MAAM,MAAM;AAAA,EAC3B,CAAC;AAED,QAAM,YAAY,cAAc,MAAM,SAAS,IAAI,MAAM;AAEzD,QAAM,eAAe,CAAC,UAAU,CAAC,eAAe,QAAQ,MAAM;AAE9D,SACE,4CAAC,oCAAAA,SAAA;AAAA,IACE,WAAC,EAAE,QAAQ,MAAM,MAChB,4CAAC,oCAAAC,SAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA,eAAe;AAAA,MAEd,WAAC,EAAE,iBAAiB,IAAI,MACvB,4CAAC,oBAAAC,eAAA;AAAA,QACC,QAAQ,YAAY,MAAM;AAAA,QAC1B;AAAA,QACA;AAAA,QACA,WAAW,YAAY;AAAA,QACvB,UAAU;AAAA,UACR,OAAO;AAAA,UACP;AAAA,UACA,cAAc,WAAW,YAAY,YAAY;AAAA,QACnD;AAAA,QACA,UAAU;AAAA,QACV;AAAA,QACA;AAAA,QAEC,sBAAY;AAAA,OACf;AAAA,KAEJ;AAAA,GAEJ;AAEJ;AAGA,IAAO,0BAAQ;",
|
|
6
|
+
"names": ["AutoSizer", "InfiniteLoader", "List"]
|
|
7
7
|
}
|
|
@@ -29,17 +29,18 @@ __export(VirtualizedSortableList_exports, {
|
|
|
29
29
|
});
|
|
30
30
|
module.exports = __toCommonJS(VirtualizedSortableList_exports);
|
|
31
31
|
var React = __toESM(require("react"));
|
|
32
|
-
var
|
|
32
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
33
33
|
var import_react_sortable_hoc = require("react-sortable-hoc");
|
|
34
34
|
var import_VirtualizedList = require("./VirtualizedList");
|
|
35
35
|
var import_VirtualizedItem = require("./VirtualizedItem");
|
|
36
36
|
const SortableList = (0, import_react_sortable_hoc.sortableContainer)(import_VirtualizedList.VirtualizedList);
|
|
37
37
|
function VirtualizedSortableList({ items, ...otherProps }) {
|
|
38
|
-
return /* @__PURE__ */
|
|
38
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SortableList, {
|
|
39
39
|
...otherProps,
|
|
40
40
|
items,
|
|
41
|
-
useDragHandle: true
|
|
42
|
-
|
|
41
|
+
useDragHandle: true,
|
|
42
|
+
children: (0, import_react_sortable_hoc.sortableElement)(import_VirtualizedItem.VirtualizedItem)
|
|
43
|
+
});
|
|
43
44
|
}
|
|
44
45
|
var VirtualizedSortableList_default = VirtualizedSortableList;
|
|
45
46
|
//# sourceMappingURL=VirtualizedSortableList.js.map
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/VirtualizedSortableList.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
4
|
"sourcesContent": ["import React from 'react';\nimport { sortableElement, sortableContainer } from 'react-sortable-hoc';\nimport { VirtualizedList } from './VirtualizedList';\nimport { VirtualizedItem } from './VirtualizedItem';\n\nconst SortableList = sortableContainer(VirtualizedList);\n\nfunction VirtualizedSortableList({ items, ...otherProps }) {\n return (\n <SortableList {...otherProps} items={items} useDragHandle>\n {sortableElement(VirtualizedItem)}\n </SortableList>\n );\n}\n\nexport { VirtualizedSortableList };\nexport default VirtualizedSortableList;\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB
|
|
6
|
-
"names": [
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB;AACA,gCAAmD;AACnD,6BAAgC;AAChC,6BAAgC;AAEhC,MAAM,mBAAe,6CAAkB,sCAAe;AAEtD,SAAS,wBAAwB,EAAE,UAAU,WAAW,GAAG;AACzD,SACE,4CAAC;AAAA,IAAc,GAAG;AAAA,IAAY;AAAA,IAAc,eAAa;AAAA,IACtD,yDAAgB,sCAAe;AAAA,GAClC;AAEJ;AAGA,IAAO,kCAAQ;",
|
|
6
|
+
"names": []
|
|
7
7
|
}
|
|
@@ -29,14 +29,20 @@ __export(withProviders_exports, {
|
|
|
29
29
|
});
|
|
30
30
|
module.exports = __toCommonJS(withProviders_exports);
|
|
31
31
|
var React = __toESM(require("react"));
|
|
32
|
-
var
|
|
32
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
33
33
|
var import_AnimationState = require("./AnimationState");
|
|
34
34
|
var import_SearchState = require("./SearchState");
|
|
35
35
|
var import_ShuttleState = require("./ShuttleState");
|
|
36
36
|
function withProviders(Component) {
|
|
37
|
-
return (props) => /* @__PURE__ */
|
|
38
|
-
|
|
39
|
-
|
|
37
|
+
return (props) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ShuttleState.ShuttleState.Provider, {
|
|
38
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_AnimationState.AnimationState.Provider, {
|
|
39
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_SearchState.SearchState.Provider, {
|
|
40
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, {
|
|
41
|
+
...props
|
|
42
|
+
})
|
|
43
|
+
})
|
|
44
|
+
})
|
|
45
|
+
});
|
|
40
46
|
}
|
|
41
47
|
var withProviders_default = withProviders;
|
|
42
48
|
//# sourceMappingURL=withProviders.js.map
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/withProviders.tsx", "../../../../scripts/build/transpile/react-shim.js"],
|
|
4
4
|
"sourcesContent": ["/* eslint-disable react/display-name */\nimport React from 'react';\nimport { AnimationState } from './AnimationState';\nimport { SearchState } from './SearchState';\nimport { ShuttleState } from './ShuttleState';\n\nfunction withProviders(Component) {\n return props => (\n <ShuttleState.Provider>\n <AnimationState.Provider>\n <SearchState.Provider>\n <Component {...props} />\n </SearchState.Provider>\n </AnimationState.Provider>\n </ShuttleState.Provider>\n );\n}\n\nexport { withProviders };\nexport default withProviders;\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;
|
|
6
|
-
"names": [
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB;AAEA,4BAA+B;AAC/B,yBAA4B;AAC5B,0BAA6B;AAE7B,SAAS,cAAc,WAAW;AAChC,SAAO,WACL,4CAAC,iCAAa,UAAb;AAAA,IACC,sDAAC,qCAAe,UAAf;AAAA,MACC,sDAAC,+BAAY,UAAZ;AAAA,QACC,sDAAC;AAAA,UAAW,GAAG;AAAA,SAAO;AAAA,OACxB;AAAA,KACF;AAAA,GACF;AAEJ;AAGA,IAAO,wBAAQ;",
|
|
6
|
+
"names": []
|
|
7
7
|
}
|
package/dist/esm/DSShuttle.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
import
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
3
|
import { debounce } from "lodash";
|
|
4
4
|
import { describe, PropTypes } from "@elliemae/ds-utilities";
|
|
5
5
|
import { TooltipTextProvider } from "@elliemae/ds-truncated-tooltip-text";
|
|
@@ -44,46 +44,48 @@ const DSShuttle = ({
|
|
|
44
44
|
onGetMoreItems = () => null,
|
|
45
45
|
hasNextPage = false,
|
|
46
46
|
moreItemsLoading
|
|
47
|
-
}) => /* @__PURE__ */
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
onGetMoreItems(...args)
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
47
|
+
}) => /* @__PURE__ */ jsx(TooltipTextProvider, {
|
|
48
|
+
children: /* @__PURE__ */ jsx(ShuttleImpl, {
|
|
49
|
+
composeSourceItemProps,
|
|
50
|
+
composeTargetItemProps,
|
|
51
|
+
containerProps,
|
|
52
|
+
idField,
|
|
53
|
+
items,
|
|
54
|
+
onAddCheckedItems,
|
|
55
|
+
onAddToTarget,
|
|
56
|
+
onChange,
|
|
57
|
+
onDrillDown,
|
|
58
|
+
nonSelectedItems,
|
|
59
|
+
onDrillDownTarget,
|
|
60
|
+
onRemoveAllFromTarget,
|
|
61
|
+
onRemoveFromTarget,
|
|
62
|
+
onSearch,
|
|
63
|
+
onSearchClose,
|
|
64
|
+
onSearchOpen,
|
|
65
|
+
onTargetSortEnd,
|
|
66
|
+
parentIdField,
|
|
67
|
+
renderSourceCounter,
|
|
68
|
+
renderTargetCounter,
|
|
69
|
+
searchPlaceholder,
|
|
70
|
+
selectedItems,
|
|
71
|
+
setGetStatus,
|
|
72
|
+
showIcons,
|
|
73
|
+
sourceClearItemsText,
|
|
74
|
+
sourceEmptyMessage,
|
|
75
|
+
sourceRootTitle,
|
|
76
|
+
targetClearItemsText,
|
|
77
|
+
targetEmptyMessage,
|
|
78
|
+
targetRootTitle,
|
|
79
|
+
targetSortable,
|
|
80
|
+
loadingSource,
|
|
81
|
+
loadingTarget,
|
|
82
|
+
onGetMoreItems: debounce((...args) => {
|
|
83
|
+
onGetMoreItems(...args);
|
|
84
|
+
}, 500),
|
|
85
|
+
moreItemsLoading,
|
|
86
|
+
hasNextPage
|
|
87
|
+
})
|
|
88
|
+
});
|
|
87
89
|
const props = {
|
|
88
90
|
containerProps: PropTypes.object.description("inject props to shuttle wrapper"),
|
|
89
91
|
idField: PropTypes.string.description("The identifier field for the item object"),
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../scripts/build/transpile/react-shim.js", "../../src/DSShuttle.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* 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"],
|
|
5
|
-
"mappings": "AAAA,YAAY,WAAW;
|
|
6
|
-
"names": [
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
7
|
}
|
package/dist/esm/ShuttleImpl.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
import
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { Component } from "react";
|
|
3
4
|
import { compose, arrayMove } from "@elliemae/ds-utilities";
|
|
4
5
|
import { withProviders } from "./withProviders";
|
|
5
6
|
import {
|
|
@@ -207,7 +208,7 @@ class ShuttleImpl extends Component {
|
|
|
207
208
|
)(tItems) : movedItems;
|
|
208
209
|
})(targetItems);
|
|
209
210
|
}
|
|
210
|
-
return /* @__PURE__ */
|
|
211
|
+
return /* @__PURE__ */ jsx(ShuttleRenderer, {
|
|
211
212
|
...rest,
|
|
212
213
|
moreItemsLoading,
|
|
213
214
|
checkedItems,
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../scripts/build/transpile/react-shim.js", "../../src/ShuttleImpl.tsx"],
|
|
4
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 }\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": "AAAA,YAAY,WAAW;
|
|
6
|
-
"names": [
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
7
|
}
|