@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
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import './Autocomplete.css';
|
|
2
2
|
import type { AutocompleteComponent } from './types';
|
|
3
3
|
export declare const cnAutocomplete: import("@bem-react/classname").ClassNameFormatter;
|
|
4
|
+
/**
|
|
5
|
+
* @deprecated Компонент устарел. Для замены используйте компонент AutocompleteNext
|
|
6
|
+
*/
|
|
4
7
|
export declare const Autocomplete: AutocompleteComponent;
|
|
@@ -4,6 +4,7 @@ exports.Autocomplete = exports.cnAutocomplete = void 0;
|
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
5
|
require("./Autocomplete.css");
|
|
6
6
|
var react_1 = tslib_1.__importStar(require("react"));
|
|
7
|
+
var logger_1 = require("@ozen-ui/logger");
|
|
7
8
|
var useControlled_1 = require("../../hooks/useControlled");
|
|
8
9
|
var useMultiRef_1 = require("../../hooks/useMultiRef");
|
|
9
10
|
var useMutableRef_1 = require("../../hooks/useMutableRef");
|
|
@@ -22,6 +23,9 @@ function AutocompleteRender(inProps, ref) {
|
|
|
22
23
|
name: 'Autocomplete',
|
|
23
24
|
});
|
|
24
25
|
var _a = (0, helper_1.withDefaultGetters)(props), _b = _a.disabled, disabled = _b === void 0 ? constants_1.AUTOCOMPLETE_DEFAULT_DISABLED : _b, _c = _a.required, required = _c === void 0 ? constants_1.AUTOCOMPLETE_DEFAULT_REQUIRED : _c, _d = _a.autoFocus, autoFocus = _d === void 0 ? constants_1.AUTOCOMPLETE_DEFAULT_AUTOFOCUS : _d, _e = _a.fullWidth, fullWidth = _e === void 0 ? constants_1.AUTOCOMPLETE_DEFAULT_FULLWIDTH : _e, _f = _a.size, size = _f === void 0 ? constants_1.AUTOCOMPLETE_DEFAULT_SIZE : _f, _g = _a.allowCustomValue, allowCustomValue = _g === void 0 ? constants_1.AUTOCOMPLETE_DEFAULT_ALLOW_CUSTOM_VALUE : _g, _h = _a.disableShowChevron, disableShowChevron = _h === void 0 ? constants_1.AUTOCOMPLETE_DEFAULT_DISABLE_SHOW_CHEVRON : _h, _j = _a.disableClearButton, disableClearButton = _j === void 0 ? constants_1.AUTOCOMPLETE_DEFAULT_DISABLE_CLEAR_BUTTON : _j, _k = _a.disableShowEmptyOptionsList, disableShowEmptyOptionsList = _k === void 0 ? constants_1.AUTOCOMPLETE_DEFAULT_DISABLE_SHOW_EMPTY_OPTIONS_LIST : _k, _l = _a.disableCloseOnSelect, disableCloseOnSelect = _l === void 0 ? constants_1.AUTOCOMPLETE_DEFAULT_DISABLE_CLOSE_ON_SELECT : _l, _m = _a.renderInput, renderInput = _m === void 0 ? function (props) { return react_1.default.createElement(Input_1.Input, tslib_1.__assign({}, props, { ref: ref })); } : _m, searchFunctionProp = _a.searchFunction, renderOptionProp = _a.renderOption, inputValueProp = _a.inputValue, className = _a.className, valueProp = _a.value, options = _a.options, defaultValue = _a.defaultValue, error = _a.error, onChange = _a.onChange, onInputChange = _a.onInputChange, label = _a.label, placeholder = _a.placeholder, renderLeft = _a.renderLeft, renderRight = _a.renderRight, hint = _a.hint, getOptionKey = _a.getOptionKey, getOptionLabel = _a.getOptionLabel, getOptionDisabled = _a.getOptionDisabled, dataListProps = _a.dataListProps, onCloseProp = _a.onClose, onOpenProp = _a.onOpen, openProp = _a.open, defaultOpen = _a.defaultOpen, loading = _a.loading, inputProps = _a.inputProps, bodyProps = _a.bodyProps, onKeyDown = _a.onKeyDown, noOptionsText = _a.noOptionsText, clearText = _a.clearText, openText = _a.openText, loadingText = _a.loadingText, closeText = _a.closeText, other = tslib_1.__rest(_a, ["disabled", "required", "autoFocus", "fullWidth", "size", "allowCustomValue", "disableShowChevron", "disableClearButton", "disableShowEmptyOptionsList", "disableCloseOnSelect", "renderInput", "searchFunction", "renderOption", "inputValue", "className", "value", "options", "defaultValue", "error", "onChange", "onInputChange", "label", "placeholder", "renderLeft", "renderRight", "hint", "getOptionKey", "getOptionLabel", "getOptionDisabled", "dataListProps", "onClose", "onOpen", "open", "defaultOpen", "loading", "inputProps", "bodyProps", "onKeyDown", "noOptionsText", "clearText", "openText", "loadingText", "closeText"]);
|
|
26
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
27
|
+
(0, logger_1.deprecate)('Компонент «Autocomplete» устарел. Для замены используйте компонент «AutocompleteNext».');
|
|
28
|
+
}
|
|
25
29
|
var anchorRef = (0, react_1.useRef)(null);
|
|
26
30
|
var lastInputValue = (0, react_1.useRef)('');
|
|
27
31
|
var inputBodyRef = (0, useMultiRef_1.useMultiRef)([anchorRef, bodyProps === null || bodyProps === void 0 ? void 0 : bodyProps.ref]);
|
|
@@ -193,4 +197,7 @@ function AutocompleteRender(inProps, ref) {
|
|
|
193
197
|
!disableShowEmptyOptionsList && (react_1.default.createElement(components_1.AutocompleteNoOptions, { showNoOptions: showNoOptions, noOptionsText: noOptionsText })),
|
|
194
198
|
react_1.default.createElement(components_1.AutocompleteLoading, { showLoading: showLoading, loadingText: loadingText, size: size }))));
|
|
195
199
|
}
|
|
200
|
+
/**
|
|
201
|
+
* @deprecated Компонент устарел. Для замены используйте компонент AutocompleteNext
|
|
202
|
+
*/
|
|
196
203
|
exports.Autocomplete = (0, react_1.forwardRef)(AutocompleteRender);
|
|
@@ -46,11 +46,7 @@ export declare function withDefaultGetters<OPTION>(props: AutocompleteProps<OPTI
|
|
|
46
46
|
hint?: string | null | undefined;
|
|
47
47
|
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;
|
|
48
48
|
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;
|
|
49
|
-
inputProps?:
|
|
50
|
-
ref?: ((instance: HTMLInputElement | null) => void) | import("react").RefObject<HTMLInputElement> | null | undefined;
|
|
51
|
-
} & {
|
|
52
|
-
'data-testid'?: string | undefined;
|
|
53
|
-
}) | undefined;
|
|
49
|
+
inputProps?: import("../FieldInput").FieldInputProps | undefined;
|
|
54
50
|
bodyProps?: (Omit<import("react").DetailedHTMLProps<import("react").LabelHTMLAttributes<HTMLLabelElement>, HTMLLabelElement>, "ref"> & {
|
|
55
51
|
ref?: ((instance: HTMLLabelElement | null) => void) | import("react").RefObject<HTMLLabelElement> | null | undefined;
|
|
56
52
|
}) | undefined;
|
|
@@ -117,11 +113,7 @@ export declare function withDefaultGetters<OPTION>(props: AutocompleteProps<OPTI
|
|
|
117
113
|
hint?: string | null | undefined;
|
|
118
114
|
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;
|
|
119
115
|
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;
|
|
120
|
-
inputProps?:
|
|
121
|
-
ref?: ((instance: HTMLInputElement | null) => void) | import("react").RefObject<HTMLInputElement> | null | undefined;
|
|
122
|
-
} & {
|
|
123
|
-
'data-testid'?: string | undefined;
|
|
124
|
-
}) | undefined;
|
|
116
|
+
inputProps?: import("../FieldInput").FieldInputProps | undefined;
|
|
125
117
|
bodyProps?: (Omit<import("react").DetailedHTMLProps<import("react").LabelHTMLAttributes<HTMLLabelElement>, HTMLLabelElement>, "ref"> & {
|
|
126
118
|
ref?: ((instance: HTMLLabelElement | null) => void) | import("react").RefObject<HTMLLabelElement> | null | undefined;
|
|
127
119
|
}) | undefined;
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
.AutocompleteNext {
|
|
2
|
+
--autocomplete-gutter-x: 0 var(--textfield-gutter-x);
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
.AutocompleteNext_hasChevron.AutocompleteNext_size_2xs {
|
|
6
|
+
--autocomplete-gutter-x: 0 var(--control-padding-2xs) 0
|
|
7
|
+
var(--control-padding-xs);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.AutocompleteNext_hasChevron.AutocompleteNext_size_xs {
|
|
11
|
+
--autocomplete-gutter-x: 0 var(--control-padding-2xs) 0
|
|
12
|
+
var(--control-padding-xs);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.AutocompleteNext_hasChevron.AutocompleteNext_size_s {
|
|
16
|
+
--autocomplete-gutter-x: 0 var(--control-padding-2xs) 0
|
|
17
|
+
var(--control-padding-s);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.AutocompleteNext_hasChevron.AutocompleteNext_size_m {
|
|
21
|
+
--autocomplete-gutter-x: 0 var(--control-padding-2xs) 0
|
|
22
|
+
var(--control-padding-m);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.AutocompleteNext_hasChevron.AutocompleteNext_size_l {
|
|
26
|
+
--autocomplete-gutter-x: 0 var(--control-padding-2xs) 0
|
|
27
|
+
var(--control-padding-l);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.AutocompleteNext-RenderRight {
|
|
31
|
+
display: flex;
|
|
32
|
+
gap: var(--spacing-2xs);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.AutocompleteNext-ClearButton {
|
|
36
|
+
visibility: hidden;
|
|
37
|
+
transition: visibility var(--transition-default);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.AutocompleteNext-ClearButton_visibility {
|
|
41
|
+
visibility: visible;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.AutocompleteNext .Input-Body {
|
|
45
|
+
padding: var(--autocomplete-gutter-x);
|
|
46
|
+
align-items: flex-start;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.AutocompleteNext .FieldIcon {
|
|
50
|
+
block-size: var(--textfield-input-height);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.AutocompleteNext-Option {
|
|
54
|
+
cursor: pointer;
|
|
55
|
+
transition: background-color var(--transition-default);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.AutocompleteNext-Option:hover {
|
|
59
|
+
background-color: var(--color-background-main-hover);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.AutocompleteNext-Option:active {
|
|
63
|
+
background-color: var(--color-background-main-pressed);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.AutocompleteNext-Option_focused {
|
|
67
|
+
box-shadow: inset var(--shadow-outline-focused);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.AutocompleteNext-Option_disabled,
|
|
71
|
+
.AutocompleteNext-Option_disabled:hover,
|
|
72
|
+
.AutocompleteNext-Option_disabled:active {
|
|
73
|
+
cursor: not-allowed;
|
|
74
|
+
background-color: unset;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.AutocompleteNext-Option_disabled .ListItemText-TextPrimary,
|
|
78
|
+
.AutocompleteNext-Option_disabled .ListItemText-TextSecondary,
|
|
79
|
+
.AutocompleteNext-Option_disabled:hover .ListItemText-TextPrimary,
|
|
80
|
+
.AutocompleteNext-Option_disabled:hover .ListItemText-TextSecondary,
|
|
81
|
+
.AutocompleteNext-Option_disabled:active .ListItemText-TextPrimary,
|
|
82
|
+
.AutocompleteNext-Option_disabled:active .ListItemText-TextSecondary {
|
|
83
|
+
color: var(--color-content-tertiary);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.AutocompleteNext-Input_multiple {
|
|
87
|
+
display: flex;
|
|
88
|
+
flex-wrap: wrap;
|
|
89
|
+
overflow: hidden;
|
|
90
|
+
inline-size: 100%;
|
|
91
|
+
align-items: center;
|
|
92
|
+
box-sizing: border-box;
|
|
93
|
+
padding: var(--textfield-input-padding);
|
|
94
|
+
min-block-size: var(--textfield-input-height);
|
|
95
|
+
gap: var(--spacing-3xs);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.AutocompleteNext-Input_multiple input {
|
|
99
|
+
padding: 0;
|
|
100
|
+
border: none;
|
|
101
|
+
outline: none;
|
|
102
|
+
font: inherit;
|
|
103
|
+
background: none;
|
|
104
|
+
box-sizing: border-box;
|
|
105
|
+
color: var(--textfield-color);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
.AutocompleteNext-Input_multiple input::placeholder {
|
|
109
|
+
opacity: 0;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
.AutocompleteNext-Input_multiple * + input::placeholder, .AutocompleteNext-Input_multiple input:focus::placeholder {
|
|
113
|
+
opacity: 1;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
.AutocompleteNext-Input_responsive {
|
|
117
|
+
flex-wrap: nowrap;
|
|
118
|
+
gap: unset;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
.AutocompleteNext-Input_responsive .AutocompleteNext-Tag {
|
|
122
|
+
margin-inline-end: var(--spacing-3xs);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.AutocompleteNext-HelperInput {
|
|
126
|
+
inset-block-start: 0;
|
|
127
|
+
block-size: 0;
|
|
128
|
+
overflow: hidden;
|
|
129
|
+
position: absolute;
|
|
130
|
+
visibility: hidden;
|
|
131
|
+
white-space: nowrap;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
.AutocompleteNext-Tag_hidden {
|
|
135
|
+
inset-block-start: 0;
|
|
136
|
+
block-size: 0;
|
|
137
|
+
visibility: hidden;
|
|
138
|
+
position: absolute;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
.AutocompleteNext-Tag_disabled {
|
|
142
|
+
pointer-events: none;
|
|
143
|
+
opacity: 0.6;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
.AutocompleteNext-ClearTag {
|
|
147
|
+
cursor: pointer;
|
|
148
|
+
display: inline-flex;
|
|
149
|
+
align-items: center;
|
|
150
|
+
block-size: inherit;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
.AutocompleteNext-Dropdown {
|
|
154
|
+
--scroll-bar-size: 12px;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
.AutocompleteNext-Dropdown::-webkit-scrollbar {
|
|
158
|
+
inline-size: var(--scroll-bar-size);
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
.AutocompleteNext-Dropdown::-webkit-scrollbar-thumb {
|
|
162
|
+
background-color: var(--color-background-secondary);
|
|
163
|
+
border-radius: calc(var(--scroll-bar-size) / 2);
|
|
164
|
+
border: calc(var(--scroll-bar-size) / 4) solid transparent;
|
|
165
|
+
background-clip: padding-box;
|
|
166
|
+
border-image: initial;
|
|
167
|
+
min-block-size: 24px;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
.AutocompleteNext-Dropdown::-webkit-scrollbar-thumb:hover,
|
|
171
|
+
.AutocompleteNext-Dropdown::-webkit-scrollbar-thumb:active {
|
|
172
|
+
border: calc(var(--scroll-bar-size) / 4) solid transparent;
|
|
173
|
+
background-clip: padding-box;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
.AutocompleteNext-Dropdown::-webkit-scrollbar-thumb:hover {
|
|
177
|
+
background-color: var(--color-background-secondary-hover);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
.AutocompleteNext-Dropdown::-webkit-scrollbar-thumb:active {
|
|
181
|
+
background-color: var(--color-background-secondary-pressed);
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
.AutocompleteNext-Dropdown::-webkit-scrollbar-corner {
|
|
185
|
+
background: transparent;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
.AutocompleteNext-Dropdown {
|
|
189
|
+
overflow: hidden auto;
|
|
190
|
+
max-block-size: 40vb;
|
|
191
|
+
}
|
|
192
|
+
.AutocompleteNext-Dropdown-animation-enter {
|
|
193
|
+
opacity: 0;
|
|
194
|
+
transform: translate(0, calc(var(--spacing-2xs) * -1));
|
|
195
|
+
pointer-events: none;
|
|
196
|
+
}
|
|
197
|
+
.AutocompleteNext-Dropdown-animation-enter-active {
|
|
198
|
+
opacity: 1;
|
|
199
|
+
transition:
|
|
200
|
+
opacity var(--transition-default),
|
|
201
|
+
transform var(--transition-default);
|
|
202
|
+
transform: translate(0);
|
|
203
|
+
pointer-events: none;
|
|
204
|
+
}
|
|
205
|
+
.AutocompleteNext-Dropdown-animation-enter-done {
|
|
206
|
+
opacity: 1;
|
|
207
|
+
transform: translate(0);
|
|
208
|
+
}
|
|
209
|
+
.AutocompleteNext-Dropdown-animation-exit {
|
|
210
|
+
opacity: 1;
|
|
211
|
+
transform: translate(0);
|
|
212
|
+
pointer-events: none;
|
|
213
|
+
}
|
|
214
|
+
.AutocompleteNext-Dropdown-animation-exit-active {
|
|
215
|
+
opacity: 0;
|
|
216
|
+
transition:
|
|
217
|
+
opacity var(--transition-default),
|
|
218
|
+
transform var(--transition-default);
|
|
219
|
+
transform: translate(0, calc(var(--spacing-2xs) * -1));
|
|
220
|
+
pointer-events: none;
|
|
221
|
+
}
|
|
222
|
+
.AutocompleteNext-Dropdown-animation-exit-done {
|
|
223
|
+
opacity: 0;
|
|
224
|
+
transform: translate(0, calc(var(--spacing-2xs) * -1));
|
|
225
|
+
pointer-events: none;
|
|
226
|
+
}
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Autocomplete = exports.cnAutocomplete = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
require("./Autocomplete.css");
|
|
6
|
+
var react_1 = tslib_1.__importStar(require("react"));
|
|
7
|
+
var useControlled_1 = require("../../hooks/useControlled");
|
|
8
|
+
var useElementSize_1 = require("../../hooks/useElementSize");
|
|
9
|
+
var useMultiRef_1 = require("../../hooks/useMultiRef");
|
|
10
|
+
var useMutableRef_1 = require("../../hooks/useMutableRef");
|
|
11
|
+
var useThemeProps_1 = require("../../hooks/useThemeProps");
|
|
12
|
+
var classname_1 = require("../../utils/classname");
|
|
13
|
+
var isKeys_1 = require("../../utils/isKeys");
|
|
14
|
+
var components_1 = require("./components");
|
|
15
|
+
var constants_1 = require("./constants");
|
|
16
|
+
var helpers_1 = require("./helpers");
|
|
17
|
+
exports.cnAutocomplete = (0, classname_1.cn)('AutocompleteNext');
|
|
18
|
+
function AutocompleteRender(inProps, ref) {
|
|
19
|
+
var props = (0, useThemeProps_1.useThemeProps)({
|
|
20
|
+
props: inProps,
|
|
21
|
+
name: 'AutocompleteNext',
|
|
22
|
+
});
|
|
23
|
+
var _a = (0, helpers_1.withDefaultGetters)(props), _b = _a.disabled, disabled = _b === void 0 ? constants_1.AUTOCOMPLETE_DEFAULT_DISABLED : _b, _c = _a.required, required = _c === void 0 ? constants_1.AUTOCOMPLETE_DEFAULT_REQUIRED : _c, _d = _a.autoFocus, autoFocus = _d === void 0 ? constants_1.AUTOCOMPLETE_DEFAULT_AUTOFOCUS : _d, _e = _a.fullWidth, fullWidth = _e === void 0 ? constants_1.AUTOCOMPLETE_DEFAULT_FULLWIDTH : _e, _f = _a.size, size = _f === void 0 ? constants_1.AUTOCOMPLETE_DEFAULT_SIZE : _f, _g = _a.allowCustomValue, allowCustomValue = _g === void 0 ? constants_1.AUTOCOMPLETE_DEFAULT_ALLOW_CUSTOM_VALUE : _g, _h = _a.disableShowChevron, disableShowChevron = _h === void 0 ? constants_1.AUTOCOMPLETE_DEFAULT_DISABLE_SHOW_CHEVRON : _h, _j = _a.disableClearButton, disableClearButton = _j === void 0 ? constants_1.AUTOCOMPLETE_DEFAULT_DISABLE_CLEAR_BUTTON : _j, _k = _a.disableCloseOnSelect, disableCloseOnSelect = _k === void 0 ? constants_1.AUTOCOMPLETE_DEFAULT_DISABLE_CLOSE_ON_SELECT : _k, _l = _a.disableShowEmptyOptionsList, disableShowEmptyOptionsList = _l === void 0 ? constants_1.AUTOCOMPLETE_DEFAULT_DISABLE_SHOW_EMPTY_OPTIONS_LIST : _l, limitTags = _a.limitTags, renderInput = _a.renderInput, multiple = _a.multiple, searchFunctionProp = _a.searchFunction, inputValueProp = _a.inputValue, valueProp = _a.value, options = _a.options, defaultValue = _a.defaultValue, onInputChange = _a.onInputChange, getOptionKey = _a.getOptionKey, getOptionLabel = _a.getOptionLabel, getOptionDisabled = _a.getOptionDisabled, onCloseProp = _a.onClose, onOpenProp = _a.onOpen, openProp = _a.open, defaultOpen = _a.defaultOpen, loading = _a.loading, inputProps = _a.inputProps, bodyProps = _a.bodyProps, onKeyDown = _a.onKeyDown, noOptionsText = _a.noOptionsText, clearText = _a.clearText, openText = _a.openText, renderOption = _a.renderOption, loadingText = _a.loadingText, closeText = _a.closeText, listProps = _a.listProps, popoverProps = _a.popoverProps, onChangeProp = _a.onChange, other = tslib_1.__rest(_a, ["disabled", "required", "autoFocus", "fullWidth", "size", "allowCustomValue", "disableShowChevron", "disableClearButton", "disableCloseOnSelect", "disableShowEmptyOptionsList", "limitTags", "renderInput", "multiple", "searchFunction", "inputValue", "value", "options", "defaultValue", "onInputChange", "getOptionKey", "getOptionLabel", "getOptionDisabled", "onClose", "onOpen", "open", "defaultOpen", "loading", "inputProps", "bodyProps", "onKeyDown", "noOptionsText", "clearText", "openText", "renderOption", "loadingText", "closeText", "listProps", "popoverProps", "onChange"]);
|
|
24
|
+
var _m = (0, useElementSize_1.useElementSize)(), inputRef = _m.ref, height = _m.height;
|
|
25
|
+
var lastInputValue = (0, react_1.useRef)('');
|
|
26
|
+
var anchorRef = (0, react_1.useRef)(null);
|
|
27
|
+
var inputBodyRef = (0, useMultiRef_1.useMultiRef)([anchorRef, bodyProps === null || bodyProps === void 0 ? void 0 : bodyProps.ref]);
|
|
28
|
+
var rootRef = (0, useMultiRef_1.useMultiRef)([ref, inputRef]);
|
|
29
|
+
var _o = tslib_1.__read((0, useControlled_1.useControlled)({
|
|
30
|
+
value: inputValueProp,
|
|
31
|
+
defaultValue: '',
|
|
32
|
+
name: 'AutocompleteNext',
|
|
33
|
+
state: 'inputValue',
|
|
34
|
+
}), 2), inputValue = _o[0], setInputValue = _o[1];
|
|
35
|
+
var _p = tslib_1.__read((0, useControlled_1.useControlled)({
|
|
36
|
+
value: valueProp,
|
|
37
|
+
defaultValue: defaultValue,
|
|
38
|
+
name: 'AutocompleteNext',
|
|
39
|
+
state: 'value',
|
|
40
|
+
}), 2), valueState = _p[0], setValueState = _p[1];
|
|
41
|
+
var _q = tslib_1.__read((0, useControlled_1.useControlled)({
|
|
42
|
+
value: openProp,
|
|
43
|
+
defaultValue: defaultOpen,
|
|
44
|
+
name: 'AutocompleteNext',
|
|
45
|
+
state: 'open',
|
|
46
|
+
}), 2), open = _q[0], setOpen = _q[1];
|
|
47
|
+
var searchFunctionDefault = function (options, searchValue) {
|
|
48
|
+
return options === null || options === void 0 ? void 0 : options.filter(function (option) {
|
|
49
|
+
return getOptionLabel(option).toLowerCase().includes(searchValue.toLowerCase());
|
|
50
|
+
});
|
|
51
|
+
};
|
|
52
|
+
var savedOnInputChange = (0, useMutableRef_1.useMutableRef)(onInputChange);
|
|
53
|
+
var savedGetOptionLabel = (0, useMutableRef_1.useMutableRef)(getOptionLabel);
|
|
54
|
+
var _r = tslib_1.__read((0, react_1.useState)(tslib_1.__spreadArray([], tslib_1.__read(options), false)), 2), filteredOptions = _r[0], setFilteredOptions = _r[1];
|
|
55
|
+
var searchFunction = searchFunctionProp || searchFunctionDefault;
|
|
56
|
+
var hasOptions = !!(filteredOptions === null || filteredOptions === void 0 ? void 0 : filteredOptions.length);
|
|
57
|
+
var _s = tslib_1.__read((0, react_1.useState)(undefined), 2), search = _s[0], setSearch = _s[1];
|
|
58
|
+
var changeInputValue = function (e, value) {
|
|
59
|
+
var _a;
|
|
60
|
+
setInputValue(value);
|
|
61
|
+
(_a = savedOnInputChange.current) === null || _a === void 0 ? void 0 : _a.call(savedOnInputChange, e, value);
|
|
62
|
+
};
|
|
63
|
+
var callOnChange = function (e, option) {
|
|
64
|
+
var _a, _b, _c;
|
|
65
|
+
var inputValue = '';
|
|
66
|
+
var onChange = function (e, option) {
|
|
67
|
+
setValueState(option);
|
|
68
|
+
onChangeProp === null || onChangeProp === void 0 ? void 0 : onChangeProp(e, option);
|
|
69
|
+
};
|
|
70
|
+
var params = tslib_1.__assign(tslib_1.__assign({}, inProps), { onChange: onChange, value: valueState });
|
|
71
|
+
if ((0, helpers_1.isNotMultipleParams)(params)) {
|
|
72
|
+
inputValue = option ? getOptionLabel(option) : '';
|
|
73
|
+
(_a = params.onChange) === null || _a === void 0 ? void 0 : _a.call(params, e, option);
|
|
74
|
+
}
|
|
75
|
+
if ((0, helpers_1.isMultipleParams)(params)) {
|
|
76
|
+
if (option === null) {
|
|
77
|
+
(_b = params.onChange) === null || _b === void 0 ? void 0 : _b.call(params, e, null);
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
var value = params.value || [];
|
|
81
|
+
var optionKey_1 = option && getOptionKey(option);
|
|
82
|
+
var optionIsSelected = value.find(function (item) { return getOptionKey(item) === optionKey_1; });
|
|
83
|
+
// eslint-disable-next-line no-nested-ternary
|
|
84
|
+
var res = optionIsSelected
|
|
85
|
+
? value.filter(function (option) { return getOptionKey(option) !== optionKey_1; })
|
|
86
|
+
: option
|
|
87
|
+
? tslib_1.__spreadArray(tslib_1.__spreadArray([], tslib_1.__read(value), false), [option], false) : value;
|
|
88
|
+
(_c = params.onChange) === null || _c === void 0 ? void 0 : _c.call(params, e, res);
|
|
89
|
+
}
|
|
90
|
+
setSearch(undefined);
|
|
91
|
+
}
|
|
92
|
+
changeInputValue(null, inputValue);
|
|
93
|
+
};
|
|
94
|
+
/** Эффект — фильтрация списка при изменении опций */
|
|
95
|
+
(0, react_1.useEffect)(function () {
|
|
96
|
+
if (!open)
|
|
97
|
+
return;
|
|
98
|
+
setFilteredOptions(search ? search(options) : tslib_1.__spreadArray([], tslib_1.__read(options), false));
|
|
99
|
+
}, [search, options, open, searchFunctionProp]);
|
|
100
|
+
/** Эффект — синхронизируем значение текстового поля со значением в списке */
|
|
101
|
+
(0, react_1.useEffect)(function () {
|
|
102
|
+
var _a;
|
|
103
|
+
if (allowCustomValue || multiple)
|
|
104
|
+
return;
|
|
105
|
+
var value = valueState || '';
|
|
106
|
+
var params = tslib_1.__assign(tslib_1.__assign({}, inProps), { value: value });
|
|
107
|
+
if ((0, helpers_1.isNotMultipleParams)(params)) {
|
|
108
|
+
lastInputValue.current = (_a = savedGetOptionLabel.current) === null || _a === void 0 ? void 0 : _a.call(savedGetOptionLabel, params.value);
|
|
109
|
+
if (lastInputValue.current !== inputValue)
|
|
110
|
+
changeInputValue(null, lastInputValue.current);
|
|
111
|
+
}
|
|
112
|
+
}, [valueState, allowCustomValue]);
|
|
113
|
+
/** Эффект — автофокусировка в текстовом поле */
|
|
114
|
+
(0, react_1.useEffect)(function () {
|
|
115
|
+
var _a;
|
|
116
|
+
if (autoFocus)
|
|
117
|
+
(_a = anchorRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
118
|
+
}, [autoFocus]);
|
|
119
|
+
/** Ждём выполнения анимации на закрытие и делаем сброс функции фильтрации */
|
|
120
|
+
var handleExited = function () {
|
|
121
|
+
var _a;
|
|
122
|
+
setSearch(undefined);
|
|
123
|
+
(_a = popoverProps === null || popoverProps === void 0 ? void 0 : popoverProps.onExited) === null || _a === void 0 ? void 0 : _a.call(popoverProps);
|
|
124
|
+
};
|
|
125
|
+
/** Закрытие */
|
|
126
|
+
var handleClose = function () {
|
|
127
|
+
setOpen(false);
|
|
128
|
+
onCloseProp === null || onCloseProp === void 0 ? void 0 : onCloseProp();
|
|
129
|
+
};
|
|
130
|
+
/** Открытие */
|
|
131
|
+
var handleOpen = function () {
|
|
132
|
+
setOpen(true);
|
|
133
|
+
onOpenProp === null || onOpenProp === void 0 ? void 0 : onOpenProp();
|
|
134
|
+
};
|
|
135
|
+
/** Переключатель открытия и закрытия */
|
|
136
|
+
var handleToggle = function () {
|
|
137
|
+
if (disabled)
|
|
138
|
+
return;
|
|
139
|
+
if (open)
|
|
140
|
+
handleClose();
|
|
141
|
+
else
|
|
142
|
+
handleOpen();
|
|
143
|
+
};
|
|
144
|
+
/** Очистка поля */
|
|
145
|
+
var handleClear = function (e) {
|
|
146
|
+
callOnChange(e, null);
|
|
147
|
+
setSearch(undefined);
|
|
148
|
+
};
|
|
149
|
+
/** Актуализация значения текстового поля после его покидания */
|
|
150
|
+
var handleBlur = function (e) {
|
|
151
|
+
var _a;
|
|
152
|
+
(_a = inputProps === null || inputProps === void 0 ? void 0 : inputProps.onBlur) === null || _a === void 0 ? void 0 : _a.call(inputProps, e);
|
|
153
|
+
if (allowCustomValue)
|
|
154
|
+
return;
|
|
155
|
+
if (inputValue !== lastInputValue.current) {
|
|
156
|
+
changeInputValue(null, lastInputValue.current);
|
|
157
|
+
}
|
|
158
|
+
};
|
|
159
|
+
/** Открытие списка по клику на текстовом поле */
|
|
160
|
+
var handleClickOnInput = function (e) {
|
|
161
|
+
var _a;
|
|
162
|
+
handleToggle();
|
|
163
|
+
(_a = inputProps === null || inputProps === void 0 ? void 0 : inputProps.onClick) === null || _a === void 0 ? void 0 : _a.call(inputProps, e);
|
|
164
|
+
};
|
|
165
|
+
/** Управление элементом контроля через клавиатуру */
|
|
166
|
+
var handleKeyDown = function (e) {
|
|
167
|
+
if ((0, isKeys_1.isKeys)(e, ['ArrowDown', 'ArrowUp']) && !open) {
|
|
168
|
+
e.preventDefault();
|
|
169
|
+
handleToggle();
|
|
170
|
+
}
|
|
171
|
+
var params = tslib_1.__assign(tslib_1.__assign({}, inProps), { value: valueState });
|
|
172
|
+
if ((0, helpers_1.isMultipleParams)(params) && (0, isKeys_1.isKeys)(e, ['Backspace']) && !inputValue) {
|
|
173
|
+
var value = params.value;
|
|
174
|
+
if (value)
|
|
175
|
+
callOnChange(e, value[value.length - 1] || null);
|
|
176
|
+
}
|
|
177
|
+
onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(e);
|
|
178
|
+
};
|
|
179
|
+
/** Событие ввода значения в текстовом поле */
|
|
180
|
+
var handleChangeInput = function (e) {
|
|
181
|
+
var value = e.target.value;
|
|
182
|
+
// Открываем список при вводе первого символа (при условии, что список еще не открыт)
|
|
183
|
+
if (value.length && !open)
|
|
184
|
+
handleOpen();
|
|
185
|
+
if (multiple)
|
|
186
|
+
changeInputValue(e, value);
|
|
187
|
+
if (value && !multiple)
|
|
188
|
+
changeInputValue(e, value);
|
|
189
|
+
if (!value && !multiple)
|
|
190
|
+
callOnChange(e, null);
|
|
191
|
+
// Задаем функцию фильтрации
|
|
192
|
+
setSearch(function () { return function (options) { return searchFunction(tslib_1.__spreadArray([], tslib_1.__read(options), false), value); }; });
|
|
193
|
+
};
|
|
194
|
+
/** Событие выбора значения из раскрывающегося списка */
|
|
195
|
+
var handleChangeDropdown = function (e, option) {
|
|
196
|
+
callOnChange(e, option);
|
|
197
|
+
// Закрываем список после выбора
|
|
198
|
+
if (!disableCloseOnSelect)
|
|
199
|
+
handleClose();
|
|
200
|
+
};
|
|
201
|
+
var autocompleteInputProps = tslib_1.__assign({ open: open, size: size, limitTags: limitTags, disabled: disabled, multiple: multiple, required: required, fullWidth: fullWidth, clearText: clearText, closeText: closeText, openText: openText, inputProps: tslib_1.__assign(tslib_1.__assign({}, inputProps), { onBlur: handleBlur, onClick: handleClickOnInput }), bodyProps: tslib_1.__assign(tslib_1.__assign({}, bodyProps), { ref: inputBodyRef }), renderInput: renderInput, getOptionKey: getOptionKey, getOptionLabel: getOptionLabel, getOptionDisabled: getOptionDisabled, value: inputValue, disableShowChevron: disableShowChevron, disableClearButton: disableClearButton, onClear: handleClear, onOpen: handleToggle, onRemoveTag: callOnChange, onKeyDown: handleKeyDown, onChange: handleChangeInput, selectedOptions: valueState }, other);
|
|
202
|
+
var update = (0, react_1.useRef)();
|
|
203
|
+
var setUpdate = function (func) {
|
|
204
|
+
if (func) {
|
|
205
|
+
update.current = func;
|
|
206
|
+
}
|
|
207
|
+
};
|
|
208
|
+
(0, react_1.useEffect)(function () {
|
|
209
|
+
var _a;
|
|
210
|
+
(_a = update.current) === null || _a === void 0 ? void 0 : _a.call(update);
|
|
211
|
+
}, [height]);
|
|
212
|
+
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
213
|
+
react_1.default.createElement(components_1.AutocompleteInput, tslib_1.__assign({}, autocompleteInputProps, { ref: rootRef })),
|
|
214
|
+
react_1.default.createElement(components_1.AutocompleteDropdown, { open: open, size: size, loading: loading, setUpdate: setUpdate, value: valueState, multiple: multiple, onClose: handleClose, listProps: listProps, anchorRef: anchorRef, hasOptions: hasOptions, options: filteredOptions, loadingText: loadingText, renderOption: renderOption, getOptionKey: getOptionKey, noOptionsText: noOptionsText, onChange: handleChangeDropdown, getOptionLabel: getOptionLabel, getOptionDisabled: getOptionDisabled, disableShowEmptyOptionsList: disableShowEmptyOptionsList, popoverProps: tslib_1.__assign(tslib_1.__assign({}, popoverProps), { onExited: handleExited }) })));
|
|
215
|
+
}
|
|
216
|
+
exports.Autocomplete = (0, react_1.forwardRef)(AutocompleteRender);
|