@ozen-ui/kit 0.56.0 → 0.58.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/AutocompleteNext/package.json +5 -0
- package/__inner__/cjs/components/Autocomplete/Autocomplete.d.ts +3 -0
- package/__inner__/cjs/components/Autocomplete/Autocomplete.js +7 -0
- package/__inner__/cjs/components/Autocomplete/helper.d.ts +2 -10
- package/__inner__/cjs/components/AutocompleteNext/Autocomplete.css +226 -0
- package/__inner__/cjs/components/AutocompleteNext/Autocomplete.d.ts +4 -0
- package/__inner__/cjs/components/AutocompleteNext/Autocomplete.js +216 -0
- package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/AutocompleteDropdown.d.ts +2 -0
- package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/AutocompleteDropdown.js +156 -0
- package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownCheckIcon/AutocompleteDropdownCheckIcon.css +7 -0
- package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownCheckIcon/AutocompleteDropdownCheckIcon.d.ts +6 -0
- package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownCheckIcon/AutocompleteDropdownCheckIcon.js +18 -0
- package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownCheckIcon/index.d.ts +1 -0
- package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownCheckIcon/index.js +4 -0
- package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownLoading/AutocompleteDropdownLoading.d.ts +6 -0
- package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownLoading/AutocompleteDropdownLoading.js +23 -0
- package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownLoading/index.d.ts +1 -0
- package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownLoading/index.js +4 -0
- package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownNoOptions/AutocompleteDropdownNoOptions.d.ts +6 -0
- package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownNoOptions/AutocompleteDropdownNoOptions.js +17 -0
- package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownNoOptions/index.d.ts +1 -0
- package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownNoOptions/index.js +4 -0
- package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/components/index.d.ts +3 -0
- package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/components/index.js +6 -0
- package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/constants.d.ts +3 -0
- package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/constants.js +6 -0
- package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/helpers.d.ts +17 -0
- package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/helpers.js +36 -0
- package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/index.d.ts +3 -0
- package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/index.js +6 -0
- package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/types.d.ts +45 -0
- package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/types.js +2 -0
- package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/utils/index.d.ts +2 -0
- package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/utils/index.js +5 -0
- package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/utils/useDataListNavigation.d.ts +20 -0
- package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/utils/useDataListNavigation.js +71 -0
- package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/utils/useScrollContainerToElement.d.ts +3 -0
- package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/utils/useScrollContainerToElement.js +15 -0
- package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteInput/AutocompleteInput.d.ts +2 -0
- package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteInput/AutocompleteInput.js +38 -0
- package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteInput/components/AutocompleteInputMultiple.d.ts +2 -0
- package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteInput/components/AutocompleteInputMultiple.js +112 -0
- package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteInput/components/helpers.d.ts +5 -0
- package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteInput/components/helpers.js +36 -0
- package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteInput/components/index.d.ts +1 -0
- package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteInput/components/index.js +4 -0
- package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteInput/components/types.d.ts +17 -0
- package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteInput/components/types.js +2 -0
- package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteInput/helpers.d.ts +3 -0
- package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteInput/index.d.ts +2 -0
- package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteInput/index.js +5 -0
- package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteInput/types.d.ts +26 -0
- package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteInput/types.js +2 -0
- package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteRenderRight/AutocompleteRenderRight.d.ts +8 -0
- package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteRenderRight/AutocompleteRenderRight.js +28 -0
- package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteRenderRight/index.d.ts +1 -0
- package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteRenderRight/index.js +4 -0
- package/__inner__/cjs/components/AutocompleteNext/components/index.d.ts +3 -0
- package/__inner__/cjs/components/AutocompleteNext/components/index.js +6 -0
- package/__inner__/cjs/components/AutocompleteNext/constants.d.ts +10 -0
- package/__inner__/cjs/components/AutocompleteNext/constants.js +13 -0
- package/__inner__/cjs/components/AutocompleteNext/helpers.d.ts +152 -0
- package/__inner__/cjs/components/AutocompleteNext/helpers.js +18 -0
- package/__inner__/cjs/components/AutocompleteNext/index.d.ts +2 -0
- package/__inner__/cjs/components/AutocompleteNext/index.js +5 -0
- package/__inner__/cjs/components/AutocompleteNext/types.d.ts +133 -0
- package/__inner__/cjs/components/AutocompleteNext/types.js +2 -0
- package/__inner__/cjs/components/DataList/DataList.js +18 -25
- package/__inner__/cjs/components/DataList/constants.d.ts +1 -1
- package/__inner__/cjs/components/DataList/constants.js +1 -2
- package/__inner__/cjs/components/DataList/helpers.d.ts +3 -0
- package/__inner__/cjs/components/DataList/helpers.js +7 -0
- package/__inner__/cjs/components/DataList/{helpers → utils}/index.d.ts +0 -1
- package/__inner__/cjs/components/DataList/{helpers → utils}/index.js +0 -1
- package/__inner__/cjs/components/DatePicker/DatePicker.d.ts +2 -2
- package/__inner__/cjs/components/DatePicker/DatePicker.js +1 -1
- package/__inner__/cjs/components/Dialog/Dialog.d.ts +1 -2
- package/__inner__/cjs/components/Drawer/Drawer.d.ts +1 -2
- package/__inner__/cjs/components/FieldControl/FieldControl.css +4 -0
- package/__inner__/cjs/components/FieldInput/FieldInput.d.ts +1 -9
- package/__inner__/cjs/components/FieldInput/FieldInput.js +9 -4
- package/__inner__/cjs/components/FieldInput/constants.d.ts +1 -0
- package/__inner__/cjs/components/FieldInput/constants.js +4 -0
- package/__inner__/cjs/components/FieldInput/index.d.ts +1 -0
- package/__inner__/cjs/components/FieldInput/index.js +1 -0
- package/__inner__/cjs/components/FieldInput/types.d.ts +11 -0
- package/__inner__/cjs/components/FieldInput/types.js +2 -0
- package/__inner__/cjs/components/FieldLabel/FieldLabel.css +1 -0
- package/__inner__/cjs/components/Grid/Grid.css +4 -0
- package/__inner__/cjs/components/Input/Input.css +6 -9
- package/__inner__/cjs/components/Input/types.d.ts +2 -3
- package/__inner__/cjs/components/InputNumber/InputNumber.css +0 -5
- package/__inner__/cjs/components/Menu/Menu.js +2 -1
- package/__inner__/cjs/components/Modal/Modal.d.ts +1 -2
- package/__inner__/cjs/components/Modal/Modal.js +5 -6
- package/__inner__/cjs/components/Modal/constants.d.ts +0 -1
- package/__inner__/cjs/components/Modal/constants.js +1 -2
- package/__inner__/cjs/components/Modal/types.d.ts +0 -3
- package/__inner__/cjs/components/Popover/Popover.d.ts +1 -1
- package/__inner__/cjs/components/Popover/Popover.js +8 -3
- package/__inner__/cjs/components/Popover/constants.d.ts +1 -1
- package/__inner__/cjs/components/Popover/constants.js +1 -2
- package/__inner__/cjs/components/Popover/types.d.ts +2 -4
- package/__inner__/cjs/components/Portal/Portal.js +3 -3
- package/__inner__/cjs/components/Portal/constants.d.ts +2 -0
- package/__inner__/cjs/components/Portal/constants.js +3 -1
- package/__inner__/cjs/components/Portal/types.d.ts +3 -0
- package/__inner__/cjs/components/Snackbar/components/Snackbar/Snackbar.d.ts +1 -1
- package/__inner__/cjs/components/Tag/Tag.css +1 -0
- package/__inner__/cjs/components/TagNext/Tag.css +11 -4
- package/__inner__/cjs/components/TagNext/Tag.js +1 -1
- package/__inner__/cjs/components/TagNext/constants.d.ts +1 -1
- package/__inner__/cjs/components/TagNext/constants.js +2 -2
- package/__inner__/cjs/components/TagNext/types.d.ts +6 -3
- package/__inner__/cjs/components/Textarea/Textarea.css +0 -5
- package/__inner__/cjs/components/ThemeProvider/types.d.ts +2 -0
- package/__inner__/cjs/components/Tooltip/Tooltip.js +11 -11
- package/__inner__/cjs/components/Tooltip/constants.d.ts +1 -1
- package/__inner__/cjs/components/Tooltip/constants.js +1 -2
- package/__inner__/cjs/components/Tooltip/types.d.ts +1 -1
- package/__inner__/cjs/hooks/useElementSize/index.d.ts +1 -0
- package/__inner__/cjs/hooks/useElementSize/index.js +4 -0
- package/__inner__/cjs/hooks/useElementSize/useElementSize.d.ts +6 -0
- package/__inner__/cjs/hooks/useElementSize/useElementSize.js +11 -0
- package/__inner__/cjs/hooks/useResizeObserver/index.d.ts +1 -0
- package/__inner__/cjs/hooks/useResizeObserver/index.js +4 -0
- package/__inner__/cjs/hooks/useResizeObserver/useResizeObserver.d.ts +4 -0
- package/__inner__/cjs/hooks/useResizeObserver/useResizeObserver.js +50 -0
- package/__inner__/cjs/locale/locale.js +21 -0
- package/__inner__/cjs/utils/isNotNil.d.ts +1 -0
- package/__inner__/cjs/utils/isNotNil.js +7 -0
- package/__inner__/esm/components/Autocomplete/Autocomplete.d.ts +3 -0
- package/__inner__/esm/components/Autocomplete/Autocomplete.js +7 -0
- package/__inner__/esm/components/Autocomplete/helper.d.ts +2 -10
- package/__inner__/esm/components/AutocompleteNext/Autocomplete.css +226 -0
- package/__inner__/esm/components/AutocompleteNext/Autocomplete.d.ts +4 -0
- package/__inner__/esm/components/AutocompleteNext/Autocomplete.js +213 -0
- package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/AutocompleteDropdown.d.ts +2 -0
- package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/AutocompleteDropdown.js +153 -0
- package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownCheckIcon/AutocompleteDropdownCheckIcon.css +7 -0
- package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownCheckIcon/AutocompleteDropdownCheckIcon.d.ts +6 -0
- package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownCheckIcon/AutocompleteDropdownCheckIcon.js +13 -0
- package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownCheckIcon/index.d.ts +1 -0
- package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownCheckIcon/index.js +1 -0
- package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownLoading/AutocompleteDropdownLoading.d.ts +6 -0
- package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownLoading/AutocompleteDropdownLoading.js +18 -0
- package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownLoading/index.d.ts +1 -0
- package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownLoading/index.js +1 -0
- package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownNoOptions/AutocompleteDropdownNoOptions.d.ts +6 -0
- package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownNoOptions/AutocompleteDropdownNoOptions.js +12 -0
- package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownNoOptions/index.d.ts +1 -0
- package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/components/AutocompleteDropdownNoOptions/index.js +1 -0
- package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/components/index.d.ts +3 -0
- package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/components/index.js +3 -0
- package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/constants.d.ts +3 -0
- package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/constants.js +3 -0
- package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/helpers.d.ts +17 -0
- package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/helpers.js +30 -0
- package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/index.d.ts +3 -0
- package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/index.js +3 -0
- package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/types.d.ts +45 -0
- package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/types.js +1 -0
- package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/utils/index.d.ts +2 -0
- package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/utils/index.js +2 -0
- package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/utils/useDataListNavigation.d.ts +20 -0
- package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/utils/useDataListNavigation.js +67 -0
- package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/utils/useScrollContainerToElement.d.ts +3 -0
- package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/utils/useScrollContainerToElement.js +11 -0
- package/__inner__/esm/components/AutocompleteNext/components/AutocompleteInput/AutocompleteInput.d.ts +2 -0
- package/__inner__/esm/components/AutocompleteNext/components/AutocompleteInput/AutocompleteInput.js +35 -0
- package/__inner__/esm/components/AutocompleteNext/components/AutocompleteInput/components/AutocompleteInputMultiple.d.ts +2 -0
- package/__inner__/esm/components/AutocompleteNext/components/AutocompleteInput/components/AutocompleteInputMultiple.js +109 -0
- package/__inner__/esm/components/AutocompleteNext/components/AutocompleteInput/components/helpers.d.ts +5 -0
- package/__inner__/esm/components/AutocompleteNext/components/AutocompleteInput/components/helpers.js +29 -0
- package/__inner__/esm/components/AutocompleteNext/components/AutocompleteInput/components/index.d.ts +1 -0
- package/__inner__/esm/components/AutocompleteNext/components/AutocompleteInput/components/index.js +1 -0
- package/__inner__/esm/components/AutocompleteNext/components/AutocompleteInput/components/types.d.ts +17 -0
- package/__inner__/esm/components/AutocompleteNext/components/AutocompleteInput/components/types.js +1 -0
- package/__inner__/esm/components/AutocompleteNext/components/AutocompleteInput/helpers.d.ts +3 -0
- package/__inner__/esm/components/AutocompleteNext/components/AutocompleteInput/index.d.ts +2 -0
- package/__inner__/esm/components/AutocompleteNext/components/AutocompleteInput/index.js +2 -0
- package/__inner__/esm/components/AutocompleteNext/components/AutocompleteInput/types.d.ts +26 -0
- package/__inner__/esm/components/AutocompleteNext/components/AutocompleteInput/types.js +1 -0
- package/__inner__/esm/components/AutocompleteNext/components/AutocompleteRenderRight/AutocompleteRenderRight.d.ts +8 -0
- package/__inner__/esm/components/AutocompleteNext/components/AutocompleteRenderRight/AutocompleteRenderRight.js +24 -0
- package/__inner__/esm/components/AutocompleteNext/components/AutocompleteRenderRight/index.d.ts +1 -0
- package/__inner__/esm/components/AutocompleteNext/components/AutocompleteRenderRight/index.js +1 -0
- package/__inner__/esm/components/AutocompleteNext/components/index.d.ts +3 -0
- package/__inner__/esm/components/AutocompleteNext/components/index.js +3 -0
- package/__inner__/esm/components/AutocompleteNext/constants.d.ts +10 -0
- package/__inner__/esm/components/AutocompleteNext/constants.js +10 -0
- package/__inner__/esm/components/AutocompleteNext/helpers.d.ts +152 -0
- package/__inner__/esm/components/AutocompleteNext/helpers.js +9 -0
- package/__inner__/esm/components/AutocompleteNext/index.d.ts +2 -0
- package/__inner__/esm/components/AutocompleteNext/index.js +2 -0
- package/__inner__/esm/components/AutocompleteNext/types.d.ts +133 -0
- package/__inner__/esm/components/AutocompleteNext/types.js +1 -0
- package/__inner__/esm/components/DataList/DataList.js +17 -24
- package/__inner__/esm/components/DataList/constants.d.ts +1 -1
- package/__inner__/esm/components/DataList/constants.js +1 -2
- package/__inner__/esm/components/DataList/helpers.d.ts +3 -0
- package/__inner__/esm/components/DataList/helpers.js +2 -0
- package/__inner__/esm/components/DataList/{helpers → utils}/index.d.ts +0 -1
- package/__inner__/esm/components/DataList/{helpers → utils}/index.js +0 -1
- package/__inner__/esm/components/DatePicker/DatePicker.d.ts +2 -2
- package/__inner__/esm/components/DatePicker/DatePicker.js +1 -1
- package/__inner__/esm/components/Dialog/Dialog.d.ts +1 -2
- package/__inner__/esm/components/Drawer/Drawer.d.ts +1 -2
- package/__inner__/esm/components/FieldControl/FieldControl.css +4 -0
- package/__inner__/esm/components/FieldInput/FieldInput.d.ts +1 -9
- package/__inner__/esm/components/FieldInput/FieldInput.js +8 -3
- package/__inner__/esm/components/FieldInput/constants.d.ts +1 -0
- package/__inner__/esm/components/FieldInput/constants.js +1 -0
- package/__inner__/esm/components/FieldInput/index.d.ts +1 -0
- package/__inner__/esm/components/FieldInput/index.js +1 -0
- package/__inner__/esm/components/FieldInput/types.d.ts +11 -0
- package/__inner__/esm/components/FieldInput/types.js +1 -0
- package/__inner__/esm/components/FieldLabel/FieldLabel.css +1 -0
- package/__inner__/esm/components/Grid/Grid.css +4 -0
- package/__inner__/esm/components/Input/Input.css +6 -9
- package/__inner__/esm/components/Input/types.d.ts +2 -3
- package/__inner__/esm/components/InputNumber/InputNumber.css +0 -5
- package/__inner__/esm/components/Menu/Menu.js +2 -1
- package/__inner__/esm/components/Modal/Modal.d.ts +1 -2
- package/__inner__/esm/components/Modal/Modal.js +6 -7
- package/__inner__/esm/components/Modal/constants.d.ts +0 -1
- package/__inner__/esm/components/Modal/constants.js +0 -1
- package/__inner__/esm/components/Modal/types.d.ts +0 -3
- package/__inner__/esm/components/Popover/Popover.d.ts +1 -1
- package/__inner__/esm/components/Popover/Popover.js +9 -4
- package/__inner__/esm/components/Popover/constants.d.ts +1 -1
- package/__inner__/esm/components/Popover/constants.js +1 -2
- package/__inner__/esm/components/Popover/types.d.ts +2 -4
- package/__inner__/esm/components/Portal/Portal.js +4 -4
- package/__inner__/esm/components/Portal/constants.d.ts +2 -0
- package/__inner__/esm/components/Portal/constants.js +2 -0
- package/__inner__/esm/components/Portal/types.d.ts +3 -0
- package/__inner__/esm/components/Snackbar/components/Snackbar/Snackbar.d.ts +1 -1
- package/__inner__/esm/components/Tag/Tag.css +1 -0
- package/__inner__/esm/components/TagNext/Tag.css +11 -4
- package/__inner__/esm/components/TagNext/Tag.js +2 -2
- package/__inner__/esm/components/TagNext/constants.d.ts +1 -1
- package/__inner__/esm/components/TagNext/constants.js +1 -1
- package/__inner__/esm/components/TagNext/types.d.ts +6 -3
- package/__inner__/esm/components/Textarea/Textarea.css +0 -5
- package/__inner__/esm/components/ThemeProvider/types.d.ts +2 -0
- package/__inner__/esm/components/Tooltip/Tooltip.js +12 -12
- package/__inner__/esm/components/Tooltip/constants.d.ts +1 -1
- package/__inner__/esm/components/Tooltip/constants.js +1 -2
- package/__inner__/esm/components/Tooltip/types.d.ts +1 -1
- package/__inner__/esm/hooks/useElementSize/index.d.ts +1 -0
- package/__inner__/esm/hooks/useElementSize/index.js +1 -0
- package/__inner__/esm/hooks/useElementSize/useElementSize.d.ts +6 -0
- package/__inner__/esm/hooks/useElementSize/useElementSize.js +7 -0
- package/__inner__/esm/hooks/useResizeObserver/index.d.ts +1 -0
- package/__inner__/esm/hooks/useResizeObserver/index.js +1 -0
- package/__inner__/esm/hooks/useResizeObserver/useResizeObserver.d.ts +4 -0
- package/__inner__/esm/hooks/useResizeObserver/useResizeObserver.js +46 -0
- package/__inner__/esm/locale/locale.js +21 -0
- package/__inner__/esm/utils/isNotNil.d.ts +1 -0
- package/__inner__/esm/utils/isNotNil.js +3 -0
- package/package.json +6 -6
- package/useElementSize/package.json +5 -0
- package/useResizeObserver/package.json +5 -0
- package/__inner__/cjs/components/DataList/helpers/types.d.ts +0 -10
- package/__inner__/esm/components/DataList/helpers/types.d.ts +0 -10
- /package/__inner__/cjs/components/{DataList/helpers/types.js → AutocompleteNext/components/AutocompleteInput/helpers.js} +0 -0
- /package/__inner__/cjs/components/DataList/{helpers → utils}/lastSelectedValue.d.ts +0 -0
- /package/__inner__/cjs/components/DataList/{helpers → utils}/lastSelectedValue.js +0 -0
- /package/__inner__/cjs/components/DataList/{helpers → utils}/useDataListNavigation.d.ts +0 -0
- /package/__inner__/cjs/components/DataList/{helpers → utils}/useDataListNavigation.js +0 -0
- /package/__inner__/cjs/components/DataList/{helpers → utils}/useScrollContainerToElement.d.ts +0 -0
- /package/__inner__/cjs/components/DataList/{helpers → utils}/useScrollContainerToElement.js +0 -0
- /package/__inner__/esm/components/{DataList/helpers/types.js → AutocompleteNext/components/AutocompleteInput/helpers.js} +0 -0
- /package/__inner__/esm/components/DataList/{helpers → utils}/lastSelectedValue.d.ts +0 -0
- /package/__inner__/esm/components/DataList/{helpers → utils}/lastSelectedValue.js +0 -0
- /package/__inner__/esm/components/DataList/{helpers → utils}/useDataListNavigation.d.ts +0 -0
- /package/__inner__/esm/components/DataList/{helpers → utils}/useDataListNavigation.js +0 -0
- /package/__inner__/esm/components/DataList/{helpers → utils}/useScrollContainerToElement.d.ts +0 -0
- /package/__inner__/esm/components/DataList/{helpers → utils}/useScrollContainerToElement.js +0 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import './AutocompleteDropdownCheckIcon.css';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { CheckIcon } from '@ozen-ui/icons';
|
|
4
|
+
import { cn } from '../../../../../../utils/classname';
|
|
5
|
+
import { getIconSizeToFormElement } from '../../../../../../utils/getIconSizeToFormElement';
|
|
6
|
+
import { ListItemIcon, useListContext } from '../../../../../List';
|
|
7
|
+
var cnAutocompleteDropdownCheckIcon = cn('AutocompleteDropdownCheckIcon');
|
|
8
|
+
export var AutocompleteDropdownCheckIcon = function (_a) {
|
|
9
|
+
var selected = _a.selected;
|
|
10
|
+
var size = useListContext().size;
|
|
11
|
+
return (React.createElement(ListItemIcon, { className: cnAutocompleteDropdownCheckIcon({ selected: selected }) },
|
|
12
|
+
React.createElement(CheckIcon, { size: getIconSizeToFormElement(size) })));
|
|
13
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './AutocompleteDropdownCheckIcon';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './AutocompleteDropdownCheckIcon';
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { FC } from 'react';
|
|
2
|
+
import type { AutocompleteProps } from '../../../../index';
|
|
3
|
+
export type AutocompleteDropdownLoadingProps = Pick<AutocompleteProps, 'loadingText' | 'size'> & {
|
|
4
|
+
showLoading: boolean;
|
|
5
|
+
};
|
|
6
|
+
export declare const AutocompleteDropdownLoading: FC<AutocompleteDropdownLoadingProps>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { getIconSizeToFormElement } from '../../../../../../utils/getIconSizeToFormElement';
|
|
3
|
+
import { isNumber } from '../../../../../../utils/isNumber';
|
|
4
|
+
import { isString } from '../../../../../../utils/isString';
|
|
5
|
+
import { ListItem, ListItemIcon, ListItemText } from '../../../../../List';
|
|
6
|
+
import { Loader } from '../../../../../Loader';
|
|
7
|
+
import { AUTOCOMPLETE_DEFAULT_SIZE } from '../../../../constants';
|
|
8
|
+
export var AutocompleteDropdownLoading = function (_a) {
|
|
9
|
+
var _b = _a.size, sizeProp = _b === void 0 ? AUTOCOMPLETE_DEFAULT_SIZE : _b, showLoading = _a.showLoading, loadingText = _a.loadingText;
|
|
10
|
+
if (!showLoading) {
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
var size = getIconSizeToFormElement(sizeProp);
|
|
14
|
+
return isString(loadingText) || isNumber(loadingText) ? (React.createElement(ListItem, null,
|
|
15
|
+
React.createElement(ListItemIcon, null,
|
|
16
|
+
React.createElement(Loader, { size: size })),
|
|
17
|
+
React.createElement(ListItemText, { primary: loadingText }))) : (loadingText);
|
|
18
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './AutocompleteDropdownLoading';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './AutocompleteDropdownLoading';
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { FC } from 'react';
|
|
2
|
+
import type { AutocompleteProps } from '../../../../index';
|
|
3
|
+
export type AutocompleteDropdownNoOptionsProps = Pick<AutocompleteProps, 'noOptionsText'> & {
|
|
4
|
+
showNoOptions: boolean;
|
|
5
|
+
};
|
|
6
|
+
export declare const AutocompleteDropdownNoOptions: FC<AutocompleteDropdownNoOptionsProps>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { isNumber } from '../../../../../../utils/isNumber';
|
|
3
|
+
import { isString } from '../../../../../../utils/isString';
|
|
4
|
+
import { ListItem, ListItemText } from '../../../../../List';
|
|
5
|
+
export var AutocompleteDropdownNoOptions = function (_a) {
|
|
6
|
+
var showNoOptions = _a.showNoOptions, noOptionsText = _a.noOptionsText;
|
|
7
|
+
if (!showNoOptions) {
|
|
8
|
+
return null;
|
|
9
|
+
}
|
|
10
|
+
return isString(noOptionsText) || isNumber(noOptionsText) ? (React.createElement(ListItem, null,
|
|
11
|
+
React.createElement(ListItemText, { primary: noOptionsText }))) : (noOptionsText);
|
|
12
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './AutocompleteDropdownNoOptions';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './AutocompleteDropdownNoOptions';
|
package/__inner__/esm/components/AutocompleteNext/components/AutocompleteDropdown/helpers.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { AutocompleteDropdownProps } from './types';
|
|
2
|
+
export declare const isMultipleParams: <OPTION>(params: AutocompleteDropdownProps<OPTION, boolean>) => params is AutocompleteDropdownProps<OPTION, true>;
|
|
3
|
+
export declare const isNotMultipleParams: <OPTION>(params: AutocompleteDropdownProps<OPTION, boolean>) => params is AutocompleteDropdownProps<OPTION, false>;
|
|
4
|
+
export type NormalizedOptions<OPTION> = {
|
|
5
|
+
entities: {
|
|
6
|
+
byIdx: Record<string | number, {
|
|
7
|
+
option: OPTION;
|
|
8
|
+
key: string | number;
|
|
9
|
+
}>;
|
|
10
|
+
byKey: Record<string | number, {
|
|
11
|
+
option: OPTION;
|
|
12
|
+
idx: string | number;
|
|
13
|
+
}>;
|
|
14
|
+
};
|
|
15
|
+
idxs: (string | number)[];
|
|
16
|
+
};
|
|
17
|
+
export declare function normalizeOptions<OPTION>(options: OPTION[], getOptionKey: (option: OPTION) => string | number, getOptionDisabled: (option: OPTION) => boolean | undefined): NormalizedOptions<OPTION>;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { __values } from "tslib";
|
|
2
|
+
export var isMultipleParams = function (params) { return !!params.multiple; };
|
|
3
|
+
export var isNotMultipleParams = function (params) { return !params.multiple; };
|
|
4
|
+
export function normalizeOptions(options, getOptionKey, getOptionDisabled) {
|
|
5
|
+
var e_1, _a;
|
|
6
|
+
var idx = 0;
|
|
7
|
+
var res = {
|
|
8
|
+
idxs: [],
|
|
9
|
+
entities: { byIdx: {}, byKey: {} },
|
|
10
|
+
};
|
|
11
|
+
try {
|
|
12
|
+
for (var options_1 = __values(options), options_1_1 = options_1.next(); !options_1_1.done; options_1_1 = options_1.next()) {
|
|
13
|
+
var option = options_1_1.value;
|
|
14
|
+
var key = getOptionKey(option);
|
|
15
|
+
res.entities.byIdx[idx] = { option: option, key: key };
|
|
16
|
+
res.entities.byKey[key] = { option: option, idx: idx };
|
|
17
|
+
if (!getOptionDisabled(option))
|
|
18
|
+
res.idxs.push(idx);
|
|
19
|
+
idx += 1;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
23
|
+
finally {
|
|
24
|
+
try {
|
|
25
|
+
if (options_1_1 && !options_1_1.done && (_a = options_1.return)) _a.call(options_1);
|
|
26
|
+
}
|
|
27
|
+
finally { if (e_1) throw e_1.error; }
|
|
28
|
+
}
|
|
29
|
+
return res;
|
|
30
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { ReactNode, ReactElement, SyntheticEvent } from 'react';
|
|
2
|
+
import type { FormElementSizeVariant } from '../../../../types/FormElementSizeVariant';
|
|
3
|
+
import type { ListProps } from '../../../List';
|
|
4
|
+
import type { PopoverProps, PopoverRef } from '../../../Popover';
|
|
5
|
+
import type { AutocompletePropValue, AutocompletePropRenderOption, AutocompletePropGetOptionKey, AutocompleteDefaultOption, AutocompletePropGetOptionDisabled, AutocompletePropGetOptionLabel } from '../../index';
|
|
6
|
+
export type AutocompleteDropdownRef = PopoverRef;
|
|
7
|
+
export type AutocompleteDropdownOnChange<OPTION> = (e: SyntheticEvent | KeyboardEvent, value: OPTION | null) => void;
|
|
8
|
+
export type AutocompleteDropdownProps<OPTION = AutocompleteDefaultOption, MULTIPLE extends boolean = false> = {
|
|
9
|
+
/** Имя списка */
|
|
10
|
+
name?: string;
|
|
11
|
+
/** Содержимое компонента */
|
|
12
|
+
children?: never;
|
|
13
|
+
/** Если {true} из списка можно выбрать несколько вариантов */
|
|
14
|
+
multiple?: MULTIPLE;
|
|
15
|
+
/** Список вариантов выбора (опции) */
|
|
16
|
+
options: OPTION[];
|
|
17
|
+
/** Размер */
|
|
18
|
+
size?: FormElementSizeVariant;
|
|
19
|
+
/** Выбранное значение опции */
|
|
20
|
+
value?: AutocompletePropValue<OPTION, MULTIPLE>;
|
|
21
|
+
/** Функция обратного вызова, которая будет вызвана при выборе значения */
|
|
22
|
+
onChange?: AutocompleteDropdownOnChange<OPTION>;
|
|
23
|
+
/** Функция для кастомизации отображения опции */
|
|
24
|
+
renderOption?: AutocompletePropRenderOption<OPTION>;
|
|
25
|
+
/** Функция для определения уникального ключа элемента */
|
|
26
|
+
getOptionKey: AutocompletePropGetOptionKey<OPTION>;
|
|
27
|
+
/** Функция для определения названия элемента */
|
|
28
|
+
getOptionLabel: AutocompletePropGetOptionLabel<OPTION>;
|
|
29
|
+
/** Функция для определения заблокированного элемента */
|
|
30
|
+
getOptionDisabled: AutocompletePropGetOptionDisabled<OPTION>;
|
|
31
|
+
/** Если {true} не показывает список с отсутствующими опциями */
|
|
32
|
+
disableShowEmptyOptionsList?: boolean;
|
|
33
|
+
/** Текст компонента в состоянии загрузки */
|
|
34
|
+
loadingText?: ReactNode;
|
|
35
|
+
/** Текст компонента при отсутствующих опций */
|
|
36
|
+
noOptionsText?: ReactNode;
|
|
37
|
+
/** Свойства компонента Popover */
|
|
38
|
+
popoverProps?: Partial<Omit<PopoverProps, 'children' | 'open' | 'anchorRef' | 'onClose' | 'className'>>;
|
|
39
|
+
/** Свойства компонента List */
|
|
40
|
+
listProps?: Partial<Omit<ListProps, 'children'>>;
|
|
41
|
+
loading?: boolean;
|
|
42
|
+
hasOptions?: boolean;
|
|
43
|
+
'data-testid'?: string;
|
|
44
|
+
} & Pick<PopoverProps, 'open' | 'anchorRef' | 'onClose' | 'className' | 'setUpdate'>;
|
|
45
|
+
export type AutocompleteDropdownComponent = <OPTION = AutocompleteDefaultOption, MULTIPLE extends boolean = false>(props: AutocompleteDropdownProps<OPTION, MULTIPLE>) => ReactElement | null;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { MouseEvent } from 'react';
|
|
2
|
+
export type UseListNavigationItem = string | number | null;
|
|
3
|
+
export type UseListNavigationItems = UseListNavigationItem[];
|
|
4
|
+
export type UseListNavigationProps = {
|
|
5
|
+
active?: boolean;
|
|
6
|
+
items?: UseListNavigationItems;
|
|
7
|
+
selected?: UseListNavigationItem;
|
|
8
|
+
onSelect?(event: KeyboardEvent | MouseEvent<HTMLElement>, item?: UseListNavigationItem): void;
|
|
9
|
+
};
|
|
10
|
+
export type UseListNavigationState = {
|
|
11
|
+
focused?: UseListNavigationItem;
|
|
12
|
+
current?: UseListNavigationItem;
|
|
13
|
+
};
|
|
14
|
+
export type UseListNavigationEvents = {
|
|
15
|
+
onKeyDown?(event: KeyboardEvent): void;
|
|
16
|
+
onClick?(event: MouseEvent<HTMLElement>, item: UseListNavigationItem): void;
|
|
17
|
+
};
|
|
18
|
+
export type UseListNavigationReturn = UseListNavigationState & UseListNavigationEvents;
|
|
19
|
+
/** Навигация по элементам списка без перехвата фокуса с элемента контроля */
|
|
20
|
+
export declare function useDataListNavigation({ selected, onSelect, active, items: itemsProps, }: UseListNavigationProps): UseListNavigationReturn;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { __assign, __read } from "tslib";
|
|
2
|
+
import { useEffect, useState, useCallback } from 'react';
|
|
3
|
+
import { useMutableRef } from '../../../../../hooks/useMutableRef';
|
|
4
|
+
import { getNextIndex } from '../../../../../utils/getNextIndex';
|
|
5
|
+
import { getPrevIndex } from '../../../../../utils/getPrevIndex';
|
|
6
|
+
import { isKey } from '../../../../../utils/isKey';
|
|
7
|
+
import { isKeys } from '../../../../../utils/isKeys';
|
|
8
|
+
/** Навигация по элементам списка без перехвата фокуса с элемента контроля */
|
|
9
|
+
export function useDataListNavigation(_a) {
|
|
10
|
+
var selected = _a.selected, onSelect = _a.onSelect, _b = _a.active, active = _b === void 0 ? false : _b, itemsProps = _a.items;
|
|
11
|
+
var savedItems = useMutableRef(itemsProps);
|
|
12
|
+
var savedSelected = useMutableRef(selected);
|
|
13
|
+
var savedOnSelect = useMutableRef(onSelect);
|
|
14
|
+
var _c = __read(useState({}), 2), state = _c[0], setState = _c[1];
|
|
15
|
+
var findInItems = function (value) { var _a; return (_a = savedItems.current) === null || _a === void 0 ? void 0 : _a.find(function (item) { return item === value; }); };
|
|
16
|
+
useEffect(function () {
|
|
17
|
+
if (!active)
|
|
18
|
+
return;
|
|
19
|
+
setState(function (prevState) {
|
|
20
|
+
var _a, _b, _c;
|
|
21
|
+
return (__assign(__assign({}, prevState), { focused: (_a = findInItems(prevState.focused)) !== null && _a !== void 0 ? _a : null, current: (_b = findInItems(savedSelected.current)) !== null && _b !== void 0 ? _b : (_c = savedItems.current) === null || _c === void 0 ? void 0 : _c[0] }));
|
|
22
|
+
});
|
|
23
|
+
}, [itemsProps, active]);
|
|
24
|
+
// Сброс
|
|
25
|
+
useEffect(function () {
|
|
26
|
+
if (!active)
|
|
27
|
+
return undefined;
|
|
28
|
+
return function () {
|
|
29
|
+
setState({});
|
|
30
|
+
};
|
|
31
|
+
}, [active]);
|
|
32
|
+
var onClick = useCallback(function (event, item) {
|
|
33
|
+
var _a;
|
|
34
|
+
if (!active)
|
|
35
|
+
return;
|
|
36
|
+
var focused = item === state.focused ? item : null;
|
|
37
|
+
setState(__assign(__assign({}, state), { focused: focused, current: item }));
|
|
38
|
+
(_a = savedOnSelect.current) === null || _a === void 0 ? void 0 : _a.call(savedOnSelect, event, item);
|
|
39
|
+
}, [state.focused, active]);
|
|
40
|
+
var onKeyDown = useCallback(function (event) {
|
|
41
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
42
|
+
if (!active || !isKeys(event, ['Enter', 'ArrowUp', 'ArrowDown']))
|
|
43
|
+
return;
|
|
44
|
+
var current = (_a = state.focused) !== null && _a !== void 0 ? _a : state.current;
|
|
45
|
+
if (isKey(event, 'Enter')) {
|
|
46
|
+
// Не обрабатываем ввод в пустом списке
|
|
47
|
+
if (!((_b = savedItems.current) === null || _b === void 0 ? void 0 : _b.length))
|
|
48
|
+
return;
|
|
49
|
+
event.preventDefault();
|
|
50
|
+
setState(__assign(__assign({}, state), { current: current, focused: current }));
|
|
51
|
+
(_c = savedOnSelect.current) === null || _c === void 0 ? void 0 : _c.call(savedOnSelect, event, current);
|
|
52
|
+
}
|
|
53
|
+
if (isKeys(event, ['ArrowUp', 'ArrowDown'])) {
|
|
54
|
+
event.preventDefault();
|
|
55
|
+
var currentIndex = typeof current !== 'undefined'
|
|
56
|
+
? (_d = savedItems.current) === null || _d === void 0 ? void 0 : _d.indexOf(current)
|
|
57
|
+
: null;
|
|
58
|
+
var isArrowUp = isKey(event, 'ArrowUp');
|
|
59
|
+
var newIndex = isArrowUp
|
|
60
|
+
? getPrevIndex(currentIndex !== null && currentIndex !== void 0 ? currentIndex : 0, ((_e = savedItems.current) === null || _e === void 0 ? void 0 : _e.length) || 0)
|
|
61
|
+
: getNextIndex(currentIndex !== null && currentIndex !== void 0 ? currentIndex : -1, ((_f = savedItems.current) === null || _f === void 0 ? void 0 : _f.length) || 0);
|
|
62
|
+
var newItem = (_g = savedItems.current) === null || _g === void 0 ? void 0 : _g[newIndex];
|
|
63
|
+
setState(__assign(__assign({}, state), { focused: newItem }));
|
|
64
|
+
}
|
|
65
|
+
}, [state.focused, state.current, active]);
|
|
66
|
+
return __assign(__assign({}, state), { onClick: onClick, onKeyDown: onKeyDown });
|
|
67
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { RefObject } from 'react';
|
|
2
|
+
import type { ScrollContainerToElement } from '../../../../../utils/scrollContainerToElement';
|
|
3
|
+
export declare function useScrollContainerToElement(container: RefObject<HTMLElement>, element: RefObject<HTMLElement>, behavior?: ScrollContainerToElement['behavior']): void;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { useEffect } from 'react';
|
|
2
|
+
import { scrollContainerToElement } from '../../../../../utils/scrollContainerToElement';
|
|
3
|
+
export function useScrollContainerToElement(container, element, behavior) {
|
|
4
|
+
useEffect(function () {
|
|
5
|
+
scrollContainerToElement({
|
|
6
|
+
container: container.current,
|
|
7
|
+
element: element.current,
|
|
8
|
+
behavior: behavior,
|
|
9
|
+
});
|
|
10
|
+
}, [container, element]);
|
|
11
|
+
}
|
package/__inner__/esm/components/AutocompleteNext/components/AutocompleteInput/AutocompleteInput.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { __assign, __rest } from "tslib";
|
|
2
|
+
import React, { forwardRef } from 'react';
|
|
3
|
+
import { isNotNil } from '../../../../utils/isNotNil';
|
|
4
|
+
import { Input } from '../../../Input';
|
|
5
|
+
import { cnAutocomplete } from '../../index';
|
|
6
|
+
import { AutocompleteRenderRight } from '../AutocompleteRenderRight';
|
|
7
|
+
import { AutocompleteInputMultiple } from './components';
|
|
8
|
+
import { isNotMultipleParams, isMultipleParams } from './helpers';
|
|
9
|
+
var AutocompleteInputRender = function (inProps, ref) {
|
|
10
|
+
var _a, _b;
|
|
11
|
+
var _c = inProps.size, size = _c === void 0 ? 'm' : _c, open = inProps.open, value = inProps.value, onOpen = inProps.onOpen, onClear = inProps.onClear, multiple = inProps.multiple, disabled = inProps.disabled, openText = inProps.openText, onRemoveTag = inProps.onRemoveTag, clearText = inProps.clearText, closeText = inProps.closeText, className = inProps.className, bodyProps = inProps.bodyProps, inputProps = inProps.inputProps, renderRight = inProps.renderRight, placeholder = inProps.placeholder, selectedOptions = inProps.selectedOptions, getOptionKey = inProps.getOptionKey, getOptionLabel = inProps.getOptionLabel, getOptionDisabled = inProps.getOptionDisabled, limitTags = inProps.limitTags, disableClearButton = inProps.disableClearButton, disableShowChevron = inProps.disableShowChevron, renderTag = inProps.renderTag, renderInputProp = inProps.renderInput, renderMoreTag = inProps.renderMoreTag, other = __rest(inProps, ["size", "open", "value", "onOpen", "onClear", "multiple", "disabled", "openText", "onRemoveTag", "clearText", "closeText", "className", "bodyProps", "inputProps", "renderRight", "placeholder", "selectedOptions", "getOptionKey", "getOptionLabel", "getOptionDisabled", "limitTags", "disableClearButton", "disableShowChevron", "renderTag", "renderInput", "renderMoreTag"]);
|
|
12
|
+
var hasValue = isMultipleParams(inProps)
|
|
13
|
+
? !!((_a = inProps.selectedOptions) === null || _a === void 0 ? void 0 : _a.length)
|
|
14
|
+
: isNotNil(selectedOptions);
|
|
15
|
+
var selectedOptionsLength = isMultipleParams(inProps)
|
|
16
|
+
? ((_b = inProps.selectedOptions) === null || _b === void 0 ? void 0 : _b.length) || 0
|
|
17
|
+
: 0;
|
|
18
|
+
var renderInputDefault = function (props, ref) { return (React.createElement(Input, __assign({}, props, { ref: ref }))); };
|
|
19
|
+
var renderInput = renderInputProp || renderInputDefault;
|
|
20
|
+
var renderComponent = function (_a, ref) {
|
|
21
|
+
var className = _a.className, other = __rest(_a, ["className"]);
|
|
22
|
+
if (isNotMultipleParams(inProps)) {
|
|
23
|
+
return (React.createElement("input", __assign({}, other, { ref: ref, className: cnAutocomplete('Input', { multiple: multiple }, [className]) })));
|
|
24
|
+
}
|
|
25
|
+
if (isMultipleParams(inProps)) {
|
|
26
|
+
var selectedOptions_1 = inProps.selectedOptions;
|
|
27
|
+
return (React.createElement(AutocompleteInputMultiple, __assign({ renderTag: renderTag, limitTags: limitTags, onRemoveTag: onRemoveTag, getOptionKey: getOptionKey, renderMoreTag: renderMoreTag, getOptionLabel: getOptionLabel, getOptionDisabled: getOptionDisabled, selectedOptions: selectedOptions_1, ref: ref }, other)));
|
|
28
|
+
}
|
|
29
|
+
return null;
|
|
30
|
+
};
|
|
31
|
+
return renderInput(__assign({ size: size, disabled: disabled, value: value || '', placeholder: placeholder, renderRight: (React.createElement(AutocompleteRenderRight, { open: open, size: size, onOpen: onOpen, onClear: onClear, hasValue: hasValue, openText: openText, disabled: disabled, clearText: clearText, closeText: closeText, renderRight: renderRight, disableShowChevron: disableShowChevron, disableClearButton: disableClearButton })), labelProps: {
|
|
32
|
+
shrink: !!selectedOptionsLength,
|
|
33
|
+
}, inputProps: __assign(__assign({ autoComplete: 'off' }, inputProps), { renderComponent: renderComponent }), bodyProps: __assign({ 'aria-expanded': open }, bodyProps), className: cnAutocomplete({ size: size, multiple: multiple, hasChevron: !disableShowChevron }, [className]) }, other), ref);
|
|
34
|
+
};
|
|
35
|
+
export var AutocompleteInput = forwardRef(AutocompleteInputRender);
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { __assign, __read, __rest } from "tslib";
|
|
2
|
+
import React, { forwardRef, useState } from 'react';
|
|
3
|
+
import { CrossSmallIcon } from '@ozen-ui/icons';
|
|
4
|
+
import { useElementSize } from '../../../../../hooks/useElementSize';
|
|
5
|
+
import { useIsomorphicEffect } from '../../../../../hooks/useIsomorphicEffect';
|
|
6
|
+
import { isNumber } from '../../../../../utils/isNumber';
|
|
7
|
+
import { Tag } from '../../../../TagNext';
|
|
8
|
+
import { cnAutocomplete, } from '../../../index';
|
|
9
|
+
import { calcElementSize, calcElementsSize, createMap, getAutocompleteSizeToTag, } from './helpers';
|
|
10
|
+
var AutocompleteInputMultipleRender = function (inProps, ref) {
|
|
11
|
+
var _a = inProps.size, size = _a === void 0 ? 'm' : _a, value = inProps.value, placeholder = inProps.placeholder, selectedOptions = inProps.selectedOptions, onRemoveTag = inProps.onRemoveTag, renderTagProp = inProps.renderTag, renderMoreTagProp = inProps.renderMoreTag, getOptionKey = inProps.getOptionKey, getOptionLabel = inProps.getOptionLabel, getOptionDisabled = inProps.getOptionDisabled, limitTags = inProps.limitTags, other = __rest(inProps, ["size", "value", "placeholder", "selectedOptions", "onRemoveTag", "renderTag", "renderMoreTag", "getOptionKey", "getOptionLabel", "getOptionDisabled", "limitTags"]);
|
|
12
|
+
var selectedOptionsLength = (selectedOptions === null || selectedOptions === void 0 ? void 0 : selectedOptions.length) || 0;
|
|
13
|
+
var responsive = limitTags === 'responsive';
|
|
14
|
+
var hasLimitTags = isNumber(limitTags) && limitTags > 0;
|
|
15
|
+
var showMoreTag = !!selectedOptionsLength && (responsive || hasLimitTags);
|
|
16
|
+
var _b = __read(useState(), 2), visibleMap = _b[0], setVisibleMap = _b[1];
|
|
17
|
+
var omittedValues = selectedOptions === null || selectedOptions === void 0 ? void 0 : selectedOptions.filter(function (_, i) { return !(visibleMap === null || visibleMap === void 0 ? void 0 : visibleMap[i]); });
|
|
18
|
+
var renderMoreTagDefault = function (_a, ref) {
|
|
19
|
+
var props = _a.props;
|
|
20
|
+
return React.createElement(Tag, __assign({ color: "neutral" }, props, { ref: ref }));
|
|
21
|
+
};
|
|
22
|
+
var renderMoreTag = renderMoreTagProp || renderMoreTagDefault;
|
|
23
|
+
var renderTagDefault = function (props, ref) { return (React.createElement(Tag, __assign({ color: "neutral" }, props, { ref: ref }))); };
|
|
24
|
+
var renderTag = renderTagProp || renderTagDefault;
|
|
25
|
+
var _c = useElementSize(), parentRef = _c.ref, parentSize = _c.width;
|
|
26
|
+
var moreTagSize = (parentRef === null || parentRef === void 0 ? void 0 : parentRef.current)
|
|
27
|
+
? calcElementSize(parentRef === null || parentRef === void 0 ? void 0 : parentRef.current.children[selectedOptionsLength])
|
|
28
|
+
: 0;
|
|
29
|
+
var _d = useElementSize(), helperInputRef = _d.ref, _e = _d.width, helperInputSize = _e === void 0 ? 20 : _e;
|
|
30
|
+
var getInputSize = function () {
|
|
31
|
+
var inputSize = helperInputSize + 20;
|
|
32
|
+
if (responsive &&
|
|
33
|
+
(visibleMap === null || visibleMap === void 0 ? void 0 : visibleMap.filter(function (item) { return !item; }).length) === selectedOptionsLength) {
|
|
34
|
+
return inputSize > parentSize - moreTagSize
|
|
35
|
+
? parentSize - moreTagSize
|
|
36
|
+
: inputSize;
|
|
37
|
+
}
|
|
38
|
+
return inputSize > parentSize ? parentSize : inputSize;
|
|
39
|
+
};
|
|
40
|
+
var inputSize = getInputSize();
|
|
41
|
+
useIsomorphicEffect(function () {
|
|
42
|
+
if ((!responsive && !isNumber(limitTags)) || !parentSize)
|
|
43
|
+
return;
|
|
44
|
+
var optionsLength = selectedOptionsLength;
|
|
45
|
+
var parentSizeWithoutInput = parentSize - inputSize;
|
|
46
|
+
var moreIndex = optionsLength;
|
|
47
|
+
var map = createMap(optionsLength + 1, moreIndex);
|
|
48
|
+
for (var i = 0; i < optionsLength + 1; i += 1) {
|
|
49
|
+
var index = moreIndex - i;
|
|
50
|
+
if (index !== moreIndex) {
|
|
51
|
+
var elementsSize = calcElementsSize(parentRef.current.children, map);
|
|
52
|
+
var condition = responsive
|
|
53
|
+
? elementsSize > parentSizeWithoutInput
|
|
54
|
+
: isNumber(limitTags) && limitTags <= index;
|
|
55
|
+
if (condition) {
|
|
56
|
+
map[index] = false;
|
|
57
|
+
map[moreIndex] = true;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
setVisibleMap(map);
|
|
62
|
+
}, [
|
|
63
|
+
limitTags,
|
|
64
|
+
inputSize,
|
|
65
|
+
parentSize,
|
|
66
|
+
selectedOptions,
|
|
67
|
+
selectedOptionsLength,
|
|
68
|
+
]);
|
|
69
|
+
return (React.createElement(React.Fragment, null,
|
|
70
|
+
React.createElement("div", { ref: parentRef, className: cnAutocomplete('Input', { responsive: responsive, multiple: true }) }, selectedOptions === null || selectedOptions === void 0 ? void 0 :
|
|
71
|
+
selectedOptions.map(function (option, index) {
|
|
72
|
+
var label = (getOptionLabel === null || getOptionLabel === void 0 ? void 0 : getOptionLabel(option)) || '';
|
|
73
|
+
var key = getOptionKey === null || getOptionKey === void 0 ? void 0 : getOptionKey(option);
|
|
74
|
+
var disabled = getOptionDisabled === null || getOptionDisabled === void 0 ? void 0 : getOptionDisabled(option);
|
|
75
|
+
return renderTag({
|
|
76
|
+
key: key,
|
|
77
|
+
label: label,
|
|
78
|
+
size: getAutocompleteSizeToTag(size),
|
|
79
|
+
className: cnAutocomplete('Tag', {
|
|
80
|
+
hidden: (responsive || hasLimitTags) && !(visibleMap === null || visibleMap === void 0 ? void 0 : visibleMap[index]),
|
|
81
|
+
disabled: disabled,
|
|
82
|
+
}),
|
|
83
|
+
iconRight: function (_a) {
|
|
84
|
+
var size = _a.size;
|
|
85
|
+
return (React.createElement("span", { "aria-hidden": "true", "data-testid": "clear-tag", className: cnAutocomplete('ClearTag'), onClick: function (e) {
|
|
86
|
+
if (disabled)
|
|
87
|
+
return;
|
|
88
|
+
e.preventDefault();
|
|
89
|
+
onRemoveTag === null || onRemoveTag === void 0 ? void 0 : onRemoveTag(e, option);
|
|
90
|
+
} },
|
|
91
|
+
React.createElement(CrossSmallIcon, { size: size })));
|
|
92
|
+
},
|
|
93
|
+
});
|
|
94
|
+
}),
|
|
95
|
+
showMoreTag &&
|
|
96
|
+
renderMoreTag({
|
|
97
|
+
omittedValues: omittedValues,
|
|
98
|
+
props: {
|
|
99
|
+
label: "+".concat(visibleMap === null || visibleMap === void 0 ? void 0 : visibleMap.filter(function (item) { return !item; }).length),
|
|
100
|
+
size: getAutocompleteSizeToTag(size),
|
|
101
|
+
className: cnAutocomplete('Tag', {
|
|
102
|
+
hidden: !(visibleMap === null || visibleMap === void 0 ? void 0 : visibleMap[selectedOptionsLength]),
|
|
103
|
+
}),
|
|
104
|
+
},
|
|
105
|
+
}),
|
|
106
|
+
React.createElement("input", __assign({}, other, { value: value, ref: ref, style: { width: inputSize }, placeholder: placeholder }))),
|
|
107
|
+
React.createElement("div", { className: cnAutocomplete('HelperInput'), ref: helperInputRef }, value || placeholder)));
|
|
108
|
+
};
|
|
109
|
+
export var AutocompleteInputMultiple = forwardRef(AutocompleteInputMultipleRender);
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { AutocompletePropSize } from '../../../index';
|
|
2
|
+
export declare const getAutocompleteSizeToTag: (size: AutocompletePropSize) => "s" | "m" | "l" | "2xs" | "xs";
|
|
3
|
+
export declare function calcElementSize(el?: Element): number;
|
|
4
|
+
export declare const calcElementsSize: (elements: Element[], map: boolean[]) => number;
|
|
5
|
+
export declare const createMap: (length: number, moreIndex: number) => boolean[];
|
package/__inner__/esm/components/AutocompleteNext/components/AutocompleteInput/components/helpers.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { getByMap } from '../../../../../utils/getByMap';
|
|
2
|
+
var typeMap = {
|
|
3
|
+
'2xs': '2xs',
|
|
4
|
+
xs: '2xs',
|
|
5
|
+
s: '2xs',
|
|
6
|
+
m: 'xs',
|
|
7
|
+
l: 'xs',
|
|
8
|
+
};
|
|
9
|
+
export var getAutocompleteSizeToTag = function (size) {
|
|
10
|
+
return getByMap(typeMap, size);
|
|
11
|
+
};
|
|
12
|
+
export function calcElementSize(el) {
|
|
13
|
+
if (!el)
|
|
14
|
+
return 0;
|
|
15
|
+
var _a = getComputedStyle(el), marginRight = _a.marginRight, marginLeft = _a.marginLeft;
|
|
16
|
+
return (el.getBoundingClientRect().width +
|
|
17
|
+
parseInt(marginRight, 10) +
|
|
18
|
+
parseInt(marginLeft, 10));
|
|
19
|
+
}
|
|
20
|
+
export var calcElementsSize = function (elements, map) {
|
|
21
|
+
var sum = 0;
|
|
22
|
+
for (var index = 0; index < elements.length; index++) {
|
|
23
|
+
sum += map[index] ? calcElementSize(elements === null || elements === void 0 ? void 0 : elements[index]) : 0;
|
|
24
|
+
}
|
|
25
|
+
return sum;
|
|
26
|
+
};
|
|
27
|
+
export var createMap = function (length, moreIndex) {
|
|
28
|
+
return new Array(length).fill(0).map(function (_, index) { return index !== moreIndex; });
|
|
29
|
+
};
|
package/__inner__/esm/components/AutocompleteNext/components/AutocompleteInput/components/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './AutocompleteInputMultiple';
|
package/__inner__/esm/components/AutocompleteNext/components/AutocompleteInput/components/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './AutocompleteInputMultiple';
|
package/__inner__/esm/components/AutocompleteNext/components/AutocompleteInput/components/types.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ReactElement, Ref } from 'react';
|
|
2
|
+
import type { InputProps } from '../../../../Input';
|
|
3
|
+
import type { AutocompleteDefaultOption, AutocompletePropGetOptionDisabled, AutocompletePropGetOptionKey, AutocompletePropGetOptionLabel, AutocompletePropRenderMoreTag, AutocompletePropRenderTag, AutocompletePropValue } from '../../../index';
|
|
4
|
+
import type { AutocompleteDropdownOnChange } from '../../index';
|
|
5
|
+
export type AutocompleteInputMultipleRef = HTMLInputElement;
|
|
6
|
+
export type AutocompleteInputMultipleProps<OPTION = AutocompleteDefaultOption> = Pick<InputProps, 'size' | 'value' | 'placeholder'> & {
|
|
7
|
+
getOptionLabel?: AutocompletePropGetOptionLabel<OPTION>;
|
|
8
|
+
getOptionKey?: AutocompletePropGetOptionKey<OPTION>;
|
|
9
|
+
getOptionDisabled?: AutocompletePropGetOptionDisabled<OPTION>;
|
|
10
|
+
onRemoveTag?: AutocompleteDropdownOnChange<OPTION>;
|
|
11
|
+
selectedOptions?: AutocompletePropValue<OPTION, true>;
|
|
12
|
+
renderTag?: AutocompletePropRenderTag;
|
|
13
|
+
renderMoreTag?: AutocompletePropRenderMoreTag<OPTION>;
|
|
14
|
+
limitTags?: 'responsive' | number;
|
|
15
|
+
ref?: Ref<AutocompleteInputMultipleRef>;
|
|
16
|
+
};
|
|
17
|
+
export type AutocompleteInputMultipleComponent = <OPTION = AutocompleteDefaultOption>(props: AutocompleteInputMultipleProps<OPTION>) => ReactElement | null;
|
package/__inner__/esm/components/AutocompleteNext/components/AutocompleteInput/components/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { AutocompleteInputProps } from './types';
|
|
2
|
+
export declare const isMultipleParams: <OPTION>(params: AutocompleteInputProps<OPTION, boolean>) => params is AutocompleteInputProps<OPTION, true>;
|
|
3
|
+
export declare const isNotMultipleParams: <OPTION>(params: AutocompleteInputProps<OPTION, boolean>) => params is AutocompleteInputProps<OPTION, false>;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { ReactElement, Ref } from 'react';
|
|
2
|
+
import type { InputProps, InputRef } from '../../../Input';
|
|
3
|
+
import type { AutocompleteDefaultOption, AutocompletePropGetOptionKey, AutocompletePropGetOptionLabel, AutocompletePropValue, AutocompletePropRenderInput, AutocompletePropRenderTag, AutocompletePropRenderMoreTag, AutocompletePropGetOptionDisabled } from '../../index';
|
|
4
|
+
import type { AutocompleteDropdownOnChange } from '../AutocompleteDropdown';
|
|
5
|
+
import type { AutocompleteRenderRightProps } from '../AutocompleteRenderRight';
|
|
6
|
+
export type AutocompleteInputRef = InputRef;
|
|
7
|
+
export type AutocompleteInputProps<OPTION = AutocompleteDefaultOption, MULTIPLE extends boolean = false> = Pick<InputProps, 'size' | 'value' | 'disabled' | 'required' | 'onChange' | 'fullWidth' | 'onKeyDown' | 'className' | 'bodyProps' | 'inputProps' | 'renderRight' | 'placeholder'> & Pick<AutocompleteRenderRightProps, 'onOpen' | 'onClear'> & {
|
|
8
|
+
open?: boolean;
|
|
9
|
+
openText?: string;
|
|
10
|
+
closeText?: string;
|
|
11
|
+
clearText?: string;
|
|
12
|
+
multiple?: MULTIPLE;
|
|
13
|
+
disableShowChevron?: boolean;
|
|
14
|
+
disableClearButton?: boolean;
|
|
15
|
+
ref?: Ref<AutocompleteInputRef>;
|
|
16
|
+
limitTags?: 'responsive' | number;
|
|
17
|
+
renderTag?: AutocompletePropRenderTag;
|
|
18
|
+
renderInput?: AutocompletePropRenderInput;
|
|
19
|
+
onRemoveTag?: AutocompleteDropdownOnChange<OPTION>;
|
|
20
|
+
getOptionKey?: AutocompletePropGetOptionKey<OPTION>;
|
|
21
|
+
renderMoreTag?: AutocompletePropRenderMoreTag<OPTION>;
|
|
22
|
+
getOptionLabel?: AutocompletePropGetOptionLabel<OPTION>;
|
|
23
|
+
getOptionDisabled?: AutocompletePropGetOptionDisabled<OPTION>;
|
|
24
|
+
selectedOptions?: AutocompletePropValue<OPTION, MULTIPLE>;
|
|
25
|
+
};
|
|
26
|
+
export type AutocompleteInputComponent = <OPTION = AutocompleteDefaultOption, MULTIPLE extends boolean = false>(props: AutocompleteInputProps<OPTION, MULTIPLE>) => ReactElement | null;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|