@ozen-ui/kit 0.57.0 → 0.58.1
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 +2 -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 +2 -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,156 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AutocompleteDropdown = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var react_1 = tslib_1.__importStar(require("react"));
|
|
6
|
+
var useEventListener_1 = require("../../../../hooks/useEventListener");
|
|
7
|
+
var useMultiRef_1 = require("../../../../hooks/useMultiRef");
|
|
8
|
+
var usePrevious_1 = require("../../../../hooks/usePrevious");
|
|
9
|
+
var getPaperSizeToFormElement_1 = require("../../../../utils/getPaperSizeToFormElement");
|
|
10
|
+
var isKey_1 = require("../../../../utils/isKey");
|
|
11
|
+
var isNotNil_1 = require("../../../../utils/isNotNil");
|
|
12
|
+
var scrollContainerToElement_1 = require("../../../../utils/scrollContainerToElement");
|
|
13
|
+
var List_1 = require("../../../List");
|
|
14
|
+
var Paper_1 = require("../../../Paper");
|
|
15
|
+
var Popover_1 = require("../../../Popover");
|
|
16
|
+
var index_1 = require("../../index");
|
|
17
|
+
var components_1 = require("./components");
|
|
18
|
+
var constants_1 = require("./constants");
|
|
19
|
+
var helpers_1 = require("./helpers");
|
|
20
|
+
var utils_1 = require("./utils");
|
|
21
|
+
var AutocompleteDropdownRender = function (inProps, ref) {
|
|
22
|
+
var _a = inProps.size, size = _a === void 0 ? constants_1.AUTOCOMPLETE_DROPDOWN_DEFAULT_SIZE : _a, open = inProps.open, loading = inProps.loading, onClose = inProps.onClose, options = inProps.options, onChange = inProps.onChange, anchorRef = inProps.anchorRef, className = inProps.className, listProps = inProps.listProps, hasOptions = inProps.hasOptions, loadingText = inProps.loadingText, popoverProps = inProps.popoverProps, getOptionKey = inProps.getOptionKey, noOptionsText = inProps.noOptionsText, getOptionLabel = inProps.getOptionLabel, getOptionDisabled = inProps.getOptionDisabled, disableShowEmptyOptionsList = inProps.disableShowEmptyOptionsList, setUpdate = inProps.setUpdate, renderOptionProp = inProps.renderOption;
|
|
23
|
+
var radius = (0, getPaperSizeToFormElement_1.getPaperSizeToFormElement)(size);
|
|
24
|
+
var showNoOptions = !hasOptions && !loading && !disableShowEmptyOptionsList;
|
|
25
|
+
var showLoading = !hasOptions && !!loading;
|
|
26
|
+
var rootRef = (0, react_1.useRef)(null);
|
|
27
|
+
var listRef = (0, react_1.useRef)(null);
|
|
28
|
+
var _b = (0, react_1.useMemo)(function () { return (0, helpers_1.normalizeOptions)(options, getOptionKey, getOptionDisabled); }, [options, getOptionKey, getOptionDisabled]), entities = _b.entities, items = _b.idxs;
|
|
29
|
+
// Определяет последнюю выбранную опцию
|
|
30
|
+
var lastSelected = (0, react_1.useMemo)(function () {
|
|
31
|
+
var _a, _b;
|
|
32
|
+
if ((0, helpers_1.isNotMultipleParams)(inProps)) {
|
|
33
|
+
var value = inProps.value;
|
|
34
|
+
var key = value && getOptionKey(value);
|
|
35
|
+
return key && ((_a = entities.byKey[key]) === null || _a === void 0 ? void 0 : _a.idx);
|
|
36
|
+
}
|
|
37
|
+
if ((0, helpers_1.isMultipleParams)(inProps)) {
|
|
38
|
+
var value = inProps.value;
|
|
39
|
+
var lastValue = value === null || value === void 0 ? void 0 : value[value.length - 1];
|
|
40
|
+
var lastKey = lastValue && getOptionKey(lastValue);
|
|
41
|
+
return lastKey && ((_b = entities.byKey[lastKey]) === null || _b === void 0 ? void 0 : _b.idx);
|
|
42
|
+
}
|
|
43
|
+
return undefined;
|
|
44
|
+
}, [inProps, entities]);
|
|
45
|
+
// Навигация по списку
|
|
46
|
+
var _c = (0, utils_1.useDataListNavigation)({
|
|
47
|
+
items: items,
|
|
48
|
+
active: open,
|
|
49
|
+
selected: lastSelected,
|
|
50
|
+
onSelect: function (event, idx) {
|
|
51
|
+
var _a;
|
|
52
|
+
var option = (0, isNotNil_1.isNotNil)(idx) ? (_a = entities.byIdx[idx]) === null || _a === void 0 ? void 0 : _a.option : undefined;
|
|
53
|
+
if (option)
|
|
54
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(event, option);
|
|
55
|
+
},
|
|
56
|
+
}), current = _c.current, focused = _c.focused, onKeyDown = _c.onKeyDown, onClick = _c.onClick;
|
|
57
|
+
var previousCurrent = (0, usePrevious_1.usePrevious)(current);
|
|
58
|
+
(0, react_1.useEffect)(function () {
|
|
59
|
+
var _a, _b;
|
|
60
|
+
var firstCurrent = !(0, isNotNil_1.isNotNil)(previousCurrent) && (0, isNotNil_1.isNotNil)(current) ? current : undefined;
|
|
61
|
+
var selected = focused !== null && focused !== void 0 ? focused : firstCurrent;
|
|
62
|
+
if (selected !== undefined) {
|
|
63
|
+
// Прокрутка списка
|
|
64
|
+
(0, scrollContainerToElement_1.scrollContainerToElement)({
|
|
65
|
+
container: rootRef.current,
|
|
66
|
+
element: (_b = (_a = listRef.current) === null || _a === void 0 ? void 0 : _a.children) === null || _b === void 0 ? void 0 : _b[+selected],
|
|
67
|
+
behavior: (0, isNotNil_1.isNotNil)(focused) ? 'smooth' : 'instant',
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
}, [focused, current]);
|
|
71
|
+
// Назначает элементу контроля событие управления списком с клавиатуры
|
|
72
|
+
(0, useEventListener_1.useEventListener)({
|
|
73
|
+
eventName: 'keydown',
|
|
74
|
+
element: anchorRef,
|
|
75
|
+
handler: function (event) { return onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(event); },
|
|
76
|
+
});
|
|
77
|
+
// Закрывает список по нажатию на клавишу {Tab}
|
|
78
|
+
(0, useEventListener_1.useEventListener)({
|
|
79
|
+
active: open,
|
|
80
|
+
eventName: 'keydown',
|
|
81
|
+
element: anchorRef,
|
|
82
|
+
handler: function (event) {
|
|
83
|
+
if ((0, isKey_1.isKey)(event, 'Tab'))
|
|
84
|
+
onClose === null || onClose === void 0 ? void 0 : onClose();
|
|
85
|
+
},
|
|
86
|
+
});
|
|
87
|
+
var handleOnMouseDownList = function (e) {
|
|
88
|
+
var _a;
|
|
89
|
+
e.preventDefault();
|
|
90
|
+
(_a = listProps === null || listProps === void 0 ? void 0 : listProps.onMouseDown) === null || _a === void 0 ? void 0 : _a.call(listProps, e);
|
|
91
|
+
};
|
|
92
|
+
/** Отображение опций */
|
|
93
|
+
var renderOptionDefault = function (_a) {
|
|
94
|
+
var props = _a.props, option = _a.option, selected = _a.state.selected;
|
|
95
|
+
return (react_1.default.createElement(List_1.ListItem, tslib_1.__assign({}, props),
|
|
96
|
+
react_1.default.createElement(List_1.ListItemText, { primary: getOptionLabel(option) }),
|
|
97
|
+
react_1.default.createElement(components_1.AutocompleteDropdownCheckIcon, { selected: selected })));
|
|
98
|
+
};
|
|
99
|
+
var renderOption = renderOptionProp || renderOptionDefault;
|
|
100
|
+
// Представление раскрывающегося списка
|
|
101
|
+
var renderChildren = (0, react_1.useMemo)(function () {
|
|
102
|
+
return options.map(function (option, idx) {
|
|
103
|
+
var isSelected;
|
|
104
|
+
var key = getOptionKey === null || getOptionKey === void 0 ? void 0 : getOptionKey(option);
|
|
105
|
+
var isFocused = idx === focused;
|
|
106
|
+
var isDisabled = getOptionDisabled(option);
|
|
107
|
+
if ((0, helpers_1.isNotMultipleParams)(inProps)) {
|
|
108
|
+
var value = inProps.value;
|
|
109
|
+
if (value)
|
|
110
|
+
isSelected = getOptionKey(value) === key;
|
|
111
|
+
}
|
|
112
|
+
if ((0, helpers_1.isMultipleParams)(inProps) && Array.isArray(inProps.value)) {
|
|
113
|
+
var value = inProps.value;
|
|
114
|
+
isSelected = !!value.find(function (option) { return getOptionKey(option) === key; });
|
|
115
|
+
}
|
|
116
|
+
return renderOption({
|
|
117
|
+
option: option,
|
|
118
|
+
state: {
|
|
119
|
+
key: key,
|
|
120
|
+
focused: isFocused,
|
|
121
|
+
selected: isSelected,
|
|
122
|
+
disabled: isDisabled,
|
|
123
|
+
},
|
|
124
|
+
props: {
|
|
125
|
+
key: "".concat(idx, "_").concat(key),
|
|
126
|
+
role: 'option',
|
|
127
|
+
'aria-selected': isSelected,
|
|
128
|
+
'aria-disabled': isDisabled,
|
|
129
|
+
className: (0, index_1.cnAutocomplete)('Option', {
|
|
130
|
+
disabled: isDisabled,
|
|
131
|
+
selected: isSelected,
|
|
132
|
+
focused: isFocused,
|
|
133
|
+
}),
|
|
134
|
+
onClick: function (e) {
|
|
135
|
+
if (isDisabled)
|
|
136
|
+
return;
|
|
137
|
+
onClick === null || onClick === void 0 ? void 0 : onClick(e, idx);
|
|
138
|
+
},
|
|
139
|
+
},
|
|
140
|
+
});
|
|
141
|
+
});
|
|
142
|
+
}, [
|
|
143
|
+
options,
|
|
144
|
+
focused,
|
|
145
|
+
renderOption,
|
|
146
|
+
getOptionKey,
|
|
147
|
+
lastSelected,
|
|
148
|
+
getOptionDisabled,
|
|
149
|
+
]);
|
|
150
|
+
return (react_1.default.createElement(Popover_1.Popover, tslib_1.__assign({ offset: [0, 4], strategy: "absolute", placement: "bottom-start", setUpdate: setUpdate, as: Paper_1.Paper, transitionProps: { classNames: 'AutocompleteNext-Dropdown-animation' }, className: (0, index_1.cnAutocomplete)('Dropdown', [className]), equalAnchorWidth: true, disableReturnFocus: true, disableEnforceFocus: true }, popoverProps, { open: open, radius: radius, onClose: onClose, anchorRef: anchorRef, ref: (0, useMultiRef_1.useMultiRef)([ref, popoverProps === null || popoverProps === void 0 ? void 0 : popoverProps.ref, rootRef]) }),
|
|
151
|
+
react_1.default.createElement(List_1.List, tslib_1.__assign({ size: size, role: "listbox" }, listProps, { onMouseDown: handleOnMouseDownList, ref: (0, useMultiRef_1.useMultiRef)([listRef, listProps === null || listProps === void 0 ? void 0 : listProps.ref]) }),
|
|
152
|
+
renderChildren,
|
|
153
|
+
react_1.default.createElement(components_1.AutocompleteDropdownNoOptions, { showNoOptions: showNoOptions, noOptionsText: noOptionsText }),
|
|
154
|
+
react_1.default.createElement(components_1.AutocompleteDropdownLoading, { showLoading: showLoading, loadingText: loadingText, size: size }))));
|
|
155
|
+
};
|
|
156
|
+
exports.AutocompleteDropdown = (0, react_1.forwardRef)(AutocompleteDropdownRender);
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AutocompleteDropdownCheckIcon = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
require("./AutocompleteDropdownCheckIcon.css");
|
|
6
|
+
var react_1 = tslib_1.__importDefault(require("react"));
|
|
7
|
+
var icons_1 = require("@ozen-ui/icons");
|
|
8
|
+
var classname_1 = require("../../../../../../utils/classname");
|
|
9
|
+
var getIconSizeToFormElement_1 = require("../../../../../../utils/getIconSizeToFormElement");
|
|
10
|
+
var List_1 = require("../../../../../List");
|
|
11
|
+
var cnAutocompleteDropdownCheckIcon = (0, classname_1.cn)('AutocompleteDropdownCheckIcon');
|
|
12
|
+
var AutocompleteDropdownCheckIcon = function (_a) {
|
|
13
|
+
var selected = _a.selected;
|
|
14
|
+
var size = (0, List_1.useListContext)().size;
|
|
15
|
+
return (react_1.default.createElement(List_1.ListItemIcon, { className: cnAutocompleteDropdownCheckIcon({ selected: selected }) },
|
|
16
|
+
react_1.default.createElement(icons_1.CheckIcon, { size: (0, getIconSizeToFormElement_1.getIconSizeToFormElement)(size) })));
|
|
17
|
+
};
|
|
18
|
+
exports.AutocompleteDropdownCheckIcon = AutocompleteDropdownCheckIcon;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './AutocompleteDropdownCheckIcon';
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { FC } from 'react';
|
|
2
|
+
import type { AutocompleteProps } from '../../../../index';
|
|
3
|
+
export type AutocompleteDropdownLoadingProps = Pick<AutocompleteProps, 'loadingText' | 'size'> & {
|
|
4
|
+
showLoading: boolean;
|
|
5
|
+
};
|
|
6
|
+
export declare const AutocompleteDropdownLoading: FC<AutocompleteDropdownLoadingProps>;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AutocompleteDropdownLoading = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var react_1 = tslib_1.__importDefault(require("react"));
|
|
6
|
+
var getIconSizeToFormElement_1 = require("../../../../../../utils/getIconSizeToFormElement");
|
|
7
|
+
var isNumber_1 = require("../../../../../../utils/isNumber");
|
|
8
|
+
var isString_1 = require("../../../../../../utils/isString");
|
|
9
|
+
var List_1 = require("../../../../../List");
|
|
10
|
+
var Loader_1 = require("../../../../../Loader");
|
|
11
|
+
var constants_1 = require("../../../../constants");
|
|
12
|
+
var AutocompleteDropdownLoading = function (_a) {
|
|
13
|
+
var _b = _a.size, sizeProp = _b === void 0 ? constants_1.AUTOCOMPLETE_DEFAULT_SIZE : _b, showLoading = _a.showLoading, loadingText = _a.loadingText;
|
|
14
|
+
if (!showLoading) {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
var size = (0, getIconSizeToFormElement_1.getIconSizeToFormElement)(sizeProp);
|
|
18
|
+
return (0, isString_1.isString)(loadingText) || (0, isNumber_1.isNumber)(loadingText) ? (react_1.default.createElement(List_1.ListItem, null,
|
|
19
|
+
react_1.default.createElement(List_1.ListItemIcon, null,
|
|
20
|
+
react_1.default.createElement(Loader_1.Loader, { size: size })),
|
|
21
|
+
react_1.default.createElement(List_1.ListItemText, { primary: loadingText }))) : (loadingText);
|
|
22
|
+
};
|
|
23
|
+
exports.AutocompleteDropdownLoading = AutocompleteDropdownLoading;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './AutocompleteDropdownLoading';
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { FC } from 'react';
|
|
2
|
+
import type { AutocompleteProps } from '../../../../index';
|
|
3
|
+
export type AutocompleteDropdownNoOptionsProps = Pick<AutocompleteProps, 'noOptionsText'> & {
|
|
4
|
+
showNoOptions: boolean;
|
|
5
|
+
};
|
|
6
|
+
export declare const AutocompleteDropdownNoOptions: FC<AutocompleteDropdownNoOptionsProps>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AutocompleteDropdownNoOptions = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var react_1 = tslib_1.__importDefault(require("react"));
|
|
6
|
+
var isNumber_1 = require("../../../../../../utils/isNumber");
|
|
7
|
+
var isString_1 = require("../../../../../../utils/isString");
|
|
8
|
+
var List_1 = require("../../../../../List");
|
|
9
|
+
var AutocompleteDropdownNoOptions = function (_a) {
|
|
10
|
+
var showNoOptions = _a.showNoOptions, noOptionsText = _a.noOptionsText;
|
|
11
|
+
if (!showNoOptions) {
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
return (0, isString_1.isString)(noOptionsText) || (0, isNumber_1.isNumber)(noOptionsText) ? (react_1.default.createElement(List_1.ListItem, null,
|
|
15
|
+
react_1.default.createElement(List_1.ListItemText, { primary: noOptionsText }))) : (noOptionsText);
|
|
16
|
+
};
|
|
17
|
+
exports.AutocompleteDropdownNoOptions = AutocompleteDropdownNoOptions;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './AutocompleteDropdownNoOptions';
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./AutocompleteDropdownLoading"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./AutocompleteDropdownNoOptions"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./AutocompleteDropdownCheckIcon"), exports);
|
package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/constants.js
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AUTOCOMPLETE_DROPDOWN_OPTION_DEFAULT_DISABLED = exports.AUTOCOMPLETE_DROPDOWN_DEFAULT_OPEN = exports.AUTOCOMPLETE_DROPDOWN_DEFAULT_SIZE = void 0;
|
|
4
|
+
exports.AUTOCOMPLETE_DROPDOWN_DEFAULT_SIZE = 'm';
|
|
5
|
+
exports.AUTOCOMPLETE_DROPDOWN_DEFAULT_OPEN = false;
|
|
6
|
+
exports.AUTOCOMPLETE_DROPDOWN_OPTION_DEFAULT_DISABLED = false;
|
package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteDropdown/helpers.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { AutocompleteDropdownProps } from './types';
|
|
2
|
+
export declare const isMultipleParams: <OPTION>(params: AutocompleteDropdownProps<OPTION, boolean>) => params is AutocompleteDropdownProps<OPTION, true>;
|
|
3
|
+
export declare const isNotMultipleParams: <OPTION>(params: AutocompleteDropdownProps<OPTION, boolean>) => params is AutocompleteDropdownProps<OPTION, false>;
|
|
4
|
+
export type NormalizedOptions<OPTION> = {
|
|
5
|
+
entities: {
|
|
6
|
+
byIdx: Record<string | number, {
|
|
7
|
+
option: OPTION;
|
|
8
|
+
key: string | number;
|
|
9
|
+
}>;
|
|
10
|
+
byKey: Record<string | number, {
|
|
11
|
+
option: OPTION;
|
|
12
|
+
idx: string | number;
|
|
13
|
+
}>;
|
|
14
|
+
};
|
|
15
|
+
idxs: (string | number)[];
|
|
16
|
+
};
|
|
17
|
+
export declare function normalizeOptions<OPTION>(options: OPTION[], getOptionKey: (option: OPTION) => string | number, getOptionDisabled: (option: OPTION) => boolean | undefined): NormalizedOptions<OPTION>;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.normalizeOptions = exports.isNotMultipleParams = exports.isMultipleParams = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var isMultipleParams = function (params) { return !!params.multiple; };
|
|
6
|
+
exports.isMultipleParams = isMultipleParams;
|
|
7
|
+
var isNotMultipleParams = function (params) { return !params.multiple; };
|
|
8
|
+
exports.isNotMultipleParams = isNotMultipleParams;
|
|
9
|
+
function normalizeOptions(options, getOptionKey, getOptionDisabled) {
|
|
10
|
+
var e_1, _a;
|
|
11
|
+
var idx = 0;
|
|
12
|
+
var res = {
|
|
13
|
+
idxs: [],
|
|
14
|
+
entities: { byIdx: {}, byKey: {} },
|
|
15
|
+
};
|
|
16
|
+
try {
|
|
17
|
+
for (var options_1 = tslib_1.__values(options), options_1_1 = options_1.next(); !options_1_1.done; options_1_1 = options_1.next()) {
|
|
18
|
+
var option = options_1_1.value;
|
|
19
|
+
var key = getOptionKey(option);
|
|
20
|
+
res.entities.byIdx[idx] = { option: option, key: key };
|
|
21
|
+
res.entities.byKey[key] = { option: option, idx: idx };
|
|
22
|
+
if (!getOptionDisabled(option))
|
|
23
|
+
res.idxs.push(idx);
|
|
24
|
+
idx += 1;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
28
|
+
finally {
|
|
29
|
+
try {
|
|
30
|
+
if (options_1_1 && !options_1_1.done && (_a = options_1.return)) _a.call(options_1);
|
|
31
|
+
}
|
|
32
|
+
finally { if (e_1) throw e_1.error; }
|
|
33
|
+
}
|
|
34
|
+
return res;
|
|
35
|
+
}
|
|
36
|
+
exports.normalizeOptions = normalizeOptions;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./AutocompleteDropdown"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./components"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./types"), exports);
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { ReactNode, ReactElement, SyntheticEvent } from 'react';
|
|
2
|
+
import type { FormElementSizeVariant } from '../../../../types/FormElementSizeVariant';
|
|
3
|
+
import type { ListProps } from '../../../List';
|
|
4
|
+
import type { PopoverProps, PopoverRef } from '../../../Popover';
|
|
5
|
+
import type { AutocompletePropValue, AutocompletePropRenderOption, AutocompletePropGetOptionKey, AutocompleteDefaultOption, AutocompletePropGetOptionDisabled, AutocompletePropGetOptionLabel } from '../../index';
|
|
6
|
+
export type AutocompleteDropdownRef = PopoverRef;
|
|
7
|
+
export type AutocompleteDropdownOnChange<OPTION> = (e: SyntheticEvent | KeyboardEvent, value: OPTION | null) => void;
|
|
8
|
+
export type AutocompleteDropdownProps<OPTION = AutocompleteDefaultOption, MULTIPLE extends boolean = false> = {
|
|
9
|
+
/** Имя списка */
|
|
10
|
+
name?: string;
|
|
11
|
+
/** Содержимое компонента */
|
|
12
|
+
children?: never;
|
|
13
|
+
/** Если {true} из списка можно выбрать несколько вариантов */
|
|
14
|
+
multiple?: MULTIPLE;
|
|
15
|
+
/** Список вариантов выбора (опции) */
|
|
16
|
+
options: OPTION[];
|
|
17
|
+
/** Размер */
|
|
18
|
+
size?: FormElementSizeVariant;
|
|
19
|
+
/** Выбранное значение опции */
|
|
20
|
+
value?: AutocompletePropValue<OPTION, MULTIPLE>;
|
|
21
|
+
/** Функция обратного вызова, которая будет вызвана при выборе значения */
|
|
22
|
+
onChange?: AutocompleteDropdownOnChange<OPTION>;
|
|
23
|
+
/** Функция для кастомизации отображения опции */
|
|
24
|
+
renderOption?: AutocompletePropRenderOption<OPTION>;
|
|
25
|
+
/** Функция для определения уникального ключа элемента */
|
|
26
|
+
getOptionKey: AutocompletePropGetOptionKey<OPTION>;
|
|
27
|
+
/** Функция для определения названия элемента */
|
|
28
|
+
getOptionLabel: AutocompletePropGetOptionLabel<OPTION>;
|
|
29
|
+
/** Функция для определения заблокированного элемента */
|
|
30
|
+
getOptionDisabled: AutocompletePropGetOptionDisabled<OPTION>;
|
|
31
|
+
/** Если {true} не показывает список с отсутствующими опциями */
|
|
32
|
+
disableShowEmptyOptionsList?: boolean;
|
|
33
|
+
/** Текст компонента в состоянии загрузки */
|
|
34
|
+
loadingText?: ReactNode;
|
|
35
|
+
/** Текст компонента при отсутствующих опций */
|
|
36
|
+
noOptionsText?: ReactNode;
|
|
37
|
+
/** Свойства компонента Popover */
|
|
38
|
+
popoverProps?: Partial<Omit<PopoverProps, 'children' | 'open' | 'anchorRef' | 'onClose' | 'className'>>;
|
|
39
|
+
/** Свойства компонента List */
|
|
40
|
+
listProps?: Partial<Omit<ListProps, 'children'>>;
|
|
41
|
+
loading?: boolean;
|
|
42
|
+
hasOptions?: boolean;
|
|
43
|
+
'data-testid'?: string;
|
|
44
|
+
} & Pick<PopoverProps, 'open' | 'anchorRef' | 'onClose' | 'className' | 'setUpdate'>;
|
|
45
|
+
export type AutocompleteDropdownComponent = <OPTION = AutocompleteDefaultOption, MULTIPLE extends boolean = false>(props: AutocompleteDropdownProps<OPTION, MULTIPLE>) => ReactElement | null;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { MouseEvent } from 'react';
|
|
2
|
+
export type UseListNavigationItem = string | number | null;
|
|
3
|
+
export type UseListNavigationItems = UseListNavigationItem[];
|
|
4
|
+
export type UseListNavigationProps = {
|
|
5
|
+
active?: boolean;
|
|
6
|
+
items?: UseListNavigationItems;
|
|
7
|
+
selected?: UseListNavigationItem;
|
|
8
|
+
onSelect?(event: KeyboardEvent | MouseEvent<HTMLElement>, item?: UseListNavigationItem): void;
|
|
9
|
+
};
|
|
10
|
+
export type UseListNavigationState = {
|
|
11
|
+
focused?: UseListNavigationItem;
|
|
12
|
+
current?: UseListNavigationItem;
|
|
13
|
+
};
|
|
14
|
+
export type UseListNavigationEvents = {
|
|
15
|
+
onKeyDown?(event: KeyboardEvent): void;
|
|
16
|
+
onClick?(event: MouseEvent<HTMLElement>, item: UseListNavigationItem): void;
|
|
17
|
+
};
|
|
18
|
+
export type UseListNavigationReturn = UseListNavigationState & UseListNavigationEvents;
|
|
19
|
+
/** Навигация по элементам списка без перехвата фокуса с элемента контроля */
|
|
20
|
+
export declare function useDataListNavigation({ selected, onSelect, active, items: itemsProps, }: UseListNavigationProps): UseListNavigationReturn;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useDataListNavigation = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var react_1 = require("react");
|
|
6
|
+
var useMutableRef_1 = require("../../../../../hooks/useMutableRef");
|
|
7
|
+
var getNextIndex_1 = require("../../../../../utils/getNextIndex");
|
|
8
|
+
var getPrevIndex_1 = require("../../../../../utils/getPrevIndex");
|
|
9
|
+
var isKey_1 = require("../../../../../utils/isKey");
|
|
10
|
+
var isKeys_1 = require("../../../../../utils/isKeys");
|
|
11
|
+
/** Навигация по элементам списка без перехвата фокуса с элемента контроля */
|
|
12
|
+
function useDataListNavigation(_a) {
|
|
13
|
+
var selected = _a.selected, onSelect = _a.onSelect, _b = _a.active, active = _b === void 0 ? false : _b, itemsProps = _a.items;
|
|
14
|
+
var savedItems = (0, useMutableRef_1.useMutableRef)(itemsProps);
|
|
15
|
+
var savedSelected = (0, useMutableRef_1.useMutableRef)(selected);
|
|
16
|
+
var savedOnSelect = (0, useMutableRef_1.useMutableRef)(onSelect);
|
|
17
|
+
var _c = tslib_1.__read((0, react_1.useState)({}), 2), state = _c[0], setState = _c[1];
|
|
18
|
+
var findInItems = function (value) { var _a; return (_a = savedItems.current) === null || _a === void 0 ? void 0 : _a.find(function (item) { return item === value; }); };
|
|
19
|
+
(0, react_1.useEffect)(function () {
|
|
20
|
+
if (!active)
|
|
21
|
+
return;
|
|
22
|
+
setState(function (prevState) {
|
|
23
|
+
var _a, _b, _c;
|
|
24
|
+
return (tslib_1.__assign(tslib_1.__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] }));
|
|
25
|
+
});
|
|
26
|
+
}, [itemsProps, active]);
|
|
27
|
+
// Сброс
|
|
28
|
+
(0, react_1.useEffect)(function () {
|
|
29
|
+
if (!active)
|
|
30
|
+
return undefined;
|
|
31
|
+
return function () {
|
|
32
|
+
setState({});
|
|
33
|
+
};
|
|
34
|
+
}, [active]);
|
|
35
|
+
var onClick = (0, react_1.useCallback)(function (event, item) {
|
|
36
|
+
var _a;
|
|
37
|
+
if (!active)
|
|
38
|
+
return;
|
|
39
|
+
var focused = item === state.focused ? item : null;
|
|
40
|
+
setState(tslib_1.__assign(tslib_1.__assign({}, state), { focused: focused, current: item }));
|
|
41
|
+
(_a = savedOnSelect.current) === null || _a === void 0 ? void 0 : _a.call(savedOnSelect, event, item);
|
|
42
|
+
}, [state.focused, active]);
|
|
43
|
+
var onKeyDown = (0, react_1.useCallback)(function (event) {
|
|
44
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
45
|
+
if (!active || !(0, isKeys_1.isKeys)(event, ['Enter', 'ArrowUp', 'ArrowDown']))
|
|
46
|
+
return;
|
|
47
|
+
var current = (_a = state.focused) !== null && _a !== void 0 ? _a : state.current;
|
|
48
|
+
if ((0, isKey_1.isKey)(event, 'Enter')) {
|
|
49
|
+
// Не обрабатываем ввод в пустом списке
|
|
50
|
+
if (!((_b = savedItems.current) === null || _b === void 0 ? void 0 : _b.length))
|
|
51
|
+
return;
|
|
52
|
+
event.preventDefault();
|
|
53
|
+
setState(tslib_1.__assign(tslib_1.__assign({}, state), { current: current, focused: current }));
|
|
54
|
+
(_c = savedOnSelect.current) === null || _c === void 0 ? void 0 : _c.call(savedOnSelect, event, current);
|
|
55
|
+
}
|
|
56
|
+
if ((0, isKeys_1.isKeys)(event, ['ArrowUp', 'ArrowDown'])) {
|
|
57
|
+
event.preventDefault();
|
|
58
|
+
var currentIndex = typeof current !== 'undefined'
|
|
59
|
+
? (_d = savedItems.current) === null || _d === void 0 ? void 0 : _d.indexOf(current)
|
|
60
|
+
: null;
|
|
61
|
+
var isArrowUp = (0, isKey_1.isKey)(event, 'ArrowUp');
|
|
62
|
+
var newIndex = isArrowUp
|
|
63
|
+
? (0, getPrevIndex_1.getPrevIndex)(currentIndex !== null && currentIndex !== void 0 ? currentIndex : 0, ((_e = savedItems.current) === null || _e === void 0 ? void 0 : _e.length) || 0)
|
|
64
|
+
: (0, getNextIndex_1.getNextIndex)(currentIndex !== null && currentIndex !== void 0 ? currentIndex : -1, ((_f = savedItems.current) === null || _f === void 0 ? void 0 : _f.length) || 0);
|
|
65
|
+
var newItem = (_g = savedItems.current) === null || _g === void 0 ? void 0 : _g[newIndex];
|
|
66
|
+
setState(tslib_1.__assign(tslib_1.__assign({}, state), { focused: newItem }));
|
|
67
|
+
}
|
|
68
|
+
}, [state.focused, state.current, active]);
|
|
69
|
+
return tslib_1.__assign(tslib_1.__assign({}, state), { onClick: onClick, onKeyDown: onKeyDown });
|
|
70
|
+
}
|
|
71
|
+
exports.useDataListNavigation = useDataListNavigation;
|
|
@@ -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,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useScrollContainerToElement = void 0;
|
|
4
|
+
var react_1 = require("react");
|
|
5
|
+
var scrollContainerToElement_1 = require("../../../../../utils/scrollContainerToElement");
|
|
6
|
+
function useScrollContainerToElement(container, element, behavior) {
|
|
7
|
+
(0, react_1.useEffect)(function () {
|
|
8
|
+
(0, scrollContainerToElement_1.scrollContainerToElement)({
|
|
9
|
+
container: container.current,
|
|
10
|
+
element: element.current,
|
|
11
|
+
behavior: behavior,
|
|
12
|
+
});
|
|
13
|
+
}, [container, element]);
|
|
14
|
+
}
|
|
15
|
+
exports.useScrollContainerToElement = useScrollContainerToElement;
|
package/__inner__/cjs/components/AutocompleteNext/components/AutocompleteInput/AutocompleteInput.js
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AutocompleteInput = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var react_1 = tslib_1.__importStar(require("react"));
|
|
6
|
+
var isNotNil_1 = require("../../../../utils/isNotNil");
|
|
7
|
+
var Input_1 = require("../../../Input");
|
|
8
|
+
var index_1 = require("../../index");
|
|
9
|
+
var AutocompleteRenderRight_1 = require("../AutocompleteRenderRight");
|
|
10
|
+
var components_1 = require("./components");
|
|
11
|
+
var helpers_1 = require("./helpers");
|
|
12
|
+
var AutocompleteInputRender = function (inProps, ref) {
|
|
13
|
+
var _a, _b;
|
|
14
|
+
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 = tslib_1.__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"]);
|
|
15
|
+
var hasValue = (0, helpers_1.isMultipleParams)(inProps)
|
|
16
|
+
? !!((_a = inProps.selectedOptions) === null || _a === void 0 ? void 0 : _a.length)
|
|
17
|
+
: (0, isNotNil_1.isNotNil)(selectedOptions);
|
|
18
|
+
var selectedOptionsLength = (0, helpers_1.isMultipleParams)(inProps)
|
|
19
|
+
? ((_b = inProps.selectedOptions) === null || _b === void 0 ? void 0 : _b.length) || 0
|
|
20
|
+
: 0;
|
|
21
|
+
var renderInputDefault = function (props, ref) { return (react_1.default.createElement(Input_1.Input, tslib_1.__assign({}, props, { ref: ref }))); };
|
|
22
|
+
var renderInput = renderInputProp || renderInputDefault;
|
|
23
|
+
var renderComponent = function (_a, ref) {
|
|
24
|
+
var className = _a.className, other = tslib_1.__rest(_a, ["className"]);
|
|
25
|
+
if ((0, helpers_1.isNotMultipleParams)(inProps)) {
|
|
26
|
+
return (react_1.default.createElement("input", tslib_1.__assign({}, other, { ref: ref, className: (0, index_1.cnAutocomplete)('Input', { multiple: multiple }, [className]) })));
|
|
27
|
+
}
|
|
28
|
+
if ((0, helpers_1.isMultipleParams)(inProps)) {
|
|
29
|
+
var selectedOptions_1 = inProps.selectedOptions;
|
|
30
|
+
return (react_1.default.createElement(components_1.AutocompleteInputMultiple, tslib_1.__assign({ renderTag: renderTag, limitTags: limitTags, onRemoveTag: onRemoveTag, getOptionKey: getOptionKey, renderMoreTag: renderMoreTag, getOptionLabel: getOptionLabel, getOptionDisabled: getOptionDisabled, selectedOptions: selectedOptions_1, ref: ref }, other)));
|
|
31
|
+
}
|
|
32
|
+
return null;
|
|
33
|
+
};
|
|
34
|
+
return renderInput(tslib_1.__assign({ size: size, disabled: disabled, value: value || '', placeholder: placeholder, renderRight: (react_1.default.createElement(AutocompleteRenderRight_1.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: {
|
|
35
|
+
shrink: !!selectedOptionsLength,
|
|
36
|
+
}, inputProps: tslib_1.__assign(tslib_1.__assign({ autoComplete: 'off' }, inputProps), { renderComponent: renderComponent }), bodyProps: tslib_1.__assign({ 'aria-expanded': open }, bodyProps), className: (0, index_1.cnAutocomplete)({ size: size, multiple: multiple, hasChevron: !disableShowChevron }, [className]) }, other), ref);
|
|
37
|
+
};
|
|
38
|
+
exports.AutocompleteInput = (0, react_1.forwardRef)(AutocompleteInputRender);
|