@patternfly/react-templates 1.1.0-prerelease.39 → 1.1.0-prerelease.40
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 +4 -0
- package/components/package.json +1 -1
- package/dist/dynamic/components/Dropdown/package.json +1 -1
- package/dist/dynamic/components/Select/package.json +1 -1
- package/dist/esm/components/Select/TypeaheadSelect.d.ts +7 -3
- package/dist/esm/components/Select/TypeaheadSelect.d.ts.map +1 -1
- package/dist/esm/components/Select/TypeaheadSelect.js +66 -58
- package/dist/esm/components/Select/TypeaheadSelect.js.map +1 -1
- package/dist/js/components/Select/TypeaheadSelect.d.ts +7 -3
- package/dist/js/components/Select/TypeaheadSelect.d.ts.map +1 -1
- package/dist/js/components/Select/TypeaheadSelect.js +66 -58
- package/dist/js/components/Select/TypeaheadSelect.js.map +1 -1
- package/dist/umd/assets/{output-DtM3geql.css → output-Cfyy993h.css} +3797 -3797
- package/dist/umd/react-templates.min.js +1 -1
- package/package.json +2 -2
- package/src/components/Select/TypeaheadSelect.tsx +69 -61
- package/src/components/Select/__tests__/TypeaheadSelect.test.tsx +36 -72
- package/src/components/Select/__tests__/__snapshots__/TypeaheadSelect.test.tsx.snap +3 -3
- package/src/components/Select/examples/SelectTemplates.md +3 -0
- package/src/components/Select/examples/TypeaheadSelectDemo.tsx +9 -7
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,10 @@
|
|
|
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.40](https://github.com/patternfly/patternfly-react/compare/@patternfly/react-templates@1.1.0-prerelease.39...@patternfly/react-templates@1.1.0-prerelease.40) (2024-08-09)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @patternfly/react-templates
|
|
9
|
+
|
|
6
10
|
# [1.1.0-prerelease.39](https://github.com/patternfly/patternfly-react/compare/@patternfly/react-templates@1.1.0-prerelease.38...@patternfly/react-templates@1.1.0-prerelease.39) (2024-08-06)
|
|
7
11
|
|
|
8
12
|
**Note:** Version bump only for package @patternfly/react-templates
|
package/components/package.json
CHANGED
|
@@ -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.
|
|
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.39","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.
|
|
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.39","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.
|
|
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.39","private":true}
|
|
@@ -1,22 +1,26 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { SelectOptionProps, MenuToggleProps, SelectProps } from '@patternfly/react-core';
|
|
3
|
-
export interface TypeaheadSelectOption extends Omit<SelectOptionProps, 'content'> {
|
|
3
|
+
export interface TypeaheadSelectOption extends Omit<SelectOptionProps, 'content' | 'isSelected'> {
|
|
4
4
|
/** Content of the select option. */
|
|
5
5
|
content: string | number;
|
|
6
6
|
/** Value of the select option. */
|
|
7
7
|
value: string | number;
|
|
8
|
+
/** Indicator for option being selected */
|
|
9
|
+
isSelected?: boolean;
|
|
8
10
|
}
|
|
9
11
|
export interface TypeaheadSelectProps extends Omit<SelectProps, 'toggle' | 'onSelect'> {
|
|
10
12
|
/** @hide Forwarded ref */
|
|
11
13
|
innerRef?: React.Ref<any>;
|
|
12
|
-
/**
|
|
13
|
-
|
|
14
|
+
/** Options of the select */
|
|
15
|
+
selectOptions: TypeaheadSelectOption[];
|
|
14
16
|
/** Callback triggered on selection. */
|
|
15
17
|
onSelect?: (_event: React.MouseEvent<Element, MouseEvent> | React.KeyboardEvent<HTMLInputElement> | undefined, selection: string | number) => void;
|
|
16
18
|
/** Callback triggered when the select opens or closes. */
|
|
17
19
|
onToggle?: (nextIsOpen: boolean) => void;
|
|
18
20
|
/** Callback triggered when the text in the input field changes. */
|
|
19
21
|
onInputChange?: (newValue: string) => void;
|
|
22
|
+
/** Function to return items matching the current filter value */
|
|
23
|
+
filterFunction?: (filterValue: string, options: TypeaheadSelectOption[]) => TypeaheadSelectOption[];
|
|
20
24
|
/** Callback triggered when the clear button is selected */
|
|
21
25
|
onClearSelection?: () => void;
|
|
22
26
|
/** Placeholder text for the select input. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypeaheadSelect.d.ts","sourceRoot":"","sources":["../../../../src/components/Select/TypeaheadSelect.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAIL,iBAAiB,EAOjB,eAAe,EACf,WAAW,EACZ,MAAM,wBAAwB,CAAC;AAGhC,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"TypeaheadSelect.d.ts","sourceRoot":"","sources":["../../../../src/components/Select/TypeaheadSelect.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAIL,iBAAiB,EAOjB,eAAe,EACf,WAAW,EACZ,MAAM,wBAAwB,CAAC;AAGhC,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CAAC,iBAAiB,EAAE,SAAS,GAAG,YAAY,CAAC;IAC9F,oCAAoC;IACpC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,kCAAkC;IAClC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAAC,WAAW,EAAE,QAAQ,GAAG,UAAU,CAAC;IACpF,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1B,4BAA4B;IAC5B,aAAa,EAAE,qBAAqB,EAAE,CAAC;IACvC,uCAAuC;IACvC,QAAQ,CAAC,EAAE,CACT,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,GAAG,SAAS,EACjG,SAAS,EAAE,MAAM,GAAG,MAAM,KACvB,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,iEAAiE;IACjE,cAAc,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,qBAAqB,EAAE,KAAK,qBAAqB,EAAE,CAAC;IACpG,2DAA2D;IAC3D,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gEAAgE;IAChE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,sEAAsE;IACtE,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,gDAAgD;IAChD,mBAAmB,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;IAC9D,wDAAwD;IACxD,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,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;AAQD,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,iBAAiB,CAAC,oBAAoB,CA2T7E,CAAC;AAGF,eAAO,MAAM,eAAe,kFAE1B,CAAC"}
|
|
@@ -4,26 +4,25 @@ import { Select, SelectOption, SelectList, MenuToggle, TextInputGroup, TextInput
|
|
|
4
4
|
import TimesIcon from '@patternfly/react-icons/dist/esm/icons/times-icon';
|
|
5
5
|
const defaultNoOptionsFoundMessage = (filter) => `No results found for "${filter}"`;
|
|
6
6
|
const defaultCreateOptionMessage = (newValue) => `Create "${newValue}"`;
|
|
7
|
+
const defaultFilterFunction = (filterValue, options) => options.filter((o) => String(o.content).toLowerCase().includes(filterValue.toLowerCase()));
|
|
7
8
|
export const TypeaheadSelectBase = (_a) => {
|
|
8
|
-
var
|
|
9
|
-
var { innerRef, initialOptions, onSelect, onToggle, onInputChange, onClearSelection, placeholder = 'Select an option', noOptionsAvailableMessage = 'No options are available', noOptionsFoundMessage = defaultNoOptionsFoundMessage, isCreatable = false, isCreateOptionOnTop = false, createOptionMessage = defaultCreateOptionMessage, isDisabled, toggleWidth, toggleProps } = _a, props = __rest(_a, ["innerRef", "initialOptions", "onSelect", "onToggle", "onInputChange", "onClearSelection", "placeholder", "noOptionsAvailableMessage", "noOptionsFoundMessage", "isCreatable", "isCreateOptionOnTop", "createOptionMessage", "isDisabled", "toggleWidth", "toggleProps"]);
|
|
9
|
+
var { innerRef, selectOptions, onSelect, onToggle, onInputChange, filterFunction = defaultFilterFunction, onClearSelection, placeholder = 'Select an option', noOptionsAvailableMessage = 'No options are available', noOptionsFoundMessage = defaultNoOptionsFoundMessage, isCreatable = false, isCreateOptionOnTop = false, createOptionMessage = defaultCreateOptionMessage, isDisabled, toggleWidth, toggleProps } = _a, props = __rest(_a, ["innerRef", "selectOptions", "onSelect", "onToggle", "onInputChange", "filterFunction", "onClearSelection", "placeholder", "noOptionsAvailableMessage", "noOptionsFoundMessage", "isCreatable", "isCreateOptionOnTop", "createOptionMessage", "isDisabled", "toggleWidth", "toggleProps"]);
|
|
10
10
|
const [isOpen, setIsOpen] = React.useState(false);
|
|
11
|
-
const [selected, setSelected] = React.useState(String((_c = (_b = initialOptions.find((o) => o.selected)) === null || _b === void 0 ? void 0 : _b.content) !== null && _c !== void 0 ? _c : ''));
|
|
12
|
-
const [inputValue, setInputValue] = React.useState(String((_e = (_d = initialOptions.find((o) => o.selected)) === null || _d === void 0 ? void 0 : _d.content) !== null && _e !== void 0 ? _e : ''));
|
|
13
11
|
const [filterValue, setFilterValue] = React.useState('');
|
|
14
|
-
const [
|
|
12
|
+
const [isFiltering, setIsFiltering] = React.useState(false);
|
|
15
13
|
const [focusedItemIndex, setFocusedItemIndex] = React.useState(null);
|
|
16
14
|
const [activeItemId, setActiveItemId] = React.useState(null);
|
|
17
15
|
const textInputRef = React.useRef();
|
|
18
16
|
const NO_RESULTS = 'no results';
|
|
19
|
-
React.
|
|
20
|
-
|
|
17
|
+
const selected = React.useMemo(() => selectOptions === null || selectOptions === void 0 ? void 0 : selectOptions.find((option) => option.value === props.selected || option.isSelected), [props.selected, selectOptions]);
|
|
18
|
+
const filteredSelections = React.useMemo(() => {
|
|
19
|
+
let newSelectOptions = selectOptions;
|
|
21
20
|
// Filter menu items based on the text input value when one exists
|
|
22
|
-
if (filterValue) {
|
|
23
|
-
newSelectOptions =
|
|
21
|
+
if (isFiltering && filterValue) {
|
|
22
|
+
newSelectOptions = filterFunction(filterValue, selectOptions);
|
|
24
23
|
if (isCreatable &&
|
|
25
|
-
filterValue &&
|
|
26
|
-
!
|
|
24
|
+
filterValue.trim() &&
|
|
25
|
+
!newSelectOptions.find((o) => String(o.content).toLowerCase() === filterValue.toLowerCase())) {
|
|
27
26
|
const createOption = {
|
|
28
27
|
content: typeof createOptionMessage === 'string' ? createOptionMessage : createOptionMessage(filterValue),
|
|
29
28
|
value: filterValue
|
|
@@ -42,8 +41,6 @@ export const TypeaheadSelectBase = (_a) => {
|
|
|
42
41
|
}
|
|
43
42
|
];
|
|
44
43
|
}
|
|
45
|
-
// Open the menu when the input value changes and the new value is not empty
|
|
46
|
-
openMenu();
|
|
47
44
|
}
|
|
48
45
|
// When no options are available, display 'No options available'
|
|
49
46
|
if (!newSelectOptions.length) {
|
|
@@ -55,10 +52,12 @@ export const TypeaheadSelectBase = (_a) => {
|
|
|
55
52
|
}
|
|
56
53
|
];
|
|
57
54
|
}
|
|
58
|
-
|
|
55
|
+
return newSelectOptions;
|
|
59
56
|
}, [
|
|
57
|
+
isFiltering,
|
|
60
58
|
filterValue,
|
|
61
|
-
|
|
59
|
+
filterFunction,
|
|
60
|
+
selectOptions,
|
|
62
61
|
noOptionsFoundMessage,
|
|
63
62
|
isCreatable,
|
|
64
63
|
isCreateOptionOnTop,
|
|
@@ -66,15 +65,12 @@ export const TypeaheadSelectBase = (_a) => {
|
|
|
66
65
|
noOptionsAvailableMessage
|
|
67
66
|
]);
|
|
68
67
|
React.useEffect(() => {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
const selectedOption = initialOptions.find((o) => o.selected);
|
|
72
|
-
if (inputValue === selected && (selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.value) !== selected) {
|
|
73
|
-
setInputValue(String((_a = selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.content) !== null && _a !== void 0 ? _a : ''));
|
|
68
|
+
if (isFiltering) {
|
|
69
|
+
openMenu();
|
|
74
70
|
}
|
|
75
|
-
//
|
|
71
|
+
// Don't update on openMenu changes
|
|
76
72
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
77
|
-
}, [
|
|
73
|
+
}, [isFiltering]);
|
|
78
74
|
const setActiveAndFocusedItem = (itemIndex) => {
|
|
79
75
|
setFocusedItemIndex(itemIndex);
|
|
80
76
|
const focusedItem = selectOptions[itemIndex];
|
|
@@ -88,78 +84,83 @@ export const TypeaheadSelectBase = (_a) => {
|
|
|
88
84
|
if (!isOpen) {
|
|
89
85
|
onToggle && onToggle(true);
|
|
90
86
|
setIsOpen(true);
|
|
87
|
+
setTimeout(() => {
|
|
88
|
+
var _a;
|
|
89
|
+
(_a = textInputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
90
|
+
}, 100);
|
|
91
91
|
}
|
|
92
92
|
};
|
|
93
93
|
const closeMenu = () => {
|
|
94
|
+
var _a;
|
|
94
95
|
onToggle && onToggle(false);
|
|
95
96
|
setIsOpen(false);
|
|
96
97
|
resetActiveAndFocusedItem();
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
setInputValue(String(option.content));
|
|
100
|
-
}
|
|
98
|
+
setIsFiltering(false);
|
|
99
|
+
setFilterValue(String((_a = selected === null || selected === void 0 ? void 0 : selected.content) !== null && _a !== void 0 ? _a : ''));
|
|
101
100
|
};
|
|
102
101
|
const onInputClick = () => {
|
|
103
102
|
if (!isOpen) {
|
|
104
103
|
openMenu();
|
|
105
104
|
}
|
|
106
|
-
else if (
|
|
105
|
+
else if (isFiltering) {
|
|
107
106
|
closeMenu();
|
|
108
107
|
}
|
|
109
108
|
};
|
|
110
109
|
const selectOption = (_event, option) => {
|
|
111
110
|
onSelect && onSelect(_event, option.value);
|
|
112
|
-
setInputValue(String(option.content));
|
|
113
|
-
setFilterValue('');
|
|
114
|
-
setSelected(String(option.value));
|
|
115
111
|
closeMenu();
|
|
116
112
|
};
|
|
117
113
|
const _onSelect = (_event, value) => {
|
|
118
114
|
if (value && value !== NO_RESULTS) {
|
|
119
115
|
const optionToSelect = selectOptions.find((option) => option.value === value);
|
|
120
|
-
|
|
116
|
+
if (optionToSelect) {
|
|
117
|
+
selectOption(_event, optionToSelect);
|
|
118
|
+
}
|
|
119
|
+
else if (isCreatable) {
|
|
120
|
+
selectOption(_event, { value, content: value });
|
|
121
|
+
}
|
|
121
122
|
}
|
|
122
123
|
};
|
|
123
124
|
const onTextInputChange = (_event, value) => {
|
|
124
|
-
|
|
125
|
+
setIsFiltering(true);
|
|
126
|
+
setFilterValue(value || '');
|
|
125
127
|
onInputChange && onInputChange(value);
|
|
126
|
-
setFilterValue(value);
|
|
127
128
|
resetActiveAndFocusedItem();
|
|
128
129
|
};
|
|
129
130
|
const handleMenuArrowKeys = (key) => {
|
|
130
131
|
let indexToFocus = 0;
|
|
131
132
|
openMenu();
|
|
132
|
-
if (
|
|
133
|
+
if (filteredSelections.every((option) => option.isDisabled)) {
|
|
133
134
|
return;
|
|
134
135
|
}
|
|
135
136
|
if (key === 'ArrowUp') {
|
|
136
137
|
// When no index is set or at the first index, focus to the last, otherwise decrement focus index
|
|
137
138
|
if (focusedItemIndex === null || focusedItemIndex === 0) {
|
|
138
|
-
indexToFocus =
|
|
139
|
+
indexToFocus = filteredSelections.length - 1;
|
|
139
140
|
}
|
|
140
141
|
else {
|
|
141
142
|
indexToFocus = focusedItemIndex - 1;
|
|
142
143
|
}
|
|
143
144
|
// Skip disabled options
|
|
144
|
-
while (
|
|
145
|
+
while (filteredSelections[indexToFocus].isDisabled) {
|
|
145
146
|
indexToFocus--;
|
|
146
147
|
if (indexToFocus === -1) {
|
|
147
|
-
indexToFocus =
|
|
148
|
+
indexToFocus = filteredSelections.length - 1;
|
|
148
149
|
}
|
|
149
150
|
}
|
|
150
151
|
}
|
|
151
152
|
if (key === 'ArrowDown') {
|
|
152
153
|
// When no index is set or at the last index, focus to the first, otherwise increment focus index
|
|
153
|
-
if (focusedItemIndex === null || focusedItemIndex ===
|
|
154
|
+
if (focusedItemIndex === null || focusedItemIndex === filteredSelections.length - 1) {
|
|
154
155
|
indexToFocus = 0;
|
|
155
156
|
}
|
|
156
157
|
else {
|
|
157
158
|
indexToFocus = focusedItemIndex + 1;
|
|
158
159
|
}
|
|
159
160
|
// Skip disabled options
|
|
160
|
-
while (
|
|
161
|
+
while (filteredSelections[indexToFocus].isDisabled) {
|
|
161
162
|
indexToFocus++;
|
|
162
|
-
if (indexToFocus ===
|
|
163
|
+
if (indexToFocus === filteredSelections.length) {
|
|
163
164
|
indexToFocus = 0;
|
|
164
165
|
}
|
|
165
166
|
}
|
|
@@ -167,7 +168,7 @@ export const TypeaheadSelectBase = (_a) => {
|
|
|
167
168
|
setActiveAndFocusedItem(indexToFocus);
|
|
168
169
|
};
|
|
169
170
|
const onInputKeyDown = (event) => {
|
|
170
|
-
const focusedItem = focusedItemIndex !== null ?
|
|
171
|
+
const focusedItem = focusedItemIndex !== null ? filteredSelections[focusedItemIndex] : null;
|
|
171
172
|
switch (event.key) {
|
|
172
173
|
case 'Enter':
|
|
173
174
|
if (isOpen && focusedItem && focusedItem.value !== NO_RESULTS && !focusedItem.isAriaDisabled) {
|
|
@@ -184,32 +185,39 @@ export const TypeaheadSelectBase = (_a) => {
|
|
|
184
185
|
};
|
|
185
186
|
const onToggleClick = () => {
|
|
186
187
|
var _a;
|
|
187
|
-
|
|
188
|
-
|
|
188
|
+
if (!isOpen) {
|
|
189
|
+
openMenu();
|
|
190
|
+
}
|
|
191
|
+
else {
|
|
192
|
+
closeMenu();
|
|
193
|
+
}
|
|
189
194
|
(_a = textInputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
190
195
|
};
|
|
191
196
|
const onClearButtonClick = () => {
|
|
192
197
|
var _a;
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
198
|
+
if (selected && onSelect) {
|
|
199
|
+
onSelect(undefined, selected.value);
|
|
200
|
+
}
|
|
196
201
|
setFilterValue('');
|
|
202
|
+
onInputChange && onInputChange('');
|
|
203
|
+
setIsFiltering(false);
|
|
197
204
|
resetActiveAndFocusedItem();
|
|
198
205
|
(_a = textInputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
199
206
|
onClearSelection && onClearSelection();
|
|
200
207
|
};
|
|
201
|
-
const toggle = (toggleRef) =>
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
React.createElement(
|
|
207
|
-
React.createElement(
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
208
|
+
const toggle = (toggleRef) => {
|
|
209
|
+
var _a;
|
|
210
|
+
return (React.createElement(MenuToggle, Object.assign({ ref: toggleRef, variant: "typeahead", "aria-label": "Typeahead menu toggle", onClick: onToggleClick, isExpanded: isOpen, isDisabled: isDisabled, isFullWidth: true, style: {
|
|
211
|
+
width: toggleWidth
|
|
212
|
+
} }, toggleProps),
|
|
213
|
+
React.createElement(TextInputGroup, { isPlain: true },
|
|
214
|
+
React.createElement(TextInputGroupMain, Object.assign({ value: isFiltering ? filterValue : ((_a = selected === null || selected === void 0 ? void 0 : selected.content) !== null && _a !== void 0 ? _a : ''), 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" })),
|
|
215
|
+
React.createElement(TextInputGroupUtilities, Object.assign({}, (!(isFiltering && filterValue) && !selected ? { style: { display: 'none' } } : {})),
|
|
216
|
+
React.createElement(Button, { variant: "plain", onClick: onClearButtonClick, "aria-label": "Clear input value" },
|
|
217
|
+
React.createElement(TimesIcon, { "aria-hidden": true }))))));
|
|
218
|
+
};
|
|
219
|
+
return (React.createElement(Select, Object.assign({ isOpen: isOpen, selected: selected, onSelect: _onSelect, onOpenChange: (isOpen) => !isOpen && closeMenu(), toggle: toggle, shouldFocusFirstItemOnOpen: false, ref: innerRef }, props),
|
|
220
|
+
React.createElement(SelectList, null, filteredSelections.map((option, index) => {
|
|
213
221
|
const { content, value } = option, props = __rest(option, ["content", "value"]);
|
|
214
222
|
return (React.createElement(SelectOption, Object.assign({ key: value, value: value, isFocused: focusedItemIndex === index }, props), content));
|
|
215
223
|
}))));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypeaheadSelect.js","sourceRoot":"","sources":["../../../../src/components/Select/TypeaheadSelect.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,MAAM,EACN,YAAY,EACZ,UAAU,EAEV,UAAU,EAEV,cAAc,EACd,kBAAkB,EAClB,uBAAuB,EACvB,MAAM,EAGP,MAAM,wBAAwB,CAAC;AAChC,OAAO,SAAS,MAAM,mDAAmD,CAAC;
|
|
1
|
+
{"version":3,"file":"TypeaheadSelect.js","sourceRoot":"","sources":["../../../../src/components/Select/TypeaheadSelect.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +1,26 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { SelectOptionProps, MenuToggleProps, SelectProps } from '@patternfly/react-core';
|
|
3
|
-
export interface TypeaheadSelectOption extends Omit<SelectOptionProps, 'content'> {
|
|
3
|
+
export interface TypeaheadSelectOption extends Omit<SelectOptionProps, 'content' | 'isSelected'> {
|
|
4
4
|
/** Content of the select option. */
|
|
5
5
|
content: string | number;
|
|
6
6
|
/** Value of the select option. */
|
|
7
7
|
value: string | number;
|
|
8
|
+
/** Indicator for option being selected */
|
|
9
|
+
isSelected?: boolean;
|
|
8
10
|
}
|
|
9
11
|
export interface TypeaheadSelectProps extends Omit<SelectProps, 'toggle' | 'onSelect'> {
|
|
10
12
|
/** @hide Forwarded ref */
|
|
11
13
|
innerRef?: React.Ref<any>;
|
|
12
|
-
/**
|
|
13
|
-
|
|
14
|
+
/** Options of the select */
|
|
15
|
+
selectOptions: TypeaheadSelectOption[];
|
|
14
16
|
/** Callback triggered on selection. */
|
|
15
17
|
onSelect?: (_event: React.MouseEvent<Element, MouseEvent> | React.KeyboardEvent<HTMLInputElement> | undefined, selection: string | number) => void;
|
|
16
18
|
/** Callback triggered when the select opens or closes. */
|
|
17
19
|
onToggle?: (nextIsOpen: boolean) => void;
|
|
18
20
|
/** Callback triggered when the text in the input field changes. */
|
|
19
21
|
onInputChange?: (newValue: string) => void;
|
|
22
|
+
/** Function to return items matching the current filter value */
|
|
23
|
+
filterFunction?: (filterValue: string, options: TypeaheadSelectOption[]) => TypeaheadSelectOption[];
|
|
20
24
|
/** Callback triggered when the clear button is selected */
|
|
21
25
|
onClearSelection?: () => void;
|
|
22
26
|
/** Placeholder text for the select input. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypeaheadSelect.d.ts","sourceRoot":"","sources":["../../../../src/components/Select/TypeaheadSelect.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAIL,iBAAiB,EAOjB,eAAe,EACf,WAAW,EACZ,MAAM,wBAAwB,CAAC;AAGhC,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"TypeaheadSelect.d.ts","sourceRoot":"","sources":["../../../../src/components/Select/TypeaheadSelect.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAIL,iBAAiB,EAOjB,eAAe,EACf,WAAW,EACZ,MAAM,wBAAwB,CAAC;AAGhC,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CAAC,iBAAiB,EAAE,SAAS,GAAG,YAAY,CAAC;IAC9F,oCAAoC;IACpC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,kCAAkC;IAClC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAAC,WAAW,EAAE,QAAQ,GAAG,UAAU,CAAC;IACpF,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1B,4BAA4B;IAC5B,aAAa,EAAE,qBAAqB,EAAE,CAAC;IACvC,uCAAuC;IACvC,QAAQ,CAAC,EAAE,CACT,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,GAAG,SAAS,EACjG,SAAS,EAAE,MAAM,GAAG,MAAM,KACvB,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,iEAAiE;IACjE,cAAc,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,qBAAqB,EAAE,KAAK,qBAAqB,EAAE,CAAC;IACpG,2DAA2D;IAC3D,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gEAAgE;IAChE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,sEAAsE;IACtE,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,gDAAgD;IAChD,mBAAmB,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;IAC9D,wDAAwD;IACxD,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,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;AAQD,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,iBAAiB,CAAC,oBAAoB,CA2T7E,CAAC;AAGF,eAAO,MAAM,eAAe,kFAE1B,CAAC"}
|