@patternfly/react-templates 1.1.0-prerelease.26 → 1.1.0-prerelease.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/components/package.json +1 -1
  3. package/dist/dynamic/components/Dropdown/package.json +1 -1
  4. package/dist/dynamic/components/Select/package.json +1 -1
  5. package/dist/dynamic-modules.json +4 -0
  6. package/dist/esm/components/Select/MultiTypeaheadSelect.d.ts +33 -0
  7. package/dist/esm/components/Select/MultiTypeaheadSelect.d.ts.map +1 -0
  8. package/dist/esm/components/Select/MultiTypeaheadSelect.js +186 -0
  9. package/dist/esm/components/Select/MultiTypeaheadSelect.js.map +1 -0
  10. package/dist/esm/components/Select/index.d.ts +1 -0
  11. package/dist/esm/components/Select/index.d.ts.map +1 -1
  12. package/dist/esm/components/Select/index.js +1 -0
  13. package/dist/esm/components/Select/index.js.map +1 -1
  14. package/dist/js/components/Select/MultiTypeaheadSelect.d.ts +33 -0
  15. package/dist/js/components/Select/MultiTypeaheadSelect.d.ts.map +1 -0
  16. package/dist/js/components/Select/MultiTypeaheadSelect.js +190 -0
  17. package/dist/js/components/Select/MultiTypeaheadSelect.js.map +1 -0
  18. package/dist/js/components/Select/index.d.ts +1 -0
  19. package/dist/js/components/Select/index.d.ts.map +1 -1
  20. package/dist/js/components/Select/index.js +1 -0
  21. package/dist/js/components/Select/index.js.map +1 -1
  22. package/dist/umd/assets/{output-BgnxzFYT.css → output-BQZcvLDO.css} +8276 -8276
  23. package/dist/umd/react-templates.min.js +1 -1
  24. package/package.json +6 -6
  25. package/src/components/Select/MultiTypeaheadSelect.tsx +348 -0
  26. package/src/components/Select/__tests__/MultiTypeaheadSelect.test.tsx +414 -0
  27. package/src/components/Select/__tests__/__snapshots__/MultiTypeaheadSelect.test.tsx.snap +180 -0
  28. package/src/components/Select/examples/MultiTypeaheadSelectDemo.tsx +35 -0
  29. package/src/components/Select/examples/SelectTemplates.md +7 -1
  30. package/src/components/Select/index.ts +1 -0
