baseui 10.10.0 → 10.12.0
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/a11y/a11y.js +1 -1
- package/a11y/a11y.js.flow +15 -18
- package/a11y/index.js.flow +1 -1
- package/a11y/types.js.flow +2 -2
- package/accordion/accordion.js +3 -2
- package/accordion/accordion.js.flow +18 -32
- package/accordion/index.js.flow +6 -6
- package/accordion/panel.js +1 -1
- package/accordion/panel.js.flow +24 -42
- package/accordion/stateful-panel-container.js.flow +7 -12
- package/accordion/stateful-panel.js.flow +3 -3
- package/accordion/stateless-accordion.js.flow +6 -6
- package/accordion/styled-components.js.flow +16 -16
- package/accordion/types.js.flow +9 -9
- package/app-nav-bar/app-nav-bar.js.flow +20 -36
- package/app-nav-bar/index.js.flow +3 -3
- package/app-nav-bar/mobile-menu.js +9 -13
- package/app-nav-bar/mobile-menu.js.flow +29 -62
- package/app-nav-bar/styled-components.js.flow +40 -44
- package/app-nav-bar/types.js.flow +11 -11
- package/app-nav-bar/user-menu.js +8 -9
- package/app-nav-bar/user-menu.js.flow +32 -57
- package/app-nav-bar/user-profile-tile.js.flow +12 -24
- package/app-nav-bar/utils.js.flow +9 -12
- package/aspect-ratio-box/aspect-ratio-box-body.js.flow +2 -2
- package/aspect-ratio-box/aspect-ratio-box.js +2 -2
- package/aspect-ratio-box/aspect-ratio-box.js.flow +11 -13
- package/aspect-ratio-box/index.js.flow +2 -2
- package/aspect-ratio-box/types.js.flow +1 -1
- package/avatar/avatar.js.flow +7 -21
- package/avatar/index.js.flow +1 -1
- package/avatar/styled-components.js.flow +7 -11
- package/avatar/types.js.flow +3 -3
- package/block/block.js +1 -1
- package/block/block.js.flow +8 -11
- package/block/index.js.flow +1 -1
- package/block/styled-components.js.flow +37 -36
- package/block/types.js.flow +3 -2
- package/breadcrumbs/breadcrumbs.js +3 -6
- package/breadcrumbs/breadcrumbs.js.flow +17 -35
- package/breadcrumbs/index.d.ts +1 -0
- package/breadcrumbs/index.js.flow +1 -1
- package/breadcrumbs/styled-components.js.flow +5 -5
- package/breadcrumbs/types.js.flow +3 -2
- package/button/button-internals.js.flow +7 -10
- package/button/button.js +2 -1
- package/button/button.js.flow +25 -36
- package/button/default-props.js.flow +1 -1
- package/button/index.d.ts +6 -0
- package/button/index.js.flow +2 -2
- package/button/styled-components.js +19 -5
- package/button/styled-components.js.flow +89 -82
- package/button/types.js.flow +13 -4
- package/button/utils.js +3 -1
- package/button/utils.js.flow +4 -2
- package/button-group/button-group.js +1 -1
- package/button-group/button-group.js.flow +15 -17
- package/button-group/index.d.ts +1 -0
- package/button-group/index.js.flow +6 -6
- package/button-group/stateful-button-group.js +5 -1
- package/button-group/stateful-button-group.js.flow +4 -3
- package/button-group/stateful-container.js.flow +14 -26
- package/button-group/styled-components.js.flow +5 -5
- package/button-group/types.js.flow +9 -12
- package/card/card.js.flow +12 -30
- package/card/index.js.flow +1 -1
- package/card/styled-components.js.flow +8 -8
- package/card/types.js.flow +3 -3
- package/checkbox/checkbox.js +2 -3
- package/checkbox/checkbox.js.flow +24 -39
- package/checkbox/index.d.ts +1 -0
- package/checkbox/index.js.flow +4 -4
- package/checkbox/stateful-checkbox-container.js.flow +14 -17
- package/checkbox/stateful-checkbox.js.flow +5 -5
- package/checkbox/styled-components.js.flow +27 -50
- package/checkbox/types.js.flow +26 -7
- package/combobox/combobox.js +4 -4
- package/combobox/combobox.js.flow +24 -36
- package/combobox/index.js.flow +2 -2
- package/combobox/styled-components.js.flow +23 -20
- package/combobox/types.js.flow +7 -5
- package/data-table/column-anchor.js.flow +8 -8
- package/data-table/column-boolean.js.flow +15 -20
- package/data-table/column-categorical.js.flow +26 -31
- package/data-table/column-custom.js +1 -0
- package/data-table/column-custom.js.flow +6 -10
- package/data-table/column-datetime.js +6 -6
- package/data-table/column-datetime.js.flow +66 -114
- package/data-table/column-numerical.js.flow +38 -46
- package/data-table/column-row-index.js.flow +3 -3
- package/data-table/column-string.js.flow +8 -8
- package/data-table/column.js +1 -0
- package/data-table/column.js.flow +7 -8
- package/data-table/constants.js.flow +1 -1
- package/data-table/data-table.js +4 -4
- package/data-table/data-table.js.flow +76 -124
- package/data-table/filter-menu.js.flow +26 -37
- package/data-table/filter-shell.js.flow +6 -6
- package/data-table/header-cell.js.flow +112 -122
- package/data-table/index.js.flow +15 -24
- package/data-table/measure-column-widths.js.flow +9 -17
- package/data-table/stateful-container.js.flow +13 -22
- package/data-table/stateful-data-table.js.flow +21 -27
- package/data-table/text-search.js.flow +3 -3
- package/data-table/types.js.flow +17 -20
- package/datepicker/calendar-header.js +4 -7
- package/datepicker/calendar-header.js.flow +105 -174
- package/datepicker/calendar.js +2 -1
- package/datepicker/calendar.js.flow +99 -139
- package/datepicker/datepicker.js +1 -1
- package/datepicker/datepicker.js.flow +84 -159
- package/datepicker/day.js.flow +52 -86
- package/datepicker/index.js.flow +8 -10
- package/datepicker/month.js.flow +10 -14
- package/datepicker/stateful-calendar.js.flow +2 -2
- package/datepicker/stateful-container.js.flow +10 -13
- package/datepicker/stateful-datepicker.js.flow +2 -2
- package/datepicker/styled-components.js +2 -2
- package/datepicker/styled-components.js.flow +111 -150
- package/datepicker/types.js.flow +38 -38
- package/datepicker/utils/calendar-header-helpers.js.flow +5 -5
- package/datepicker/utils/date-fns-adapter.js.flow +1 -1
- package/datepicker/utils/date-helpers.js +1 -1
- package/datepicker/utils/date-helpers.js.flow +85 -127
- package/datepicker/utils/day-state.js.flow +1 -1
- package/datepicker/utils/index.js +1 -1
- package/datepicker/utils/index.js.flow +4 -5
- package/datepicker/utils/types.js.flow +2 -2
- package/datepicker/week.js.flow +8 -11
- package/dnd-list/index.js.flow +7 -6
- package/dnd-list/list.js.flow +18 -45
- package/dnd-list/stateful-list-container.js.flow +7 -10
- package/dnd-list/stateful-list.js.flow +3 -3
- package/dnd-list/styled-components.js.flow +36 -45
- package/dnd-list/types.js.flow +6 -6
- package/drawer/close-icon.js.flow +1 -1
- package/drawer/constants.js.flow +3 -2
- package/drawer/drawer.js +1 -1
- package/drawer/drawer.js.flow +26 -43
- package/drawer/index.js.flow +2 -2
- package/drawer/styled-components.js.flow +34 -47
- package/drawer/types.js.flow +5 -8
- package/es/a11y/a11y.js +1 -1
- package/es/accordion/accordion.js +2 -1
- package/es/accordion/panel.js +1 -1
- package/es/app-nav-bar/mobile-menu.js +9 -13
- package/es/app-nav-bar/user-menu.js +8 -9
- package/es/aspect-ratio-box/aspect-ratio-box.js +2 -2
- package/es/block/block.js +1 -1
- package/es/breadcrumbs/breadcrumbs.js +4 -7
- package/es/button/button.js +2 -1
- package/es/button/styled-components.js +20 -6
- package/es/button/utils.js +2 -0
- package/es/button-group/button-group.js +1 -1
- package/es/button-group/stateful-button-group.js +4 -1
- package/es/checkbox/checkbox.js +2 -3
- package/es/checkbox/stateful-checkbox-container.js +0 -3
- package/es/combobox/combobox.js +6 -8
- package/es/data-table/column-custom.js +1 -0
- package/es/data-table/column-datetime.js +6 -6
- package/es/data-table/column.js +1 -0
- package/es/data-table/data-table.js +4 -4
- package/es/datepicker/calendar-header.js +7 -10
- package/es/datepicker/calendar.js +3 -3
- package/es/datepicker/datepicker.js +1 -1
- package/es/datepicker/styled-components.js +2 -2
- package/es/datepicker/utils/date-helpers.js +1 -1
- package/es/datepicker/utils/index.js +1 -1
- package/es/drawer/drawer.js +1 -1
- package/es/flex-grid/flex-grid-item.js +6 -4
- package/es/flex-grid/flex-grid.js +7 -3
- package/es/form-control/form-control.js +4 -4
- package/es/heading/heading.js +1 -1
- package/es/helpers/overrides.js +13 -9
- package/es/icon/alert.js +18 -14
- package/es/icon/arrow-down.js +18 -14
- package/es/icon/arrow-left.js +18 -14
- package/es/icon/arrow-right.js +18 -14
- package/es/icon/arrow-up.js +18 -14
- package/es/icon/blank.js +14 -10
- package/es/icon/check-indeterminate.js +18 -14
- package/es/icon/check.js +18 -14
- package/es/icon/chevron-down.js +19 -15
- package/es/icon/chevron-left.js +18 -14
- package/es/icon/chevron-right.js +18 -14
- package/es/icon/chevron-up.js +19 -15
- package/es/icon/delete-alt.js +18 -14
- package/es/icon/delete.js +18 -14
- package/es/icon/filter.js +32 -28
- package/es/icon/grab.js +18 -14
- package/es/icon/hide.js +16 -12
- package/es/icon/menu.js +32 -28
- package/es/icon/omit-dollar-prefixed-keys.js +1 -1
- package/es/icon/overflow.js +26 -22
- package/es/icon/plus.js +18 -14
- package/es/icon/search.js +18 -14
- package/es/icon/show.js +16 -12
- package/es/icon/spinner.js +23 -19
- package/es/icon/triangle-down.js +16 -12
- package/es/icon/triangle-left.js +16 -12
- package/es/icon/triangle-right.js +16 -12
- package/es/icon/triangle-up.js +16 -12
- package/es/icon/upload.js +18 -14
- package/es/input/masked-input.js +1 -0
- package/es/input/stateful-container.js +0 -1
- package/es/input/styled-components.js +3 -2
- package/es/layer/layer.js +4 -3
- package/es/list/list-heading.js +3 -3
- package/es/list/list-item.js +1 -1
- package/es/list/menu-adapter.js +1 -2
- package/es/map-marker/fixed-marker.js +11 -5
- package/es/menu/maybe-child-menu.js +1 -2
- package/es/menu/menu.js +1 -1
- package/es/menu/option-profile.js +2 -0
- package/es/menu/stateful-container.js +3 -4
- package/es/menu/stateful-menu.js +4 -1
- package/es/menu/types.js +1 -1
- package/es/modal/modal-button.js +5 -1
- package/es/modal/modal.js +1 -3
- package/es/pagination/index.js +1 -1
- package/es/pagination/stateful-container.js +1 -0
- package/es/pagination/stateful-pagination.js +1 -0
- package/es/payment-card/payment-card.js +4 -1
- package/es/payment-card/styled-components.js +0 -1
- package/es/phone-input/base-country-picker.js +6 -8
- package/es/phone-input/country-picker.js +5 -8
- package/es/phone-input/country-select-dropdown.js +4 -2
- package/es/phone-input/country-select.js +5 -8
- package/es/phone-input/flag.js +2 -1
- package/es/phone-input/phone-input-lite.js +1 -2
- package/es/phone-input/phone-input-next.js +1 -2
- package/es/pin-code/pin-code.js +1 -2
- package/es/popover/popover.js +7 -7
- package/es/progress-bar/progressbar-rounded.js +25 -22
- package/es/progress-bar/progressbar.js +6 -3
- package/es/radio/radio.js +1 -1
- package/es/radio/radiogroup.js +1 -1
- package/es/rating/emoticon-rating.js +1 -1
- package/es/rating/star-rating.js +1 -1
- package/es/select/autosize-input.js +1 -2
- package/es/select/dropdown.js +2 -4
- package/es/select/multi-value.js +1 -1
- package/es/select/select-component.js +33 -16
- package/es/select/styled-components.js +1 -2
- package/es/select/value.js +1 -1
- package/es/slider/slider.js +2 -2
- package/es/snackbar/snackbar-element.js +4 -3
- package/es/snackbar/styled-components.js +1 -1
- package/es/spinner/spinner.js +22 -18
- package/es/spinner/styled-components.js +3 -2
- package/es/styles/__mocks__/styled.js +2 -1
- package/es/styles/styled.js +9 -7
- package/es/table/sortable-head-cell.js +1 -1
- package/es/table-semantic/styled-components.js +2 -1
- package/es/tabs/tabs.js +2 -2
- package/es/tag/styled-components.js +4 -8
- package/es/tag/tag.js +1 -1
- package/es/textarea/styled-components.js +9 -7
- package/es/textarea/textarea.js +2 -1
- package/es/timepicker/timepicker.js +2 -4
- package/es/timezonepicker/timezone-picker.js +2 -5
- package/es/timezonepicker/tzdata.js +6 -1
- package/es/timezonepicker/update-tzdata.js +9 -4
- package/es/toast/styled-components.js +30 -28
- package/es/toast/toaster.js +5 -7
- package/es/toast/types.js +0 -2
- package/es/tree-view/tree-label-interactable.js +8 -4
- package/es/tree-view/tree-label.js +5 -1
- package/es/tree-view/tree-node.js +1 -1
- package/es/tree-view/tree-view.js +6 -6
- package/es/typography/index.js +144 -36
- package/es/utils/deep-merge.js +2 -2
- package/es/utils/deprecated-component.js +5 -3
- package/esm/a11y/a11y.js +1 -1
- package/esm/accordion/accordion.js +3 -2
- package/esm/accordion/panel.js +1 -1
- package/esm/app-nav-bar/mobile-menu.js +9 -13
- package/esm/app-nav-bar/user-menu.js +8 -9
- package/esm/aspect-ratio-box/aspect-ratio-box.js +2 -2
- package/esm/block/block.js +1 -1
- package/esm/breadcrumbs/breadcrumbs.js +4 -7
- package/esm/button/button.js +2 -1
- package/esm/button/styled-components.js +19 -5
- package/esm/button/utils.js +3 -1
- package/esm/button-group/button-group.js +1 -1
- package/esm/button-group/stateful-button-group.js +5 -1
- package/esm/checkbox/checkbox.js +2 -3
- package/esm/combobox/combobox.js +4 -4
- package/esm/data-table/column-custom.js +1 -0
- package/esm/data-table/column-datetime.js +6 -6
- package/esm/data-table/column.js +1 -0
- package/esm/data-table/data-table.js +4 -4
- package/esm/datepicker/calendar-header.js +7 -10
- package/esm/datepicker/calendar.js +2 -1
- package/esm/datepicker/datepicker.js +1 -1
- package/esm/datepicker/styled-components.js +2 -2
- package/esm/datepicker/utils/date-helpers.js +1 -1
- package/esm/datepicker/utils/index.js +1 -1
- package/esm/drawer/drawer.js +1 -1
- package/esm/flex-grid/flex-grid-item.js +5 -3
- package/esm/flex-grid/flex-grid.js +14 -9
- package/esm/form-control/form-control.js +4 -4
- package/esm/heading/heading.js +1 -1
- package/esm/helpers/overrides.js +13 -9
- package/esm/icon/alert.js +18 -14
- package/esm/icon/arrow-down.js +18 -14
- package/esm/icon/arrow-left.js +18 -14
- package/esm/icon/arrow-right.js +18 -14
- package/esm/icon/arrow-up.js +18 -14
- package/esm/icon/blank.js +14 -10
- package/esm/icon/check-indeterminate.js +18 -14
- package/esm/icon/check.js +18 -14
- package/esm/icon/chevron-down.js +19 -15
- package/esm/icon/chevron-left.js +18 -14
- package/esm/icon/chevron-right.js +18 -14
- package/esm/icon/chevron-up.js +19 -15
- package/esm/icon/delete-alt.js +18 -14
- package/esm/icon/delete.js +18 -14
- package/esm/icon/filter.js +32 -28
- package/esm/icon/grab.js +18 -14
- package/esm/icon/hide.js +16 -12
- package/esm/icon/menu.js +32 -28
- package/esm/icon/omit-dollar-prefixed-keys.js +1 -1
- package/esm/icon/overflow.js +26 -22
- package/esm/icon/plus.js +18 -14
- package/esm/icon/search.js +18 -14
- package/esm/icon/show.js +16 -12
- package/esm/icon/spinner.js +23 -19
- package/esm/icon/triangle-down.js +16 -12
- package/esm/icon/triangle-left.js +16 -12
- package/esm/icon/triangle-right.js +16 -12
- package/esm/icon/triangle-up.js +16 -12
- package/esm/icon/upload.js +18 -14
- package/esm/input/masked-input.js +1 -0
- package/esm/input/stateful-container.js +0 -1
- package/esm/input/styled-components.js +6 -2
- package/esm/layer/layer.js +4 -3
- package/esm/list/list-heading.js +3 -3
- package/esm/list/list-item.js +1 -1
- package/esm/list/menu-adapter.js +1 -2
- package/esm/map-marker/fixed-marker.js +11 -5
- package/esm/menu/maybe-child-menu.js +1 -2
- package/esm/menu/menu.js +1 -1
- package/esm/menu/option-profile.js +2 -0
- package/esm/menu/stateful-container.js +3 -4
- package/esm/menu/stateful-menu.js +9 -5
- package/esm/menu/types.js +1 -1
- package/esm/modal/modal-button.js +10 -5
- package/esm/modal/modal.js +1 -3
- package/esm/pagination/index.js +1 -1
- package/esm/pagination/stateful-container.js +1 -0
- package/esm/pagination/stateful-pagination.js +1 -0
- package/esm/payment-card/payment-card.js +25 -21
- package/esm/phone-input/base-country-picker.js +6 -8
- package/esm/phone-input/country-picker.js +5 -8
- package/esm/phone-input/country-select-dropdown.js +4 -2
- package/esm/phone-input/country-select.js +5 -8
- package/esm/phone-input/flag.js +2 -1
- package/esm/phone-input/phone-input-lite.js +1 -2
- package/esm/phone-input/phone-input-next.js +1 -2
- package/esm/pin-code/pin-code.js +1 -2
- package/esm/popover/popover.js +7 -7
- package/esm/progress-bar/progressbar-rounded.js +25 -22
- package/esm/progress-bar/progressbar.js +9 -5
- package/esm/radio/radio.js +3 -1
- package/esm/radio/radiogroup.js +1 -1
- package/esm/rating/emoticon-rating.js +1 -1
- package/esm/rating/star-rating.js +1 -1
- package/esm/select/autosize-input.js +1 -2
- package/esm/select/dropdown.js +1 -2
- package/esm/select/multi-value.js +1 -1
- package/esm/select/select-component.js +35 -15
- package/esm/select/styled-components.js +1 -2
- package/esm/select/value.js +1 -1
- package/esm/slider/slider.js +2 -2
- package/esm/snackbar/snackbar-element.js +4 -3
- package/esm/snackbar/styled-components.js +1 -1
- package/esm/spinner/spinner.js +22 -18
- package/esm/spinner/styled-components.js +0 -2
- package/esm/styles/__mocks__/styled.js +2 -1
- package/esm/styles/styled.js +9 -7
- package/esm/table/sortable-head-cell.js +1 -1
- package/esm/table-semantic/styled-components.js +2 -1
- package/esm/tabs/tabs.js +2 -2
- package/esm/tag/styled-components.js +4 -8
- package/esm/tag/tag.js +1 -1
- package/esm/textarea/styled-components.js +8 -7
- package/esm/textarea/textarea.js +2 -1
- package/esm/timepicker/timepicker.js +2 -4
- package/esm/timezonepicker/timezone-picker.js +2 -5
- package/esm/timezonepicker/tzdata.js +6 -1
- package/esm/timezonepicker/update-tzdata.js +11 -13
- package/esm/toast/styled-components.js +30 -19
- package/esm/toast/toaster.js +5 -7
- package/esm/toast/types.js +0 -2
- package/esm/tree-view/tree-label-interactable.js +12 -8
- package/esm/tree-view/tree-label.js +7 -3
- package/esm/tree-view/tree-node.js +1 -1
- package/esm/tree-view/tree-view.js +6 -6
- package/esm/typography/index.js +416 -272
- package/esm/utils/deep-merge.js +2 -2
- package/esm/utils/deprecated-component.js +5 -3
- package/file-uploader/file-uploader.js.flow +30 -60
- package/file-uploader/index.js.flow +1 -1
- package/file-uploader/styled-components.js.flow +9 -11
- package/file-uploader/types.js.flow +8 -10
- package/flex-grid/flex-grid-item.js +5 -3
- package/flex-grid/flex-grid-item.js.flow +31 -40
- package/flex-grid/flex-grid.js +14 -9
- package/flex-grid/flex-grid.js.flow +32 -31
- package/flex-grid/index.js.flow +2 -2
- package/flex-grid/types.js.flow +1 -1
- package/form-control/form-control.js +4 -4
- package/form-control/form-control.js.flow +16 -32
- package/form-control/index.js.flow +1 -1
- package/form-control/styled-components.js.flow +18 -21
- package/form-control/types.js.flow +2 -2
- package/header-navigation/header-navigation.js.flow +5 -10
- package/header-navigation/index.js.flow +2 -2
- package/header-navigation/styled-components.js.flow +38 -41
- package/header-navigation/types.js.flow +1 -1
- package/heading/heading-level.js.flow +3 -7
- package/heading/heading.js +1 -1
- package/heading/heading.js.flow +9 -23
- package/heading/index.js.flow +2 -2
- package/heading/types.js.flow +1 -1
- package/helper/constants.js.flow +1 -1
- package/helper/helper-steps.js.flow +8 -21
- package/helper/helper.js.flow +8 -8
- package/helper/index.js.flow +4 -4
- package/helper/stateful-helper.js.flow +5 -5
- package/helper/styled-components.js.flow +12 -24
- package/helpers/base-provider.js.flow +5 -5
- package/helpers/i18n-interpolation.js.flow +2 -2
- package/helpers/overrides.js +13 -9
- package/helpers/overrides.js.flow +40 -51
- package/helpers/react-helpers.js.flow +5 -5
- package/helpers/responsive-helpers.js.flow +2 -2
- package/helpers/strings.js.flow +1 -2
- package/helpers/types.js.flow +2 -2
- package/icon/alert.js +18 -14
- package/icon/alert.js.flow +7 -6
- package/icon/arrow-down.js +18 -14
- package/icon/arrow-down.js.flow +8 -14
- package/icon/arrow-left.js +18 -14
- package/icon/arrow-left.js.flow +8 -14
- package/icon/arrow-right.js +18 -14
- package/icon/arrow-right.js.flow +8 -14
- package/icon/arrow-up.js +18 -14
- package/icon/arrow-up.js.flow +8 -8
- package/icon/blank.js +14 -10
- package/icon/blank.js.flow +7 -6
- package/icon/build-icons.js.flow +13 -28
- package/icon/check-indeterminate.js +18 -14
- package/icon/check-indeterminate.js.flow +8 -15
- package/icon/check.js +18 -14
- package/icon/check.js.flow +7 -6
- package/icon/chevron-down.js +19 -15
- package/icon/chevron-down.js.flow +8 -8
- package/icon/chevron-left.js +18 -14
- package/icon/chevron-left.js.flow +8 -8
- package/icon/chevron-right.js +18 -14
- package/icon/chevron-right.js.flow +8 -10
- package/icon/chevron-up.js +19 -15
- package/icon/chevron-up.js.flow +8 -8
- package/icon/delete-alt.js +18 -14
- package/icon/delete-alt.js.flow +8 -14
- package/icon/delete.js +18 -14
- package/icon/delete.js.flow +7 -6
- package/icon/filter.js +32 -28
- package/icon/filter.js.flow +7 -6
- package/icon/grab.js +18 -14
- package/icon/grab.js.flow +7 -6
- package/icon/hide.js +16 -12
- package/icon/hide.js.flow +7 -6
- package/icon/icon-exports.js.flow +28 -28
- package/icon/icon.js.flow +4 -4
- package/icon/index.js.flow +2 -2
- package/icon/menu.js +32 -28
- package/icon/menu.js.flow +7 -6
- package/icon/omit-dollar-prefixed-keys.js +1 -1
- package/icon/omit-dollar-prefixed-keys.js.flow +2 -2
- package/icon/overflow.js +26 -22
- package/icon/overflow.js.flow +8 -8
- package/icon/plus.js +18 -14
- package/icon/plus.js.flow +7 -6
- package/icon/search.js +18 -14
- package/icon/search.js.flow +7 -6
- package/icon/show.js +16 -12
- package/icon/show.js.flow +7 -6
- package/icon/spinner.js +23 -19
- package/icon/spinner.js.flow +8 -8
- package/icon/styled-components.js.flow +13 -4
- package/icon/triangle-down.js +16 -12
- package/icon/triangle-down.js.flow +8 -16
- package/icon/triangle-left.js +16 -12
- package/icon/triangle-left.js.flow +8 -16
- package/icon/triangle-right.js +16 -12
- package/icon/triangle-right.js.flow +8 -16
- package/icon/triangle-up.js +16 -12
- package/icon/triangle-up.js.flow +8 -14
- package/icon/types.js.flow +1 -1
- package/icon/upload.js +18 -14
- package/icon/upload.js.flow +7 -6
- package/index.js.flow +5 -5
- package/input/base-input.js.flow +32 -57
- package/input/index.d.ts +1 -1
- package/input/index.js.flow +6 -11
- package/input/input.js.flow +13 -27
- package/input/masked-input.js +1 -0
- package/input/masked-input.js.flow +8 -7
- package/input/stateful-container.js +0 -1
- package/input/stateful-container.js.flow +6 -12
- package/input/stateful-input.js.flow +2 -2
- package/input/styled-components.js +6 -2
- package/input/styled-components.js.flow +78 -59
- package/input/types.js.flow +17 -18
- package/input/utils.js.flow +5 -5
- package/layer/index.js.flow +4 -4
- package/layer/layer.js +4 -3
- package/layer/layer.js.flow +19 -30
- package/layer/layers-manager.js.flow +25 -36
- package/layer/tether.js.flow +12 -14
- package/layer/types.js.flow +3 -3
- package/layer/utils.js.flow +2 -8
- package/layout-grid/cell.js.flow +5 -8
- package/layout-grid/grid.js.flow +11 -26
- package/layout-grid/index.js.flow +2 -2
- package/layout-grid/styled-components.js.flow +23 -38
- package/layout-grid/types.js.flow +3 -6
- package/link/index.js.flow +8 -8
- package/link/styled-components.js.flow +5 -7
- package/list/index.d.ts +4 -13
- package/list/index.js.flow +5 -5
- package/list/list-heading.js +3 -3
- package/list/list-heading.js.flow +76 -91
- package/list/list-item-label.js.flow +8 -12
- package/list/list-item.js +1 -1
- package/list/list-item.js.flow +64 -69
- package/list/menu-adapter.js +1 -2
- package/list/menu-adapter.js.flow +29 -36
- package/list/styled-components.js.flow +52 -60
- package/list/types.js.flow +11 -11
- package/list/utils.js.flow +3 -6
- package/locale/es_AR.js.flow +1 -2
- package/locale/index.js.flow +5 -10
- package/locale/types.js.flow +12 -12
- package/map-marker/badge-enhancer.js.flow +12 -27
- package/map-marker/constants.js.flow +3 -3
- package/map-marker/drag-shadow.js.flow +8 -23
- package/map-marker/fixed-marker.js +11 -5
- package/map-marker/fixed-marker.js.flow +21 -29
- package/map-marker/floating-marker.js.flow +9 -18
- package/map-marker/index.js.flow +2 -2
- package/map-marker/label-enhancer.js.flow +6 -9
- package/map-marker/needle.js.flow +6 -12
- package/map-marker/pin-head.js.flow +15 -38
- package/map-marker/styled-components.js.flow +45 -60
- package/map-marker/types.js.flow +9 -11
- package/menu/index.d.ts +2 -1
- package/menu/index.js.flow +7 -7
- package/menu/maybe-child-menu.js +1 -2
- package/menu/maybe-child-menu.js.flow +11 -14
- package/menu/menu.js +1 -1
- package/menu/menu.js.flow +17 -26
- package/menu/nested-menus.js.flow +21 -23
- package/menu/option-list.js.flow +16 -18
- package/menu/option-profile.js +2 -0
- package/menu/option-profile.js.flow +16 -30
- package/menu/stateful-container.js +3 -4
- package/menu/stateful-container.js.flow +42 -62
- package/menu/stateful-menu.js +9 -5
- package/menu/stateful-menu.js.flow +6 -5
- package/menu/styled-components.js.flow +47 -64
- package/menu/types.js.flow +30 -36
- package/menu/utils.js.flow +1 -1
- package/modal/close-icon.js.flow +2 -6
- package/modal/focus-once.js.flow +1 -1
- package/modal/index.js.flow +4 -4
- package/modal/modal-button.js +10 -5
- package/modal/modal-button.js.flow +10 -15
- package/modal/modal.js +1 -3
- package/modal/modal.js.flow +23 -40
- package/modal/styled-components.js.flow +18 -32
- package/modal/types.js.flow +6 -12
- package/notification/index.js.flow +2 -2
- package/notification/notification.js.flow +2 -2
- package/package.json +26 -22
- package/pagination/index.js +8 -8
- package/pagination/index.js.flow +8 -11
- package/pagination/pagination.js.flow +39 -62
- package/pagination/stateful-container.js +1 -0
- package/pagination/stateful-container.js.flow +14 -22
- package/pagination/stateful-pagination.js +1 -0
- package/pagination/stateful-pagination.js.flow +4 -6
- package/pagination/styled-components.js.flow +10 -14
- package/pagination/types.js.flow +12 -8
- package/payment-card/icons/amex.js.flow +2 -5
- package/payment-card/icons/dinersclub.js.flow +1 -1
- package/payment-card/icons/discover.js.flow +1 -1
- package/payment-card/icons/elo.js.flow +1 -1
- package/payment-card/icons/generic.js.flow +1 -1
- package/payment-card/icons/jcb.js.flow +4 -13
- package/payment-card/icons/maestro.js.flow +1 -1
- package/payment-card/icons/mastercard.js.flow +1 -1
- package/payment-card/icons/unionpay.js.flow +1 -1
- package/payment-card/icons/visa.js.flow +1 -1
- package/payment-card/index.js.flow +6 -6
- package/payment-card/payment-card.js +25 -21
- package/payment-card/payment-card.js.flow +16 -21
- package/payment-card/stateful-payment-card.js.flow +3 -2
- package/payment-card/styled-components.js.flow +5 -6
- package/payment-card/types.js.flow +2 -6
- package/payment-card/utils.js.flow +6 -18
- package/phone-input/base-country-picker.js +7 -8
- package/phone-input/base-country-picker.js.flow +27 -44
- package/phone-input/constants.js.flow +227 -227
- package/phone-input/country-picker.js +5 -8
- package/phone-input/country-picker.js.flow +19 -29
- package/phone-input/country-select-dropdown.js +3 -2
- package/phone-input/country-select-dropdown.js.flow +31 -43
- package/phone-input/country-select.js +5 -8
- package/phone-input/country-select.js.flow +13 -28
- package/phone-input/default-props.js.flow +2 -6
- package/phone-input/flag.js +2 -1
- package/phone-input/flag.js.flow +7 -6
- package/phone-input/flags/index.js.flow +241 -241
- package/phone-input/index.js.flow +10 -14
- package/phone-input/phone-input-lite.js +1 -2
- package/phone-input/phone-input-lite.js.flow +6 -7
- package/phone-input/phone-input-next.js +1 -2
- package/phone-input/phone-input-next.js.flow +13 -14
- package/phone-input/phone-input.js.flow +2 -2
- package/phone-input/stateful-phone-input-container.js.flow +4 -4
- package/phone-input/stateful-phone-input-next.js.flow +3 -5
- package/phone-input/stateful-phone-input.js.flow +1 -1
- package/phone-input/styled-components.js.flow +54 -59
- package/phone-input/types.js.flow +11 -16
- package/phone-input/utils.js.flow +2 -4
- package/pin-code/default-props.js.flow +1 -1
- package/pin-code/index.js.flow +4 -6
- package/pin-code/pin-code.js +1 -2
- package/pin-code/pin-code.js.flow +15 -28
- package/pin-code/stateful-pin-code-container.js.flow +6 -10
- package/pin-code/stateful-pin-code.js.flow +1 -1
- package/pin-code/styled-components.js.flow +19 -22
- package/pin-code/types.js.flow +6 -6
- package/popover/default-props.js.flow +2 -2
- package/popover/index.js.flow +3 -3
- package/popover/popover.js +7 -3
- package/popover/popover.js.flow +59 -75
- package/popover/stateful-container.js.flow +5 -8
- package/popover/stateful-popover.js.flow +4 -9
- package/popover/styled-components.js.flow +13 -26
- package/popover/types.js.flow +13 -28
- package/popover/utils.js.flow +9 -16
- package/progress-bar/index.d.ts +4 -3
- package/progress-bar/index.js.flow +3 -3
- package/progress-bar/progressbar-rounded.js +25 -22
- package/progress-bar/progressbar-rounded.js.flow +10 -7
- package/progress-bar/progressbar.js +9 -5
- package/progress-bar/progressbar.js.flow +20 -36
- package/progress-bar/styled-components.js.flow +98 -117
- package/progress-bar/types.js.flow +4 -7
- package/progress-steps/index.js.flow +3 -3
- package/progress-steps/numbered-step.js.flow +6 -15
- package/progress-steps/progress-steps.js.flow +7 -14
- package/progress-steps/step.js.flow +7 -20
- package/progress-steps/styled-components.js.flow +25 -29
- package/progress-steps/types.js.flow +2 -2
- package/radio/index.js.flow +5 -5
- package/radio/radio.js +3 -1
- package/radio/radio.js.flow +16 -19
- package/radio/radiogroup.js +1 -1
- package/radio/radiogroup.js.flow +19 -28
- package/radio/stateful-radiogroup-container.js.flow +7 -10
- package/radio/stateful-radiogroup.js.flow +4 -6
- package/radio/styled-components.js.flow +26 -32
- package/radio/types.js.flow +5 -4
- package/rating/emoticon-rating.js +1 -1
- package/rating/emoticon-rating.js.flow +26 -40
- package/rating/index.js.flow +2 -2
- package/rating/star-rating.js +1 -1
- package/rating/star-rating.js.flow +23 -34
- package/rating/styled-components.js.flow +8 -27
- package/rating/types.js.flow +4 -4
- package/select/autosize-input.js +1 -2
- package/select/autosize-input.js.flow +10 -18
- package/select/constants.js.flow +1 -1
- package/select/default-props.js.flow +1 -1
- package/select/dropdown.js +1 -2
- package/select/dropdown.js.flow +20 -35
- package/select/index.d.ts +26 -33
- package/select/index.js.flow +11 -13
- package/select/multi-select.js.flow +2 -4
- package/select/multi-value.js +1 -1
- package/select/multi-value.js.flow +6 -9
- package/select/select-component.js +35 -16
- package/select/select-component.js.flow +124 -184
- package/select/select.js.flow +1 -6
- package/select/single-select.js.flow +1 -1
- package/select/stateful-select-container.js.flow +5 -13
- package/select/stateful-select.js.flow +1 -1
- package/select/styled-components.js.flow +167 -218
- package/select/types.js.flow +25 -24
- package/select/utils/default-filter-options.js.flow +7 -8
- package/select/utils/index.js.flow +5 -12
- package/select/value.js +1 -1
- package/select/value.js.flow +5 -8
- package/side-navigation/index.js.flow +2 -2
- package/side-navigation/nav-item.js.flow +8 -13
- package/side-navigation/nav.js.flow +15 -35
- package/side-navigation/stateful-container.js.flow +10 -19
- package/side-navigation/stateful-nav.js.flow +2 -2
- package/side-navigation/styled-components.js.flow +16 -20
- package/side-navigation/types.js.flow +9 -9
- package/skeleton/index.js.flow +1 -1
- package/skeleton/skeleton.js.flow +4 -4
- package/skeleton/styled-components.js.flow +15 -18
- package/skeleton/types.js.flow +1 -1
- package/slider/index.js.flow +4 -3
- package/slider/slider.js +2 -2
- package/slider/slider.js.flow +19 -41
- package/slider/stateful-slider-container.js.flow +9 -12
- package/slider/stateful-slider.js.flow +2 -2
- package/slider/styled-components.js.flow +21 -21
- package/slider/types.js.flow +9 -13
- package/snackbar/index.js.flow +3 -3
- package/snackbar/snackbar-context.js.flow +16 -23
- package/snackbar/snackbar-element.js +4 -3
- package/snackbar/snackbar-element.js.flow +19 -32
- package/snackbar/styled-components.js +1 -1
- package/snackbar/styled-components.js.flow +19 -24
- package/snackbar/types.js.flow +6 -6
- package/spinner/index.js.flow +3 -2
- package/spinner/spinner.js +22 -18
- package/spinner/spinner.js.flow +10 -20
- package/spinner/styled-components.js +0 -2
- package/spinner/styled-components.js.flow +12 -11
- package/spinner/types.js.flow +3 -3
- package/styles/__mocks__/styled.js +1 -0
- package/styles/as-primary-export-hoc.js.flow +2 -2
- package/styles/index.js.flow +3 -3
- package/styles/styled.js +9 -7
- package/styles/styled.js.flow +35 -43
- package/styles/theme-provider.js.flow +6 -10
- package/styles/types.js.flow +2 -2
- package/styles/util.js.flow +17 -4
- package/table/filter.js.flow +12 -28
- package/table/index.d.ts +1 -0
- package/table/index.js.flow +4 -7
- package/table/sortable-head-cell.js +1 -1
- package/table/sortable-head-cell.js.flow +10 -13
- package/table/styled-components.js.flow +67 -79
- package/table/table.js.flow +2 -2
- package/table/types.js.flow +3 -2
- package/table-grid/index.js.flow +3 -7
- package/table-grid/sortable-head-cell.js.flow +2 -2
- package/table-grid/styled-components.js.flow +21 -23
- package/table-semantic/index.js.flow +4 -4
- package/table-semantic/styled-components.js +2 -1
- package/table-semantic/styled-components.js.flow +88 -125
- package/table-semantic/table-builder-column.js.flow +2 -4
- package/table-semantic/table-builder.js.flow +31 -70
- package/table-semantic/table.js.flow +13 -28
- package/table-semantic/types.js.flow +2 -2
- package/tabs/index.js.flow +4 -4
- package/tabs/stateful-tabs.js.flow +8 -24
- package/tabs/styled-components.js.flow +11 -11
- package/tabs/tab.js.flow +13 -16
- package/tabs/tabs.js +2 -2
- package/tabs/tabs.js.flow +17 -38
- package/tabs/types.js.flow +6 -6
- package/tabs-motion/stateful-tabs.js.flow +11 -24
- package/tabs-motion/styled-components.js.flow +59 -71
- package/tabs-motion/tab.js.flow +1 -1
- package/tabs-motion/tabs.js.flow +32 -62
- package/tabs-motion/types.js.flow +9 -9
- package/tabs-motion/utils.js.flow +6 -10
- package/tag/index.js.flow +2 -2
- package/tag/styled-components.js +4 -8
- package/tag/styled-components.js.flow +140 -146
- package/tag/tag.js +1 -1
- package/tag/tag.js.flow +13 -17
- package/tag/types.js.flow +2 -2
- package/tag/utils.js.flow +2 -2
- package/textarea/constants.js.flow +1 -1
- package/textarea/index.js.flow +5 -5
- package/textarea/stateful-container.js.flow +1 -0
- package/textarea/stateful-textarea.js.flow +1 -1
- package/textarea/styled-components.js +8 -7
- package/textarea/styled-components.js.flow +18 -15
- package/textarea/textarea.js +2 -1
- package/textarea/textarea.js.flow +11 -10
- package/textarea/types.js.flow +7 -5
- package/themes/dark-theme/borders.js.flow +1 -1
- package/themes/dark-theme/color-component-tokens.js.flow +2 -4
- package/themes/dark-theme/color-deprecated-semantic-tokens.js.flow +1 -1
- package/themes/dark-theme/color-semantic-tokens.js.flow +2 -2
- package/themes/dark-theme/color-tokens.js.flow +2 -2
- package/themes/dark-theme/create-dark-theme.js.flow +5 -7
- package/themes/dark-theme/dark-theme.js.flow +1 -1
- package/themes/dark-theme/primitives.js.flow +2 -2
- package/themes/index.js.flow +4 -4
- package/themes/light-theme/color-component-tokens.js.flow +2 -4
- package/themes/light-theme/color-deprecated-semantic-tokens.js.flow +2 -4
- package/themes/light-theme/color-semantic-tokens.js.flow +2 -2
- package/themes/light-theme/color-tokens.js.flow +2 -2
- package/themes/light-theme/create-light-theme.js.flow +5 -7
- package/themes/light-theme/light-theme.js.flow +1 -1
- package/themes/light-theme/primitives.js.flow +2 -2
- package/themes/move-theme/dark-theme-with-move.js.flow +3 -6
- package/themes/move-theme/light-theme-with-move.js.flow +3 -6
- package/themes/move-theme/typography.js.flow +28 -29
- package/themes/shared/animation.js.flow +1 -1
- package/themes/shared/borders.js.flow +1 -1
- package/themes/shared/breakpoints.js.flow +1 -1
- package/themes/shared/grid.js.flow +1 -1
- package/themes/shared/lighting.js.flow +1 -1
- package/themes/shared/media-query.js.flow +2 -2
- package/themes/shared/sizing.js.flow +1 -1
- package/themes/shared/typography.js.flow +20 -21
- package/themes/types.js.flow +3 -3
- package/timepicker/index.js.flow +1 -1
- package/timepicker/timepicker.js +2 -4
- package/timepicker/timepicker.js.flow +40 -73
- package/timepicker/types.js.flow +4 -4
- package/timezonepicker/index.js.flow +1 -1
- package/timezonepicker/timezone-picker.js +2 -5
- package/timezonepicker/timezone-picker.js.flow +26 -39
- package/timezonepicker/types.js.flow +5 -5
- package/timezonepicker/tzdata.js +6 -1
- package/timezonepicker/tzdata.js.flow +6 -1
- package/timezonepicker/update-tzdata.js +11 -13
- package/timezonepicker/update-tzdata.js.flow +11 -6
- package/toast/index.js.flow +3 -3
- package/toast/styled-components.js +30 -19
- package/toast/styled-components.js.flow +87 -74
- package/toast/toast.js.flow +25 -37
- package/toast/toaster.js +5 -7
- package/toast/toaster.js.flow +42 -65
- package/toast/types.js.flow +4 -5
- package/tokens/colors.js.flow +1 -1
- package/tokens/index.js.flow +1 -1
- package/tooltip/default-props.js.flow +2 -2
- package/tooltip/index.js.flow +4 -9
- package/tooltip/stateful-tooltip-container.js.flow +2 -2
- package/tooltip/stateful-tooltip.js.flow +3 -3
- package/tooltip/styled-components.js.flow +7 -11
- package/tooltip/tooltip.js.flow +5 -10
- package/tree-view/index.js.flow +5 -5
- package/tree-view/stateful-container.js.flow +12 -18
- package/tree-view/stateful-tree-view.js.flow +2 -2
- package/tree-view/styled-components.js.flow +25 -35
- package/tree-view/tree-label-interactable.js +12 -8
- package/tree-view/tree-label-interactable.js.flow +9 -9
- package/tree-view/tree-label.js +7 -3
- package/tree-view/tree-label.js.flow +12 -27
- package/tree-view/tree-node.js +1 -1
- package/tree-view/tree-node.js.flow +8 -9
- package/tree-view/tree-view.js +6 -6
- package/tree-view/tree-view.js.flow +17 -30
- package/tree-view/types.js.flow +6 -4
- package/tree-view/utils.js.flow +24 -55
- package/typography/index.js +416 -272
- package/typography/index.js.flow +388 -432
- package/utils/create-event.js.flow +1 -1
- package/utils/deep-merge.js +2 -2
- package/utils/deep-merge.js.flow +4 -7
- package/utils/deprecated-component.js +5 -3
- package/utils/deprecated-component.js.flow +7 -5
- package/utils/focusVisible.js.flow +26 -22
|
@@ -8,18 +8,18 @@ LICENSE file in the root directory of this source tree.
|
|
|
8
8
|
/* eslint-disable cup/no-undef */
|
|
9
9
|
import * as React from 'react';
|
|
10
10
|
|
|
11
|
-
import {getOverrides} from '../helpers/overrides.js';
|
|
11
|
+
import { getOverrides } from '../helpers/overrides.js';
|
|
12
12
|
import DeleteAlt from '../icon/delete-alt.js';
|
|
13
13
|
import TriangleDownIcon from '../icon/triangle-down.js';
|
|
14
14
|
import SearchIconComponent from '../icon/search.js';
|
|
15
|
-
import {LocaleContext} from '../locale/index.js';
|
|
16
|
-
import type {LocaleT} from '../locale/types.js';
|
|
17
|
-
import {Popover, PLACEMENT} from '../popover/index.js';
|
|
18
|
-
import {Spinner} from '../spinner/index.js';
|
|
19
|
-
import {UIDConsumer} from 'react-uid';
|
|
15
|
+
import { LocaleContext } from '../locale/index.js';
|
|
16
|
+
import type { LocaleT } from '../locale/types.js';
|
|
17
|
+
import { Popover, PLACEMENT } from '../popover/index.js';
|
|
18
|
+
import { Spinner } from '../spinner/index.js';
|
|
19
|
+
import { UIDConsumer } from 'react-uid';
|
|
20
20
|
|
|
21
21
|
import AutosizeInput from './autosize-input.js';
|
|
22
|
-
import {TYPE, STATE_CHANGE_TYPE} from './constants.js';
|
|
22
|
+
import { TYPE, STATE_CHANGE_TYPE } from './constants.js';
|
|
23
23
|
import defaultProps from './default-props.js';
|
|
24
24
|
import SelectDropdown from './dropdown.js';
|
|
25
25
|
import {
|
|
@@ -34,26 +34,20 @@ import {
|
|
|
34
34
|
getLoadingIconStyles,
|
|
35
35
|
StyledSearchIconContainer,
|
|
36
36
|
} from './styled-components.js';
|
|
37
|
-
import type {
|
|
38
|
-
|
|
39
|
-
SelectStateT,
|
|
40
|
-
ValueT,
|
|
41
|
-
OptionT,
|
|
42
|
-
ChangeActionT,
|
|
43
|
-
} from './types.js';
|
|
44
|
-
import {expandValue, normalizeOptions} from './utils/index.js';
|
|
37
|
+
import type { PropsT, SelectStateT, ValueT, OptionT, ChangeActionT, ReactRefT } from './types.js';
|
|
38
|
+
import { expandValue, normalizeOptions } from './utils/index.js';
|
|
45
39
|
|
|
46
40
|
function Noop() {
|
|
47
41
|
return null;
|
|
48
42
|
}
|
|
49
43
|
|
|
50
|
-
const isClick = event => event.type === 'click';
|
|
51
|
-
const isLeftClick = event =>
|
|
44
|
+
const isClick = (event) => event.type === 'click';
|
|
45
|
+
const isLeftClick = (event) =>
|
|
52
46
|
event.button !== null && event.button !== undefined && event.button === 0;
|
|
53
47
|
|
|
54
48
|
const containsNode = (parent, child) => {
|
|
55
49
|
if (__BROWSER__) {
|
|
56
|
-
//
|
|
50
|
+
// flowlint-next-line unclear-type:off
|
|
57
51
|
return child && parent && parent.contains((child: any));
|
|
58
52
|
}
|
|
59
53
|
};
|
|
@@ -72,17 +66,16 @@ export function isInteractive(rootTarget: EventTarget, rootElement: Element) {
|
|
|
72
66
|
return false;
|
|
73
67
|
}
|
|
74
68
|
|
|
75
|
-
// eslint-disable-next-line flowtype/no-weak-types
|
|
76
69
|
class Select extends React.Component<PropsT, SelectStateT> {
|
|
77
70
|
static defaultProps = defaultProps;
|
|
78
71
|
|
|
79
72
|
// anchor is a ref that refers to the outermost element rendered when the dropdown menu is not
|
|
80
73
|
// open. This is required so that we can check if clicks are on/off the anchor element.
|
|
81
|
-
anchor:
|
|
74
|
+
anchor: ReactRefT<HTMLElement> = React.createRef<HTMLElement>();
|
|
82
75
|
// dropdown is a ref that refers to the popover element. This is required so that we can check if
|
|
83
76
|
// clicks are on/off the dropdown element.
|
|
84
|
-
dropdown:
|
|
85
|
-
input: React.ElementRef
|
|
77
|
+
dropdown: ReactRefT<HTMLElement> = React.createRef<HTMLElement>();
|
|
78
|
+
input: React.ElementRef<typeof HTMLInputElement>;
|
|
86
79
|
// dragging is a flag to track whether a mobile device is currently scrolling versus clicking.
|
|
87
80
|
dragging: boolean;
|
|
88
81
|
// focusAfterClear is a flag to indicate that the dropdowm menu should open after a selected
|
|
@@ -125,11 +118,16 @@ class Select extends React.Component<PropsT, SelectStateT> {
|
|
|
125
118
|
}
|
|
126
119
|
this.isItMounted = true;
|
|
127
120
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
methodsRef.current = {
|
|
121
|
+
const { controlRef } = this.props;
|
|
122
|
+
if (controlRef && typeof controlRef !== 'function') {
|
|
123
|
+
controlRef.current = {
|
|
132
124
|
setDropdownOpen: this.handleDropdownOpen.bind(this),
|
|
125
|
+
setInputValue: this.handleSetInputValue.bind(this),
|
|
126
|
+
setInputFocus: this.handleSetInputFocus.bind(this),
|
|
127
|
+
setInputBlur: this.handleSetInputBlur.bind(this),
|
|
128
|
+
// `focus` & `blur` below are for backwards compatibility and may be removed. Use setInputFocus and setInputBlur instead.
|
|
129
|
+
focus: this.handleSetInputFocus.bind(this),
|
|
130
|
+
blur: this.handleSetInputBlur.bind(this),
|
|
133
131
|
};
|
|
134
132
|
}
|
|
135
133
|
}
|
|
@@ -171,6 +169,20 @@ class Select extends React.Component<PropsT, SelectStateT> {
|
|
|
171
169
|
});
|
|
172
170
|
}
|
|
173
171
|
|
|
172
|
+
handleSetInputValue(newInputValue: string) {
|
|
173
|
+
this.setState({
|
|
174
|
+
inputValue: newInputValue,
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
handleSetInputFocus() {
|
|
179
|
+
this.input.focus();
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
handleSetInputBlur() {
|
|
183
|
+
this.input.blur();
|
|
184
|
+
}
|
|
185
|
+
|
|
174
186
|
// Handle touch outside on mobile to dismiss menu, ensures that the
|
|
175
187
|
// touch target is not within the anchor DOM node.
|
|
176
188
|
handleTouchOutside = (event: TouchEvent) => {
|
|
@@ -231,9 +243,9 @@ class Select extends React.Component<PropsT, SelectStateT> {
|
|
|
231
243
|
if (!this.props.searchable) {
|
|
232
244
|
this.focus();
|
|
233
245
|
if (this.state.isOpen) {
|
|
234
|
-
this.setState({isOpen: false, isFocused: false});
|
|
246
|
+
this.setState({ isOpen: false, isFocused: false });
|
|
235
247
|
} else {
|
|
236
|
-
this.setState({isOpen: true, isFocused: true});
|
|
248
|
+
this.setState({ isOpen: true, isFocused: true });
|
|
237
249
|
}
|
|
238
250
|
|
|
239
251
|
return;
|
|
@@ -252,7 +264,7 @@ class Select extends React.Component<PropsT, SelectStateT> {
|
|
|
252
264
|
// the provided text highlights rather than position's the cursor at the end of the input.
|
|
253
265
|
if (this.input) this.input.value = '';
|
|
254
266
|
|
|
255
|
-
this.setState(prev => ({
|
|
267
|
+
this.setState((prev) => ({
|
|
256
268
|
isOpen: !this.focusAfterClear && !prev.isOpen,
|
|
257
269
|
isPseudoFocused: false,
|
|
258
270
|
}));
|
|
@@ -360,7 +372,7 @@ class Select extends React.Component<PropsT, SelectStateT> {
|
|
|
360
372
|
}
|
|
361
373
|
break;
|
|
362
374
|
case 9: // tab
|
|
363
|
-
this.setState(prevState => ({
|
|
375
|
+
this.setState((prevState) => ({
|
|
364
376
|
isPseudoFocused: false,
|
|
365
377
|
isFocused: false,
|
|
366
378
|
isOpen: false,
|
|
@@ -371,13 +383,9 @@ class Select extends React.Component<PropsT, SelectStateT> {
|
|
|
371
383
|
}));
|
|
372
384
|
break;
|
|
373
385
|
case 27: // escape
|
|
374
|
-
if (
|
|
375
|
-
!this.state.isOpen &&
|
|
376
|
-
this.props.clearable &&
|
|
377
|
-
this.props.escapeClearsValue
|
|
378
|
-
) {
|
|
386
|
+
if (!this.state.isOpen && this.props.clearable && this.props.escapeClearsValue) {
|
|
379
387
|
this.clearValue(event);
|
|
380
|
-
this.setState({isFocused: false, isPseudoFocused: false});
|
|
388
|
+
this.setState({ isFocused: false, isPseudoFocused: false });
|
|
381
389
|
}
|
|
382
390
|
break;
|
|
383
391
|
case 32: // space
|
|
@@ -386,31 +394,31 @@ class Select extends React.Component<PropsT, SelectStateT> {
|
|
|
386
394
|
}
|
|
387
395
|
event.preventDefault();
|
|
388
396
|
if (!this.state.isOpen) {
|
|
389
|
-
this.setState({isOpen: true});
|
|
397
|
+
this.setState({ isOpen: true });
|
|
390
398
|
}
|
|
391
399
|
break;
|
|
392
400
|
case 38: // up
|
|
393
401
|
event.preventDefault();
|
|
394
402
|
if (!this.state.isOpen) {
|
|
395
|
-
this.setState({isOpen: true});
|
|
403
|
+
this.setState({ isOpen: true });
|
|
396
404
|
}
|
|
397
405
|
break;
|
|
398
406
|
case 40: // down
|
|
399
407
|
event.preventDefault();
|
|
400
408
|
if (!this.state.isOpen) {
|
|
401
|
-
this.setState({isOpen: true});
|
|
409
|
+
this.setState({ isOpen: true });
|
|
402
410
|
}
|
|
403
411
|
break;
|
|
404
412
|
case 33: // page up
|
|
405
413
|
event.preventDefault();
|
|
406
414
|
if (!this.state.isOpen) {
|
|
407
|
-
this.setState({isOpen: true});
|
|
415
|
+
this.setState({ isOpen: true });
|
|
408
416
|
}
|
|
409
417
|
break;
|
|
410
418
|
case 34: // page down
|
|
411
419
|
event.preventDefault();
|
|
412
420
|
if (!this.state.isOpen) {
|
|
413
|
-
this.setState({isOpen: true});
|
|
421
|
+
this.setState({ isOpen: true });
|
|
414
422
|
}
|
|
415
423
|
break;
|
|
416
424
|
case 35: // end key
|
|
@@ -419,7 +427,7 @@ class Select extends React.Component<PropsT, SelectStateT> {
|
|
|
419
427
|
}
|
|
420
428
|
event.preventDefault();
|
|
421
429
|
if (!this.state.isOpen) {
|
|
422
|
-
this.setState({isOpen: true});
|
|
430
|
+
this.setState({ isOpen: true });
|
|
423
431
|
}
|
|
424
432
|
break;
|
|
425
433
|
case 36: // home key
|
|
@@ -428,7 +436,7 @@ class Select extends React.Component<PropsT, SelectStateT> {
|
|
|
428
436
|
}
|
|
429
437
|
event.preventDefault();
|
|
430
438
|
if (!this.state.isOpen) {
|
|
431
|
-
this.setState({isOpen: true});
|
|
439
|
+
this.setState({ isOpen: true });
|
|
432
440
|
}
|
|
433
441
|
break;
|
|
434
442
|
case 46: // delete
|
|
@@ -451,13 +459,13 @@ class Select extends React.Component<PropsT, SelectStateT> {
|
|
|
451
459
|
$disabled: boolean,
|
|
452
460
|
$isHighlighted: boolean,
|
|
453
461
|
},
|
|
454
|
-
}
|
|
462
|
+
}
|
|
455
463
|
): React.Node =>
|
|
456
464
|
option.isCreatable
|
|
457
465
|
? `${locale.select.create} “${option[this.props.labelKey]}”`
|
|
458
466
|
: option[this.props.labelKey];
|
|
459
467
|
|
|
460
|
-
getValueLabel = ({option}: {option: OptionT}): React.Node => {
|
|
468
|
+
getValueLabel = ({ option }: { option: OptionT }): React.Node => {
|
|
461
469
|
return option[this.props.labelKey];
|
|
462
470
|
};
|
|
463
471
|
|
|
@@ -469,7 +477,7 @@ class Select extends React.Component<PropsT, SelectStateT> {
|
|
|
469
477
|
if (value === null || value === undefined) return [];
|
|
470
478
|
value = [value];
|
|
471
479
|
}
|
|
472
|
-
return value.map(value => expandValue(value, this.props));
|
|
480
|
+
return value.map((value) => expandValue(value, this.props));
|
|
473
481
|
}
|
|
474
482
|
|
|
475
483
|
setValue(value: ValueT, option: ?OptionT, type: ChangeActionT) {
|
|
@@ -484,33 +492,30 @@ class Select extends React.Component<PropsT, SelectStateT> {
|
|
|
484
492
|
|
|
485
493
|
handleActiveDescendantChange = (id?: string) => {
|
|
486
494
|
if (id) {
|
|
487
|
-
this.setState({activeDescendant: id});
|
|
495
|
+
this.setState({ activeDescendant: id });
|
|
488
496
|
} else {
|
|
489
|
-
this.setState({activeDescendant: null});
|
|
497
|
+
this.setState({ activeDescendant: null });
|
|
490
498
|
}
|
|
491
499
|
};
|
|
492
500
|
|
|
493
|
-
|
|
501
|
+
// This method is to preserve backwards compatibility for users using controlRef to directly
|
|
502
|
+
// access the input element. This capability is not documented, and may be removed in the future.
|
|
503
|
+
//flowlint-next-line unclear-type:off
|
|
504
|
+
handleInputRef = (input: React.ElementRef<any>) => {
|
|
494
505
|
this.input = input;
|
|
495
|
-
if (this.props.controlRef) {
|
|
496
|
-
|
|
497
|
-
this.props.controlRef(input);
|
|
498
|
-
} else {
|
|
499
|
-
this.props.controlRef.current = input;
|
|
500
|
-
}
|
|
506
|
+
if (this.props.controlRef && typeof this.props.controlRef === 'function') {
|
|
507
|
+
this.props.controlRef(input);
|
|
501
508
|
}
|
|
502
509
|
};
|
|
503
510
|
|
|
504
|
-
selectValue = ({item}: {item: OptionT}) => {
|
|
511
|
+
selectValue = ({ item }: { item: OptionT }) => {
|
|
505
512
|
if (item.disabled) {
|
|
506
513
|
return;
|
|
507
514
|
}
|
|
508
515
|
this.justSelected = true;
|
|
509
516
|
// NOTE: we add/set the value in a callback to make sure the
|
|
510
517
|
// input value is empty to avoid styling issues in Chrome
|
|
511
|
-
const updatedValue = this.props.onSelectResetsInput
|
|
512
|
-
? ''
|
|
513
|
-
: this.state.inputValue;
|
|
518
|
+
const updatedValue = this.props.onSelectResetsInput ? '' : this.state.inputValue;
|
|
514
519
|
if (this.props.multi) {
|
|
515
520
|
this.setState(
|
|
516
521
|
{
|
|
@@ -519,16 +524,12 @@ class Select extends React.Component<PropsT, SelectStateT> {
|
|
|
519
524
|
},
|
|
520
525
|
() => {
|
|
521
526
|
const valueArray = this.props.value;
|
|
522
|
-
if (
|
|
523
|
-
valueArray.some(
|
|
524
|
-
i => i[this.props.valueKey] === item[this.props.valueKey],
|
|
525
|
-
)
|
|
526
|
-
) {
|
|
527
|
+
if (valueArray.some((i) => i[this.props.valueKey] === item[this.props.valueKey])) {
|
|
527
528
|
this.removeValue(item);
|
|
528
529
|
} else {
|
|
529
530
|
this.addValue(item);
|
|
530
531
|
}
|
|
531
|
-
}
|
|
532
|
+
}
|
|
532
533
|
);
|
|
533
534
|
} else {
|
|
534
535
|
this.focus();
|
|
@@ -541,7 +542,7 @@ class Select extends React.Component<PropsT, SelectStateT> {
|
|
|
541
542
|
},
|
|
542
543
|
() => {
|
|
543
544
|
this.setValue([item], item, STATE_CHANGE_TYPE.select);
|
|
544
|
-
}
|
|
545
|
+
}
|
|
545
546
|
);
|
|
546
547
|
}
|
|
547
548
|
};
|
|
@@ -558,12 +559,9 @@ class Select extends React.Component<PropsT, SelectStateT> {
|
|
|
558
559
|
}
|
|
559
560
|
const valueLength = this.props.value.length;
|
|
560
561
|
const renderLabel = this.props.getValueLabel || this.getValueLabel;
|
|
561
|
-
const labelForInput = renderLabel({option: item, index: valueLength - 1});
|
|
562
|
+
const labelForInput = renderLabel({ option: item, index: valueLength - 1 });
|
|
562
563
|
// label might not be a string, it might be a Node of another kind.
|
|
563
|
-
if (
|
|
564
|
-
!this.props.backspaceClearsInputValue &&
|
|
565
|
-
typeof labelForInput === 'string'
|
|
566
|
-
) {
|
|
564
|
+
if (!this.props.backspaceClearsInputValue && typeof labelForInput === 'string') {
|
|
567
565
|
const remainingInput = labelForInput.slice(0, -1);
|
|
568
566
|
this.setState({
|
|
569
567
|
inputValue: remainingInput,
|
|
@@ -585,11 +583,9 @@ class Select extends React.Component<PropsT, SelectStateT> {
|
|
|
585
583
|
removeValue = (item: OptionT) => {
|
|
586
584
|
const valueArray = [...this.props.value];
|
|
587
585
|
this.setValue(
|
|
588
|
-
valueArray.filter(
|
|
589
|
-
i => i[this.props.valueKey] !== item[this.props.valueKey],
|
|
590
|
-
),
|
|
586
|
+
valueArray.filter((i) => i[this.props.valueKey] !== item[this.props.valueKey]),
|
|
591
587
|
item,
|
|
592
|
-
STATE_CHANGE_TYPE.remove
|
|
588
|
+
STATE_CHANGE_TYPE.remove
|
|
593
589
|
);
|
|
594
590
|
this.focus();
|
|
595
591
|
};
|
|
@@ -598,9 +594,7 @@ class Select extends React.Component<PropsT, SelectStateT> {
|
|
|
598
594
|
if (isClick(event) && !isLeftClick(event)) return;
|
|
599
595
|
|
|
600
596
|
if (this.props.value) {
|
|
601
|
-
const resetValue = this.props.value.filter(
|
|
602
|
-
item => item.clearableValue === false,
|
|
603
|
-
);
|
|
597
|
+
const resetValue = this.props.value.filter((item) => item.clearableValue === false);
|
|
604
598
|
this.setValue(resetValue, null, STATE_CHANGE_TYPE.clear);
|
|
605
599
|
}
|
|
606
600
|
this.setState({
|
|
@@ -613,10 +607,7 @@ class Select extends React.Component<PropsT, SelectStateT> {
|
|
|
613
607
|
};
|
|
614
608
|
|
|
615
609
|
shouldShowPlaceholder = () => {
|
|
616
|
-
return !(
|
|
617
|
-
this.state.inputValue ||
|
|
618
|
-
(this.props.value && this.props.value.length)
|
|
619
|
-
);
|
|
610
|
+
return !(this.state.inputValue || (this.props.value && this.props.value.length));
|
|
620
611
|
};
|
|
621
612
|
|
|
622
613
|
shouldShowValue = () => {
|
|
@@ -626,15 +617,15 @@ class Select extends React.Component<PropsT, SelectStateT> {
|
|
|
626
617
|
renderLoading() {
|
|
627
618
|
if (!this.props.isLoading) return;
|
|
628
619
|
const sharedProps = this.getSharedProps();
|
|
629
|
-
const {overrides = {}} = this.props;
|
|
620
|
+
const { overrides = {} } = this.props;
|
|
630
621
|
const [LoadingIndicator, loadingIndicatorProps] = getOverrides(
|
|
631
622
|
overrides.LoadingIndicator,
|
|
632
|
-
Spinner
|
|
623
|
+
Spinner
|
|
633
624
|
);
|
|
634
625
|
return (
|
|
635
626
|
<LoadingIndicator
|
|
636
627
|
size={16}
|
|
637
|
-
overrides={{Svg: {style: getLoadingIconStyles}}}
|
|
628
|
+
overrides={{ Svg: { style: getLoadingIconStyles } }}
|
|
638
629
|
$silenceV11DeprecationWarning
|
|
639
630
|
{...sharedProps}
|
|
640
631
|
{...loadingIndicatorProps}
|
|
@@ -645,9 +636,9 @@ class Select extends React.Component<PropsT, SelectStateT> {
|
|
|
645
636
|
renderValue(
|
|
646
637
|
valueArray: ValueT,
|
|
647
638
|
isOpen: boolean,
|
|
648
|
-
locale: LocaleT
|
|
639
|
+
locale: LocaleT
|
|
649
640
|
): ?React.Node | Array<?React.Node> {
|
|
650
|
-
const {overrides = {}} = this.props;
|
|
641
|
+
const { overrides = {} } = this.props;
|
|
651
642
|
const sharedProps = this.getSharedProps();
|
|
652
643
|
const renderLabel = this.props.getValueLabel || this.getValueLabel;
|
|
653
644
|
const Value = this.props.valueComponent || Noop;
|
|
@@ -656,19 +647,18 @@ class Select extends React.Component<PropsT, SelectStateT> {
|
|
|
656
647
|
}
|
|
657
648
|
if (this.props.multi) {
|
|
658
649
|
return valueArray.map((value, i) => {
|
|
659
|
-
const disabled =
|
|
660
|
-
sharedProps.$disabled || value.clearableValue === false;
|
|
650
|
+
const disabled = sharedProps.$disabled || value.clearableValue === false;
|
|
661
651
|
return (
|
|
662
652
|
<Value
|
|
663
653
|
value={value}
|
|
664
654
|
key={`value-${i}-${value[this.props.valueKey]}`}
|
|
665
655
|
removeValue={() => this.removeValue(value)}
|
|
666
656
|
disabled={disabled}
|
|
667
|
-
overrides={{Tag: overrides.Tag, MultiValue: overrides.MultiValue}}
|
|
657
|
+
overrides={{ Tag: overrides.Tag, MultiValue: overrides.MultiValue }}
|
|
668
658
|
{...sharedProps}
|
|
669
659
|
$disabled={disabled}
|
|
670
660
|
>
|
|
671
|
-
{renderLabel({option: value, index: i})}
|
|
661
|
+
{renderLabel({ option: value, index: i })}
|
|
672
662
|
</Value>
|
|
673
663
|
);
|
|
674
664
|
});
|
|
@@ -677,25 +667,25 @@ class Select extends React.Component<PropsT, SelectStateT> {
|
|
|
677
667
|
<Value
|
|
678
668
|
value={valueArray[0][this.props.valueKey]}
|
|
679
669
|
disabled={this.props.disabled}
|
|
680
|
-
overrides={{SingleValue: overrides.SingleValue}}
|
|
670
|
+
overrides={{ SingleValue: overrides.SingleValue }}
|
|
681
671
|
{...sharedProps}
|
|
682
672
|
>
|
|
683
|
-
{renderLabel({option: valueArray[0]})}
|
|
673
|
+
{renderLabel({ option: valueArray[0] })}
|
|
684
674
|
</Value>
|
|
685
675
|
);
|
|
686
676
|
}
|
|
687
677
|
}
|
|
688
678
|
|
|
689
679
|
renderInput(listboxId: string) {
|
|
690
|
-
const {overrides = {}} = this.props;
|
|
680
|
+
const { overrides = {} } = this.props;
|
|
691
681
|
const [InputContainer, inputContainerProps] = getOverrides(
|
|
692
682
|
overrides.InputContainer,
|
|
693
|
-
StyledInputContainer
|
|
683
|
+
StyledInputContainer
|
|
694
684
|
);
|
|
695
685
|
const sharedProps = this.getSharedProps();
|
|
696
686
|
const isOpen = this.state.isOpen;
|
|
697
687
|
const selected = this.getValueArray(this.props.value)
|
|
698
|
-
.map(v => v[this.props.labelKey])
|
|
688
|
+
.map((v) => v[this.props.labelKey])
|
|
699
689
|
.join(', ');
|
|
700
690
|
const selectedLabel = selected.length ? `Selected ${selected}. ` : '';
|
|
701
691
|
const label = `${selectedLabel}${this.props['aria-label'] || ''}`;
|
|
@@ -718,6 +708,7 @@ class Select extends React.Component<PropsT, SelectStateT> {
|
|
|
718
708
|
{...sharedProps}
|
|
719
709
|
{...inputContainerProps}
|
|
720
710
|
>
|
|
711
|
+
{/* $FlowExpectedError[cannot-spread-inexact] */}
|
|
721
712
|
<input
|
|
722
713
|
aria-hidden
|
|
723
714
|
id={this.props.id || null}
|
|
@@ -732,7 +723,8 @@ class Select extends React.Component<PropsT, SelectStateT> {
|
|
|
732
723
|
tabIndex={-1}
|
|
733
724
|
{...(overrides.Input
|
|
734
725
|
? overrides.Input.props
|
|
735
|
-
?
|
|
726
|
+
? // $FlowExpectedError[not-an-object]
|
|
727
|
+
overrides.Input.props
|
|
736
728
|
: {}
|
|
737
729
|
: {})}
|
|
738
730
|
/>
|
|
@@ -759,7 +751,7 @@ class Select extends React.Component<PropsT, SelectStateT> {
|
|
|
759
751
|
inputRef={this.handleInputRef}
|
|
760
752
|
onChange={this.handleInputChange}
|
|
761
753
|
onFocus={this.handleInputFocus}
|
|
762
|
-
overrides={{Input: overrides.Input}}
|
|
754
|
+
overrides={{ Input: overrides.Input }}
|
|
763
755
|
required={(this.props.required && !this.props.value.length) || null}
|
|
764
756
|
role="combobox"
|
|
765
757
|
value={this.state.inputValue}
|
|
@@ -772,24 +764,16 @@ class Select extends React.Component<PropsT, SelectStateT> {
|
|
|
772
764
|
|
|
773
765
|
renderClear() {
|
|
774
766
|
const isValueEntered = Boolean(
|
|
775
|
-
(this.props.value && this.props.value.length) || this.state.inputValue
|
|
767
|
+
(this.props.value && this.props.value.length) || this.state.inputValue
|
|
776
768
|
);
|
|
777
769
|
|
|
778
|
-
if (
|
|
779
|
-
!this.props.clearable ||
|
|
780
|
-
this.props.disabled ||
|
|
781
|
-
this.props.isLoading ||
|
|
782
|
-
!isValueEntered
|
|
783
|
-
) {
|
|
770
|
+
if (!this.props.clearable || this.props.disabled || this.props.isLoading || !isValueEntered) {
|
|
784
771
|
return;
|
|
785
772
|
}
|
|
786
773
|
|
|
787
774
|
const sharedProps = this.getSharedProps();
|
|
788
|
-
const {overrides = {}} = this.props;
|
|
789
|
-
const [ClearIcon, clearIconProps] = getOverrides(
|
|
790
|
-
overrides.ClearIcon,
|
|
791
|
-
DeleteAlt,
|
|
792
|
-
);
|
|
775
|
+
const { overrides = {} } = this.props;
|
|
776
|
+
const [ClearIcon, clearIconProps] = getOverrides(overrides.ClearIcon, DeleteAlt);
|
|
793
777
|
const ariaLabel = this.props.multi ? 'Clear all' : 'Clear value';
|
|
794
778
|
|
|
795
779
|
return (
|
|
@@ -802,13 +786,9 @@ class Select extends React.Component<PropsT, SelectStateT> {
|
|
|
802
786
|
Svg: {
|
|
803
787
|
component: StyledClearIcon,
|
|
804
788
|
props:
|
|
805
|
-
overrides.ClearIcon && overrides.ClearIcon.props
|
|
806
|
-
? overrides.ClearIcon.props
|
|
807
|
-
: {},
|
|
789
|
+
overrides.ClearIcon && overrides.ClearIcon.props ? overrides.ClearIcon.props : {},
|
|
808
790
|
style:
|
|
809
|
-
overrides.ClearIcon && overrides.ClearIcon.style
|
|
810
|
-
? overrides.ClearIcon.style
|
|
811
|
-
: {},
|
|
791
|
+
overrides.ClearIcon && overrides.ClearIcon.style ? overrides.ClearIcon.style : {},
|
|
812
792
|
},
|
|
813
793
|
}}
|
|
814
794
|
{...sharedProps}
|
|
@@ -821,11 +801,8 @@ class Select extends React.Component<PropsT, SelectStateT> {
|
|
|
821
801
|
if (this.props.type !== TYPE.select) {
|
|
822
802
|
return null;
|
|
823
803
|
}
|
|
824
|
-
const {overrides = {}} = this.props;
|
|
825
|
-
const [SelectArrow, selectArrowProps] = getOverrides(
|
|
826
|
-
overrides.SelectArrow,
|
|
827
|
-
TriangleDownIcon,
|
|
828
|
-
);
|
|
804
|
+
const { overrides = {} } = this.props;
|
|
805
|
+
const [SelectArrow, selectArrowProps] = getOverrides(overrides.SelectArrow, TriangleDownIcon);
|
|
829
806
|
const sharedProps = this.getSharedProps();
|
|
830
807
|
return (
|
|
831
808
|
<SelectArrow
|
|
@@ -854,24 +831,17 @@ class Select extends React.Component<PropsT, SelectStateT> {
|
|
|
854
831
|
if (this.props.type !== TYPE.search) {
|
|
855
832
|
return null;
|
|
856
833
|
}
|
|
857
|
-
const {overrides = {}} = this.props;
|
|
834
|
+
const { overrides = {} } = this.props;
|
|
858
835
|
const [SearchIconContainer, searchIconContainerProps] = getOverrides(
|
|
859
836
|
overrides.SearchIconContainer,
|
|
860
|
-
StyledSearchIconContainer
|
|
861
|
-
);
|
|
862
|
-
const [SearchIcon, searchIconProps] = getOverrides(
|
|
863
|
-
overrides.SearchIcon,
|
|
864
|
-
SearchIconComponent,
|
|
837
|
+
StyledSearchIconContainer
|
|
865
838
|
);
|
|
839
|
+
const [SearchIcon, searchIconProps] = getOverrides(overrides.SearchIcon, SearchIconComponent);
|
|
866
840
|
const sharedProps = this.getSharedProps();
|
|
867
841
|
|
|
868
842
|
return (
|
|
869
843
|
// TODO(v11): remove searchIconProps from SearchIconContainer
|
|
870
|
-
<SearchIconContainer
|
|
871
|
-
{...sharedProps}
|
|
872
|
-
{...searchIconProps}
|
|
873
|
-
{...searchIconContainerProps}
|
|
874
|
-
>
|
|
844
|
+
<SearchIconContainer {...sharedProps} {...searchIconProps} {...searchIconContainerProps}>
|
|
875
845
|
<SearchIcon size={16} title={'search'} {...searchIconProps} />
|
|
876
846
|
</SearchIconContainer>
|
|
877
847
|
);
|
|
@@ -881,22 +851,15 @@ class Select extends React.Component<PropsT, SelectStateT> {
|
|
|
881
851
|
const filterValue = this.state.inputValue.trim();
|
|
882
852
|
// apply filter function
|
|
883
853
|
if (this.props.filterOptions) {
|
|
884
|
-
this.options = this.props.filterOptions(
|
|
885
|
-
this.
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
{
|
|
889
|
-
valueKey: this.props.valueKey,
|
|
890
|
-
labelKey: this.props.labelKey,
|
|
891
|
-
},
|
|
892
|
-
);
|
|
854
|
+
this.options = this.props.filterOptions(this.options, filterValue, excludeOptions, {
|
|
855
|
+
valueKey: this.props.valueKey,
|
|
856
|
+
labelKey: this.props.labelKey,
|
|
857
|
+
});
|
|
893
858
|
}
|
|
894
859
|
// can user create a new option + there's no exact match already
|
|
895
860
|
const filterDoesNotMatchOption = this.props.ignoreCase
|
|
896
|
-
? opt =>
|
|
897
|
-
|
|
898
|
-
filterValue.toLowerCase().trim()
|
|
899
|
-
: opt => opt[this.props.labelKey] !== filterValue.trim();
|
|
861
|
+
? (opt) => opt[this.props.labelKey].toLowerCase() !== filterValue.toLowerCase().trim()
|
|
862
|
+
: (opt) => opt[this.props.labelKey] !== filterValue.trim();
|
|
900
863
|
if (
|
|
901
864
|
filterValue &&
|
|
902
865
|
this.props.creatable &&
|
|
@@ -928,7 +891,7 @@ class Select extends React.Component<PropsT, SelectStateT> {
|
|
|
928
891
|
type,
|
|
929
892
|
value,
|
|
930
893
|
} = this.props;
|
|
931
|
-
const {isOpen, isFocused, isPseudoFocused} = this.state;
|
|
894
|
+
const { isOpen, isFocused, isPseudoFocused } = this.state;
|
|
932
895
|
return {
|
|
933
896
|
$clearable: clearable,
|
|
934
897
|
$creatable: creatable,
|
|
@@ -951,20 +914,13 @@ class Select extends React.Component<PropsT, SelectStateT> {
|
|
|
951
914
|
render() {
|
|
952
915
|
this.options = normalizeOptions(this.props.options);
|
|
953
916
|
|
|
954
|
-
const {
|
|
955
|
-
overrides = {},
|
|
956
|
-
type,
|
|
957
|
-
multi,
|
|
958
|
-
noResultsMsg,
|
|
959
|
-
value,
|
|
960
|
-
filterOutSelected,
|
|
961
|
-
} = this.props;
|
|
917
|
+
const { overrides = {}, type, multi, noResultsMsg, value, filterOutSelected } = this.props;
|
|
962
918
|
|
|
963
919
|
if (__DEV__) {
|
|
964
920
|
// value may be nullish, only warn if value is defined
|
|
965
921
|
if (value && !Array.isArray(value)) {
|
|
966
922
|
console.warn(
|
|
967
|
-
'The Select component expects an array as the value prop. For more information, please visit the docs at https://baseweb.design/components/select/'
|
|
923
|
+
'The Select component expects an array as the value prop. For more information, please visit the docs at https://baseweb.design/components/select/'
|
|
968
924
|
);
|
|
969
925
|
}
|
|
970
926
|
}
|
|
@@ -972,30 +928,22 @@ class Select extends React.Component<PropsT, SelectStateT> {
|
|
|
972
928
|
const [Root, rootProps] = getOverrides(overrides.Root, StyledRoot);
|
|
973
929
|
const [ControlContainer, controlContainerProps] = getOverrides(
|
|
974
930
|
overrides.ControlContainer,
|
|
975
|
-
StyledControlContainer
|
|
931
|
+
StyledControlContainer
|
|
976
932
|
);
|
|
977
933
|
const [ValueContainer, valueContainerProps] = getOverrides(
|
|
978
934
|
overrides.ValueContainer,
|
|
979
|
-
StyledValueContainer
|
|
935
|
+
StyledValueContainer
|
|
980
936
|
);
|
|
981
937
|
const [IconsContainer, iconsContainerProps] = getOverrides(
|
|
982
938
|
overrides.IconsContainer,
|
|
983
|
-
StyledIconsContainer
|
|
984
|
-
);
|
|
985
|
-
const [PopoverOverride, popoverProps] = getOverrides(
|
|
986
|
-
overrides.Popover,
|
|
987
|
-
Popover,
|
|
988
|
-
);
|
|
989
|
-
const [Placeholder, placeholderProps] = getOverrides(
|
|
990
|
-
overrides.Placeholder,
|
|
991
|
-
StyledPlaceholder,
|
|
939
|
+
StyledIconsContainer
|
|
992
940
|
);
|
|
941
|
+
const [PopoverOverride, popoverProps] = getOverrides(overrides.Popover, Popover);
|
|
942
|
+
const [Placeholder, placeholderProps] = getOverrides(overrides.Placeholder, StyledPlaceholder);
|
|
993
943
|
const sharedProps = this.getSharedProps();
|
|
994
944
|
|
|
995
945
|
const valueArray = this.getValueArray(value);
|
|
996
|
-
const options = this.filterOptions(
|
|
997
|
-
multi && filterOutSelected ? valueArray : null,
|
|
998
|
-
);
|
|
946
|
+
const options = this.filterOptions(multi && filterOutSelected ? valueArray : null);
|
|
999
947
|
const isOpen = this.state.isOpen;
|
|
1000
948
|
sharedProps.$isOpen = isOpen;
|
|
1001
949
|
|
|
@@ -1003,22 +951,22 @@ class Select extends React.Component<PropsT, SelectStateT> {
|
|
|
1003
951
|
if (this.props.error && this.props.positive) {
|
|
1004
952
|
// eslint-disable-next-line no-console
|
|
1005
953
|
console.warn(
|
|
1006
|
-
`[Select] \`error\` and \`positive\` are both set to \`true\`. \`error\` will take precedence but this may not be what you want
|
|
954
|
+
`[Select] \`error\` and \`positive\` are both set to \`true\`. \`error\` will take precedence but this may not be what you want.`
|
|
1007
955
|
);
|
|
1008
956
|
}
|
|
1009
957
|
}
|
|
1010
958
|
|
|
1011
959
|
return (
|
|
1012
960
|
<UIDConsumer>
|
|
1013
|
-
{listboxId => (
|
|
961
|
+
{(listboxId) => (
|
|
1014
962
|
<LocaleContext.Consumer>
|
|
1015
|
-
{locale => (
|
|
963
|
+
{(locale) => (
|
|
1016
964
|
<PopoverOverride
|
|
1017
965
|
// Popover does not provide ability to forward refs through, and if we were to simply
|
|
1018
966
|
// apply the ref to the Root component below it would be overwritten before the popover
|
|
1019
967
|
// renders it. Using this strategy, we will get a ref to the popover, then reuse its
|
|
1020
968
|
// anchorRef so we can check if clicks are on the select component or not.
|
|
1021
|
-
//
|
|
969
|
+
// flowlint-next-line unclear-type:off
|
|
1022
970
|
innerRef={(ref: any) => {
|
|
1023
971
|
if (!ref) return;
|
|
1024
972
|
this.anchor = ref.anchorRef;
|
|
@@ -1034,8 +982,7 @@ class Select extends React.Component<PropsT, SelectStateT> {
|
|
|
1034
982
|
error: this.props.error,
|
|
1035
983
|
positive: this.props.positive,
|
|
1036
984
|
getOptionLabel:
|
|
1037
|
-
this.props.getOptionLabel ||
|
|
1038
|
-
this.getOptionLabel.bind(this, locale),
|
|
985
|
+
this.props.getOptionLabel || this.getOptionLabel.bind(this, locale),
|
|
1039
986
|
id: listboxId,
|
|
1040
987
|
isLoading: this.props.isLoading,
|
|
1041
988
|
labelKey: this.props.labelKey,
|
|
@@ -1052,18 +999,11 @@ class Select extends React.Component<PropsT, SelectStateT> {
|
|
|
1052
999
|
type,
|
|
1053
1000
|
value: valueArray,
|
|
1054
1001
|
valueKey: this.props.valueKey,
|
|
1055
|
-
width: this.anchor.current
|
|
1056
|
-
? this.anchor.current.clientWidth
|
|
1057
|
-
: null,
|
|
1002
|
+
width: this.anchor.current ? this.anchor.current.clientWidth : null,
|
|
1058
1003
|
keyboardControlNode: this.anchor,
|
|
1059
1004
|
};
|
|
1060
1005
|
|
|
1061
|
-
return
|
|
1062
|
-
<SelectDropdown
|
|
1063
|
-
innerRef={this.dropdown}
|
|
1064
|
-
{...dropdownProps}
|
|
1065
|
-
/>
|
|
1066
|
-
);
|
|
1006
|
+
return <SelectDropdown innerRef={this.dropdown} {...dropdownProps} />;
|
|
1067
1007
|
}}
|
|
1068
1008
|
placement={PLACEMENT.bottom}
|
|
1069
1009
|
{...popoverProps}
|