@react-spectrum/autocomplete 3.0.0-alpha.31 → 3.0.0-alpha.33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/MobileSearchAutocomplete.main.js +86 -86
- package/dist/MobileSearchAutocomplete.main.js.map +1 -1
- package/dist/MobileSearchAutocomplete.mjs +87 -87
- package/dist/MobileSearchAutocomplete.module.js +86 -86
- package/dist/MobileSearchAutocomplete.module.js.map +1 -1
- package/dist/SearchAutocomplete.main.js +37 -36
- package/dist/SearchAutocomplete.main.js.map +1 -1
- package/dist/SearchAutocomplete.mjs +38 -37
- package/dist/SearchAutocomplete.module.js +37 -36
- package/dist/SearchAutocomplete.module.js.map +1 -1
- package/dist/ar-AE.mjs +1 -1
- package/dist/bg-BG.mjs +1 -1
- package/dist/cs-CZ.mjs +1 -1
- package/dist/da-DK.mjs +1 -1
- package/dist/de-DE.mjs +1 -1
- package/dist/el-GR.mjs +1 -1
- package/dist/en-US.mjs +1 -1
- package/dist/es-ES.mjs +1 -1
- package/dist/et-EE.mjs +1 -1
- package/dist/fi-FI.mjs +1 -1
- package/dist/fr-FR.mjs +1 -1
- package/dist/he-IL.mjs +1 -1
- package/dist/hr-HR.mjs +1 -1
- package/dist/hu-HU.mjs +1 -1
- package/dist/inputgroup_vars_css.mjs +1 -1
- package/dist/intlStrings.mjs +1 -1
- package/dist/it-IT.mjs +1 -1
- package/dist/ja-JP.mjs +1 -1
- package/dist/ko-KR.mjs +1 -1
- package/dist/lt-LT.mjs +1 -1
- package/dist/lv-LV.mjs +1 -1
- package/dist/nb-NO.mjs +1 -1
- package/dist/nl-NL.mjs +1 -1
- package/dist/pl-PL.mjs +1 -1
- package/dist/pt-BR.mjs +1 -1
- package/dist/pt-PT.mjs +1 -1
- package/dist/ro-RO.mjs +1 -1
- package/dist/ru-RU.mjs +1 -1
- package/dist/search_vars_css.mjs +1 -1
- package/dist/searchautocomplete_css.mjs +1 -1
- package/dist/sk-SK.mjs +1 -1
- package/dist/sl-SI.mjs +1 -1
- package/dist/sr-SP.mjs +1 -1
- package/dist/sv-SE.mjs +1 -1
- package/dist/textfield_vars_css.mjs +1 -1
- package/dist/tr-TR.mjs +1 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/uk-UA.mjs +1 -1
- package/dist/{vars.5653edea.css → vars.f9e74788.css} +2 -1
- package/dist/vars.f9e74788.css.map +1 -0
- package/dist/zh-CN.mjs +1 -1
- package/dist/zh-TW.mjs +1 -1
- package/package.json +28 -28
- package/src/MobileSearchAutocomplete.tsx +2 -2
- package/src/SearchAutocomplete.tsx +7 -6
- package/dist/vars.5653edea.css.map +0 -1
|
@@ -6,7 +6,7 @@ require("./vars.31879241.css");
|
|
|
6
6
|
var $1e139f06a0a4b696$exports = require("./search_vars_css.main.js");
|
|
7
7
|
require("./vars.936671cd.css");
|
|
8
8
|
var $2f86633ce5b04f1e$exports = require("./inputgroup_vars_css.main.js");
|
|
9
|
-
require("./vars.
|
|
9
|
+
require("./vars.f9e74788.css");
|
|
10
10
|
var $40cb3a00c193680f$exports = require("./textfield_vars_css.main.js");
|
|
11
11
|
var $k6PeR$reactspectrumutils = require("@react-spectrum/utils");
|
|
12
12
|
var $k6PeR$reactspectrumbutton = require("@react-spectrum/button");
|
|
@@ -72,7 +72,7 @@ $parcel$export(module.exports, "SearchAutocomplete", () => $dcf500d58a031ca6$exp
|
|
|
72
72
|
function $dcf500d58a031ca6$var$SearchAutocomplete(props, ref) {
|
|
73
73
|
props = (0, $k6PeR$reactspectrumprovider.useProviderProps)(props);
|
|
74
74
|
props = (0, $k6PeR$reactspectrumform.useFormProps)(props);
|
|
75
|
-
if (props.placeholder) console.warn(
|
|
75
|
+
if (props.placeholder) console.warn('Placeholders are deprecated due to accessibility issues. Please use help text instead.');
|
|
76
76
|
let isMobile = (0, $k6PeR$reactspectrumutils.useIsMobileDevice)();
|
|
77
77
|
if (isMobile) // menuTrigger=focus/manual don't apply to mobile searchwithin
|
|
78
78
|
return /*#__PURE__*/ (0, ($parcel$interopDefault($k6PeR$react))).createElement((0, $a9f98e219df0b64d$exports.MobileSearchAutocomplete), {
|
|
@@ -87,8 +87,8 @@ function $dcf500d58a031ca6$var$SearchAutocomplete(props, ref) {
|
|
|
87
87
|
}
|
|
88
88
|
function $dcf500d58a031ca6$var$_SearchAutocompleteBase(props, ref) {
|
|
89
89
|
props = (0, $k6PeR$reactspectrumprovider.useProviderProps)(props);
|
|
90
|
-
let { menuTrigger: menuTrigger =
|
|
91
|
-
let stringFormatter = (0, $k6PeR$reactariai18n.useLocalizedStringFormatter)((0, ($parcel$interopDefault($e32120882142a69f$exports))),
|
|
90
|
+
let { menuTrigger: menuTrigger = 'input', shouldFlip: shouldFlip = true, direction: direction = 'bottom', align: align = 'start', isQuiet: isQuiet, menuWidth: customMenuWidth, loadingState: loadingState, onLoadMore: onLoadMore, onSubmit: onSubmit = ()=>{}, validate: validate } = props;
|
|
91
|
+
let stringFormatter = (0, $k6PeR$reactariai18n.useLocalizedStringFormatter)((0, ($parcel$interopDefault($e32120882142a69f$exports))), '@react-spectrum/autocomplete');
|
|
92
92
|
let isAsync = loadingState != null;
|
|
93
93
|
let popoverRef = (0, $k6PeR$react.useRef)(null);
|
|
94
94
|
let unwrappedPopoverRef = (0, $k6PeR$reactspectrumutils.useUnwrapDOMRef)(popoverRef);
|
|
@@ -96,7 +96,7 @@ function $dcf500d58a031ca6$var$_SearchAutocompleteBase(props, ref) {
|
|
|
96
96
|
let inputRef = (0, $k6PeR$react.useRef)(null);
|
|
97
97
|
let domRef = (0, $k6PeR$reactspectrumutils.useFocusableRef)(ref, inputRef);
|
|
98
98
|
let { contains: contains } = (0, $k6PeR$reactariai18n.useFilter)({
|
|
99
|
-
sensitivity:
|
|
99
|
+
sensitivity: 'base'
|
|
100
100
|
});
|
|
101
101
|
let state = (0, $k6PeR$reactstatelycombobox.useComboBoxState)({
|
|
102
102
|
...props,
|
|
@@ -110,10 +110,10 @@ function $dcf500d58a031ca6$var$_SearchAutocompleteBase(props, ref) {
|
|
|
110
110
|
validate
|
|
111
111
|
])
|
|
112
112
|
});
|
|
113
|
-
let layout = (0, $k6PeR$reactspectrumlistbox.useListBoxLayout)(
|
|
113
|
+
let layout = (0, $k6PeR$reactspectrumlistbox.useListBoxLayout)();
|
|
114
114
|
let { inputProps: inputProps, listBoxProps: listBoxProps, labelProps: labelProps, clearButtonProps: clearButtonProps, descriptionProps: descriptionProps, errorMessageProps: errorMessageProps, isInvalid: isInvalid, validationErrors: validationErrors, validationDetails: validationDetails } = (0, $k6PeR$reactariaautocomplete.useSearchAutocomplete)({
|
|
115
115
|
...props,
|
|
116
|
-
|
|
116
|
+
layoutDelegate: layout,
|
|
117
117
|
popoverRef: unwrappedPopoverRef,
|
|
118
118
|
listBoxRef: listBoxRef,
|
|
119
119
|
inputRef: inputRef,
|
|
@@ -160,12 +160,12 @@ function $dcf500d58a031ca6$var$_SearchAutocompleteBase(props, ref) {
|
|
|
160
160
|
inputProps: inputProps,
|
|
161
161
|
inputRef: inputRef,
|
|
162
162
|
clearButtonProps: clearButtonProps,
|
|
163
|
-
validationState: props.validationState || (isInvalid ?
|
|
163
|
+
validationState: props.validationState || (isInvalid ? 'invalid' : undefined)
|
|
164
164
|
})), /*#__PURE__*/ (0, ($parcel$interopDefault($k6PeR$react))).createElement((0, $k6PeR$reactspectrumoverlays.Popover), {
|
|
165
165
|
state: state,
|
|
166
166
|
UNSAFE_style: style,
|
|
167
|
-
UNSAFE_className: (0, $k6PeR$reactspectrumutils.classNames)((0, ($parcel$interopDefault($2f86633ce5b04f1e$exports))),
|
|
168
|
-
|
|
167
|
+
UNSAFE_className: (0, $k6PeR$reactspectrumutils.classNames)((0, ($parcel$interopDefault($2f86633ce5b04f1e$exports))), 'spectrum-InputGroup-popover', {
|
|
168
|
+
'spectrum-InputGroup-popover--quiet': isQuiet
|
|
169
169
|
}),
|
|
170
170
|
ref: popoverRef,
|
|
171
171
|
triggerRef: inputRef,
|
|
@@ -183,11 +183,12 @@ function $dcf500d58a031ca6$var$_SearchAutocompleteBase(props, ref) {
|
|
|
183
183
|
layout: layout,
|
|
184
184
|
state: state,
|
|
185
185
|
shouldUseVirtualFocus: true,
|
|
186
|
-
isLoading: loadingState ===
|
|
186
|
+
isLoading: loadingState === 'loading' || loadingState === 'loadingMore',
|
|
187
|
+
showLoadingSpinner: loadingState === 'loadingMore',
|
|
187
188
|
onLoadMore: onLoadMore,
|
|
188
189
|
renderEmptyState: ()=>isAsync && /*#__PURE__*/ (0, ($parcel$interopDefault($k6PeR$react))).createElement("span", {
|
|
189
|
-
className: (0, $k6PeR$reactspectrumutils.classNames)((0, ($parcel$interopDefault($83da5c2df967875d$exports))),
|
|
190
|
-
}, stringFormatter.format(
|
|
190
|
+
className: (0, $k6PeR$reactspectrumutils.classNames)((0, ($parcel$interopDefault($83da5c2df967875d$exports))), 'no-results')
|
|
191
|
+
}, stringFormatter.format('noResults'))
|
|
191
192
|
})));
|
|
192
193
|
}
|
|
193
194
|
let $dcf500d58a031ca6$var$SearchAutocompleteBase = /*#__PURE__*/ (0, ($parcel$interopDefault($k6PeR$react))).forwardRef($dcf500d58a031ca6$var$_SearchAutocompleteBase);
|
|
@@ -199,23 +200,23 @@ function $dcf500d58a031ca6$var$_SearchAutocompleteInput(props, ref) {
|
|
|
199
200
|
});
|
|
200
201
|
let { icon: icon = searchIcon, isQuiet: isQuiet, isDisabled: isDisabled, isReadOnly: isReadOnly, validationState: validationState, inputProps: inputProps, inputRef: inputRef, autoFocus: autoFocus, style: style, className: className, loadingState: loadingState, isOpen: isOpen, menuTrigger: menuTrigger, clearButtonProps: clearButtonProps } = props;
|
|
201
202
|
let { hoverProps: hoverProps, isHovered: isHovered } = (0, $k6PeR$reactariainteractions.useHover)({});
|
|
202
|
-
let stringFormatter = (0, $k6PeR$reactariai18n.useLocalizedStringFormatter)((0, ($parcel$interopDefault($e32120882142a69f$exports))),
|
|
203
|
+
let stringFormatter = (0, $k6PeR$reactariai18n.useLocalizedStringFormatter)((0, ($parcel$interopDefault($e32120882142a69f$exports))), '@react-spectrum/autocomplete');
|
|
203
204
|
let domProps = (0, $k6PeR$reactariautils.filterDOMProps)(props);
|
|
204
205
|
let timeout = (0, $k6PeR$react.useRef)(null);
|
|
205
206
|
let [showLoading, setShowLoading] = (0, $k6PeR$react.useState)(false);
|
|
206
207
|
let loadingCircle = /*#__PURE__*/ (0, ($parcel$interopDefault($k6PeR$react))).createElement((0, $k6PeR$reactspectrumprogress.ProgressCircle), {
|
|
207
|
-
"aria-label": stringFormatter.format(
|
|
208
|
+
"aria-label": stringFormatter.format('loading'),
|
|
208
209
|
size: "S",
|
|
209
210
|
isIndeterminate: true,
|
|
210
|
-
UNSAFE_className: (0, $k6PeR$reactspectrumutils.classNames)((0, ($parcel$interopDefault($40cb3a00c193680f$exports))),
|
|
211
|
+
UNSAFE_className: (0, $k6PeR$reactspectrumutils.classNames)((0, ($parcel$interopDefault($40cb3a00c193680f$exports))), 'spectrum-Textfield-circleLoader', (0, $k6PeR$reactspectrumutils.classNames)((0, ($parcel$interopDefault($2f86633ce5b04f1e$exports))), 'spectrum-InputGroup-input-circleLoader'), (0, $k6PeR$reactspectrumutils.classNames)((0, ($parcel$interopDefault($1e139f06a0a4b696$exports))), 'spectrum-Search-circleLoader'))
|
|
211
212
|
});
|
|
212
213
|
let clearButton = /*#__PURE__*/ (0, ($parcel$interopDefault($k6PeR$react))).createElement((0, $k6PeR$reactspectrumbutton.ClearButton), {
|
|
213
214
|
...clearButtonProps,
|
|
214
215
|
preventFocus: true,
|
|
215
|
-
UNSAFE_className: (0, $k6PeR$reactspectrumutils.classNames)((0, ($parcel$interopDefault($1e139f06a0a4b696$exports))),
|
|
216
|
+
UNSAFE_className: (0, $k6PeR$reactspectrumutils.classNames)((0, ($parcel$interopDefault($1e139f06a0a4b696$exports))), 'spectrum-ClearButton'),
|
|
216
217
|
isDisabled: isDisabled
|
|
217
218
|
});
|
|
218
|
-
let isLoading = loadingState ===
|
|
219
|
+
let isLoading = loadingState === 'loading' || loadingState === 'filtering';
|
|
219
220
|
let inputValue = inputProps.value;
|
|
220
221
|
let lastInputValue = (0, $k6PeR$react.useRef)(inputValue);
|
|
221
222
|
(0, $k6PeR$react.useEffect)(()=>{
|
|
@@ -247,38 +248,38 @@ function $dcf500d58a031ca6$var$_SearchAutocompleteInput(props, ref) {
|
|
|
247
248
|
return /*#__PURE__*/ (0, ($parcel$interopDefault($k6PeR$react))).createElement((0, $k6PeR$reactariafocus.FocusRing), {
|
|
248
249
|
within: true,
|
|
249
250
|
isTextInput: true,
|
|
250
|
-
focusClass: (0, $k6PeR$reactspectrumutils.classNames)((0, ($parcel$interopDefault($2f86633ce5b04f1e$exports))),
|
|
251
|
-
focusRingClass: (0, $k6PeR$reactspectrumutils.classNames)((0, ($parcel$interopDefault($2f86633ce5b04f1e$exports))),
|
|
251
|
+
focusClass: (0, $k6PeR$reactspectrumutils.classNames)((0, ($parcel$interopDefault($2f86633ce5b04f1e$exports))), 'is-focused'),
|
|
252
|
+
focusRingClass: (0, $k6PeR$reactspectrumutils.classNames)((0, ($parcel$interopDefault($2f86633ce5b04f1e$exports))), 'focus-ring'),
|
|
252
253
|
autoFocus: autoFocus
|
|
253
254
|
}, /*#__PURE__*/ (0, ($parcel$interopDefault($k6PeR$react))).createElement("div", {
|
|
254
255
|
...hoverProps,
|
|
255
256
|
ref: ref,
|
|
256
257
|
style: style,
|
|
257
|
-
className: (0, $k6PeR$reactspectrumutils.classNames)((0, ($parcel$interopDefault($2f86633ce5b04f1e$exports))),
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
}, (0, $k6PeR$reactspectrumutils.classNames)((0, ($parcel$interopDefault($83da5c2df967875d$exports))),
|
|
258
|
+
className: (0, $k6PeR$reactspectrumutils.classNames)((0, ($parcel$interopDefault($2f86633ce5b04f1e$exports))), 'spectrum-InputGroup', {
|
|
259
|
+
'spectrum-InputGroup--quiet': isQuiet,
|
|
260
|
+
'is-disabled': isDisabled,
|
|
261
|
+
'spectrum-InputGroup--invalid': validationState === 'invalid' && !isDisabled,
|
|
262
|
+
'is-hovered': isHovered
|
|
263
|
+
}, (0, $k6PeR$reactspectrumutils.classNames)((0, ($parcel$interopDefault($83da5c2df967875d$exports))), 'searchautocomplete'), className)
|
|
263
264
|
}, /*#__PURE__*/ (0, ($parcel$interopDefault($k6PeR$react))).createElement((0, $k6PeR$reactspectrumtextfield.TextFieldBase), {
|
|
264
265
|
...domProps,
|
|
265
266
|
inputProps: inputProps,
|
|
266
267
|
inputRef: inputRef,
|
|
267
|
-
UNSAFE_className: (0, $k6PeR$reactspectrumutils.classNames)((0, ($parcel$interopDefault($1e139f06a0a4b696$exports))),
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
}, (0, $k6PeR$reactspectrumutils.classNames)((0, ($parcel$interopDefault($2f86633ce5b04f1e$exports))),
|
|
273
|
-
inputClassName: (0, $k6PeR$reactspectrumutils.classNames)((0, ($parcel$interopDefault($1e139f06a0a4b696$exports))),
|
|
274
|
-
validationIconClassName: (0, $k6PeR$reactspectrumutils.classNames)((0, ($parcel$interopDefault($1e139f06a0a4b696$exports))),
|
|
268
|
+
UNSAFE_className: (0, $k6PeR$reactspectrumutils.classNames)((0, ($parcel$interopDefault($1e139f06a0a4b696$exports))), 'spectrum-Search', 'spectrum-Search--loadable', 'spectrum-Textfield', {
|
|
269
|
+
'is-disabled': isDisabled,
|
|
270
|
+
'is-quiet': isQuiet,
|
|
271
|
+
'spectrum-Search--invalid': validationState === 'invalid' && !isDisabled,
|
|
272
|
+
'spectrum-Search--valid': validationState === 'valid' && !isDisabled
|
|
273
|
+
}, (0, $k6PeR$reactspectrumutils.classNames)((0, ($parcel$interopDefault($2f86633ce5b04f1e$exports))), 'spectrum-InputGroup-field')),
|
|
274
|
+
inputClassName: (0, $k6PeR$reactspectrumutils.classNames)((0, ($parcel$interopDefault($1e139f06a0a4b696$exports))), 'spectrum-Search-input'),
|
|
275
|
+
validationIconClassName: (0, $k6PeR$reactspectrumutils.classNames)((0, ($parcel$interopDefault($1e139f06a0a4b696$exports))), 'spectrum-Search-validationIcon'),
|
|
275
276
|
isDisabled: isDisabled,
|
|
276
277
|
isQuiet: isQuiet,
|
|
277
278
|
validationState: validationState,
|
|
278
|
-
isLoading: showLoading && (isOpen || menuTrigger ===
|
|
279
|
+
isLoading: showLoading && (isOpen || menuTrigger === 'manual' || loadingState === 'loading'),
|
|
279
280
|
loadingIndicator: loadingState != null ? loadingCircle : undefined,
|
|
280
281
|
icon: icon,
|
|
281
|
-
wrapperChildren: (inputValue !==
|
|
282
|
+
wrapperChildren: (inputValue !== '' || loadingState === 'filtering' || validationState != null) && !isReadOnly ? clearButton : undefined,
|
|
282
283
|
disableFocusRing: true
|
|
283
284
|
})));
|
|
284
285
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;CAUC;;;;;;;;;;;;;;;;;;;;;;;AAsCD,SAAS,yCAAqC,KAAyC,EAAE,GAA8B;IACrH,QAAQ,CAAA,GAAA,6CAAe,EAAE;IACzB,QAAQ,CAAA,GAAA,qCAAW,EAAE;IAErB,IAAI,MAAM,WAAW,EACnB,QAAQ,IAAI,CAAC;IAGf,IAAI,WAAW,CAAA,GAAA,2CAAgB;IAC/B,IAAI,UACF,8DAA8D;IAC9D,qBAAO,0DAAC,CAAA,GAAA,kDAAuB;QAAG,GAAG,KAAK;QAAE,aAAY;QAAQ,KAAK;;SAErE,qBAAO,0DAAC;QAAwB,GAAG,KAAK;QAAE,KAAK;;AAEnD;AAEA,SAAS,8CAA0C,KAAyC,EAAE,GAA8B;IAC1H,QAAQ,CAAA,GAAA,6CAAe,EAAE;IAEzB,IAAI,eACF,cAAc,qBACd,aAAa,iBACb,YAAY,iBACZ,QAAQ,kBACR,OAAO,EACP,WAAW,eAAe,gBAC1B,YAAY,cACZ,UAAU,YACV,WAAW,KAAO,aAClB,QAAQ,EACT,GAAG;IAEJ,IAAI,kBAAkB,CAAA,GAAA,gDAA0B,EAAE,CAAA,GAAA,mDAAW,GAAG;IAChE,IAAI,UAAU,gBAAgB;IAC9B,IAAI,aAAa,CAAA,GAAA,mBAAK,EAA+B;IACrD,IAAI,sBAAsB,CAAA,GAAA,yCAAc,EAAE;IAC1C,IAAI,aAAa,CAAA,GAAA,mBAAK,EAAE;IACxB,IAAI,WAAW,CAAA,GAAA,mBAAK,EAAoB;IACxC,IAAI,SAAS,CAAA,GAAA,yCAAc,EAAE,KAAK;IAElC,IAAI,YAAC,QAAQ,EAAC,GAAG,CAAA,GAAA,8BAAQ,EAAE;QAAC,aAAa;IAAM;IAC/C,IAAI,QAAQ,CAAA,GAAA,4CAAe,EACzB;QACE,GAAG,KAAK;QACR,eAAe;QACf,uBAAuB;QACvB,mBAAmB;QACnB,mBAAmB,CAAC,MAAQ,QAAQ,QAAQ,SAAS,MAAM;QAC3D,aAAa;QACb,oBAAoB;QACpB,UAAU,CAAA,GAAA,wBAAU,EAAE,CAAA,IAAK,qBAAA,+BAAA,SAAW,EAAE,UAAU,GAAG;YAAC;SAAS;IACjE;IAEF,IAAI,SAAS,CAAA,GAAA,4CAAe,EAAE,OAAO,iBAAiB;IAEtD,IAAI,cAAC,UAAU,gBAAE,YAAY,cAAE,UAAU,oBAAE,gBAAgB,oBAAE,gBAAgB,qBAAE,iBAAiB,aAAE,SAAS,oBAAE,gBAAgB,qBAAE,iBAAiB,EAAC,GAAG,CAAA,GAAA,kDAAoB,EACtK;QACE,GAAG,KAAK;QACR,kBAAkB;QAClB,YAAY;oBACZ;kBACA;qBACA;IACF,GACA;IAGF,+EAA+E;IAC/E,IAAI,CAAC,WAAW,aAAa,GAAG,CAAA,GAAA,qBAAO,EAAU;IACjD,IAAI,SAAC,KAAK,EAAC,GAAG,CAAA,GAAA,wCAAU;IAExB,IAAI,WAAW,CAAA,GAAA,wBAAU,EAAE;QACzB,IAAI,SAAS,OAAO,EAAE;YACpB,IAAI,aAAa,SAAS,OAAO,CAAC,WAAW;YAC7C,aAAa;QACf;IACF,GAAG;QAAC;QAAU;KAAa;IAE3B,CAAA,GAAA,2CAAgB,EAAE;QAChB,KAAK;QACL,UAAU;IACZ;IAEA,CAAA,GAAA,qCAAc,EAAE,UAAU;QAAC;QAAO;KAAS;IAE3C,IAAI,QAAQ,UAAU,YAAY;IAClC,IAAI,QAAQ;QACV,OAAO,kBAAkB,CAAA,GAAA,wCAAa,EAAE,mBAAmB;QAC3D,UAAU,UAAU,CAAC,KAAK,EAAE,UAAU,qDAAqD,CAAC,GAAG;IACjG;IAEA,qBACE,oIACE,0DAAC,CAAA,GAAA,+BAAI;QACF,GAAG,KAAK;QACT,kBAAkB;QAClB,mBAAmB;QACnB,YAAY;QACZ,WAAW;QACX,kBAAkB;QAClB,mBAAmB;QACnB,KAAK;qBACL,0DAAC;QACE,GAAG,KAAK;QACT,QAAQ,MAAM,MAAM;QACpB,cAAc;QACd,YAAY;QACZ,UAAU;QACV,kBAAkB;QAClB,iBAAiB,MAAM,eAAe,IAAK,CAAA,YAAY,YAAY,SAAQ;uBAE/E,0DAAC,CAAA,GAAA,oCAAM;QACL,OAAO;QACP,cAAc;QACd,kBAAkB,CAAA,GAAA,oCAAS,EAAE,CAAA,GAAA,mDAAK,GAAG,+BAA+B;YAAC,sCAAsC;QAAO;QAClH,KAAK;QACL,YAAY;QACZ,WAAW,CAAC,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAClC,WAAA;QACA,YAAA;QACA,YAAY;qBACZ,0DAAC,CAAA,GAAA,uCAAU;QACR,GAAG,YAAY;QAChB,KAAK;QACL,wBAAA;QACA,WAAW,MAAM,aAAa;QAC9B,uBAAA;QACA,qBAAA;QACA,QAAQ;QACR,OAAO;QACP,uBAAA;QACA,WAAW,iBAAiB,aAAa,iBAAiB;QAC1D,YAAY;QACZ,kBAAkB,IAAM,yBACtB,0DAAC;gBAAK,WAAW,CAAA,GAAA,oCAAS,EAAE,CAAA,GAAA,mDAAuB,GAAG;eACnD,gBAAgB,MAAM,CAAC;;AAMtC;AAEA,IAAI,6DAAyB,CAAA,GAAA,sCAAI,EAAE,UAAU,CAAC;AAY9C,2GAA2G;AAC3G,sCAAsC;AACtC,SAAS,+CAA4B,KAAsC,EAAE,GAAQ;IACnF,IAAI,2BACF,0DAAC,CAAA,GAAA,yDAAQ;QAAE,eAAY;;IAGzB,IAAI,QACF,OAAO,qBACP,OAAO,cACP,UAAU,cACV,UAAU,mBACV,eAAe,cACf,UAAU,YACV,QAAQ,aACR,SAAS,SACT,KAAK,aACL,SAAS,gBACT,YAAY,UACZ,MAAM,eACN,WAAW,oBACX,gBAAgB,EACjB,GAAG;IACJ,IAAI,cAAC,UAAU,aAAE,SAAS,EAAC,GAAG,CAAA,GAAA,qCAAO,EAAE,CAAC;IACxC,IAAI,kBAAkB,CAAA,GAAA,gDAA0B,EAAE,CAAA,GAAA,mDAAW,GAAG;IAChE,IAAI,WAAW,CAAA,GAAA,oCAAa,EAAE;IAC9B,IAAI,UAAU,CAAA,GAAA,mBAAK,EAAwC;IAC3D,IAAI,CAAC,aAAa,eAAe,GAAG,CAAA,GAAA,qBAAO,EAAE;IAE7C,IAAI,8BACF,0DAAC,CAAA,GAAA,2CAAa;QACZ,cAAY,gBAAgB,MAAM,CAAC;QACnC,MAAK;QACL,iBAAA;QACA,kBAAkB,CAAA,GAAA,oCAAS,EACzB,CAAA,GAAA,mDAAc,GACd,mCACA,CAAA,GAAA,oCAAS,EACP,CAAA,GAAA,mDAAK,GACL,2CAEF,CAAA,GAAA,oCAAS,EACP,CAAA,GAAA,mDAAW,GACX;;IAKR,IAAI,4BACF,0DAAC,CAAA,GAAA,sCAAU;QACR,GAAG,gBAAgB;QACpB,cAAA;QACA,kBACE,CAAA,GAAA,oCAAS,EACP,CAAA,GAAA,mDAAW,GACX;QAGJ,YAAY;;IAGhB,IAAI,YAAY,iBAAiB,aAAa,iBAAiB;IAC/D,IAAI,aAAa,WAAW,KAAK;IACjC,IAAI,iBAAiB,CAAA,GAAA,mBAAK,EAAE;IAC5B,CAAA,GAAA,sBAAQ,EAAE;QACR,IAAI,aAAa,CAAC,aAAa;YAC7B,IAAI,QAAQ,OAAO,KAAK,MACtB,QAAQ,OAAO,GAAG,WAAW;gBAC3B,eAAe;YACjB,GAAG;YAGL,2EAA2E;YAC3E,IAAI,eAAe,eAAe,OAAO,EAAE;gBACzC,aAAa,QAAQ,OAAO;gBAC5B,QAAQ,OAAO,GAAG,WAAW;oBAC3B,eAAe;gBACjB,GAAG;YACL;QACF,OAAO,IAAI,CAAC,WAAW;YACrB,kFAAkF;YAClF,eAAe;YACf,IAAI,QAAQ,OAAO,IAAI,MAAM;gBAC3B,aAAa,QAAQ,OAAO;gBAC5B,QAAQ,OAAO,GAAG;YACpB;QACF;QAEA,eAAe,OAAO,GAAG;IAC3B,GAAG;QAAC;QAAW;QAAa;KAAW;IAEvC,qBACE,0DAAC,CAAA,GAAA,+BAAQ;QACP,QAAA;QACA,aAAA;QACA,YAAY,CAAA,GAAA,oCAAS,EAAE,CAAA,GAAA,mDAAK,GAAG;QAC/B,gBAAgB,CAAA,GAAA,oCAAS,EAAE,CAAA,GAAA,mDAAK,GAAG;QACnC,WAAW;qBACX,0DAAC;QACE,GAAG,UAAU;QACd,KAAK;QACL,OAAO;QACP,WACE,CAAA,GAAA,oCAAS,EACP,CAAA,GAAA,mDAAK,GACL,uBACA;YACE,8BAA8B;YAC9B,eAAe;YACf,gCAAgC,oBAAoB,aAAa,CAAC;YAClE,cAAc;QAChB,GACA,CAAA,GAAA,oCAAS,EACP,CAAA,GAAA,mDAAuB,GACvB,uBAEF;qBAGJ,0DAAC,CAAA,GAAA,2CAAY;QACV,GAAG,QAAQ;QACZ,YAAY;QACZ,UAAU;QACV,kBACE,CAAA,GAAA,oCAAS,EACP,CAAA,GAAA,mDAAW,GACX,mBACA,6BACA,sBACA;YACE,eAAe;YACf,YAAY;YACZ,4BAA4B,oBAAoB,aAAa,CAAC;YAC9D,0BAA0B,oBAAoB,WAAW,CAAC;QAC5D,GACA,CAAA,GAAA,oCAAS,EACP,CAAA,GAAA,mDAAK,GACL;QAIN,gBAAgB,CAAA,GAAA,oCAAS,EAAE,CAAA,GAAA,mDAAW,GAAG;QACzC,yBACE,CAAA,GAAA,oCAAS,EACP,CAAA,GAAA,mDAAW,GACX;QAGJ,YAAY;QACZ,SAAS;QACT,iBAAiB;QACjB,WAAW,eAAgB,CAAA,UAAU,gBAAgB,YAAY,iBAAiB,SAAQ;QAC1F,kBAAkB,gBAAgB,OAAO,gBAAgB;QACzD,MAAM;QACN,iBAAiB,AAAC,CAAA,eAAe,MAAM,iBAAiB,eAAe,mBAAmB,IAAG,KAAM,CAAC,aAAa,cAAc;QAC/H,kBAAA;;AAIV;AAEA,IAAI,8DAA0B,CAAA,GAAA,sCAAI,EAAE,UAAU,CAAC;AAG/C;;CAEC,GACD,IAAI,0DAAsB,CAAA,GAAA,uBAAS,EAAE","sources":["packages/@react-spectrum/autocomplete/src/SearchAutocomplete.tsx"],"sourcesContent":["/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport {AriaButtonProps} from '@react-types/button';\nimport {classNames, dimensionValue, useFocusableRef, useIsMobileDevice, useResizeObserver, useUnwrapDOMRef} from '@react-spectrum/utils';\nimport {ClearButton} from '@react-spectrum/button';\nimport {DOMRefValue, FocusableRef} from '@react-types/shared';\nimport {Field} from '@react-spectrum/label';\nimport {filterDOMProps, useLayoutEffect} from '@react-aria/utils';\nimport {FocusRing} from '@react-aria/focus';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {ListBoxBase, useListBoxLayout} from '@react-spectrum/listbox';\nimport Magnifier from '@spectrum-icons/ui/Magnifier';\nimport {MobileSearchAutocomplete} from './MobileSearchAutocomplete';\nimport {Popover} from '@react-spectrum/overlays';\nimport {ProgressCircle} from '@react-spectrum/progress';\nimport React, {\n forwardRef,\n InputHTMLAttributes,\n ReactElement,\n RefObject,\n useCallback,\n useEffect,\n useRef,\n useState\n} from 'react';\nimport searchAutocompleteStyles from './searchautocomplete.css';\nimport searchStyles from '@adobe/spectrum-css-temp/components/search/vars.css';\nimport {SpectrumSearchAutocompleteProps} from '@react-types/autocomplete';\nimport styles from '@adobe/spectrum-css-temp/components/inputgroup/vars.css';\nimport {TextFieldBase} from '@react-spectrum/textfield';\nimport textfieldStyles from '@adobe/spectrum-css-temp/components/textfield/vars.css';\nimport {useComboBoxState} from '@react-stately/combobox';\nimport {useFilter, useLocalizedStringFormatter} from '@react-aria/i18n';\nimport {useFormProps} from '@react-spectrum/form';\nimport {useHover} from '@react-aria/interactions';\nimport {useProvider, useProviderProps} from '@react-spectrum/provider';\nimport {useSearchAutocomplete} from '@react-aria/autocomplete';\n\nfunction SearchAutocomplete<T extends object>(props: SpectrumSearchAutocompleteProps<T>, ref: FocusableRef<HTMLElement>) {\n props = useProviderProps(props);\n props = useFormProps(props);\n\n if (props.placeholder) {\n console.warn('Placeholders are deprecated due to accessibility issues. Please use help text instead.');\n }\n\n let isMobile = useIsMobileDevice();\n if (isMobile) {\n // menuTrigger=focus/manual don't apply to mobile searchwithin\n return <MobileSearchAutocomplete {...props} menuTrigger=\"input\" ref={ref} />;\n } else {\n return <SearchAutocompleteBase {...props} ref={ref} />;\n }\n}\n\nfunction _SearchAutocompleteBase<T extends object>(props: SpectrumSearchAutocompleteProps<T>, ref: FocusableRef<HTMLElement>) {\n props = useProviderProps(props);\n\n let {\n menuTrigger = 'input',\n shouldFlip = true,\n direction = 'bottom',\n align = 'start',\n isQuiet,\n menuWidth: customMenuWidth,\n loadingState,\n onLoadMore,\n onSubmit = () => {},\n validate\n } = props;\n\n let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/autocomplete');\n let isAsync = loadingState != null;\n let popoverRef = useRef<DOMRefValue<HTMLDivElement>>(null);\n let unwrappedPopoverRef = useUnwrapDOMRef(popoverRef);\n let listBoxRef = useRef(null);\n let inputRef = useRef<HTMLInputElement>(null);\n let domRef = useFocusableRef(ref, inputRef);\n\n let {contains} = useFilter({sensitivity: 'base'});\n let state = useComboBoxState(\n {\n ...props,\n defaultFilter: contains,\n allowsEmptyCollection: isAsync,\n allowsCustomValue: true,\n onSelectionChange: (key) => key !== null && onSubmit(null, key),\n selectedKey: undefined,\n defaultSelectedKey: undefined,\n validate: useCallback(v => validate?.(v.inputValue), [validate])\n }\n );\n let layout = useListBoxLayout(state, loadingState === 'loadingMore');\n\n let {inputProps, listBoxProps, labelProps, clearButtonProps, descriptionProps, errorMessageProps, isInvalid, validationErrors, validationDetails} = useSearchAutocomplete(\n {\n ...props,\n keyboardDelegate: layout,\n popoverRef: unwrappedPopoverRef,\n listBoxRef,\n inputRef,\n menuTrigger\n },\n state\n );\n\n // Measure the width of the inputfield to inform the width of the menu (below).\n let [menuWidth, setMenuWidth] = useState<number>(0);\n let {scale} = useProvider();\n\n let onResize = useCallback(() => {\n if (inputRef.current) {\n let inputWidth = inputRef.current.offsetWidth;\n setMenuWidth(inputWidth);\n }\n }, [inputRef, setMenuWidth]);\n\n useResizeObserver({\n ref: domRef,\n onResize: onResize\n });\n\n useLayoutEffect(onResize, [scale, onResize]);\n\n let width = isQuiet ? undefined : menuWidth;\n let style = {\n width: customMenuWidth ? dimensionValue(customMenuWidth) : width,\n minWidth: isQuiet ? `calc(${menuWidth}px + calc(2 * var(--spectrum-dropdown-quiet-offset)))` : menuWidth\n };\n\n return (\n <>\n <Field\n {...props}\n descriptionProps={descriptionProps}\n errorMessageProps={errorMessageProps}\n labelProps={labelProps}\n isInvalid={isInvalid}\n validationErrors={validationErrors}\n validationDetails={validationDetails}\n ref={domRef}>\n <SearchAutocompleteInput\n {...props}\n isOpen={state.isOpen}\n loadingState={loadingState}\n inputProps={inputProps}\n inputRef={inputRef}\n clearButtonProps={clearButtonProps}\n validationState={props.validationState || (isInvalid ? 'invalid' : undefined)} />\n </Field>\n <Popover\n state={state}\n UNSAFE_style={style}\n UNSAFE_className={classNames(styles, 'spectrum-InputGroup-popover', {'spectrum-InputGroup-popover--quiet': isQuiet})}\n ref={popoverRef}\n triggerRef={inputRef}\n placement={`${direction} ${align}`}\n hideArrow\n isNonModal\n shouldFlip={shouldFlip}>\n <ListBoxBase\n {...listBoxProps}\n ref={listBoxRef}\n disallowEmptySelection\n autoFocus={state.focusStrategy}\n shouldSelectOnPressUp\n focusOnPointerEnter\n layout={layout}\n state={state}\n shouldUseVirtualFocus\n isLoading={loadingState === 'loading' || loadingState === 'loadingMore'}\n onLoadMore={onLoadMore}\n renderEmptyState={() => isAsync && (\n <span className={classNames(searchAutocompleteStyles, 'no-results')}>\n {stringFormatter.format('noResults')}\n </span>\n )} />\n </Popover>\n </>\n );\n}\n\nlet SearchAutocompleteBase = React.forwardRef(_SearchAutocompleteBase) as <T>(props: SpectrumSearchAutocompleteProps<T> & {ref?: FocusableRef<HTMLElement>}) => ReactElement;\n\n\ninterface SearchAutocompleteInputProps<T> extends SpectrumSearchAutocompleteProps<T> {\n inputProps: InputHTMLAttributes<HTMLInputElement>,\n inputRef: RefObject<HTMLInputElement>,\n style?: React.CSSProperties,\n className?: string,\n isOpen?: boolean,\n clearButtonProps: AriaButtonProps\n}\n\n// any type is because we don't want to call useObjectRef because this is an internal component and we know\n// we are always passing an object ref\nfunction _SearchAutocompleteInput<T>(props: SearchAutocompleteInputProps<T>, ref: any) {\n let searchIcon = (\n <Magnifier data-testid=\"searchicon\" />\n );\n\n let {\n icon = searchIcon,\n isQuiet,\n isDisabled,\n isReadOnly,\n validationState,\n inputProps,\n inputRef,\n autoFocus,\n style,\n className,\n loadingState,\n isOpen,\n menuTrigger,\n clearButtonProps\n } = props;\n let {hoverProps, isHovered} = useHover({});\n let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/autocomplete');\n let domProps = filterDOMProps(props);\n let timeout = useRef<ReturnType<typeof setTimeout> | null>(null);\n let [showLoading, setShowLoading] = useState(false);\n\n let loadingCircle = (\n <ProgressCircle\n aria-label={stringFormatter.format('loading')}\n size=\"S\"\n isIndeterminate\n UNSAFE_className={classNames(\n textfieldStyles,\n 'spectrum-Textfield-circleLoader',\n classNames(\n styles,\n 'spectrum-InputGroup-input-circleLoader'\n ),\n classNames(\n searchStyles,\n 'spectrum-Search-circleLoader'\n )\n )} />\n );\n\n let clearButton = (\n <ClearButton\n {...clearButtonProps}\n preventFocus\n UNSAFE_className={\n classNames(\n searchStyles,\n 'spectrum-ClearButton'\n )\n }\n isDisabled={isDisabled} />\n );\n\n let isLoading = loadingState === 'loading' || loadingState === 'filtering';\n let inputValue = inputProps.value;\n let lastInputValue = useRef(inputValue);\n useEffect(() => {\n if (isLoading && !showLoading) {\n if (timeout.current === null) {\n timeout.current = setTimeout(() => {\n setShowLoading(true);\n }, 500);\n }\n\n // If user is typing, clear the timer and restart since it is a new request\n if (inputValue !== lastInputValue.current) {\n clearTimeout(timeout.current);\n timeout.current = setTimeout(() => {\n setShowLoading(true);\n }, 500);\n }\n } else if (!isLoading) {\n // If loading is no longer happening, clear any timers and hide the loading circle\n setShowLoading(false);\n if (timeout.current != null) {\n clearTimeout(timeout.current);\n timeout.current = null;\n }\n }\n\n lastInputValue.current = inputValue;\n }, [isLoading, showLoading, inputValue]);\n\n return (\n <FocusRing\n within\n isTextInput\n focusClass={classNames(styles, 'is-focused')}\n focusRingClass={classNames(styles, 'focus-ring')}\n autoFocus={autoFocus}>\n <div\n {...hoverProps}\n ref={ref as RefObject<HTMLDivElement>}\n style={style}\n className={\n classNames(\n styles,\n 'spectrum-InputGroup',\n {\n 'spectrum-InputGroup--quiet': isQuiet,\n 'is-disabled': isDisabled,\n 'spectrum-InputGroup--invalid': validationState === 'invalid' && !isDisabled,\n 'is-hovered': isHovered\n },\n classNames(\n searchAutocompleteStyles,\n 'searchautocomplete'\n ),\n className\n )\n }>\n <TextFieldBase\n {...domProps}\n inputProps={inputProps}\n inputRef={inputRef}\n UNSAFE_className={\n classNames(\n searchStyles,\n 'spectrum-Search',\n 'spectrum-Search--loadable',\n 'spectrum-Textfield',\n {\n 'is-disabled': isDisabled,\n 'is-quiet': isQuiet,\n 'spectrum-Search--invalid': validationState === 'invalid' && !isDisabled,\n 'spectrum-Search--valid': validationState === 'valid' && !isDisabled\n },\n classNames(\n styles,\n 'spectrum-InputGroup-field'\n )\n )\n }\n inputClassName={classNames(searchStyles, 'spectrum-Search-input')}\n validationIconClassName={\n classNames(\n searchStyles,\n 'spectrum-Search-validationIcon'\n )\n }\n isDisabled={isDisabled}\n isQuiet={isQuiet}\n validationState={validationState}\n isLoading={showLoading && (isOpen || menuTrigger === 'manual' || loadingState === 'loading')}\n loadingIndicator={loadingState != null ? loadingCircle : undefined}\n icon={icon}\n wrapperChildren={(inputValue !== '' || loadingState === 'filtering' || validationState != null) && !isReadOnly ? clearButton : undefined}\n disableFocusRing />\n </div>\n </FocusRing>\n );\n}\n\nlet SearchAutocompleteInput = React.forwardRef(_SearchAutocompleteInput) as <T>(props: SearchAutocompleteInputProps<T> & {ref?: any}) => ReactElement;\n\n\n/**\n * A SearchAutocomplete is a searchfield that supports a dynamic list of suggestions.\n */\nlet _SearchAutocomplete = forwardRef(SearchAutocomplete) as <T>(props: SpectrumSearchAutocompleteProps<T> & {ref?: FocusableRef<HTMLElement>}) => ReactElement;\nexport {_SearchAutocomplete as SearchAutocomplete};\n"],"names":[],"version":3,"file":"SearchAutocomplete.main.js.map"}
|
|
1
|
+
{"mappings":"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","sources":["packages/@react-spectrum/autocomplete/src/SearchAutocomplete.tsx"],"sourcesContent":["/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport {AriaButtonProps} from '@react-types/button';\nimport {classNames, dimensionValue, useFocusableRef, useIsMobileDevice, useResizeObserver, useUnwrapDOMRef} from '@react-spectrum/utils';\nimport {ClearButton} from '@react-spectrum/button';\nimport {DOMRefValue, FocusableRef} from '@react-types/shared';\nimport {Field} from '@react-spectrum/label';\nimport {filterDOMProps, useLayoutEffect} from '@react-aria/utils';\nimport {FocusRing} from '@react-aria/focus';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {ListBoxBase, useListBoxLayout} from '@react-spectrum/listbox';\nimport Magnifier from '@spectrum-icons/ui/Magnifier';\nimport {MobileSearchAutocomplete} from './MobileSearchAutocomplete';\nimport {Popover} from '@react-spectrum/overlays';\nimport {ProgressCircle} from '@react-spectrum/progress';\nimport React, {\n forwardRef,\n InputHTMLAttributes,\n ReactElement,\n RefObject,\n useCallback,\n useEffect,\n useRef,\n useState\n} from 'react';\nimport searchAutocompleteStyles from './searchautocomplete.css';\nimport searchStyles from '@adobe/spectrum-css-temp/components/search/vars.css';\nimport {SpectrumSearchAutocompleteProps} from '@react-types/autocomplete';\nimport styles from '@adobe/spectrum-css-temp/components/inputgroup/vars.css';\nimport {TextFieldBase} from '@react-spectrum/textfield';\nimport textfieldStyles from '@adobe/spectrum-css-temp/components/textfield/vars.css';\nimport {useComboBoxState} from '@react-stately/combobox';\nimport {useFilter, useLocalizedStringFormatter} from '@react-aria/i18n';\nimport {useFormProps} from '@react-spectrum/form';\nimport {useHover} from '@react-aria/interactions';\nimport {useProvider, useProviderProps} from '@react-spectrum/provider';\nimport {useSearchAutocomplete} from '@react-aria/autocomplete';\n\nfunction SearchAutocomplete<T extends object>(props: SpectrumSearchAutocompleteProps<T>, ref: FocusableRef<HTMLElement>) {\n props = useProviderProps(props);\n props = useFormProps(props);\n\n if (props.placeholder) {\n console.warn('Placeholders are deprecated due to accessibility issues. Please use help text instead.');\n }\n\n let isMobile = useIsMobileDevice();\n if (isMobile) {\n // menuTrigger=focus/manual don't apply to mobile searchwithin\n return <MobileSearchAutocomplete {...props} menuTrigger=\"input\" ref={ref} />;\n } else {\n return <SearchAutocompleteBase {...props} ref={ref} />;\n }\n}\n\nfunction _SearchAutocompleteBase<T extends object>(props: SpectrumSearchAutocompleteProps<T>, ref: FocusableRef<HTMLElement>) {\n props = useProviderProps(props);\n\n let {\n menuTrigger = 'input',\n shouldFlip = true,\n direction = 'bottom',\n align = 'start',\n isQuiet,\n menuWidth: customMenuWidth,\n loadingState,\n onLoadMore,\n onSubmit = () => {},\n validate\n } = props;\n\n let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/autocomplete');\n let isAsync = loadingState != null;\n let popoverRef = useRef<DOMRefValue<HTMLDivElement>>(null);\n let unwrappedPopoverRef = useUnwrapDOMRef(popoverRef);\n let listBoxRef = useRef(null);\n let inputRef = useRef<HTMLInputElement>(null);\n let domRef = useFocusableRef(ref, inputRef);\n\n let {contains} = useFilter({sensitivity: 'base'});\n let state = useComboBoxState(\n {\n ...props,\n defaultFilter: contains,\n allowsEmptyCollection: isAsync,\n allowsCustomValue: true,\n onSelectionChange: (key) => key !== null && onSubmit(null, key),\n selectedKey: undefined,\n defaultSelectedKey: undefined,\n validate: useCallback(v => validate?.(v.inputValue), [validate])\n }\n );\n let layout = useListBoxLayout();\n\n let {inputProps, listBoxProps, labelProps, clearButtonProps, descriptionProps, errorMessageProps, isInvalid, validationErrors, validationDetails} = useSearchAutocomplete(\n {\n ...props,\n layoutDelegate: layout,\n popoverRef: unwrappedPopoverRef,\n listBoxRef,\n inputRef,\n menuTrigger\n },\n state\n );\n\n // Measure the width of the inputfield to inform the width of the menu (below).\n let [menuWidth, setMenuWidth] = useState<number>(0);\n let {scale} = useProvider();\n\n let onResize = useCallback(() => {\n if (inputRef.current) {\n let inputWidth = inputRef.current.offsetWidth;\n setMenuWidth(inputWidth);\n }\n }, [inputRef, setMenuWidth]);\n\n useResizeObserver({\n ref: domRef,\n onResize: onResize\n });\n\n useLayoutEffect(onResize, [scale, onResize]);\n\n let width = isQuiet ? undefined : menuWidth;\n let style = {\n width: customMenuWidth ? dimensionValue(customMenuWidth) : width,\n minWidth: isQuiet ? `calc(${menuWidth}px + calc(2 * var(--spectrum-dropdown-quiet-offset)))` : menuWidth\n };\n\n return (\n <>\n <Field\n {...props}\n descriptionProps={descriptionProps}\n errorMessageProps={errorMessageProps}\n labelProps={labelProps}\n isInvalid={isInvalid}\n validationErrors={validationErrors}\n validationDetails={validationDetails}\n ref={domRef}>\n <SearchAutocompleteInput\n {...props}\n isOpen={state.isOpen}\n loadingState={loadingState}\n inputProps={inputProps}\n inputRef={inputRef}\n clearButtonProps={clearButtonProps}\n validationState={props.validationState || (isInvalid ? 'invalid' : undefined)} />\n </Field>\n <Popover\n state={state}\n UNSAFE_style={style}\n UNSAFE_className={classNames(styles, 'spectrum-InputGroup-popover', {'spectrum-InputGroup-popover--quiet': isQuiet})}\n ref={popoverRef}\n triggerRef={inputRef}\n placement={`${direction} ${align}`}\n hideArrow\n isNonModal\n shouldFlip={shouldFlip}>\n <ListBoxBase\n {...listBoxProps}\n ref={listBoxRef}\n disallowEmptySelection\n autoFocus={state.focusStrategy}\n shouldSelectOnPressUp\n focusOnPointerEnter\n layout={layout}\n state={state}\n shouldUseVirtualFocus\n isLoading={loadingState === 'loading' || loadingState === 'loadingMore'}\n showLoadingSpinner={loadingState === 'loadingMore'}\n onLoadMore={onLoadMore}\n renderEmptyState={() => isAsync && (\n <span className={classNames(searchAutocompleteStyles, 'no-results')}>\n {stringFormatter.format('noResults')}\n </span>\n )} />\n </Popover>\n </>\n );\n}\n\nlet SearchAutocompleteBase = React.forwardRef(_SearchAutocompleteBase) as <T>(props: SpectrumSearchAutocompleteProps<T> & {ref?: FocusableRef<HTMLElement>}) => ReactElement;\n\n\ninterface SearchAutocompleteInputProps<T> extends SpectrumSearchAutocompleteProps<T> {\n inputProps: InputHTMLAttributes<HTMLInputElement>,\n inputRef: RefObject<HTMLInputElement | null>,\n style?: React.CSSProperties,\n className?: string,\n isOpen?: boolean,\n clearButtonProps: AriaButtonProps\n}\n\n// any type is because we don't want to call useObjectRef because this is an internal component and we know\n// we are always passing an object ref\nfunction _SearchAutocompleteInput<T>(props: SearchAutocompleteInputProps<T>, ref: any) {\n let searchIcon = (\n <Magnifier data-testid=\"searchicon\" />\n );\n\n let {\n icon = searchIcon,\n isQuiet,\n isDisabled,\n isReadOnly,\n validationState,\n inputProps,\n inputRef,\n autoFocus,\n style,\n className,\n loadingState,\n isOpen,\n menuTrigger,\n clearButtonProps\n } = props;\n let {hoverProps, isHovered} = useHover({});\n let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/autocomplete');\n let domProps = filterDOMProps(props);\n let timeout = useRef<ReturnType<typeof setTimeout> | null>(null);\n let [showLoading, setShowLoading] = useState(false);\n\n let loadingCircle = (\n <ProgressCircle\n aria-label={stringFormatter.format('loading')}\n size=\"S\"\n isIndeterminate\n UNSAFE_className={classNames(\n textfieldStyles,\n 'spectrum-Textfield-circleLoader',\n classNames(\n styles,\n 'spectrum-InputGroup-input-circleLoader'\n ),\n classNames(\n searchStyles,\n 'spectrum-Search-circleLoader'\n )\n )} />\n );\n\n let clearButton = (\n <ClearButton\n {...clearButtonProps}\n preventFocus\n UNSAFE_className={\n classNames(\n searchStyles,\n 'spectrum-ClearButton'\n )\n }\n isDisabled={isDisabled} />\n );\n\n let isLoading = loadingState === 'loading' || loadingState === 'filtering';\n let inputValue = inputProps.value;\n let lastInputValue = useRef(inputValue);\n useEffect(() => {\n if (isLoading && !showLoading) {\n if (timeout.current === null) {\n timeout.current = setTimeout(() => {\n setShowLoading(true);\n }, 500);\n }\n\n // If user is typing, clear the timer and restart since it is a new request\n if (inputValue !== lastInputValue.current) {\n clearTimeout(timeout.current);\n timeout.current = setTimeout(() => {\n setShowLoading(true);\n }, 500);\n }\n } else if (!isLoading) {\n // If loading is no longer happening, clear any timers and hide the loading circle\n setShowLoading(false);\n if (timeout.current != null) {\n clearTimeout(timeout.current);\n timeout.current = null;\n }\n }\n\n lastInputValue.current = inputValue;\n }, [isLoading, showLoading, inputValue]);\n\n return (\n (<FocusRing\n within\n isTextInput\n focusClass={classNames(styles, 'is-focused')}\n focusRingClass={classNames(styles, 'focus-ring')}\n autoFocus={autoFocus}>\n <div\n {...hoverProps}\n ref={ref as RefObject<HTMLDivElement | null>}\n style={style}\n className={\n classNames(\n styles,\n 'spectrum-InputGroup',\n {\n 'spectrum-InputGroup--quiet': isQuiet,\n 'is-disabled': isDisabled,\n 'spectrum-InputGroup--invalid': validationState === 'invalid' && !isDisabled,\n 'is-hovered': isHovered\n },\n classNames(\n searchAutocompleteStyles,\n 'searchautocomplete'\n ),\n className\n )\n }>\n <TextFieldBase\n {...domProps}\n inputProps={inputProps}\n inputRef={inputRef}\n UNSAFE_className={\n classNames(\n searchStyles,\n 'spectrum-Search',\n 'spectrum-Search--loadable',\n 'spectrum-Textfield',\n {\n 'is-disabled': isDisabled,\n 'is-quiet': isQuiet,\n 'spectrum-Search--invalid': validationState === 'invalid' && !isDisabled,\n 'spectrum-Search--valid': validationState === 'valid' && !isDisabled\n },\n classNames(\n styles,\n 'spectrum-InputGroup-field'\n )\n )\n }\n inputClassName={classNames(searchStyles, 'spectrum-Search-input')}\n validationIconClassName={\n classNames(\n searchStyles,\n 'spectrum-Search-validationIcon'\n )\n }\n isDisabled={isDisabled}\n isQuiet={isQuiet}\n validationState={validationState}\n isLoading={showLoading && (isOpen || menuTrigger === 'manual' || loadingState === 'loading')}\n loadingIndicator={loadingState != null ? loadingCircle : undefined}\n icon={icon}\n wrapperChildren={(inputValue !== '' || loadingState === 'filtering' || validationState != null) && !isReadOnly ? clearButton : undefined}\n disableFocusRing />\n </div>\n </FocusRing>)\n );\n}\n\nlet SearchAutocompleteInput = React.forwardRef(_SearchAutocompleteInput) as <T>(props: SearchAutocompleteInputProps<T> & {ref?: any}) => ReactElement;\n\n\n/**\n * A SearchAutocomplete is a searchfield that supports a dynamic list of suggestions.\n */\nlet _SearchAutocomplete = forwardRef(SearchAutocomplete) as <T>(props: SpectrumSearchAutocompleteProps<T> & {ref?: FocusableRef<HTMLElement>}) => ReactElement;\nexport {_SearchAutocomplete as SearchAutocomplete};\n"],"names":[],"version":3,"file":"SearchAutocomplete.main.js.map"}
|
|
@@ -6,7 +6,7 @@ import "./vars.31879241.css";
|
|
|
6
6
|
import $fLcex$search_vars_cssmodulejs from "./search_vars_css.mjs";
|
|
7
7
|
import "./vars.936671cd.css";
|
|
8
8
|
import $fLcex$inputgroup_vars_cssmodulejs from "./inputgroup_vars_css.mjs";
|
|
9
|
-
import "./vars.
|
|
9
|
+
import "./vars.f9e74788.css";
|
|
10
10
|
import $fLcex$textfield_vars_cssmodulejs from "./textfield_vars_css.mjs";
|
|
11
11
|
import {useIsMobileDevice as $fLcex$useIsMobileDevice, useUnwrapDOMRef as $fLcex$useUnwrapDOMRef, useFocusableRef as $fLcex$useFocusableRef, useResizeObserver as $fLcex$useResizeObserver, dimensionValue as $fLcex$dimensionValue, classNames as $fLcex$classNames} from "@react-spectrum/utils";
|
|
12
12
|
import {ClearButton as $fLcex$ClearButton} from "@react-spectrum/button";
|
|
@@ -66,7 +66,7 @@ function $parcel$interopDefault(a) {
|
|
|
66
66
|
function $f3f3b62273a2d260$var$SearchAutocomplete(props, ref) {
|
|
67
67
|
props = (0, $fLcex$useProviderProps)(props);
|
|
68
68
|
props = (0, $fLcex$useFormProps)(props);
|
|
69
|
-
if (props.placeholder) console.warn(
|
|
69
|
+
if (props.placeholder) console.warn('Placeholders are deprecated due to accessibility issues. Please use help text instead.');
|
|
70
70
|
let isMobile = (0, $fLcex$useIsMobileDevice)();
|
|
71
71
|
if (isMobile) // menuTrigger=focus/manual don't apply to mobile searchwithin
|
|
72
72
|
return /*#__PURE__*/ (0, $fLcex$react).createElement((0, $c940f54e16bafef5$export$e7a90f7d6b078162), {
|
|
@@ -81,8 +81,8 @@ function $f3f3b62273a2d260$var$SearchAutocomplete(props, ref) {
|
|
|
81
81
|
}
|
|
82
82
|
function $f3f3b62273a2d260$var$_SearchAutocompleteBase(props, ref) {
|
|
83
83
|
props = (0, $fLcex$useProviderProps)(props);
|
|
84
|
-
let { menuTrigger: menuTrigger =
|
|
85
|
-
let stringFormatter = (0, $fLcex$useLocalizedStringFormatter)((0, ($parcel$interopDefault($fLcex$intlStringsmodulejs))),
|
|
84
|
+
let { menuTrigger: menuTrigger = 'input', shouldFlip: shouldFlip = true, direction: direction = 'bottom', align: align = 'start', isQuiet: isQuiet, menuWidth: customMenuWidth, loadingState: loadingState, onLoadMore: onLoadMore, onSubmit: onSubmit = ()=>{}, validate: validate } = props;
|
|
85
|
+
let stringFormatter = (0, $fLcex$useLocalizedStringFormatter)((0, ($parcel$interopDefault($fLcex$intlStringsmodulejs))), '@react-spectrum/autocomplete');
|
|
86
86
|
let isAsync = loadingState != null;
|
|
87
87
|
let popoverRef = (0, $fLcex$useRef)(null);
|
|
88
88
|
let unwrappedPopoverRef = (0, $fLcex$useUnwrapDOMRef)(popoverRef);
|
|
@@ -90,7 +90,7 @@ function $f3f3b62273a2d260$var$_SearchAutocompleteBase(props, ref) {
|
|
|
90
90
|
let inputRef = (0, $fLcex$useRef)(null);
|
|
91
91
|
let domRef = (0, $fLcex$useFocusableRef)(ref, inputRef);
|
|
92
92
|
let { contains: contains } = (0, $fLcex$useFilter)({
|
|
93
|
-
sensitivity:
|
|
93
|
+
sensitivity: 'base'
|
|
94
94
|
});
|
|
95
95
|
let state = (0, $fLcex$useComboBoxState)({
|
|
96
96
|
...props,
|
|
@@ -104,10 +104,10 @@ function $f3f3b62273a2d260$var$_SearchAutocompleteBase(props, ref) {
|
|
|
104
104
|
validate
|
|
105
105
|
])
|
|
106
106
|
});
|
|
107
|
-
let layout = (0, $fLcex$useListBoxLayout)(
|
|
107
|
+
let layout = (0, $fLcex$useListBoxLayout)();
|
|
108
108
|
let { inputProps: inputProps, listBoxProps: listBoxProps, labelProps: labelProps, clearButtonProps: clearButtonProps, descriptionProps: descriptionProps, errorMessageProps: errorMessageProps, isInvalid: isInvalid, validationErrors: validationErrors, validationDetails: validationDetails } = (0, $fLcex$useSearchAutocomplete)({
|
|
109
109
|
...props,
|
|
110
|
-
|
|
110
|
+
layoutDelegate: layout,
|
|
111
111
|
popoverRef: unwrappedPopoverRef,
|
|
112
112
|
listBoxRef: listBoxRef,
|
|
113
113
|
inputRef: inputRef,
|
|
@@ -154,12 +154,12 @@ function $f3f3b62273a2d260$var$_SearchAutocompleteBase(props, ref) {
|
|
|
154
154
|
inputProps: inputProps,
|
|
155
155
|
inputRef: inputRef,
|
|
156
156
|
clearButtonProps: clearButtonProps,
|
|
157
|
-
validationState: props.validationState || (isInvalid ?
|
|
157
|
+
validationState: props.validationState || (isInvalid ? 'invalid' : undefined)
|
|
158
158
|
})), /*#__PURE__*/ (0, $fLcex$react).createElement((0, $fLcex$Popover), {
|
|
159
159
|
state: state,
|
|
160
160
|
UNSAFE_style: style,
|
|
161
|
-
UNSAFE_className: (0, $fLcex$classNames)((0, ($parcel$interopDefault($fLcex$inputgroup_vars_cssmodulejs))),
|
|
162
|
-
|
|
161
|
+
UNSAFE_className: (0, $fLcex$classNames)((0, ($parcel$interopDefault($fLcex$inputgroup_vars_cssmodulejs))), 'spectrum-InputGroup-popover', {
|
|
162
|
+
'spectrum-InputGroup-popover--quiet': isQuiet
|
|
163
163
|
}),
|
|
164
164
|
ref: popoverRef,
|
|
165
165
|
triggerRef: inputRef,
|
|
@@ -177,11 +177,12 @@ function $f3f3b62273a2d260$var$_SearchAutocompleteBase(props, ref) {
|
|
|
177
177
|
layout: layout,
|
|
178
178
|
state: state,
|
|
179
179
|
shouldUseVirtualFocus: true,
|
|
180
|
-
isLoading: loadingState ===
|
|
180
|
+
isLoading: loadingState === 'loading' || loadingState === 'loadingMore',
|
|
181
|
+
showLoadingSpinner: loadingState === 'loadingMore',
|
|
181
182
|
onLoadMore: onLoadMore,
|
|
182
183
|
renderEmptyState: ()=>isAsync && /*#__PURE__*/ (0, $fLcex$react).createElement("span", {
|
|
183
|
-
className: (0, $fLcex$classNames)((0, ($parcel$interopDefault($fLcex$searchautocomplete_cssmodulejs))),
|
|
184
|
-
}, stringFormatter.format(
|
|
184
|
+
className: (0, $fLcex$classNames)((0, ($parcel$interopDefault($fLcex$searchautocomplete_cssmodulejs))), 'no-results')
|
|
185
|
+
}, stringFormatter.format('noResults'))
|
|
185
186
|
})));
|
|
186
187
|
}
|
|
187
188
|
let $f3f3b62273a2d260$var$SearchAutocompleteBase = /*#__PURE__*/ (0, $fLcex$react).forwardRef($f3f3b62273a2d260$var$_SearchAutocompleteBase);
|
|
@@ -193,23 +194,23 @@ function $f3f3b62273a2d260$var$_SearchAutocompleteInput(props, ref) {
|
|
|
193
194
|
});
|
|
194
195
|
let { icon: icon = searchIcon, isQuiet: isQuiet, isDisabled: isDisabled, isReadOnly: isReadOnly, validationState: validationState, inputProps: inputProps, inputRef: inputRef, autoFocus: autoFocus, style: style, className: className, loadingState: loadingState, isOpen: isOpen, menuTrigger: menuTrigger, clearButtonProps: clearButtonProps } = props;
|
|
195
196
|
let { hoverProps: hoverProps, isHovered: isHovered } = (0, $fLcex$useHover)({});
|
|
196
|
-
let stringFormatter = (0, $fLcex$useLocalizedStringFormatter)((0, ($parcel$interopDefault($fLcex$intlStringsmodulejs))),
|
|
197
|
+
let stringFormatter = (0, $fLcex$useLocalizedStringFormatter)((0, ($parcel$interopDefault($fLcex$intlStringsmodulejs))), '@react-spectrum/autocomplete');
|
|
197
198
|
let domProps = (0, $fLcex$filterDOMProps)(props);
|
|
198
199
|
let timeout = (0, $fLcex$useRef)(null);
|
|
199
200
|
let [showLoading, setShowLoading] = (0, $fLcex$useState)(false);
|
|
200
201
|
let loadingCircle = /*#__PURE__*/ (0, $fLcex$react).createElement((0, $fLcex$ProgressCircle), {
|
|
201
|
-
"aria-label": stringFormatter.format(
|
|
202
|
+
"aria-label": stringFormatter.format('loading'),
|
|
202
203
|
size: "S",
|
|
203
204
|
isIndeterminate: true,
|
|
204
|
-
UNSAFE_className: (0, $fLcex$classNames)((0, ($parcel$interopDefault($fLcex$textfield_vars_cssmodulejs))),
|
|
205
|
+
UNSAFE_className: (0, $fLcex$classNames)((0, ($parcel$interopDefault($fLcex$textfield_vars_cssmodulejs))), 'spectrum-Textfield-circleLoader', (0, $fLcex$classNames)((0, ($parcel$interopDefault($fLcex$inputgroup_vars_cssmodulejs))), 'spectrum-InputGroup-input-circleLoader'), (0, $fLcex$classNames)((0, ($parcel$interopDefault($fLcex$search_vars_cssmodulejs))), 'spectrum-Search-circleLoader'))
|
|
205
206
|
});
|
|
206
207
|
let clearButton = /*#__PURE__*/ (0, $fLcex$react).createElement((0, $fLcex$ClearButton), {
|
|
207
208
|
...clearButtonProps,
|
|
208
209
|
preventFocus: true,
|
|
209
|
-
UNSAFE_className: (0, $fLcex$classNames)((0, ($parcel$interopDefault($fLcex$search_vars_cssmodulejs))),
|
|
210
|
+
UNSAFE_className: (0, $fLcex$classNames)((0, ($parcel$interopDefault($fLcex$search_vars_cssmodulejs))), 'spectrum-ClearButton'),
|
|
210
211
|
isDisabled: isDisabled
|
|
211
212
|
});
|
|
212
|
-
let isLoading = loadingState ===
|
|
213
|
+
let isLoading = loadingState === 'loading' || loadingState === 'filtering';
|
|
213
214
|
let inputValue = inputProps.value;
|
|
214
215
|
let lastInputValue = (0, $fLcex$useRef)(inputValue);
|
|
215
216
|
(0, $fLcex$useEffect)(()=>{
|
|
@@ -241,38 +242,38 @@ function $f3f3b62273a2d260$var$_SearchAutocompleteInput(props, ref) {
|
|
|
241
242
|
return /*#__PURE__*/ (0, $fLcex$react).createElement((0, $fLcex$FocusRing), {
|
|
242
243
|
within: true,
|
|
243
244
|
isTextInput: true,
|
|
244
|
-
focusClass: (0, $fLcex$classNames)((0, ($parcel$interopDefault($fLcex$inputgroup_vars_cssmodulejs))),
|
|
245
|
-
focusRingClass: (0, $fLcex$classNames)((0, ($parcel$interopDefault($fLcex$inputgroup_vars_cssmodulejs))),
|
|
245
|
+
focusClass: (0, $fLcex$classNames)((0, ($parcel$interopDefault($fLcex$inputgroup_vars_cssmodulejs))), 'is-focused'),
|
|
246
|
+
focusRingClass: (0, $fLcex$classNames)((0, ($parcel$interopDefault($fLcex$inputgroup_vars_cssmodulejs))), 'focus-ring'),
|
|
246
247
|
autoFocus: autoFocus
|
|
247
248
|
}, /*#__PURE__*/ (0, $fLcex$react).createElement("div", {
|
|
248
249
|
...hoverProps,
|
|
249
250
|
ref: ref,
|
|
250
251
|
style: style,
|
|
251
|
-
className: (0, $fLcex$classNames)((0, ($parcel$interopDefault($fLcex$inputgroup_vars_cssmodulejs))),
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
}, (0, $fLcex$classNames)((0, ($parcel$interopDefault($fLcex$searchautocomplete_cssmodulejs))),
|
|
252
|
+
className: (0, $fLcex$classNames)((0, ($parcel$interopDefault($fLcex$inputgroup_vars_cssmodulejs))), 'spectrum-InputGroup', {
|
|
253
|
+
'spectrum-InputGroup--quiet': isQuiet,
|
|
254
|
+
'is-disabled': isDisabled,
|
|
255
|
+
'spectrum-InputGroup--invalid': validationState === 'invalid' && !isDisabled,
|
|
256
|
+
'is-hovered': isHovered
|
|
257
|
+
}, (0, $fLcex$classNames)((0, ($parcel$interopDefault($fLcex$searchautocomplete_cssmodulejs))), 'searchautocomplete'), className)
|
|
257
258
|
}, /*#__PURE__*/ (0, $fLcex$react).createElement((0, $fLcex$TextFieldBase), {
|
|
258
259
|
...domProps,
|
|
259
260
|
inputProps: inputProps,
|
|
260
261
|
inputRef: inputRef,
|
|
261
|
-
UNSAFE_className: (0, $fLcex$classNames)((0, ($parcel$interopDefault($fLcex$search_vars_cssmodulejs))),
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
}, (0, $fLcex$classNames)((0, ($parcel$interopDefault($fLcex$inputgroup_vars_cssmodulejs))),
|
|
267
|
-
inputClassName: (0, $fLcex$classNames)((0, ($parcel$interopDefault($fLcex$search_vars_cssmodulejs))),
|
|
268
|
-
validationIconClassName: (0, $fLcex$classNames)((0, ($parcel$interopDefault($fLcex$search_vars_cssmodulejs))),
|
|
262
|
+
UNSAFE_className: (0, $fLcex$classNames)((0, ($parcel$interopDefault($fLcex$search_vars_cssmodulejs))), 'spectrum-Search', 'spectrum-Search--loadable', 'spectrum-Textfield', {
|
|
263
|
+
'is-disabled': isDisabled,
|
|
264
|
+
'is-quiet': isQuiet,
|
|
265
|
+
'spectrum-Search--invalid': validationState === 'invalid' && !isDisabled,
|
|
266
|
+
'spectrum-Search--valid': validationState === 'valid' && !isDisabled
|
|
267
|
+
}, (0, $fLcex$classNames)((0, ($parcel$interopDefault($fLcex$inputgroup_vars_cssmodulejs))), 'spectrum-InputGroup-field')),
|
|
268
|
+
inputClassName: (0, $fLcex$classNames)((0, ($parcel$interopDefault($fLcex$search_vars_cssmodulejs))), 'spectrum-Search-input'),
|
|
269
|
+
validationIconClassName: (0, $fLcex$classNames)((0, ($parcel$interopDefault($fLcex$search_vars_cssmodulejs))), 'spectrum-Search-validationIcon'),
|
|
269
270
|
isDisabled: isDisabled,
|
|
270
271
|
isQuiet: isQuiet,
|
|
271
272
|
validationState: validationState,
|
|
272
|
-
isLoading: showLoading && (isOpen || menuTrigger ===
|
|
273
|
+
isLoading: showLoading && (isOpen || menuTrigger === 'manual' || loadingState === 'loading'),
|
|
273
274
|
loadingIndicator: loadingState != null ? loadingCircle : undefined,
|
|
274
275
|
icon: icon,
|
|
275
|
-
wrapperChildren: (inputValue !==
|
|
276
|
+
wrapperChildren: (inputValue !== '' || loadingState === 'filtering' || validationState != null) && !isReadOnly ? clearButton : undefined,
|
|
276
277
|
disableFocusRing: true
|
|
277
278
|
})));
|
|
278
279
|
}
|
|
@@ -283,4 +284,4 @@ let $f3f3b62273a2d260$var$SearchAutocompleteInput = /*#__PURE__*/ (0, $fLcex$rea
|
|
|
283
284
|
|
|
284
285
|
|
|
285
286
|
export {$f3f3b62273a2d260$export$dd65332a5b19fa63 as SearchAutocomplete};
|
|
286
|
-
//# sourceMappingURL=SearchAutocomplete.
|
|
287
|
+
//# sourceMappingURL=SearchAutocomplete.module.js.map
|