package/CHANGELOG.md CHANGED
@@ -3,6 +3,16 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [1.1.0-prerelease.28](https://github.com/patternfly/patternfly-react/compare/@patternfly/react-templates@1.1.0-prerelease.27...@patternfly/react-templates@1.1.0-prerelease.28) (2024-07-17)
7
+
8
+ ### Features
9
+
10
+ - **MultiTypeaheadSelect:** Add MultiTypeaheadSelect to react-templates ([#10757](https://github.com/patternfly/patternfly-react/issues/10757)) ([943e19d](https://github.com/patternfly/patternfly-react/commit/943e19dc049ee9a0f047c89b0e456cdc69c56547))
11
+
12
+ # [1.1.0-prerelease.27](https://github.com/patternfly/patternfly-react/compare/@patternfly/react-templates@1.1.0-prerelease.26...@patternfly/react-templates@1.1.0-prerelease.27) (2024-07-16)
13
+
14
+ **Note:** Version bump only for package @patternfly/react-templates
15
+
6
16
  # [1.1.0-prerelease.26](https://github.com/patternfly/patternfly-react/compare/@patternfly/react-templates@1.1.0-prerelease.25...@patternfly/react-templates@1.1.0-prerelease.26) (2024-07-16)
7
17
 
8
18
  **Note:** Version bump only for package @patternfly/react-templates
@@ -1 +1 @@
1
- {"name":"@patternfly/react-templates-components","main":"../dist/js/components/index.js","module":"../dist/esm/components/index.js","typings":"../dist/esm/components/index.d.ts","version":"1.1.0-prerelease.25","private":true}
1
+ {"name":"@patternfly/react-templates-components","main":"../dist/js/components/index.js","module":"../dist/esm/components/index.js","typings":"../dist/esm/components/index.d.ts","version":"1.1.0-prerelease.27","private":true}
@@ -1 +1 @@
1
- {"name":"@patternfly/react-templates-dropdown-dynamic","main":"../../../js/components/Dropdown/index.js","module":"../../../esm/components/Dropdown/index.js","typings":"../../../esm/components/Dropdown/index.d.ts","version":"1.1.0-prerelease.25","private":true}
1
+ {"name":"@patternfly/react-templates-dropdown-dynamic","main":"../../../js/components/Dropdown/index.js","module":"../../../esm/components/Dropdown/index.js","typings":"../../../esm/components/Dropdown/index.d.ts","version":"1.1.0-prerelease.27","private":true}
@@ -1 +1 @@
1
- {"name":"@patternfly/react-templates-select-dynamic","main":"../../../js/components/Select/index.js","module":"../../../esm/components/Select/index.js","typings":"../../../esm/components/Select/index.d.ts","version":"1.1.0-prerelease.25","private":true}
1
+ {"name":"@patternfly/react-templates-select-dynamic","main":"../../../js/components/Select/index.js","module":"../../../esm/components/Select/index.js","typings":"../../../esm/components/Select/index.d.ts","version":"1.1.0-prerelease.27","private":true}
@@ -2,6 +2,10 @@
2
2
  "CheckboxSelect": "dist/dynamic/components/Select",
3
3
  "CheckboxSelectOption": "dist/dynamic/components/Select",
4
4
  "CheckboxSelectProps": "dist/dynamic/components/Select",
5
+ "MultiTypeaheadSelect": "dist/dynamic/components/Select",
6
+ "MultiTypeaheadSelectBase": "dist/dynamic/components/Select",
7
+ "MultiTypeaheadSelectOption": "dist/dynamic/components/Select",
8
+ "MultiTypeaheadSelectProps": "dist/dynamic/components/Select",
5
9
  "SimpleDropdown": "dist/dynamic/components/Dropdown",
6
10
  "SimpleDropdownItem": "dist/dynamic/components/Dropdown",
7
11
  "SimpleDropdownProps": "dist/dynamic/components/Dropdown",
@@ -0,0 +1,33 @@
1
+ import React from 'react';
2
+ import { SelectOptionProps, MenuToggleProps, SelectProps } from '@patternfly/react-core';
3
+ export interface MultiTypeaheadSelectOption extends Omit<SelectOptionProps, 'content'> {
4
+ /** Content of the select option. */
5
+ content: string | number;
6
+ /** Value of the select option. */
7
+ value: string | number;
8
+ }
9
+ export interface MultiTypeaheadSelectProps extends Omit<SelectProps, 'toggle' | 'onSelect'> {
10
+ /** @hide Forwarded ref */
11
+ innerRef?: React.Ref<any>;
12
+ /** Initial options of the select. */
13
+ initialOptions: MultiTypeaheadSelectOption[];
14
+ /** Callback triggered on selection. */
15
+ onSelectionChange?: (_event: React.MouseEvent<Element, MouseEvent> | React.KeyboardEvent<HTMLInputElement>, selections: (string | number)[]) => void;
16
+ /** Callback triggered when the select opens or closes. */
17
+ onToggle?: (nextIsOpen: boolean) => void;
18
+ /** Callback triggered when the text in the input field changes. */
19
+ onInputChange?: (newValue: string) => void;
20
+ /** Placeholder text for the select input. */
21
+ placeholder?: string;
22
+ /** Message to display when no options match the filter. */
23
+ noOptionsFoundMessage?: string | ((filter: string) => string);
24
+ /** Flag indicating the select should be disabled. */
25
+ isDisabled?: boolean;
26
+ /** Width of the toggle. */
27
+ toggleWidth?: string;
28
+ /** Additional props passed to the toggle. */
29
+ toggleProps?: MenuToggleProps;
30
+ }
31
+ export declare const MultiTypeaheadSelectBase: React.FunctionComponent<MultiTypeaheadSelectProps>;
32
+ export declare const MultiTypeaheadSelect: React.ForwardRefExoticComponent<MultiTypeaheadSelectProps & React.RefAttributes<any>>;
33
+ //# sourceMappingURL=MultiTypeaheadSelect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultiTypeaheadSelect.d.ts","sourceRoot":"","sources":["../../../../src/components/Select/MultiTypeaheadSelect.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAIL,iBAAiB,EAOjB,eAAe,EACf,WAAW,EAGZ,MAAM,wBAAwB,CAAC;AAGhC,MAAM,WAAW,0BAA2B,SAAQ,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC;IACpF,oCAAoC;IACpC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,kCAAkC;IAClC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,yBAA0B,SAAQ,IAAI,CAAC,WAAW,EAAE,QAAQ,GAAG,UAAU,CAAC;IACzF,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1B,qCAAqC;IACrC,cAAc,EAAE,0BAA0B,EAAE,CAAC;IAC7C,uCAAuC;IACvC,iBAAiB,CAAC,EAAE,CAClB,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,EACrF,UAAU,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,KAC5B,IAAI,CAAC;IACV,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,mEAAmE;IACnE,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2DAA2D;IAC3D,qBAAqB,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;IAC9D,qDAAqD;IACrD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,2BAA2B;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6CAA6C;IAC7C,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED,eAAO,MAAM,wBAAwB,EAAE,KAAK,CAAC,iBAAiB,CAAC,yBAAyB,CA+RvF,CAAC;AAIF,eAAO,MAAM,oBAAoB,uFAE/B,CAAC"}
@@ -0,0 +1,186 @@
1
+ import { __rest } from "tslib";
2
+ import React from 'react';
3
+ import { Select, SelectOption, SelectList, MenuToggle, TextInputGroup, TextInputGroupMain, TextInputGroupUtilities, Button, ChipGroup, Chip } from '@patternfly/react-core';
4
+ import TimesIcon from '@patternfly/react-icons/dist/esm/icons/times-icon';
5
+ export const MultiTypeaheadSelectBase = (_a) => {
6
+ var _b;
7
+ var { innerRef, initialOptions, onSelectionChange, onToggle, onInputChange, placeholder = 'Select an option', noOptionsFoundMessage = (filter) => `No results found for "${filter}"`, isDisabled, toggleWidth, toggleProps } = _a, props = __rest(_a, ["innerRef", "initialOptions", "onSelectionChange", "onToggle", "onInputChange", "placeholder", "noOptionsFoundMessage", "isDisabled", "toggleWidth", "toggleProps"]);
8
+ const [isOpen, setIsOpen] = React.useState(false);
9
+ const [selected, setSelected] = React.useState(((_b = initialOptions === null || initialOptions === void 0 ? void 0 : initialOptions.filter((o) => o.selected)) !== null && _b !== void 0 ? _b : []).map((o) => o.value));
10
+ const [inputValue, setInputValue] = React.useState();
11
+ const [selectOptions, setSelectOptions] = React.useState(initialOptions);
12
+ const [focusedItemIndex, setFocusedItemIndex] = React.useState(null);
13
+ const [activeItemId, setActiveItemId] = React.useState(null);
14
+ const textInputRef = React.useRef();
15
+ const NO_RESULTS = 'no results';
16
+ const openMenu = () => {
17
+ onToggle && onToggle(true);
18
+ setIsOpen(true);
19
+ };
20
+ React.useEffect(() => {
21
+ let newSelectOptions = initialOptions;
22
+ // Filter menu items based on the text input value when one exists
23
+ if (inputValue) {
24
+ newSelectOptions = initialOptions.filter((option) => String(option.content).toLowerCase().includes(inputValue.toLowerCase()));
25
+ // When no options are found after filtering, display 'No results found'
26
+ if (!newSelectOptions.length) {
27
+ newSelectOptions = [
28
+ {
29
+ isAriaDisabled: true,
30
+ content: typeof noOptionsFoundMessage === 'string' ? noOptionsFoundMessage : noOptionsFoundMessage(inputValue),
31
+ value: NO_RESULTS
32
+ }
33
+ ];
34
+ }
35
+ // Open the menu when the input value changes and the new value is not empty
36
+ openMenu();
37
+ }
38
+ setSelectOptions(newSelectOptions);
39
+ // eslint-disable-next-line react-hooks/exhaustive-deps
40
+ }, [inputValue, initialOptions]);
41
+ React.useEffect(() => { var _a; return setSelected(((_a = initialOptions === null || initialOptions === void 0 ? void 0 : initialOptions.filter((o) => o.selected)) !== null && _a !== void 0 ? _a : []).map((o) => o.value)); }, [initialOptions]);
42
+ const setActiveAndFocusedItem = (itemIndex) => {
43
+ setFocusedItemIndex(itemIndex);
44
+ const focusedItem = selectOptions[itemIndex];
45
+ setActiveItemId(focusedItem.value);
46
+ };
47
+ const resetActiveAndFocusedItem = () => {
48
+ setFocusedItemIndex(null);
49
+ setActiveItemId(null);
50
+ };
51
+ const closeMenu = () => {
52
+ onToggle && onToggle(false);
53
+ setIsOpen(false);
54
+ resetActiveAndFocusedItem();
55
+ setInputValue('');
56
+ };
57
+ const onInputClick = () => {
58
+ if (!isOpen) {
59
+ openMenu();
60
+ }
61
+ else if (!inputValue) {
62
+ closeMenu();
63
+ }
64
+ };
65
+ const selectOption = (_event, option) => {
66
+ const selections = selected.includes(option) ? selected.filter((o) => option !== o) : [...selected, option];
67
+ onSelectionChange && onSelectionChange(_event, selections);
68
+ setSelected(selections);
69
+ };
70
+ const clearOption = (_event, option) => {
71
+ const selections = selected.filter((o) => option !== o);
72
+ onSelectionChange && onSelectionChange(_event, selections);
73
+ setSelected(selections);
74
+ };
75
+ const _onSelect = (_event, value) => {
76
+ if (value && value !== NO_RESULTS) {
77
+ selectOption(_event, value);
78
+ }
79
+ };
80
+ const onTextInputChange = (_event, value) => {
81
+ setInputValue(value);
82
+ onInputChange && onInputChange(value);
83
+ resetActiveAndFocusedItem();
84
+ };
85
+ const handleMenuArrowKeys = (key) => {
86
+ let indexToFocus = 0;
87
+ if (!isOpen) {
88
+ openMenu();
89
+ }
90
+ if (selectOptions.every((option) => option.isDisabled)) {
91
+ return;
92
+ }
93
+ if (key === 'ArrowUp') {
94
+ // When no index is set or at the first index, focus to the last, otherwise decrement focus index
95
+ if (focusedItemIndex === null || focusedItemIndex === 0) {
96
+ indexToFocus = selectOptions.length - 1;
97
+ }
98
+ else {
99
+ indexToFocus = focusedItemIndex - 1;
100
+ }
101
+ // Skip disabled options
102
+ while (selectOptions[indexToFocus].isDisabled) {
103
+ indexToFocus--;
104
+ if (indexToFocus === -1) {
105
+ indexToFocus = selectOptions.length - 1;
106
+ }
107
+ }
108
+ }
109
+ if (key === 'ArrowDown') {
110
+ // When no index is set or at the last index, focus to the first, otherwise increment focus index
111
+ if (focusedItemIndex === null || focusedItemIndex === selectOptions.length - 1) {
112
+ indexToFocus = 0;
113
+ }
114
+ else {
115
+ indexToFocus = focusedItemIndex + 1;
116
+ }
117
+ // Skip disabled options
118
+ while (selectOptions[indexToFocus].isDisabled) {
119
+ indexToFocus++;
120
+ if (indexToFocus === selectOptions.length) {
121
+ indexToFocus = 0;
122
+ }
123
+ }
124
+ }
125
+ setActiveAndFocusedItem(indexToFocus);
126
+ };
127
+ const onInputKeyDown = (event) => {
128
+ const focusedItem = focusedItemIndex !== null ? selectOptions[focusedItemIndex] : null;
129
+ switch (event.key) {
130
+ case 'Enter':
131
+ if (isOpen && focusedItem && focusedItem.value !== NO_RESULTS && !focusedItem.isAriaDisabled) {
132
+ selectOption(event, focusedItem === null || focusedItem === void 0 ? void 0 : focusedItem.value);
133
+ }
134
+ if (!isOpen) {
135
+ onToggle && onToggle(true);
136
+ setIsOpen(true);
137
+ }
138
+ break;
139
+ case 'ArrowUp':
140
+ case 'ArrowDown':
141
+ event.preventDefault();
142
+ handleMenuArrowKeys(event.key);
143
+ break;
144
+ }
145
+ };
146
+ const onToggleClick = () => {
147
+ var _a;
148
+ onToggle && onToggle(!isOpen);
149
+ setIsOpen(!isOpen);
150
+ (_a = textInputRef === null || textInputRef === void 0 ? void 0 : textInputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
151
+ };
152
+ const onClearButtonClick = (ev) => {
153
+ var _a;
154
+ setSelected([]);
155
+ onInputChange && onInputChange('');
156
+ resetActiveAndFocusedItem();
157
+ (_a = textInputRef === null || textInputRef === void 0 ? void 0 : textInputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
158
+ onSelectionChange && onSelectionChange(ev, []);
159
+ };
160
+ const toggle = (toggleRef) => (React.createElement(MenuToggle, Object.assign({ ref: toggleRef, variant: "typeahead", "aria-label": "Multi select Typeahead menu toggle", onClick: onToggleClick, isExpanded: isOpen, isDisabled: isDisabled, isFullWidth: true, style: {
161
+ width: toggleWidth
162
+ } }, toggleProps),
163
+ React.createElement(TextInputGroup, { isPlain: true },
164
+ React.createElement(TextInputGroupMain, Object.assign({ value: inputValue, onClick: onInputClick, onChange: onTextInputChange, onKeyDown: onInputKeyDown, autoComplete: "off", innerRef: textInputRef, placeholder: placeholder }, (activeItemId && { 'aria-activedescendant': activeItemId }), { role: "combobox", isExpanded: isOpen, "aria-controls": "select-typeahead-listbox" }),
165
+ React.createElement(ChipGroup, { "aria-label": "Current selections" }, selected.map((selection, index) => {
166
+ var _a;
167
+ return (React.createElement(Chip, { key: index, "datatest-id": `${selection}-chip`, onClick: (ev) => {
168
+ ev.stopPropagation();
169
+ clearOption(ev, selection);
170
+ } }, (_a = initialOptions.find((o) => o.value === selection)) === null || _a === void 0 ? void 0 : _a.content));
171
+ }))),
172
+ React.createElement(TextInputGroupUtilities, Object.assign({}, (selected.length === 0 ? { style: { display: 'none' } } : {})),
173
+ React.createElement(Button, { variant: "plain", onClick: onClearButtonClick, "aria-label": "Clear input value" },
174
+ React.createElement(TimesIcon, { "aria-hidden": true }))))));
175
+ return (React.createElement(Select, Object.assign({ isOpen: isOpen, selected: selected, onSelect: _onSelect, onOpenChange: (isOpen) => {
176
+ !isOpen && closeMenu();
177
+ }, toggle: toggle, shouldFocusFirstItemOnOpen: false, ref: innerRef }, props),
178
+ React.createElement(SelectList, null, selectOptions.map((option, index) => {
179
+ const { content, value } = option, props = __rest(option, ["content", "value"]);
180
+ return (React.createElement(SelectOption, Object.assign({ key: value, value: value, isFocused: focusedItemIndex === index }, props), content));
181
+ }))));
182
+ };
183
+ MultiTypeaheadSelectBase.displayName = 'MultiTypeaheadSelectBase';
184
+ export const MultiTypeaheadSelect = React.forwardRef((props, ref) => (React.createElement(MultiTypeaheadSelectBase, Object.assign({}, props, { innerRef: ref }))));
185
+ MultiTypeaheadSelect.displayName = 'MultiTypeaheadSelect';
186
+ //# sourceMappingURL=MultiTypeaheadSelect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultiTypeaheadSelect.js","sourceRoot":"","sources":["../../../../src/components/Select/MultiTypeaheadSelect.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export * from './SimpleSelect';
2
2
  export * from './CheckboxSelect';
3
3
  export * from './TypeaheadSelect';
4
+ export * from './MultiTypeaheadSelect';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Select/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Select/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC"}
@@ -1,4 +1,5 @@
1
1
  export * from './SimpleSelect';
2
2
  export * from './CheckboxSelect';
3
3
  export * from './TypeaheadSelect';
4
+ export * from './MultiTypeaheadSelect';
4
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/Select/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/Select/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC"}
@@ -0,0 +1,33 @@
1
+ import React from 'react';
2
+ import { SelectOptionProps, MenuToggleProps, SelectProps } from '@patternfly/react-core';
3
+ export interface MultiTypeaheadSelectOption extends Omit<SelectOptionProps, 'content'> {
4
+ /** Content of the select option. */
5
+ content: string | number;
6
+ /** Value of the select option. */
7
+ value: string | number;
8
+ }
9
+ export interface MultiTypeaheadSelectProps extends Omit<SelectProps, 'toggle' | 'onSelect'> {
10
+ /** @hide Forwarded ref */
11
+ innerRef?: React.Ref<any>;
12
+ /** Initial options of the select. */
13
+ initialOptions: MultiTypeaheadSelectOption[];
14
+ /** Callback triggered on selection. */
15
+ onSelectionChange?: (_event: React.MouseEvent<Element, MouseEvent> | React.KeyboardEvent<HTMLInputElement>, selections: (string | number)[]) => void;
16
+ /** Callback triggered when the select opens or closes. */
17
+ onToggle?: (nextIsOpen: boolean) => void;
18
+ /** Callback triggered when the text in the input field changes. */
19
+ onInputChange?: (newValue: string) => void;
20
+ /** Placeholder text for the select input. */
21
+ placeholder?: string;
22
+ /** Message to display when no options match the filter. */
23
+ noOptionsFoundMessage?: string | ((filter: string) => string);
24
+ /** Flag indicating the select should be disabled. */
25
+ isDisabled?: boolean;
26
+ /** Width of the toggle. */
27
+ toggleWidth?: string;
28
+ /** Additional props passed to the toggle. */
29
+ toggleProps?: MenuToggleProps;
30
+ }
31
+ export declare const MultiTypeaheadSelectBase: React.FunctionComponent<MultiTypeaheadSelectProps>;
32
+ export declare const MultiTypeaheadSelect: React.ForwardRefExoticComponent<MultiTypeaheadSelectProps & React.RefAttributes<any>>;
33
+ //# sourceMappingURL=MultiTypeaheadSelect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultiTypeaheadSelect.d.ts","sourceRoot":"","sources":["../../../../src/components/Select/MultiTypeaheadSelect.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAIL,iBAAiB,EAOjB,eAAe,EACf,WAAW,EAGZ,MAAM,wBAAwB,CAAC;AAGhC,MAAM,WAAW,0BAA2B,SAAQ,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC;IACpF,oCAAoC;IACpC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,kCAAkC;IAClC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,yBAA0B,SAAQ,IAAI,CAAC,WAAW,EAAE,QAAQ,GAAG,UAAU,CAAC;IACzF,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1B,qCAAqC;IACrC,cAAc,EAAE,0BAA0B,EAAE,CAAC;IAC7C,uCAAuC;IACvC,iBAAiB,CAAC,EAAE,CAClB,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,EACrF,UAAU,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,KAC5B,IAAI,CAAC;IACV,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,mEAAmE;IACnE,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2DAA2D;IAC3D,qBAAqB,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;IAC9D,qDAAqD;IACrD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,2BAA2B;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6CAA6C;IAC7C,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED,eAAO,MAAM,wBAAwB,EAAE,KAAK,CAAC,iBAAiB,CAAC,yBAAyB,CA+RvF,CAAC;AAIF,eAAO,MAAM,oBAAoB,uFAE/B,CAAC"}
@@ -0,0 +1,190 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MultiTypeaheadSelect = exports.MultiTypeaheadSelectBase = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const react_1 = tslib_1.__importDefault(require("react"));
6
+ const react_core_1 = require("@patternfly/react-core");
7
+ const times_icon_1 = tslib_1.__importDefault(require('@patternfly/react-icons/dist/js/icons/times-icon'));
8
+ const MultiTypeaheadSelectBase = (_a) => {
9
+ var _b;
10
+ var { innerRef, initialOptions, onSelectionChange, onToggle, onInputChange, placeholder = 'Select an option', noOptionsFoundMessage = (filter) => `No results found for "${filter}"`, isDisabled, toggleWidth, toggleProps } = _a, props = tslib_1.__rest(_a, ["innerRef", "initialOptions", "onSelectionChange", "onToggle", "onInputChange", "placeholder", "noOptionsFoundMessage", "isDisabled", "toggleWidth", "toggleProps"]);
11
+ const [isOpen, setIsOpen] = react_1.default.useState(false);
12
+ const [selected, setSelected] = react_1.default.useState(((_b = initialOptions === null || initialOptions === void 0 ? void 0 : initialOptions.filter((o) => o.selected)) !== null && _b !== void 0 ? _b : []).map((o) => o.value));
13
+ const [inputValue, setInputValue] = react_1.default.useState();
14
+ const [selectOptions, setSelectOptions] = react_1.default.useState(initialOptions);
15
+ const [focusedItemIndex, setFocusedItemIndex] = react_1.default.useState(null);
16
+ const [activeItemId, setActiveItemId] = react_1.default.useState(null);
17
+ const textInputRef = react_1.default.useRef();
18
+ const NO_RESULTS = 'no results';
19
+ const openMenu = () => {
20
+ onToggle && onToggle(true);
21
+ setIsOpen(true);
22
+ };
23
+ react_1.default.useEffect(() => {
24
+ let newSelectOptions = initialOptions;
25
+ // Filter menu items based on the text input value when one exists
26
+ if (inputValue) {
27
+ newSelectOptions = initialOptions.filter((option) => String(option.content).toLowerCase().includes(inputValue.toLowerCase()));
28
+ // When no options are found after filtering, display 'No results found'
29
+ if (!newSelectOptions.length) {
30
+ newSelectOptions = [
31
+ {
32
+ isAriaDisabled: true,
33
+ content: typeof noOptionsFoundMessage === 'string' ? noOptionsFoundMessage : noOptionsFoundMessage(inputValue),
34
+ value: NO_RESULTS
35
+ }
36
+ ];
37
+ }
38
+ // Open the menu when the input value changes and the new value is not empty
39
+ openMenu();
40
+ }
41
+ setSelectOptions(newSelectOptions);
42
+ // eslint-disable-next-line react-hooks/exhaustive-deps
43
+ }, [inputValue, initialOptions]);
44
+ react_1.default.useEffect(() => { var _a; return setSelected(((_a = initialOptions === null || initialOptions === void 0 ? void 0 : initialOptions.filter((o) => o.selected)) !== null && _a !== void 0 ? _a : []).map((o) => o.value)); }, [initialOptions]);
45
+ const setActiveAndFocusedItem = (itemIndex) => {
46
+ setFocusedItemIndex(itemIndex);
47
+ const focusedItem = selectOptions[itemIndex];
48
+ setActiveItemId(focusedItem.value);
49
+ };
50
+ const resetActiveAndFocusedItem = () => {
51
+ setFocusedItemIndex(null);
52
+ setActiveItemId(null);
53
+ };
54
+ const closeMenu = () => {
55
+ onToggle && onToggle(false);
56
+ setIsOpen(false);
57
+ resetActiveAndFocusedItem();
58
+ setInputValue('');
59
+ };
60
+ const onInputClick = () => {
61
+ if (!isOpen) {
62
+ openMenu();
63
+ }
64
+ else if (!inputValue) {
65
+ closeMenu();
66
+ }
67
+ };
68
+ const selectOption = (_event, option) => {
69
+ const selections = selected.includes(option) ? selected.filter((o) => option !== o) : [...selected, option];
70
+ onSelectionChange && onSelectionChange(_event, selections);
71
+ setSelected(selections);
72
+ };
73
+ const clearOption = (_event, option) => {
74
+ const selections = selected.filter((o) => option !== o);
75
+ onSelectionChange && onSelectionChange(_event, selections);
76
+ setSelected(selections);
77
+ };
78
+ const _onSelect = (_event, value) => {
79
+ if (value && value !== NO_RESULTS) {
80
+ selectOption(_event, value);
81
+ }
82
+ };
83
+ const onTextInputChange = (_event, value) => {
84
+ setInputValue(value);
85
+ onInputChange && onInputChange(value);
86
+ resetActiveAndFocusedItem();
87
+ };
88
+ const handleMenuArrowKeys = (key) => {
89
+ let indexToFocus = 0;
90
+ if (!isOpen) {
91
+ openMenu();
92
+ }
93
+ if (selectOptions.every((option) => option.isDisabled)) {
94
+ return;
95
+ }
96
+ if (key === 'ArrowUp') {
97
+ // When no index is set or at the first index, focus to the last, otherwise decrement focus index
98
+ if (focusedItemIndex === null || focusedItemIndex === 0) {
99
+ indexToFocus = selectOptions.length - 1;
100
+ }
101
+ else {
102
+ indexToFocus = focusedItemIndex - 1;
103
+ }
104
+ // Skip disabled options
105
+ while (selectOptions[indexToFocus].isDisabled) {
106
+ indexToFocus--;
107
+ if (indexToFocus === -1) {
108
+ indexToFocus = selectOptions.length - 1;
109
+ }
110
+ }
111
+ }
112
+ if (key === 'ArrowDown') {
113
+ // When no index is set or at the last index, focus to the first, otherwise increment focus index
114
+ if (focusedItemIndex === null || focusedItemIndex === selectOptions.length - 1) {
115
+ indexToFocus = 0;
116
+ }
117
+ else {
118
+ indexToFocus = focusedItemIndex + 1;
119
+ }
120
+ // Skip disabled options
121
+ while (selectOptions[indexToFocus].isDisabled) {
122
+ indexToFocus++;
123
+ if (indexToFocus === selectOptions.length) {
124
+ indexToFocus = 0;
125
+ }
126
+ }
127
+ }
128
+ setActiveAndFocusedItem(indexToFocus);
129
+ };
130
+ const onInputKeyDown = (event) => {
131
+ const focusedItem = focusedItemIndex !== null ? selectOptions[focusedItemIndex] : null;
132
+ switch (event.key) {
133
+ case 'Enter':
134
+ if (isOpen && focusedItem && focusedItem.value !== NO_RESULTS && !focusedItem.isAriaDisabled) {
135
+ selectOption(event, focusedItem === null || focusedItem === void 0 ? void 0 : focusedItem.value);
136
+ }
137
+ if (!isOpen) {
138
+ onToggle && onToggle(true);
139
+ setIsOpen(true);
140
+ }
141
+ break;
142
+ case 'ArrowUp':
143
+ case 'ArrowDown':
144
+ event.preventDefault();
145
+ handleMenuArrowKeys(event.key);
146
+ break;
147
+ }
148
+ };
149
+ const onToggleClick = () => {
150
+ var _a;
151
+ onToggle && onToggle(!isOpen);
152
+ setIsOpen(!isOpen);
153
+ (_a = textInputRef === null || textInputRef === void 0 ? void 0 : textInputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
154
+ };
155
+ const onClearButtonClick = (ev) => {
156
+ var _a;
157
+ setSelected([]);
158
+ onInputChange && onInputChange('');
159
+ resetActiveAndFocusedItem();
160
+ (_a = textInputRef === null || textInputRef === void 0 ? void 0 : textInputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
161
+ onSelectionChange && onSelectionChange(ev, []);
162
+ };
163
+ const toggle = (toggleRef) => (react_1.default.createElement(react_core_1.MenuToggle, Object.assign({ ref: toggleRef, variant: "typeahead", "aria-label": "Multi select Typeahead menu toggle", onClick: onToggleClick, isExpanded: isOpen, isDisabled: isDisabled, isFullWidth: true, style: {
164
+ width: toggleWidth
165
+ } }, toggleProps),
166
+ react_1.default.createElement(react_core_1.TextInputGroup, { isPlain: true },
167
+ react_1.default.createElement(react_core_1.TextInputGroupMain, Object.assign({ value: inputValue, onClick: onInputClick, onChange: onTextInputChange, onKeyDown: onInputKeyDown, autoComplete: "off", innerRef: textInputRef, placeholder: placeholder }, (activeItemId && { 'aria-activedescendant': activeItemId }), { role: "combobox", isExpanded: isOpen, "aria-controls": "select-typeahead-listbox" }),
168
+ react_1.default.createElement(react_core_1.ChipGroup, { "aria-label": "Current selections" }, selected.map((selection, index) => {
169
+ var _a;
170
+ return (react_1.default.createElement(react_core_1.Chip, { key: index, "datatest-id": `${selection}-chip`, onClick: (ev) => {
171
+ ev.stopPropagation();
172
+ clearOption(ev, selection);
173
+ } }, (_a = initialOptions.find((o) => o.value === selection)) === null || _a === void 0 ? void 0 : _a.content));
174
+ }))),
175
+ react_1.default.createElement(react_core_1.TextInputGroupUtilities, Object.assign({}, (selected.length === 0 ? { style: { display: 'none' } } : {})),
176
+ react_1.default.createElement(react_core_1.Button, { variant: "plain", onClick: onClearButtonClick, "aria-label": "Clear input value" },
177
+ react_1.default.createElement(times_icon_1.default, { "aria-hidden": true }))))));
178
+ return (react_1.default.createElement(react_core_1.Select, Object.assign({ isOpen: isOpen, selected: selected, onSelect: _onSelect, onOpenChange: (isOpen) => {
179
+ !isOpen && closeMenu();
180
+ }, toggle: toggle, shouldFocusFirstItemOnOpen: false, ref: innerRef }, props),
181
+ react_1.default.createElement(react_core_1.SelectList, null, selectOptions.map((option, index) => {
182
+ const { content, value } = option, props = tslib_1.__rest(option, ["content", "value"]);
183
+ return (react_1.default.createElement(react_core_1.SelectOption, Object.assign({ key: value, value: value, isFocused: focusedItemIndex === index }, props), content));
184
+ }))));
185
+ };
186
+ exports.MultiTypeaheadSelectBase = MultiTypeaheadSelectBase;
187
+ exports.MultiTypeaheadSelectBase.displayName = 'MultiTypeaheadSelectBase';
188
+ exports.MultiTypeaheadSelect = react_1.default.forwardRef((props, ref) => (react_1.default.createElement(exports.MultiTypeaheadSelectBase, Object.assign({}, props, { innerRef: ref }))));
189
+ exports.MultiTypeaheadSelect.displayName = 'MultiTypeaheadSelect';
190
+ //# sourceMappingURL=MultiTypeaheadSelect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultiTypeaheadSelect.js","sourceRoot":"","sources":["../../../../src/components/Select/MultiTypeaheadSelect.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export * from './SimpleSelect';
2
2
  export * from './CheckboxSelect';
3
3
  export * from './TypeaheadSelect';
4
+ export * from './MultiTypeaheadSelect';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Select/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Select/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC"}
@@ -4,4 +4,5 @@ const tslib_1 = require("tslib");
4
4
  tslib_1.__exportStar(require("./SimpleSelect"), exports);
5
5
  tslib_1.__exportStar(require("./CheckboxSelect"), exports);
6
6
  tslib_1.__exportStar(require("./TypeaheadSelect"), exports);
7
+ tslib_1.__exportStar(require("./MultiTypeaheadSelect"), exports);
7
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/Select/index.ts"],"names":[],"mappings":";;;AAAA,yDAA+B;AAC/B,2DAAiC;AACjC,4DAAkC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/Select/index.ts"],"names":[],"mappings":";;;AAAA,yDAA+B;AAC/B,2DAAiC;AACjC,4DAAkC;AAClC,iEAAuC"}