@consta/uikit 5.13.0 → 5.15.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/FieldComponents/index.d.ts +1 -0
- package/FieldComponents/index.js +1 -0
- package/TextFieldCanary/index.d.ts +1 -0
- package/TextFieldCanary/index.js +1 -0
- package/__internal__/src/components/AutoComplete/helpers.d.ts +1 -1
- package/__internal__/src/components/AutoComplete/types.d.ts +1 -1
- package/__internal__/src/components/AutoComplete/types.js.map +1 -1
- package/__internal__/src/components/AutoComplete/useAutoComplete.d.ts +1 -1
- package/__internal__/src/components/AutoComplete/useAutoComplete.js +1 -1
- package/__internal__/src/components/AutoComplete/useAutoComplete.js.map +1 -1
- package/__internal__/src/components/AutoCompleteCanary/helpers.d.ts +1 -1
- package/__internal__/src/components/AutoCompleteCanary/types.d.ts +1 -1
- package/__internal__/src/components/AutoCompleteCanary/types.js.map +1 -1
- package/__internal__/src/components/AutoCompleteCanary/useAutoComplete.d.ts +1 -1
- package/__internal__/src/components/AutoCompleteCanary/useAutoComplete.js +1 -1
- package/__internal__/src/components/AutoCompleteCanary/useAutoComplete.js.map +1 -1
- package/__internal__/src/components/AvatarGroup/AvatarGroup.js.map +1 -1
- package/__internal__/src/components/Badge/Badge.css +1 -1
- package/__internal__/src/components/Badge/Badge.d.ts +2 -31
- package/__internal__/src/components/Badge/Badge.js +1 -1
- package/__internal__/src/components/Badge/Badge.js.map +1 -1
- package/__internal__/src/components/Badge/cn.d.ts +1 -0
- package/__internal__/src/components/Badge/cn.js +2 -0
- package/__internal__/src/components/Badge/cn.js.map +1 -0
- package/__internal__/src/components/Badge/guardStatus.d.ts +2 -0
- package/__internal__/src/components/Badge/guardStatus.js +2 -0
- package/__internal__/src/components/Badge/guardStatus.js.map +1 -0
- package/__internal__/src/components/Badge/index.d.ts +2 -0
- package/__internal__/src/components/Badge/index.js +1 -1
- package/__internal__/src/components/Badge/index.js.map +1 -1
- package/__internal__/src/components/Badge/maps.d.ts +9 -0
- package/__internal__/src/components/Badge/maps.js +2 -0
- package/__internal__/src/components/Badge/maps.js.map +1 -0
- package/__internal__/src/components/Badge/types.d.ts +31 -0
- package/__internal__/src/components/Badge/types.js +2 -0
- package/__internal__/src/components/Badge/types.js.map +1 -0
- package/__internal__/src/components/BadgeGroup/BadgeGroup.js +1 -1
- package/__internal__/src/components/BadgeGroup/BadgeGroup.js.map +1 -1
- package/__internal__/src/components/BadgeGroup/types.d.ts +4 -1
- package/__internal__/src/components/BadgeGroup/types.js.map +1 -1
- package/__internal__/src/components/BookmarkTabs/BookmarkTabs.js.map +1 -1
- package/__internal__/src/components/Breadcrumbs/BreadcrumbsItem/BreadcrumbsItem.css +1 -1
- package/__internal__/src/components/Checkbox/Checkbox.css +1 -1
- package/__internal__/src/components/CheckboxDeprecated/Checkbox.css +2 -2
- package/__internal__/src/components/CheckboxGroup/CheckboxGroup.js.map +1 -1
- package/__internal__/src/components/Chips/types.d.ts +8 -2
- package/__internal__/src/components/Chips/types.js.map +1 -1
- package/__internal__/src/components/Collapse/types.d.ts +1 -1
- package/__internal__/src/components/Collapse/types.js.map +1 -1
- package/__internal__/src/components/Combobox/Combobox.js +1 -1
- package/__internal__/src/components/Combobox/Combobox.js.map +1 -1
- package/__internal__/src/components/Combobox/helpers.d.ts +2 -2
- package/__internal__/src/components/Combobox/helpers.js.map +1 -1
- package/__internal__/src/components/ComboboxDeprecated/ComboboxDeprecated.js +1 -1
- package/__internal__/src/components/ComboboxDeprecated/ComboboxDeprecated.js.map +1 -1
- package/__internal__/src/components/ContextMenu/ContextMenuLevel/ContextMenuLevel.js +1 -1
- package/__internal__/src/components/ContextMenu/ContextMenuLevel/ContextMenuLevel.js.map +1 -1
- package/__internal__/src/components/ContextMenu/ContextMenuLevelWrapper/ContextMenuLevelWrapper.js +1 -1
- package/__internal__/src/components/ContextMenu/ContextMenuLevelWrapper/ContextMenuLevelWrapper.js.map +1 -1
- package/__internal__/src/components/ContextMenu/ContextMenuWrapper/ContextMenuWrapper.css +1 -1
- package/__internal__/src/components/ContextMenu/ContextMenuWrapper/ContextMenuWrapper.js +1 -1
- package/__internal__/src/components/ContextMenu/ContextMenuWrapper/ContextMenuWrapper.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerDropdown/DatePickerDropdown.css +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeDateRange/DatePickerTypeDateRange.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeDateRange/DatePickerTypeDateRange.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeDateTimeRange/DatePickerTypeDateTimeRange.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeDateTimeRange/DatePickerTypeDateTimeRange.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeMonthRange/DatePickerTypeMonthRange.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeMonthRange/DatePickerTypeMonthRange.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeYearRange/DatePickerTypeYearRange.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeYearRange/DatePickerTypeYearRange.js.map +1 -1
- package/__internal__/src/components/DateTime/DateTime10Years/DateTime10Years.css +1 -1
- package/__internal__/src/components/DateTime/DateTimeCell/DateTimeCell.css +1 -1
- package/__internal__/src/components/DateTime/DateTimeMonth/DateTimeMonth.css +1 -1
- package/__internal__/src/components/DateTime/DateTimeTimeColumn/DateTimeTimeColumn.css +1 -1
- package/__internal__/src/components/DateTime/DateTimeTimeColumn/DateTimeTimeColumn.js +1 -1
- package/__internal__/src/components/DateTime/DateTimeTimeColumn/DateTimeTimeColumn.js.map +1 -1
- package/__internal__/src/components/DateTime/DateTimeTimeColumn/useScrollToElement/useScrollToElement.js.map +1 -1
- package/__internal__/src/components/DateTime/DateTimeTypeTime/DateTimeTypeTime.css +1 -1
- package/__internal__/src/components/DateTime/DateTimeTypeTime/DateTimeTypeTime.js.map +1 -1
- package/__internal__/src/components/DateTime/DateTimeYear/DateTimeYear.css +1 -1
- package/__internal__/src/components/DateTime/helpers/getSliderValueRange.js +1 -1
- package/__internal__/src/components/DateTime/helpers/getSliderValueRange.js.map +1 -1
- package/__internal__/src/components/DragNDropField/DragNDropField.js +1 -1
- package/__internal__/src/components/DragNDropField/DragNDropField.js.map +1 -1
- package/__internal__/src/components/DragNDropField/formatAccept.js.map +1 -1
- package/__internal__/src/components/DragNDropField/locale.d.ts +1 -1
- package/__internal__/src/components/DragNDropField/locale.js +1 -1
- package/__internal__/src/components/DragNDropField/locale.js.map +1 -1
- package/__internal__/src/components/DragNDropFieldCanary/DragNDropFieldCanary.js +1 -1
- package/__internal__/src/components/DragNDropFieldCanary/DragNDropFieldCanary.js.map +1 -1
- package/__internal__/src/components/DragNDropFieldCanary/renderChildren.d.ts +3 -0
- package/__internal__/src/components/DragNDropFieldCanary/renderChildren.js +2 -0
- package/__internal__/src/components/DragNDropFieldCanary/renderChildren.js.map +1 -0
- package/__internal__/src/components/FieldComponents/FieldArrayValueInlineControl/FieldArrayValueInlineControl.js +1 -1
- package/__internal__/src/components/FieldComponents/FieldArrayValueInlineControl/FieldArrayValueInlineControl.js.map +1 -1
- package/__internal__/src/components/FieldComponents/FieldArrayValueInlineControl/types.d.ts +2 -1
- package/__internal__/src/components/FieldComponents/FieldArrayValueInlineControl/types.js.map +1 -1
- package/__internal__/src/components/FieldComponents/FieldComponents.d.ts +15 -0
- package/__internal__/src/components/FieldComponents/FieldComponents.js +2 -0
- package/__internal__/src/components/FieldComponents/FieldComponents.js.map +1 -0
- package/__internal__/src/components/FieldComponents/FieldControlLayout/FieldControlLayout.css +1 -1
- package/__internal__/src/components/FieldComponents/FieldControlLayout/FieldControlLayout.js +1 -1
- package/__internal__/src/components/FieldComponents/FieldControlLayout/FieldControlLayout.js.map +1 -1
- package/__internal__/src/components/FieldComponents/FieldControlLayout/helpers.js.map +1 -1
- package/__internal__/src/components/FieldComponents/FieldWrapper/FieldWrapper.js +1 -1
- package/__internal__/src/components/FieldComponents/FieldWrapper/FieldWrapper.js.map +1 -1
- package/__internal__/src/components/FieldComponents/index.d.ts +1 -15
- package/__internal__/src/components/FieldComponents/index.js +1 -1
- package/__internal__/src/components/FieldComponents/index.js.map +1 -1
- package/__internal__/src/components/Grid/helpers.js.map +1 -1
- package/__internal__/src/components/Informer/Informer.css +1 -1
- package/__internal__/src/components/Informer/Informer.d.ts +1 -1
- package/__internal__/src/components/Informer/Informer.js +1 -1
- package/__internal__/src/components/Informer/Informer.js.map +1 -1
- package/__internal__/src/components/Layout/useFixed.js +1 -1
- package/__internal__/src/components/Layout/useFixed.js.map +1 -1
- package/__internal__/src/components/ListCanary/ListAddItem/ListAddItem.js +1 -1
- package/__internal__/src/components/ListCanary/ListAddItem/ListAddItem.js.map +1 -1
- package/__internal__/src/components/ListCanary/ListBox/ListBox.js +1 -1
- package/__internal__/src/components/ListCanary/ListBox/ListBox.js.map +1 -1
- package/__internal__/src/components/ListCanary/ListBox/index.d.ts +1 -1
- package/__internal__/src/components/ListCanary/ListBox/index.js +1 -1
- package/__internal__/src/components/ListCanary/ListBox/index.js.map +1 -1
- package/__internal__/src/components/ListCanary/ListBox/{mapVerticalSpase.d.ts → mapVerticalSpace.d.ts} +1 -1
- package/__internal__/src/components/ListCanary/ListBox/mapVerticalSpace.js +2 -0
- package/__internal__/src/components/ListCanary/ListBox/mapVerticalSpace.js.map +1 -0
- package/__internal__/src/components/ListCanary/ListCanary.js +1 -1
- package/__internal__/src/components/ListCanary/ListCanary.js.map +1 -1
- package/__internal__/src/components/ListCanary/ListDivider/ListDivider.js +1 -1
- package/__internal__/src/components/ListCanary/ListDivider/ListDivider.js.map +1 -1
- package/__internal__/src/components/ListCanary/ListGroupLabel/ListGroupLabel.js +1 -1
- package/__internal__/src/components/ListCanary/ListGroupLabel/ListGroupLabel.js.map +1 -1
- package/__internal__/src/components/ListCanary/ListItem/ListItem.js +1 -1
- package/__internal__/src/components/ListCanary/ListItem/ListItem.js.map +1 -1
- package/__internal__/src/components/ListCanary/ListLoader/ListLoader.js +1 -1
- package/__internal__/src/components/ListCanary/ListLoader/ListLoader.js.map +1 -1
- package/__internal__/src/components/ListCanary/helper.d.ts +3 -3
- package/__internal__/src/components/ListCanary/maps.d.ts +4 -4
- package/__internal__/src/components/ListCanary/maps.js +1 -1
- package/__internal__/src/components/ListCanary/maps.js.map +1 -1
- package/__internal__/src/components/ListCanary/renderHeader.d.ts +1 -1
- package/__internal__/src/components/ListCanary/renderHeader.js.map +1 -1
- package/__internal__/src/components/ListCanary/types.d.ts +3 -3
- package/__internal__/src/components/ListCanary/types.js.map +1 -1
- package/__internal__/src/components/Pagination/Pagination.js.map +1 -1
- package/__internal__/src/components/Pagination/PaginationList/PaginationList.css +1 -1
- package/__internal__/src/components/Pagination/PaginationList/PaginationList.js +1 -1
- package/__internal__/src/components/Pagination/PaginationList/PaginationList.js.map +1 -1
- package/__internal__/src/components/Pagination/helpers.js.map +1 -1
- package/__internal__/src/components/Pagination/usePaginationItems.js.map +1 -1
- package/__internal__/src/components/Popover/Popover.d.ts +2 -1
- package/__internal__/src/components/Popover/Popover.js +1 -1
- package/__internal__/src/components/Popover/Popover.js.map +1 -1
- package/__internal__/src/components/Popover/helpers.d.ts +1 -1
- package/__internal__/src/components/Popover/helpers.js +1 -1
- package/__internal__/src/components/Popover/helpers.js.map +1 -1
- package/__internal__/src/components/Popover/usePopoverReposition.d.ts +2 -2
- package/__internal__/src/components/Popover/usePopoverReposition.js.map +1 -1
- package/__internal__/src/components/PortalWithTheme/PortalWithTheme.js.map +1 -1
- package/__internal__/src/components/PortalWithTheme/PortalWithThemeContext/PortalWithThemeContext.d.ts +4 -4
- package/__internal__/src/components/PortalWithTheme/PortalWithThemeContext/PortalWithThemeContext.js.map +1 -1
- package/__internal__/src/components/ProgressLine/helpers.js.map +1 -1
- package/__internal__/src/components/ProgressLine/types.d.ts +2 -2
- package/__internal__/src/components/ProgressLine/types.js.map +1 -1
- package/__internal__/src/components/ProgressStepBar/helpers.d.ts +3 -3
- package/__internal__/src/components/ProgressStepBar/helpers.js.map +1 -1
- package/__internal__/src/components/Select/helpers.d.ts +2 -2
- package/__internal__/src/components/Select/helpers.js.map +1 -1
- package/__internal__/src/components/SelectComponents/SelectDropdown/SelectDropdown.d.ts +3 -3
- package/__internal__/src/components/SelectComponents/SelectDropdown/SelectDropdown.js +1 -1
- package/__internal__/src/components/SelectComponents/SelectDropdown/SelectDropdown.js.map +1 -1
- package/__internal__/src/components/SelectComponents/helpers.d.ts +2 -2
- package/__internal__/src/components/SelectComponents/helpers.js +1 -1
- package/__internal__/src/components/SelectComponents/helpers.js.map +1 -1
- package/__internal__/src/components/SelectComponents/useSelect/useSelect.d.ts +1 -1
- package/__internal__/src/components/SelectComponents/useSelect/useSelect.js +1 -1
- package/__internal__/src/components/SelectComponents/useSelect/useSelect.js.map +1 -1
- package/__internal__/src/components/SelectComponentsDeprecated/SelectDropdown/SelectDropdown.d.ts +2 -2
- package/__internal__/src/components/SelectComponentsDeprecated/SelectDropdown/SelectDropdown.js +1 -1
- package/__internal__/src/components/SelectComponentsDeprecated/SelectDropdown/SelectDropdown.js.map +1 -1
- package/__internal__/src/components/SelectComponentsDeprecated/helpers.d.ts +2 -2
- package/__internal__/src/components/SelectComponentsDeprecated/helpers.js +1 -1
- package/__internal__/src/components/SelectComponentsDeprecated/helpers.js.map +1 -1
- package/__internal__/src/components/Slider/Slider.js +1 -1
- package/__internal__/src/components/Slider/Slider.js.map +1 -1
- package/__internal__/src/components/Slider/helper.d.ts +6 -6
- package/__internal__/src/components/Slider/helper.js +1 -1
- package/__internal__/src/components/Slider/helper.js.map +1 -1
- package/__internal__/src/components/Slider/useSlider/helper.d.ts +2 -2
- package/__internal__/src/components/Slider/useSlider/helper.js +1 -1
- package/__internal__/src/components/Slider/useSlider/helper.js.map +1 -1
- package/__internal__/src/components/Slider/useSlider/useSlider.js +1 -1
- package/__internal__/src/components/Slider/useSlider/useSlider.js.map +1 -1
- package/__internal__/src/components/Slider/useSliderStationing.js.map +1 -1
- package/__internal__/src/components/SnackBar/SnackBar.js +1 -1
- package/__internal__/src/components/SnackBar/SnackBar.js.map +1 -1
- package/__internal__/src/components/SnackBar/SnackBarActionButton/SnackBarActionButton.js +1 -1
- package/__internal__/src/components/SnackBar/SnackBarActionButton/SnackBarActionButton.js.map +1 -1
- package/__internal__/src/components/SnackBar/SnackBarActionButton/index.d.ts +1 -0
- package/__internal__/src/components/SnackBar/SnackBarActionButton/index.js +2 -0
- package/__internal__/src/components/SnackBar/SnackBarActionButton/index.js.map +1 -0
- package/__internal__/src/components/SnackBar/SnackBarItem/SnackBarItem.css +1 -1
- package/__internal__/src/components/SnackBar/SnackBarItem/SnackBarItem.d.ts +0 -1
- package/__internal__/src/components/SnackBar/SnackBarItem/SnackBarItem.js +1 -1
- package/__internal__/src/components/SnackBar/SnackBarItem/SnackBarItem.js.map +1 -1
- package/__internal__/src/components/SnackBar/SnackBarItem/index.d.ts +1 -0
- package/__internal__/src/components/SnackBar/SnackBarItem/index.js +2 -0
- package/__internal__/src/components/SnackBar/SnackBarItem/index.js.map +1 -0
- package/__internal__/src/components/SnackBar/SnackBarLine/SnackBarLine.js.map +1 -1
- package/__internal__/src/components/SnackBar/SnackBarLine/index.d.ts +1 -0
- package/__internal__/src/components/SnackBar/SnackBarLine/index.js +2 -0
- package/__internal__/src/components/SnackBar/SnackBarLine/index.js.map +1 -0
- package/__internal__/src/components/SnackBar/SnackBarProgress/SnackBarProgress.css +1 -0
- package/__internal__/src/components/SnackBar/SnackBarProgress/SnackBarProgress.d.ts +4 -0
- package/__internal__/src/components/SnackBar/SnackBarProgress/SnackBarProgress.js +2 -0
- package/__internal__/src/components/SnackBar/SnackBarProgress/SnackBarProgress.js.map +1 -0
- package/__internal__/src/components/SnackBar/SnackBarProgress/index.d.ts +1 -0
- package/__internal__/src/components/SnackBar/SnackBarProgress/index.js +2 -0
- package/__internal__/src/components/SnackBar/SnackBarProgress/index.js.map +1 -0
- package/__internal__/src/components/SnackBar/SnackBarTimer/SnackBarTimer.js +1 -1
- package/__internal__/src/components/SnackBar/SnackBarTimer/SnackBarTimer.js.map +1 -1
- package/__internal__/src/components/SnackBar/SnackBarTimer/index.d.ts +1 -0
- package/__internal__/src/components/SnackBar/SnackBarTimer/index.js +2 -0
- package/__internal__/src/components/SnackBar/SnackBarTimer/index.js.map +1 -0
- package/__internal__/src/components/SnackBar/helper.d.ts +4 -1
- package/__internal__/src/components/SnackBar/helper.js +1 -1
- package/__internal__/src/components/SnackBar/helper.js.map +1 -1
- package/__internal__/src/components/SnackBar/types.d.ts +15 -0
- package/__internal__/src/components/SnackBar/types.js +1 -1
- package/__internal__/src/components/SnackBar/types.js.map +1 -1
- package/__internal__/src/components/Spoiler/types.d.ts +4 -4
- package/__internal__/src/components/Spoiler/types.js +1 -1
- package/__internal__/src/components/Spoiler/types.js.map +1 -1
- package/__internal__/src/components/Steps/Steps.d.ts +2 -2
- package/__internal__/src/components/Steps/Steps.js.map +1 -1
- package/__internal__/src/components/Steps/StepsStep/StepsStep.js +1 -1
- package/__internal__/src/components/Steps/StepsStep/StepsStep.js.map +1 -1
- package/__internal__/src/components/Steps/types.d.ts +1 -1
- package/__internal__/src/components/Steps/types.js.map +1 -1
- package/__internal__/src/components/Table/Header/TableHeader.js +1 -1
- package/__internal__/src/components/Table/Header/TableHeader.js.map +1 -1
- package/__internal__/src/components/Table/Resizer/TableResizer.js.map +1 -1
- package/__internal__/src/components/Table/Table.css +1 -1
- package/__internal__/src/components/Table/Table.js +1 -1
- package/__internal__/src/components/Table/Table.js.map +1 -1
- package/__internal__/src/components/Table/__mock__/data.mock.d.ts +1 -1
- package/__internal__/src/components/Table/__mock__/data.mock.js +1 -1
- package/__internal__/src/components/Table/__mock__/data.mock.js.map +1 -1
- package/__internal__/src/components/Table/helpers.d.ts +2 -2
- package/__internal__/src/components/Table/helpers.js +1 -1
- package/__internal__/src/components/Table/helpers.js.map +1 -1
- package/__internal__/src/components/Tabs/TabsFitModeScrollWrapper/__test__/helpers.test.js +1 -1
- package/__internal__/src/components/Tabs/TabsFitModeScrollWrapper/__test__/helpers.test.js.map +1 -1
- package/__internal__/src/components/TagBase/TagBase.css +1 -1
- package/__internal__/src/components/TextField/TextField.js +1 -1
- package/__internal__/src/components/TextField/TextField.js.map +1 -1
- package/__internal__/src/components/TextField/helpers.d.ts +1 -1
- package/__internal__/src/components/TextField/helpers.js.map +1 -1
- package/__internal__/src/components/TextFieldCanary/{TextField.js → TextFieldCanary.js} +1 -1
- package/__internal__/src/components/TextFieldCanary/TextFieldCanary.js.map +1 -0
- package/__internal__/src/components/TextFieldCanary/TextFieldTypeNumber/TextFieldTypeNumber.js +1 -1
- package/__internal__/src/components/TextFieldCanary/TextFieldTypeNumber/TextFieldTypeNumber.js.map +1 -1
- package/__internal__/src/components/TextFieldCanary/TextFieldTypePassword/TextFieldTypePassword.js +1 -1
- package/__internal__/src/components/TextFieldCanary/TextFieldTypePassword/TextFieldTypePassword.js.map +1 -1
- package/__internal__/src/components/TextFieldCanary/TextFieldTypeText/TextFieldTypeText.js +1 -1
- package/__internal__/src/components/TextFieldCanary/TextFieldTypeText/TextFieldTypeText.js.map +1 -1
- package/__internal__/src/components/TextFieldCanary/TextFieldTypeTextArea/TextFieldTypeTextArea.css +3 -3
- package/__internal__/src/components/TextFieldCanary/TextFieldTypeTextArea/TextFieldTypeTextArea.js +1 -1
- package/__internal__/src/components/TextFieldCanary/TextFieldTypeTextArea/TextFieldTypeTextArea.js.map +1 -1
- package/__internal__/src/components/TextFieldCanary/TextFieldTypeTextArray/TextFieldTypeTextArray.css +1 -1
- package/__internal__/src/components/TextFieldCanary/TextFieldTypeTextArray/TextFieldTypeTextArray.js +1 -1
- package/__internal__/src/components/TextFieldCanary/TextFieldTypeTextArray/TextFieldTypeTextArray.js.map +1 -1
- package/__internal__/src/components/TextFieldCanary/index.d.ts +1 -1
- package/__internal__/src/components/TextFieldCanary/index.js +1 -1
- package/__internal__/src/components/TextFieldCanary/index.js.map +1 -1
- package/__internal__/src/components/TextFieldCanary/types.d.ts +1 -0
- package/__internal__/src/components/TextFieldCanary/types.js.map +1 -1
- package/__internal__/src/components/UserSelect/UserSelect.js +1 -1
- package/__internal__/src/components/UserSelect/UserSelect.js.map +1 -1
- package/__internal__/src/components/UserSelect/UserSelectItem/UserSelectItem.js +1 -1
- package/__internal__/src/components/UserSelect/UserSelectItem/UserSelectItem.js.map +1 -1
- package/__internal__/src/components/UserSelect/helpers.d.ts +2 -2
- package/__internal__/src/components/UserSelect/helpers.js.map +1 -1
- package/__internal__/src/components/UserSelectDeprecated/UserSelectDeprecated.js +1 -1
- package/__internal__/src/components/UserSelectDeprecated/UserSelectDeprecated.js.map +1 -1
- package/__internal__/src/components/UserSelectDeprecated/UserSelectItem/UserSelectItem.js +1 -1
- package/__internal__/src/components/UserSelectDeprecated/UserSelectItem/UserSelectItem.js.map +1 -1
- package/__internal__/src/hocs/withTooltip/withTooltip.js.map +1 -1
- package/__internal__/src/hooks/{useBreakpointsDepricated → useBreakpointsDeprecated}/addPrefix.js.map +1 -1
- package/__internal__/src/hooks/{useBreakpointsDepricated → useBreakpointsDeprecated}/getLastPoint.js.map +1 -1
- package/__internal__/src/hooks/useBreakpointsDeprecated/index.d.ts +3 -0
- package/__internal__/src/hooks/useBreakpointsDeprecated/index.js +2 -0
- package/__internal__/src/hooks/useBreakpointsDeprecated/index.js.map +1 -0
- package/__internal__/src/hooks/{useBreakpointsDepricated → useBreakpointsDeprecated}/mapping.js.map +1 -1
- package/__internal__/src/hooks/{useBreakpointsDepricated → useBreakpointsDeprecated}/types.js.map +1 -1
- package/__internal__/src/hooks/useBreakpointsDeprecated/useBreakpointsDeprecated.d.ts +2 -0
- package/__internal__/src/hooks/useBreakpointsDeprecated/useBreakpointsDeprecated.js +2 -0
- package/__internal__/src/hooks/useBreakpointsDeprecated/useBreakpointsDeprecated.js.map +1 -0
- package/__internal__/src/hooks/useBreakpointsDepricated/index.d.ts +0 -2
- package/__internal__/src/hooks/useBreakpointsDepricated/index.js +1 -1
- package/__internal__/src/hooks/useBreakpointsDepricated/index.js.map +1 -1
- package/__internal__/src/hooks/useBreakpointsDepricated/useBreakpointsDepricated.d.ts +1 -2
- package/__internal__/src/hooks/useBreakpointsDepricated/useBreakpointsDepricated.js +1 -1
- package/__internal__/src/hooks/useBreakpointsDepricated/useBreakpointsDepricated.js.map +1 -1
- package/__internal__/src/hooks/useChoiceGroup/useChoiceGroup.js.map +1 -1
- package/__internal__/src/hooks/useClickOutside/useClickOutside.js.map +1 -1
- package/__internal__/src/hooks/useComponentBreakpointsDeprecated/index.d.ts +2 -0
- package/__internal__/src/hooks/useComponentBreakpointsDeprecated/index.js +2 -0
- package/__internal__/src/hooks/useComponentBreakpointsDeprecated/index.js.map +1 -0
- package/__internal__/src/hooks/useComponentBreakpointsDeprecated/useComponentBreakpointsDeprecated.d.ts +2 -0
- package/__internal__/src/hooks/useComponentBreakpointsDeprecated/useComponentBreakpointsDeprecated.js +2 -0
- package/__internal__/src/hooks/useComponentBreakpointsDeprecated/useComponentBreakpointsDeprecated.js.map +1 -0
- package/__internal__/src/hooks/useComponentBreakpointsDepricated/index.d.ts +0 -1
- package/__internal__/src/hooks/useComponentBreakpointsDepricated/index.js +1 -1
- package/__internal__/src/hooks/useComponentBreakpointsDepricated/index.js.map +1 -1
- package/__internal__/src/hooks/useComponentBreakpointsDepricated/useComponentBreakpointsDepricated.d.ts +1 -2
- package/__internal__/src/hooks/useComponentBreakpointsDepricated/useComponentBreakpointsDepricated.js +1 -1
- package/__internal__/src/hooks/useComponentBreakpointsDepricated/useComponentBreakpointsDepricated.js.map +1 -1
- package/__internal__/src/hooks/useHideElementsInLineDeprecated/index.d.ts +1 -0
- package/__internal__/src/hooks/useHideElementsInLineDeprecated/index.js +2 -0
- package/__internal__/src/hooks/useHideElementsInLineDeprecated/index.js.map +1 -0
- package/__internal__/src/hooks/useHideElementsInLineDeprecated/useHideElementsInLineDeprecated.d.ts +10 -0
- package/__internal__/src/hooks/useHideElementsInLineDeprecated/useHideElementsInLineDeprecated.js +2 -0
- package/__internal__/src/hooks/useHideElementsInLineDeprecated/useHideElementsInLineDeprecated.js.map +1 -0
- package/__internal__/src/hooks/useHideElementsInLineDepricated/index.js.map +1 -1
- package/__internal__/src/hooks/useHideElementsInLineDepricated/useHideElementsInLineDepricated.d.ts +1 -10
- package/__internal__/src/hooks/useHideElementsInLineDepricated/useHideElementsInLineDepricated.js +1 -1
- package/__internal__/src/hooks/useHideElementsInLineDepricated/useHideElementsInLineDepricated.js.map +1 -1
- package/__internal__/src/hooks/useKeysDeprecated/index.d.ts +1 -0
- package/__internal__/src/hooks/useKeysDeprecated/index.js +2 -0
- package/__internal__/src/hooks/useKeysDeprecated/index.js.map +1 -0
- package/__internal__/src/hooks/useKeysDeprecated/useKeysDeprecated.d.ts +18 -0
- package/__internal__/src/hooks/useKeysDeprecated/useKeysDeprecated.js +2 -0
- package/__internal__/src/hooks/useKeysDeprecated/useKeysDeprecated.js.map +1 -0
- package/__internal__/src/hooks/useKeysDepricated/index.js.map +1 -1
- package/__internal__/src/hooks/useKeysDepricated/useKeysDepricated.d.ts +1 -18
- package/__internal__/src/hooks/useKeysDepricated/useKeysDepricated.js +1 -1
- package/__internal__/src/hooks/useKeysDepricated/useKeysDepricated.js.map +1 -1
- package/__internal__/src/hooks/useResizableContent/helpers.d.ts +1 -1
- package/__internal__/src/hooks/useResizableContent/helpers.js +1 -1
- package/__internal__/src/hooks/useResizableContent/helpers.js.map +1 -1
- package/__internal__/src/hooks/useResizableContent/useResizableContent.js +1 -1
- package/__internal__/src/hooks/useResizableContent/useResizableContent.js.map +1 -1
- package/__internal__/src/hooks/useSelect/useSelect.d.ts +1 -1
- package/__internal__/src/hooks/useSelect/useSelect.js +1 -1
- package/__internal__/src/hooks/useSelect/useSelect.js.map +1 -1
- package/__internal__/src/hooks/useVirtualScroll/helpers.js +2 -0
- package/__internal__/src/hooks/useVirtualScroll/helpers.js.map +1 -0
- package/__internal__/src/hooks/useVirtualScroll/useVirtualScroll.d.ts +1 -1
- package/__internal__/src/hooks/useVirtualScroll/useVirtualScroll.js +1 -1
- package/__internal__/src/hooks/useVirtualScroll/useVirtualScroll.js.map +1 -1
- package/__internal__/src/mixs/MixPopoverAnimate/MixPopoverAnimate.css +1 -1
- package/__internal__/src/uiKit/components/ThemePreview/ThemePreview.js +1 -1
- package/__internal__/src/uiKit/components/ThemePreview/ThemePreview.js.map +1 -1
- package/__internal__/src/uiKit/components/ThemePreview/helpers.d.ts +4 -4
- package/__internal__/src/uiKit/components/ThemePreview/helpers.js +1 -1
- package/__internal__/src/uiKit/components/ThemePreview/helpers.js.map +1 -1
- package/__internal__/src/utils/date/index.d.ts +1 -1
- package/__internal__/src/utils/date/index.js +1 -1
- package/__internal__/src/utils/date/index.js.map +1 -1
- package/__internal__/src/utils/date/isDisableDate.js +1 -1
- package/__internal__/src/utils/date/isDisableDate.js.map +1 -1
- package/__internal__/src/utils/date/{isInMinMaxDade.js → isInMinMaxDate.js} +1 -1
- package/__internal__/src/utils/date/{isInMinMaxDade.js.map → isInMinMaxDate.js.map} +1 -1
- package/__internal__/src/utils/getGroups.d.ts +3 -3
- package/__internal__/src/utils/getGroups.js +1 -1
- package/__internal__/src/utils/getGroups.js.map +1 -1
- package/__internal__/src/utils/types/AutoComplete.js.map +1 -1
- package/__internal__/src/utils/types/KeyCode.d.ts +3 -3
- package/__internal__/src/utils/types/KeyCode.js.map +1 -1
- package/package.json +1 -1
- package/useBreakpointsDeprecated/index.d.ts +1 -0
- package/useBreakpointsDeprecated/index.js +1 -0
- package/useComponentBreakpointsDeprecated/index.d.ts +1 -0
- package/useComponentBreakpointsDeprecated/index.js +1 -0
- package/useHideElementsInLineDeprecated/index.d.ts +1 -0
- package/useHideElementsInLineDeprecated/index.js +1 -0
- package/useKeysDeprecated/index.d.ts +1 -0
- package/useKeysDeprecated/index.js +1 -0
- package/__internal__/src/components/DragNDropFieldCanary/renderCildren.d.ts +0 -3
- package/__internal__/src/components/DragNDropFieldCanary/renderCildren.js +0 -2
- package/__internal__/src/components/DragNDropFieldCanary/renderCildren.js.map +0 -1
- package/__internal__/src/components/ListCanary/ListBox/mapVerticalSpase.js +0 -2
- package/__internal__/src/components/ListCanary/ListBox/mapVerticalSpase.js.map +0 -1
- package/__internal__/src/components/TextFieldCanary/TextField.js.map +0 -1
- package/__internal__/src/hooks/useVirtualScroll/hellpers.js +0 -2
- package/__internal__/src/hooks/useVirtualScroll/hellpers.js.map +0 -1
- package/__internal__/src/uiKit/components/StoryBookExample/StoryBookExample.css +0 -1
- package/__internal__/src/uiKit/components/StoryBookExample/StoryBookExample.d.ts +0 -6
- package/__internal__/src/uiKit/components/StoryBookExample/StoryBookExample.js +0 -2
- package/__internal__/src/uiKit/components/StoryBookExample/StoryBookExample.js.map +0 -1
- /package/__internal__/src/components/TextFieldCanary/{TextField.d.ts → TextFieldCanary.d.ts} +0 -0
- /package/__internal__/src/hooks/{useBreakpointsDepricated → useBreakpointsDeprecated}/addPrefix.d.ts +0 -0
- /package/__internal__/src/hooks/{useBreakpointsDepricated → useBreakpointsDeprecated}/addPrefix.js +0 -0
- /package/__internal__/src/hooks/{useBreakpointsDepricated → useBreakpointsDeprecated}/getLastPoint.d.ts +0 -0
- /package/__internal__/src/hooks/{useBreakpointsDepricated → useBreakpointsDeprecated}/getLastPoint.js +0 -0
- /package/__internal__/src/hooks/{useBreakpointsDepricated → useBreakpointsDeprecated}/mapping.d.ts +0 -0
- /package/__internal__/src/hooks/{useBreakpointsDepricated → useBreakpointsDeprecated}/mapping.js +0 -0
- /package/__internal__/src/hooks/{useBreakpointsDepricated → useBreakpointsDeprecated}/types.d.ts +0 -0
- /package/__internal__/src/hooks/{useBreakpointsDepricated → useBreakpointsDeprecated}/types.js +0 -0
- /package/__internal__/src/hooks/useVirtualScroll/{hellpers.d.ts → helpers.d.ts} +0 -0
- /package/__internal__/src/utils/date/{isInMinMaxDade.d.ts → isInMinMaxDate.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSelect.js","names":["useCallback","useEffect","useLayoutEffect","useMemo","useRef","useState","useClickOutside","useDebounce","useKeys","useMutableRef","usePrevious","useRefs","getCountedGroups","getGroups","scrollToIndex","useHoistedState","isMultipleParams","params","multiple","isNotMultipleParams","actions","setOpen","setSearch","highlightIndex","initialState","searchValue","resolvedSearchValue","isOpen","highlightedIndex","scrollToHighlighted","isOptionForCreate","Object","prototype","hasOwnProperty","call","isNotOptionForCreate","isOptionForSelectAll","useSelect","items","dropdownRef","controlRef","disabled","getItemLabel","getItemKey","searchFunction","getItemGroupKey","groups","selectAll","getGroupKey","sortGroups","getItemDisabled","onFocus","onBlur","searchValueProp","onDropdownOpen","onSearchValueChange","dropdownOpen","ignoreOutsideClicksRefs","inputRef","isFocused","setIsFocused","value","Array","isArray","setState","onSearchValueChangeRef","searchFunctionDefault","item","toLocaleLowerCase","indexOf","fiteredOptions","filter","onCreate","length","label","__optionForCreate","filteredOptions","optionForCreate","visibleItems","resultGroups","maxHighlightIndex","optionsRefs","notFound","flag","group","hasItems","allItemsSelected","el","find","getSelectedOptionIndex","index","newIsOpen","old","setResolvedSearch","prevIsOpen","indexForHighlight","newIndex","Math","min","max","currentHighlightIndex","removeValue","e","valueItem","stopPropagation","newValue","val","onChange","some","onChangeAll","parametrs","nonDisabledItems","currentGroupValues","withoutGroupValues","forEach","push","clearValue","results","ArrowUp","_","preventDefault","ArrowDown","getKeyProps","PageUp","PageDown","Home","End","Enter","getData","couter","Escape","Tab","Backspace","isActive","ignoreClicksInsideRefs","handler","current","scrollTo","top","getOptionProps","keyPrefix","onClick","onMouseEnter","active","hovered","key","getItems","groupKey","handleInputFocus","handleInputBlur","focus","handleToggleDropdown","handleInputClick","handleInputChange","target","getHandleRemoveValue"],"sources":["../../../../../../src/components/SelectComponents/useSelect/useSelect.ts"],"sourcesContent":["import React, {\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport { useClickOutside } from '##/hooks/useClickOutside';\nimport { useDebounce } from '##/hooks/useDebounce';\nimport { KeyHandler, useKeys } from '##/hooks/useKeysDepricated';\nimport { useMutableRef } from '##/hooks/useMutableRef';\nimport { usePrevious } from '##/hooks/usePrevious';\nimport { useRefs } from '##/hooks/useRefs';\nimport {\n CountedGroup,\n getCountedGroups,\n getGroups,\n SelectAllItem,\n} from '##/utils/getGroups';\n\nimport { scrollToIndex, useHoistedState } from './helpers';\n\ntype IndexForHighlight = number | ((oldIndex: number) => number);\n\ntype Group<ITEM, GROUP> = {\n items: ITEM[];\n key: string | number;\n group?: GROUP;\n};\ntype GetItemGroupKey<ITEM> = (item: ITEM) => string | number | undefined;\ntype GetGroupKey<GROUP> = (item: GROUP) => string | number | undefined;\ntype SortGroups<ITEM, GROUP> = (\n a: Group<ITEM, GROUP>,\n b: Group<ITEM, GROUP>,\n) => number;\n\ntype OnChangeProp<ITEM, MULTIPLE extends boolean> = (\n value: (MULTIPLE extends true ? ITEM[] : ITEM) | null,\n props: {\n e: React.SyntheticEvent;\n },\n) => void;\n\ntype ValueProp<ITEM, MULTIPLE extends boolean> =\n | (MULTIPLE extends true ? ITEM[] : ITEM)\n | null\n | undefined;\n\nexport type OptionForCreate = {\n label: string;\n __optionForCreate: boolean;\n};\n\nexport type SelectProps<ITEM, GROUP, MULTIPLE extends boolean> = {\n getItemGroupKey?: GetItemGroupKey<ITEM> | undefined;\n getGroupKey?: GetGroupKey<GROUP>;\n sortGroups?: SortGroups<ITEM, GROUP>;\n groups?: GROUP[];\n items: ITEM[];\n dropdownRef: React.MutableRefObject<HTMLDivElement | null>;\n controlRef: React.MutableRefObject<HTMLDivElement | null>;\n disabled?: boolean;\n selectAll?: boolean;\n getItemLabel: (item: ITEM) => string;\n getItemKey: (item: ITEM) => string | number;\n getItemDisabled?: (item: ITEM) => boolean | undefined;\n searchFunction?: (item: ITEM, searchValue: string) => boolean;\n onCreate?: (\n label: string,\n props: { e: React.SyntheticEvent; label: string },\n ) => void;\n onFocus?: React.FocusEventHandler<HTMLInputElement>;\n onBlur?: React.FocusEventHandler<HTMLInputElement>;\n multiple: boolean;\n searchValue?: string;\n onChange: OnChangeProp<ITEM, MULTIPLE>;\n value: ValueProp<ITEM, MULTIPLE>;\n dropdownOpen?: boolean;\n onDropdownOpen?: (isOpen: boolean) => void;\n onSearchValueChange?: (value: string) => void;\n ignoreOutsideClicksRefs?: ReadonlyArray<React.RefObject<HTMLElement>>;\n};\n\nexport type OptionProps<ITEM> = {\n index: number;\n item: ITEM | OptionForCreate | SelectAllItem;\n keyPrefix: string | number;\n};\n\nexport type GetOptionPropsResult = {\n onClick: (e: React.MouseEvent) => void;\n onMouseEnter: (e: React.MouseEvent) => void;\n active: boolean;\n hovered: boolean;\n key: string | number;\n};\n\nconst isMultipleParams = <ITEM, GROUP>(\n params: SelectProps<ITEM, GROUP, boolean>,\n): params is SelectProps<ITEM, GROUP, true> => {\n return params.multiple;\n};\n\nconst isNotMultipleParams = <ITEM, GROUP>(\n params: SelectProps<ITEM, GROUP, boolean>,\n): params is SelectProps<ITEM, GROUP, false> => {\n return !params.multiple;\n};\n\nconst actions = {\n setOpen: 'setOpen',\n setSearch: 'setSearch',\n highlightIndex: 'highlightIndex',\n};\n\nconst initialState = {\n searchValue: '',\n resolvedSearchValue: '',\n isOpen: false,\n highlightedIndex: 0,\n scrollToHighlighted: false,\n};\n\nexport const isOptionForCreate = <ITEM, GROUP>(\n params: OptionForCreate | Group<ITEM, GROUP> | ITEM,\n): params is OptionForCreate => {\n return (\n params && Object.prototype.hasOwnProperty.call(params, '__optionForCreate')\n );\n};\n\nexport const isNotOptionForCreate = <ITEM, GROUP>(\n params: OptionForCreate | Group<ITEM, GROUP>,\n): params is Group<ITEM, GROUP> => {\n return (\n params && !Object.prototype.hasOwnProperty.call(params, '__optionForCreate')\n );\n};\n\nexport const isOptionForSelectAll = <ITEM>(\n params: SelectAllItem | ITEM,\n): params is SelectAllItem => {\n return (\n params && Object.prototype.hasOwnProperty.call(params, '__optionSelctAll')\n );\n};\n\nexport function useSelect<ITEM, GROUP, MULTIPLE extends boolean>(\n params: SelectProps<ITEM, GROUP, MULTIPLE>,\n) {\n const {\n items,\n dropdownRef,\n controlRef,\n disabled = false,\n multiple = false,\n getItemLabel,\n getItemKey,\n searchFunction,\n getItemGroupKey,\n groups,\n selectAll = false,\n getGroupKey,\n sortGroups,\n getItemDisabled,\n onFocus,\n onBlur,\n searchValue: searchValueProp,\n onDropdownOpen,\n onSearchValueChange,\n dropdownOpen,\n ignoreOutsideClicksRefs,\n } = params;\n\n const inputRef = useRef<HTMLInputElement>(null);\n\n const [isFocused, setIsFocused] = useState(false);\n\n const value = useMemo(\n () =>\n (params.value &&\n (Array.isArray(params.value) ? params.value : [params.value])) ||\n [],\n [params.value],\n );\n\n const [\n {\n searchValue,\n isOpen,\n highlightedIndex,\n resolvedSearchValue,\n scrollToHighlighted,\n },\n setState,\n ] = useHoistedState(initialState);\n\n const onSearchValueChangeRef = useMutableRef(onSearchValueChange);\n\n const searchFunctionDefault = (item: ITEM, searchValue: string) =>\n getItemLabel(item)\n .toLocaleLowerCase()\n .indexOf(searchValue.toLocaleLowerCase()) !== -1;\n\n const [filteredOptions, optionForCreate] = useMemo(() => {\n if (resolvedSearchValue && resolvedSearchValue !== '') {\n const fiteredOptions = items.filter((item) =>\n searchFunction\n ? searchFunction(item, resolvedSearchValue)\n : searchFunctionDefault(item, resolvedSearchValue),\n );\n\n const optionForCreate: OptionForCreate = {\n label: searchValue,\n __optionForCreate: true,\n };\n\n return [\n fiteredOptions,\n params.onCreate && !fiteredOptions.length ? optionForCreate : undefined,\n ] as const;\n }\n return [items, undefined] as const;\n }, [items, resolvedSearchValue, params.onCreate]);\n\n const visibleItems = useMemo(() => {\n const resultGroups = getCountedGroups(\n getGroups(\n filteredOptions,\n groups?.length ? getItemGroupKey : undefined,\n groups,\n getGroupKey,\n sortGroups,\n ),\n isMultipleParams(params) ? params.value : [],\n selectAll,\n getItemKey,\n getItemDisabled,\n );\n\n return optionForCreate ? [optionForCreate, ...resultGroups] : resultGroups;\n }, [\n value,\n selectAll,\n filteredOptions,\n groups,\n getItemGroupKey,\n getItemDisabled,\n getGroupKey,\n sortGroups,\n optionForCreate,\n ]);\n\n const maxHighlightIndex =\n // колличество опций\n filteredOptions.length +\n // кнопка для создания\n (optionForCreate ? 1 : 0) +\n // кнопки выбрать все\n (selectAll ? visibleItems.length : 0);\n\n const optionsRefs = useRefs<HTMLDivElement>(maxHighlightIndex, [isOpen]);\n\n const notFound = useMemo(() => {\n let flag = false;\n if (searchValue.length > 0) {\n flag =\n visibleItems.filter(\n (group) =>\n isOptionForCreate(group) || group.items.length > 0 || group.group,\n ).length === 0 && !params.onCreate;\n }\n return flag;\n }, [visibleItems]);\n\n const hasItems = items.length !== 0;\n\n const allItemsSelected = useMemo(() => {\n if (isNotMultipleParams(params)) {\n return false;\n }\n if (selectAll) {\n return (\n items.filter((el) =>\n value.find((item) => getItemKey(item) === getItemKey(el)),\n ).length === items.length\n );\n }\n\n return false;\n }, [selectAll, multiple, value, items]);\n\n const getSelectedOptionIndex = (): number => {\n let index = 0;\n if (value.length > 0) {\n for (const group of visibleItems) {\n if (isOptionForCreate(group)) {\n index++;\n // eslint-disable-next-line no-continue\n continue;\n }\n for (const item of group.items) {\n if (isOptionForSelectAll(item)) {\n return index;\n }\n if (getItemKey(item) === getItemKey(value[0])) {\n return index;\n }\n index++;\n }\n }\n }\n\n return 0;\n };\n\n // Actions\n\n const setOpen = useCallback(\n (newIsOpen: boolean) => {\n setState(\n (old) => ({\n ...old,\n isOpen: newIsOpen,\n }),\n actions.setOpen,\n );\n },\n [setState],\n );\n\n const setResolvedSearch = useDebounce((value: string) => {\n setState((old) => {\n if (old.resolvedSearchValue === value) {\n return old;\n }\n return {\n ...old,\n resolvedSearchValue: value,\n };\n }, actions.setSearch);\n }, 300);\n\n const setSearch = useCallback(\n (value: string | undefined) => {\n setState((old) => {\n if (old.searchValue === value) {\n return old;\n }\n return {\n ...old,\n searchValue: value || '',\n };\n }, actions.setSearch);\n setResolvedSearch(value || '');\n },\n [setState, setResolvedSearch],\n );\n\n const prevIsOpen = usePrevious(isOpen);\n\n const highlightIndex = useCallback(\n (indexForHighlight: IndexForHighlight, scrollToHighlighted: boolean) => {\n setState((old) => {\n const newIndex = Math.min(\n Math.max(\n 0,\n typeof indexForHighlight === 'function'\n ? indexForHighlight(old.highlightedIndex)\n : indexForHighlight,\n ),\n maxHighlightIndex - 1,\n );\n\n if (old.highlightedIndex === newIndex) {\n return old;\n }\n\n return {\n ...old,\n highlightedIndex: newIndex,\n scrollToHighlighted,\n };\n }, actions.highlightIndex);\n },\n [filteredOptions, setState, optionForCreate],\n );\n\n useLayoutEffect(() => {\n if (value !== null && !prevIsOpen && isOpen) {\n const currentHighlightIndex = getSelectedOptionIndex();\n if (filteredOptions.length > 0) {\n scrollToIndex(currentHighlightIndex, dropdownRef, optionsRefs, () =>\n highlightIndex(0, false),\n );\n }\n }\n });\n\n const removeValue = (e: React.SyntheticEvent, valueItem: ITEM) => {\n e.stopPropagation();\n if (isMultipleParams(params)) {\n const newValue = params.value?.filter(\n (item) => getItemKey(item) !== getItemKey(valueItem),\n );\n const val = newValue?.length ? newValue : null;\n params.onChange(val, {\n e,\n });\n }\n };\n\n const onChange = (e: React.SyntheticEvent, item: ITEM) => {\n if (getItemDisabled && getItemDisabled(item)) {\n return;\n }\n if (isMultipleParams(params)) {\n const newValue = value.some(\n (value) => getItemKey(value) === getItemKey(item),\n )\n ? value.filter((value) => getItemKey(value) !== getItemKey(item))\n : [...value, item];\n const val = newValue?.length ? newValue : null;\n params.onChange(val, { e });\n }\n if (isNotMultipleParams(params)) {\n params.onChange(item, { e });\n setOpen(false);\n setSearch('');\n }\n };\n\n const onChangeAll = (parametrs: {\n e: React.SyntheticEvent;\n items: ITEM[];\n }) => {\n const { e, items } = parametrs;\n if (isMultipleParams(params)) {\n const nonDisabledItems = getItemDisabled\n ? items.filter((item) => !getItemDisabled(item))\n : items;\n\n const currentGroupValues: ITEM[] = [];\n const withoutGroupValues: ITEM[] = [];\n value.forEach((el) => {\n if (\n nonDisabledItems.find((item) => getItemKey(el) === getItemKey(item))\n ) {\n currentGroupValues.push(el);\n } else {\n withoutGroupValues.push(el);\n }\n });\n if (currentGroupValues.length === nonDisabledItems.length) {\n params.onChange(withoutGroupValues, { e });\n } else {\n const val = [...withoutGroupValues, ...nonDisabledItems];\n params.onChange(val, {\n e,\n });\n }\n }\n };\n\n const onCreate = (e: React.SyntheticEvent, label: string) => {\n params.onCreate && params.onCreate(label, { e, label });\n setOpen(false);\n setSearch('');\n };\n\n // Handlers\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>): void => {\n if (!disabled && !(!multiple && value.length > 0)) {\n setSearch(e.target.value);\n setOpen(true);\n }\n };\n\n const handleInputClick = (): void => {\n !disabled && setOpen(!isOpen);\n\n if (multiple) {\n inputRef.current?.focus();\n }\n };\n\n const clearValue = (e: React.SyntheticEvent) => {\n if (isMultipleParams(params)) {\n const results = value?.filter((item) => getItemDisabled?.(item));\n const val = results && results.length > 0 ? results : null;\n params.onChange(val, {\n e,\n });\n }\n if (isNotMultipleParams(params)) {\n params.onChange(null, { e });\n }\n setSearch('');\n };\n\n const getHandleRemoveValue = (item: ITEM) => (e: React.SyntheticEvent) =>\n removeValue(e, item);\n\n // Prop Getters\n\n const ArrowUp: KeyHandler = (_, e): void => {\n e.preventDefault();\n !disabled && setOpen(true);\n highlightIndex((old) => old - 1, true);\n };\n\n const ArrowDown: KeyHandler = (_, e): void => {\n e.preventDefault();\n !disabled && setOpen(true);\n highlightIndex((old) => old + 1, true);\n };\n\n const Enter: KeyHandler = (_, e): void => {\n if (isOpen) {\n if (searchValue || filteredOptions[highlightedIndex]) {\n e.preventDefault();\n }\n\n const getData = (\n index: number,\n ): [\n CountedGroup<ITEM, GROUP> | undefined,\n SelectAllItem | OptionForCreate | ITEM | undefined,\n ] => {\n let couter = 0;\n for (const group of visibleItems) {\n if (isOptionForCreate(group)) {\n couter++;\n return [undefined, group];\n }\n if (group.items.length + couter > index) {\n return [group, group.items[index - couter]];\n }\n couter += group.items.length;\n }\n return [undefined, undefined];\n };\n\n const [group, item] = getData(highlightedIndex);\n\n if (isOptionForCreate(item)) {\n onCreate(e, item.label);\n return;\n }\n\n if (isOptionForSelectAll(item)) {\n onChangeAll({\n e,\n items:\n (group?.items.filter(\n (el) => !isOptionForSelectAll(el),\n ) as ITEM[]) ?? [],\n });\n return;\n }\n\n if (item) {\n onChange(e, item);\n }\n } else {\n setOpen(true);\n }\n };\n\n const Escape: KeyHandler = (): void => {\n setOpen(false);\n };\n\n const Tab: KeyHandler = (_, e): void => {\n if (isOpen) {\n e.preventDefault();\n setOpen(false);\n }\n };\n\n const Backspace: KeyHandler = (_, e): void => {\n if (searchValue) {\n return;\n }\n if (multiple) {\n removeValue(e, value[value.length - 1]);\n } else {\n clearValue(e);\n }\n };\n\n const getKeyProps = useKeys({\n ArrowUp,\n ArrowDown,\n PageUp: ArrowUp,\n PageDown: ArrowDown,\n Home: ArrowUp,\n End: ArrowDown,\n Enter,\n Escape,\n Tab,\n Backspace,\n });\n\n const getOptionProps = ({\n index,\n item,\n keyPrefix,\n }: OptionProps<ITEM>): GetOptionPropsResult => {\n if (isOptionForCreate(item)) {\n return {\n onClick: (e: React.SyntheticEvent) => {\n onCreate(e, item.label);\n },\n onMouseEnter: () => {\n highlightIndex(index, false);\n },\n active: false,\n hovered: index === highlightedIndex,\n key: `${keyPrefix}__optionForCreate`,\n };\n }\n if (isOptionForSelectAll(item)) {\n const getItems = (): ITEM[] => {\n for (const group of visibleItems) {\n if (isOptionForCreate(group)) {\n break;\n }\n if (group.key === item.groupKey) {\n return (\n (group?.items.filter(\n (el) => !isOptionForSelectAll(el),\n ) as ITEM[]) ?? []\n );\n }\n }\n return [];\n };\n return {\n onClick: (e: React.SyntheticEvent) => {\n onChangeAll({ e, items: getItems() });\n },\n onMouseEnter: () => {\n highlightIndex(index, false);\n },\n active: false,\n hovered: index === highlightedIndex,\n key: `${keyPrefix}__optionForSelectAll`,\n };\n }\n const key = getItemKey(item);\n return {\n onClick: (e: React.SyntheticEvent) => {\n onChange(e, item);\n },\n onMouseEnter: () => {\n highlightIndex(index, false);\n },\n active: Boolean(value.find((item) => getItemKey(item) === key)),\n hovered: index === highlightedIndex,\n key: `${keyPrefix}${key}`,\n };\n };\n\n useClickOutside({\n isActive: isOpen,\n ignoreClicksInsideRefs: [\n dropdownRef,\n controlRef,\n ...(ignoreOutsideClicksRefs || []),\n ],\n handler: () => {\n setOpen(false);\n },\n });\n\n useEffect(() => {\n if (disabled) {\n setOpen(false);\n }\n }, [disabled]);\n\n useEffect(() => {\n const currentHighlightIndex = getSelectedOptionIndex();\n highlightIndex(currentHighlightIndex, true);\n }, [highlightIndex]);\n\n useEffect(() => {\n if (filteredOptions.length > 0 && scrollToHighlighted) {\n scrollToIndex(highlightedIndex, dropdownRef, optionsRefs, () =>\n highlightIndex(0, false),\n );\n }\n }, [highlightedIndex]);\n\n const handleInputFocus = (e: React.FocusEvent<HTMLInputElement>): void => {\n if (!disabled) {\n if (!isFocused) {\n setIsFocused(true);\n }\n if (typeof onFocus === 'function') {\n onFocus(e);\n }\n }\n };\n\n const handleInputBlur = (e: React.FocusEvent<HTMLInputElement>): void => {\n if (isOpen) {\n inputRef.current?.focus();\n return;\n }\n\n if (isFocused) {\n setIsFocused(false);\n }\n\n if (typeof onBlur === 'function') {\n onBlur(e);\n }\n };\n\n const handleToggleDropdown = (): void => {\n if (isOpen) {\n setOpen(false);\n setIsFocused(false);\n } else {\n setOpen(true);\n setIsFocused(true);\n inputRef.current?.focus();\n }\n };\n\n useEffect(() => {\n setSearch(searchValueProp);\n }, [searchValueProp]);\n\n useEffect(() => {\n dropdownRef.current?.scrollTo({ top: 0 });\n }, [resolvedSearchValue]);\n\n useEffect(() => {\n onDropdownOpen?.(isOpen);\n }, [isOpen]);\n\n useEffect(() => {\n onSearchValueChangeRef.current?.(searchValue);\n }, [searchValue]);\n\n useEffect(() => {\n setOpen(dropdownOpen || false);\n }, [dropdownOpen]);\n\n return {\n isOpen,\n isFocused,\n highlightedIndex,\n visibleItems,\n highlightIndex,\n getOptionProps,\n handleInputFocus,\n handleInputBlur,\n handleToggleDropdown,\n handleInputClick,\n inputRef,\n getKeyProps,\n handleInputChange,\n searchValue,\n clearValue,\n getHandleRemoveValue,\n notFound,\n hasItems,\n allItemsSelected,\n optionsRefs,\n };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useSelect.js","names":["useCallback","useEffect","useLayoutEffect","useMemo","useRef","useState","useClickOutside","useDebounce","useKeys","useMutableRef","usePrevious","useRefs","getCountedGroups","getGroups","scrollToIndex","useHoistedState","isMultipleParams","params","multiple","isNotMultipleParams","actions","setOpen","setSearch","highlightIndex","initialState","searchValue","resolvedSearchValue","isOpen","highlightedIndex","scrollToHighlighted","isOptionForCreate","Object","prototype","hasOwnProperty","call","isNotOptionForCreate","isOptionForSelectAll","useSelect","items","dropdownRef","controlRef","disabled","getItemLabel","getItemKey","searchFunction","getItemGroupKey","groups","selectAll","getGroupKey","sortGroups","getItemDisabled","onFocus","onBlur","searchValueProp","onDropdownOpen","onSearchValueChange","dropdownOpen","ignoreOutsideClicksRefs","inputRef","isFocused","setIsFocused","value","Array","isArray","setState","onSearchValueChangeRef","searchFunctionDefault","item","toLocaleLowerCase","indexOf","filteredOptions","filter","onCreate","length","label","__optionForCreate","optionForCreate","visibleItems","resultGroups","maxHighlightIndex","optionsRefs","notFound","flag","group","hasItems","allItemsSelected","el","find","getSelectedOptionIndex","index","newIsOpen","old","setResolvedSearch","prevIsOpen","indexForHighlight","newIndex","Math","min","max","currentHighlightIndex","removeValue","e","valueItem","stopPropagation","newValue","val","onChange","some","onChangeAll","parametrs","nonDisabledItems","currentGroupValues","withoutGroupValues","forEach","push","clearValue","results","ArrowUp","_","preventDefault","ArrowDown","getKeyProps","PageUp","PageDown","Home","End","Enter","getData","counter","Escape","Tab","Backspace","isActive","ignoreClicksInsideRefs","handler","current","scrollTo","top","getOptionProps","keyPrefix","onClick","onMouseEnter","active","hovered","key","getItems","groupKey","handleInputFocus","handleInputBlur","focus","handleToggleDropdown","handleInputClick","handleInputChange","target","getHandleRemoveValue"],"sources":["../../../../../../src/components/SelectComponents/useSelect/useSelect.ts"],"sourcesContent":["import React, {\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport { useClickOutside } from '##/hooks/useClickOutside';\nimport { useDebounce } from '##/hooks/useDebounce';\nimport { KeyHandler, useKeys } from '##/hooks/useKeysDeprecated';\nimport { useMutableRef } from '##/hooks/useMutableRef';\nimport { usePrevious } from '##/hooks/usePrevious';\nimport { useRefs } from '##/hooks/useRefs';\nimport {\n CountedGroup,\n getCountedGroups,\n getGroups,\n SelectAllItem,\n} from '##/utils/getGroups';\n\nimport { scrollToIndex, useHoistedState } from './helpers';\n\ntype IndexForHighlight = number | ((oldIndex: number) => number);\n\ntype Group<ITEM, GROUP> = {\n items: ITEM[];\n key: string | number;\n group?: GROUP;\n};\ntype GetItemGroupKey<ITEM> = (item: ITEM) => string | number | undefined;\ntype GetGroupKey<GROUP> = (item: GROUP) => string | number | undefined;\ntype SortGroups<ITEM, GROUP> = (\n a: Group<ITEM, GROUP>,\n b: Group<ITEM, GROUP>,\n) => number;\n\ntype OnChangeProp<ITEM, MULTIPLE extends boolean> = (\n value: (MULTIPLE extends true ? ITEM[] : ITEM) | null,\n props: {\n e: React.SyntheticEvent;\n },\n) => void;\n\ntype ValueProp<ITEM, MULTIPLE extends boolean> =\n | (MULTIPLE extends true ? ITEM[] : ITEM)\n | null\n | undefined;\n\nexport type OptionForCreate = {\n label: string;\n __optionForCreate: boolean;\n};\n\nexport type SelectProps<ITEM, GROUP, MULTIPLE extends boolean> = {\n getItemGroupKey?: GetItemGroupKey<ITEM> | undefined;\n getGroupKey?: GetGroupKey<GROUP>;\n sortGroups?: SortGroups<ITEM, GROUP>;\n groups?: GROUP[];\n items: ITEM[];\n dropdownRef: React.MutableRefObject<HTMLDivElement | null>;\n controlRef: React.MutableRefObject<HTMLDivElement | null>;\n disabled?: boolean;\n selectAll?: boolean;\n getItemLabel: (item: ITEM) => string;\n getItemKey: (item: ITEM) => string | number;\n getItemDisabled?: (item: ITEM) => boolean | undefined;\n searchFunction?: (item: ITEM, searchValue: string) => boolean;\n onCreate?: (\n label: string,\n props: { e: React.SyntheticEvent; label: string },\n ) => void;\n onFocus?: React.FocusEventHandler<HTMLInputElement>;\n onBlur?: React.FocusEventHandler<HTMLInputElement>;\n multiple: boolean;\n searchValue?: string;\n onChange: OnChangeProp<ITEM, MULTIPLE>;\n value: ValueProp<ITEM, MULTIPLE>;\n dropdownOpen?: boolean;\n onDropdownOpen?: (isOpen: boolean) => void;\n onSearchValueChange?: (value: string) => void;\n ignoreOutsideClicksRefs?: ReadonlyArray<React.RefObject<HTMLElement>>;\n};\n\nexport type OptionProps<ITEM> = {\n index: number;\n item: ITEM | OptionForCreate | SelectAllItem;\n keyPrefix: string | number;\n};\n\nexport type GetOptionPropsResult = {\n onClick: (e: React.MouseEvent) => void;\n onMouseEnter: (e: React.MouseEvent) => void;\n active: boolean;\n hovered: boolean;\n key: string | number;\n};\n\nconst isMultipleParams = <ITEM, GROUP>(\n params: SelectProps<ITEM, GROUP, boolean>,\n): params is SelectProps<ITEM, GROUP, true> => {\n return params.multiple;\n};\n\nconst isNotMultipleParams = <ITEM, GROUP>(\n params: SelectProps<ITEM, GROUP, boolean>,\n): params is SelectProps<ITEM, GROUP, false> => {\n return !params.multiple;\n};\n\nconst actions = {\n setOpen: 'setOpen',\n setSearch: 'setSearch',\n highlightIndex: 'highlightIndex',\n};\n\nconst initialState = {\n searchValue: '',\n resolvedSearchValue: '',\n isOpen: false,\n highlightedIndex: 0,\n scrollToHighlighted: false,\n};\n\nexport const isOptionForCreate = <ITEM, GROUP>(\n params: OptionForCreate | Group<ITEM, GROUP> | ITEM,\n): params is OptionForCreate => {\n return (\n params && Object.prototype.hasOwnProperty.call(params, '__optionForCreate')\n );\n};\n\nexport const isNotOptionForCreate = <ITEM, GROUP>(\n params: OptionForCreate | Group<ITEM, GROUP>,\n): params is Group<ITEM, GROUP> => {\n return (\n params && !Object.prototype.hasOwnProperty.call(params, '__optionForCreate')\n );\n};\n\nexport const isOptionForSelectAll = <ITEM>(\n params: SelectAllItem | ITEM,\n): params is SelectAllItem => {\n return (\n params && Object.prototype.hasOwnProperty.call(params, '__optionSelectAll')\n );\n};\n\nexport function useSelect<ITEM, GROUP, MULTIPLE extends boolean>(\n params: SelectProps<ITEM, GROUP, MULTIPLE>,\n) {\n const {\n items,\n dropdownRef,\n controlRef,\n disabled = false,\n multiple = false,\n getItemLabel,\n getItemKey,\n searchFunction,\n getItemGroupKey,\n groups,\n selectAll = false,\n getGroupKey,\n sortGroups,\n getItemDisabled,\n onFocus,\n onBlur,\n searchValue: searchValueProp,\n onDropdownOpen,\n onSearchValueChange,\n dropdownOpen,\n ignoreOutsideClicksRefs,\n } = params;\n\n const inputRef = useRef<HTMLInputElement>(null);\n\n const [isFocused, setIsFocused] = useState(false);\n\n const value = useMemo(\n () =>\n (params.value &&\n (Array.isArray(params.value) ? params.value : [params.value])) ||\n [],\n [params.value],\n );\n\n const [\n {\n searchValue,\n isOpen,\n highlightedIndex,\n resolvedSearchValue,\n scrollToHighlighted,\n },\n setState,\n ] = useHoistedState(initialState);\n\n const onSearchValueChangeRef = useMutableRef(onSearchValueChange);\n\n const searchFunctionDefault = (item: ITEM, searchValue: string) =>\n getItemLabel(item)\n .toLocaleLowerCase()\n .indexOf(searchValue.toLocaleLowerCase()) !== -1;\n\n const [filteredOptions, optionForCreate] = useMemo(() => {\n if (resolvedSearchValue && resolvedSearchValue !== '') {\n const filteredOptions = items.filter((item) =>\n searchFunction\n ? searchFunction(item, resolvedSearchValue)\n : searchFunctionDefault(item, resolvedSearchValue),\n );\n\n const optionForCreate: OptionForCreate = {\n label: searchValue,\n __optionForCreate: true,\n };\n\n return [\n filteredOptions,\n params.onCreate && !filteredOptions.length\n ? optionForCreate\n : undefined,\n ] as const;\n }\n return [items, undefined] as const;\n }, [items, resolvedSearchValue, params.onCreate]);\n\n const visibleItems = useMemo(() => {\n const resultGroups = getCountedGroups(\n getGroups(\n filteredOptions,\n groups?.length ? getItemGroupKey : undefined,\n groups,\n getGroupKey,\n sortGroups,\n ),\n isMultipleParams(params) ? params.value : [],\n selectAll,\n getItemKey,\n getItemDisabled,\n );\n\n return optionForCreate ? [optionForCreate, ...resultGroups] : resultGroups;\n }, [\n value,\n selectAll,\n filteredOptions,\n groups,\n getItemGroupKey,\n getItemDisabled,\n getGroupKey,\n sortGroups,\n optionForCreate,\n ]);\n\n const maxHighlightIndex =\n // количество опций\n filteredOptions.length +\n // кнопка для создания\n (optionForCreate ? 1 : 0) +\n // кнопки выбрать все\n (selectAll ? visibleItems.length : 0);\n\n const optionsRefs = useRefs<HTMLDivElement>(maxHighlightIndex, [isOpen]);\n\n const notFound = useMemo(() => {\n let flag = false;\n if (searchValue.length > 0) {\n flag =\n visibleItems.filter(\n (group) =>\n isOptionForCreate(group) || group.items.length > 0 || group.group,\n ).length === 0 && !params.onCreate;\n }\n return flag;\n }, [visibleItems]);\n\n const hasItems = items.length !== 0;\n\n const allItemsSelected = useMemo(() => {\n if (isNotMultipleParams(params)) {\n return false;\n }\n if (selectAll) {\n return (\n items.filter((el) =>\n value.find((item) => getItemKey(item) === getItemKey(el)),\n ).length === items.length\n );\n }\n\n return false;\n }, [selectAll, multiple, value, items]);\n\n const getSelectedOptionIndex = (): number => {\n let index = 0;\n if (value.length > 0) {\n for (const group of visibleItems) {\n if (isOptionForCreate(group)) {\n index++;\n // eslint-disable-next-line no-continue\n continue;\n }\n for (const item of group.items) {\n if (isOptionForSelectAll(item)) {\n return index;\n }\n if (getItemKey(item) === getItemKey(value[0])) {\n return index;\n }\n index++;\n }\n }\n }\n\n return 0;\n };\n\n // Actions\n\n const setOpen = useCallback(\n (newIsOpen: boolean) => {\n setState(\n (old) => ({\n ...old,\n isOpen: newIsOpen,\n }),\n actions.setOpen,\n );\n },\n [setState],\n );\n\n const setResolvedSearch = useDebounce((value: string) => {\n setState((old) => {\n if (old.resolvedSearchValue === value) {\n return old;\n }\n return {\n ...old,\n resolvedSearchValue: value,\n };\n }, actions.setSearch);\n }, 300);\n\n const setSearch = useCallback(\n (value: string | undefined) => {\n setState((old) => {\n if (old.searchValue === value) {\n return old;\n }\n return {\n ...old,\n searchValue: value || '',\n };\n }, actions.setSearch);\n setResolvedSearch(value || '');\n },\n [setState, setResolvedSearch],\n );\n\n const prevIsOpen = usePrevious(isOpen);\n\n const highlightIndex = useCallback(\n (indexForHighlight: IndexForHighlight, scrollToHighlighted: boolean) => {\n setState((old) => {\n const newIndex = Math.min(\n Math.max(\n 0,\n typeof indexForHighlight === 'function'\n ? indexForHighlight(old.highlightedIndex)\n : indexForHighlight,\n ),\n maxHighlightIndex - 1,\n );\n\n if (old.highlightedIndex === newIndex) {\n return old;\n }\n\n return {\n ...old,\n highlightedIndex: newIndex,\n scrollToHighlighted,\n };\n }, actions.highlightIndex);\n },\n [filteredOptions, setState, optionForCreate],\n );\n\n useLayoutEffect(() => {\n if (value !== null && !prevIsOpen && isOpen) {\n const currentHighlightIndex = getSelectedOptionIndex();\n if (filteredOptions.length > 0) {\n scrollToIndex(currentHighlightIndex, dropdownRef, optionsRefs, () =>\n highlightIndex(0, false),\n );\n }\n }\n });\n\n const removeValue = (e: React.SyntheticEvent, valueItem: ITEM) => {\n e.stopPropagation();\n if (isMultipleParams(params)) {\n const newValue = params.value?.filter(\n (item) => getItemKey(item) !== getItemKey(valueItem),\n );\n const val = newValue?.length ? newValue : null;\n params.onChange(val, {\n e,\n });\n }\n };\n\n const onChange = (e: React.SyntheticEvent, item: ITEM) => {\n if (getItemDisabled && getItemDisabled(item)) {\n return;\n }\n if (isMultipleParams(params)) {\n const newValue = value.some(\n (value) => getItemKey(value) === getItemKey(item),\n )\n ? value.filter((value) => getItemKey(value) !== getItemKey(item))\n : [...value, item];\n const val = newValue?.length ? newValue : null;\n params.onChange(val, { e });\n }\n if (isNotMultipleParams(params)) {\n params.onChange(item, { e });\n setOpen(false);\n setSearch('');\n }\n };\n\n const onChangeAll = (parametrs: {\n e: React.SyntheticEvent;\n items: ITEM[];\n }) => {\n const { e, items } = parametrs;\n if (isMultipleParams(params)) {\n const nonDisabledItems = getItemDisabled\n ? items.filter((item) => !getItemDisabled(item))\n : items;\n\n const currentGroupValues: ITEM[] = [];\n const withoutGroupValues: ITEM[] = [];\n value.forEach((el) => {\n if (\n nonDisabledItems.find((item) => getItemKey(el) === getItemKey(item))\n ) {\n currentGroupValues.push(el);\n } else {\n withoutGroupValues.push(el);\n }\n });\n if (currentGroupValues.length === nonDisabledItems.length) {\n params.onChange(withoutGroupValues, { e });\n } else {\n const val = [...withoutGroupValues, ...nonDisabledItems];\n params.onChange(val, {\n e,\n });\n }\n }\n };\n\n const onCreate = (e: React.SyntheticEvent, label: string) => {\n params.onCreate && params.onCreate(label, { e, label });\n setOpen(false);\n setSearch('');\n };\n\n // Handlers\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>): void => {\n if (!disabled && !(!multiple && value.length > 0)) {\n setSearch(e.target.value);\n setOpen(true);\n }\n };\n\n const handleInputClick = (): void => {\n !disabled && setOpen(!isOpen);\n\n if (multiple) {\n inputRef.current?.focus();\n }\n };\n\n const clearValue = (e: React.SyntheticEvent) => {\n if (isMultipleParams(params)) {\n const results = value?.filter((item) => getItemDisabled?.(item));\n const val = results && results.length > 0 ? results : null;\n params.onChange(val, {\n e,\n });\n }\n if (isNotMultipleParams(params)) {\n params.onChange(null, { e });\n }\n setSearch('');\n };\n\n const getHandleRemoveValue = (item: ITEM) => (e: React.SyntheticEvent) =>\n removeValue(e, item);\n\n // Prop Getters\n\n const ArrowUp: KeyHandler = (_, e): void => {\n e.preventDefault();\n !disabled && setOpen(true);\n highlightIndex((old) => old - 1, true);\n };\n\n const ArrowDown: KeyHandler = (_, e): void => {\n e.preventDefault();\n !disabled && setOpen(true);\n highlightIndex((old) => old + 1, true);\n };\n\n const Enter: KeyHandler = (_, e): void => {\n if (isOpen) {\n if (searchValue || filteredOptions[highlightedIndex]) {\n e.preventDefault();\n }\n\n const getData = (\n index: number,\n ): [\n CountedGroup<ITEM, GROUP> | undefined,\n SelectAllItem | OptionForCreate | ITEM | undefined,\n ] => {\n let counter = 0;\n for (const group of visibleItems) {\n if (isOptionForCreate(group)) {\n counter++;\n return [undefined, group];\n }\n if (group.items.length + counter > index) {\n return [group, group.items[index - counter]];\n }\n counter += group.items.length;\n }\n return [undefined, undefined];\n };\n\n const [group, item] = getData(highlightedIndex);\n\n if (isOptionForCreate(item)) {\n onCreate(e, item.label);\n return;\n }\n\n if (isOptionForSelectAll(item)) {\n onChangeAll({\n e,\n items:\n (group?.items.filter(\n (el) => !isOptionForSelectAll(el),\n ) as ITEM[]) ?? [],\n });\n return;\n }\n\n if (item) {\n onChange(e, item);\n }\n } else {\n setOpen(true);\n }\n };\n\n const Escape: KeyHandler = (): void => {\n setOpen(false);\n };\n\n const Tab: KeyHandler = (_, e): void => {\n if (isOpen) {\n e.preventDefault();\n setOpen(false);\n }\n };\n\n const Backspace: KeyHandler = (_, e): void => {\n if (searchValue) {\n return;\n }\n if (multiple) {\n removeValue(e, value[value.length - 1]);\n } else {\n clearValue(e);\n }\n };\n\n const getKeyProps = useKeys({\n ArrowUp,\n ArrowDown,\n PageUp: ArrowUp,\n PageDown: ArrowDown,\n Home: ArrowUp,\n End: ArrowDown,\n Enter,\n Escape,\n Tab,\n Backspace,\n });\n\n const getOptionProps = ({\n index,\n item,\n keyPrefix,\n }: OptionProps<ITEM>): GetOptionPropsResult => {\n if (isOptionForCreate(item)) {\n return {\n onClick: (e: React.SyntheticEvent) => {\n onCreate(e, item.label);\n },\n onMouseEnter: () => {\n highlightIndex(index, false);\n },\n active: false,\n hovered: index === highlightedIndex,\n key: `${keyPrefix}__optionForCreate`,\n };\n }\n if (isOptionForSelectAll(item)) {\n const getItems = (): ITEM[] => {\n for (const group of visibleItems) {\n if (isOptionForCreate(group)) {\n break;\n }\n if (group.key === item.groupKey) {\n return (\n (group?.items.filter(\n (el) => !isOptionForSelectAll(el),\n ) as ITEM[]) ?? []\n );\n }\n }\n return [];\n };\n return {\n onClick: (e: React.SyntheticEvent) => {\n onChangeAll({ e, items: getItems() });\n },\n onMouseEnter: () => {\n highlightIndex(index, false);\n },\n active: false,\n hovered: index === highlightedIndex,\n key: `${keyPrefix}__optionForSelectAll`,\n };\n }\n const key = getItemKey(item);\n return {\n onClick: (e: React.SyntheticEvent) => {\n onChange(e, item);\n },\n onMouseEnter: () => {\n highlightIndex(index, false);\n },\n active: Boolean(value.find((item) => getItemKey(item) === key)),\n hovered: index === highlightedIndex,\n key: `${keyPrefix}${key}`,\n };\n };\n\n useClickOutside({\n isActive: isOpen,\n ignoreClicksInsideRefs: [\n dropdownRef,\n controlRef,\n ...(ignoreOutsideClicksRefs || []),\n ],\n handler: () => {\n setOpen(false);\n },\n });\n\n useEffect(() => {\n if (disabled) {\n setOpen(false);\n }\n }, [disabled]);\n\n useEffect(() => {\n const currentHighlightIndex = getSelectedOptionIndex();\n highlightIndex(currentHighlightIndex, true);\n }, [highlightIndex]);\n\n useEffect(() => {\n if (filteredOptions.length > 0 && scrollToHighlighted) {\n scrollToIndex(highlightedIndex, dropdownRef, optionsRefs, () =>\n highlightIndex(0, false),\n );\n }\n }, [highlightedIndex]);\n\n const handleInputFocus = (e: React.FocusEvent<HTMLInputElement>): void => {\n if (!disabled) {\n if (!isFocused) {\n setIsFocused(true);\n }\n if (typeof onFocus === 'function') {\n onFocus(e);\n }\n }\n };\n\n const handleInputBlur = (e: React.FocusEvent<HTMLInputElement>): void => {\n if (isOpen) {\n inputRef.current?.focus();\n return;\n }\n\n if (isFocused) {\n setIsFocused(false);\n }\n\n if (typeof onBlur === 'function') {\n onBlur(e);\n }\n };\n\n const handleToggleDropdown = (): void => {\n if (isOpen) {\n setOpen(false);\n setIsFocused(false);\n } else {\n setOpen(true);\n setIsFocused(true);\n inputRef.current?.focus();\n }\n };\n\n useEffect(() => {\n setSearch(searchValueProp);\n }, [searchValueProp]);\n\n useEffect(() => {\n dropdownRef.current?.scrollTo({ top: 0 });\n }, [resolvedSearchValue]);\n\n useEffect(() => {\n onDropdownOpen?.(isOpen);\n }, [isOpen]);\n\n useEffect(() => {\n onSearchValueChangeRef.current?.(searchValue);\n }, [searchValue]);\n\n useEffect(() => {\n setOpen(dropdownOpen || false);\n }, [dropdownOpen]);\n\n return {\n isOpen,\n isFocused,\n highlightedIndex,\n visibleItems,\n highlightIndex,\n getOptionProps,\n handleInputFocus,\n handleInputBlur,\n handleToggleDropdown,\n handleInputClick,\n inputRef,\n getKeyProps,\n handleInputChange,\n searchValue,\n clearValue,\n getHandleRemoveValue,\n notFound,\n hasItems,\n allItemsSelected,\n optionsRefs,\n };\n}\n"],"mappings":"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"}
|
package/__internal__/src/components/SelectComponentsDeprecated/SelectDropdown/SelectDropdown.d.ts
CHANGED
|
@@ -5,8 +5,8 @@ import { GetOptionPropsResult, OptionForCreate, OptionProps } from '../../../hoo
|
|
|
5
5
|
import { PropsWithJsxAttributes } from '../../../utils/types/PropsWithJsxAttributes';
|
|
6
6
|
import { PopoverPropOffset } from '../../Popover/Popover';
|
|
7
7
|
import { PropSize, RenderItemProps } from '../types';
|
|
8
|
-
export declare const
|
|
9
|
-
export declare type SelectDropdownPropForm = typeof
|
|
8
|
+
export declare const selectDropdownForm: readonly ["default", "brick", "round"];
|
|
9
|
+
export declare type SelectDropdownPropForm = typeof selectDropdownForm[number];
|
|
10
10
|
export declare const defaultSelectDropdownPropForm: "default";
|
|
11
11
|
declare type Props<ITEM, GROUP> = PropsWithJsxAttributes<{
|
|
12
12
|
size: PropSize;
|
package/__internal__/src/components/SelectComponentsDeprecated/SelectDropdown/SelectDropdown.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _defineProperty from"@babel/runtime/helpers/defineProperty";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["controlRef","size","getOptionProps","dropdownRef","labelForCreate","className","labelForNotFound","labelForEmptyItems","hasItems","form","isOpen","offset","renderItem","visibleItems","isLoading","getGroupLabel","notFound"];function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}import"./SelectDropdown.css";import React,{Fragment,useMemo,useRef}from"react";import{Transition}from"react-transition-group";import{cnListBox,ListItem,
|
|
1
|
+
import _defineProperty from"@babel/runtime/helpers/defineProperty";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["controlRef","size","getOptionProps","dropdownRef","labelForCreate","className","labelForNotFound","labelForEmptyItems","hasItems","form","isOpen","offset","renderItem","visibleItems","isLoading","getGroupLabel","notFound"];function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}import"./SelectDropdown.css";import React,{Fragment,useMemo,useRef}from"react";import{Transition}from"react-transition-group";import{cnListBox,ListItem,mapVerticalSpace}from"../../ListCanary";import{cnMixScrollBar}from"../../../mixs/MixScrollBar";import{cnMixSpace}from"../../../mixs/MixSpace";import{isOptionForCreate,isOptionForSelectAll}from"../../../hooks/useSelect/useSelect";import{animateTimeout,cnMixPopoverAnimate}from"../../../mixs/MixPopoverAnimate/MixPopoverAnimate";import{cnDeprecated}from"../../../utils/bem";import{fabricIndex}from"../../../utils/fabricIndex";import{Popover}from"../../Popover/Popover";import{SelectCreateButton}from"../SelectCreateButton/SelectCreateButton";import{SelectGroupLabel}from"../SelectGroupLabel/SelectGroupLabel";import{SelectItemAll}from"../SelectItemAll/SelectSelectAll";import{SelectLoader}from"../SelectLoader/SelectLoader";export var selectDropdownForm=["default","brick","round"];export var defaultSelectDropdownPropForm=selectDropdownForm[0];var cnSelectDropdown=cnDeprecated("SelectDropdown");export var SelectDropdown=function(a){var b=a.controlRef,c=a.size,d=a.getOptionProps,e=a.dropdownRef,f=a.labelForCreate,g=a.className,h=a.labelForNotFound,i=a.labelForEmptyItems,j=a.hasItems,k=!(void 0!==j)||j,l=a.form,m=a.isOpen,n=a.offset,o=void 0===n?"none":n,p=a.renderItem,q=a.visibleItems,r=a.isLoading,s=a.getGroupLabel,t=a.notFound,u=_objectWithoutProperties(a,_excluded),v="round"===l?"increased":"normal",w=useRef(null),x=useMemo(function(){return 0<q.filter(function(a){return isOptionForCreate(a)||Array.isArray(a.items)&&0<a.items.length}).length},[q]),y="none"===o?void 0:o;return React.createElement(Transition,{in:m,unmountOnExit:!0,nodeRef:w,timeout:animateTimeout},function(a){var j=fabricIndex();return React.createElement(Popover,Object.assign({},u,{anchorRef:b,direction:"downStartLeft",possibleDirections:["downStartLeft","upStartLeft","downStartRight","upStartRight"],offset:y,ref:w,role:"listbox",className:cnSelectDropdown(null,[cnListBox({size:c,form:l,border:!0,shadow:!0}),cnMixPopoverAnimate({animate:a}),g]),equalAnchorWidth:!0}),React.createElement("div",{className:cnSelectDropdown("List",[cnMixSpace({pV:mapVerticalSpace[c]}),cnMixScrollBar()]),ref:e},r&&React.createElement(SelectLoader,{mode:x?"blur":"empty"}),q.map(function(a){return isOptionForCreate(a)?React.createElement(SelectCreateButton,Object.assign({size:c,labelForCreate:f,inputValue:a.label,indent:v},d({index:j(),item:a}))):React.createElement(Fragment,{key:a.key},a.group&&s&&React.createElement(SelectGroupLabel,{label:s(a.group),size:c,indent:v}),a.items.map(function(b,e){return isOptionForSelectAll(b)?React.createElement(SelectItemAll,Object.assign({indent:v,size:c},d({index:j(),item:b}),{intermediate:!!(b.checkedCount&&b.totalCount)&&b.checkedCount!==b.totalCount,checked:b.checkedCount===b.totalCount,countItems:b.checkedCount,total:b.totalCount})):React.createElement(Fragment,{key:"".concat(a.key,"-").concat(e)},p(_objectSpread({item:b},d({index:j(),item:b}))))}))}),!r&&k&&t&&h&&React.createElement(ListItem,{size:c,label:h,innerOffset:v},h),!r&&!k&&i&&React.createElement(ListItem,{size:c,label:i,innerOffset:v},i)))})};
|
|
2
2
|
//# sourceMappingURL=SelectDropdown.js.map
|
package/__internal__/src/components/SelectComponentsDeprecated/SelectDropdown/SelectDropdown.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectDropdown.js","names":["React","Fragment","useMemo","useRef","Transition","cnListBox","ListItem","mapVerticalSpase","cnMixScrollBar","cnMixSpace","isOptionForCreate","isOptionForSelectAll","animateTimeout","cnMixPopoverAnimate","cnDeprecated","fabricIndex","Popover","SelectCreateButton","SelectGroupLabel","SelectItemAll","SelectLoader","selectDropdownform","defaultSelectDropdownPropForm","cnSelectDropdown","SelectDropdown","props","controlRef","size","getOptionProps","dropdownRef","labelForCreate","className","labelForNotFound","labelForEmptyItems","hasItems","form","isOpen","offset","offsetProp","renderItem","visibleItems","isLoading","getGroupLabel","notFound","otherProps","indent","popoverRef","isListShowed","filter","group","Array","isArray","items","length","animate","getIndex","border","shadow","pV","map","label","index","item","key","i","checkedCount","totalCount"],"sources":["../../../../../../src/components/SelectComponentsDeprecated/SelectDropdown/SelectDropdown.tsx"],"sourcesContent":["import './SelectDropdown.css';\n\nimport React, { Fragment, useMemo, useRef } from 'react';\nimport { Transition } from 'react-transition-group';\n\nimport {\n cnListBox,\n ListItem,\n mapVerticalSpase,\n} from '##/components/ListCanary';\nimport { cnMixScrollBar } from '##/mixs/MixScrollBar';\nimport { cnMixSpace } from '##/mixs/MixSpace';\nimport { SelectAllItem } from '##/utils/getGroups';\n\nimport {\n GetOptionPropsResult,\n isOptionForCreate,\n isOptionForSelectAll,\n OptionForCreate,\n OptionProps,\n} from '../../../hooks/useSelect/useSelect';\nimport {\n animateTimeout,\n cnMixPopoverAnimate,\n} from '../../../mixs/MixPopoverAnimate/MixPopoverAnimate';\nimport { cnDeprecated } from '../../../utils/bem';\nimport { fabricIndex } from '../../../utils/fabricIndex';\nimport { PropsWithJsxAttributes } from '../../../utils/types/PropsWithJsxAttributes';\nimport { Popover, PopoverPropOffset } from '../../Popover/Popover';\nimport { SelectCreateButton } from '../SelectCreateButton/SelectCreateButton';\nimport { SelectGroupLabel } from '../SelectGroupLabel/SelectGroupLabel';\nimport { SelectItemAll } from '../SelectItemAll/SelectSelectAll';\nimport { SelectLoader } from '../SelectLoader/SelectLoader';\nimport { PropSize, RenderItemProps } from '../types';\n\nexport const selectDropdownform = ['default', 'brick', 'round'] as const;\nexport type SelectDropdownPropForm = typeof selectDropdownform[number];\nexport const defaultSelectDropdownPropForm = selectDropdownform[0];\n\ntype Props<ITEM, GROUP> = PropsWithJsxAttributes<{\n size: PropSize;\n controlRef: React.MutableRefObject<HTMLDivElement | null>;\n dropdownRef: React.Ref<HTMLDivElement>;\n getOptionProps(props: OptionProps<ITEM>): GetOptionPropsResult;\n form: SelectDropdownPropForm;\n isOpen: boolean;\n offset?: PopoverPropOffset | 'none';\n isLoading?: boolean;\n renderItem: (props: RenderItemProps<ITEM>) => JSX.Element | null;\n visibleItems: (\n | OptionForCreate\n | {\n items: Array<SelectAllItem | ITEM>;\n key: string | number;\n group?: GROUP;\n groupIndex: number;\n checkedCount?: number;\n totalCount?: number;\n }\n )[];\n getGroupLabel?: (group: GROUP) => string;\n labelForCreate?: string;\n labelForNotFound?: string;\n labelForEmptyItems?: string;\n notFound?: boolean;\n hasItems?: boolean;\n}>;\n\ntype SelectDropdown = <ITEM, GROUP>(\n props: Props<ITEM, GROUP>,\n) => React.ReactElement | null;\n\nconst cnSelectDropdown = cnDeprecated('SelectDropdown');\n\nexport const SelectDropdown: SelectDropdown = (props) => {\n const {\n controlRef,\n size,\n getOptionProps,\n dropdownRef,\n labelForCreate,\n className,\n labelForNotFound,\n labelForEmptyItems,\n hasItems = true,\n form,\n isOpen,\n offset: offsetProp = 'none',\n renderItem,\n visibleItems,\n isLoading,\n getGroupLabel,\n notFound,\n ...otherProps\n } = props;\n\n const indent = form === 'round' ? 'increased' : 'normal';\n\n const popoverRef = useRef<HTMLDivElement>(null);\n\n const isListShowed = useMemo(() => {\n return (\n visibleItems.filter(\n (group) =>\n isOptionForCreate(group) ||\n (Array.isArray(group.items) && group.items.length > 0),\n ).length > 0\n );\n }, [visibleItems]);\n\n const offset = offsetProp === 'none' ? undefined : offsetProp;\n\n return (\n <Transition\n in={isOpen}\n unmountOnExit\n nodeRef={popoverRef}\n timeout={animateTimeout}\n >\n {(animate) => {\n const getIndex = fabricIndex();\n return (\n <Popover\n {...otherProps}\n anchorRef={controlRef}\n direction=\"downStartLeft\"\n possibleDirections={[\n 'downStartLeft',\n 'upStartLeft',\n 'downStartRight',\n 'upStartRight',\n ]}\n offset={offset}\n ref={popoverRef}\n role=\"listbox\"\n className={cnSelectDropdown(null, [\n cnListBox({ size, form, border: true, shadow: true }),\n cnMixPopoverAnimate({ animate }),\n className,\n ])}\n equalAnchorWidth\n >\n <div\n className={cnSelectDropdown('List', [\n cnMixSpace({\n pV: mapVerticalSpase[size],\n }),\n cnMixScrollBar(),\n ])}\n ref={dropdownRef}\n >\n {isLoading && (\n <SelectLoader mode={isListShowed ? 'blur' : 'empty'} />\n )}\n {visibleItems.map((group) => {\n if (isOptionForCreate(group)) {\n return (\n <SelectCreateButton\n size={size}\n labelForCreate={labelForCreate}\n inputValue={group.label}\n indent={indent}\n {...getOptionProps({ index: getIndex(), item: group })}\n />\n );\n }\n return (\n <Fragment key={group.key}>\n {group.group && getGroupLabel && (\n <SelectGroupLabel\n label={getGroupLabel(group.group)}\n size={size}\n indent={indent}\n />\n )}\n {group.items.map((item, i) => {\n if (isOptionForSelectAll(item)) {\n return (\n <SelectItemAll\n indent={indent}\n size={size}\n {...getOptionProps({ index: getIndex(), item })}\n intermediate={\n item.checkedCount && item.totalCount\n ? item.checkedCount !== item.totalCount\n : false\n }\n checked={item.checkedCount === item.totalCount}\n countItems={item.checkedCount}\n total={item.totalCount}\n />\n );\n }\n return (\n <Fragment key={`${group.key}-${i}`}>\n {renderItem({\n item,\n ...getOptionProps({ index: getIndex(), item }),\n })}\n </Fragment>\n );\n })}\n </Fragment>\n );\n })}\n {!isLoading && hasItems && notFound && labelForNotFound && (\n <ListItem\n size={size}\n label={labelForNotFound}\n innerOffset={indent}\n >\n {labelForNotFound}\n </ListItem>\n )}\n {!isLoading && !hasItems && labelForEmptyItems && (\n <ListItem\n size={size}\n label={labelForEmptyItems}\n innerOffset={indent}\n >\n {labelForEmptyItems}\n </ListItem>\n )}\n </div>\n </Popover>\n );\n }}\n </Transition>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SelectDropdown.js","names":["React","Fragment","useMemo","useRef","Transition","cnListBox","ListItem","mapVerticalSpace","cnMixScrollBar","cnMixSpace","isOptionForCreate","isOptionForSelectAll","animateTimeout","cnMixPopoverAnimate","cnDeprecated","fabricIndex","Popover","SelectCreateButton","SelectGroupLabel","SelectItemAll","SelectLoader","selectDropdownForm","defaultSelectDropdownPropForm","cnSelectDropdown","SelectDropdown","props","controlRef","size","getOptionProps","dropdownRef","labelForCreate","className","labelForNotFound","labelForEmptyItems","hasItems","form","isOpen","offset","offsetProp","renderItem","visibleItems","isLoading","getGroupLabel","notFound","otherProps","indent","popoverRef","isListShowed","filter","group","Array","isArray","items","length","animate","getIndex","border","shadow","pV","map","label","index","item","key","i","checkedCount","totalCount"],"sources":["../../../../../../src/components/SelectComponentsDeprecated/SelectDropdown/SelectDropdown.tsx"],"sourcesContent":["import './SelectDropdown.css';\n\nimport React, { Fragment, useMemo, useRef } from 'react';\nimport { Transition } from 'react-transition-group';\n\nimport {\n cnListBox,\n ListItem,\n mapVerticalSpace,\n} from '##/components/ListCanary';\nimport { cnMixScrollBar } from '##/mixs/MixScrollBar';\nimport { cnMixSpace } from '##/mixs/MixSpace';\nimport { SelectAllItem } from '##/utils/getGroups';\n\nimport {\n GetOptionPropsResult,\n isOptionForCreate,\n isOptionForSelectAll,\n OptionForCreate,\n OptionProps,\n} from '../../../hooks/useSelect/useSelect';\nimport {\n animateTimeout,\n cnMixPopoverAnimate,\n} from '../../../mixs/MixPopoverAnimate/MixPopoverAnimate';\nimport { cnDeprecated } from '../../../utils/bem';\nimport { fabricIndex } from '../../../utils/fabricIndex';\nimport { PropsWithJsxAttributes } from '../../../utils/types/PropsWithJsxAttributes';\nimport { Popover, PopoverPropOffset } from '../../Popover/Popover';\nimport { SelectCreateButton } from '../SelectCreateButton/SelectCreateButton';\nimport { SelectGroupLabel } from '../SelectGroupLabel/SelectGroupLabel';\nimport { SelectItemAll } from '../SelectItemAll/SelectSelectAll';\nimport { SelectLoader } from '../SelectLoader/SelectLoader';\nimport { PropSize, RenderItemProps } from '../types';\n\nexport const selectDropdownForm = ['default', 'brick', 'round'] as const;\nexport type SelectDropdownPropForm = typeof selectDropdownForm[number];\nexport const defaultSelectDropdownPropForm = selectDropdownForm[0];\n\ntype Props<ITEM, GROUP> = PropsWithJsxAttributes<{\n size: PropSize;\n controlRef: React.MutableRefObject<HTMLDivElement | null>;\n dropdownRef: React.Ref<HTMLDivElement>;\n getOptionProps(props: OptionProps<ITEM>): GetOptionPropsResult;\n form: SelectDropdownPropForm;\n isOpen: boolean;\n offset?: PopoverPropOffset | 'none';\n isLoading?: boolean;\n renderItem: (props: RenderItemProps<ITEM>) => JSX.Element | null;\n visibleItems: (\n | OptionForCreate\n | {\n items: Array<SelectAllItem | ITEM>;\n key: string | number;\n group?: GROUP;\n groupIndex: number;\n checkedCount?: number;\n totalCount?: number;\n }\n )[];\n getGroupLabel?: (group: GROUP) => string;\n labelForCreate?: string;\n labelForNotFound?: string;\n labelForEmptyItems?: string;\n notFound?: boolean;\n hasItems?: boolean;\n}>;\n\ntype SelectDropdown = <ITEM, GROUP>(\n props: Props<ITEM, GROUP>,\n) => React.ReactElement | null;\n\nconst cnSelectDropdown = cnDeprecated('SelectDropdown');\n\nexport const SelectDropdown: SelectDropdown = (props) => {\n const {\n controlRef,\n size,\n getOptionProps,\n dropdownRef,\n labelForCreate,\n className,\n labelForNotFound,\n labelForEmptyItems,\n hasItems = true,\n form,\n isOpen,\n offset: offsetProp = 'none',\n renderItem,\n visibleItems,\n isLoading,\n getGroupLabel,\n notFound,\n ...otherProps\n } = props;\n\n const indent = form === 'round' ? 'increased' : 'normal';\n\n const popoverRef = useRef<HTMLDivElement>(null);\n\n const isListShowed = useMemo(() => {\n return (\n visibleItems.filter(\n (group) =>\n isOptionForCreate(group) ||\n (Array.isArray(group.items) && group.items.length > 0),\n ).length > 0\n );\n }, [visibleItems]);\n\n const offset = offsetProp === 'none' ? undefined : offsetProp;\n\n return (\n <Transition\n in={isOpen}\n unmountOnExit\n nodeRef={popoverRef}\n timeout={animateTimeout}\n >\n {(animate) => {\n const getIndex = fabricIndex();\n return (\n <Popover\n {...otherProps}\n anchorRef={controlRef}\n direction=\"downStartLeft\"\n possibleDirections={[\n 'downStartLeft',\n 'upStartLeft',\n 'downStartRight',\n 'upStartRight',\n ]}\n offset={offset}\n ref={popoverRef}\n role=\"listbox\"\n className={cnSelectDropdown(null, [\n cnListBox({ size, form, border: true, shadow: true }),\n cnMixPopoverAnimate({ animate }),\n className,\n ])}\n equalAnchorWidth\n >\n <div\n className={cnSelectDropdown('List', [\n cnMixSpace({\n pV: mapVerticalSpace[size],\n }),\n cnMixScrollBar(),\n ])}\n ref={dropdownRef}\n >\n {isLoading && (\n <SelectLoader mode={isListShowed ? 'blur' : 'empty'} />\n )}\n {visibleItems.map((group) => {\n if (isOptionForCreate(group)) {\n return (\n <SelectCreateButton\n size={size}\n labelForCreate={labelForCreate}\n inputValue={group.label}\n indent={indent}\n {...getOptionProps({ index: getIndex(), item: group })}\n />\n );\n }\n return (\n <Fragment key={group.key}>\n {group.group && getGroupLabel && (\n <SelectGroupLabel\n label={getGroupLabel(group.group)}\n size={size}\n indent={indent}\n />\n )}\n {group.items.map((item, i) => {\n if (isOptionForSelectAll(item)) {\n return (\n <SelectItemAll\n indent={indent}\n size={size}\n {...getOptionProps({ index: getIndex(), item })}\n intermediate={\n item.checkedCount && item.totalCount\n ? item.checkedCount !== item.totalCount\n : false\n }\n checked={item.checkedCount === item.totalCount}\n countItems={item.checkedCount}\n total={item.totalCount}\n />\n );\n }\n return (\n <Fragment key={`${group.key}-${i}`}>\n {renderItem({\n item,\n ...getOptionProps({ index: getIndex(), item }),\n })}\n </Fragment>\n );\n })}\n </Fragment>\n );\n })}\n {!isLoading && hasItems && notFound && labelForNotFound && (\n <ListItem\n size={size}\n label={labelForNotFound}\n innerOffset={indent}\n >\n {labelForNotFound}\n </ListItem>\n )}\n {!isLoading && !hasItems && labelForEmptyItems && (\n <ListItem\n size={size}\n label={labelForEmptyItems}\n innerOffset={indent}\n >\n {labelForEmptyItems}\n </ListItem>\n )}\n </div>\n </Popover>\n );\n }}\n </Transition>\n );\n};\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const
|
|
2
|
-
export declare const
|
|
1
|
+
export declare const defaultLabelForNotFound = "\u041D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E";
|
|
2
|
+
export declare const defaultLabelForCreate = "";
|
|
3
3
|
export declare const defaultLabelForEmptyItems = "\u0421\u043F\u0438\u0441\u043E\u043A \u043F\u0443\u0441\u0442";
|
|
4
4
|
export declare const getInputWidth: (controlInnerRef: React.RefObject<HTMLDivElement>, helperInputFakeElement: React.RefObject<HTMLDivElement>) => number;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export var
|
|
1
|
+
export var defaultLabelForNotFound="\u041D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E";export var defaultLabelForCreate="";export var defaultLabelForEmptyItems="\u0421\u043F\u0438\u0441\u043E\u043A \u043F\u0443\u0441\u0442";export var getInputWidth=function(a,b){if(!a.current||!b.current)return 20;var c=b.current.offsetWidth+20,d=a.current?a.current.offsetWidth-15:2,e=c>d?d:c;return e};
|
|
2
2
|
//# sourceMappingURL=helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","names":["
|
|
1
|
+
{"version":3,"file":"helpers.js","names":["defaultLabelForNotFound","defaultLabelForCreate","defaultLabelForEmptyItems","getInputWidth","controlInnerRef","helperInputFakeElement","current","fakeElWidth","offsetWidth","maxWidth","width"],"sources":["../../../../../src/components/SelectComponentsDeprecated/helpers.ts"],"sourcesContent":["export const defaultLabelForNotFound = 'Не найдено';\nexport const defaultLabelForCreate = '';\nexport const defaultLabelForEmptyItems = 'Список пуст';\n\nexport const getInputWidth = (\n controlInnerRef: React.RefObject<HTMLDivElement>,\n helperInputFakeElement: React.RefObject<HTMLDivElement>,\n): number => {\n if (!controlInnerRef.current || !helperInputFakeElement.current) {\n return 20;\n }\n const fakeElWidth = helperInputFakeElement.current.offsetWidth + 20;\n const maxWidth = controlInnerRef.current\n ? controlInnerRef.current.offsetWidth - 15\n : 2;\n const width = fakeElWidth > maxWidth ? maxWidth : fakeElWidth;\n return width;\n};\n"],"mappings":"AAAA,MAAO,IAAMA,wBAAuB,CAAG,yDAAhC,CACP,MAAO,IAAMC,sBAAqB,CAAG,EAA9B,CACP,MAAO,IAAMC,0BAAyB,CAAG,+DAAlC,CAEP,MAAO,IAAMC,cAAa,CAAG,SAC3BC,CAD2B,CAE3BC,CAF2B,CAGhB,CACX,GAAI,CAACD,CAAe,CAACE,OAAjB,EAA4B,CAACD,CAAsB,CAACC,OAAxD,CACE,MAAO,GAAP,CAFS,GAILC,EAAW,CAAGF,CAAsB,CAACC,OAAvB,CAA+BE,WAA/B,CAA6C,EAJtD,CAKLC,CAAQ,CAAGL,CAAe,CAACE,OAAhB,CACbF,CAAe,CAACE,OAAhB,CAAwBE,WAAxB,CAAsC,EADzB,CAEb,CAPO,CAQLE,CAAK,CAAGH,CAAW,CAAGE,CAAd,CAAyBA,CAAzB,CAAoCF,CARvC,CASX,MAAOG,EACR,CAbM"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["min","max","onChange","onAfterChange","value","step","disabled","size","view","leftSide","rightSide","withTooltip","range","label","tooltipDirection","tooltipPossibleDirections","labelIcon","status","caption","tooltipFormatter","className","style"];import"./Slider.css";import React,{forwardRef,useRef,useState}from"react";import{usePropsHandler}from"../EventInterceptor/usePropsHandler";import{FieldCaption}from"../FieldCaption";import{FieldLabel}from"../FieldLabel";import{useFlag}from"../../hooks/useFlag";import{useForkRef}from"../../hooks/useForkRef";import{useSortSteps}from"../../hooks/useSortSteps";import{cn}from"../../utils/bem";import{defaultTooltipFormatter,getIcon,getMaxForStartField,getMinForEndField,
|
|
1
|
+
import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["min","max","onChange","onAfterChange","value","step","disabled","size","view","leftSide","rightSide","withTooltip","range","label","tooltipDirection","tooltipPossibleDirections","labelIcon","status","caption","tooltipFormatter","className","style"];import"./Slider.css";import React,{forwardRef,useRef,useState}from"react";import{usePropsHandler}from"../EventInterceptor/usePropsHandler";import{FieldCaption}from"../FieldCaption";import{FieldLabel}from"../FieldLabel";import{useFlag}from"../../hooks/useFlag";import{useForkRef}from"../../hooks/useForkRef";import{useSortSteps}from"../../hooks/useSortSteps";import{cn}from"../../utils/bem";import{defaultTooltipFormatter,getIcon,getMaxForStartField,getMinForEndField,getOnChangeForInput,getValidStep,getValueForInput,isRangeParams,sliderPropSizeDefault}from"./helper";import{SliderInput}from"./SliderInput/SliderInput";import{SliderLine}from"./SliderLine/SliderLine";import{SliderPoint}from"./SliderPoint/SliderPoint";import{useSlider}from"./useSlider/useSlider";import{useSliderStationing}from"./useSliderStationing";var cnSlider=cn("Slider"),sizeMap={xs:"xs",s:"s",m:"m",l:"m"};export var COMPONENT_NAME="Slider";var SliderRender=function(a,b){var c=useRef(null),d=usePropsHandler(COMPONENT_NAME,a,c),e=d.min,f=void 0===e?0:e,g=d.max,h=void 0===g?100:g,i=d.onChange,j=d.onAfterChange,k=d.value,l=d.step,m=d.disabled,n=void 0!==m&&m,o=d.size,p=void 0===o?sliderPropSizeDefault:o,q=d.view,r=void 0===q?"default":q,s=d.leftSide,t=d.rightSide,u=d.withTooltip,v=d.range,w=void 0!==v&&v,x=d.label,y=d.tooltipDirection,z=d.tooltipPossibleDirections,A=d.labelIcon,B=d.status,C=d.caption,D=d.tooltipFormatter,E=void 0===D?defaultTooltipFormatter:D,F=d.className,G=d.style,H=_objectWithoutProperties(d,_excluded),I=useState(),J=_slicedToArray(I,2),K=J[0],L=J[1],M=useFlag(!1),N=_slicedToArray(M,2),O=N[0],P=N[1],Q=P.on,R=P.off,S=useRef(null),T=useRef(null),U=useRef(null),V=useSortSteps({step:getValidStep(f,h,l),min:f,max:h}),W=l?V:Math.abs((h-f)/100),X=getIcon(t),Y=getIcon(s),Z=sizeMap[p],$=useSlider({disabled:n,range:w,value:k,min:f,max:h,step:W,onChange:i,onAfterChange:j,sliderRef:c,containerRef:S,buttonRefs:[T,U]}),_=$.onKeyPress,aa=$.onFocus,ba=$.handlePress,ca=$.onSliderClick,da=$.popoverPosition,ea=$.activeButton,fa=$.currentValue,ga=useSliderStationing(1===fa.length?fa[0]:fa,f,h,r,w,W,[T,U],c),ha=ga.lineSizes,ia=ga.buttonPositions,ja={role:"button",tabIndex:0,className:cnSlider("Control"),ref:c,onClick:ca},ka=function(a){a?Q():R()};return React.createElement("div",Object.assign({ref:useForkRef([b,S]),className:cnSlider({size:p},[F]),style:G},H),x&&React.createElement(FieldLabel,{icon:A,className:cnSlider("Label"),size:p},x),React.createElement("div",{className:cnSlider("Container")},("input"===s||Y)&&React.createElement("div",{className:cnSlider("Side",{position:"left"})},"input"===s&&React.createElement(SliderInput,{value:getValueForInput(a,0),onFocus:function(){return L(0)},onBlur:function onBlur(){return L(void 0)},onChange:getOnChangeForInput(a,0),size:p,min:f,inputMode:"numeric",max:getMaxForStartField(a),status:B,step:W,disabled:n}),Y&&React.createElement(Y,{size:null!==Z&&void 0!==Z?Z:void 0,view:"secondary"})),React.createElement("div",ja,React.createElement(SliderLine,{hovered:O||"number"==typeof ea,onHover:ka,lines:ha,disabled:n,view:r}),fa.map(function(a,b){var c=1<fa.length&&fa[0]===fa[1]&&a===h&&0===b;return React.createElement(SliderPoint,{hovered:O||"number"==typeof ea,buttonRef:T,popoverPosition:da[b],onKeyPress:_,onFocus:aa,tooltipDirection:y,tooltipPossibleDirections:z,handlePress:ba,disabled:n,active:c,position:ia[b],focused:ea===b||K===b,buttonLabel:b,withTooltip:u,onHover:ka,tooltipFormatter:E,value:a,role:"slider","aria-valuemin":f,"aria-valuemax":h,"aria-valuenow":a,tooltipZIndex:"number"==typeof(null===G||void 0===G?void 0:G.zIndex)?G.zIndex+1:void 0,key:cnSlider("Point",{index:b})})})),("input"===t||X)&&React.createElement("div",{className:cnSlider("Side",{position:"right"})},"input"===t&&React.createElement(SliderInput,{value:getValueForInput(a,1),onChange:getOnChangeForInput(a,1),onBlur:function onBlur(){return L(void 0)},size:p,min:getMinForEndField(a),max:h,onFocus:function(){return L(isRangeParams(a)?1:0)},inputMode:"numeric",status:B,step:W,disabled:n}),X&&React.createElement(X,{size:Z,view:"secondary"}))),C&&React.createElement(FieldCaption,{className:cnSlider("Caption"),status:B},C))};export var Slider=forwardRef(SliderRender);
|
|
2
2
|
//# sourceMappingURL=Slider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Slider.js","names":["React","forwardRef","useRef","useState","usePropsHandler","FieldCaption","FieldLabel","useFlag","useForkRef","useSortSteps","cn","defaultTooltipFormatter","getIcon","getMaxForStartField","getMinForEndField","getOnChandgeForInput","getValidStep","getValueForInput","isRangeParams","sliderPropSizeDefault","SliderInput","SliderLine","SliderPoint","useSlider","useSliderStationing","cnSlider","sizeMap","xs","s","m","l","COMPONENT_NAME","SliderRender","props","ref","sliderRef","min","max","onChange","onAfterChange","value","stepProp","step","disabled","size","view","leftSide","rightSide","withTooltip","range","label","tooltipDirection","tooltipPossibleDirections","labelIcon","status","caption","tooltipFormatter","className","style","otherProps","focusIndex","setFocusIndex","isHovered","on","off","containerRef","leftButtonRef","rightButtonRef","sortedSteps","Math","abs","IconRight","IconLeft","iconSize","buttonRefs","onKeyPress","onFocus","handlePress","onSliderClick","popoverPosition","activeButton","currentValue","length","lineSizes","buttonPositions","containerProps","role","tabIndex","onClick","changeHovered","position","map","val","index","topLayer","zIndex","Slider"],"sources":["../../../../../src/components/Slider/Slider.tsx"],"sourcesContent":["import './Slider.css';\n\nimport { IconPropSize } from '@consta/icons/Icon';\nimport React, { forwardRef, useRef, useState } from 'react';\n\nimport { usePropsHandler } from '##/components/EventInterceptor/usePropsHandler';\nimport { FieldCaption } from '##/components/FieldCaption';\nimport { FieldLabel } from '##/components/FieldLabel';\nimport { useFlag } from '##/hooks/useFlag';\nimport { useForkRef } from '##/hooks/useForkRef';\nimport { useSortSteps } from '##/hooks/useSortSteps';\nimport { cn } from '##/utils/bem';\n\nimport {\n defaultTooltipFormatter,\n getIcon,\n getMaxForStartField,\n getMinForEndField,\n getOnChandgeForInput,\n getValidStep,\n getValueForInput,\n isRangeParams,\n SliderComponent,\n SliderProps,\n SliderPropSize,\n sliderPropSizeDefault,\n} from './helper';\nimport { SliderInput } from './SliderInput/SliderInput';\nimport { SliderLine } from './SliderLine/SliderLine';\nimport { SliderPoint } from './SliderPoint/SliderPoint';\nimport { ActiveButton } from './useSlider/helper';\nimport { useSlider } from './useSlider/useSlider';\nimport { useSliderStationing } from './useSliderStationing';\n\nconst cnSlider = cn('Slider');\n\nconst sizeMap: Record<SliderPropSize, IconPropSize> = {\n xs: 'xs',\n s: 's',\n m: 'm',\n l: 'm',\n};\n\nexport const COMPONENT_NAME = 'Slider' as const;\n\nconst SliderRender = <RANGE extends boolean = false>(\n props: SliderProps<RANGE>,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const sliderRef = useRef<HTMLDivElement>(null);\n\n const {\n min = 0,\n max = 100,\n onChange,\n onAfterChange,\n value,\n step: stepProp,\n disabled = false,\n size = sliderPropSizeDefault,\n view = 'default',\n leftSide,\n rightSide,\n withTooltip,\n range = false,\n label,\n tooltipDirection,\n tooltipPossibleDirections,\n labelIcon,\n status,\n caption,\n tooltipFormatter = defaultTooltipFormatter,\n className,\n style,\n ...otherProps\n } = usePropsHandler(COMPONENT_NAME, props, sliderRef);\n\n const [focusIndex, setFocusIndex] = useState<number | undefined>();\n const [isHovered, { on, off }] = useFlag(false);\n const containerRef = useRef<HTMLDivElement>(null);\n const leftButtonRef = useRef<HTMLButtonElement>(null);\n const rightButtonRef = useRef<HTMLButtonElement>(null);\n const sortedSteps = useSortSteps({\n step: getValidStep(min, max, stepProp),\n min,\n max,\n });\n const step = stepProp ? sortedSteps : Math.abs((max - min) / 100);\n const IconRight = getIcon(rightSide);\n const IconLeft = getIcon(leftSide);\n const iconSize = sizeMap[size];\n\n const {\n onKeyPress,\n onFocus,\n handlePress,\n onSliderClick,\n popoverPosition,\n activeButton,\n currentValue,\n } = useSlider({\n disabled,\n range,\n value,\n min,\n max,\n step,\n onChange,\n onAfterChange,\n sliderRef,\n containerRef,\n buttonRefs: [leftButtonRef, rightButtonRef],\n });\n\n const { lineSizes, buttonPositions } = useSliderStationing(\n currentValue.length === 1 ? currentValue[0] : currentValue,\n min,\n max,\n view,\n range,\n step,\n [leftButtonRef, rightButtonRef],\n sliderRef,\n );\n\n const containerProps = {\n role: 'button',\n tabIndex: 0,\n className: cnSlider('Control'),\n ref: sliderRef,\n onClick: onSliderClick,\n };\n\n const changeHovered = (status: boolean) => {\n if (status) on();\n else off();\n };\n\n return (\n <div\n ref={useForkRef([ref, containerRef])}\n className={cnSlider({ size }, [className])}\n style={style}\n {...otherProps}\n >\n {label && (\n <FieldLabel icon={labelIcon} className={cnSlider('Label')} size={size}>\n {label}\n </FieldLabel>\n )}\n <div className={cnSlider('Container')}>\n {(leftSide === 'input' || IconLeft) && (\n <div className={cnSlider('Side', { position: 'left' })}>\n {leftSide === 'input' && (\n <SliderInput\n value={getValueForInput(props, 0)}\n onFocus={() => setFocusIndex(0)}\n onBlur={() => setFocusIndex(undefined)}\n onChange={getOnChandgeForInput(props, 0)}\n size={size}\n min={min}\n inputMode=\"numeric\"\n max={getMaxForStartField(props)}\n status={status}\n step={step}\n disabled={disabled}\n />\n )}\n {IconLeft && (\n <IconLeft size={iconSize ?? undefined} view=\"secondary\" />\n )}\n </div>\n )}\n <div {...containerProps}>\n <SliderLine\n hovered={isHovered || typeof activeButton === 'number'}\n onHover={changeHovered}\n lines={lineSizes}\n disabled={disabled}\n view={view}\n />\n {currentValue.map((val, index) => {\n const topLayer =\n currentValue.length > 1 &&\n currentValue[0] === currentValue[1] &&\n val === max &&\n index === 0;\n return (\n <SliderPoint\n hovered={isHovered || typeof activeButton === 'number'}\n buttonRef={leftButtonRef}\n popoverPosition={popoverPosition[index]}\n onKeyPress={onKeyPress}\n onFocus={onFocus}\n tooltipDirection={tooltipDirection}\n tooltipPossibleDirections={tooltipPossibleDirections}\n handlePress={handlePress}\n disabled={disabled}\n active={topLayer}\n position={buttonPositions[index]}\n focused={activeButton === index || focusIndex === index}\n buttonLabel={index as ActiveButton}\n withTooltip={withTooltip}\n onHover={changeHovered}\n tooltipFormatter={tooltipFormatter}\n value={val}\n role=\"slider\"\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={val}\n tooltipZIndex={\n typeof style?.zIndex === 'number'\n ? style.zIndex + 1\n : undefined\n }\n key={cnSlider('Point', { index })}\n />\n );\n })}\n </div>\n {(rightSide === 'input' || IconRight) && (\n <div className={cnSlider('Side', { position: 'right' })}>\n {rightSide === 'input' && (\n <SliderInput\n value={getValueForInput(props, 1)}\n onChange={getOnChandgeForInput(props, 1)}\n onBlur={() => setFocusIndex(undefined)}\n size={size}\n min={getMinForEndField(props)}\n max={max}\n onFocus={() => setFocusIndex(isRangeParams(props) ? 1 : 0)}\n inputMode=\"numeric\"\n status={status}\n step={step}\n disabled={disabled}\n />\n )}\n {IconRight && <IconRight size={iconSize} view=\"secondary\" />}\n </div>\n )}\n </div>\n {caption && (\n <FieldCaption className={cnSlider('Caption')} status={status}>\n {caption}\n </FieldCaption>\n )}\n </div>\n );\n};\n\nexport const Slider = forwardRef(SliderRender) as SliderComponent;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Slider.js","names":["React","forwardRef","useRef","useState","usePropsHandler","FieldCaption","FieldLabel","useFlag","useForkRef","useSortSteps","cn","defaultTooltipFormatter","getIcon","getMaxForStartField","getMinForEndField","getOnChangeForInput","getValidStep","getValueForInput","isRangeParams","sliderPropSizeDefault","SliderInput","SliderLine","SliderPoint","useSlider","useSliderStationing","cnSlider","sizeMap","xs","s","m","l","COMPONENT_NAME","SliderRender","props","ref","sliderRef","min","max","onChange","onAfterChange","value","stepProp","step","disabled","size","view","leftSide","rightSide","withTooltip","range","label","tooltipDirection","tooltipPossibleDirections","labelIcon","status","caption","tooltipFormatter","className","style","otherProps","focusIndex","setFocusIndex","isHovered","on","off","containerRef","leftButtonRef","rightButtonRef","sortedSteps","Math","abs","IconRight","IconLeft","iconSize","buttonRefs","onKeyPress","onFocus","handlePress","onSliderClick","popoverPosition","activeButton","currentValue","length","lineSizes","buttonPositions","containerProps","role","tabIndex","onClick","changeHovered","position","map","val","index","topLayer","zIndex","Slider"],"sources":["../../../../../src/components/Slider/Slider.tsx"],"sourcesContent":["import './Slider.css';\n\nimport { IconPropSize } from '@consta/icons/Icon';\nimport React, { forwardRef, useRef, useState } from 'react';\n\nimport { usePropsHandler } from '##/components/EventInterceptor/usePropsHandler';\nimport { FieldCaption } from '##/components/FieldCaption';\nimport { FieldLabel } from '##/components/FieldLabel';\nimport { useFlag } from '##/hooks/useFlag';\nimport { useForkRef } from '##/hooks/useForkRef';\nimport { useSortSteps } from '##/hooks/useSortSteps';\nimport { cn } from '##/utils/bem';\n\nimport {\n defaultTooltipFormatter,\n getIcon,\n getMaxForStartField,\n getMinForEndField,\n getOnChangeForInput,\n getValidStep,\n getValueForInput,\n isRangeParams,\n SliderComponent,\n SliderProps,\n SliderPropSize,\n sliderPropSizeDefault,\n} from './helper';\nimport { SliderInput } from './SliderInput/SliderInput';\nimport { SliderLine } from './SliderLine/SliderLine';\nimport { SliderPoint } from './SliderPoint/SliderPoint';\nimport { ActiveButton } from './useSlider/helper';\nimport { useSlider } from './useSlider/useSlider';\nimport { useSliderStationing } from './useSliderStationing';\n\nconst cnSlider = cn('Slider');\n\nconst sizeMap: Record<SliderPropSize, IconPropSize> = {\n xs: 'xs',\n s: 's',\n m: 'm',\n l: 'm',\n};\n\nexport const COMPONENT_NAME = 'Slider' as const;\n\nconst SliderRender = <RANGE extends boolean = false>(\n props: SliderProps<RANGE>,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const sliderRef = useRef<HTMLDivElement>(null);\n\n const {\n min = 0,\n max = 100,\n onChange,\n onAfterChange,\n value,\n step: stepProp,\n disabled = false,\n size = sliderPropSizeDefault,\n view = 'default',\n leftSide,\n rightSide,\n withTooltip,\n range = false,\n label,\n tooltipDirection,\n tooltipPossibleDirections,\n labelIcon,\n status,\n caption,\n tooltipFormatter = defaultTooltipFormatter,\n className,\n style,\n ...otherProps\n } = usePropsHandler(COMPONENT_NAME, props, sliderRef);\n\n const [focusIndex, setFocusIndex] = useState<number | undefined>();\n const [isHovered, { on, off }] = useFlag(false);\n const containerRef = useRef<HTMLDivElement>(null);\n const leftButtonRef = useRef<HTMLButtonElement>(null);\n const rightButtonRef = useRef<HTMLButtonElement>(null);\n const sortedSteps = useSortSteps({\n step: getValidStep(min, max, stepProp),\n min,\n max,\n });\n const step = stepProp ? sortedSteps : Math.abs((max - min) / 100);\n const IconRight = getIcon(rightSide);\n const IconLeft = getIcon(leftSide);\n const iconSize = sizeMap[size];\n\n const {\n onKeyPress,\n onFocus,\n handlePress,\n onSliderClick,\n popoverPosition,\n activeButton,\n currentValue,\n } = useSlider({\n disabled,\n range,\n value,\n min,\n max,\n step,\n onChange,\n onAfterChange,\n sliderRef,\n containerRef,\n buttonRefs: [leftButtonRef, rightButtonRef],\n });\n\n const { lineSizes, buttonPositions } = useSliderStationing(\n currentValue.length === 1 ? currentValue[0] : currentValue,\n min,\n max,\n view,\n range,\n step,\n [leftButtonRef, rightButtonRef],\n sliderRef,\n );\n\n const containerProps = {\n role: 'button',\n tabIndex: 0,\n className: cnSlider('Control'),\n ref: sliderRef,\n onClick: onSliderClick,\n };\n\n const changeHovered = (status: boolean) => {\n if (status) on();\n else off();\n };\n\n return (\n <div\n ref={useForkRef([ref, containerRef])}\n className={cnSlider({ size }, [className])}\n style={style}\n {...otherProps}\n >\n {label && (\n <FieldLabel icon={labelIcon} className={cnSlider('Label')} size={size}>\n {label}\n </FieldLabel>\n )}\n <div className={cnSlider('Container')}>\n {(leftSide === 'input' || IconLeft) && (\n <div className={cnSlider('Side', { position: 'left' })}>\n {leftSide === 'input' && (\n <SliderInput\n value={getValueForInput(props, 0)}\n onFocus={() => setFocusIndex(0)}\n onBlur={() => setFocusIndex(undefined)}\n onChange={getOnChangeForInput(props, 0)}\n size={size}\n min={min}\n inputMode=\"numeric\"\n max={getMaxForStartField(props)}\n status={status}\n step={step}\n disabled={disabled}\n />\n )}\n {IconLeft && (\n <IconLeft size={iconSize ?? undefined} view=\"secondary\" />\n )}\n </div>\n )}\n <div {...containerProps}>\n <SliderLine\n hovered={isHovered || typeof activeButton === 'number'}\n onHover={changeHovered}\n lines={lineSizes}\n disabled={disabled}\n view={view}\n />\n {currentValue.map((val, index) => {\n const topLayer =\n currentValue.length > 1 &&\n currentValue[0] === currentValue[1] &&\n val === max &&\n index === 0;\n return (\n <SliderPoint\n hovered={isHovered || typeof activeButton === 'number'}\n buttonRef={leftButtonRef}\n popoverPosition={popoverPosition[index]}\n onKeyPress={onKeyPress}\n onFocus={onFocus}\n tooltipDirection={tooltipDirection}\n tooltipPossibleDirections={tooltipPossibleDirections}\n handlePress={handlePress}\n disabled={disabled}\n active={topLayer}\n position={buttonPositions[index]}\n focused={activeButton === index || focusIndex === index}\n buttonLabel={index as ActiveButton}\n withTooltip={withTooltip}\n onHover={changeHovered}\n tooltipFormatter={tooltipFormatter}\n value={val}\n role=\"slider\"\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={val}\n tooltipZIndex={\n typeof style?.zIndex === 'number'\n ? style.zIndex + 1\n : undefined\n }\n key={cnSlider('Point', { index })}\n />\n );\n })}\n </div>\n {(rightSide === 'input' || IconRight) && (\n <div className={cnSlider('Side', { position: 'right' })}>\n {rightSide === 'input' && (\n <SliderInput\n value={getValueForInput(props, 1)}\n onChange={getOnChangeForInput(props, 1)}\n onBlur={() => setFocusIndex(undefined)}\n size={size}\n min={getMinForEndField(props)}\n max={max}\n onFocus={() => setFocusIndex(isRangeParams(props) ? 1 : 0)}\n inputMode=\"numeric\"\n status={status}\n step={step}\n disabled={disabled}\n />\n )}\n {IconRight && <IconRight size={iconSize} view=\"secondary\" />}\n </div>\n )}\n </div>\n {caption && (\n <FieldCaption className={cnSlider('Caption')} status={status}>\n {caption}\n </FieldCaption>\n )}\n </div>\n );\n};\n\nexport const Slider = forwardRef(SliderRender) as SliderComponent;\n"],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@ export declare type SliderValue<RANGE> = RANGE extends true ? [number, number] :
|
|
|
14
14
|
export declare type SliderPropOnChange<RANGE> = (value: SliderValue<RANGE>, prop: {
|
|
15
15
|
e?: Event | React.TouchEvent | React.MouseEvent | React.KeyboardEvent | React.ChangeEvent;
|
|
16
16
|
}) => void;
|
|
17
|
-
declare type
|
|
17
|
+
declare type SliderPropTooltipFormatter = (value: number | undefined) => string;
|
|
18
18
|
declare type Side = IconComponent | 'input';
|
|
19
19
|
declare type Props<RANGE extends boolean = false> = {
|
|
20
20
|
className?: string;
|
|
@@ -34,7 +34,7 @@ declare type Props<RANGE extends boolean = false> = {
|
|
|
34
34
|
onChange?: SliderPropOnChange<RANGE>;
|
|
35
35
|
onAfterChange?: SliderPropOnChange<RANGE>;
|
|
36
36
|
leftSide?: Side;
|
|
37
|
-
tooltipFormatter?:
|
|
37
|
+
tooltipFormatter?: SliderPropTooltipFormatter;
|
|
38
38
|
rightSide?: Side;
|
|
39
39
|
tooltipDirection?: Direction;
|
|
40
40
|
tooltipPossibleDirections?: Direction[];
|
|
@@ -61,7 +61,7 @@ export declare type SliderPointProps = PropsWithHTMLAttributes<{
|
|
|
61
61
|
buttonLabel?: ActiveButton;
|
|
62
62
|
buttonRef?: React.RefObject<HTMLButtonElement>;
|
|
63
63
|
popoverPosition?: TrackPosition;
|
|
64
|
-
tooltipFormatter?:
|
|
64
|
+
tooltipFormatter?: SliderPropTooltipFormatter;
|
|
65
65
|
onFocus?: (e: React.FocusEvent<HTMLButtonElement> | React.MouseEvent, button: ActiveButton) => void;
|
|
66
66
|
onKeyPress?: (e: React.KeyboardEvent, typeButton?: ActiveButton) => void;
|
|
67
67
|
onHover?: (hovered: boolean) => void;
|
|
@@ -75,17 +75,17 @@ export declare type SliderProps<RANGE extends boolean> = PropsWithHTMLAttributes
|
|
|
75
75
|
export declare type SliderComponent = <RANGE extends boolean = false>(props: SliderProps<RANGE>) => React.ReactElement | null;
|
|
76
76
|
export declare const isRangeParams: (params: Props<boolean>) => params is Props<true>;
|
|
77
77
|
export declare const isNotRangeParams: (params: Props<boolean>) => params is Props<false>;
|
|
78
|
-
export declare const defaultTooltipFormatter:
|
|
78
|
+
export declare const defaultTooltipFormatter: SliderPropTooltipFormatter;
|
|
79
79
|
export declare type TrackPosition = {
|
|
80
80
|
x: number;
|
|
81
81
|
y: number;
|
|
82
82
|
} | null;
|
|
83
83
|
export declare const getValueForInput: (props: SliderProps<boolean>, field: 0 | 1) => number;
|
|
84
|
-
declare type
|
|
84
|
+
declare type GetOnChangeForInputReturned = (props: {
|
|
85
85
|
e?: React.ChangeEvent | React.MouseEvent | React.KeyboardEvent;
|
|
86
86
|
value: number;
|
|
87
87
|
}) => void;
|
|
88
|
-
export declare const
|
|
88
|
+
export declare const getOnChangeForInput: (props: SliderProps<boolean>, field: 0 | 1) => GetOnChangeForInputReturned;
|
|
89
89
|
export declare const getIcon: (side?: Side) => IconComponent<"span"> | undefined;
|
|
90
90
|
export declare const getMaxForStartField: (props: SliderProps<boolean>) => number | undefined;
|
|
91
91
|
export declare const getMinForEndField: (props: SliderProps<boolean>) => number | undefined;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export var sliderPropStatus=["alert","warning","success"];export var sliderPropStatusDefault=sliderPropStatus[0];export var sliderPropSize=["s","xs","m","l"];export var sliderPropSizeDefault=sliderPropSize[0];export var isRangeParams=function(a){return!!a.range};export var isNotRangeParams=function(a){return!a.range};export var defaultTooltipFormatter=function(a){return(null===a||void 0===a?void 0:a.toString())||""};export var getValueForInput=function(a,b){return isRangeParams(a)?a.value[b]:a.value};export var
|
|
1
|
+
export var sliderPropStatus=["alert","warning","success"];export var sliderPropStatusDefault=sliderPropStatus[0];export var sliderPropSize=["s","xs","m","l"];export var sliderPropSizeDefault=sliderPropSize[0];export var isRangeParams=function(a){return!!a.range};export var isNotRangeParams=function(a){return!a.range};export var defaultTooltipFormatter=function(a){return(null===a||void 0===a?void 0:a.toString())||""};export var getValueForInput=function(a,b){return isRangeParams(a)?a.value[b]:a.value};export var getOnChangeForInput=function(a,b){return function(c){var d=c.e,e=c.value;if(a.onChange&&(isNotRangeParams(a)&&a.onChange(e,{e:d}),isRangeParams(a))){var f=b?[a.value[0],e]:[e,a.value[1]];a.onChange(f,{e:d})}}};export var getIcon=function(a){if("input"!==a)return a};export var getMaxForStartField=function(a){return isNotRangeParams(a)?a.max:isRangeParams(a)?a.value[1]:void 0};export var getMinForEndField=function(a){return isNotRangeParams(a)?a.min:isRangeParams(a)?a.value[0]:void 0};export var getValidStep=function(a,b,c){return c?Array.isArray(c)?c:0>=c?1:c:Math.abs((b-a)/100)};
|
|
2
2
|
//# sourceMappingURL=helper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helper.js","names":["sliderPropStatus","sliderPropStatusDefault","sliderPropSize","sliderPropSizeDefault","isRangeParams","params","range","isNotRangeParams","defaultTooltipFormatter","value","toString","getValueForInput","props","field","
|
|
1
|
+
{"version":3,"file":"helper.js","names":["sliderPropStatus","sliderPropStatusDefault","sliderPropSize","sliderPropSizeDefault","isRangeParams","params","range","isNotRangeParams","defaultTooltipFormatter","value","toString","getValueForInput","props","field","getOnChangeForInput","e","onChange","newValue","getIcon","side","getMaxForStartField","max","getMinForEndField","min","getValidStep","step","Array","isArray","Math","abs"],"sources":["../../../../../src/components/Slider/helper.ts"],"sourcesContent":["import { IconComponent } from '@consta/icons/Icon';\nimport React from 'react';\n\nimport { PropsWithHTMLAttributes } from '../../utils/types/PropsWithHTMLAttributes';\nimport { Direction } from '../Popover';\nimport { ActiveButton } from './useSlider/helper';\n\nexport const sliderPropStatus = ['alert', 'warning', 'success'] as const;\nexport type SliderPropStatus = typeof sliderPropStatus[number];\nexport const sliderPropStatusDefault = sliderPropStatus[0];\n\nexport type SliderPropView = 'default' | 'division';\n\nexport const sliderPropSize = ['s', 'xs', 'm', 'l'] as const;\nexport type SliderPropSize = typeof sliderPropSize[number];\nexport const sliderPropSizeDefault: SliderPropSize = sliderPropSize[0];\n\nexport type SliderValue<RANGE> = RANGE extends true ? [number, number] : number;\n\nexport type SliderPropOnChange<RANGE> = (\n value: SliderValue<RANGE>,\n prop: {\n e?:\n | Event\n | React.TouchEvent\n | React.MouseEvent\n | React.KeyboardEvent\n | React.ChangeEvent;\n },\n) => void;\n\ntype SliderPropTooltipFormatter = (value: number | undefined) => string;\n\ntype Side = IconComponent | 'input';\n\ntype Props<RANGE extends boolean = false> = {\n className?: string;\n step?: number | number[];\n view?: SliderPropView;\n disabled?: boolean;\n range?: RANGE;\n withTooltip?: boolean;\n value: SliderValue<RANGE>;\n label?: string;\n labelIcon?: IconComponent;\n caption?: string;\n status?: SliderPropStatus;\n min?: number;\n size?: SliderPropSize;\n max?: number;\n onChange?: SliderPropOnChange<RANGE>;\n onAfterChange?: SliderPropOnChange<RANGE>;\n leftSide?: Side;\n tooltipFormatter?: SliderPropTooltipFormatter;\n rightSide?: Side;\n tooltipDirection?: Direction;\n tooltipPossibleDirections?: Direction[];\n};\n\nexport type Line = {\n width: number;\n active: boolean;\n size?: number[];\n};\n\nexport type SliderLineProps = {\n view?: SliderPropView;\n lines: Line[];\n disabled?: boolean;\n hovered?: boolean;\n onHover?: (hovered: boolean) => void;\n};\n\nexport type SliderPointProps = PropsWithHTMLAttributes<\n {\n value?: number;\n disabled?: boolean;\n focused?: boolean;\n hovered?: boolean;\n withTooltip?: boolean;\n handlePress?: (typeButton: ActiveButton) => void;\n buttonLabel?: ActiveButton;\n buttonRef?: React.RefObject<HTMLButtonElement>;\n popoverPosition?: TrackPosition;\n tooltipFormatter?: SliderPropTooltipFormatter;\n onFocus?: (\n e: React.FocusEvent<HTMLButtonElement> | React.MouseEvent,\n button: ActiveButton,\n ) => void;\n onKeyPress?: (e: React.KeyboardEvent, typeButton?: ActiveButton) => void;\n onHover?: (hovered: boolean) => void;\n position: number;\n active?: boolean;\n tooltipZIndex?: number;\n tooltipDirection?: Direction;\n tooltipPossibleDirections?: Direction[];\n },\n HTMLButtonElement\n>;\n\nexport type SliderProps<RANGE extends boolean> = PropsWithHTMLAttributes<\n Props<RANGE>,\n HTMLDivElement\n>;\n\nexport type SliderComponent = <RANGE extends boolean = false>(\n props: SliderProps<RANGE>,\n) => React.ReactElement | null;\n\nexport const isRangeParams = (\n params: Props<boolean>,\n): params is Props<true> => {\n return !!params.range;\n};\n\nexport const isNotRangeParams = (\n params: Props<boolean>,\n): params is Props<false> => {\n return !params.range;\n};\n\nexport const defaultTooltipFormatter: SliderPropTooltipFormatter = (value) =>\n value?.toString() || '';\n\nexport type TrackPosition = {\n x: number;\n y: number;\n} | null;\n\nexport const getValueForInput = (\n props: SliderProps<boolean>,\n field: 0 | 1,\n): number => {\n if (isRangeParams(props)) {\n return props.value[field];\n }\n return props.value as number;\n};\n\ntype GetOnChangeForInputReturned = (props: {\n e?: React.ChangeEvent | React.MouseEvent | React.KeyboardEvent;\n value: number;\n}) => void;\n\nexport const getOnChangeForInput =\n (props: SliderProps<boolean>, field: 0 | 1): GetOnChangeForInputReturned =>\n ({ e, value }) => {\n if (!props.onChange) {\n return;\n }\n if (isNotRangeParams(props)) {\n props.onChange(value, { e });\n }\n if (isRangeParams(props)) {\n const newValue: SliderValue<true> = field\n ? [props.value[0], value]\n : [value, props.value[1]];\n props.onChange(newValue, {\n e,\n });\n }\n };\n\nexport const getIcon = (side?: Side) => {\n if (side !== 'input') {\n return side;\n }\n};\n\nexport const getMaxForStartField = (props: SliderProps<boolean>) => {\n if (isNotRangeParams(props)) {\n return props.max;\n }\n if (isRangeParams(props)) {\n return props.value[1];\n }\n};\n\nexport const getMinForEndField = (props: SliderProps<boolean>) => {\n if (isNotRangeParams(props)) {\n return props.min;\n }\n if (isRangeParams(props)) {\n return props.value[0];\n }\n};\n\nexport const getValidStep = (\n min: number,\n max: number,\n step?: number | number[],\n) => {\n if (step) {\n if (Array.isArray(step)) {\n return step;\n }\n if (step <= 0) {\n return 1;\n }\n return step;\n }\n return Math.abs((max - min) / 100);\n};\n"],"mappings":"AAOA,MAAO,IAAMA,iBAAgB,CAAG,CAAC,OAAD,CAAU,SAAV,CAAqB,SAArB,CAAzB,CAEP,MAAO,IAAMC,wBAAuB,CAAGD,gBAAgB,CAAC,CAAD,CAAhD,CAIP,MAAO,IAAME,eAAc,CAAG,CAAC,GAAD,CAAM,IAAN,CAAY,GAAZ,CAAiB,GAAjB,CAAvB,CAEP,MAAO,IAAMC,sBAAqC,CAAGD,cAAc,CAAC,CAAD,CAA5D,CA8FP,MAAO,IAAME,cAAa,CAAG,SAC3BC,CAD2B,CAED,CAC1B,MAAO,CAAC,CAACA,CAAM,CAACC,KACjB,CAJM,CAMP,MAAO,IAAMC,iBAAgB,CAAG,SAC9BF,CAD8B,CAEH,CAC3B,MAAO,CAACA,CAAM,CAACC,KAChB,CAJM,CAMP,MAAO,IAAME,wBAAmD,CAAG,SAACC,CAAD,QACjE,QAAAA,CAAK,WAALA,CAAA,QAAAA,CAAK,CAAEC,QAAP,KAAqB,EAD4C,CAA5D,CAQP,MAAO,IAAMC,iBAAgB,CAAG,SAC9BC,CAD8B,CAE9BC,CAF8B,CAGnB,OACPT,cAAa,CAACQ,CAAD,CADN,CAEFA,CAAK,CAACH,KAAN,CAAYI,CAAZ,CAFE,CAIJD,CAAK,CAACH,KACd,CARM,CAeP,MAAO,IAAMK,oBAAmB,CAC9B,SAACF,CAAD,CAA8BC,CAA9B,QACA,YAAkB,IAAfE,EAAe,GAAfA,CAAe,CAAZN,CAAY,GAAZA,KAAY,CAChB,GAAKG,CAAK,CAACI,QAAX,GAGIT,gBAAgB,CAACK,CAAD,CAHpB,EAIEA,CAAK,CAACI,QAAN,CAAeP,CAAf,CAAsB,CAAEM,CAAC,CAADA,CAAF,CAAtB,CAJF,CAMIX,aAAa,CAACQ,CAAD,CANjB,EAM0B,CACxB,GAAMK,EAA2B,CAAGJ,CAAK,CACrC,CAACD,CAAK,CAACH,KAAN,CAAY,CAAZ,CAAD,CAAiBA,CAAjB,CADqC,CAErC,CAACA,CAAD,CAAQG,CAAK,CAACH,KAAN,CAAY,CAAZ,CAAR,CAFJ,CAGAG,CAAK,CAACI,QAAN,CAAeC,CAAf,CAAyB,CACvBF,CAAC,CAADA,CADuB,CAAzB,CAGD,CACF,CAhBD,CADK,CAmBP,MAAO,IAAMG,QAAO,CAAG,SAACC,CAAD,CAAiB,CACtC,GAAa,OAAT,GAAAA,CAAJ,CACE,MAAOA,EAEV,CAJM,CAMP,MAAO,IAAMC,oBAAmB,CAAG,SAACR,CAAD,CAAiC,OAC9DL,iBAAgB,CAACK,CAAD,CAD8C,CAEzDA,CAAK,CAACS,GAFmD,CAI9DjB,aAAa,CAACQ,CAAD,CAJiD,CAKzDA,CAAK,CAACH,KAAN,CAAY,CAAZ,CALyD,OAOnE,CAPM,CASP,MAAO,IAAMa,kBAAiB,CAAG,SAACV,CAAD,CAAiC,OAC5DL,iBAAgB,CAACK,CAAD,CAD4C,CAEvDA,CAAK,CAACW,GAFiD,CAI5DnB,aAAa,CAACQ,CAAD,CAJ+C,CAKvDA,CAAK,CAACH,KAAN,CAAY,CAAZ,CALuD,OAOjE,CAPM,CASP,MAAO,IAAMe,aAAY,CAAG,SAC1BD,CAD0B,CAE1BF,CAF0B,CAG1BI,CAH0B,CAIvB,OACCA,EADD,CAEGC,KAAK,CAACC,OAAN,CAAcF,CAAd,CAFH,CAGQA,CAHR,CAKW,CAAR,EAAAA,CALH,CAMQ,CANR,CAQMA,CARN,CAUIG,IAAI,CAACC,GAAL,CAAS,CAACR,CAAG,CAAGE,CAAP,EAAc,GAAvB,CACR,CAfM"}
|
|
@@ -33,10 +33,10 @@ export declare const isRangeParams: (params: UseSliderProps<boolean>) => params
|
|
|
33
33
|
export declare const isNotRangeParams: (params: UseSliderProps<boolean>) => params is UseSliderProps<false>;
|
|
34
34
|
export declare const trackPosition: (event: TouchEvent | MouseEvent) => TrackPosition;
|
|
35
35
|
export declare const getActiveValue: (value: number | [number, number], active: ActiveButton) => number;
|
|
36
|
-
export declare const detectActiveButton: (
|
|
36
|
+
export declare const detectActiveButton: (position: TrackPosition, buttons: React.RefObject<HTMLButtonElement>[]) => ActiveButton;
|
|
37
37
|
export declare const getValidValue: (value: number, min: number, max: number, step?: number | number[]) => number;
|
|
38
38
|
export declare const isValidValue: (value: number, min: number, max: number, step?: number | number[]) => boolean;
|
|
39
39
|
export declare const getValueByPosition: (position: TrackPosition, sliderRef: React.RefObject<HTMLDivElement | HTMLButtonElement>, min: number, max: number, step?: number | number[]) => number;
|
|
40
40
|
export declare const getNewValue: (changedValue: number, currentValue: number | [number, number], step: number | number[], min: number, max: number, activeButton: ActiveButton) => number | [number, number];
|
|
41
41
|
export declare const analyzeDivisionValue: (value: number, step: number | number[], min: number, max: number) => number;
|
|
42
|
-
export declare const
|
|
42
|
+
export declare const valueToString: (value: number | number[] | undefined | null) => string;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{getSteps}from"../useSliderStationing";export var isRangeParams=function(a){return!!a.range};export var isNotRangeParams=function(a){return!a.range};export var trackPosition=function(a){return"clientX"in a?{x:a.clientX,y:a.clientY}:{x:a.changedTouches[0].clientX,y:a.changedTouches[0].clientY}};export var getActiveValue=function(a,b){return Array.isArray(a)?a["number"==typeof b?b:0]:a};export var detectActiveButton=function(a,b){var c=null;return b.forEach(function(b,d){var e=b.current;if(e&&a){var f=e.getBoundingClientRect(),g=f.x,h=f.y,i=f.width,j=f.height;g<=a.x&&g+i>=a.x&&h<=a.y&&h+j>=a.y&&(c=d,e.focus())}}),c};export var getValidValue=function(a,b,c,d){if("number"==typeof a){if(a>=c)return c;if(a<=b)return b;if(!Array.isArray(d)){var e=null===d||void 0===d?void 0:d.toString().split(".")[1],f=d||1;if(1>Math.abs(a))return+a.toFixed(e?e.length:0);if(a<b)return b;for(var g=b;g<=c;g+=f)if(a>=g&&a<g+f)return+(a<g+f/2?g:g+f).toFixed(e?e.length:0);return c}var h=a;return d.forEach(function(e,f){var g=b,i=c;0===f?i=d[f+1]:f===d.length-1?(g=e,i=c):(i=d[f+1],g=e),a<=i&&a>=g&&((i+g)/2>a?h=g:h=i)}),h}return a};export var isValidValue=function(a,b,c,d){return getValidValue(a,b,c,d)===a};export var getValueByPosition=function(a,b,c,d,e){if(b.current&&a){var f=b.current.getBoundingClientRect(),g=f.x,h=f.width,i=Math.abs(d-c),j=c+(a.x-g)*i/h;return getValidValue(j,c,d,e)}return 0};export var getNewValue=function(a,b,c,d,e,f){var g=getValidValue(analyzeDivisionValue(a,c,d,e),d,e,c);return Array.isArray(b)?1===f?[b[0],g]:[g,b[1]]:g};export var analyzeDivisionValue=function(a,b,c,d){var e=a;if(Array.isArray(b)){var f=getSteps(b,c,d);f.forEach(function(b){a&&b.min<a&&b.max>=a&&((b.max+b.min)/2>a?e=b.min:e=b.max)})}else{if(a>=d)return d;if(a<=c)return c;var g=(a-c)%b;e=g>b/2?b-g+a:a-g}return e};export var
|
|
1
|
+
import{getSteps}from"../useSliderStationing";export var isRangeParams=function(a){return!!a.range};export var isNotRangeParams=function(a){return!a.range};export var trackPosition=function(a){return"clientX"in a?{x:a.clientX,y:a.clientY}:{x:a.changedTouches[0].clientX,y:a.changedTouches[0].clientY}};export var getActiveValue=function(a,b){return Array.isArray(a)?a["number"==typeof b?b:0]:a};export var detectActiveButton=function(a,b){var c=null;return b.forEach(function(b,d){var e=b.current;if(e&&a){var f=e.getBoundingClientRect(),g=f.x,h=f.y,i=f.width,j=f.height;g<=a.x&&g+i>=a.x&&h<=a.y&&h+j>=a.y&&(c=d,e.focus())}}),c};export var getValidValue=function(a,b,c,d){if("number"==typeof a){if(a>=c)return c;if(a<=b)return b;if(!Array.isArray(d)){var e=null===d||void 0===d?void 0:d.toString().split(".")[1],f=d||1;if(1>Math.abs(a))return+a.toFixed(e?e.length:0);if(a<b)return b;for(var g=b;g<=c;g+=f)if(a>=g&&a<g+f)return+(a<g+f/2?g:g+f).toFixed(e?e.length:0);return c}var h=a;return d.forEach(function(e,f){var g=b,i=c;0===f?i=d[f+1]:f===d.length-1?(g=e,i=c):(i=d[f+1],g=e),a<=i&&a>=g&&((i+g)/2>a?h=g:h=i)}),h}return a};export var isValidValue=function(a,b,c,d){return getValidValue(a,b,c,d)===a};export var getValueByPosition=function(a,b,c,d,e){if(b.current&&a){var f=b.current.getBoundingClientRect(),g=f.x,h=f.width,i=Math.abs(d-c),j=c+(a.x-g)*i/h;return getValidValue(j,c,d,e)}return 0};export var getNewValue=function(a,b,c,d,e,f){var g=getValidValue(analyzeDivisionValue(a,c,d,e),d,e,c);return Array.isArray(b)?1===f?[b[0],g]:[g,b[1]]:g};export var analyzeDivisionValue=function(a,b,c,d){var e=a;if(Array.isArray(b)){var f=getSteps(b,c,d);f.forEach(function(b){a&&b.min<a&&b.max>=a&&((b.max+b.min)/2>a?e=b.min:e=b.max)})}else{if(a>=d)return d;if(a<=c)return c;var g=(a-c)%b;e=g>b/2?b-g+a:a-g}return e};export var valueToString=function(a){return a?"number"==typeof a?a.toString():a.join("-"):""};
|
|
2
2
|
//# sourceMappingURL=helper.js.map
|