@ozen-ui/kit 0.57.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/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/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/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/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/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/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/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/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 +4 -4
- 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,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 {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { FC, MouseEvent } from 'react';
|
|
2
|
+
import type { AutocompleteProps } from '../../index';
|
|
3
|
+
export type AutocompleteRenderRightProps = {
|
|
4
|
+
hasValue: boolean;
|
|
5
|
+
onOpen: () => void;
|
|
6
|
+
onClear: (e: MouseEvent<HTMLElement>) => void;
|
|
7
|
+
} & Pick<AutocompleteProps, 'size' | 'open' | 'disabled' | 'openText' | 'clearText' | 'closeText' | 'renderRight' | 'disableClearButton' | 'disableShowChevron'>;
|
|
8
|
+
export declare const AutocompleteRenderRight: FC<AutocompleteRenderRightProps>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { __read } from "tslib";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { ChevronDownIcon, ChevronUpIcon, CrossIcon } from '@ozen-ui/icons';
|
|
4
|
+
import { useFieldControl } from '../../../FieldControl';
|
|
5
|
+
import { FieldIcon } from '../../../FieldIcon';
|
|
6
|
+
import { IconButton } from '../../../IconButtonNext';
|
|
7
|
+
import { cnAutocomplete } from '../../index';
|
|
8
|
+
export var AutocompleteRenderRight = function (_a) {
|
|
9
|
+
var open = _a.open, size = _a.size, onOpen = _a.onOpen, onClear = _a.onClear, openText = _a.openText, disabled = _a.disabled, hasValue = _a.hasValue, clearText = _a.clearText, closeText = _a.closeText, renderRight = _a.renderRight, disableClearButton = _a.disableClearButton, disableShowChevron = _a.disableShowChevron;
|
|
10
|
+
var _b = __read(useFieldControl(), 1), _c = _b[0], focused = _c.focused, hovered = _c.hovered;
|
|
11
|
+
var isVisibleClearButton = !!(hovered || open || focused) && hasValue;
|
|
12
|
+
return (React.createElement("div", { className: cnAutocomplete('RenderRight') },
|
|
13
|
+
!disableClearButton && (React.createElement(IconButton, { size: size, type: "button", tabIndex: -1, icon: CrossIcon, variant: "function", title: clearText, "aria-label": clearText, onClick: function (e) {
|
|
14
|
+
e.preventDefault();
|
|
15
|
+
onClear === null || onClear === void 0 ? void 0 : onClear(e);
|
|
16
|
+
}, className: cnAutocomplete('ClearButton', {
|
|
17
|
+
visibility: isVisibleClearButton,
|
|
18
|
+
}), compressed: true })),
|
|
19
|
+
React.createElement(FieldIcon, { icon: renderRight }),
|
|
20
|
+
!disableShowChevron && (React.createElement(IconButton, { size: size, type: "button", tabIndex: -1, variant: "ghost", disabled: disabled, title: open ? closeText : openText, "aria-label": open ? closeText : openText, icon: open ? ChevronUpIcon : ChevronDownIcon, onClick: function (e) {
|
|
21
|
+
e.preventDefault();
|
|
22
|
+
onOpen();
|
|
23
|
+
}, compressed: true }))));
|
|
24
|
+
};
|
package/__inner__/esm/components/AutocompleteNext/components/AutocompleteRenderRight/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './AutocompleteRenderRight';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './AutocompleteRenderRight';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare const AUTOCOMPLETE_DEFAULT_DISABLED = false;
|
|
2
|
+
export declare const AUTOCOMPLETE_DEFAULT_REQUIRED = false;
|
|
3
|
+
export declare const AUTOCOMPLETE_DEFAULT_AUTOFOCUS = false;
|
|
4
|
+
export declare const AUTOCOMPLETE_DEFAULT_FULLWIDTH = false;
|
|
5
|
+
export declare const AUTOCOMPLETE_DEFAULT_ALLOW_CUSTOM_VALUE = false;
|
|
6
|
+
export declare const AUTOCOMPLETE_DEFAULT_DISABLE_SHOW_CHEVRON = false;
|
|
7
|
+
export declare const AUTOCOMPLETE_DEFAULT_DISABLE_SHOW_EMPTY_OPTIONS_LIST = false;
|
|
8
|
+
export declare const AUTOCOMPLETE_DEFAULT_DISABLE_CLOSE_ON_SELECT = false;
|
|
9
|
+
export declare const AUTOCOMPLETE_DEFAULT_DISABLE_CLEAR_BUTTON = false;
|
|
10
|
+
export declare const AUTOCOMPLETE_DEFAULT_SIZE = "m";
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export var AUTOCOMPLETE_DEFAULT_DISABLED = false;
|
|
2
|
+
export var AUTOCOMPLETE_DEFAULT_REQUIRED = false;
|
|
3
|
+
export var AUTOCOMPLETE_DEFAULT_AUTOFOCUS = false;
|
|
4
|
+
export var AUTOCOMPLETE_DEFAULT_FULLWIDTH = false;
|
|
5
|
+
export var AUTOCOMPLETE_DEFAULT_ALLOW_CUSTOM_VALUE = false;
|
|
6
|
+
export var AUTOCOMPLETE_DEFAULT_DISABLE_SHOW_CHEVRON = false;
|
|
7
|
+
export var AUTOCOMPLETE_DEFAULT_DISABLE_SHOW_EMPTY_OPTIONS_LIST = false;
|
|
8
|
+
export var AUTOCOMPLETE_DEFAULT_DISABLE_CLOSE_ON_SELECT = false;
|
|
9
|
+
export var AUTOCOMPLETE_DEFAULT_DISABLE_CLEAR_BUTTON = false;
|
|
10
|
+
export var AUTOCOMPLETE_DEFAULT_SIZE = 'm';
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import type { AutocompleteDefaultOption, AutocompletePropGetOptionDisabled, AutocompletePropGetOptionKey, AutocompletePropGetOptionLabel, AutocompleteProps } from './types';
|
|
3
|
+
export declare const defaultGetOptionKey: AutocompletePropGetOptionKey<AutocompleteDefaultOption>;
|
|
4
|
+
export declare const defaultGetOptionLabel: AutocompletePropGetOptionLabel<AutocompleteDefaultOption>;
|
|
5
|
+
export declare const defaultGetOptionDisabled: AutocompletePropGetOptionDisabled<AutocompleteDefaultOption>;
|
|
6
|
+
export declare function withDefaultGetters<OPTION = AutocompleteDefaultOption, MULTIPLE extends boolean = false>(props: AutocompleteProps<OPTION, MULTIPLE>): ({
|
|
7
|
+
multiple?: MULTIPLE | undefined;
|
|
8
|
+
limitTags?: number | "responsive" | undefined;
|
|
9
|
+
renderTag?: import("./types").AutocompletePropRenderTag | undefined;
|
|
10
|
+
renderMoreTag?: import("./types").AutocompletePropRenderMoreTag<OPTION> | undefined;
|
|
11
|
+
options: OPTION[];
|
|
12
|
+
size?: "s" | "m" | "l" | "2xs" | "xs" | undefined;
|
|
13
|
+
value?: import("./types").AutocompletePropValue<OPTION, MULTIPLE>;
|
|
14
|
+
defaultValue?: import("./types").AutocompletePropValue<OPTION, MULTIPLE>;
|
|
15
|
+
onChange?: import("./types").AutocompleteOnChange<OPTION, MULTIPLE> | undefined;
|
|
16
|
+
inputValue?: string | undefined;
|
|
17
|
+
onInputChange?: import("./types").AutocompleteOnInputChange | undefined;
|
|
18
|
+
renderInput?: import("./types").AutocompletePropRenderInput | undefined;
|
|
19
|
+
renderOption?: import("./types").AutocompletePropRenderOption<OPTION> | undefined;
|
|
20
|
+
getOptionLabel?: AutocompletePropGetOptionLabel<OPTION> | undefined;
|
|
21
|
+
getOptionKey?: AutocompletePropGetOptionKey<OPTION> | undefined;
|
|
22
|
+
getOptionDisabled?: AutocompletePropGetOptionDisabled<OPTION> | undefined;
|
|
23
|
+
disableCloseOnSelect?: boolean | undefined;
|
|
24
|
+
allowCustomValue?: boolean | undefined;
|
|
25
|
+
loading?: boolean | undefined;
|
|
26
|
+
noOptionsText?: import("react").ReactNode;
|
|
27
|
+
clearText?: string | undefined;
|
|
28
|
+
openText?: string | undefined;
|
|
29
|
+
closeText?: string | undefined;
|
|
30
|
+
loadingText?: import("react").ReactNode;
|
|
31
|
+
onClose?(): void;
|
|
32
|
+
onOpen?(): void;
|
|
33
|
+
disableClearButton?: boolean | undefined;
|
|
34
|
+
searchFunction?: import("./types").AutocompletePropSearchFunction<OPTION> | undefined;
|
|
35
|
+
disableShowEmptyOptionsList?: boolean | undefined;
|
|
36
|
+
disableShowChevron?: boolean | undefined;
|
|
37
|
+
popoverProps?: Partial<Omit<import("../Popover").PopoverProps, "className" | "children" | "open" | "onClose" | "anchorRef">> | undefined;
|
|
38
|
+
listProps?: Partial<Omit<import("../List").ListProps, "children">> | undefined;
|
|
39
|
+
} & {
|
|
40
|
+
error?: boolean | undefined;
|
|
41
|
+
label?: string | undefined;
|
|
42
|
+
style?: import("react").CSSProperties | undefined;
|
|
43
|
+
className?: string | undefined;
|
|
44
|
+
onKeyDown?: import("react").KeyboardEventHandler<HTMLDivElement> | undefined;
|
|
45
|
+
autoFocus?: boolean | undefined;
|
|
46
|
+
disabled?: boolean | undefined;
|
|
47
|
+
placeholder?: string | undefined;
|
|
48
|
+
required?: boolean | undefined;
|
|
49
|
+
fullWidth?: boolean | undefined;
|
|
50
|
+
disableStroke?: boolean | undefined;
|
|
51
|
+
hint?: string | null | undefined;
|
|
52
|
+
renderLeft?: string | number | import("react").FC<import("@ozen-ui/icons").IconProps> | import("react").ReactElement<import("@ozen-ui/icons").IconProps, string | import("react").JSXElementConstructor<any>> | (() => import("react").ReactElement<import("@ozen-ui/icons").IconProps, string | import("react").JSXElementConstructor<any>>) | undefined;
|
|
53
|
+
renderRight?: string | number | import("react").FC<import("@ozen-ui/icons").IconProps> | import("react").ReactElement<import("@ozen-ui/icons").IconProps, string | import("react").JSXElementConstructor<any>> | (() => import("react").ReactElement<import("@ozen-ui/icons").IconProps, string | import("react").JSXElementConstructor<any>>) | undefined;
|
|
54
|
+
inputProps?: import("../FieldInput").FieldInputProps | undefined;
|
|
55
|
+
bodyProps?: (Omit<import("react").DetailedHTMLProps<import("react").LabelHTMLAttributes<HTMLLabelElement>, HTMLLabelElement>, "ref"> & {
|
|
56
|
+
ref?: ((instance: HTMLLabelElement | null) => void) | import("react").RefObject<HTMLLabelElement> | null | undefined;
|
|
57
|
+
}) | undefined;
|
|
58
|
+
hintProps?: Omit<import("../FieldHint").FieldHintProps, "children"> | undefined;
|
|
59
|
+
} & {
|
|
60
|
+
open?: boolean | undefined;
|
|
61
|
+
defaultOpen?: undefined;
|
|
62
|
+
} & (OPTION extends {
|
|
63
|
+
label: string;
|
|
64
|
+
} ? Record<string, unknown> : {
|
|
65
|
+
getOptionLabel?: AutocompletePropGetOptionLabel<OPTION> | undefined;
|
|
66
|
+
}) & (OPTION extends {
|
|
67
|
+
id: string | number;
|
|
68
|
+
} ? Record<string, unknown> : {
|
|
69
|
+
getOptionKey?: AutocompletePropGetOptionKey<OPTION> | undefined;
|
|
70
|
+
}) & (OPTION extends {
|
|
71
|
+
disabled: boolean | undefined;
|
|
72
|
+
} ? Record<string, unknown> : {
|
|
73
|
+
getOptionDisabled?: AutocompletePropGetOptionDisabled<OPTION> | undefined;
|
|
74
|
+
}) & {
|
|
75
|
+
getOptionLabel: AutocompletePropGetOptionLabel<AutocompleteDefaultOption> | AutocompletePropGetOptionLabel<OPTION>;
|
|
76
|
+
getOptionKey: AutocompletePropGetOptionKey<AutocompleteDefaultOption> | AutocompletePropGetOptionKey<OPTION>;
|
|
77
|
+
getOptionDisabled: AutocompletePropGetOptionDisabled<AutocompleteDefaultOption> | AutocompletePropGetOptionDisabled<OPTION>;
|
|
78
|
+
}) | ({
|
|
79
|
+
multiple?: MULTIPLE | undefined;
|
|
80
|
+
limitTags?: number | "responsive" | undefined;
|
|
81
|
+
renderTag?: import("./types").AutocompletePropRenderTag | undefined;
|
|
82
|
+
renderMoreTag?: import("./types").AutocompletePropRenderMoreTag<OPTION> | undefined;
|
|
83
|
+
options: OPTION[];
|
|
84
|
+
size?: "s" | "m" | "l" | "2xs" | "xs" | undefined;
|
|
85
|
+
value?: import("./types").AutocompletePropValue<OPTION, MULTIPLE>;
|
|
86
|
+
defaultValue?: import("./types").AutocompletePropValue<OPTION, MULTIPLE>;
|
|
87
|
+
onChange?: import("./types").AutocompleteOnChange<OPTION, MULTIPLE> | undefined;
|
|
88
|
+
inputValue?: string | undefined;
|
|
89
|
+
onInputChange?: import("./types").AutocompleteOnInputChange | undefined;
|
|
90
|
+
renderInput?: import("./types").AutocompletePropRenderInput | undefined;
|
|
91
|
+
renderOption?: import("./types").AutocompletePropRenderOption<OPTION> | undefined;
|
|
92
|
+
getOptionLabel?: AutocompletePropGetOptionLabel<OPTION> | undefined;
|
|
93
|
+
getOptionKey?: AutocompletePropGetOptionKey<OPTION> | undefined;
|
|
94
|
+
getOptionDisabled?: AutocompletePropGetOptionDisabled<OPTION> | undefined;
|
|
95
|
+
disableCloseOnSelect?: boolean | undefined;
|
|
96
|
+
allowCustomValue?: boolean | undefined;
|
|
97
|
+
loading?: boolean | undefined;
|
|
98
|
+
noOptionsText?: import("react").ReactNode;
|
|
99
|
+
clearText?: string | undefined;
|
|
100
|
+
openText?: string | undefined;
|
|
101
|
+
closeText?: string | undefined;
|
|
102
|
+
loadingText?: import("react").ReactNode;
|
|
103
|
+
onClose?(): void;
|
|
104
|
+
onOpen?(): void;
|
|
105
|
+
disableClearButton?: boolean | undefined;
|
|
106
|
+
searchFunction?: import("./types").AutocompletePropSearchFunction<OPTION> | undefined;
|
|
107
|
+
disableShowEmptyOptionsList?: boolean | undefined;
|
|
108
|
+
disableShowChevron?: boolean | undefined;
|
|
109
|
+
popoverProps?: Partial<Omit<import("../Popover").PopoverProps, "className" | "children" | "open" | "onClose" | "anchorRef">> | undefined;
|
|
110
|
+
listProps?: Partial<Omit<import("../List").ListProps, "children">> | undefined;
|
|
111
|
+
} & {
|
|
112
|
+
error?: boolean | undefined;
|
|
113
|
+
label?: string | undefined;
|
|
114
|
+
style?: import("react").CSSProperties | undefined;
|
|
115
|
+
className?: string | undefined;
|
|
116
|
+
onKeyDown?: import("react").KeyboardEventHandler<HTMLDivElement> | undefined;
|
|
117
|
+
autoFocus?: boolean | undefined;
|
|
118
|
+
disabled?: boolean | undefined;
|
|
119
|
+
placeholder?: string | undefined;
|
|
120
|
+
required?: boolean | undefined;
|
|
121
|
+
fullWidth?: boolean | undefined;
|
|
122
|
+
disableStroke?: boolean | undefined;
|
|
123
|
+
hint?: string | null | undefined;
|
|
124
|
+
renderLeft?: string | number | import("react").FC<import("@ozen-ui/icons").IconProps> | import("react").ReactElement<import("@ozen-ui/icons").IconProps, string | import("react").JSXElementConstructor<any>> | (() => import("react").ReactElement<import("@ozen-ui/icons").IconProps, string | import("react").JSXElementConstructor<any>>) | undefined;
|
|
125
|
+
renderRight?: string | number | import("react").FC<import("@ozen-ui/icons").IconProps> | import("react").ReactElement<import("@ozen-ui/icons").IconProps, string | import("react").JSXElementConstructor<any>> | (() => import("react").ReactElement<import("@ozen-ui/icons").IconProps, string | import("react").JSXElementConstructor<any>>) | undefined;
|
|
126
|
+
inputProps?: import("../FieldInput").FieldInputProps | undefined;
|
|
127
|
+
bodyProps?: (Omit<import("react").DetailedHTMLProps<import("react").LabelHTMLAttributes<HTMLLabelElement>, HTMLLabelElement>, "ref"> & {
|
|
128
|
+
ref?: ((instance: HTMLLabelElement | null) => void) | import("react").RefObject<HTMLLabelElement> | null | undefined;
|
|
129
|
+
}) | undefined;
|
|
130
|
+
hintProps?: Omit<import("../FieldHint").FieldHintProps, "children"> | undefined;
|
|
131
|
+
} & {
|
|
132
|
+
open?: undefined;
|
|
133
|
+
defaultOpen?: boolean | undefined;
|
|
134
|
+
} & (OPTION extends {
|
|
135
|
+
label: string;
|
|
136
|
+
} ? Record<string, unknown> : {
|
|
137
|
+
getOptionLabel?: AutocompletePropGetOptionLabel<OPTION> | undefined;
|
|
138
|
+
}) & (OPTION extends {
|
|
139
|
+
id: string | number;
|
|
140
|
+
} ? Record<string, unknown> : {
|
|
141
|
+
getOptionKey?: AutocompletePropGetOptionKey<OPTION> | undefined;
|
|
142
|
+
}) & (OPTION extends {
|
|
143
|
+
disabled: boolean | undefined;
|
|
144
|
+
} ? Record<string, unknown> : {
|
|
145
|
+
getOptionDisabled?: AutocompletePropGetOptionDisabled<OPTION> | undefined;
|
|
146
|
+
}) & {
|
|
147
|
+
getOptionLabel: AutocompletePropGetOptionLabel<AutocompleteDefaultOption> | AutocompletePropGetOptionLabel<OPTION>;
|
|
148
|
+
getOptionKey: AutocompletePropGetOptionKey<AutocompleteDefaultOption> | AutocompletePropGetOptionKey<OPTION>;
|
|
149
|
+
getOptionDisabled: AutocompletePropGetOptionDisabled<AutocompleteDefaultOption> | AutocompletePropGetOptionDisabled<OPTION>;
|
|
150
|
+
});
|
|
151
|
+
export declare const isMultipleParams: <OPTION>(params: AutocompleteProps<OPTION, boolean>) => params is AutocompleteProps<OPTION, true>;
|
|
152
|
+
export declare const isNotMultipleParams: <OPTION>(params: AutocompleteProps<OPTION, boolean>) => params is AutocompleteProps<OPTION, false>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { __assign } from "tslib";
|
|
2
|
+
export var defaultGetOptionKey = function (option) { var _a; return (_a = option.id) !== null && _a !== void 0 ? _a : option; };
|
|
3
|
+
export var defaultGetOptionLabel = function (option) { var _a; return (_a = option.label) !== null && _a !== void 0 ? _a : option; };
|
|
4
|
+
export var defaultGetOptionDisabled = function (option) { var _a; return (_a = option.disabled) !== null && _a !== void 0 ? _a : false; };
|
|
5
|
+
export function withDefaultGetters(props) {
|
|
6
|
+
return __assign(__assign({}, props), { getOptionLabel: props.getOptionLabel || defaultGetOptionLabel, getOptionKey: props.getOptionKey || defaultGetOptionKey, getOptionDisabled: props.getOptionDisabled || defaultGetOptionDisabled });
|
|
7
|
+
}
|
|
8
|
+
export var isMultipleParams = function (params) { return !!params.multiple; };
|
|
9
|
+
export var isNotMultipleParams = function (params) { return !params.multiple; };
|