@cloudscape-design/components 3.0.43 → 3.0.44
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/autosuggest/autosuggest-input.d.ts +28 -0
- package/autosuggest/autosuggest-input.d.ts.map +1 -0
- package/autosuggest/autosuggest-input.js +140 -0
- package/autosuggest/autosuggest-input.js.map +1 -0
- package/autosuggest/internal.d.ts.map +1 -1
- package/autosuggest/internal.js +45 -78
- package/autosuggest/internal.js.map +1 -1
- package/autosuggest/load-more-controller.d.ts.map +1 -1
- package/autosuggest/load-more-controller.js +1 -1
- package/autosuggest/load-more-controller.js.map +1 -1
- package/autosuggest/options-controller.d.ts.map +1 -1
- package/autosuggest/options-controller.js +0 -1
- package/autosuggest/options-controller.js.map +1 -1
- package/autosuggest/styles.css.js +5 -4
- package/autosuggest/styles.scoped.css +8 -4
- package/autosuggest/styles.selectors.js +5 -4
- package/code-editor/index.d.ts.map +1 -1
- package/code-editor/index.js +13 -14
- package/code-editor/index.js.map +1 -1
- package/code-editor/styles.css.js +32 -33
- package/code-editor/styles.scoped.css +116 -122
- package/code-editor/styles.selectors.js +32 -33
- package/date-range-picker/index.d.ts.map +1 -1
- package/date-range-picker/index.js +4 -9
- package/date-range-picker/index.js.map +1 -1
- package/internal/environment.js +1 -1
- package/internal/utils/date-time/format-date-range.d.ts +2 -0
- package/internal/utils/date-time/format-date-range.d.ts.map +1 -0
- package/internal/utils/date-time/format-date-range.js +11 -0
- package/internal/utils/date-time/format-date-range.js.map +1 -0
- package/internal/utils/date-time/index.d.ts +1 -0
- package/internal/utils/date-time/index.d.ts.map +1 -1
- package/internal/utils/date-time/index.js +1 -0
- package/internal/utils/date-time/index.js.map +1 -1
- package/package.json +1 -1
- package/property-filter/controller.d.ts +2 -2
- package/property-filter/controller.d.ts.map +1 -1
- package/property-filter/controller.js +2 -2
- package/property-filter/controller.js.map +1 -1
- package/property-filter/index.d.ts.map +1 -1
- package/property-filter/index.js +1 -6
- package/property-filter/index.js.map +1 -1
- package/property-filter/property-filter-autosuggest.d.ts +2 -3
- package/property-filter/property-filter-autosuggest.d.ts.map +1 -1
- package/property-filter/property-filter-autosuggest.js +39 -77
- package/property-filter/property-filter-autosuggest.js.map +1 -1
- package/autosuggest/dropdown-controller.d.ts +0 -20
- package/autosuggest/dropdown-controller.d.ts.map +0 -1
- package/autosuggest/dropdown-controller.js +0 -29
- package/autosuggest/dropdown-controller.js.map +0 -1
- package/autosuggest/input-controller.d.ts +0 -12
- package/autosuggest/input-controller.d.ts.map +0 -1
- package/autosuggest/input-controller.js +0 -38
- package/autosuggest/input-controller.js.map +0 -1
|
@@ -1,29 +1,25 @@
|
|
|
1
|
-
import { __assign, __rest } from "tslib";
|
|
2
1
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
-
import
|
|
3
|
+
import { __assign, __rest } from "tslib";
|
|
5
4
|
import React, { useRef } from 'react';
|
|
6
|
-
import { useInputKeydownHandler } from '../autosuggest/input-controller';
|
|
7
5
|
import { useAutosuggestItems } from '../autosuggest/options-controller';
|
|
8
|
-
import Dropdown from '../internal/components/dropdown';
|
|
9
6
|
import { useDropdownStatus } from '../internal/components/dropdown-status';
|
|
10
7
|
import DropdownFooter from '../internal/components/dropdown-footer';
|
|
11
|
-
import { useFormFieldContext } from '../internal/context/form-field-context';
|
|
12
|
-
import { getBaseProps } from '../internal/base-component';
|
|
13
8
|
import { generateUniqueId, useUniqueId } from '../internal/hooks/use-unique-id';
|
|
14
|
-
import
|
|
15
|
-
import { fireNonCancelableEvent } from '../internal/events';
|
|
16
|
-
import InternalInput from '../input/internal';
|
|
9
|
+
import { fireNonCancelableEvent, } from '../internal/events';
|
|
17
10
|
import styles from '../autosuggest/styles.css.js';
|
|
18
11
|
import { fireCancelableEvent } from '../internal/events/index';
|
|
19
12
|
import AutosuggestOptionsList from '../autosuggest/options-list';
|
|
20
|
-
import { useAutosuggestDropdown } from '../autosuggest/dropdown-controller';
|
|
21
13
|
import { useAutosuggestLoadMore } from '../autosuggest/load-more-controller';
|
|
14
|
+
import AutosuggestInput from '../autosuggest/autosuggest-input';
|
|
15
|
+
import { useMergeRefs } from '../internal/hooks/use-merge-refs';
|
|
22
16
|
var DROPDOWN_WIDTH = 300;
|
|
23
17
|
var PropertyFilterAutosuggest = React.forwardRef(function (props, ref) {
|
|
24
18
|
var _a;
|
|
25
|
-
var value = props.value, onChange = props.onChange, onLoadItems = props.onLoadItems, options = props.options, _b = props.filteringType, filteringType = _b === void 0 ? 'auto' : _b, _c = props.statusType, statusType = _c === void 0 ? 'finished' : _c, placeholder = props.placeholder, disabled = props.disabled, ariaLabel = props.ariaLabel, enteredTextLabel = props.enteredTextLabel, onKeyDown = props.onKeyDown, virtualScroll = props.virtualScroll, expandToViewport = props.expandToViewport, filterText = props.filterText,
|
|
19
|
+
var value = props.value, onChange = props.onChange, onFocus = props.onFocus, onBlur = props.onBlur, onLoadItems = props.onLoadItems, options = props.options, _b = props.filteringType, filteringType = _b === void 0 ? 'auto' : _b, _c = props.statusType, statusType = _c === void 0 ? 'finished' : _c, placeholder = props.placeholder, disabled = props.disabled, ariaLabel = props.ariaLabel, enteredTextLabel = props.enteredTextLabel, onKeyDown = props.onKeyDown, virtualScroll = props.virtualScroll, expandToViewport = props.expandToViewport, filterText = props.filterText, onOptionClick = props.onOptionClick, hideEnteredTextOption = props.hideEnteredTextOption, rest = __rest(props, ["value", "onChange", "onFocus", "onBlur", "onLoadItems", "options", "filteringType", "statusType", "placeholder", "disabled", "ariaLabel", "enteredTextLabel", "onKeyDown", "virtualScroll", "expandToViewport", "filterText", "onOptionClick", "hideEnteredTextOption"]);
|
|
26
20
|
var highlightText = filterText === undefined ? value : filterText;
|
|
21
|
+
var autosuggestInputRef = useRef(null);
|
|
22
|
+
var mergedRef = useMergeRefs(autosuggestInputRef, ref);
|
|
27
23
|
var _d = useAutosuggestItems({
|
|
28
24
|
options: options || [],
|
|
29
25
|
filterValue: value,
|
|
@@ -31,98 +27,64 @@ var PropertyFilterAutosuggest = React.forwardRef(function (props, ref) {
|
|
|
31
27
|
filteringType: filteringType,
|
|
32
28
|
hideEnteredTextLabel: hideEnteredTextOption,
|
|
33
29
|
onSelectItem: function (option) {
|
|
30
|
+
var _a;
|
|
34
31
|
var value = option.value || '';
|
|
35
32
|
fireNonCancelableEvent(onChange, { value: value });
|
|
36
33
|
var selectedCancelled = fireCancelableEvent(onOptionClick, option);
|
|
37
34
|
if (!selectedCancelled) {
|
|
38
|
-
|
|
35
|
+
(_a = autosuggestInputRef.current) === null || _a === void 0 ? void 0 : _a.close();
|
|
39
36
|
}
|
|
40
37
|
else {
|
|
41
38
|
autosuggestItemsHandlers.resetHighlightWithKeyboard();
|
|
42
39
|
}
|
|
43
40
|
}
|
|
44
41
|
}), autosuggestItemsState = _d[0], autosuggestItemsHandlers = _d[1];
|
|
45
|
-
var _e = useAutosuggestDropdown({
|
|
46
|
-
onClose: function () { return autosuggestItemsHandlers.resetHighlightWithKeyboard(); }
|
|
47
|
-
}), open = _e[0].open, autosuggestDropdownHandlers = _e[1], autosuggestDropdownRefs = _e[2];
|
|
48
42
|
var autosuggestLoadMoreHandlers = useAutosuggestLoadMore({
|
|
49
43
|
options: options,
|
|
50
44
|
statusType: statusType,
|
|
51
45
|
onLoadItems: function (detail) { return fireNonCancelableEvent(onLoadItems, detail); }
|
|
52
46
|
});
|
|
53
|
-
var
|
|
54
|
-
|
|
47
|
+
var handleChange = function (event) {
|
|
48
|
+
autosuggestItemsHandlers.resetHighlightWithKeyboard();
|
|
49
|
+
fireNonCancelableEvent(onChange, event.detail);
|
|
50
|
+
};
|
|
51
|
+
var handleDelayedInput = function (event) {
|
|
52
|
+
autosuggestLoadMoreHandlers.fireLoadMoreOnInputChange(event.detail.value);
|
|
53
|
+
};
|
|
54
|
+
var handleFocus = function () {
|
|
55
|
+
autosuggestLoadMoreHandlers.fireLoadMoreOnInputFocus();
|
|
56
|
+
fireCancelableEvent(onFocus, null);
|
|
57
|
+
};
|
|
58
|
+
var handleBlur = function () {
|
|
59
|
+
fireCancelableEvent(onBlur, null);
|
|
60
|
+
};
|
|
61
|
+
var handleKeyDown = function (e) {
|
|
62
|
+
fireCancelableEvent(onKeyDown, e.detail);
|
|
63
|
+
};
|
|
64
|
+
var handlePressArrowDown = function () {
|
|
65
|
+
autosuggestItemsHandlers.moveHighlightWithKeyboard(1);
|
|
66
|
+
};
|
|
67
|
+
var handlePressArrowUp = function () {
|
|
68
|
+
autosuggestItemsHandlers.moveHighlightWithKeyboard(-1);
|
|
69
|
+
};
|
|
70
|
+
var handlePressEnter = function () {
|
|
71
|
+
return autosuggestItemsHandlers.selectHighlightedOptionWithKeyboard();
|
|
72
|
+
};
|
|
73
|
+
var handleCloseDropdown = function () {
|
|
55
74
|
autosuggestItemsHandlers.resetHighlightWithKeyboard();
|
|
56
|
-
onChange && onChange(e);
|
|
57
75
|
};
|
|
58
|
-
var handleKeyDown = useInputKeydownHandler({
|
|
59
|
-
open: open,
|
|
60
|
-
onPressArrowDown: function () {
|
|
61
|
-
autosuggestItemsHandlers.moveHighlightWithKeyboard(1);
|
|
62
|
-
autosuggestDropdownHandlers.openDropdown();
|
|
63
|
-
},
|
|
64
|
-
onPressArrowUp: function () {
|
|
65
|
-
autosuggestItemsHandlers.moveHighlightWithKeyboard(-1);
|
|
66
|
-
autosuggestDropdownHandlers.openDropdown();
|
|
67
|
-
},
|
|
68
|
-
onPressEnter: function () {
|
|
69
|
-
if (!autosuggestItemsHandlers.selectHighlightedOptionWithKeyboard()) {
|
|
70
|
-
autosuggestDropdownHandlers.closeDropdown();
|
|
71
|
-
}
|
|
72
|
-
},
|
|
73
|
-
onPressEsc: function () {
|
|
74
|
-
if (open) {
|
|
75
|
-
autosuggestDropdownHandlers.closeDropdown();
|
|
76
|
-
}
|
|
77
|
-
else if (value) {
|
|
78
|
-
fireNonCancelableEvent(onChange, { value: '' });
|
|
79
|
-
}
|
|
80
|
-
},
|
|
81
|
-
onKeyDown: function (e) {
|
|
82
|
-
fireCancelableEvent(onKeyDown, e.detail);
|
|
83
|
-
}
|
|
84
|
-
});
|
|
85
76
|
var handleRecoveryClick = function () {
|
|
86
77
|
var _a;
|
|
87
78
|
autosuggestLoadMoreHandlers.fireLoadMoreOnRecoveryClick();
|
|
88
|
-
(_a =
|
|
79
|
+
(_a = autosuggestInputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
89
80
|
};
|
|
90
|
-
var formFieldContext = useFormFieldContext(rest);
|
|
91
|
-
var baseProps = getBaseProps(rest);
|
|
92
|
-
var inputRef = useRef(null);
|
|
93
|
-
useForwardFocus(ref, inputRef);
|
|
94
81
|
var selfControlId = useUniqueId('input');
|
|
95
|
-
var controlId = (_a =
|
|
96
|
-
var dropdownId = useUniqueId('dropdown');
|
|
82
|
+
var controlId = (_a = rest.controlId) !== null && _a !== void 0 ? _a : selfControlId;
|
|
97
83
|
var listId = useUniqueId('list');
|
|
98
|
-
// From an a11y point of view we only count the dropdown as 'expanded' if there are items that a user can dropdown into
|
|
99
|
-
var expanded = open && autosuggestItemsState.items.length > 1;
|
|
100
84
|
var highlightedOptionId = autosuggestItemsState.highlightedOption ? generateUniqueId() : undefined;
|
|
101
|
-
var nativeAttributes = {
|
|
102
|
-
placeholder: placeholder,
|
|
103
|
-
onClick: autosuggestDropdownHandlers.openDropdown,
|
|
104
|
-
role: 'combobox',
|
|
105
|
-
'aria-autocomplete': 'list',
|
|
106
|
-
'aria-expanded': expanded,
|
|
107
|
-
'aria-controls': listId,
|
|
108
|
-
// 'aria-owns' needed for safari+vo to announce activedescendant content
|
|
109
|
-
'aria-owns': listId,
|
|
110
|
-
'aria-label': ariaLabel,
|
|
111
|
-
'aria-activedescendant': highlightedOptionId
|
|
112
|
-
};
|
|
113
|
-
var handleInputFocus = function () {
|
|
114
|
-
var openPrevented = fireCancelableEvent(onOpen, null);
|
|
115
|
-
if (!openPrevented) {
|
|
116
|
-
autosuggestDropdownHandlers.openDropdown();
|
|
117
|
-
autosuggestLoadMoreHandlers.fireLoadMoreOnInputFocus();
|
|
118
|
-
}
|
|
119
|
-
};
|
|
120
85
|
var isEmpty = !value && !autosuggestItemsState.items.length;
|
|
121
|
-
var showRecoveryLink = open && statusType === 'error' && props.recoveryText;
|
|
122
86
|
var dropdownStatus = useDropdownStatus(__assign(__assign({}, props), { isEmpty: isEmpty, onRecoveryClick: handleRecoveryClick }));
|
|
123
|
-
return (React.createElement(
|
|
124
|
-
React.createElement(Dropdown, { minWidth: DROPDOWN_WIDTH, stretchWidth: false, trigger: React.createElement(InternalInput, __assign({ type: "search", value: value, onChange: handleInputChange, __onDelayedInput: function (event) { return autosuggestLoadMoreHandlers.fireLoadMoreOnInputChange(event.detail.value); }, onFocus: handleInputFocus, onKeyDown: handleKeyDown, disabled: disabled, ref: inputRef, autoComplete: false, __nativeAttributes: nativeAttributes }, formFieldContext, { controlId: controlId })), onMouseDown: autosuggestDropdownHandlers.handleMouseDown, open: open, dropdownId: dropdownId, footer: dropdownStatus.isSticky ? (React.createElement("div", { ref: autosuggestDropdownRefs.footerRef, className: styles['dropdown-footer'] },
|
|
125
|
-
React.createElement(DropdownFooter, { content: dropdownStatus.content, hasItems: autosuggestItemsState.items.length >= 1 }))) : null, expandToViewport: expandToViewport, hasContent: autosuggestItemsState.items.length >= 1 || dropdownStatus.content !== null, trapFocus: !!showRecoveryLink }, open && (React.createElement(AutosuggestOptionsList, { autosuggestItemsState: autosuggestItemsState, autosuggestItemsHandlers: autosuggestItemsHandlers, highlightedOptionId: highlightedOptionId, highlightText: highlightText, listId: listId, controlId: controlId, enteredTextLabel: enteredTextLabel, handleLoadMore: autosuggestLoadMoreHandlers.fireLoadMoreOnScroll, hasDropdownStatus: dropdownStatus.content !== null, virtualScroll: virtualScroll, listBottom: !dropdownStatus.isSticky ? React.createElement(DropdownFooter, { content: dropdownStatus.content }) : null })))));
|
|
87
|
+
return (React.createElement(AutosuggestInput, __assign({ ref: mergedRef, className: styles.root, value: value, onChange: handleChange, onFocus: handleFocus, onBlur: handleBlur, onKeyDown: handleKeyDown, controlId: controlId, placeholder: placeholder, disabled: disabled, ariaLabel: ariaLabel, expandToViewport: expandToViewport, ariaControls: listId, ariaActivedescendant: highlightedOptionId, dropdownExpanded: autosuggestItemsState.items.length > 1, dropdownContent: React.createElement(AutosuggestOptionsList, { autosuggestItemsState: autosuggestItemsState, autosuggestItemsHandlers: autosuggestItemsHandlers, highlightedOptionId: highlightedOptionId, highlightText: highlightText, listId: listId, controlId: controlId, enteredTextLabel: enteredTextLabel, handleLoadMore: autosuggestLoadMoreHandlers.fireLoadMoreOnScroll, hasDropdownStatus: dropdownStatus.content !== null, virtualScroll: virtualScroll, listBottom: !dropdownStatus.isSticky ? React.createElement(DropdownFooter, { content: dropdownStatus.content }) : null }), dropdownFooter: dropdownStatus.isSticky ? (React.createElement(DropdownFooter, { content: dropdownStatus.content, hasItems: autosuggestItemsState.items.length >= 1 })) : null, dropdownWidth: DROPDOWN_WIDTH, onCloseDropdown: handleCloseDropdown, onDelayedInput: handleDelayedInput, onPressArrowDown: handlePressArrowDown, onPressArrowUp: handlePressArrowUp, onPressEnter: handlePressEnter }, rest)));
|
|
126
88
|
});
|
|
127
89
|
export default PropertyFilterAutosuggest;
|
|
128
90
|
//# sourceMappingURL=property-filter-autosuggest.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"property-filter-autosuggest.js","sourceRoot":"","sources":["../../../src/property-filter/property-filter-autosuggest.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport clsx from 'clsx';\nimport React, { Ref, useRef } from 'react';\n\nimport { useInputKeydownHandler } from '../autosuggest/input-controller';\nimport { useAutosuggestItems } from '../autosuggest/options-controller';\nimport { AutosuggestItem, AutosuggestProps } from '../autosuggest/interfaces';\n\nimport Dropdown from '../internal/components/dropdown';\nimport { useDropdownStatus } from '../internal/components/dropdown-status';\nimport DropdownFooter from '../internal/components/dropdown-footer';\n\nimport { useFormFieldContext } from '../internal/context/form-field-context';\nimport { getBaseProps } from '../internal/base-component';\nimport { generateUniqueId, useUniqueId } from '../internal/hooks/use-unique-id';\nimport useForwardFocus from '../internal/hooks/forward-focus';\nimport { fireNonCancelableEvent, CancelableEventHandler } from '../internal/events';\nimport InternalInput from '../input/internal';\nimport { InputProps } from '../input/interfaces';\nimport styles from '../autosuggest/styles.css.js';\nimport { fireCancelableEvent } from '../internal/events/index';\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component';\nimport AutosuggestOptionsList from '../autosuggest/options-list';\nimport { useAutosuggestDropdown } from '../autosuggest/dropdown-controller';\nimport { useAutosuggestLoadMore } from '../autosuggest/load-more-controller';\nimport { OptionsLoadItemsDetail } from '../internal/components/dropdown/interfaces';\n\nconst DROPDOWN_WIDTH = 300;\n\nexport interface PropertyFilterAutosuggestProps extends AutosuggestProps, InternalBaseComponentProps {\n filterText?: string;\n onOpen?: CancelableEventHandler<null>;\n onOptionClick?: CancelableEventHandler<AutosuggestProps.Option>;\n hideEnteredTextOption?: boolean;\n}\n\nconst PropertyFilterAutosuggest = React.forwardRef(\n (props: PropertyFilterAutosuggestProps, ref: Ref<InputProps.Ref>) => {\n const {\n value,\n onChange,\n onLoadItems,\n options,\n filteringType = 'auto',\n statusType = 'finished',\n placeholder,\n disabled,\n ariaLabel,\n enteredTextLabel,\n onKeyDown,\n virtualScroll,\n expandToViewport,\n filterText,\n onOpen,\n onOptionClick,\n hideEnteredTextOption,\n ...rest\n } = props;\n const highlightText = filterText === undefined ? value : filterText;\n\n const [autosuggestItemsState, autosuggestItemsHandlers] = useAutosuggestItems({\n options: options || [],\n filterValue: value,\n filterText: highlightText,\n filteringType,\n hideEnteredTextLabel: hideEnteredTextOption,\n onSelectItem: (option: AutosuggestItem) => {\n const value = option.value || '';\n fireNonCancelableEvent(onChange, { value });\n const selectedCancelled = fireCancelableEvent(onOptionClick, option);\n if (!selectedCancelled) {\n autosuggestDropdownHandlers.closeDropdown();\n } else {\n autosuggestItemsHandlers.resetHighlightWithKeyboard();\n }\n },\n });\n const [{ open }, autosuggestDropdownHandlers, autosuggestDropdownRefs] = useAutosuggestDropdown({\n onClose: () => autosuggestItemsHandlers.resetHighlightWithKeyboard(),\n });\n const autosuggestLoadMoreHandlers = useAutosuggestLoadMore({\n options,\n statusType,\n onLoadItems: (detail: OptionsLoadItemsDetail) => fireNonCancelableEvent(onLoadItems, detail),\n });\n\n const handleInputChange: InputProps['onChange'] = e => {\n autosuggestDropdownHandlers.openDropdown();\n autosuggestItemsHandlers.resetHighlightWithKeyboard();\n onChange && onChange(e);\n };\n\n const handleKeyDown = useInputKeydownHandler({\n open,\n onPressArrowDown() {\n autosuggestItemsHandlers.moveHighlightWithKeyboard(1);\n autosuggestDropdownHandlers.openDropdown();\n },\n onPressArrowUp() {\n autosuggestItemsHandlers.moveHighlightWithKeyboard(-1);\n autosuggestDropdownHandlers.openDropdown();\n },\n onPressEnter() {\n if (!autosuggestItemsHandlers.selectHighlightedOptionWithKeyboard()) {\n autosuggestDropdownHandlers.closeDropdown();\n }\n },\n onPressEsc() {\n if (open) {\n autosuggestDropdownHandlers.closeDropdown();\n } else if (value) {\n fireNonCancelableEvent(onChange, { value: '' });\n }\n },\n onKeyDown(e) {\n fireCancelableEvent(onKeyDown, e.detail);\n },\n });\n\n const handleRecoveryClick = () => {\n autosuggestLoadMoreHandlers.fireLoadMoreOnRecoveryClick();\n inputRef.current?.focus();\n };\n\n const formFieldContext = useFormFieldContext(rest);\n const baseProps = getBaseProps(rest);\n const inputRef = useRef<HTMLInputElement>(null);\n useForwardFocus(ref, inputRef);\n\n const selfControlId = useUniqueId('input');\n const controlId = formFieldContext.controlId ?? selfControlId;\n const dropdownId = useUniqueId('dropdown');\n const listId = useUniqueId('list');\n\n // From an a11y point of view we only count the dropdown as 'expanded' if there are items that a user can dropdown into\n const expanded = open && autosuggestItemsState.items.length > 1;\n const highlightedOptionId = autosuggestItemsState.highlightedOption ? generateUniqueId() : undefined;\n const nativeAttributes = {\n placeholder,\n onClick: autosuggestDropdownHandlers.openDropdown,\n role: 'combobox',\n 'aria-autocomplete': 'list',\n 'aria-expanded': expanded,\n 'aria-controls': listId,\n // 'aria-owns' needed for safari+vo to announce activedescendant content\n 'aria-owns': listId,\n 'aria-label': ariaLabel,\n 'aria-activedescendant': highlightedOptionId,\n };\n\n const handleInputFocus: InputProps['onFocus'] = () => {\n const openPrevented = fireCancelableEvent(onOpen, null);\n if (!openPrevented) {\n autosuggestDropdownHandlers.openDropdown();\n autosuggestLoadMoreHandlers.fireLoadMoreOnInputFocus();\n }\n };\n\n const isEmpty = !value && !autosuggestItemsState.items.length;\n const showRecoveryLink = open && statusType === 'error' && props.recoveryText;\n const dropdownStatus = useDropdownStatus({ ...props, isEmpty, onRecoveryClick: handleRecoveryClick });\n\n return (\n <div\n {...baseProps}\n className={clsx(styles.root, baseProps.className)}\n onBlur={autosuggestDropdownHandlers.handleBlur}\n >\n <Dropdown\n minWidth={DROPDOWN_WIDTH}\n stretchWidth={false}\n trigger={\n <InternalInput\n type=\"search\"\n value={value}\n onChange={handleInputChange}\n __onDelayedInput={event => autosuggestLoadMoreHandlers.fireLoadMoreOnInputChange(event.detail.value)}\n onFocus={handleInputFocus}\n onKeyDown={handleKeyDown}\n disabled={disabled}\n ref={inputRef}\n autoComplete={false}\n __nativeAttributes={nativeAttributes}\n {...formFieldContext}\n controlId={controlId}\n />\n }\n onMouseDown={autosuggestDropdownHandlers.handleMouseDown}\n open={open}\n dropdownId={dropdownId}\n footer={\n dropdownStatus.isSticky ? (\n <div ref={autosuggestDropdownRefs.footerRef} className={styles['dropdown-footer']}>\n <DropdownFooter content={dropdownStatus.content} hasItems={autosuggestItemsState.items.length >= 1} />\n </div>\n ) : null\n }\n expandToViewport={expandToViewport}\n hasContent={autosuggestItemsState.items.length >= 1 || dropdownStatus.content !== null}\n trapFocus={!!showRecoveryLink}\n >\n {open && (\n <AutosuggestOptionsList\n autosuggestItemsState={autosuggestItemsState}\n autosuggestItemsHandlers={autosuggestItemsHandlers}\n highlightedOptionId={highlightedOptionId}\n highlightText={highlightText}\n listId={listId}\n controlId={controlId}\n enteredTextLabel={enteredTextLabel}\n handleLoadMore={autosuggestLoadMoreHandlers.fireLoadMoreOnScroll}\n hasDropdownStatus={dropdownStatus.content !== null}\n virtualScroll={virtualScroll}\n listBottom={!dropdownStatus.isSticky ? <DropdownFooter content={dropdownStatus.content} /> : null}\n />\n )}\n </Dropdown>\n </div>\n );\n }\n);\n\nexport default PropertyFilterAutosuggest;\n"]}
|
|
1
|
+
{"version":3,"file":"property-filter-autosuggest.js","sourceRoot":"","sources":["../../../src/property-filter/property-filter-autosuggest.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport React, { Ref, useRef } from 'react';\n\nimport { useAutosuggestItems } from '../autosuggest/options-controller';\nimport { AutosuggestItem, AutosuggestProps } from '../autosuggest/interfaces';\n\nimport { useDropdownStatus } from '../internal/components/dropdown-status';\nimport DropdownFooter from '../internal/components/dropdown-footer';\n\nimport { generateUniqueId, useUniqueId } from '../internal/hooks/use-unique-id';\nimport {\n fireNonCancelableEvent,\n CancelableEventHandler,\n NonCancelableCustomEvent,\n BaseKeyDetail,\n} from '../internal/events';\nimport { BaseChangeDetail } from '../input/interfaces';\nimport styles from '../autosuggest/styles.css.js';\nimport { fireCancelableEvent } from '../internal/events/index';\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component';\nimport AutosuggestOptionsList from '../autosuggest/options-list';\nimport { useAutosuggestLoadMore } from '../autosuggest/load-more-controller';\nimport { OptionsLoadItemsDetail } from '../internal/components/dropdown/interfaces';\nimport AutosuggestInput, { AutosuggestInputRef } from '../autosuggest/autosuggest-input';\nimport { useMergeRefs } from '../internal/hooks/use-merge-refs';\n\nconst DROPDOWN_WIDTH = 300;\n\nexport interface PropertyFilterAutosuggestProps extends AutosuggestProps, InternalBaseComponentProps {\n filterText?: string;\n onOptionClick?: CancelableEventHandler<AutosuggestProps.Option>;\n hideEnteredTextOption?: boolean;\n}\n\nconst PropertyFilterAutosuggest = React.forwardRef(\n (props: PropertyFilterAutosuggestProps, ref: Ref<AutosuggestInputRef>) => {\n const {\n value,\n onChange,\n onFocus,\n onBlur,\n onLoadItems,\n options,\n filteringType = 'auto',\n statusType = 'finished',\n placeholder,\n disabled,\n ariaLabel,\n enteredTextLabel,\n onKeyDown,\n virtualScroll,\n expandToViewport,\n filterText,\n onOptionClick,\n hideEnteredTextOption,\n ...rest\n } = props;\n const highlightText = filterText === undefined ? value : filterText;\n\n const autosuggestInputRef = useRef<AutosuggestInputRef>(null);\n const mergedRef = useMergeRefs(autosuggestInputRef, ref);\n\n const [autosuggestItemsState, autosuggestItemsHandlers] = useAutosuggestItems({\n options: options || [],\n filterValue: value,\n filterText: highlightText,\n filteringType,\n hideEnteredTextLabel: hideEnteredTextOption,\n onSelectItem: (option: AutosuggestItem) => {\n const value = option.value || '';\n fireNonCancelableEvent(onChange, { value });\n const selectedCancelled = fireCancelableEvent(onOptionClick, option);\n if (!selectedCancelled) {\n autosuggestInputRef.current?.close();\n } else {\n autosuggestItemsHandlers.resetHighlightWithKeyboard();\n }\n },\n });\n\n const autosuggestLoadMoreHandlers = useAutosuggestLoadMore({\n options,\n statusType,\n onLoadItems: (detail: OptionsLoadItemsDetail) => fireNonCancelableEvent(onLoadItems, detail),\n });\n\n const handleChange = (event: NonCancelableCustomEvent<BaseChangeDetail>) => {\n autosuggestItemsHandlers.resetHighlightWithKeyboard();\n fireNonCancelableEvent(onChange, event.detail);\n };\n\n const handleDelayedInput = (event: NonCancelableCustomEvent<BaseChangeDetail>) => {\n autosuggestLoadMoreHandlers.fireLoadMoreOnInputChange(event.detail.value);\n };\n\n const handleFocus = () => {\n autosuggestLoadMoreHandlers.fireLoadMoreOnInputFocus();\n fireCancelableEvent(onFocus, null);\n };\n\n const handleBlur = () => {\n fireCancelableEvent(onBlur, null);\n };\n\n const handleKeyDown = (e: CustomEvent<BaseKeyDetail>) => {\n fireCancelableEvent(onKeyDown, e.detail);\n };\n\n const handlePressArrowDown = () => {\n autosuggestItemsHandlers.moveHighlightWithKeyboard(1);\n };\n\n const handlePressArrowUp = () => {\n autosuggestItemsHandlers.moveHighlightWithKeyboard(-1);\n };\n\n const handlePressEnter = () => {\n return autosuggestItemsHandlers.selectHighlightedOptionWithKeyboard();\n };\n\n const handleCloseDropdown = () => {\n autosuggestItemsHandlers.resetHighlightWithKeyboard();\n };\n\n const handleRecoveryClick = () => {\n autosuggestLoadMoreHandlers.fireLoadMoreOnRecoveryClick();\n autosuggestInputRef.current?.focus();\n };\n\n const selfControlId = useUniqueId('input');\n const controlId = rest.controlId ?? selfControlId;\n const listId = useUniqueId('list');\n const highlightedOptionId = autosuggestItemsState.highlightedOption ? generateUniqueId() : undefined;\n\n const isEmpty = !value && !autosuggestItemsState.items.length;\n const dropdownStatus = useDropdownStatus({ ...props, isEmpty, onRecoveryClick: handleRecoveryClick });\n\n return (\n <AutosuggestInput\n ref={mergedRef}\n className={styles.root}\n value={value}\n onChange={handleChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n controlId={controlId}\n placeholder={placeholder}\n disabled={disabled}\n ariaLabel={ariaLabel}\n expandToViewport={expandToViewport}\n ariaControls={listId}\n ariaActivedescendant={highlightedOptionId}\n dropdownExpanded={autosuggestItemsState.items.length > 1}\n dropdownContent={\n <AutosuggestOptionsList\n autosuggestItemsState={autosuggestItemsState}\n autosuggestItemsHandlers={autosuggestItemsHandlers}\n highlightedOptionId={highlightedOptionId}\n highlightText={highlightText}\n listId={listId}\n controlId={controlId}\n enteredTextLabel={enteredTextLabel}\n handleLoadMore={autosuggestLoadMoreHandlers.fireLoadMoreOnScroll}\n hasDropdownStatus={dropdownStatus.content !== null}\n virtualScroll={virtualScroll}\n listBottom={!dropdownStatus.isSticky ? <DropdownFooter content={dropdownStatus.content} /> : null}\n />\n }\n dropdownFooter={\n dropdownStatus.isSticky ? (\n <DropdownFooter content={dropdownStatus.content} hasItems={autosuggestItemsState.items.length >= 1} />\n ) : null\n }\n dropdownWidth={DROPDOWN_WIDTH}\n onCloseDropdown={handleCloseDropdown}\n onDelayedInput={handleDelayedInput}\n onPressArrowDown={handlePressArrowDown}\n onPressArrowUp={handlePressArrowUp}\n onPressEnter={handlePressEnter}\n {...rest}\n />\n );\n }\n);\n\nexport default PropertyFilterAutosuggest;\n"]}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
export interface UseAutosuggestDropdownProps {
|
|
3
|
-
readOnly?: boolean;
|
|
4
|
-
onClose?: () => void;
|
|
5
|
-
onBlur?: () => void;
|
|
6
|
-
}
|
|
7
|
-
export interface AutosuggestDropdownState {
|
|
8
|
-
open: boolean;
|
|
9
|
-
}
|
|
10
|
-
export interface AutosuggestDropdownHandlers {
|
|
11
|
-
openDropdown(): void;
|
|
12
|
-
closeDropdown(): void;
|
|
13
|
-
handleBlur: React.FocusEventHandler;
|
|
14
|
-
handleMouseDown: React.MouseEventHandler;
|
|
15
|
-
}
|
|
16
|
-
export interface AutosuggestDropdownRefs {
|
|
17
|
-
footerRef: React.Ref<HTMLDivElement>;
|
|
18
|
-
}
|
|
19
|
-
export declare const useAutosuggestDropdown: ({ readOnly, onClose, onBlur, }: UseAutosuggestDropdownProps) => [AutosuggestDropdownState, AutosuggestDropdownHandlers, AutosuggestDropdownRefs];
|
|
20
|
-
//# sourceMappingURL=dropdown-controller.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dropdown-controller.d.ts","sourceRoot":"","sources":["../../../src/autosuggest/dropdown-controller.ts"],"names":[],"mappings":"AAGA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAGhD,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,2BAA2B;IAC1C,YAAY,IAAI,IAAI,CAAC;IACrB,aAAa,IAAI,IAAI,CAAC;IACtB,UAAU,EAAE,KAAK,CAAC,iBAAiB,CAAC;IACpC,eAAe,EAAE,KAAK,CAAC,iBAAiB,CAAC;CAC1C;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;CACtC;AAED,eAAO,MAAM,sBAAsB,mCAIhC,2BAA2B,KAAG,CAAC,wBAAwB,EAAE,2BAA2B,EAAE,uBAAuB,CA0B/G,CAAC"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
-
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
-
import { useRef, useState } from 'react';
|
|
4
|
-
import { getBlurEventRelatedTarget } from '../internal/events';
|
|
5
|
-
export var useAutosuggestDropdown = function (_a) {
|
|
6
|
-
var readOnly = _a.readOnly, onClose = _a.onClose, onBlur = _a.onBlur;
|
|
7
|
-
var _b = useState(false), open = _b[0], setOpen = _b[1];
|
|
8
|
-
var footerRef = useRef(null);
|
|
9
|
-
var openDropdown = function () { return !readOnly && setOpen(true); };
|
|
10
|
-
var closeDropdown = function () {
|
|
11
|
-
setOpen(false);
|
|
12
|
-
onClose === null || onClose === void 0 ? void 0 : onClose();
|
|
13
|
-
};
|
|
14
|
-
var handleBlur = function (event) {
|
|
15
|
-
var _a;
|
|
16
|
-
var relatedTarget = getBlurEventRelatedTarget(event.nativeEvent);
|
|
17
|
-
if (event.currentTarget.contains(relatedTarget) || ((_a = footerRef.current) === null || _a === void 0 ? void 0 : _a.contains(relatedTarget))) {
|
|
18
|
-
return;
|
|
19
|
-
}
|
|
20
|
-
closeDropdown();
|
|
21
|
-
onBlur === null || onBlur === void 0 ? void 0 : onBlur();
|
|
22
|
-
};
|
|
23
|
-
var handleMouseDown = function (event) {
|
|
24
|
-
// Prevent currently focused element from losing focus.
|
|
25
|
-
event.preventDefault();
|
|
26
|
-
};
|
|
27
|
-
return [{ open: open }, { openDropdown: openDropdown, closeDropdown: closeDropdown, handleBlur: handleBlur, handleMouseDown: handleMouseDown }, { footerRef: footerRef }];
|
|
28
|
-
};
|
|
29
|
-
//# sourceMappingURL=dropdown-controller.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dropdown-controller.js","sourceRoot":"","sources":["../../../src/autosuggest/dropdown-controller.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAEtC,OAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAuB/D,MAAM,CAAC,IAAM,sBAAsB,GAAG,UAAC,EAIT;QAH5B,QAAQ,cAAA,EACR,OAAO,aAAA,EACP,MAAM,YAAA;IAEA,IAAA,KAAkB,QAAQ,CAAC,KAAK,CAAC,EAAhC,IAAI,QAAA,EAAE,OAAO,QAAmB,CAAC;IACxC,IAAM,SAAS,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAE/C,IAAM,YAAY,GAAG,cAAM,OAAA,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,EAA1B,CAA0B,CAAC;IAEtD,IAAM,aAAa,GAAG;QACpB,OAAO,CAAC,KAAK,CAAC,CAAC;QACf,OAAO,aAAP,OAAO,uBAAP,OAAO,EAAI,CAAC;IACd,CAAC,CAAC;IAEF,IAAM,UAAU,GAA4B,UAAA,KAAK;;QAC/C,IAAM,aAAa,GAAG,yBAAyB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACnE,IAAI,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAI,MAAA,SAAS,CAAC,OAAO,0CAAE,QAAQ,CAAC,aAAa,CAAC,CAAA,EAAE;YAC7F,OAAO;SACR;QACD,aAAa,EAAE,CAAC;QAChB,MAAM,aAAN,MAAM,uBAAN,MAAM,EAAI,CAAC;IACb,CAAC,CAAC;IAEF,IAAM,eAAe,GAA4B,UAAA,KAAK;QACpD,uDAAuD;QACvD,KAAK,CAAC,cAAc,EAAE,CAAC;IACzB,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,IAAI,MAAA,EAAE,EAAE,EAAE,YAAY,cAAA,EAAE,aAAa,eAAA,EAAE,UAAU,YAAA,EAAE,eAAe,iBAAA,EAAE,EAAE,EAAE,SAAS,WAAA,EAAE,CAAC,CAAC;AACjG,CAAC,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport React, { useRef, useState } from 'react';\nimport { getBlurEventRelatedTarget } from '../internal/events';\n\nexport interface UseAutosuggestDropdownProps {\n readOnly?: boolean;\n onClose?: () => void;\n onBlur?: () => void;\n}\n\nexport interface AutosuggestDropdownState {\n open: boolean;\n}\n\nexport interface AutosuggestDropdownHandlers {\n openDropdown(): void;\n closeDropdown(): void;\n handleBlur: React.FocusEventHandler;\n handleMouseDown: React.MouseEventHandler;\n}\n\nexport interface AutosuggestDropdownRefs {\n footerRef: React.Ref<HTMLDivElement>;\n}\n\nexport const useAutosuggestDropdown = ({\n readOnly,\n onClose,\n onBlur,\n}: UseAutosuggestDropdownProps): [AutosuggestDropdownState, AutosuggestDropdownHandlers, AutosuggestDropdownRefs] => {\n const [open, setOpen] = useState(false);\n const footerRef = useRef<HTMLDivElement>(null);\n\n const openDropdown = () => !readOnly && setOpen(true);\n\n const closeDropdown = () => {\n setOpen(false);\n onClose?.();\n };\n\n const handleBlur: React.FocusEventHandler = event => {\n const relatedTarget = getBlurEventRelatedTarget(event.nativeEvent);\n if (event.currentTarget.contains(relatedTarget) || footerRef.current?.contains(relatedTarget)) {\n return;\n }\n closeDropdown();\n onBlur?.();\n };\n\n const handleMouseDown: React.MouseEventHandler = event => {\n // Prevent currently focused element from losing focus.\n event.preventDefault();\n };\n\n return [{ open }, { openDropdown, closeDropdown, handleBlur, handleMouseDown }, { footerRef }];\n};\n"]}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { BaseKeyDetail } from '../internal/events';
|
|
2
|
-
interface UseInputKeydownHandlerOptions {
|
|
3
|
-
open: boolean;
|
|
4
|
-
onPressArrowDown(): void;
|
|
5
|
-
onPressArrowUp(): void;
|
|
6
|
-
onPressEnter(): void;
|
|
7
|
-
onPressEsc(): void;
|
|
8
|
-
onKeyDown(event: CustomEvent<BaseKeyDetail>): void;
|
|
9
|
-
}
|
|
10
|
-
export declare const useInputKeydownHandler: ({ open, onPressArrowDown, onPressArrowUp, onPressEnter, onPressEsc, onKeyDown, }: UseInputKeydownHandlerOptions) => (e: CustomEvent<BaseKeyDetail>) => void;
|
|
11
|
-
export {};
|
|
12
|
-
//# sourceMappingURL=input-controller.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"input-controller.d.ts","sourceRoot":"","sources":["../../../src/autosuggest/input-controller.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,UAAU,6BAA6B;IACrC,IAAI,EAAE,OAAO,CAAC;IACd,gBAAgB,IAAI,IAAI,CAAC;IACzB,cAAc,IAAI,IAAI,CAAC;IACvB,YAAY,IAAI,IAAI,CAAC;IACrB,UAAU,IAAI,IAAI,CAAC;IACnB,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;CACpD;AAED,eAAO,MAAM,sBAAsB,qFAOhC,6BAA6B,SACnB,YAAY,aAAa,CAAC,SA+BtC,CAAC"}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
-
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
-
import { KeyCode } from '../internal/keycode';
|
|
4
|
-
export var useInputKeydownHandler = function (_a) {
|
|
5
|
-
var open = _a.open, onPressArrowDown = _a.onPressArrowDown, onPressArrowUp = _a.onPressArrowUp, onPressEnter = _a.onPressEnter, onPressEsc = _a.onPressEsc, onKeyDown = _a.onKeyDown;
|
|
6
|
-
return function (e) {
|
|
7
|
-
switch (e.detail.keyCode) {
|
|
8
|
-
case KeyCode.down: {
|
|
9
|
-
onPressArrowDown();
|
|
10
|
-
e.preventDefault();
|
|
11
|
-
break;
|
|
12
|
-
}
|
|
13
|
-
case KeyCode.up: {
|
|
14
|
-
onPressArrowUp();
|
|
15
|
-
e.preventDefault();
|
|
16
|
-
break;
|
|
17
|
-
}
|
|
18
|
-
case KeyCode.enter: {
|
|
19
|
-
if (open) {
|
|
20
|
-
onPressEnter();
|
|
21
|
-
e.preventDefault();
|
|
22
|
-
}
|
|
23
|
-
onKeyDown(e);
|
|
24
|
-
break;
|
|
25
|
-
}
|
|
26
|
-
case KeyCode.escape: {
|
|
27
|
-
onPressEsc();
|
|
28
|
-
e.preventDefault();
|
|
29
|
-
onKeyDown(e);
|
|
30
|
-
break;
|
|
31
|
-
}
|
|
32
|
-
default: {
|
|
33
|
-
onKeyDown(e);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
};
|
|
38
|
-
//# sourceMappingURL=input-controller.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"input-controller.js","sourceRoot":"","sources":["../../../src/autosuggest/input-controller.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAGtC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAW9C,MAAM,CAAC,IAAM,sBAAsB,GAAG,UAAC,EAOP;QAN9B,IAAI,UAAA,EACJ,gBAAgB,sBAAA,EAChB,cAAc,oBAAA,EACd,YAAY,kBAAA,EACZ,UAAU,gBAAA,EACV,SAAS,eAAA;IAET,OAAO,UAAC,CAA6B;QACnC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE;YACxB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;gBACjB,gBAAgB,EAAE,CAAC;gBACnB,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,MAAM;aACP;YACD,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC;gBACf,cAAc,EAAE,CAAC;gBACjB,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,MAAM;aACP;YACD,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC;gBAClB,IAAI,IAAI,EAAE;oBACR,YAAY,EAAE,CAAC;oBACf,CAAC,CAAC,cAAc,EAAE,CAAC;iBACpB;gBACD,SAAS,CAAC,CAAC,CAAC,CAAC;gBACb,MAAM;aACP;YACD,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;gBACnB,UAAU,EAAE,CAAC;gBACb,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,SAAS,CAAC,CAAC,CAAC,CAAC;gBACb,MAAM;aACP;YACD,OAAO,CAAC,CAAC;gBACP,SAAS,CAAC,CAAC,CAAC,CAAC;aACd;SACF;IACH,CAAC,CAAC;AACJ,CAAC,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { BaseKeyDetail } from '../internal/events';\nimport { KeyCode } from '../internal/keycode';\n\ninterface UseInputKeydownHandlerOptions {\n open: boolean;\n onPressArrowDown(): void;\n onPressArrowUp(): void;\n onPressEnter(): void;\n onPressEsc(): void;\n onKeyDown(event: CustomEvent<BaseKeyDetail>): void;\n}\n\nexport const useInputKeydownHandler = ({\n open,\n onPressArrowDown,\n onPressArrowUp,\n onPressEnter,\n onPressEsc,\n onKeyDown,\n}: UseInputKeydownHandlerOptions) => {\n return (e: CustomEvent<BaseKeyDetail>) => {\n switch (e.detail.keyCode) {\n case KeyCode.down: {\n onPressArrowDown();\n e.preventDefault();\n break;\n }\n case KeyCode.up: {\n onPressArrowUp();\n e.preventDefault();\n break;\n }\n case KeyCode.enter: {\n if (open) {\n onPressEnter();\n e.preventDefault();\n }\n onKeyDown(e);\n break;\n }\n case KeyCode.escape: {\n onPressEsc();\n e.preventDefault();\n onKeyDown(e);\n break;\n }\n default: {\n onKeyDown(e);\n }\n }\n };\n};\n"]}
|