@cloudscape-design/components 3.0.28 → 3.0.31
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/app-layout/visual-refresh/styles.css.js +59 -59
- package/app-layout/visual-refresh/styles.scoped.css +146 -146
- package/app-layout/visual-refresh/styles.selectors.js +59 -59
- package/autosuggest/autosuggest-option.d.ts +1 -0
- package/autosuggest/autosuggest-option.d.ts.map +1 -1
- package/autosuggest/autosuggest-option.js +2 -2
- package/autosuggest/autosuggest-option.js.map +1 -1
- package/autosuggest/controller.d.ts +2 -5
- package/autosuggest/controller.d.ts.map +1 -1
- package/autosuggest/controller.js +5 -49
- package/autosuggest/controller.js.map +1 -1
- package/autosuggest/internal.d.ts.map +1 -1
- package/autosuggest/internal.js +19 -25
- package/autosuggest/internal.js.map +1 -1
- package/autosuggest/options-controller.d.ts +25 -0
- package/autosuggest/options-controller.d.ts.map +1 -0
- package/autosuggest/options-controller.js +64 -0
- package/autosuggest/options-controller.js.map +1 -0
- package/autosuggest/options-list.d.ts +3 -2
- package/autosuggest/options-list.d.ts.map +1 -1
- package/autosuggest/options-list.js +8 -7
- package/autosuggest/options-list.js.map +1 -1
- package/autosuggest/plain-list.d.ts +2 -2
- package/autosuggest/plain-list.d.ts.map +1 -1
- package/autosuggest/plain-list.js +4 -4
- package/autosuggest/plain-list.js.map +1 -1
- package/autosuggest/virtual-list.d.ts +1 -1
- package/autosuggest/virtual-list.d.ts.map +1 -1
- package/autosuggest/virtual-list.js +4 -4
- package/autosuggest/virtual-list.js.map +1 -1
- package/breadcrumb-group/internal.d.ts.map +1 -1
- package/breadcrumb-group/internal.js +4 -4
- package/breadcrumb-group/internal.js.map +1 -1
- package/button-dropdown/category-elements/category-element.d.ts +1 -1
- package/button-dropdown/category-elements/category-element.d.ts.map +1 -1
- package/button-dropdown/category-elements/category-element.js +2 -2
- package/button-dropdown/category-elements/category-element.js.map +1 -1
- package/button-dropdown/category-elements/expandable-category-element.d.ts +1 -1
- package/button-dropdown/category-elements/expandable-category-element.d.ts.map +1 -1
- package/button-dropdown/category-elements/expandable-category-element.js +4 -2
- package/button-dropdown/category-elements/expandable-category-element.js.map +1 -1
- package/button-dropdown/category-elements/mobile-expandable-category-element.d.ts +1 -1
- package/button-dropdown/category-elements/mobile-expandable-category-element.d.ts.map +1 -1
- package/button-dropdown/category-elements/mobile-expandable-category-element.js +4 -2
- package/button-dropdown/category-elements/mobile-expandable-category-element.js.map +1 -1
- package/button-dropdown/category-elements/styles.css.js +13 -12
- package/button-dropdown/category-elements/styles.scoped.css +26 -22
- package/button-dropdown/category-elements/styles.selectors.js +13 -12
- package/button-dropdown/interfaces.d.ts +3 -1
- package/button-dropdown/interfaces.d.ts.map +1 -1
- package/button-dropdown/interfaces.js.map +1 -1
- package/button-dropdown/internal.d.ts.map +1 -1
- package/button-dropdown/internal.js +6 -11
- package/button-dropdown/internal.js.map +1 -1
- package/button-dropdown/item-element/index.d.ts +1 -1
- package/button-dropdown/item-element/index.d.ts.map +1 -1
- package/button-dropdown/item-element/index.js +2 -1
- package/button-dropdown/item-element/index.js.map +1 -1
- package/button-dropdown/item-element/styles.css.js +14 -13
- package/button-dropdown/item-element/styles.scoped.css +21 -17
- package/button-dropdown/item-element/styles.selectors.js +14 -13
- package/button-dropdown/items-list.d.ts +1 -1
- package/button-dropdown/items-list.d.ts.map +1 -1
- package/button-dropdown/items-list.js +4 -4
- package/button-dropdown/items-list.js.map +1 -1
- package/button-dropdown/utils/use-button-dropdown.d.ts +2 -2
- package/button-dropdown/utils/use-button-dropdown.d.ts.map +1 -1
- package/button-dropdown/utils/use-button-dropdown.js +7 -5
- package/button-dropdown/utils/use-button-dropdown.js.map +1 -1
- package/button-dropdown/utils/use-highlighted-menu.d.ts +1 -0
- package/button-dropdown/utils/use-highlighted-menu.d.ts.map +1 -1
- package/button-dropdown/utils/use-highlighted-menu.js +11 -3
- package/button-dropdown/utils/use-highlighted-menu.js.map +1 -1
- package/checkbox/styles.css.js +3 -3
- package/checkbox/styles.scoped.css +6 -6
- package/checkbox/styles.selectors.js +3 -3
- package/date-picker/calendar/index.d.ts.map +1 -1
- package/date-picker/calendar/index.js +2 -1
- package/date-picker/calendar/index.js.map +1 -1
- package/date-picker/calendar/utils/memoized-date.d.ts +2 -0
- package/date-picker/calendar/utils/memoized-date.d.ts.map +1 -0
- package/date-picker/calendar/utils/memoized-date.js +13 -0
- package/date-picker/calendar/utils/memoized-date.js.map +1 -0
- package/date-picker/embedded.js +1 -1
- package/date-picker/embedded.js.map +1 -1
- package/date-picker/index.js +1 -1
- package/date-picker/index.js.map +1 -1
- package/date-picker/use-date-picker.d.ts.map +1 -1
- package/date-picker/use-date-picker.js +1 -1
- package/date-picker/use-date-picker.js.map +1 -1
- package/date-range-picker/calendar/grids/day/index.js +1 -1
- package/date-range-picker/calendar/grids/day/index.js.map +1 -1
- package/date-range-picker/calendar/index.d.ts.map +1 -1
- package/date-range-picker/calendar/index.js +3 -3
- package/date-range-picker/calendar/index.js.map +1 -1
- package/date-range-picker/dropdown.d.ts +1 -0
- package/date-range-picker/dropdown.d.ts.map +1 -1
- package/date-range-picker/dropdown.js +18 -30
- package/date-range-picker/dropdown.js.map +1 -1
- package/date-range-picker/embedded.d.ts +7 -0
- package/date-range-picker/embedded.d.ts.map +1 -0
- package/date-range-picker/embedded.js +46 -0
- package/date-range-picker/embedded.js.map +1 -0
- package/date-range-picker/index.d.ts.map +1 -1
- package/date-range-picker/index.js +5 -18
- package/date-range-picker/index.js.map +1 -1
- package/date-range-picker/interfaces.d.ts +46 -44
- package/date-range-picker/interfaces.d.ts.map +1 -1
- package/date-range-picker/interfaces.js.map +1 -1
- package/date-range-picker/time-offset.d.ts +0 -7
- package/date-range-picker/time-offset.d.ts.map +1 -1
- package/date-range-picker/time-offset.js +4 -60
- package/date-range-picker/time-offset.js.map +1 -1
- package/date-range-picker/use-date-range-picker.d.ts +29 -0
- package/date-range-picker/use-date-range-picker.d.ts.map +1 -0
- package/date-range-picker/use-date-range-picker.js +58 -0
- package/date-range-picker/use-date-range-picker.js.map +1 -0
- package/icon/icons.js +1 -1
- package/icon/interfaces.d.ts +1 -1
- package/icon/interfaces.d.ts.map +1 -1
- package/icon/interfaces.js.map +1 -1
- package/input/styles.css.js +13 -13
- package/input/styles.scoped.css +35 -37
- package/input/styles.selectors.js +13 -13
- package/internal/components/abstract-switch/index.d.ts.map +1 -1
- package/internal/components/abstract-switch/index.js +5 -5
- package/internal/components/abstract-switch/index.js.map +1 -1
- package/internal/components/abstract-switch/styles.css.js +11 -11
- package/internal/components/abstract-switch/styles.scoped.css +20 -13
- package/internal/components/abstract-switch/styles.selectors.js +11 -11
- package/internal/components/date-input/index.d.ts.map +1 -1
- package/internal/components/date-input/index.js +3 -2
- package/internal/components/date-input/index.js.map +1 -1
- package/internal/components/masked-input/utils/mask-format.d.ts.map +1 -1
- package/internal/components/masked-input/utils/mask-format.js +2 -1
- package/internal/components/masked-input/utils/mask-format.js.map +1 -1
- package/internal/components/masked-input/utils/strings.d.ts +0 -1
- package/internal/components/masked-input/utils/strings.d.ts.map +1 -1
- package/internal/components/masked-input/utils/strings.js +0 -6
- package/internal/components/masked-input/utils/strings.js.map +1 -1
- package/internal/components/options-list/utils/use-highlight-option.d.ts +7 -2
- package/internal/components/options-list/utils/use-highlight-option.d.ts.map +1 -1
- package/internal/components/options-list/utils/use-highlight-option.js +10 -3
- package/internal/components/options-list/utils/use-highlight-option.js.map +1 -1
- package/internal/components/selectable-item/index.d.ts +1 -1
- package/internal/components/selectable-item/index.d.ts.map +1 -1
- package/internal/components/selectable-item/index.js +2 -2
- package/internal/components/selectable-item/index.js.map +1 -1
- package/internal/components/selectable-item/styles.css.js +16 -16
- package/internal/components/selectable-item/styles.scoped.css +29 -30
- package/internal/components/selectable-item/styles.selectors.js +16 -16
- package/internal/environment.js +1 -1
- package/internal/utils/date-time/display-format.d.ts +9 -0
- package/internal/utils/date-time/display-format.d.ts.map +1 -0
- package/internal/utils/date-time/display-format.js +15 -0
- package/internal/utils/date-time/display-format.js.map +1 -0
- package/internal/utils/date-time/format-date.d.ts +7 -0
- package/internal/utils/date-time/format-date.d.ts.map +1 -0
- package/internal/utils/date-time/format-date.js +15 -0
- package/internal/utils/date-time/format-date.js.map +1 -0
- package/internal/utils/date-time/format-time.d.ts +5 -0
- package/internal/utils/date-time/format-time.d.ts.map +1 -0
- package/internal/utils/date-time/format-time.js +13 -0
- package/internal/utils/date-time/format-time.js.map +1 -0
- package/internal/utils/date-time/format-timezone-offset.d.ts +2 -0
- package/internal/utils/date-time/format-timezone-offset.d.ts.map +1 -0
- package/internal/utils/date-time/format-timezone-offset.js +11 -0
- package/internal/utils/date-time/format-timezone-offset.js.map +1 -0
- package/internal/utils/date-time/get-browser-timezone-offset.d.ts +7 -0
- package/internal/utils/date-time/get-browser-timezone-offset.d.ts.map +1 -0
- package/internal/utils/date-time/get-browser-timezone-offset.js +11 -0
- package/internal/utils/date-time/get-browser-timezone-offset.js.map +1 -0
- package/internal/utils/date-time/index.d.ts +11 -0
- package/internal/utils/date-time/index.d.ts.map +1 -0
- package/internal/utils/date-time/index.js +13 -0
- package/internal/utils/date-time/index.js.map +1 -0
- package/internal/utils/date-time/is-iso-date-only.d.ts +5 -0
- package/internal/utils/date-time/is-iso-date-only.d.ts.map +1 -0
- package/internal/utils/date-time/is-iso-date-only.js +10 -0
- package/internal/utils/date-time/is-iso-date-only.js.map +1 -0
- package/internal/utils/date-time/join-date-time.d.ts +2 -0
- package/internal/utils/date-time/join-date-time.d.ts.map +1 -0
- package/internal/utils/date-time/join-date-time.js +6 -0
- package/internal/utils/date-time/join-date-time.js.map +1 -0
- package/internal/utils/date-time/parse-date.d.ts +8 -0
- package/internal/utils/date-time/parse-date.d.ts.map +1 -0
- package/internal/utils/date-time/parse-date.js +16 -0
- package/internal/utils/date-time/parse-date.js.map +1 -0
- package/internal/utils/date-time/parse-timezone-offset.d.ts +5 -0
- package/internal/utils/date-time/parse-timezone-offset.d.ts.map +1 -0
- package/internal/utils/date-time/parse-timezone-offset.js +20 -0
- package/internal/utils/date-time/parse-timezone-offset.js.map +1 -0
- package/internal/utils/date-time/shift-timezone-offset.d.ts +12 -0
- package/internal/utils/date-time/shift-timezone-offset.d.ts.map +1 -0
- package/internal/utils/date-time/shift-timezone-offset.js +27 -0
- package/internal/utils/date-time/shift-timezone-offset.js.map +1 -0
- package/internal/utils/strings/index.d.ts +3 -0
- package/internal/utils/strings/index.d.ts.map +1 -0
- package/internal/utils/strings/index.js +5 -0
- package/internal/utils/strings/index.js.map +1 -0
- package/internal/utils/strings/join-strings.d.ts +5 -0
- package/internal/utils/strings/join-strings.d.ts.map +1 -0
- package/internal/utils/{strings.js → strings/join-strings.js} +7 -6
- package/internal/utils/strings/join-strings.js.map +1 -0
- package/internal/utils/strings/pad-left-zeros.d.ts +5 -0
- package/internal/utils/strings/pad-left-zeros.d.ts.map +1 -0
- package/internal/utils/strings/pad-left-zeros.js +12 -0
- package/internal/utils/strings/pad-left-zeros.js.map +1 -0
- package/multiselect/internal.d.ts.map +1 -1
- package/multiselect/internal.js +2 -2
- package/multiselect/internal.js.map +1 -1
- package/package.json +1 -1
- package/popover/styles.css.js +48 -48
- package/popover/styles.scoped.css +65 -60
- package/popover/styles.selectors.js +48 -48
- package/radio-group/styles.css.js +9 -9
- package/radio-group/styles.scoped.css +16 -16
- package/radio-group/styles.selectors.js +9 -9
- package/select/internal.d.ts.map +1 -1
- package/select/internal.js +2 -2
- package/select/internal.js.map +1 -1
- package/select/parts/item.d.ts +1 -1
- package/select/parts/item.d.ts.map +1 -1
- package/select/parts/item.js +6 -3
- package/select/parts/item.js.map +1 -1
- package/select/parts/multiselect-item.d.ts +1 -1
- package/select/parts/multiselect-item.d.ts.map +1 -1
- package/select/parts/multiselect-item.js +2 -2
- package/select/parts/multiselect-item.js.map +1 -1
- package/select/parts/plain-list.d.ts +1 -1
- package/select/parts/plain-list.d.ts.map +1 -1
- package/select/parts/plain-list.js +4 -4
- package/select/parts/plain-list.js.map +1 -1
- package/select/parts/styles.css.js +8 -7
- package/select/parts/styles.scoped.css +12 -7
- package/select/parts/styles.selectors.js +8 -7
- package/select/parts/virtual-list.js +4 -4
- package/select/parts/virtual-list.js.map +1 -1
- package/select/utils/get-item-props.d.ts +1 -2
- package/select/utils/get-item-props.d.ts.map +1 -1
- package/select/utils/get-item-props.js +3 -3
- package/select/utils/get-item-props.js.map +1 -1
- package/select/utils/render-options.d.ts +2 -2
- package/select/utils/render-options.d.ts.map +1 -1
- package/select/utils/render-options.js +2 -3
- package/select/utils/render-options.js.map +1 -1
- package/select/utils/use-select.d.ts +1 -0
- package/select/utils/use-select.d.ts.map +1 -1
- package/select/utils/use-select.js +2 -1
- package/select/utils/use-select.js.map +1 -1
- package/split-panel/index.d.ts.map +1 -1
- package/split-panel/index.js +2 -2
- package/split-panel/index.js.map +1 -1
- package/table/styles.css.js +32 -32
- package/table/styles.scoped.css +40 -43
- package/table/styles.selectors.js +32 -32
- package/tabs/styles.css.js +21 -21
- package/tabs/styles.scoped.css +40 -43
- package/tabs/styles.selectors.js +21 -21
- package/textarea/styles.css.js +4 -4
- package/textarea/styles.scoped.css +13 -14
- package/textarea/styles.selectors.js +4 -4
- package/toggle/internal.d.ts.map +1 -1
- package/toggle/internal.js +3 -1
- package/toggle/internal.js.map +1 -1
- package/toggle/styles.css.js +8 -8
- package/toggle/styles.scoped.css +15 -14
- package/toggle/styles.selectors.js +8 -8
- package/date-picker/calendar/utils/date.d.ts +0 -10
- package/date-picker/calendar/utils/date.d.ts.map +0 -1
- package/date-picker/calendar/utils/date.js +0 -50
- package/date-picker/calendar/utils/date.js.map +0 -1
- package/internal/components/date-input/utils/date.d.ts +0 -5
- package/internal/components/date-input/utils/date.d.ts.map +0 -1
- package/internal/components/date-input/utils/date.js +0 -11
- package/internal/components/date-input/utils/date.js.map +0 -1
- package/internal/utils/strings.d.ts +0 -2
- package/internal/utils/strings.d.ts.map +0 -1
- package/internal/utils/strings.js.map +0 -1
|
@@ -2,64 +2,64 @@
|
|
|
2
2
|
// es-module interop with Babel and Typescript
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
module.exports.default = {
|
|
5
|
-
"appbar": "
|
|
6
|
-
"appbar-nav": "awsui_appbar-
|
|
7
|
-
"breadcrumbs": "
|
|
8
|
-
"appbar-tools": "awsui_appbar-
|
|
9
|
-
"has-breadcrumbs": "awsui_has-
|
|
10
|
-
"has-notifications-content": "awsui_has-notifications-
|
|
11
|
-
"has-header": "awsui_has-
|
|
12
|
-
"has-dynamic-overlap-height": "awsui_has-dynamic-overlap-
|
|
13
|
-
"content-type-wizard": "awsui_content-type-
|
|
14
|
-
"content-type-cards": "awsui_content-type-
|
|
15
|
-
"content-type-table": "awsui_content-type-
|
|
16
|
-
"background": "
|
|
17
|
-
"notifications-appbar-header": "awsui_notifications-appbar-
|
|
18
|
-
"sticky-notifications": "awsui_sticky-
|
|
19
|
-
"overlap": "
|
|
20
|
-
"content": "
|
|
21
|
-
"layout": "
|
|
22
|
-
"has-max-content-width": "awsui_has-max-content-
|
|
23
|
-
"is-overlap-disabled": "awsui_is-overlap-
|
|
24
|
-
"disable-body-scroll": "awsui_disable-body-
|
|
25
|
-
"has-sticky-notifications": "awsui_has-sticky-
|
|
26
|
-
"has-split-panel": "awsui_has-split-
|
|
27
|
-
"split-panel-position-bottom": "awsui_split-panel-position-
|
|
28
|
-
"has-content-gap-left": "awsui_has-content-gap-
|
|
29
|
-
"has-content-gap-right": "awsui_has-content-gap-
|
|
30
|
-
"block-body-scroll": "awsui_block-body-
|
|
31
|
-
"container": "
|
|
32
|
-
"disable-content-paddings": "awsui_disable-content-
|
|
33
|
-
"is-navigation-open": "awsui_is-navigation-
|
|
34
|
-
"is-tools-open": "awsui_is-tools-
|
|
35
|
-
"is-split-panel-open": "awsui_is-split-panel-
|
|
36
|
-
"split-panel-position-side": "awsui_split-panel-position-
|
|
37
|
-
"content-type-default": "awsui_content-type-
|
|
38
|
-
"content-type-form": "awsui_content-type-
|
|
39
|
-
"unfocusable": "
|
|
40
|
-
"navigation-container": "awsui_navigation-
|
|
41
|
-
"show-navigation": "awsui_show-
|
|
42
|
-
"animating": "
|
|
43
|
-
"showButtons": "
|
|
44
|
-
"navigation": "
|
|
45
|
-
"openNavigation": "
|
|
46
|
-
"animated-content": "awsui_animated-
|
|
47
|
-
"hide-navigation": "awsui_hide-
|
|
48
|
-
"notifications": "
|
|
49
|
-
"split-panel-bottom": "awsui_split-panel-
|
|
50
|
-
"position-bottom": "awsui_position-
|
|
51
|
-
"openSplitPanelBottom": "
|
|
52
|
-
"split-panel-side": "awsui_split-panel-
|
|
53
|
-
"position-side": "awsui_position-
|
|
54
|
-
"openSplitPanelSide": "
|
|
55
|
-
"tools-container": "awsui_tools-
|
|
56
|
-
"tools": "
|
|
57
|
-
"openTools": "
|
|
58
|
-
"has-tools-form-persistence": "awsui_has-tools-form-
|
|
59
|
-
"hide-tools": "awsui_hide-
|
|
60
|
-
"show-tools": "awsui_show-
|
|
61
|
-
"has-tools-form": "awsui_has-tools-
|
|
62
|
-
"trigger": "
|
|
63
|
-
"selected": "
|
|
5
|
+
"appbar": "awsui_appbar_hyvsj_zgnc1_93",
|
|
6
|
+
"appbar-nav": "awsui_appbar-nav_hyvsj_zgnc1_117",
|
|
7
|
+
"breadcrumbs": "awsui_breadcrumbs_hyvsj_zgnc1_121",
|
|
8
|
+
"appbar-tools": "awsui_appbar-tools_hyvsj_zgnc1_125",
|
|
9
|
+
"has-breadcrumbs": "awsui_has-breadcrumbs_hyvsj_zgnc1_160",
|
|
10
|
+
"has-notifications-content": "awsui_has-notifications-content_hyvsj_zgnc1_167",
|
|
11
|
+
"has-header": "awsui_has-header_hyvsj_zgnc1_173",
|
|
12
|
+
"has-dynamic-overlap-height": "awsui_has-dynamic-overlap-height_hyvsj_zgnc1_173",
|
|
13
|
+
"content-type-wizard": "awsui_content-type-wizard_hyvsj_zgnc1_174",
|
|
14
|
+
"content-type-cards": "awsui_content-type-cards_hyvsj_zgnc1_177",
|
|
15
|
+
"content-type-table": "awsui_content-type-table_hyvsj_zgnc1_178",
|
|
16
|
+
"background": "awsui_background_hyvsj_zgnc1_213",
|
|
17
|
+
"notifications-appbar-header": "awsui_notifications-appbar-header_hyvsj_zgnc1_216",
|
|
18
|
+
"sticky-notifications": "awsui_sticky-notifications_hyvsj_zgnc1_228",
|
|
19
|
+
"overlap": "awsui_overlap_hyvsj_zgnc1_234",
|
|
20
|
+
"content": "awsui_content_hyvsj_zgnc1_174",
|
|
21
|
+
"layout": "awsui_layout_hyvsj_zgnc1_322",
|
|
22
|
+
"has-max-content-width": "awsui_has-max-content-width_hyvsj_zgnc1_404",
|
|
23
|
+
"is-overlap-disabled": "awsui_is-overlap-disabled_hyvsj_zgnc1_431",
|
|
24
|
+
"disable-body-scroll": "awsui_disable-body-scroll_hyvsj_zgnc1_434",
|
|
25
|
+
"has-sticky-notifications": "awsui_has-sticky-notifications_hyvsj_zgnc1_438",
|
|
26
|
+
"has-split-panel": "awsui_has-split-panel_hyvsj_zgnc1_452",
|
|
27
|
+
"split-panel-position-bottom": "awsui_split-panel-position-bottom_hyvsj_zgnc1_452",
|
|
28
|
+
"has-content-gap-left": "awsui_has-content-gap-left_hyvsj_zgnc1_464",
|
|
29
|
+
"has-content-gap-right": "awsui_has-content-gap-right_hyvsj_zgnc1_467",
|
|
30
|
+
"block-body-scroll": "awsui_block-body-scroll_hyvsj_zgnc1_482",
|
|
31
|
+
"container": "awsui_container_hyvsj_zgnc1_490",
|
|
32
|
+
"disable-content-paddings": "awsui_disable-content-paddings_hyvsj_zgnc1_507",
|
|
33
|
+
"is-navigation-open": "awsui_is-navigation-open_hyvsj_zgnc1_512",
|
|
34
|
+
"is-tools-open": "awsui_is-tools-open_hyvsj_zgnc1_515",
|
|
35
|
+
"is-split-panel-open": "awsui_is-split-panel-open_hyvsj_zgnc1_515",
|
|
36
|
+
"split-panel-position-side": "awsui_split-panel-position-side_hyvsj_zgnc1_515",
|
|
37
|
+
"content-type-default": "awsui_content-type-default_hyvsj_zgnc1_535",
|
|
38
|
+
"content-type-form": "awsui_content-type-form_hyvsj_zgnc1_535",
|
|
39
|
+
"unfocusable": "awsui_unfocusable_hyvsj_zgnc1_576",
|
|
40
|
+
"navigation-container": "awsui_navigation-container_hyvsj_zgnc1_584",
|
|
41
|
+
"show-navigation": "awsui_show-navigation_hyvsj_zgnc1_608",
|
|
42
|
+
"animating": "awsui_animating_hyvsj_zgnc1_630",
|
|
43
|
+
"showButtons": "awsui_showButtons_hyvsj_zgnc1_1",
|
|
44
|
+
"navigation": "awsui_navigation_hyvsj_zgnc1_584",
|
|
45
|
+
"openNavigation": "awsui_openNavigation_hyvsj_zgnc1_1",
|
|
46
|
+
"animated-content": "awsui_animated-content_hyvsj_zgnc1_690",
|
|
47
|
+
"hide-navigation": "awsui_hide-navigation_hyvsj_zgnc1_699",
|
|
48
|
+
"notifications": "awsui_notifications_hyvsj_zgnc1_216",
|
|
49
|
+
"split-panel-bottom": "awsui_split-panel-bottom_hyvsj_zgnc1_766",
|
|
50
|
+
"position-bottom": "awsui_position-bottom_hyvsj_zgnc1_801",
|
|
51
|
+
"openSplitPanelBottom": "awsui_openSplitPanelBottom_hyvsj_zgnc1_1",
|
|
52
|
+
"split-panel-side": "awsui_split-panel-side_hyvsj_zgnc1_830",
|
|
53
|
+
"position-side": "awsui_position-side_hyvsj_zgnc1_857",
|
|
54
|
+
"openSplitPanelSide": "awsui_openSplitPanelSide_hyvsj_zgnc1_1",
|
|
55
|
+
"tools-container": "awsui_tools-container_hyvsj_zgnc1_894",
|
|
56
|
+
"tools": "awsui_tools_hyvsj_zgnc1_894",
|
|
57
|
+
"openTools": "awsui_openTools_hyvsj_zgnc1_1",
|
|
58
|
+
"has-tools-form-persistence": "awsui_has-tools-form-persistence_hyvsj_zgnc1_977",
|
|
59
|
+
"hide-tools": "awsui_hide-tools_hyvsj_zgnc1_987",
|
|
60
|
+
"show-tools": "awsui_show-tools_hyvsj_zgnc1_999",
|
|
61
|
+
"has-tools-form": "awsui_has-tools-form_hyvsj_zgnc1_977",
|
|
62
|
+
"trigger": "awsui_trigger_hyvsj_zgnc1_1056",
|
|
63
|
+
"selected": "awsui_selected_hyvsj_zgnc1_1094"
|
|
64
64
|
};
|
|
65
65
|
|
|
@@ -6,6 +6,7 @@ export interface AutosuggestOptionProps extends BaseComponentProps {
|
|
|
6
6
|
highlightText: string;
|
|
7
7
|
option: AutosuggestItem;
|
|
8
8
|
highlighted: boolean;
|
|
9
|
+
highlightedType: 'mouse' | 'keyboard';
|
|
9
10
|
enteredTextLabel: (value: string) => string;
|
|
10
11
|
virtualPosition?: number;
|
|
11
12
|
padBottom?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autosuggest-option.d.ts","sourceRoot":"","sources":["../../../src/autosuggest/autosuggest-option.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAAE,kBAAkB,EAAgB,MAAM,4BAA4B,CAAC;AAI9E,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,WAAW,sBAAuB,SAAQ,kBAAkB;IAChE,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACvC,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,eAAe,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC5C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;;
|
|
1
|
+
{"version":3,"file":"autosuggest-option.d.ts","sourceRoot":"","sources":["../../../src/autosuggest/autosuggest-option.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAAE,kBAAkB,EAAgB,MAAM,4BAA4B,CAAC;AAI9E,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,WAAW,sBAAuB,SAAQ,kBAAkB;IAChE,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACvC,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,eAAe,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,OAAO,GAAG,UAAU,CAAC;IACtC,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC5C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;;AAqED,wBAA+D"}
|
|
@@ -8,7 +8,7 @@ import { getBaseProps } from '../internal/base-component';
|
|
|
8
8
|
import { getTestOptionIndexes } from '../internal/components/options-list/utils/test-indexes';
|
|
9
9
|
import styles from './styles.css.js';
|
|
10
10
|
var AutosuggestOption = function (_a, ref) {
|
|
11
|
-
var _b = _a.nativeAttributes, nativeAttributes = _b === void 0 ? {} : _b, highlightText = _a.highlightText, option = _a.option, highlighted = _a.highlighted, enteredTextLabel = _a.enteredTextLabel, virtualPosition = _a.virtualPosition, padBottom = _a.padBottom, screenReaderContent = _a.screenReaderContent, ariaSetsize = _a.ariaSetsize, ariaPosinset = _a.ariaPosinset, rest = __rest(_a, ["nativeAttributes", "highlightText", "option", "highlighted", "enteredTextLabel", "virtualPosition", "padBottom", "screenReaderContent", "ariaSetsize", "ariaPosinset"]);
|
|
11
|
+
var _b = _a.nativeAttributes, nativeAttributes = _b === void 0 ? {} : _b, highlightText = _a.highlightText, option = _a.option, highlighted = _a.highlighted, highlightedType = _a.highlightedType, enteredTextLabel = _a.enteredTextLabel, virtualPosition = _a.virtualPosition, padBottom = _a.padBottom, screenReaderContent = _a.screenReaderContent, ariaSetsize = _a.ariaSetsize, ariaPosinset = _a.ariaPosinset, rest = __rest(_a, ["nativeAttributes", "highlightText", "option", "highlighted", "highlightedType", "enteredTextLabel", "virtualPosition", "padBottom", "screenReaderContent", "ariaSetsize", "ariaPosinset"]);
|
|
12
12
|
var baseProps = getBaseProps(rest);
|
|
13
13
|
var useEntered = 'type' in option && option.type === 'use-entered';
|
|
14
14
|
var isParent = 'type' in option && option.type === 'parent';
|
|
@@ -29,7 +29,7 @@ var AutosuggestOption = function (_a, ref) {
|
|
|
29
29
|
optionContent = (React.createElement("div", __assign({}, a11yProperties),
|
|
30
30
|
React.createElement(OptionComponent, { option: option, highlightText: highlightText })));
|
|
31
31
|
}
|
|
32
|
-
return (React.createElement(SelectableItem, __assign({}, baseProps, { className: styles.option, ariaSelected: highlighted || undefined, highlighted: highlighted, disabled: option.disabled, hasBackground: useEntered, isParent: isParent, isChild: isChild, virtualPosition: virtualPosition, "data-test-index": throughIndex, "data-in-group-index": inGroupIndex, "data-group-index": groupIndex, ref: ref, padBottom: padBottom, screenReaderContent: screenReaderContent, ariaSetsize: ariaSetsize, ariaPosinset: ariaPosinset }), optionContent));
|
|
32
|
+
return (React.createElement(SelectableItem, __assign({}, baseProps, { className: styles.option, ariaSelected: highlighted || undefined, highlighted: highlighted, disabled: option.disabled, hasBackground: useEntered, isParent: isParent, isChild: isChild, virtualPosition: virtualPosition, "data-test-index": throughIndex, "data-in-group-index": inGroupIndex, "data-group-index": groupIndex, ref: ref, padBottom: padBottom, screenReaderContent: screenReaderContent, ariaSetsize: ariaSetsize, ariaPosinset: ariaPosinset, highlightedType: highlightedType }), optionContent));
|
|
33
33
|
};
|
|
34
34
|
export default React.memo(React.forwardRef(AutosuggestOption));
|
|
35
35
|
//# sourceMappingURL=autosuggest-option.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autosuggest-option.js","sourceRoot":"","sources":["../../../src/autosuggest/autosuggest-option.tsx"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,eAAe,MAAM,+BAA+B,CAAC;AAC5D,OAAO,cAAc,MAAM,wCAAwC,CAAC;AACpE,OAAO,EAAsB,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,wDAAwD,CAAC;AAE9F,OAAO,MAAM,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"autosuggest-option.js","sourceRoot":"","sources":["../../../src/autosuggest/autosuggest-option.tsx"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,eAAe,MAAM,+BAA+B,CAAC;AAC5D,OAAO,cAAc,MAAM,wCAAwC,CAAC;AACpE,OAAO,EAAsB,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,wDAAwD,CAAC;AAE9F,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAiBrC,IAAM,iBAAiB,GAAG,UACxB,EAayB,EACzB,GAA8B;IAb5B,IAAA,wBAAqB,EAArB,gBAAgB,mBAAG,EAAE,KAAA,EACrB,aAAa,mBAAA,EACb,MAAM,YAAA,EACN,WAAW,iBAAA,EACX,eAAe,qBAAA,EACf,gBAAgB,sBAAA,EAChB,eAAe,qBAAA,EACf,SAAS,eAAA,EACT,mBAAmB,yBAAA,EACnB,WAAW,iBAAA,EACX,YAAY,kBAAA,EACT,IAAI,cAZT,2LAaC,CADQ;IAIT,IAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACrC,IAAM,UAAU,GAAG,MAAM,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,CAAC;IACrE,IAAM,QAAQ,GAAG,MAAM,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC;IAC9D,IAAM,OAAO,GAAG,MAAM,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC;IACtD,IAAA,KAA6C,oBAAoB,CAAC,MAAM,CAAC,IAAI,EAAE,EAA7E,YAAY,kBAAA,EAAE,YAAY,kBAAA,EAAE,UAAU,gBAAuC,CAAC;IAEtF,IAAI,aAAa,CAAC;IAClB,IAAI,UAAU,EAAE;QACd,aAAa,GAAG,gBAAgB,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;KACtD;SAAM,IAAI,QAAQ,EAAE;QACnB,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC;KAC9B;SAAM;QACL,IAAM,cAAc,GAA+C,EAAE,CAAC;QACtE,IAAI,gBAAgB,CAAC,YAAY,CAAC,EAAE;YAClC,cAAc,CAAC,YAAY,CAAC,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;SAC/D;QAED,aAAa,GAAG,CACd,wCAAS,cAAc;YACrB,oBAAC,eAAe,IAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,GAAI,CAC7D,CACP,CAAC;KACH;IAED,OAAO,CACL,oBAAC,cAAc,eACT,SAAS,IACb,SAAS,EAAE,MAAM,CAAC,MAAM,EACxB,YAAY,EAAE,WAAW,IAAI,SAAS,EACtC,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,MAAM,CAAC,QAAQ,EACzB,aAAa,EAAE,UAAU,EACzB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,EAChB,eAAe,EAAE,eAAe,qBACf,YAAY,yBACR,YAAY,sBACf,UAAU,EAC5B,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS,EACpB,mBAAmB,EAAE,mBAAmB,EACxC,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,eAAe,KAE/B,aAAa,CACC,CAClB,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React from 'react';\n\nimport OptionComponent from '../internal/components/option';\nimport SelectableItem from '../internal/components/selectable-item';\nimport { BaseComponentProps, getBaseProps } from '../internal/base-component';\nimport { getTestOptionIndexes } from '../internal/components/options-list/utils/test-indexes';\n\nimport styles from './styles.css.js';\nimport { AutosuggestItem } from './interfaces';\n\nexport interface AutosuggestOptionProps extends BaseComponentProps {\n nativeAttributes?: Record<string, any>;\n highlightText: string;\n option: AutosuggestItem;\n highlighted: boolean;\n highlightedType: 'mouse' | 'keyboard';\n enteredTextLabel: (value: string) => string;\n virtualPosition?: number;\n padBottom?: boolean;\n screenReaderContent?: string;\n ariaSetsize?: number;\n ariaPosinset?: number;\n}\n\nconst AutosuggestOption = (\n {\n nativeAttributes = {},\n highlightText,\n option,\n highlighted,\n highlightedType,\n enteredTextLabel,\n virtualPosition,\n padBottom,\n screenReaderContent,\n ariaSetsize,\n ariaPosinset,\n ...rest\n }: AutosuggestOptionProps,\n ref: React.Ref<HTMLDivElement>\n) => {\n const baseProps = getBaseProps(rest);\n const useEntered = 'type' in option && option.type === 'use-entered';\n const isParent = 'type' in option && option.type === 'parent';\n const isChild = 'type' in option && option.type === 'child';\n const { throughIndex, inGroupIndex, groupIndex } = getTestOptionIndexes(option) || {};\n\n let optionContent;\n if (useEntered) {\n optionContent = enteredTextLabel(option.value || '');\n } else if (isParent) {\n optionContent = option.label;\n } else {\n const a11yProperties: AutosuggestOptionProps['nativeAttributes'] = {};\n if (nativeAttributes['aria-label']) {\n a11yProperties['aria-label'] = nativeAttributes['aria-label'];\n }\n\n optionContent = (\n <div {...a11yProperties}>\n <OptionComponent option={option} highlightText={highlightText} />\n </div>\n );\n }\n\n return (\n <SelectableItem\n {...baseProps}\n className={styles.option}\n ariaSelected={highlighted || undefined}\n highlighted={highlighted}\n disabled={option.disabled}\n hasBackground={useEntered}\n isParent={isParent}\n isChild={isChild}\n virtualPosition={virtualPosition}\n data-test-index={throughIndex}\n data-in-group-index={inGroupIndex}\n data-group-index={groupIndex}\n ref={ref}\n padBottom={padBottom}\n screenReaderContent={screenReaderContent}\n ariaSetsize={ariaSetsize}\n ariaPosinset={ariaPosinset}\n highlightedType={highlightedType}\n >\n {optionContent}\n </SelectableItem>\n );\n};\n\nexport default React.memo(React.forwardRef(AutosuggestOption));\n"]}
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import { CancelableEventHandler, BaseKeyDetail } from '../internal/events';
|
|
2
|
-
import { AutosuggestItem
|
|
3
|
-
export declare const getParentGroup: (item: AutosuggestItem) => AutosuggestItem | undefined;
|
|
4
|
-
export declare const useAutosuggestItems: (options?: AutosuggestProps.Options) => AutosuggestItem[];
|
|
5
|
-
export declare const useFilteredItems: (autosuggestItems: AutosuggestItem[], value: string, filterText: string, filteringType: AutosuggestProps.FilteringType, showAll: boolean, __hideEnteredTextLabel?: boolean | undefined) => AutosuggestItem[];
|
|
2
|
+
import { AutosuggestItem } from './interfaces';
|
|
6
3
|
export declare const useSelectVisibleOption: (filteredItems: AutosuggestItem[], selectOption: (option: AutosuggestItem) => void, isInteractive: (option: AutosuggestItem) => boolean) => (index: number) => void;
|
|
7
4
|
export declare const useHighlightVisibleOption: (filteredItems: AutosuggestItem[], setHighlightedIndex: (index: number) => void, isHighlightable: (option: AutosuggestItem) => boolean) => (index: number) => void;
|
|
8
|
-
export declare const useKeyboardHandler: (moveHighlight: (direction: -1 | 1) => void, openDropdown: () => void, selectHighlighted: () => void,
|
|
5
|
+
export declare const useKeyboardHandler: (moveHighlight: (direction: -1 | 1) => void, openDropdown: () => void, selectHighlighted: () => void, isKeyboard: React.MutableRefObject<boolean>, open: boolean, onKeyDown?: CancelableEventHandler<BaseKeyDetail> | undefined) => (e: CustomEvent<BaseKeyDetail>) => void;
|
|
9
6
|
//# sourceMappingURL=controller.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../../src/autosuggest/controller.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../../src/autosuggest/controller.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAE3E,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,eAAO,MAAM,sBAAsB,kBAClB,eAAe,EAAE,yBACT,eAAe,KAAK,IAAI,0BACvB,eAAe,KAAK,OAAO,aAGzC,MAAM,SAOf,CAAC;AAEJ,eAAO,MAAM,yBAAyB,kBACrB,eAAe,EAAE,+BACH,MAAM,KAAK,IAAI,4BAClB,eAAe,KAAK,OAAO,aAG3C,MAAM,SAOf,CAAC;AAEJ,eAAO,MAAM,kBAAkB,8BACF,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,gBAC5B,MAAM,IAAI,qBACL,MAAM,IAAI,cACjB,MAAM,gBAAgB,CAAC,OAAO,CAAC,QACrC,OAAO,wEAIP,YAAY,aAAa,CAAC,SA+BjC,CAAC"}
|
|
@@ -1,51 +1,7 @@
|
|
|
1
|
-
import { __assign, __rest, __spreadArray } from "tslib";
|
|
2
1
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
-
import { useCallback
|
|
5
|
-
import { filterOptions } from './utils/utils';
|
|
3
|
+
import { useCallback } from 'react';
|
|
6
4
|
import { KeyCode } from '../internal/keycode';
|
|
7
|
-
import { generateTestIndexes } from '../internal/components/options-list/utils/test-indexes';
|
|
8
|
-
var parentMap = new WeakMap();
|
|
9
|
-
export var getParentGroup = function (item) { return parentMap.get(item); };
|
|
10
|
-
export var useAutosuggestItems = function (options) {
|
|
11
|
-
if (options === void 0) { options = []; }
|
|
12
|
-
return useMemo(function () { return createItems(options); }, [options]);
|
|
13
|
-
};
|
|
14
|
-
function createItems(options) {
|
|
15
|
-
var items = [];
|
|
16
|
-
for (var _i = 0, options_1 = options; _i < options_1.length; _i++) {
|
|
17
|
-
var option = options_1[_i];
|
|
18
|
-
if (isGroup(option)) {
|
|
19
|
-
items.push.apply(items, flattenGroup(option));
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
items.push(__assign(__assign({}, option), { option: option }));
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
return items;
|
|
26
|
-
}
|
|
27
|
-
function isGroup(optionOrGroup) {
|
|
28
|
-
return 'options' in optionOrGroup;
|
|
29
|
-
}
|
|
30
|
-
function flattenGroup(group) {
|
|
31
|
-
var options = group.options, rest = __rest(group, ["options"]);
|
|
32
|
-
var hasOnlyDisabledChildren = options.every(function (option) { return option.disabled; });
|
|
33
|
-
var parent = __assign(__assign({}, rest), { type: 'parent', disabled: rest.disabled || hasOnlyDisabledChildren, option: group });
|
|
34
|
-
var children = options.map(function (option) { return (__assign(__assign({}, option), { type: 'child', disabled: option.disabled || parent.disabled, option: option })); });
|
|
35
|
-
// TODO: Refactor parentMap and remove this side effect
|
|
36
|
-
children.forEach(function (child) { return parentMap.set(child, __assign(__assign({}, group), { option: group })); });
|
|
37
|
-
return [parent].concat(children);
|
|
38
|
-
}
|
|
39
|
-
export var useFilteredItems = function (autosuggestItems, value, filterText, filteringType, showAll, __hideEnteredTextLabel) {
|
|
40
|
-
return useMemo(function () {
|
|
41
|
-
var filteredItems = filteringType === 'auto' && !showAll ? filterOptions(autosuggestItems, filterText) : __spreadArray([], autosuggestItems, true);
|
|
42
|
-
if (value && !__hideEnteredTextLabel) {
|
|
43
|
-
filteredItems.unshift({ value: value, type: 'use-entered', option: { value: value } });
|
|
44
|
-
}
|
|
45
|
-
generateTestIndexes(filteredItems, getParentGroup);
|
|
46
|
-
return filteredItems;
|
|
47
|
-
}, [autosuggestItems, value, filterText, filteringType, showAll, __hideEnteredTextLabel]);
|
|
48
|
-
};
|
|
49
5
|
export var useSelectVisibleOption = function (filteredItems, selectOption, isInteractive) {
|
|
50
6
|
return useCallback(function (index) {
|
|
51
7
|
var option = filteredItems[index];
|
|
@@ -62,20 +18,20 @@ export var useHighlightVisibleOption = function (filteredItems, setHighlightedIn
|
|
|
62
18
|
}
|
|
63
19
|
}, [filteredItems, setHighlightedIndex, isHighlightable]);
|
|
64
20
|
};
|
|
65
|
-
export var useKeyboardHandler = function (moveHighlight, openDropdown, selectHighlighted,
|
|
21
|
+
export var useKeyboardHandler = function (moveHighlight, openDropdown, selectHighlighted, isKeyboard, open, onKeyDown) {
|
|
66
22
|
return useCallback(function (e) {
|
|
67
23
|
switch (e.detail.keyCode) {
|
|
68
24
|
case KeyCode.down: {
|
|
25
|
+
isKeyboard.current = true;
|
|
69
26
|
moveHighlight(1);
|
|
70
27
|
openDropdown();
|
|
71
|
-
usingMouse.current = false;
|
|
72
28
|
e.preventDefault();
|
|
73
29
|
break;
|
|
74
30
|
}
|
|
75
31
|
case KeyCode.up: {
|
|
32
|
+
isKeyboard.current = true;
|
|
76
33
|
moveHighlight(-1);
|
|
77
34
|
openDropdown();
|
|
78
|
-
usingMouse.current = false;
|
|
79
35
|
e.preventDefault();
|
|
80
36
|
break;
|
|
81
37
|
}
|
|
@@ -91,6 +47,6 @@ export var useKeyboardHandler = function (moveHighlight, openDropdown, selectHig
|
|
|
91
47
|
onKeyDown && onKeyDown(e);
|
|
92
48
|
}
|
|
93
49
|
}
|
|
94
|
-
}, [moveHighlight, selectHighlighted, onKeyDown,
|
|
50
|
+
}, [moveHighlight, selectHighlighted, onKeyDown, isKeyboard, open, openDropdown]);
|
|
95
51
|
};
|
|
96
52
|
//# sourceMappingURL=controller.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../../src/autosuggest/controller.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../../src/autosuggest/controller.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEpC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAG9C,MAAM,CAAC,IAAM,sBAAsB,GAAG,UACpC,aAAgC,EAChC,YAA+C,EAC/C,aAAmD;IAEnD,OAAA,WAAW,CACT,UAAC,KAAa;QACZ,IAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE;YACnC,YAAY,CAAC,MAAM,CAAC,CAAC;SACtB;IACH,CAAC,EACD,CAAC,aAAa,EAAE,YAAY,EAAE,aAAa,CAAC,CAC7C;AARD,CAQC,CAAC;AAEJ,MAAM,CAAC,IAAM,yBAAyB,GAAG,UACvC,aAAgC,EAChC,mBAA4C,EAC5C,eAAqD;IAErD,OAAA,WAAW,CACT,UAAC,KAAa;QACZ,IAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,MAAM,IAAI,eAAe,CAAC,MAAM,CAAC,EAAE;YACrC,mBAAmB,CAAC,KAAK,CAAC,CAAC;SAC5B;IACH,CAAC,EACD,CAAC,aAAa,EAAE,mBAAmB,EAAE,eAAe,CAAC,CACtD;AARD,CAQC,CAAC;AAEJ,MAAM,CAAC,IAAM,kBAAkB,GAAG,UAChC,aAA0C,EAC1C,YAAwB,EACxB,iBAA6B,EAC7B,UAA2C,EAC3C,IAAa,EACb,SAAiD;IAEjD,OAAO,WAAW,CAChB,UAAC,CAA6B;QAC5B,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE;YACxB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;gBACjB,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;gBAC1B,aAAa,CAAC,CAAC,CAAC,CAAC;gBACjB,YAAY,EAAE,CAAC;gBACf,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,MAAM;aACP;YACD,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC;gBACf,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;gBAC1B,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClB,YAAY,EAAE,CAAC;gBACf,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,MAAM;aACP;YACD,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC;gBAClB,IAAI,IAAI,EAAE;oBACR,iBAAiB,EAAE,CAAC;oBACpB,CAAC,CAAC,cAAc,EAAE,CAAC;iBACpB;gBACD,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC1B,MAAM;aACP;YACD,OAAO,CAAC,CAAC;gBACP,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;aAC3B;SACF;IACH,CAAC,EACD,CAAC,aAAa,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,CAAC,CAC9E,CAAC;AACJ,CAAC,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { useCallback } from 'react';\nimport { CancelableEventHandler, BaseKeyDetail } from '../internal/events';\nimport { KeyCode } from '../internal/keycode';\nimport { AutosuggestItem } from './interfaces';\n\nexport const useSelectVisibleOption = (\n filteredItems: AutosuggestItem[],\n selectOption: (option: AutosuggestItem) => void,\n isInteractive: (option: AutosuggestItem) => boolean\n) =>\n useCallback(\n (index: number) => {\n const option = filteredItems[index];\n if (option && isInteractive(option)) {\n selectOption(option);\n }\n },\n [filteredItems, selectOption, isInteractive]\n );\n\nexport const useHighlightVisibleOption = (\n filteredItems: AutosuggestItem[],\n setHighlightedIndex: (index: number) => void,\n isHighlightable: (option: AutosuggestItem) => boolean\n) =>\n useCallback(\n (index: number) => {\n const option = filteredItems[index];\n if (option && isHighlightable(option)) {\n setHighlightedIndex(index);\n }\n },\n [filteredItems, setHighlightedIndex, isHighlightable]\n );\n\nexport const useKeyboardHandler = (\n moveHighlight: (direction: -1 | 1) => void,\n openDropdown: () => void,\n selectHighlighted: () => void,\n isKeyboard: React.MutableRefObject<boolean>,\n open: boolean,\n onKeyDown?: CancelableEventHandler<BaseKeyDetail>\n) => {\n return useCallback(\n (e: CustomEvent<BaseKeyDetail>) => {\n switch (e.detail.keyCode) {\n case KeyCode.down: {\n isKeyboard.current = true;\n moveHighlight(1);\n openDropdown();\n e.preventDefault();\n break;\n }\n case KeyCode.up: {\n isKeyboard.current = true;\n moveHighlight(-1);\n openDropdown();\n e.preventDefault();\n break;\n }\n case KeyCode.enter: {\n if (open) {\n selectHighlighted();\n e.preventDefault();\n }\n onKeyDown && onKeyDown(e);\n break;\n }\n default: {\n onKeyDown && onKeyDown(e);\n }\n }\n },\n [moveHighlight, selectHighlighted, onKeyDown, isKeyboard, open, openDropdown]\n );\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../src/autosuggest/internal.tsx"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../src/autosuggest/internal.tsx"],"names":[],"mappings":"AAGA,OAAO,KAA6C,MAAM,OAAO,CAAC;AAIlE,OAAO,EAAmB,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAUjE,OAAO,EAA0B,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAEpF,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAKjD,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAGlF,MAAM,WAAW,wBAAyB,SAAQ,gBAAgB,EAAE,0BAA0B;IAC5F,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,sBAAsB,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAClE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,EAAE,sBAAsB,CAAC,IAAI,CAAC,CAAC;CACzC;AAuBD,QAAA,MAAM,mBAAmB,iGA8NvB,CAAC;AAEH,eAAe,mBAAmB,CAAC"}
|
package/autosuggest/internal.js
CHANGED
|
@@ -2,8 +2,9 @@ import { __assign, __rest } from "tslib";
|
|
|
2
2
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
3
|
// SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
import clsx from 'clsx';
|
|
5
|
-
import React, { useCallback,
|
|
6
|
-
import {
|
|
5
|
+
import React, { useCallback, useRef, useState } from 'react';
|
|
6
|
+
import { useKeyboardHandler } from './controller';
|
|
7
|
+
import { useAutosuggestItems } from './options-controller';
|
|
7
8
|
import Dropdown from '../internal/components/dropdown';
|
|
8
9
|
import { useDropdownStatus } from '../internal/components/dropdown-status';
|
|
9
10
|
import DropdownFooter from '../internal/components/dropdown-footer';
|
|
@@ -12,7 +13,6 @@ import { getBaseProps } from '../internal/base-component';
|
|
|
12
13
|
import { generateUniqueId, useUniqueId } from '../internal/hooks/use-unique-id';
|
|
13
14
|
import useForwardFocus from '../internal/hooks/forward-focus';
|
|
14
15
|
import { fireNonCancelableEvent } from '../internal/events';
|
|
15
|
-
import { createHighlightedOptionHook } from '../internal/components/options-list/utils/use-highlight-option';
|
|
16
16
|
import InternalInput from '../input/internal';
|
|
17
17
|
import styles from './styles.css.js';
|
|
18
18
|
import { checkOptionValueField } from '../select/utils/check-option-value-field';
|
|
@@ -22,10 +22,6 @@ import AutosuggestOptionsList from './options-list';
|
|
|
22
22
|
var isInteractive = function (option) {
|
|
23
23
|
return !!option && !option.disabled && option.type !== 'parent';
|
|
24
24
|
};
|
|
25
|
-
var isHighlightable = function (option) {
|
|
26
|
-
return !!option && option.type !== 'parent';
|
|
27
|
-
};
|
|
28
|
-
var useHighlightedOption = createHighlightedOptionHook({ isHighlightable: isHighlightable });
|
|
29
25
|
var useLoadMoreItems = function (onLoadItems) {
|
|
30
26
|
var lastFilteringText = useRef(null);
|
|
31
27
|
return useCallback(function (firstPage, samePage, filteringText) {
|
|
@@ -41,19 +37,21 @@ var useLoadMoreItems = function (onLoadItems) {
|
|
|
41
37
|
};
|
|
42
38
|
var InternalAutosuggest = React.forwardRef(function (props, ref) {
|
|
43
39
|
var _a;
|
|
44
|
-
var value = props.value, onChange = props.onChange, onBlur = props.onBlur, onFocus = props.onFocus, onKeyUp = props.onKeyUp, 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, name = props.name, disabled = props.disabled, _d = props.disableBrowserAutocorrect, disableBrowserAutocorrect = _d === void 0 ? false : _d, autoFocus = props.autoFocus, readOnly = props.readOnly, ariaLabel = props.ariaLabel, ariaRequired = props.ariaRequired, enteredTextLabel = props.enteredTextLabel, onKeyDown = props.onKeyDown, virtualScroll = props.virtualScroll, expandToViewport = props.expandToViewport, onSelect = props.onSelect, selectedAriaLabel = props.selectedAriaLabel, renderHighlightedAriaLive = props.renderHighlightedAriaLive, __dropdownWidth = props.__dropdownWidth, __onOptionClick = props.__onOptionClick, __disableShowAll = props.__disableShowAll, __hideEnteredTextOption = props.__hideEnteredTextOption, __onOpen = props.__onOpen, __internalRootRef = props.__internalRootRef, rest = __rest(props, ["value", "onChange", "onBlur", "onFocus", "onKeyUp", "onLoadItems", "options", "filteringType", "statusType", "placeholder", "name", "disabled", "disableBrowserAutocorrect", "autoFocus", "readOnly", "ariaLabel", "ariaRequired", "enteredTextLabel", "onKeyDown", "virtualScroll", "expandToViewport", "onSelect", "selectedAriaLabel", "renderHighlightedAriaLive", "__dropdownWidth", "__onOptionClick", "__disableShowAll", "__hideEnteredTextOption", "__onOpen", "__internalRootRef"]);
|
|
45
|
-
var filterText =
|
|
46
|
-
filterText = filterText === undefined ? value : filterText;
|
|
40
|
+
var value = props.value, onChange = props.onChange, onBlur = props.onBlur, onFocus = props.onFocus, onKeyUp = props.onKeyUp, 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, name = props.name, disabled = props.disabled, _d = props.disableBrowserAutocorrect, disableBrowserAutocorrect = _d === void 0 ? false : _d, autoFocus = props.autoFocus, readOnly = props.readOnly, ariaLabel = props.ariaLabel, ariaRequired = props.ariaRequired, enteredTextLabel = props.enteredTextLabel, onKeyDown = props.onKeyDown, virtualScroll = props.virtualScroll, expandToViewport = props.expandToViewport, onSelect = props.onSelect, selectedAriaLabel = props.selectedAriaLabel, renderHighlightedAriaLive = props.renderHighlightedAriaLive, __dropdownWidth = props.__dropdownWidth, __onOptionClick = props.__onOptionClick, __disableShowAll = props.__disableShowAll, __hideEnteredTextOption = props.__hideEnteredTextOption, __onOpen = props.__onOpen, __internalRootRef = props.__internalRootRef, __filterText = props.__filterText, rest = __rest(props, ["value", "onChange", "onBlur", "onFocus", "onKeyUp", "onLoadItems", "options", "filteringType", "statusType", "placeholder", "name", "disabled", "disableBrowserAutocorrect", "autoFocus", "readOnly", "ariaLabel", "ariaRequired", "enteredTextLabel", "onKeyDown", "virtualScroll", "expandToViewport", "onSelect", "selectedAriaLabel", "renderHighlightedAriaLive", "__dropdownWidth", "__onOptionClick", "__disableShowAll", "__hideEnteredTextOption", "__onOpen", "__internalRootRef", "__filterText"]);
|
|
41
|
+
var filterText = __filterText === undefined ? value : __filterText;
|
|
47
42
|
checkControlled('Autosuggest', 'value', value, 'onChange', onChange);
|
|
48
43
|
checkOptionValueField('Autosuggest', 'options', options);
|
|
49
|
-
var
|
|
50
|
-
var _e = useState(false),
|
|
51
|
-
var _f =
|
|
52
|
-
|
|
53
|
-
|
|
44
|
+
var isKeyboard = useRef(false);
|
|
45
|
+
var _e = useState(false), open = _e[0], setOpen = _e[1];
|
|
46
|
+
var _f = useAutosuggestItems({
|
|
47
|
+
options: options || [],
|
|
48
|
+
filterValue: value,
|
|
49
|
+
filterText: filterText,
|
|
50
|
+
filteringType: filteringType,
|
|
51
|
+
isKeyboard: isKeyboard,
|
|
52
|
+
hideEnteredTextLabel: __hideEnteredTextOption
|
|
53
|
+
}), items = _f.items, setShowAll = _f.setShowAll, highlightedOption = _f.highlightedOption, highlightedIndex = _f.highlightedIndex, highlightedType = _f.highlightedType, moveHighlight = _f.moveHighlight, resetHighlight = _f.resetHighlight, setHighlightedIndex = _f.setHighlightedIndex;
|
|
54
54
|
var openDropdown = function () { return !readOnly && setOpen(true); };
|
|
55
|
-
var scrollToIndex = useRef(null);
|
|
56
|
-
var _g = useHighlightedOption(filteredItems), highlightedOption = _g.highlightedOption, highlightedIndex = _g.highlightedIndex, moveHighlight = _g.moveHighlight, resetHighlight = _g.resetHighlight, setHighlightedIndex = _g.setHighlightedIndex;
|
|
57
55
|
var closeDropdown = function () {
|
|
58
56
|
setOpen(false);
|
|
59
57
|
resetHighlight();
|
|
@@ -95,7 +93,7 @@ var InternalAutosuggest = React.forwardRef(function (props, ref) {
|
|
|
95
93
|
resetHighlight();
|
|
96
94
|
onChange && onChange(e);
|
|
97
95
|
};
|
|
98
|
-
var handleKeyDown = useKeyboardHandler(moveHighlight, openDropdown, selectHighlighted,
|
|
96
|
+
var handleKeyDown = useKeyboardHandler(moveHighlight, openDropdown, selectHighlighted, isKeyboard, open, onKeyDown);
|
|
99
97
|
var handleLoadMore = useCallback(function () {
|
|
100
98
|
options && options.length && statusType === 'pending' && fireLoadMore(false, false);
|
|
101
99
|
}, [fireLoadMore, options, statusType]);
|
|
@@ -114,7 +112,7 @@ var InternalAutosuggest = React.forwardRef(function (props, ref) {
|
|
|
114
112
|
var dropdownId = useUniqueId('dropdown');
|
|
115
113
|
var listId = useUniqueId('list');
|
|
116
114
|
// From an a11y point of view we only count the dropdown as 'expanded' if there are items that a user can dropdown into
|
|
117
|
-
var expanded = open &&
|
|
115
|
+
var expanded = open && items.length > 1;
|
|
118
116
|
var highlightedOptionId = highlightedOption ? generateUniqueId() : undefined;
|
|
119
117
|
var nativeAttributes = {
|
|
120
118
|
name: name,
|
|
@@ -139,11 +137,7 @@ var InternalAutosuggest = React.forwardRef(function (props, ref) {
|
|
|
139
137
|
}
|
|
140
138
|
onFocus === null || onFocus === void 0 ? void 0 : onFocus(e);
|
|
141
139
|
};
|
|
142
|
-
|
|
143
|
-
var _a;
|
|
144
|
-
(_a = scrollToIndex.current) === null || _a === void 0 ? void 0 : _a.call(scrollToIndex, highlightedIndex);
|
|
145
|
-
}, [highlightedIndex]);
|
|
146
|
-
var isEmpty = !value && !filteredItems.length;
|
|
140
|
+
var isEmpty = !value && !items.length;
|
|
147
141
|
var showRecoveryLink = open && statusType === 'error' && props.recoveryText;
|
|
148
142
|
var dropdownStatus = useDropdownStatus(__assign(__assign({}, props), { isEmpty: isEmpty, onRecoveryClick: handleRecoveryClick }));
|
|
149
143
|
var handleMouseDown = function (event) {
|
|
@@ -152,7 +146,7 @@ var InternalAutosuggest = React.forwardRef(function (props, ref) {
|
|
|
152
146
|
};
|
|
153
147
|
return (React.createElement("div", __assign({}, baseProps, { className: clsx(styles.root, baseProps.className), ref: __internalRootRef, onBlur: handleBlur }),
|
|
154
148
|
React.createElement(Dropdown, { minWidth: __dropdownWidth, stretchWidth: !__dropdownWidth, trigger: React.createElement(InternalInput, __assign({ type: "search", value: value, onChange: handleInputChange, __onDelayedInput: function (event) { return fireLoadMore(true, false, event.detail.value); }, onFocus: handleInputFocus, onKeyDown: handleKeyDown, onKeyUp: onKeyUp, disabled: disabled, disableBrowserAutocorrect: disableBrowserAutocorrect, readOnly: readOnly, ariaRequired: ariaRequired, ref: inputRef, autoComplete: false, __nativeAttributes: nativeAttributes }, formFieldContext, { controlId: controlId })), onMouseDown: handleMouseDown, open: open, dropdownId: dropdownId, footer: dropdownStatus.isSticky ? (React.createElement("div", { ref: dropdownFooterRef, className: styles['dropdown-footer'] },
|
|
155
|
-
React.createElement(DropdownFooter, { content: dropdownStatus.content, hasItems:
|
|
149
|
+
React.createElement(DropdownFooter, { content: dropdownStatus.content, hasItems: items.length >= 1 }))) : null, expandToViewport: expandToViewport, hasContent: items.length >= 1 || dropdownStatus.content !== null, trapFocus: !!showRecoveryLink }, open && (React.createElement(AutosuggestOptionsList, { options: items, highlightedOption: highlightedOption, selectOption: selectOption, highlightedIndex: highlightedIndex, setHighlightedIndex: setHighlightedIndex, highlightedOptionId: highlightedOptionId, highlightText: filterText, listId: listId, controlId: controlId, enteredTextLabel: enteredTextLabel, handleLoadMore: handleLoadMore, hasDropdownStatus: dropdownStatus.content !== null, virtualScroll: virtualScroll, selectedAriaLabel: selectedAriaLabel, renderHighlightedAriaLive: renderHighlightedAriaLive, listBottom: !dropdownStatus.isSticky ? React.createElement(DropdownFooter, { content: dropdownStatus.content }) : null, isKeyboard: isKeyboard, highlightedType: highlightedType })))));
|
|
156
150
|
});
|
|
157
151
|
export default InternalAutosuggest;
|
|
158
152
|
//# sourceMappingURL=internal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/autosuggest/internal.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, useCallback, useEffect, useRef, useState } from 'react';\n\nimport { useAutosuggestItems, useFilteredItems, useKeyboardHandler } from './controller';\nimport { AutosuggestItem, AutosuggestProps } from './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 { createHighlightedOptionHook } from '../internal/components/options-list/utils/use-highlight-option';\nimport InternalInput from '../input/internal';\nimport { InputProps } from '../input/interfaces';\nimport styles from './styles.css.js';\nimport { checkOptionValueField } from '../select/utils/check-option-value-field';\nimport checkControlled from '../internal/hooks/check-controlled';\nimport { fireCancelableEvent } from '../internal/events/index';\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component';\nimport AutosuggestOptionsList from './options-list';\n\nexport interface InternalAutosuggestProps extends AutosuggestProps, InternalBaseComponentProps {\n __filterText?: string;\n __dropdownWidth?: number;\n __onOptionClick?: CancelableEventHandler<AutosuggestProps.Option>;\n __disableShowAll?: boolean;\n __hideEnteredTextOption?: boolean;\n __onOpen?: CancelableEventHandler<null>;\n}\n\nconst isInteractive = (option?: AutosuggestItem) => {\n return !!option && !option.disabled && option.type !== 'parent';\n};\n\nconst isHighlightable = (option?: AutosuggestItem) => {\n return !!option && option.type !== 'parent';\n};\n\nconst useHighlightedOption = createHighlightedOptionHook({ isHighlightable: isHighlightable });\n\nconst useLoadMoreItems = (onLoadItems: AutosuggestProps['onLoadItems']) => {\n const lastFilteringText = useRef<string | null>(null);\n return useCallback(\n (firstPage: boolean, samePage: boolean, filteringText?: string) => {\n if (samePage || !firstPage || filteringText === undefined || lastFilteringText.current !== filteringText) {\n if (filteringText !== undefined) {\n lastFilteringText.current = filteringText;\n }\n if (lastFilteringText.current !== null && onLoadItems) {\n fireNonCancelableEvent(onLoadItems, { filteringText: lastFilteringText.current, firstPage, samePage });\n }\n }\n },\n [onLoadItems]\n );\n};\n\nconst InternalAutosuggest = React.forwardRef((props: InternalAutosuggestProps, ref: Ref<InputProps.Ref>) => {\n const {\n value,\n onChange,\n onBlur,\n onFocus,\n onKeyUp,\n onLoadItems,\n options,\n filteringType = 'auto',\n statusType = 'finished',\n placeholder,\n name,\n disabled,\n disableBrowserAutocorrect = false,\n autoFocus,\n readOnly,\n ariaLabel,\n ariaRequired,\n enteredTextLabel,\n onKeyDown,\n virtualScroll,\n expandToViewport,\n onSelect,\n selectedAriaLabel,\n renderHighlightedAriaLive,\n __dropdownWidth,\n __onOptionClick,\n __disableShowAll,\n __hideEnteredTextOption,\n __onOpen,\n __internalRootRef,\n ...rest\n } = props;\n let { __filterText: filterText } = rest;\n filterText = filterText === undefined ? value : filterText;\n\n checkControlled('Autosuggest', 'value', value, 'onChange', onChange);\n checkOptionValueField('Autosuggest', 'options', options);\n\n const usingMouse = useRef(true);\n const [showAll, setShowAll] = useState(false);\n const [open, setOpen] = useState(false);\n const autosuggestItems = useAutosuggestItems(options);\n const filteredItems = useFilteredItems(\n autosuggestItems,\n value,\n filterText,\n filteringType,\n showAll,\n __hideEnteredTextOption\n );\n const openDropdown = () => !readOnly && setOpen(true);\n const scrollToIndex = useRef<(index: number) => void>(null);\n const { highlightedOption, highlightedIndex, moveHighlight, resetHighlight, setHighlightedIndex } =\n useHighlightedOption(filteredItems);\n const closeDropdown = () => {\n setOpen(false);\n resetHighlight();\n };\n const handleBlur: React.FocusEventHandler = event => {\n if (event.currentTarget.contains(event.relatedTarget) || dropdownFooterRef.current?.contains(event.relatedTarget)) {\n return;\n }\n closeDropdown();\n fireNonCancelableEvent(onBlur);\n };\n const selectOption = (option: AutosuggestItem) => {\n const value = option.value || '';\n fireNonCancelableEvent(onChange, { value });\n const selectedCancelled = fireCancelableEvent(__onOptionClick, option);\n if (!selectedCancelled) {\n closeDropdown();\n } else {\n resetHighlight();\n }\n fireNonCancelableEvent(onSelect, { value });\n };\n const selectHighlighted = () => {\n if (highlightedOption) {\n if (isInteractive(highlightedOption)) {\n selectOption(highlightedOption);\n }\n } else {\n closeDropdown();\n }\n };\n\n const fireLoadMore = useLoadMoreItems(onLoadItems);\n\n const handleInputChange: InputProps['onChange'] = e => {\n openDropdown();\n setShowAll(false);\n resetHighlight();\n onChange && onChange(e);\n };\n\n const handleKeyDown = useKeyboardHandler(moveHighlight, openDropdown, selectHighlighted, usingMouse, open, onKeyDown);\n const handleLoadMore = useCallback(() => {\n options && options.length && statusType === 'pending' && fireLoadMore(false, false);\n }, [fireLoadMore, options, statusType]);\n const handleRecoveryClick = useCallback(() => {\n fireLoadMore(false, true);\n inputRef.current?.focus();\n }, [fireLoadMore]);\n\n const formFieldContext = useFormFieldContext(rest);\n const baseProps = getBaseProps(rest);\n const inputRef = useRef<HTMLInputElement>(null);\n const dropdownFooterRef = useRef<HTMLDivElement>(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 && filteredItems.length > 1;\n const highlightedOptionId = highlightedOption ? generateUniqueId() : undefined;\n const nativeAttributes = {\n name,\n placeholder,\n autoFocus,\n onClick: 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'] = e => {\n !__disableShowAll && setShowAll(true);\n const openPrevented = fireCancelableEvent(__onOpen, null);\n if (!openPrevented) {\n openDropdown();\n fireLoadMore(true, false, '');\n }\n onFocus?.(e);\n };\n\n useEffect(() => {\n scrollToIndex.current?.(highlightedIndex);\n }, [highlightedIndex]);\n\n const isEmpty = !value && !filteredItems.length;\n const showRecoveryLink = open && statusType === 'error' && props.recoveryText;\n const dropdownStatus = useDropdownStatus({ ...props, isEmpty, onRecoveryClick: handleRecoveryClick });\n\n const handleMouseDown = (event: React.MouseEvent) => {\n // prevent currently focused element from losing it\n event.preventDefault();\n };\n\n return (\n <div {...baseProps} className={clsx(styles.root, baseProps.className)} ref={__internalRootRef} onBlur={handleBlur}>\n <Dropdown\n minWidth={__dropdownWidth}\n stretchWidth={!__dropdownWidth}\n trigger={\n <InternalInput\n type=\"search\"\n value={value}\n onChange={handleInputChange}\n __onDelayedInput={event => fireLoadMore(true, false, event.detail.value)}\n onFocus={handleInputFocus}\n onKeyDown={handleKeyDown}\n onKeyUp={onKeyUp}\n disabled={disabled}\n disableBrowserAutocorrect={disableBrowserAutocorrect}\n readOnly={readOnly}\n ariaRequired={ariaRequired}\n ref={inputRef}\n autoComplete={false}\n __nativeAttributes={nativeAttributes}\n {...formFieldContext}\n controlId={controlId}\n />\n }\n onMouseDown={handleMouseDown}\n open={open}\n dropdownId={dropdownId}\n footer={\n dropdownStatus.isSticky ? (\n <div ref={dropdownFooterRef} className={styles['dropdown-footer']}>\n <DropdownFooter content={dropdownStatus.content} hasItems={filteredItems.length >= 1} />\n </div>\n ) : null\n }\n expandToViewport={expandToViewport}\n hasContent={filteredItems.length >= 1 || dropdownStatus.content !== null}\n trapFocus={!!showRecoveryLink}\n >\n {open && (\n <AutosuggestOptionsList\n options={filteredItems}\n highlightedOption={highlightedOption}\n selectOption={selectOption}\n highlightedIndex={highlightedIndex}\n setHighlightedIndex={setHighlightedIndex}\n highlightedOptionId={highlightedOptionId}\n highlightText={filterText}\n listId={listId}\n controlId={controlId}\n enteredTextLabel={enteredTextLabel}\n handleLoadMore={handleLoadMore}\n hasDropdownStatus={dropdownStatus.content !== null}\n virtualScroll={virtualScroll}\n selectedAriaLabel={selectedAriaLabel}\n renderHighlightedAriaLive={renderHighlightedAriaLive}\n listBottom={!dropdownStatus.isSticky ? <DropdownFooter content={dropdownStatus.content} /> : null}\n usingMouse={usingMouse}\n />\n )}\n </Dropdown>\n </div>\n );\n});\n\nexport default InternalAutosuggest;\n"]}
|
|
1
|
+
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/autosuggest/internal.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, useCallback, useRef, useState } from 'react';\n\nimport { useKeyboardHandler } from './controller';\nimport { useAutosuggestItems } from './options-controller';\nimport { AutosuggestItem, AutosuggestProps } from './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 './styles.css.js';\nimport { checkOptionValueField } from '../select/utils/check-option-value-field';\nimport checkControlled from '../internal/hooks/check-controlled';\nimport { fireCancelableEvent } from '../internal/events/index';\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component';\nimport AutosuggestOptionsList from './options-list';\n\nexport interface InternalAutosuggestProps extends AutosuggestProps, InternalBaseComponentProps {\n __filterText?: string;\n __dropdownWidth?: number;\n __onOptionClick?: CancelableEventHandler<AutosuggestProps.Option>;\n __disableShowAll?: boolean;\n __hideEnteredTextOption?: boolean;\n __onOpen?: CancelableEventHandler<null>;\n}\n\nconst isInteractive = (option?: AutosuggestItem) => {\n return !!option && !option.disabled && option.type !== 'parent';\n};\n\nconst useLoadMoreItems = (onLoadItems: AutosuggestProps['onLoadItems']) => {\n const lastFilteringText = useRef<string | null>(null);\n return useCallback(\n (firstPage: boolean, samePage: boolean, filteringText?: string) => {\n if (samePage || !firstPage || filteringText === undefined || lastFilteringText.current !== filteringText) {\n if (filteringText !== undefined) {\n lastFilteringText.current = filteringText;\n }\n if (lastFilteringText.current !== null && onLoadItems) {\n fireNonCancelableEvent(onLoadItems, { filteringText: lastFilteringText.current, firstPage, samePage });\n }\n }\n },\n [onLoadItems]\n );\n};\n\nconst InternalAutosuggest = React.forwardRef((props: InternalAutosuggestProps, ref: Ref<InputProps.Ref>) => {\n const {\n value,\n onChange,\n onBlur,\n onFocus,\n onKeyUp,\n onLoadItems,\n options,\n filteringType = 'auto',\n statusType = 'finished',\n placeholder,\n name,\n disabled,\n disableBrowserAutocorrect = false,\n autoFocus,\n readOnly,\n ariaLabel,\n ariaRequired,\n enteredTextLabel,\n onKeyDown,\n virtualScroll,\n expandToViewport,\n onSelect,\n selectedAriaLabel,\n renderHighlightedAriaLive,\n __dropdownWidth,\n __onOptionClick,\n __disableShowAll,\n __hideEnteredTextOption,\n __onOpen,\n __internalRootRef,\n __filterText,\n ...rest\n } = props;\n const filterText = __filterText === undefined ? value : __filterText;\n\n checkControlled('Autosuggest', 'value', value, 'onChange', onChange);\n checkOptionValueField('Autosuggest', 'options', options);\n\n const isKeyboard = useRef(false);\n const [open, setOpen] = useState(false);\n const {\n items,\n setShowAll,\n highlightedOption,\n highlightedIndex,\n highlightedType,\n moveHighlight,\n resetHighlight,\n setHighlightedIndex,\n } = useAutosuggestItems({\n options: options || [],\n filterValue: value,\n filterText,\n filteringType,\n isKeyboard,\n hideEnteredTextLabel: __hideEnteredTextOption,\n });\n const openDropdown = () => !readOnly && setOpen(true);\n const closeDropdown = () => {\n setOpen(false);\n resetHighlight();\n };\n const handleBlur: React.FocusEventHandler = event => {\n if (event.currentTarget.contains(event.relatedTarget) || dropdownFooterRef.current?.contains(event.relatedTarget)) {\n return;\n }\n closeDropdown();\n fireNonCancelableEvent(onBlur);\n };\n const selectOption = (option: AutosuggestItem) => {\n const value = option.value || '';\n fireNonCancelableEvent(onChange, { value });\n const selectedCancelled = fireCancelableEvent(__onOptionClick, option);\n if (!selectedCancelled) {\n closeDropdown();\n } else {\n resetHighlight();\n }\n fireNonCancelableEvent(onSelect, { value });\n };\n const selectHighlighted = () => {\n if (highlightedOption) {\n if (isInteractive(highlightedOption)) {\n selectOption(highlightedOption);\n }\n } else {\n closeDropdown();\n }\n };\n\n const fireLoadMore = useLoadMoreItems(onLoadItems);\n\n const handleInputChange: InputProps['onChange'] = e => {\n openDropdown();\n setShowAll(false);\n resetHighlight();\n onChange && onChange(e);\n };\n\n const handleKeyDown = useKeyboardHandler(moveHighlight, openDropdown, selectHighlighted, isKeyboard, open, onKeyDown);\n const handleLoadMore = useCallback(() => {\n options && options.length && statusType === 'pending' && fireLoadMore(false, false);\n }, [fireLoadMore, options, statusType]);\n const handleRecoveryClick = useCallback(() => {\n fireLoadMore(false, true);\n inputRef.current?.focus();\n }, [fireLoadMore]);\n\n const formFieldContext = useFormFieldContext(rest);\n const baseProps = getBaseProps(rest);\n const inputRef = useRef<HTMLInputElement>(null);\n const dropdownFooterRef = useRef<HTMLDivElement>(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 && items.length > 1;\n const highlightedOptionId = highlightedOption ? generateUniqueId() : undefined;\n const nativeAttributes = {\n name,\n placeholder,\n autoFocus,\n onClick: 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'] = e => {\n !__disableShowAll && setShowAll(true);\n const openPrevented = fireCancelableEvent(__onOpen, null);\n if (!openPrevented) {\n openDropdown();\n fireLoadMore(true, false, '');\n }\n onFocus?.(e);\n };\n\n const isEmpty = !value && !items.length;\n const showRecoveryLink = open && statusType === 'error' && props.recoveryText;\n const dropdownStatus = useDropdownStatus({ ...props, isEmpty, onRecoveryClick: handleRecoveryClick });\n\n const handleMouseDown = (event: React.MouseEvent) => {\n // prevent currently focused element from losing it\n event.preventDefault();\n };\n\n return (\n <div {...baseProps} className={clsx(styles.root, baseProps.className)} ref={__internalRootRef} onBlur={handleBlur}>\n <Dropdown\n minWidth={__dropdownWidth}\n stretchWidth={!__dropdownWidth}\n trigger={\n <InternalInput\n type=\"search\"\n value={value}\n onChange={handleInputChange}\n __onDelayedInput={event => fireLoadMore(true, false, event.detail.value)}\n onFocus={handleInputFocus}\n onKeyDown={handleKeyDown}\n onKeyUp={onKeyUp}\n disabled={disabled}\n disableBrowserAutocorrect={disableBrowserAutocorrect}\n readOnly={readOnly}\n ariaRequired={ariaRequired}\n ref={inputRef}\n autoComplete={false}\n __nativeAttributes={nativeAttributes}\n {...formFieldContext}\n controlId={controlId}\n />\n }\n onMouseDown={handleMouseDown}\n open={open}\n dropdownId={dropdownId}\n footer={\n dropdownStatus.isSticky ? (\n <div ref={dropdownFooterRef} className={styles['dropdown-footer']}>\n <DropdownFooter content={dropdownStatus.content} hasItems={items.length >= 1} />\n </div>\n ) : null\n }\n expandToViewport={expandToViewport}\n hasContent={items.length >= 1 || dropdownStatus.content !== null}\n trapFocus={!!showRecoveryLink}\n >\n {open && (\n <AutosuggestOptionsList\n options={items}\n highlightedOption={highlightedOption}\n selectOption={selectOption}\n highlightedIndex={highlightedIndex}\n setHighlightedIndex={setHighlightedIndex}\n highlightedOptionId={highlightedOptionId}\n highlightText={filterText}\n listId={listId}\n controlId={controlId}\n enteredTextLabel={enteredTextLabel}\n handleLoadMore={handleLoadMore}\n hasDropdownStatus={dropdownStatus.content !== null}\n virtualScroll={virtualScroll}\n selectedAriaLabel={selectedAriaLabel}\n renderHighlightedAriaLive={renderHighlightedAriaLive}\n listBottom={!dropdownStatus.isSticky ? <DropdownFooter content={dropdownStatus.content} /> : null}\n isKeyboard={isKeyboard}\n highlightedType={highlightedType}\n />\n )}\n </Dropdown>\n </div>\n );\n});\n\nexport default InternalAutosuggest;\n"]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { MutableRefObject } from 'react';
|
|
2
|
+
import { AutosuggestItem, AutosuggestProps } from './interfaces';
|
|
3
|
+
declare type Options = AutosuggestProps.Options;
|
|
4
|
+
export interface UseAutosuggestItemsProps {
|
|
5
|
+
options: Options;
|
|
6
|
+
filterValue: string;
|
|
7
|
+
filterText: string;
|
|
8
|
+
filteringType: AutosuggestProps.FilteringType;
|
|
9
|
+
isKeyboard: MutableRefObject<boolean>;
|
|
10
|
+
hideEnteredTextLabel?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export declare const getParentGroup: (item: AutosuggestItem) => AutosuggestItem | undefined;
|
|
13
|
+
export declare const useAutosuggestItems: ({ options, filterValue, filterText, filteringType, isKeyboard, hideEnteredTextLabel, }: UseAutosuggestItemsProps) => {
|
|
14
|
+
showAll: boolean;
|
|
15
|
+
setShowAll: import("react").Dispatch<import("react").SetStateAction<boolean>>;
|
|
16
|
+
items: AutosuggestItem[];
|
|
17
|
+
highlightedIndex: number;
|
|
18
|
+
highlightedType: "mouse" | "keyboard";
|
|
19
|
+
highlightedOption: AutosuggestItem | undefined;
|
|
20
|
+
setHighlightedIndex: (index: number) => void;
|
|
21
|
+
moveHighlight: (direction: 1 | -1) => void;
|
|
22
|
+
resetHighlight: () => void;
|
|
23
|
+
};
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=options-controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options-controller.d.ts","sourceRoot":"","sources":["../../../src/autosuggest/options-controller.ts"],"names":[],"mappings":"AAGA,OAAO,EAAqB,gBAAgB,EAAE,MAAM,OAAO,CAAC;AAG5D,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGjE,aAAK,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC;AAExC,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,gBAAgB,CAAC,aAAa,CAAC;IAC9C,UAAU,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACtC,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AASD,eAAO,MAAM,cAAc,SAAU,eAAe,gCAAwB,CAAC;AAE7E,eAAO,MAAM,mBAAmB,2FAO7B,wBAAwB;;;;;;;;;;CA4B1B,CAAC"}
|