@patternfly/react-core 5.0.0-alpha.43 → 5.0.0-alpha.45
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/CHANGELOG.md +8 -0
- package/components/DualListSelector/DualListSelector.d.ts +13 -13
- package/components/DualListSelector/DualListSelector.d.ts.map +1 -1
- package/components/DualListSelector/DualListSelector.js +59 -59
- package/components/DualListSelector/DualListSelector.js.map +1 -1
- package/components/DualListSelector/DualListSelectorListItem.d.ts +1 -1
- package/components/DualListSelector/DualListSelectorListItem.d.ts.map +1 -1
- package/components/DualListSelector/DualListSelectorPane.d.ts +3 -3
- package/components/DualListSelector/DualListSelectorPane.d.ts.map +1 -1
- package/components/DualListSelector/DualListSelectorPane.js +13 -13
- package/components/DualListSelector/DualListSelectorPane.js.map +1 -1
- package/components/index.d.ts +0 -1
- package/components/index.d.ts.map +1 -1
- package/components/index.js +0 -1
- package/components/index.js.map +1 -1
- package/{components → deprecated/components}/ContextSelector/ContextSelector.d.ts +1 -1
- package/deprecated/components/ContextSelector/ContextSelector.d.ts.map +1 -0
- package/{dist/esm → deprecated}/components/ContextSelector/ContextSelector.js +4 -4
- package/deprecated/components/ContextSelector/ContextSelector.js.map +1 -0
- package/deprecated/components/ContextSelector/ContextSelectorFooter.d.ts.map +1 -0
- package/deprecated/components/ContextSelector/ContextSelectorFooter.js.map +1 -0
- package/deprecated/components/ContextSelector/ContextSelectorItem.d.ts.map +1 -0
- package/deprecated/components/ContextSelector/ContextSelectorItem.js.map +1 -0
- package/deprecated/components/ContextSelector/ContextSelectorMenuList.d.ts.map +1 -0
- package/deprecated/components/ContextSelector/ContextSelectorMenuList.js.map +1 -0
- package/{dist/js → deprecated}/components/ContextSelector/ContextSelectorToggle.d.ts +1 -1
- package/deprecated/components/ContextSelector/ContextSelectorToggle.d.ts.map +1 -0
- package/{dist/esm → deprecated}/components/ContextSelector/ContextSelectorToggle.js +1 -1
- package/deprecated/components/ContextSelector/ContextSelectorToggle.js.map +1 -0
- package/deprecated/components/ContextSelector/contextSelectorConstants.d.ts.map +1 -0
- package/deprecated/components/ContextSelector/contextSelectorConstants.js.map +1 -0
- package/deprecated/components/ContextSelector/index.d.ts.map +1 -0
- package/deprecated/components/ContextSelector/index.js.map +1 -0
- package/deprecated/components/index.d.ts +1 -0
- package/deprecated/components/index.d.ts.map +1 -1
- package/deprecated/components/index.js +1 -0
- package/deprecated/components/index.js.map +1 -1
- package/dist/esm/components/DualListSelector/DualListSelector.d.ts +13 -13
- package/dist/esm/components/DualListSelector/DualListSelector.d.ts.map +1 -1
- package/dist/esm/components/DualListSelector/DualListSelector.js +59 -59
- package/dist/esm/components/DualListSelector/DualListSelector.js.map +1 -1
- package/dist/esm/components/DualListSelector/DualListSelectorListItem.d.ts +1 -1
- package/dist/esm/components/DualListSelector/DualListSelectorListItem.d.ts.map +1 -1
- package/dist/esm/components/DualListSelector/DualListSelectorPane.d.ts +3 -3
- package/dist/esm/components/DualListSelector/DualListSelectorPane.d.ts.map +1 -1
- package/dist/esm/components/DualListSelector/DualListSelectorPane.js +13 -13
- package/dist/esm/components/DualListSelector/DualListSelectorPane.js.map +1 -1
- package/dist/esm/components/index.d.ts +0 -1
- package/dist/esm/components/index.d.ts.map +1 -1
- package/dist/esm/components/index.js +0 -1
- package/dist/esm/components/index.js.map +1 -1
- package/dist/{js → esm/deprecated}/components/ContextSelector/ContextSelector.d.ts +1 -1
- package/dist/esm/deprecated/components/ContextSelector/ContextSelector.d.ts.map +1 -0
- package/{components → dist/esm/deprecated/components}/ContextSelector/ContextSelector.js +4 -4
- package/dist/esm/deprecated/components/ContextSelector/ContextSelector.js.map +1 -0
- package/dist/esm/deprecated/components/ContextSelector/ContextSelectorFooter.d.ts.map +1 -0
- package/dist/esm/deprecated/components/ContextSelector/ContextSelectorFooter.js.map +1 -0
- package/dist/esm/deprecated/components/ContextSelector/ContextSelectorItem.d.ts.map +1 -0
- package/dist/esm/deprecated/components/ContextSelector/ContextSelectorItem.js.map +1 -0
- package/dist/esm/deprecated/components/ContextSelector/ContextSelectorMenuList.d.ts.map +1 -0
- package/dist/esm/deprecated/components/ContextSelector/ContextSelectorMenuList.js.map +1 -0
- package/{components → dist/esm/deprecated/components}/ContextSelector/ContextSelectorToggle.d.ts +1 -1
- package/dist/esm/deprecated/components/ContextSelector/ContextSelectorToggle.d.ts.map +1 -0
- package/{components → dist/esm/deprecated/components}/ContextSelector/ContextSelectorToggle.js +1 -1
- package/dist/esm/deprecated/components/ContextSelector/ContextSelectorToggle.js.map +1 -0
- package/dist/esm/deprecated/components/ContextSelector/contextSelectorConstants.d.ts.map +1 -0
- package/dist/esm/deprecated/components/ContextSelector/contextSelectorConstants.js.map +1 -0
- package/dist/esm/deprecated/components/ContextSelector/index.d.ts.map +1 -0
- package/dist/esm/deprecated/components/ContextSelector/index.js.map +1 -0
- package/dist/esm/deprecated/components/index.d.ts +1 -0
- package/dist/esm/deprecated/components/index.d.ts.map +1 -1
- package/dist/esm/deprecated/components/index.js +1 -0
- package/dist/esm/deprecated/components/index.js.map +1 -1
- package/dist/js/components/DualListSelector/DualListSelector.d.ts +13 -13
- package/dist/js/components/DualListSelector/DualListSelector.d.ts.map +1 -1
- package/dist/js/components/DualListSelector/DualListSelector.js +59 -59
- package/dist/js/components/DualListSelector/DualListSelector.js.map +1 -1
- package/dist/js/components/DualListSelector/DualListSelectorListItem.d.ts +1 -1
- package/dist/js/components/DualListSelector/DualListSelectorListItem.d.ts.map +1 -1
- package/dist/js/components/DualListSelector/DualListSelectorPane.d.ts +3 -3
- package/dist/js/components/DualListSelector/DualListSelectorPane.d.ts.map +1 -1
- package/dist/js/components/DualListSelector/DualListSelectorPane.js +13 -13
- package/dist/js/components/DualListSelector/DualListSelectorPane.js.map +1 -1
- package/dist/js/components/index.d.ts +0 -1
- package/dist/js/components/index.d.ts.map +1 -1
- package/dist/js/components/index.js +0 -1
- package/dist/js/components/index.js.map +1 -1
- package/dist/{esm → js/deprecated}/components/ContextSelector/ContextSelector.d.ts +1 -1
- package/dist/js/deprecated/components/ContextSelector/ContextSelector.d.ts.map +1 -0
- package/dist/js/{components → deprecated/components}/ContextSelector/ContextSelector.js +4 -4
- package/dist/js/deprecated/components/ContextSelector/ContextSelector.js.map +1 -0
- package/dist/js/deprecated/components/ContextSelector/ContextSelectorFooter.d.ts.map +1 -0
- package/dist/js/deprecated/components/ContextSelector/ContextSelectorFooter.js.map +1 -0
- package/dist/js/deprecated/components/ContextSelector/ContextSelectorItem.d.ts.map +1 -0
- package/dist/js/deprecated/components/ContextSelector/ContextSelectorItem.js.map +1 -0
- package/dist/js/deprecated/components/ContextSelector/ContextSelectorMenuList.d.ts.map +1 -0
- package/dist/js/deprecated/components/ContextSelector/ContextSelectorMenuList.js.map +1 -0
- package/dist/{esm → js/deprecated}/components/ContextSelector/ContextSelectorToggle.d.ts +1 -1
- package/dist/js/deprecated/components/ContextSelector/ContextSelectorToggle.d.ts.map +1 -0
- package/dist/js/{components → deprecated/components}/ContextSelector/ContextSelectorToggle.js +1 -1
- package/dist/js/deprecated/components/ContextSelector/ContextSelectorToggle.js.map +1 -0
- package/dist/js/deprecated/components/ContextSelector/contextSelectorConstants.d.ts.map +1 -0
- package/dist/js/deprecated/components/ContextSelector/contextSelectorConstants.js.map +1 -0
- package/dist/js/deprecated/components/ContextSelector/index.d.ts.map +1 -0
- package/dist/js/deprecated/components/ContextSelector/index.js.map +1 -0
- package/dist/js/deprecated/components/index.d.ts +1 -0
- package/dist/js/deprecated/components/index.d.ts.map +1 -1
- package/dist/js/deprecated/components/index.js +1 -0
- package/dist/js/deprecated/components/index.js.map +1 -1
- package/dist/umd/react-core.min.js +3 -3
- package/package.json +2 -2
- package/src/components/DualListSelector/DualListSelector.tsx +94 -89
- package/src/components/DualListSelector/DualListSelectorListItem.tsx +1 -1
- package/src/components/DualListSelector/DualListSelectorPane.tsx +21 -21
- package/src/components/DualListSelector/examples/DualListSelectorBasic.tsx +5 -1
- package/src/components/DualListSelector/examples/DualListSelectorBasicSearch.tsx +5 -1
- package/src/components/DualListSelector/examples/DualListSelectorBasicTooltips.tsx +5 -1
- package/src/components/DualListSelector/examples/DualListSelectorTreeExample.tsx +1 -0
- package/src/components/index.ts +0 -1
- package/src/{components → deprecated/components}/ContextSelector/ContextSelector.tsx +5 -5
- package/src/{components → deprecated/components}/ContextSelector/ContextSelectorToggle.tsx +2 -2
- package/src/{components → deprecated/components}/ContextSelector/__tests__/ContextSelectorToggle.test.tsx +1 -1
- package/src/{components → deprecated/components}/ContextSelector/examples/ContextSelectorBasic.tsx +1 -1
- package/src/{components → deprecated/components}/ContextSelector/examples/ContextSelectorPlainText.tsx +1 -1
- package/src/{components → deprecated/components}/ContextSelector/examples/ContextSelectorWithFooter.tsx +2 -1
- package/src/deprecated/components/index.ts +1 -0
- package/components/ContextSelector/ContextSelector.d.ts.map +0 -1
- package/components/ContextSelector/ContextSelector.js.map +0 -1
- package/components/ContextSelector/ContextSelectorFooter.d.ts.map +0 -1
- package/components/ContextSelector/ContextSelectorFooter.js.map +0 -1
- package/components/ContextSelector/ContextSelectorItem.d.ts.map +0 -1
- package/components/ContextSelector/ContextSelectorItem.js.map +0 -1
- package/components/ContextSelector/ContextSelectorMenuList.d.ts.map +0 -1
- package/components/ContextSelector/ContextSelectorMenuList.js.map +0 -1
- package/components/ContextSelector/ContextSelectorToggle.d.ts.map +0 -1
- package/components/ContextSelector/ContextSelectorToggle.js.map +0 -1
- package/components/ContextSelector/contextSelectorConstants.d.ts.map +0 -1
- package/components/ContextSelector/contextSelectorConstants.js.map +0 -1
- package/components/ContextSelector/index.d.ts.map +0 -1
- package/components/ContextSelector/index.js.map +0 -1
- package/dist/esm/components/ContextSelector/ContextSelector.d.ts.map +0 -1
- package/dist/esm/components/ContextSelector/ContextSelector.js.map +0 -1
- package/dist/esm/components/ContextSelector/ContextSelectorFooter.d.ts.map +0 -1
- package/dist/esm/components/ContextSelector/ContextSelectorFooter.js.map +0 -1
- package/dist/esm/components/ContextSelector/ContextSelectorItem.d.ts.map +0 -1
- package/dist/esm/components/ContextSelector/ContextSelectorItem.js.map +0 -1
- package/dist/esm/components/ContextSelector/ContextSelectorMenuList.d.ts.map +0 -1
- package/dist/esm/components/ContextSelector/ContextSelectorMenuList.js.map +0 -1
- package/dist/esm/components/ContextSelector/ContextSelectorToggle.d.ts.map +0 -1
- package/dist/esm/components/ContextSelector/ContextSelectorToggle.js.map +0 -1
- package/dist/esm/components/ContextSelector/contextSelectorConstants.d.ts.map +0 -1
- package/dist/esm/components/ContextSelector/contextSelectorConstants.js.map +0 -1
- package/dist/esm/components/ContextSelector/index.d.ts.map +0 -1
- package/dist/esm/components/ContextSelector/index.js.map +0 -1
- package/dist/js/components/ContextSelector/ContextSelector.d.ts.map +0 -1
- package/dist/js/components/ContextSelector/ContextSelector.js.map +0 -1
- package/dist/js/components/ContextSelector/ContextSelectorFooter.d.ts.map +0 -1
- package/dist/js/components/ContextSelector/ContextSelectorFooter.js.map +0 -1
- package/dist/js/components/ContextSelector/ContextSelectorItem.d.ts.map +0 -1
- package/dist/js/components/ContextSelector/ContextSelectorItem.js.map +0 -1
- package/dist/js/components/ContextSelector/ContextSelectorMenuList.d.ts.map +0 -1
- package/dist/js/components/ContextSelector/ContextSelectorMenuList.js.map +0 -1
- package/dist/js/components/ContextSelector/ContextSelectorToggle.d.ts.map +0 -1
- package/dist/js/components/ContextSelector/ContextSelectorToggle.js.map +0 -1
- package/dist/js/components/ContextSelector/contextSelectorConstants.d.ts.map +0 -1
- package/dist/js/components/ContextSelector/contextSelectorConstants.js.map +0 -1
- package/dist/js/components/ContextSelector/index.d.ts.map +0 -1
- package/dist/js/components/ContextSelector/index.js.map +0 -1
- /package/{components → deprecated/components}/ContextSelector/ContextSelectorFooter.d.ts +0 -0
- /package/{components → deprecated/components}/ContextSelector/ContextSelectorFooter.js +0 -0
- /package/{components → deprecated/components}/ContextSelector/ContextSelectorItem.d.ts +0 -0
- /package/{components → deprecated/components}/ContextSelector/ContextSelectorItem.js +0 -0
- /package/{components → deprecated/components}/ContextSelector/ContextSelectorMenuList.d.ts +0 -0
- /package/{components → deprecated/components}/ContextSelector/ContextSelectorMenuList.js +0 -0
- /package/{components → deprecated/components}/ContextSelector/contextSelectorConstants.d.ts +0 -0
- /package/{components → deprecated/components}/ContextSelector/contextSelectorConstants.js +0 -0
- /package/{components → deprecated/components}/ContextSelector/index.d.ts +0 -0
- /package/{components → deprecated/components}/ContextSelector/index.js +0 -0
- /package/dist/esm/{components → deprecated/components}/ContextSelector/ContextSelectorFooter.d.ts +0 -0
- /package/dist/esm/{components → deprecated/components}/ContextSelector/ContextSelectorFooter.js +0 -0
- /package/dist/esm/{components → deprecated/components}/ContextSelector/ContextSelectorItem.d.ts +0 -0
- /package/dist/esm/{components → deprecated/components}/ContextSelector/ContextSelectorItem.js +0 -0
- /package/dist/esm/{components → deprecated/components}/ContextSelector/ContextSelectorMenuList.d.ts +0 -0
- /package/dist/esm/{components → deprecated/components}/ContextSelector/ContextSelectorMenuList.js +0 -0
- /package/dist/esm/{components → deprecated/components}/ContextSelector/contextSelectorConstants.d.ts +0 -0
- /package/dist/esm/{components → deprecated/components}/ContextSelector/contextSelectorConstants.js +0 -0
- /package/dist/esm/{components → deprecated/components}/ContextSelector/index.d.ts +0 -0
- /package/dist/esm/{components → deprecated/components}/ContextSelector/index.js +0 -0
- /package/dist/js/{components → deprecated/components}/ContextSelector/ContextSelectorFooter.d.ts +0 -0
- /package/dist/js/{components → deprecated/components}/ContextSelector/ContextSelectorFooter.js +0 -0
- /package/dist/js/{components → deprecated/components}/ContextSelector/ContextSelectorItem.d.ts +0 -0
- /package/dist/js/{components → deprecated/components}/ContextSelector/ContextSelectorItem.js +0 -0
- /package/dist/js/{components → deprecated/components}/ContextSelector/ContextSelectorMenuList.d.ts +0 -0
- /package/dist/js/{components → deprecated/components}/ContextSelector/ContextSelectorMenuList.js +0 -0
- /package/dist/js/{components → deprecated/components}/ContextSelector/contextSelectorConstants.d.ts +0 -0
- /package/dist/js/{components → deprecated/components}/ContextSelector/contextSelectorConstants.js +0 -0
- /package/dist/js/{components → deprecated/components}/ContextSelector/index.d.ts +0 -0
- /package/dist/js/{components → deprecated/components}/ContextSelector/index.js +0 -0
- /package/src/{components → deprecated/components}/ContextSelector/ContextSelectorFooter.tsx +0 -0
- /package/src/{components → deprecated/components}/ContextSelector/ContextSelectorItem.tsx +0 -0
- /package/src/{components → deprecated/components}/ContextSelector/ContextSelectorMenuList.tsx +0 -0
- /package/src/{components → deprecated/components}/ContextSelector/__tests__/ContextSelector.test.tsx +0 -0
- /package/src/{components → deprecated/components}/ContextSelector/__tests__/ContextSelectorFooter.test.tsx +0 -0
- /package/src/{components → deprecated/components}/ContextSelector/__tests__/ContextSelectorItem.test.tsx +0 -0
- /package/src/{components → deprecated/components}/ContextSelector/__tests__/ContextSelectorMenuList.test.tsx +0 -0
- /package/src/{components → deprecated/components}/ContextSelector/__tests__/__snapshots__/ContextSelector.test.tsx.snap +0 -0
- /package/src/{components → deprecated/components}/ContextSelector/__tests__/__snapshots__/ContextSelectorFooter.test.tsx.snap +0 -0
- /package/src/{components → deprecated/components}/ContextSelector/__tests__/__snapshots__/ContextSelectorItem.test.tsx.snap +0 -0
- /package/src/{components → deprecated/components}/ContextSelector/__tests__/__snapshots__/ContextSelectorMenuList.test.tsx.snap +0 -0
- /package/src/{components → deprecated/components}/ContextSelector/__tests__/__snapshots__/ContextSelectorToggle.test.tsx.snap +0 -0
- /package/src/{components → deprecated/components}/ContextSelector/contextSelectorConstants.tsx +0 -0
- /package/src/{components → deprecated/components}/ContextSelector/examples/ContextSelector.md +0 -0
- /package/src/{components → deprecated/components}/ContextSelector/index.ts +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@patternfly/react-core",
|
|
3
|
-
"version": "5.0.0-alpha.
|
|
3
|
+
"version": "5.0.0-alpha.45",
|
|
4
4
|
"description": "This library provides a set of common React components for use with the PatternFly reference implementation.",
|
|
5
5
|
"main": "dist/js/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -70,5 +70,5 @@
|
|
|
70
70
|
"react": "^17 || ^18",
|
|
71
71
|
"react-dom": "^17 || ^18"
|
|
72
72
|
},
|
|
73
|
-
"gitHead": "
|
|
73
|
+
"gitHead": "b4d34f7a9978200a95142d099115f91bf4170497"
|
|
74
74
|
}
|
|
@@ -62,7 +62,11 @@ export interface DualListSelectorProps {
|
|
|
62
62
|
/** Additonal tooltip properties for the dynamically built add selected tooltip */
|
|
63
63
|
addSelectedTooltipProps?: any;
|
|
64
64
|
/** Callback fired every time dynamically built options are chosen or removed */
|
|
65
|
-
onListChange?: (
|
|
65
|
+
onListChange?: (
|
|
66
|
+
event: React.MouseEvent<HTMLElement>,
|
|
67
|
+
newAvailableOptions: React.ReactNode[],
|
|
68
|
+
newChosenOptions: React.ReactNode[]
|
|
69
|
+
) => void;
|
|
66
70
|
/** Optional callback for the dynamically built add all button */
|
|
67
71
|
addAll?: (newAvailableOptions: React.ReactNode[], newChosenOptions: React.ReactNode[]) => void;
|
|
68
72
|
/** Accessible label for the dynamically built add all button */
|
|
@@ -89,7 +93,7 @@ export interface DualListSelectorProps {
|
|
|
89
93
|
removeAllTooltipProps?: any;
|
|
90
94
|
/** Optional callback fired when a dynamically built option is selected */
|
|
91
95
|
onOptionSelect?: (
|
|
92
|
-
|
|
96
|
+
event: React.MouseEvent | React.ChangeEvent | React.KeyboardEvent,
|
|
93
97
|
index: number,
|
|
94
98
|
isChosen: boolean,
|
|
95
99
|
id: string,
|
|
@@ -98,7 +102,7 @@ export interface DualListSelectorProps {
|
|
|
98
102
|
) => void;
|
|
99
103
|
/** Optional callback fired when a dynamically built option is checked */
|
|
100
104
|
onOptionCheck?: (
|
|
101
|
-
|
|
105
|
+
event: React.MouseEvent | React.ChangeEvent<HTMLInputElement> | React.KeyboardEvent,
|
|
102
106
|
checked: boolean,
|
|
103
107
|
checkedId: string,
|
|
104
108
|
newCheckedItems: string[]
|
|
@@ -108,11 +112,11 @@ export interface DualListSelectorProps {
|
|
|
108
112
|
/** Accessible label for the search input on the dynamically built available options pane. */
|
|
109
113
|
availableOptionsSearchAriaLabel?: string;
|
|
110
114
|
/** A callback for when the search input value for the dynamically built available options changes. */
|
|
111
|
-
onAvailableOptionsSearchInputChanged?: (
|
|
115
|
+
onAvailableOptionsSearchInputChanged?: (event: React.FormEvent<HTMLInputElement>, value: string) => void;
|
|
112
116
|
/** Accessible label for the search input on the dynamically built chosen options pane. */
|
|
113
117
|
chosenOptionsSearchAriaLabel?: string;
|
|
114
118
|
/** A callback for when the search input value for the dynamically built chosen options changes. */
|
|
115
|
-
onChosenOptionsSearchInputChanged?: (
|
|
119
|
+
onChosenOptionsSearchInputChanged?: (event: React.FormEvent<HTMLInputElement>, value: string) => void;
|
|
116
120
|
/** Optional filter function for custom filtering based on search string. Used with a dynamically built search input. */
|
|
117
121
|
filterOption?: (option: React.ReactNode, input: string) => boolean;
|
|
118
122
|
}
|
|
@@ -230,7 +234,7 @@ export class DualListSelector extends React.Component<DualListSelectorProps, Dua
|
|
|
230
234
|
if (isTree) {
|
|
231
235
|
this.setState({
|
|
232
236
|
availableTreeFilteredOptions: flattenTreeWithFolders(
|
|
233
|
-
|
|
237
|
+
newFilteredOptions as unknown as DualListSelectorTreeItemData[]
|
|
234
238
|
)
|
|
235
239
|
});
|
|
236
240
|
} else {
|
|
@@ -249,7 +253,7 @@ export class DualListSelector extends React.Component<DualListSelectorProps, Dua
|
|
|
249
253
|
if (isTree) {
|
|
250
254
|
this.setState({
|
|
251
255
|
chosenTreeFilteredOptions: flattenTreeWithFolders(
|
|
252
|
-
|
|
256
|
+
newFilteredOptions as unknown as DualListSelectorTreeItemData[]
|
|
253
257
|
)
|
|
254
258
|
});
|
|
255
259
|
} else {
|
|
@@ -260,12 +264,12 @@ export class DualListSelector extends React.Component<DualListSelectorProps, Dua
|
|
|
260
264
|
}
|
|
261
265
|
};
|
|
262
266
|
|
|
263
|
-
addAllVisible = () => {
|
|
264
|
-
this.setState(prevState => {
|
|
267
|
+
addAllVisible = (event: React.MouseEvent<HTMLElement>) => {
|
|
268
|
+
this.setState((prevState) => {
|
|
265
269
|
const itemsToRemove = [] as React.ReactNode[];
|
|
266
270
|
const newAvailable = [] as React.ReactNode[];
|
|
267
271
|
const movedOptions = prevState.availableFilteredOptions || prevState.availableOptions;
|
|
268
|
-
prevState.availableOptions.forEach(value => {
|
|
272
|
+
prevState.availableOptions.forEach((value) => {
|
|
269
273
|
if (movedOptions.indexOf(value) !== -1) {
|
|
270
274
|
itemsToRemove.push(value);
|
|
271
275
|
} else {
|
|
@@ -275,7 +279,7 @@ export class DualListSelector extends React.Component<DualListSelectorProps, Dua
|
|
|
275
279
|
|
|
276
280
|
const newChosen = [...prevState.chosenOptions, ...itemsToRemove];
|
|
277
281
|
this.props.addAll && this.props.addAll(newAvailable, newChosen);
|
|
278
|
-
this.props.onListChange && this.props.onListChange(newAvailable, newChosen);
|
|
282
|
+
this.props.onListChange && this.props.onListChange(event, newAvailable, newChosen);
|
|
279
283
|
|
|
280
284
|
return {
|
|
281
285
|
chosenOptions: newChosen,
|
|
@@ -288,27 +292,27 @@ export class DualListSelector extends React.Component<DualListSelectorProps, Dua
|
|
|
288
292
|
});
|
|
289
293
|
};
|
|
290
294
|
|
|
291
|
-
addAllTreeVisible = () => {
|
|
292
|
-
this.setState(prevState => {
|
|
295
|
+
addAllTreeVisible = (event: React.MouseEvent<HTMLElement>) => {
|
|
296
|
+
this.setState((prevState) => {
|
|
293
297
|
const movedOptions =
|
|
294
298
|
prevState.availableTreeFilteredOptions ||
|
|
295
|
-
flattenTreeWithFolders(
|
|
299
|
+
flattenTreeWithFolders(prevState.availableOptions as unknown as DualListSelectorTreeItemData[]);
|
|
296
300
|
const newAvailable = prevState.availableOptions
|
|
297
|
-
.map(opt => Object.assign({}, opt))
|
|
298
|
-
.filter(item =>
|
|
299
|
-
filterRestTreeItems(
|
|
301
|
+
.map((opt) => Object.assign({}, opt))
|
|
302
|
+
.filter((item) =>
|
|
303
|
+
filterRestTreeItems(item as unknown as DualListSelectorTreeItemData, movedOptions)
|
|
300
304
|
) as React.ReactNode[];
|
|
301
305
|
|
|
302
|
-
const currChosen = flattenTree(
|
|
306
|
+
const currChosen = flattenTree(prevState.chosenOptions as unknown as DualListSelectorTreeItemData[]);
|
|
303
307
|
const nextChosenOptions = currChosen.concat(movedOptions);
|
|
304
308
|
const newChosen = this.createMergedCopy()
|
|
305
|
-
.map(opt => Object.assign({}, opt))
|
|
306
|
-
.filter(item =>
|
|
309
|
+
.map((opt) => Object.assign({}, opt))
|
|
310
|
+
.filter((item) =>
|
|
307
311
|
filterTreeItemsWithoutFolders(item as DualListSelectorTreeItemData, nextChosenOptions)
|
|
308
312
|
) as React.ReactNode[];
|
|
309
313
|
|
|
310
314
|
this.props.addAll && this.props.addAll(newAvailable, newChosen);
|
|
311
|
-
this.props.onListChange && this.props.onListChange(newAvailable, newChosen);
|
|
315
|
+
this.props.onListChange && this.props.onListChange(event, newAvailable, newChosen);
|
|
312
316
|
|
|
313
317
|
return {
|
|
314
318
|
chosenOptions: newChosen,
|
|
@@ -321,8 +325,8 @@ export class DualListSelector extends React.Component<DualListSelectorProps, Dua
|
|
|
321
325
|
});
|
|
322
326
|
};
|
|
323
327
|
|
|
324
|
-
addSelected = () => {
|
|
325
|
-
this.setState(prevState => {
|
|
328
|
+
addSelected = (event: React.MouseEvent<HTMLElement>) => {
|
|
329
|
+
this.setState((prevState) => {
|
|
326
330
|
const itemsToRemove = [] as React.ReactNode[];
|
|
327
331
|
const newAvailable = [] as React.ReactNode[];
|
|
328
332
|
prevState.availableOptions.forEach((value, index) => {
|
|
@@ -335,7 +339,7 @@ export class DualListSelector extends React.Component<DualListSelectorProps, Dua
|
|
|
335
339
|
|
|
336
340
|
const newChosen = [...prevState.chosenOptions, ...itemsToRemove];
|
|
337
341
|
this.props.addSelected && this.props.addSelected(newAvailable, newChosen);
|
|
338
|
-
this.props.onListChange && this.props.onListChange(newAvailable, newChosen);
|
|
342
|
+
this.props.onListChange && this.props.onListChange(event, newAvailable, newChosen);
|
|
339
343
|
|
|
340
344
|
return {
|
|
341
345
|
chosenOptionsSelected: [],
|
|
@@ -348,26 +352,26 @@ export class DualListSelector extends React.Component<DualListSelectorProps, Dua
|
|
|
348
352
|
});
|
|
349
353
|
};
|
|
350
354
|
|
|
351
|
-
addTreeSelected = () => {
|
|
352
|
-
this.setState(prevState => {
|
|
355
|
+
addTreeSelected = (event: React.MouseEvent<HTMLElement>) => {
|
|
356
|
+
this.setState((prevState) => {
|
|
353
357
|
// Remove selected available nodes from current available nodes
|
|
354
358
|
const newAvailable = prevState.availableOptions
|
|
355
|
-
.map(opt => Object.assign({}, opt))
|
|
356
|
-
.filter(item =>
|
|
357
|
-
filterRestTreeItems(
|
|
359
|
+
.map((opt) => Object.assign({}, opt))
|
|
360
|
+
.filter((item) =>
|
|
361
|
+
filterRestTreeItems(item as unknown as DualListSelectorTreeItemData, prevState.availableTreeOptionsChecked)
|
|
358
362
|
);
|
|
359
363
|
|
|
360
364
|
// Get next chosen options from current + new nodes and remap from base
|
|
361
|
-
const currChosen = flattenTree(
|
|
365
|
+
const currChosen = flattenTree(prevState.chosenOptions as unknown as DualListSelectorTreeItemData[]);
|
|
362
366
|
const nextChosenOptions = currChosen.concat(prevState.availableTreeOptionsChecked);
|
|
363
367
|
const newChosen = this.createMergedCopy()
|
|
364
|
-
.map(opt => Object.assign({}, opt))
|
|
365
|
-
.filter(item =>
|
|
368
|
+
.map((opt) => Object.assign({}, opt))
|
|
369
|
+
.filter((item) =>
|
|
366
370
|
filterTreeItemsWithoutFolders(item as DualListSelectorTreeItemData, nextChosenOptions)
|
|
367
371
|
) as React.ReactNode[];
|
|
368
372
|
|
|
369
373
|
this.props.addSelected && this.props.addSelected(newAvailable, newChosen);
|
|
370
|
-
this.props.onListChange && this.props.onListChange(newAvailable, newChosen);
|
|
374
|
+
this.props.onListChange && this.props.onListChange(event, newAvailable, newChosen);
|
|
371
375
|
|
|
372
376
|
return {
|
|
373
377
|
availableTreeOptionsChecked: [],
|
|
@@ -378,12 +382,12 @@ export class DualListSelector extends React.Component<DualListSelectorProps, Dua
|
|
|
378
382
|
});
|
|
379
383
|
};
|
|
380
384
|
|
|
381
|
-
removeAllVisible = () => {
|
|
382
|
-
this.setState(prevState => {
|
|
385
|
+
removeAllVisible = (event: React.MouseEvent<HTMLElement>) => {
|
|
386
|
+
this.setState((prevState) => {
|
|
383
387
|
const itemsToRemove = [] as React.ReactNode[];
|
|
384
388
|
const newChosen = [] as React.ReactNode[];
|
|
385
389
|
const movedOptions = prevState.chosenFilteredOptions || prevState.chosenOptions;
|
|
386
|
-
prevState.chosenOptions.forEach(value => {
|
|
390
|
+
prevState.chosenOptions.forEach((value) => {
|
|
387
391
|
if (movedOptions.indexOf(value) !== -1) {
|
|
388
392
|
itemsToRemove.push(value);
|
|
389
393
|
} else {
|
|
@@ -393,7 +397,7 @@ export class DualListSelector extends React.Component<DualListSelectorProps, Dua
|
|
|
393
397
|
|
|
394
398
|
const newAvailable = [...prevState.availableOptions, ...itemsToRemove];
|
|
395
399
|
this.props.removeAll && this.props.removeAll(newAvailable, newChosen);
|
|
396
|
-
this.props.onListChange && this.props.onListChange(newAvailable, newChosen);
|
|
400
|
+
this.props.onListChange && this.props.onListChange(event, newAvailable, newChosen);
|
|
397
401
|
|
|
398
402
|
return {
|
|
399
403
|
chosenOptions: newChosen,
|
|
@@ -406,25 +410,25 @@ export class DualListSelector extends React.Component<DualListSelectorProps, Dua
|
|
|
406
410
|
});
|
|
407
411
|
};
|
|
408
412
|
|
|
409
|
-
removeAllTreeVisible = () => {
|
|
410
|
-
this.setState(prevState => {
|
|
413
|
+
removeAllTreeVisible = (event: React.MouseEvent<HTMLElement>) => {
|
|
414
|
+
this.setState((prevState) => {
|
|
411
415
|
const movedOptions =
|
|
412
416
|
prevState.chosenTreeFilteredOptions ||
|
|
413
|
-
flattenTreeWithFolders(
|
|
417
|
+
flattenTreeWithFolders(prevState.chosenOptions as unknown as DualListSelectorTreeItemData[]);
|
|
414
418
|
|
|
415
419
|
const newChosen = prevState.chosenOptions
|
|
416
|
-
.map(opt => Object.assign({}, opt))
|
|
417
|
-
.filter(item => filterRestTreeItems(
|
|
418
|
-
const currAvailable = flattenTree(
|
|
420
|
+
.map((opt) => Object.assign({}, opt))
|
|
421
|
+
.filter((item) => filterRestTreeItems(item as unknown as DualListSelectorTreeItemData, movedOptions));
|
|
422
|
+
const currAvailable = flattenTree(prevState.availableOptions as unknown as DualListSelectorTreeItemData[]);
|
|
419
423
|
const nextAvailableOptions = currAvailable.concat(movedOptions);
|
|
420
424
|
const newAvailable = this.createMergedCopy()
|
|
421
|
-
.map(opt => Object.assign({}, opt))
|
|
422
|
-
.filter(item =>
|
|
425
|
+
.map((opt) => Object.assign({}, opt))
|
|
426
|
+
.filter((item) =>
|
|
423
427
|
filterTreeItemsWithoutFolders(item as DualListSelectorTreeItemData, nextAvailableOptions)
|
|
424
428
|
) as React.ReactNode[];
|
|
425
429
|
|
|
426
430
|
this.props.removeAll && this.props.removeAll(newAvailable, newChosen);
|
|
427
|
-
this.props.onListChange && this.props.onListChange(newAvailable, newChosen);
|
|
431
|
+
this.props.onListChange && this.props.onListChange(event, newAvailable, newChosen);
|
|
428
432
|
|
|
429
433
|
return {
|
|
430
434
|
chosenOptions: newChosen,
|
|
@@ -435,8 +439,8 @@ export class DualListSelector extends React.Component<DualListSelectorProps, Dua
|
|
|
435
439
|
});
|
|
436
440
|
};
|
|
437
441
|
|
|
438
|
-
removeSelected = () => {
|
|
439
|
-
this.setState(prevState => {
|
|
442
|
+
removeSelected = (event: React.MouseEvent<HTMLElement>) => {
|
|
443
|
+
this.setState((prevState) => {
|
|
440
444
|
const itemsToRemove = [] as React.ReactNode[];
|
|
441
445
|
const newChosen = [] as React.ReactNode[];
|
|
442
446
|
prevState.chosenOptions.forEach((value, index) => {
|
|
@@ -449,7 +453,7 @@ export class DualListSelector extends React.Component<DualListSelectorProps, Dua
|
|
|
449
453
|
|
|
450
454
|
const newAvailable = [...prevState.availableOptions, ...itemsToRemove];
|
|
451
455
|
this.props.removeSelected && this.props.removeSelected(newAvailable, newChosen);
|
|
452
|
-
this.props.onListChange && this.props.onListChange(newAvailable, newChosen);
|
|
456
|
+
this.props.onListChange && this.props.onListChange(event, newAvailable, newChosen);
|
|
453
457
|
|
|
454
458
|
return {
|
|
455
459
|
chosenOptionsSelected: [],
|
|
@@ -462,26 +466,26 @@ export class DualListSelector extends React.Component<DualListSelectorProps, Dua
|
|
|
462
466
|
});
|
|
463
467
|
};
|
|
464
468
|
|
|
465
|
-
removeTreeSelected = () => {
|
|
466
|
-
this.setState(prevState => {
|
|
469
|
+
removeTreeSelected = (event: React.MouseEvent<HTMLElement>) => {
|
|
470
|
+
this.setState((prevState) => {
|
|
467
471
|
// Remove selected chosen nodes from current chosen nodes
|
|
468
472
|
const newChosen = prevState.chosenOptions
|
|
469
|
-
.map(opt => Object.assign({}, opt))
|
|
470
|
-
.filter(item =>
|
|
471
|
-
filterRestTreeItems(
|
|
473
|
+
.map((opt) => Object.assign({}, opt))
|
|
474
|
+
.filter((item) =>
|
|
475
|
+
filterRestTreeItems(item as unknown as DualListSelectorTreeItemData, prevState.chosenTreeOptionsChecked)
|
|
472
476
|
);
|
|
473
477
|
|
|
474
478
|
// Get next chosen options from current and remap from base
|
|
475
|
-
const currAvailable = flattenTree(
|
|
479
|
+
const currAvailable = flattenTree(prevState.availableOptions as unknown as DualListSelectorTreeItemData[]);
|
|
476
480
|
const nextAvailableOptions = currAvailable.concat(prevState.chosenTreeOptionsChecked);
|
|
477
481
|
const newAvailable = this.createMergedCopy()
|
|
478
|
-
.map(opt => Object.assign({}, opt))
|
|
479
|
-
.filter(item =>
|
|
482
|
+
.map((opt) => Object.assign({}, opt))
|
|
483
|
+
.filter((item) =>
|
|
480
484
|
filterTreeItemsWithoutFolders(item as DualListSelectorTreeItemData, nextAvailableOptions)
|
|
481
485
|
) as React.ReactNode[];
|
|
482
486
|
|
|
483
487
|
this.props.removeSelected && this.props.removeSelected(newAvailable, newChosen);
|
|
484
|
-
this.props.onListChange && this.props.onListChange(newAvailable, newChosen);
|
|
488
|
+
this.props.onListChange && this.props.onListChange(event, newAvailable, newChosen);
|
|
485
489
|
|
|
486
490
|
return {
|
|
487
491
|
availableTreeOptionsChecked: [],
|
|
@@ -502,12 +506,12 @@ export class DualListSelector extends React.Component<DualListSelectorProps, Dua
|
|
|
502
506
|
parentData?: any
|
|
503
507
|
/* eslint-enable @typescript-eslint/no-unused-vars */
|
|
504
508
|
) => {
|
|
505
|
-
this.setState(prevState => {
|
|
509
|
+
this.setState((prevState) => {
|
|
506
510
|
const originalArray = isChosen ? prevState.chosenOptionsSelected : prevState.availableOptionsSelected;
|
|
507
511
|
|
|
508
512
|
let updatedArray = null;
|
|
509
513
|
if (originalArray.indexOf(index) !== -1) {
|
|
510
|
-
updatedArray = originalArray.filter(value => value !== index);
|
|
514
|
+
updatedArray = originalArray.filter((value) => value !== index);
|
|
511
515
|
} else {
|
|
512
516
|
updatedArray = [...originalArray, index];
|
|
513
517
|
}
|
|
@@ -527,11 +531,11 @@ export class DualListSelector extends React.Component<DualListSelectorProps, Dua
|
|
|
527
531
|
: this.state.availableTreeOptionsChecked.includes(treeItem.id);
|
|
528
532
|
areAllDescendantsChecked = (treeItem: DualListSelectorTreeItemData, isChosen: boolean): boolean =>
|
|
529
533
|
treeItem.children
|
|
530
|
-
? treeItem.children.every(child => this.areAllDescendantsChecked(child, isChosen))
|
|
534
|
+
? treeItem.children.every((child) => this.areAllDescendantsChecked(child, isChosen))
|
|
531
535
|
: this.isChecked(treeItem, isChosen);
|
|
532
536
|
areSomeDescendantsChecked = (treeItem: DualListSelectorTreeItemData, isChosen: boolean): boolean =>
|
|
533
537
|
treeItem.children
|
|
534
|
-
? treeItem.children.some(child => this.areSomeDescendantsChecked(child, isChosen))
|
|
538
|
+
? treeItem.children.some((child) => this.areSomeDescendantsChecked(child, isChosen))
|
|
535
539
|
: this.isChecked(treeItem, isChosen);
|
|
536
540
|
|
|
537
541
|
mapChecked = (item: DualListSelectorTreeItemData, isChosen: boolean): DualListSelectorTreeItemData => {
|
|
@@ -550,7 +554,7 @@ export class DualListSelector extends React.Component<DualListSelectorProps, Dua
|
|
|
550
554
|
if (item.children) {
|
|
551
555
|
return {
|
|
552
556
|
...item,
|
|
553
|
-
children: item.children.map(child => this.mapChecked(child, isChosen))
|
|
557
|
+
children: item.children.map((child) => this.mapChecked(child, isChosen))
|
|
554
558
|
};
|
|
555
559
|
}
|
|
556
560
|
return item;
|
|
@@ -567,9 +571,9 @@ export class DualListSelector extends React.Component<DualListSelectorProps, Dua
|
|
|
567
571
|
if (isChosen) {
|
|
568
572
|
if (chosenTreeFilteredOptions) {
|
|
569
573
|
panelOptions = chosenOptions
|
|
570
|
-
.map(opt => Object.assign({}, opt))
|
|
571
|
-
.filter(item =>
|
|
572
|
-
filterTreeItemsWithoutFolders(
|
|
574
|
+
.map((opt) => Object.assign({}, opt))
|
|
575
|
+
.filter((item) =>
|
|
576
|
+
filterTreeItemsWithoutFolders(item as unknown as DualListSelectorTreeItemData, chosenTreeFilteredOptions)
|
|
573
577
|
);
|
|
574
578
|
} else {
|
|
575
579
|
panelOptions = chosenOptions;
|
|
@@ -577,32 +581,29 @@ export class DualListSelector extends React.Component<DualListSelectorProps, Dua
|
|
|
577
581
|
} else {
|
|
578
582
|
if (availableTreeFilteredOptions) {
|
|
579
583
|
panelOptions = availableOptions
|
|
580
|
-
.map(opt => Object.assign({}, opt))
|
|
581
|
-
.filter(item =>
|
|
582
|
-
filterTreeItemsWithoutFolders(
|
|
583
|
-
(item as unknown) as DualListSelectorTreeItemData,
|
|
584
|
-
availableTreeFilteredOptions
|
|
585
|
-
)
|
|
584
|
+
.map((opt) => Object.assign({}, opt))
|
|
585
|
+
.filter((item) =>
|
|
586
|
+
filterTreeItemsWithoutFolders(item as unknown as DualListSelectorTreeItemData, availableTreeFilteredOptions)
|
|
586
587
|
);
|
|
587
588
|
} else {
|
|
588
589
|
panelOptions = availableOptions;
|
|
589
590
|
}
|
|
590
591
|
}
|
|
591
592
|
const checkedOptionTree = panelOptions
|
|
592
|
-
.map(opt => Object.assign({}, opt))
|
|
593
|
-
.filter(item => filterTreeItems(
|
|
594
|
-
const flatTree = flattenTreeWithFolders(
|
|
593
|
+
.map((opt) => Object.assign({}, opt))
|
|
594
|
+
.filter((item) => filterTreeItems(item as unknown as DualListSelectorTreeItemData, [itemData.id]));
|
|
595
|
+
const flatTree = flattenTreeWithFolders(checkedOptionTree as unknown as DualListSelectorTreeItemData[]);
|
|
595
596
|
|
|
596
597
|
const prevChecked = isChosen ? this.state.chosenTreeOptionsChecked : this.state.availableTreeOptionsChecked;
|
|
597
598
|
let updatedChecked = [] as string[];
|
|
598
599
|
if (isChecked) {
|
|
599
|
-
updatedChecked = prevChecked.concat(flatTree.filter(id => !prevChecked.includes(id)));
|
|
600
|
+
updatedChecked = prevChecked.concat(flatTree.filter((id) => !prevChecked.includes(id)));
|
|
600
601
|
} else {
|
|
601
|
-
updatedChecked = prevChecked.filter(id => !flatTree.includes(id));
|
|
602
|
+
updatedChecked = prevChecked.filter((id) => !flatTree.includes(id));
|
|
602
603
|
}
|
|
603
604
|
|
|
604
605
|
this.setState(
|
|
605
|
-
prevState => ({
|
|
606
|
+
(prevState) => ({
|
|
606
607
|
availableTreeOptionsChecked: isChosen ? prevState.availableTreeOptionsChecked : updatedChecked,
|
|
607
608
|
chosenTreeOptionsChecked: isChosen ? updatedChecked : prevState.chosenTreeOptionsChecked
|
|
608
609
|
}),
|
|
@@ -668,29 +669,33 @@ export class DualListSelector extends React.Component<DualListSelectorProps, Dua
|
|
|
668
669
|
availableOptionsStatus ||
|
|
669
670
|
(isTree
|
|
670
671
|
? `${
|
|
671
|
-
filterFolders(
|
|
672
|
+
filterFolders(availableOptions as unknown as DualListSelectorTreeItemData[], availableTreeOptionsChecked)
|
|
672
673
|
.length
|
|
673
|
-
} of ${flattenTree(
|
|
674
|
+
} of ${flattenTree(availableOptions as unknown as DualListSelectorTreeItemData[]).length} items selected`
|
|
674
675
|
: `${availableOptionsSelected.length} of ${availableOptions.length} items selected`);
|
|
675
676
|
const chosenOptionsStatusToDisplay =
|
|
676
677
|
chosenOptionsStatus ||
|
|
677
678
|
(isTree
|
|
678
679
|
? `${
|
|
679
|
-
filterFolders(
|
|
680
|
-
} of ${flattenTree(
|
|
680
|
+
filterFolders(chosenOptions as unknown as DualListSelectorTreeItemData[], chosenTreeOptionsChecked).length
|
|
681
|
+
} of ${flattenTree(chosenOptions as unknown as DualListSelectorTreeItemData[]).length} items selected`
|
|
681
682
|
: `${chosenOptionsSelected.length} of ${chosenOptions.length} items selected`);
|
|
682
683
|
|
|
683
|
-
const available = (
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
684
|
+
const available = (
|
|
685
|
+
isTree
|
|
686
|
+
? availableOptions.map((item) => this.mapChecked(item as unknown as DualListSelectorTreeItemData, false))
|
|
687
|
+
: availableOptions
|
|
688
|
+
) as React.ReactNode[];
|
|
689
|
+
const chosen = (
|
|
690
|
+
isTree
|
|
691
|
+
? chosenOptions.map((item) => this.mapChecked(item as unknown as DualListSelectorTreeItemData, true))
|
|
692
|
+
: chosenOptions
|
|
693
|
+
) as React.ReactNode[];
|
|
689
694
|
|
|
690
695
|
return (
|
|
691
696
|
<DualListSelectorContext.Provider value={{ isTree }}>
|
|
692
697
|
<GenerateId>
|
|
693
|
-
{randomId => (
|
|
698
|
+
{(randomId) => (
|
|
694
699
|
<div className={css(styles.dualListSelector, className)} id={id || randomId} {...props}>
|
|
695
700
|
{children === '' ? (
|
|
696
701
|
<>
|
|
@@ -18,7 +18,7 @@ export interface DualListSelectorListItemProps extends React.HTMLProps<HTMLLIEle
|
|
|
18
18
|
/** Flag indicating the list item is currently selected. */
|
|
19
19
|
isSelected?: boolean;
|
|
20
20
|
/** Callback fired when an option is selected. */
|
|
21
|
-
onOptionSelect?: (
|
|
21
|
+
onOptionSelect?: (event: React.MouseEvent | React.ChangeEvent | React.KeyboardEvent, id?: string) => void;
|
|
22
22
|
/** ID of the option. */
|
|
23
23
|
id?: string;
|
|
24
24
|
/** @hide Internal field used to keep track of order of unfiltered options. */
|
|
@@ -36,7 +36,7 @@ export interface DualListSelectorPaneProps extends Omit<React.HTMLProps<HTMLDivE
|
|
|
36
36
|
selectedOptions?: string[] | number[];
|
|
37
37
|
/** @hide Callback for when an option is selected. Optionally used only when options prop is provided. */
|
|
38
38
|
onOptionSelect?: (
|
|
39
|
-
|
|
39
|
+
event: React.MouseEvent | React.ChangeEvent | React.KeyboardEvent,
|
|
40
40
|
index: number,
|
|
41
41
|
isChosen: boolean,
|
|
42
42
|
id?: string,
|
|
@@ -45,7 +45,7 @@ export interface DualListSelectorPaneProps extends Omit<React.HTMLProps<HTMLDivE
|
|
|
45
45
|
) => void;
|
|
46
46
|
/** @hide Callback for when a tree option is checked. Optionally used only when options prop is provided. */
|
|
47
47
|
onOptionCheck?: (
|
|
48
|
-
|
|
48
|
+
event: React.MouseEvent | React.ChangeEvent<HTMLInputElement> | React.KeyboardEvent,
|
|
49
49
|
isChecked: boolean,
|
|
50
50
|
itemData: DualListSelectorTreeItemData
|
|
51
51
|
) => void;
|
|
@@ -56,7 +56,7 @@ export interface DualListSelectorPaneProps extends Omit<React.HTMLProps<HTMLDivE
|
|
|
56
56
|
/** Callback for search input. To be used when isSearchable is true. */
|
|
57
57
|
onSearch?: (event: React.ChangeEvent<HTMLInputElement>) => void;
|
|
58
58
|
/** @hide A callback for when the search input value for changes. To be used when isSearchable is true. */
|
|
59
|
-
onSearchInputChanged?: (
|
|
59
|
+
onSearchInputChanged?: (event: React.FormEvent<HTMLInputElement>, value: string) => void;
|
|
60
60
|
/** @hide Callback for search input clear button */
|
|
61
61
|
onSearchInputClear?: (event: React.SyntheticEvent<HTMLButtonElement>) => void;
|
|
62
62
|
/** @hide Filter function for custom filtering based on search string. To be used when isSearchable is true. */
|
|
@@ -100,10 +100,10 @@ export const DualListSelectorPane: React.FunctionComponent<DualListSelectorPaneP
|
|
|
100
100
|
let filtered: React.ReactNode[];
|
|
101
101
|
if (isTree) {
|
|
102
102
|
filtered = options
|
|
103
|
-
.map(opt => Object.assign({}, opt))
|
|
104
|
-
.filter(item => filterInput(
|
|
103
|
+
.map((opt) => Object.assign({}, opt))
|
|
104
|
+
.filter((item) => filterInput(item as unknown as DualListSelectorTreeItemData, newValue));
|
|
105
105
|
} else {
|
|
106
|
-
filtered = options.filter(option => {
|
|
106
|
+
filtered = options.filter((option) => {
|
|
107
107
|
if (displayOption(option)) {
|
|
108
108
|
return option;
|
|
109
109
|
}
|
|
@@ -112,7 +112,7 @@ export const DualListSelectorPane: React.FunctionComponent<DualListSelectorPaneP
|
|
|
112
112
|
onFilterUpdate(filtered, isChosen ? 'chosen' : 'available', newValue === '');
|
|
113
113
|
|
|
114
114
|
if (onSearchInputChanged) {
|
|
115
|
-
onSearchInputChanged(
|
|
115
|
+
onSearchInputChanged(e, newValue);
|
|
116
116
|
}
|
|
117
117
|
setInput(newValue);
|
|
118
118
|
};
|
|
@@ -120,7 +120,7 @@ export const DualListSelectorPane: React.FunctionComponent<DualListSelectorPaneP
|
|
|
120
120
|
// only called when options are passed via options prop and isTree === true
|
|
121
121
|
const filterInput = (item: DualListSelectorTreeItemData, input: string): boolean => {
|
|
122
122
|
if (filterOption) {
|
|
123
|
-
return filterOption(
|
|
123
|
+
return filterOption(item as unknown as React.ReactNode, input);
|
|
124
124
|
} else {
|
|
125
125
|
if (item.text.toLowerCase().includes(input.toLowerCase()) || input === '') {
|
|
126
126
|
return true;
|
|
@@ -128,8 +128,9 @@ export const DualListSelectorPane: React.FunctionComponent<DualListSelectorPaneP
|
|
|
128
128
|
}
|
|
129
129
|
if (item.children) {
|
|
130
130
|
return (
|
|
131
|
-
(item.children = item.children
|
|
132
|
-
.
|
|
131
|
+
(item.children = item.children
|
|
132
|
+
.map((opt) => Object.assign({}, opt))
|
|
133
|
+
.filter((child) => filterInput(child, input))).length > 0
|
|
133
134
|
);
|
|
134
135
|
}
|
|
135
136
|
};
|
|
@@ -139,10 +140,7 @@ export const DualListSelectorPane: React.FunctionComponent<DualListSelectorPaneP
|
|
|
139
140
|
if (filterOption) {
|
|
140
141
|
return filterOption(option, input);
|
|
141
142
|
} else {
|
|
142
|
-
return option
|
|
143
|
-
.toString()
|
|
144
|
-
.toLowerCase()
|
|
145
|
-
.includes(input.toLowerCase());
|
|
143
|
+
return option.toString().toLowerCase().includes(input.toLowerCase());
|
|
146
144
|
}
|
|
147
145
|
};
|
|
148
146
|
|
|
@@ -168,7 +166,9 @@ export const DualListSelectorPane: React.FunctionComponent<DualListSelectorPaneP
|
|
|
168
166
|
<SearchInput
|
|
169
167
|
onChange={isDisabled ? undefined : onChange}
|
|
170
168
|
onClear={
|
|
171
|
-
onSearchInputClear
|
|
169
|
+
onSearchInputClear
|
|
170
|
+
? onSearchInputClear
|
|
171
|
+
: (e) => onChange(e as React.FormEvent<HTMLInputElement>, '')
|
|
172
172
|
}
|
|
173
173
|
isDisabled={isDisabled}
|
|
174
174
|
aria-label={searchInputAriaLabel}
|
|
@@ -221,12 +221,12 @@ export const DualListSelectorPane: React.FunctionComponent<DualListSelectorPaneP
|
|
|
221
221
|
<DualListSelectorTree
|
|
222
222
|
data={
|
|
223
223
|
isSearchable
|
|
224
|
-
? (
|
|
225
|
-
.map(opt => Object.assign({}, opt))
|
|
226
|
-
.filter(item =>
|
|
227
|
-
filterInput(
|
|
228
|
-
) as unknown
|
|
229
|
-
: (
|
|
224
|
+
? (options
|
|
225
|
+
.map((opt) => Object.assign({}, opt))
|
|
226
|
+
.filter((item) =>
|
|
227
|
+
filterInput(item as unknown as DualListSelectorTreeItemData, input)
|
|
228
|
+
) as unknown as DualListSelectorTreeItemData[])
|
|
229
|
+
: (options as unknown as DualListSelectorTreeItemData[])
|
|
230
230
|
}
|
|
231
231
|
onOptionCheck={onOptionCheck}
|
|
232
232
|
id={`${id}-tree`}
|
|
@@ -10,7 +10,11 @@ export const DualListSelectorBasic: React.FunctionComponent = () => {
|
|
|
10
10
|
]);
|
|
11
11
|
const [chosenOptions, setChosenOptions] = React.useState<React.ReactNode[]>([]);
|
|
12
12
|
|
|
13
|
-
const onListChange = (
|
|
13
|
+
const onListChange = (
|
|
14
|
+
event: React.MouseEvent<HTMLElement>,
|
|
15
|
+
newAvailableOptions: React.ReactNode[],
|
|
16
|
+
newChosenOptions: React.ReactNode[]
|
|
17
|
+
) => {
|
|
14
18
|
setAvailableOptions(newAvailableOptions.sort());
|
|
15
19
|
setChosenOptions(newChosenOptions.sort());
|
|
16
20
|
};
|
|
@@ -10,7 +10,11 @@ export const DualListSelectorBasicSearch: React.FunctionComponent = () => {
|
|
|
10
10
|
]);
|
|
11
11
|
const [chosenOptions, setChosenOptions] = React.useState<React.ReactNode[]>([]);
|
|
12
12
|
|
|
13
|
-
const onListChange = (
|
|
13
|
+
const onListChange = (
|
|
14
|
+
event: React.MouseEvent<HTMLElement>,
|
|
15
|
+
newAvailableOptions: React.ReactNode[],
|
|
16
|
+
newChosenOptions: React.ReactNode[]
|
|
17
|
+
) => {
|
|
14
18
|
setAvailableOptions(newAvailableOptions.sort());
|
|
15
19
|
setChosenOptions(newChosenOptions.sort());
|
|
16
20
|
};
|
|
@@ -10,7 +10,11 @@ export const DualListSelectorBasicTooltips: React.FunctionComponent = () => {
|
|
|
10
10
|
]);
|
|
11
11
|
const [chosenOptions, setChosenOptions] = React.useState<React.ReactNode[]>([]);
|
|
12
12
|
|
|
13
|
-
const onListChange = (
|
|
13
|
+
const onListChange = (
|
|
14
|
+
event: React.MouseEvent<HTMLElement>,
|
|
15
|
+
newAvailableOptions: React.ReactNode[],
|
|
16
|
+
newChosenOptions: React.ReactNode[]
|
|
17
|
+
) => {
|
|
14
18
|
setAvailableOptions(newAvailableOptions.sort());
|
|
15
19
|
setChosenOptions(newChosenOptions.sort());
|
|
16
20
|
};
|
|
@@ -74,6 +74,7 @@ export const DualListSelectorTreeExample: React.FunctionComponent = () => {
|
|
|
74
74
|
]);
|
|
75
75
|
|
|
76
76
|
const onListChange = (
|
|
77
|
+
event: React.MouseEvent<HTMLElement>,
|
|
77
78
|
newAvailableOptions: DualListSelectorTreeItemData[],
|
|
78
79
|
newChosenOptions: DualListSelectorTreeItemData[]
|
|
79
80
|
) => {
|
package/src/components/index.ts
CHANGED
|
@@ -21,7 +21,6 @@ export * from './Chip';
|
|
|
21
21
|
export * from './ChipGroup';
|
|
22
22
|
export * from './ClipboardCopy';
|
|
23
23
|
export * from './CodeBlock';
|
|
24
|
-
export * from './ContextSelector';
|
|
25
24
|
export * from './DataList';
|
|
26
25
|
export * from './DatePicker';
|
|
27
26
|
export * from './DescriptionList';
|
|
@@ -4,10 +4,10 @@ import { css } from '@patternfly/react-styles';
|
|
|
4
4
|
import { ContextSelectorToggle } from './ContextSelectorToggle';
|
|
5
5
|
import { ContextSelectorMenuList } from './ContextSelectorMenuList';
|
|
6
6
|
import { ContextSelectorContext } from './contextSelectorConstants';
|
|
7
|
-
import { FocusTrap, getUniqueId } from '
|
|
8
|
-
import { Popper } from '
|
|
9
|
-
import { getOUIAProps, OUIAProps, getDefaultOUIAId } from '
|
|
10
|
-
import { SearchInput } from '
|
|
7
|
+
import { FocusTrap, getUniqueId } from '../../../helpers';
|
|
8
|
+
import { Popper } from '../../../helpers/Popper/Popper';
|
|
9
|
+
import { getOUIAProps, OUIAProps, getDefaultOUIAId } from '../../../helpers';
|
|
10
|
+
import { SearchInput } from '../../../components/SearchInput';
|
|
11
11
|
|
|
12
12
|
export interface ContextSelectorProps extends OUIAProps {
|
|
13
13
|
/** content rendered inside the Context Selector */
|
|
@@ -152,7 +152,7 @@ export class ContextSelector extends React.Component<ContextSelectorProps, { oui
|
|
|
152
152
|
submitSearchButtonLabel={searchButtonAriaLabel}
|
|
153
153
|
placeholder={searchInputPlaceholder}
|
|
154
154
|
onChange={onSearchInputChange}
|
|
155
|
-
onSearch={(event, _value, _) => {
|
|
155
|
+
onSearch={(event: React.SyntheticEvent<HTMLButtonElement, Event>, _value: any, _: any) => {
|
|
156
156
|
onSearchButtonClick(event);
|
|
157
157
|
}}
|
|
158
158
|
value={searchInputValue}
|