@vkontakte/vkui 7.5.3 → 7.6.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/dist/components/Calendar/Calendar.js +6 -6
- package/dist/components/Calendar/Calendar.js.map +1 -1
- package/dist/components/CalendarDays/CalendarDays.js +3 -3
- package/dist/components/CalendarDays/CalendarDays.js.map +1 -1
- package/dist/components/CalendarRange/CalendarRange.d.ts.map +1 -1
- package/dist/components/CalendarRange/CalendarRange.js +16 -14
- package/dist/components/CalendarRange/CalendarRange.js.map +1 -1
- package/dist/components/CalendarRange/utils.d.ts.map +1 -1
- package/dist/components/CalendarRange/utils.js +6 -5
- package/dist/components/CalendarRange/utils.js.map +1 -1
- package/dist/components/Cell/Cell.d.ts.map +1 -1
- package/dist/components/Cell/Cell.js +6 -3
- package/dist/components/Cell/Cell.js.map +1 -1
- package/dist/components/CellButtonGroup/CellButtonGroup.d.ts +5 -3
- package/dist/components/CellButtonGroup/CellButtonGroup.d.ts.map +1 -1
- package/dist/components/Checkbox/Checkbox.d.ts +4 -0
- package/dist/components/Checkbox/Checkbox.d.ts.map +1 -1
- package/dist/components/Checkbox/Checkbox.js +4 -2
- package/dist/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/components/Checkbox/CheckboxSimple/CheckboxSimple.d.ts +1 -1
- package/dist/components/Checkbox/CheckboxSimple/CheckboxSimple.d.ts.map +1 -1
- package/dist/components/Checkbox/CheckboxSimple/CheckboxSimple.js +6 -3
- package/dist/components/Checkbox/CheckboxSimple/CheckboxSimple.js.map +1 -1
- package/dist/components/ChipsInputBase/Chip/Chip.d.ts +41 -2
- package/dist/components/ChipsInputBase/Chip/Chip.d.ts.map +1 -1
- package/dist/components/ChipsInputBase/Chip/Chip.js +7 -2
- package/dist/components/ChipsInputBase/Chip/Chip.js.map +1 -1
- package/dist/components/ChipsInputBase/ChipsInputBase.d.ts.map +1 -1
- package/dist/components/ChipsInputBase/ChipsInputBase.js +21 -1
- package/dist/components/ChipsInputBase/ChipsInputBase.js.map +1 -1
- package/dist/components/ChipsInputBase/types.d.ts +2 -35
- package/dist/components/ChipsInputBase/types.d.ts.map +1 -1
- package/dist/components/ChipsInputBase/types.js.map +1 -1
- package/dist/components/ChipsSelect/ChipsSelect.d.ts.map +1 -1
- package/dist/components/ChipsSelect/ChipsSelect.js +2 -4
- package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/components/ContentBadge/ContentBadge.d.ts +1 -1
- package/dist/components/ContentBadge/ContentBadge.d.ts.map +1 -1
- package/dist/components/ContentBadge/ContentBadge.js +15 -9
- package/dist/components/ContentBadge/ContentBadge.js.map +1 -1
- package/dist/components/ContentCard/ContentCard.d.ts +1 -1
- package/dist/components/ContentCard/ContentCard.d.ts.map +1 -1
- package/dist/components/ContentCard/ContentCard.js.map +1 -1
- package/dist/components/CustomSelect/CustomSelect.d.ts +16 -27
- package/dist/components/CustomSelect/CustomSelect.d.ts.map +1 -1
- package/dist/components/CustomSelect/CustomSelect.js +161 -428
- package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/components/CustomSelect/CustomSelectInput/CustomSelectInput.d.ts +3 -1
- package/dist/components/CustomSelect/CustomSelectInput/CustomSelectInput.d.ts.map +1 -1
- package/dist/components/CustomSelect/CustomSelectInput/CustomSelectInput.js +25 -5
- package/dist/components/CustomSelect/CustomSelectInput/CustomSelectInput.js.map +1 -1
- package/dist/components/CustomSelect/helpers.d.ts +12 -0
- package/dist/components/CustomSelect/helpers.d.ts.map +1 -0
- package/dist/components/CustomSelect/helpers.js +63 -0
- package/dist/components/CustomSelect/helpers.js.map +1 -0
- package/dist/components/CustomSelect/hooks/useAfterItems.d.ts +11 -0
- package/dist/components/CustomSelect/hooks/useAfterItems.d.ts.map +1 -0
- package/dist/components/CustomSelect/hooks/useAfterItems.js +57 -0
- package/dist/components/CustomSelect/hooks/useAfterItems.js.map +1 -0
- package/dist/components/CustomSelect/hooks/useDropdownOpenedController.d.ts +13 -0
- package/dist/components/CustomSelect/hooks/useDropdownOpenedController.d.ts.map +1 -0
- package/dist/components/CustomSelect/hooks/useDropdownOpenedController.js +60 -0
- package/dist/components/CustomSelect/hooks/useDropdownOpenedController.js.map +1 -0
- package/dist/components/CustomSelect/hooks/useFocusedOptionController.d.ts +20 -0
- package/dist/components/CustomSelect/hooks/useFocusedOptionController.d.ts.map +1 -0
- package/dist/components/CustomSelect/hooks/useFocusedOptionController.js +52 -0
- package/dist/components/CustomSelect/hooks/useFocusedOptionController.js.map +1 -0
- package/dist/components/CustomSelect/hooks/useInputKeyboardController.d.ts +13 -0
- package/dist/components/CustomSelect/hooks/useInputKeyboardController.d.ts.map +1 -0
- package/dist/components/CustomSelect/hooks/useInputKeyboardController.js +78 -0
- package/dist/components/CustomSelect/hooks/useInputKeyboardController.js.map +1 -0
- package/dist/components/CustomSelect/hooks/useInputValueController.d.ts +15 -0
- package/dist/components/CustomSelect/hooks/useInputValueController.d.ts.map +1 -0
- package/dist/components/CustomSelect/hooks/useInputValueController.js +43 -0
- package/dist/components/CustomSelect/hooks/useInputValueController.js.map +1 -0
- package/dist/components/CustomSelect/hooks/useScrollListController.d.ts +9 -0
- package/dist/components/CustomSelect/hooks/useScrollListController.d.ts.map +1 -0
- package/dist/components/CustomSelect/hooks/useScrollListController.js +37 -0
- package/dist/components/CustomSelect/hooks/useScrollListController.js.map +1 -0
- package/dist/components/CustomSelect/hooks/useSelectedOptionController.d.ts +18 -0
- package/dist/components/CustomSelect/hooks/useSelectedOptionController.d.ts.map +1 -0
- package/dist/components/CustomSelect/hooks/useSelectedOptionController.js +81 -0
- package/dist/components/CustomSelect/hooks/useSelectedOptionController.js.map +1 -0
- package/dist/components/CustomSelect/types.d.ts +33 -0
- package/dist/components/CustomSelect/types.d.ts.map +1 -0
- package/dist/components/CustomSelect/types.js +3 -0
- package/dist/components/CustomSelect/types.js.map +1 -0
- package/dist/components/CustomSelectDropdown/CustomSelectDropdown.d.ts.map +1 -1
- package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js +1 -0
- package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
- package/dist/components/DateInput/DateInput.d.ts.map +1 -1
- package/dist/components/DateInput/DateInput.js +3 -2
- package/dist/components/DateInput/DateInput.js.map +1 -1
- package/dist/components/DateRangeInput/DateRangeInput.d.ts.map +1 -1
- package/dist/components/DateRangeInput/DateRangeInput.js +4 -4
- package/dist/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/components/ModalCard/ModalCard.d.ts +1 -1
- package/dist/components/ModalCard/ModalCard.d.ts.map +1 -1
- package/dist/components/ModalCard/ModalCard.js +4 -2
- package/dist/components/ModalCard/ModalCard.js.map +1 -1
- package/dist/components/ModalCard/ModalCardInternal.d.ts +1 -1
- package/dist/components/ModalCard/ModalCardInternal.d.ts.map +1 -1
- package/dist/components/ModalCard/ModalCardInternal.js +5 -3
- package/dist/components/ModalCard/ModalCardInternal.js.map +1 -1
- package/dist/components/ModalCard/types.d.ts +6 -0
- package/dist/components/ModalCard/types.d.ts.map +1 -1
- package/dist/components/ModalCard/types.js.map +1 -1
- package/dist/components/ModalOutlet/ModalOutlet.d.ts +2 -1
- package/dist/components/ModalOutlet/ModalOutlet.d.ts.map +1 -1
- package/dist/components/ModalOutlet/ModalOutlet.js +4 -3
- package/dist/components/ModalOutlet/ModalOutlet.js.map +1 -1
- package/dist/components/ModalPage/ModalPage.d.ts +1 -1
- package/dist/components/ModalPage/ModalPage.d.ts.map +1 -1
- package/dist/components/ModalPage/ModalPage.js +3 -1
- package/dist/components/ModalPage/ModalPage.js.map +1 -1
- package/dist/components/ModalPage/ModalPageInternal.d.ts +1 -1
- package/dist/components/ModalPage/ModalPageInternal.d.ts.map +1 -1
- package/dist/components/ModalPage/ModalPageInternal.js +5 -3
- package/dist/components/ModalPage/ModalPageInternal.js.map +1 -1
- package/dist/components/ModalPage/types.d.ts +6 -0
- package/dist/components/ModalPage/types.d.ts.map +1 -1
- package/dist/components/ModalPage/types.js.map +1 -1
- package/dist/components/ModalRoot/ModalRoot.d.ts +1 -1
- package/dist/components/ModalRoot/ModalRoot.d.ts.map +1 -1
- package/dist/components/ModalRoot/ModalRoot.js +4 -2
- package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/components/ModalRoot/types.d.ts +4 -0
- package/dist/components/ModalRoot/types.d.ts.map +1 -1
- package/dist/components/ModalRoot/types.js.map +1 -1
- package/dist/components/ModalRoot/useModalManager.d.ts +3 -1
- package/dist/components/ModalRoot/useModalManager.d.ts.map +1 -1
- package/dist/components/ModalRoot/useModalManager.js +2 -1
- package/dist/components/ModalRoot/useModalManager.js.map +1 -1
- package/dist/components/OnboardingTooltip/OnboardingTooltip.d.ts +2 -2
- package/dist/components/OnboardingTooltip/OnboardingTooltip.d.ts.map +1 -1
- package/dist/components/OnboardingTooltip/OnboardingTooltip.js +4 -2
- package/dist/components/OnboardingTooltip/OnboardingTooltip.js.map +1 -1
- package/dist/components/Popover/Popover.d.ts +1 -1
- package/dist/components/Popover/Popover.d.ts.map +1 -1
- package/dist/components/Popover/Popover.js.map +1 -1
- package/dist/components/Popover/usePopover.d.ts +1 -1
- package/dist/components/Popover/usePopover.d.ts.map +1 -1
- package/dist/components/Popover/usePopover.js +3 -1
- package/dist/components/Popover/usePopover.js.map +1 -1
- package/dist/components/Popper/Popper.d.ts +2 -2
- package/dist/components/Popper/Popper.d.ts.map +1 -1
- package/dist/components/Popper/Popper.js +3 -1
- package/dist/components/Popper/Popper.js.map +1 -1
- package/dist/components/Select/Select.d.ts +2 -1
- package/dist/components/Select/Select.d.ts.map +1 -1
- package/dist/components/Select/Select.js +5 -2
- package/dist/components/Select/Select.js.map +1 -1
- package/dist/components/SelectionControl/SelectionControl.d.ts +5 -1
- package/dist/components/SelectionControl/SelectionControl.d.ts.map +1 -1
- package/dist/components/SelectionControl/SelectionControl.js +22 -6
- package/dist/components/SelectionControl/SelectionControl.js.map +1 -1
- package/dist/components/SelectionControl/SelectionControlContext.d.ts +7 -0
- package/dist/components/SelectionControl/SelectionControlContext.d.ts.map +1 -0
- package/dist/components/SelectionControl/SelectionControlContext.js +7 -0
- package/dist/components/SelectionControl/SelectionControlContext.js.map +1 -0
- package/dist/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.d.ts.map +1 -1
- package/dist/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.js +3 -1
- package/dist/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.js.map +1 -1
- package/dist/components/SimpleCell/SimpleCell.d.ts.map +1 -1
- package/dist/components/SimpleCell/SimpleCell.js +29 -8
- package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/components/Skeleton/Skeleton.js +1 -1
- package/dist/components/Skeleton/Skeleton.js.map +1 -1
- package/dist/components/Tabs/Tabs.d.ts.map +1 -1
- package/dist/components/Tabs/Tabs.js +19 -9
- package/dist/components/Tabs/Tabs.js.map +1 -1
- package/dist/components/Tabs/TabsController.d.ts +2 -2
- package/dist/components/Tabs/TabsController.d.ts.map +1 -1
- package/dist/components/Tabs/TabsController.js.map +1 -1
- package/dist/components/Tabs/TabsControllerContext.d.ts +5 -0
- package/dist/components/Tabs/TabsControllerContext.d.ts.map +1 -0
- package/dist/components/Tabs/TabsControllerContext.js +4 -0
- package/dist/components/Tabs/TabsControllerContext.js.map +1 -0
- package/dist/components/Tabs/TabsModeContext.d.ts +0 -2
- package/dist/components/Tabs/TabsModeContext.d.ts.map +1 -1
- package/dist/components/Tabs/TabsModeContext.js +1 -2
- package/dist/components/Tabs/TabsModeContext.js.map +1 -1
- package/dist/components/TabsItem/TabsItem.d.ts.map +1 -1
- package/dist/components/TabsItem/TabsItem.js +3 -1
- package/dist/components/TabsItem/TabsItem.js.map +1 -1
- package/dist/components/Tooltip/Tooltip.d.ts +1 -1
- package/dist/components/Tooltip/Tooltip.d.ts.map +1 -1
- package/dist/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/components/Tooltip/useTooltip.d.ts +1 -1
- package/dist/components/Tooltip/useTooltip.d.ts.map +1 -1
- package/dist/components/Tooltip/useTooltip.js +3 -1
- package/dist/components/Tooltip/useTooltip.js.map +1 -1
- package/dist/components/Typography/Caption/Caption.d.ts +2 -0
- package/dist/components/Typography/Caption/Caption.d.ts.map +1 -1
- package/dist/components/Typography/Caption/Caption.js +4 -1
- package/dist/components/Typography/Caption/Caption.js.map +1 -1
- package/dist/components/Typography/Footnote/Footnote.d.ts +2 -0
- package/dist/components/Typography/Footnote/Footnote.d.ts.map +1 -1
- package/dist/components/Typography/Footnote/Footnote.js +4 -1
- package/dist/components/Typography/Footnote/Footnote.js.map +1 -1
- package/dist/components/Typography/Typography.d.ts +1 -0
- package/dist/components/Typography/Typography.d.ts.map +1 -1
- package/dist/components/Typography/Typography.js +7 -1
- package/dist/components/Typography/Typography.js.map +1 -1
- package/dist/components/View/View.d.ts.map +1 -1
- package/dist/components/View/View.js +2 -1
- package/dist/components/View/View.js.map +1 -1
- package/dist/components/View/ViewInfinite.d.ts.map +1 -1
- package/dist/components/View/ViewInfinite.js +2 -1
- package/dist/components/View/ViewInfinite.js.map +1 -1
- package/dist/components.css +1 -1
- package/dist/components.css.map +1 -1
- package/dist/cssm/components/Banner/Banner.module.css +1 -6
- package/dist/cssm/components/Calendar/Calendar.js +6 -6
- package/dist/cssm/components/Calendar/Calendar.js.map +1 -1
- package/dist/cssm/components/CalendarDays/CalendarDays.js +3 -3
- package/dist/cssm/components/CalendarDays/CalendarDays.js.map +1 -1
- package/dist/cssm/components/CalendarRange/CalendarRange.js +16 -14
- package/dist/cssm/components/CalendarRange/CalendarRange.js.map +1 -1
- package/dist/cssm/components/CalendarRange/utils.js +6 -5
- package/dist/cssm/components/CalendarRange/utils.js.map +1 -1
- package/dist/cssm/components/Cell/Cell.js +3 -1
- package/dist/cssm/components/Cell/Cell.js.map +1 -1
- package/dist/cssm/components/Checkbox/Checkbox.js +2 -1
- package/dist/cssm/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/cssm/components/Checkbox/CheckboxSimple/CheckboxSimple.js +4 -2
- package/dist/cssm/components/Checkbox/CheckboxSimple/CheckboxSimple.js.map +1 -1
- package/dist/cssm/components/Checkbox/CheckboxSimple/CheckboxSimple.module.css +11 -2
- package/dist/cssm/components/ChipsInputBase/Chip/Chip.js +6 -2
- package/dist/cssm/components/ChipsInputBase/Chip/Chip.js.map +1 -1
- package/dist/cssm/components/ChipsInputBase/Chip/Chip.module.css +8 -1
- package/dist/cssm/components/ChipsInputBase/ChipsInputBase.js +21 -1
- package/dist/cssm/components/ChipsInputBase/ChipsInputBase.js.map +1 -1
- package/dist/cssm/components/ChipsInputBase/types.js.map +1 -1
- package/dist/cssm/components/ChipsSelect/ChipsSelect.js +2 -4
- package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/cssm/components/ContentBadge/ContentBadge.js +14 -8
- package/dist/cssm/components/ContentBadge/ContentBadge.js.map +1 -1
- package/dist/cssm/components/ContentCard/ContentCard.js.map +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelect.js +154 -421
- package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelectInput/CustomSelectInput.js +22 -4
- package/dist/cssm/components/CustomSelect/CustomSelectInput/CustomSelectInput.js.map +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelectInput/CustomSelectInput.module.css +12 -0
- package/dist/cssm/components/CustomSelect/helpers.js +62 -0
- package/dist/cssm/components/CustomSelect/helpers.js.map +1 -0
- package/dist/cssm/components/CustomSelect/hooks/useAfterItems.js +58 -0
- package/dist/cssm/components/CustomSelect/hooks/useAfterItems.js.map +1 -0
- package/dist/cssm/components/CustomSelect/hooks/useDropdownOpenedController.js +60 -0
- package/dist/cssm/components/CustomSelect/hooks/useDropdownOpenedController.js.map +1 -0
- package/dist/cssm/components/CustomSelect/hooks/useFocusedOptionController.js +52 -0
- package/dist/cssm/components/CustomSelect/hooks/useFocusedOptionController.js.map +1 -0
- package/dist/cssm/components/CustomSelect/hooks/useInputKeyboardController.js +78 -0
- package/dist/cssm/components/CustomSelect/hooks/useInputKeyboardController.js.map +1 -0
- package/dist/cssm/components/CustomSelect/hooks/useInputValueController.js +43 -0
- package/dist/cssm/components/CustomSelect/hooks/useInputValueController.js.map +1 -0
- package/dist/cssm/components/CustomSelect/hooks/useScrollListController.js +37 -0
- package/dist/cssm/components/CustomSelect/hooks/useScrollListController.js.map +1 -0
- package/dist/cssm/components/CustomSelect/hooks/useSelectedOptionController.js +81 -0
- package/dist/cssm/components/CustomSelect/hooks/useSelectedOptionController.js.map +1 -0
- package/dist/cssm/components/CustomSelect/types.js +3 -0
- package/dist/cssm/components/CustomSelect/types.js.map +1 -0
- package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js +1 -0
- package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
- package/dist/cssm/components/DateInput/DateInput.js +3 -2
- package/dist/cssm/components/DateInput/DateInput.js.map +1 -1
- package/dist/cssm/components/DateRangeInput/DateRangeInput.js +4 -4
- package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/cssm/components/ModalCard/ModalCard.js +2 -1
- package/dist/cssm/components/ModalCard/ModalCard.js.map +1 -1
- package/dist/cssm/components/ModalCard/ModalCardInternal.js +3 -2
- package/dist/cssm/components/ModalCard/ModalCardInternal.js.map +1 -1
- package/dist/cssm/components/ModalCard/types.js.map +1 -1
- package/dist/cssm/components/ModalOutlet/ModalOutlet.js +2 -2
- package/dist/cssm/components/ModalOutlet/ModalOutlet.js.map +1 -1
- package/dist/cssm/components/ModalOutlet/ModalOutlet.module.css +4 -0
- package/dist/cssm/components/ModalOverlay/ModalOverlay.module.css +1 -1
- package/dist/cssm/components/ModalPage/ModalPage.js +2 -1
- package/dist/cssm/components/ModalPage/ModalPage.js.map +1 -1
- package/dist/cssm/components/ModalPage/ModalPage.module.css +1 -0
- package/dist/cssm/components/ModalPage/ModalPageInternal.js +3 -2
- package/dist/cssm/components/ModalPage/ModalPageInternal.js.map +1 -1
- package/dist/cssm/components/ModalPage/types.js.map +1 -1
- package/dist/cssm/components/ModalRoot/ModalRoot.js +4 -2
- package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/cssm/components/ModalRoot/types.js.map +1 -1
- package/dist/cssm/components/ModalRoot/useModalManager.js +2 -1
- package/dist/cssm/components/ModalRoot/useModalManager.js.map +1 -1
- package/dist/cssm/components/OnboardingTooltip/OnboardingTooltip.js +3 -2
- package/dist/cssm/components/OnboardingTooltip/OnboardingTooltip.js.map +1 -1
- package/dist/cssm/components/Popover/Popover.js.map +1 -1
- package/dist/cssm/components/Popover/usePopover.js +2 -1
- package/dist/cssm/components/Popover/usePopover.js.map +1 -1
- package/dist/cssm/components/Popper/Popper.js +2 -1
- package/dist/cssm/components/Popper/Popper.js.map +1 -1
- package/dist/cssm/components/Select/Select.js +1 -1
- package/dist/cssm/components/Select/Select.js.map +1 -1
- package/dist/cssm/components/SelectionControl/SelectionControl.js +16 -6
- package/dist/cssm/components/SelectionControl/SelectionControl.js.map +1 -1
- package/dist/cssm/components/SelectionControl/SelectionControl.module.css +6 -3
- package/dist/cssm/components/SelectionControl/SelectionControlContext.js +7 -0
- package/dist/cssm/components/SelectionControl/SelectionControlContext.js.map +1 -0
- package/dist/cssm/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.js +3 -1
- package/dist/cssm/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.js.map +1 -1
- package/dist/cssm/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.module.css +6 -3
- package/dist/cssm/components/SimpleCell/SimpleCell.js +29 -8
- package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/cssm/components/Skeleton/Skeleton.js +1 -1
- package/dist/cssm/components/Skeleton/Skeleton.js.map +1 -1
- package/dist/cssm/components/Slider/SliderThumb/SliderThumb.module.css +2 -1
- package/dist/cssm/components/Tabs/Tabs.js +19 -9
- package/dist/cssm/components/Tabs/Tabs.js.map +1 -1
- package/dist/cssm/components/Tabs/TabsController.js.map +1 -1
- package/dist/cssm/components/Tabs/TabsControllerContext.js +4 -0
- package/dist/cssm/components/Tabs/TabsControllerContext.js.map +1 -0
- package/dist/cssm/components/Tabs/TabsModeContext.js +1 -2
- package/dist/cssm/components/Tabs/TabsModeContext.js.map +1 -1
- package/dist/cssm/components/TabsItem/TabsItem.js +3 -1
- package/dist/cssm/components/TabsItem/TabsItem.js.map +1 -1
- package/dist/cssm/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/cssm/components/Tooltip/useTooltip.js +2 -1
- package/dist/cssm/components/Tooltip/useTooltip.js.map +1 -1
- package/dist/cssm/components/Typography/Caption/Caption.js +4 -1
- package/dist/cssm/components/Typography/Caption/Caption.js.map +1 -1
- package/dist/cssm/components/Typography/Footnote/Footnote.js +4 -1
- package/dist/cssm/components/Typography/Footnote/Footnote.js.map +1 -1
- package/dist/cssm/components/Typography/Typography.js +7 -1
- package/dist/cssm/components/Typography/Typography.js.map +1 -1
- package/dist/cssm/components/View/View.js +2 -1
- package/dist/cssm/components/View/View.js.map +1 -1
- package/dist/cssm/components/View/View.module.css +1 -1
- package/dist/cssm/components/View/ViewInfinite.js +2 -1
- package/dist/cssm/components/View/ViewInfinite.js.map +1 -1
- package/dist/cssm/components/VisuallyHidden/VisuallyHidden.module.css +0 -2
- package/dist/cssm/hooks/useCalendar.js +6 -4
- package/dist/cssm/hooks/useCalendar.js.map +1 -1
- package/dist/cssm/hooks/useFloatingElement.js +3 -2
- package/dist/cssm/hooks/useFloatingElement.js.map +1 -1
- package/dist/cssm/hooks/useTodayDate.js +3 -2
- package/dist/cssm/hooks/useTodayDate.js.map +1 -1
- package/dist/cssm/index.js.map +1 -1
- package/dist/cssm/lib/accessibility.js +8 -0
- package/dist/cssm/lib/accessibility.js.map +1 -1
- package/dist/cssm/lib/calendar.js +9 -7
- package/dist/cssm/lib/calendar.js.map +1 -1
- package/dist/cssm/lib/date.js +66 -3
- package/dist/cssm/lib/date.js.map +1 -1
- package/dist/cssm/lib/floating/useFloatingMiddlewaresBootstrap/index.js +18 -8
- package/dist/cssm/lib/floating/useFloatingMiddlewaresBootstrap/index.js.map +1 -1
- package/dist/cssm/lib/floating/useFloatingWithInteractions/types.js.map +1 -1
- package/dist/cssm/lib/touch/UIPanGestureRecognizer.js +2 -2
- package/dist/cssm/lib/touch/UIPanGestureRecognizer.js.map +1 -1
- package/dist/cssm/lib/utils.js +1 -0
- package/dist/cssm/lib/utils.js.map +1 -1
- package/dist/cssm/styles/themes.css +1 -1
- package/dist/hooks/useCalendar.d.ts.map +1 -1
- package/dist/hooks/useCalendar.js +6 -4
- package/dist/hooks/useCalendar.js.map +1 -1
- package/dist/hooks/useFloatingElement.d.ts +1 -1
- package/dist/hooks/useFloatingElement.d.ts.map +1 -1
- package/dist/hooks/useFloatingElement.js +3 -2
- package/dist/hooks/useFloatingElement.js.map +1 -1
- package/dist/hooks/useTodayDate.d.ts.map +1 -1
- package/dist/hooks/useTodayDate.js +3 -2
- package/dist/hooks/useTodayDate.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/accessibility.d.ts +1 -1
- package/dist/lib/accessibility.d.ts.map +1 -1
- package/dist/lib/accessibility.js +8 -0
- package/dist/lib/accessibility.js.map +1 -1
- package/dist/lib/calendar.d.ts.map +1 -1
- package/dist/lib/calendar.js +9 -7
- package/dist/lib/calendar.js.map +1 -1
- package/dist/lib/date.d.ts +31 -1
- package/dist/lib/date.d.ts.map +1 -1
- package/dist/lib/date.js +67 -3
- package/dist/lib/date.js.map +1 -1
- package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.d.ts +6 -1
- package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.d.ts.map +1 -1
- package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.js +18 -8
- package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.js.map +1 -1
- package/dist/lib/floating/useFloatingWithInteractions/types.d.ts +2 -0
- package/dist/lib/floating/useFloatingWithInteractions/types.d.ts.map +1 -1
- package/dist/lib/floating/useFloatingWithInteractions/types.js.map +1 -1
- package/dist/lib/touch/UIPanGestureRecognizer.d.ts.map +1 -1
- package/dist/lib/touch/UIPanGestureRecognizer.js +2 -2
- package/dist/lib/touch/UIPanGestureRecognizer.js.map +1 -1
- package/dist/lib/utils.d.ts +1 -0
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js +1 -0
- package/dist/lib/utils.js.map +1 -1
- package/dist/vkui.css +1 -1
- package/dist/vkui.css.map +1 -1
- package/package.json +6 -7
- package/src/components/Banner/Banner.module.css +1 -6
- package/src/components/Banner/Banner.module.css.d.ts.map +1 -1
- package/src/components/Calendar/Calendar.tsx +6 -6
- package/src/components/CalendarDays/CalendarDays.tsx +3 -3
- package/src/components/CalendarRange/CalendarRange.tsx +15 -20
- package/src/components/CalendarRange/utils.ts +7 -6
- package/src/components/Cell/Cell.tsx +3 -0
- package/src/components/Checkbox/Checkbox.tsx +6 -0
- package/src/components/Checkbox/CheckboxSimple/CheckboxSimple.module.css +7 -2
- package/src/components/Checkbox/CheckboxSimple/CheckboxSimple.module.css.d.ts.map +1 -1
- package/src/components/Checkbox/CheckboxSimple/CheckboxSimple.tsx +12 -3
- package/src/components/ChipsInputBase/Chip/Chip.module.css +8 -1
- package/src/components/ChipsInputBase/Chip/Chip.module.css.d.ts.map +1 -1
- package/src/components/ChipsInputBase/Chip/Chip.tsx +55 -1
- package/src/components/ChipsInputBase/ChipsInputBase.tsx +26 -4
- package/src/components/ChipsInputBase/types.ts +2 -45
- package/src/components/ChipsSelect/ChipsSelect.tsx +2 -4
- package/src/components/ContentBadge/ContentBadge.tsx +18 -12
- package/src/components/ContentCard/ContentCard.tsx +1 -1
- package/src/components/CustomSelect/CustomSelect.tsx +216 -562
- package/src/components/CustomSelect/CustomSelectInput/CustomSelectInput.module.css +12 -0
- package/src/components/CustomSelect/CustomSelectInput/CustomSelectInput.module.css.d.ts.map +1 -1
- package/src/components/CustomSelect/CustomSelectInput/CustomSelectInput.tsx +25 -2
- package/src/components/CustomSelect/helpers.ts +103 -0
- package/src/components/CustomSelect/hooks/useAfterItems.tsx +89 -0
- package/src/components/CustomSelect/hooks/useDropdownOpenedController.ts +61 -0
- package/src/components/CustomSelect/hooks/useFocusedOptionController.ts +86 -0
- package/src/components/CustomSelect/hooks/useInputKeyboardController.ts +96 -0
- package/src/components/CustomSelect/hooks/useInputValueController.ts +58 -0
- package/src/components/CustomSelect/hooks/useScrollListController.ts +46 -0
- package/src/components/CustomSelect/hooks/useSelectedOptionController.ts +132 -0
- package/src/components/CustomSelect/types.ts +38 -0
- package/src/components/CustomSelectDropdown/CustomSelectDropdown.tsx +1 -0
- package/src/components/DateInput/DateInput.tsx +9 -3
- package/src/components/DateRangeInput/DateRangeInput.tsx +9 -6
- package/src/components/ModalCard/ModalCard.tsx +2 -0
- package/src/components/ModalCard/ModalCardInternal.tsx +8 -2
- package/src/components/ModalCard/types.ts +6 -0
- package/src/components/ModalOutlet/ModalOutlet.module.css +4 -0
- package/src/components/ModalOutlet/ModalOutlet.module.css.d.ts.map +1 -1
- package/src/components/ModalOutlet/ModalOutlet.tsx +8 -1
- package/src/components/ModalOverlay/ModalOverlay.module.css +1 -1
- package/src/components/ModalPage/ModalPage.module.css +1 -0
- package/src/components/ModalPage/ModalPage.module.css.d.ts.map +1 -1
- package/src/components/ModalPage/ModalPage.tsx +2 -0
- package/src/components/ModalPage/ModalPageInternal.tsx +8 -2
- package/src/components/ModalPage/types.ts +6 -0
- package/src/components/ModalRoot/ModalRoot.tsx +19 -6
- package/src/components/ModalRoot/types.ts +5 -0
- package/src/components/ModalRoot/useModalManager.tsx +4 -0
- package/src/components/OnboardingTooltip/OnboardingTooltip.tsx +3 -0
- package/src/components/Popover/Popover.tsx +1 -0
- package/src/components/Popover/usePopover.tsx +2 -0
- package/src/components/Popper/Popper.tsx +3 -0
- package/src/components/Select/Select.tsx +5 -5
- package/src/components/SelectionControl/SelectionControl.module.css +6 -3
- package/src/components/SelectionControl/SelectionControl.module.css.d.ts.map +1 -1
- package/src/components/SelectionControl/SelectionControl.tsx +30 -8
- package/src/components/SelectionControl/SelectionControlContext.ts +7 -0
- package/src/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.module.css +6 -3
- package/src/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.module.css.d.ts.map +1 -1
- package/src/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.tsx +7 -1
- package/src/components/SimpleCell/SimpleCell.tsx +5 -0
- package/src/components/Skeleton/Skeleton.tsx +1 -1
- package/src/components/Slider/SliderThumb/SliderThumb.module.css +1 -1
- package/src/components/Tabs/Tabs.tsx +16 -12
- package/src/components/Tabs/TabsController.ts +2 -2
- package/src/components/Tabs/TabsControllerContext.ts +7 -0
- package/src/components/Tabs/TabsModeContext.ts +0 -3
- package/src/components/TabsItem/TabsItem.tsx +5 -9
- package/src/components/Tooltip/Tooltip.tsx +1 -0
- package/src/components/Tooltip/useTooltip.tsx +2 -0
- package/src/components/Typography/Caption/Caption.tsx +14 -6
- package/src/components/Typography/Footnote/Footnote.tsx +10 -6
- package/src/components/Typography/Typography.tsx +9 -2
- package/src/components/View/View.module.css +1 -1
- package/src/components/View/View.tsx +2 -1
- package/src/components/View/ViewInfinite.tsx +2 -1
- package/src/components/VisuallyHidden/VisuallyHidden.module.css +0 -2
- package/src/components/VisuallyHidden/VisuallyHidden.module.css.d.ts.map +1 -1
- package/src/hooks/useCalendar.ts +6 -4
- package/src/hooks/useFloatingElement.tsx +2 -0
- package/src/hooks/useTodayDate.ts +3 -2
- package/src/index.ts +5 -3
- package/src/lib/accessibility.ts +4 -0
- package/src/lib/calendar.ts +8 -12
- package/src/lib/date.ts +82 -3
- package/src/lib/floating/useFloatingMiddlewaresBootstrap/index.ts +23 -10
- package/src/lib/floating/useFloatingWithInteractions/types.ts +2 -0
- package/src/lib/touch/UIPanGestureRecognizer.ts +2 -2
- package/src/lib/utils.ts +3 -0
package/dist/lib/date.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
|
|
2
|
+
import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
|
|
3
|
+
import { isSameDate } from "@vkontakte/vkjs";
|
|
1
4
|
import { TZDateMini } from "@vkontakte/vkui-date-fns-tz";
|
|
2
|
-
import { lightFormat } from "date-fns";
|
|
3
5
|
export function parse(input, format, referenceDate = new Date()) {
|
|
4
6
|
const match2 = /^\d\d/; // 00 - 99
|
|
5
7
|
const match4 = /^\d{4}/; // 0000 - 9999
|
|
@@ -132,11 +134,73 @@ export const convertDateFromTimeZone = (date, timezone)=>{
|
|
|
132
134
|
const systemTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
133
135
|
return date ? TZDateMini.tz(systemTimezone, date) : undefined;
|
|
134
136
|
};
|
|
135
|
-
|
|
136
|
-
|
|
137
|
+
const dateOptions = {
|
|
138
|
+
day: '2-digit',
|
|
139
|
+
month: '2-digit',
|
|
140
|
+
year: 'numeric'
|
|
141
|
+
};
|
|
142
|
+
// dd.MM.yyyy
|
|
143
|
+
export const dateFormatter = /*#__PURE__*/ new Intl.DateTimeFormat('ru-RU', dateOptions);
|
|
144
|
+
class DateTimeFormat extends Intl.DateTimeFormat {
|
|
145
|
+
format(date) {
|
|
146
|
+
return super.format(date).replace(',', '');
|
|
147
|
+
}
|
|
148
|
+
constructor(){
|
|
149
|
+
super('ru-RU', _object_spread_props(_object_spread({}, dateOptions), {
|
|
150
|
+
hour: '2-digit',
|
|
151
|
+
minute: '2-digit'
|
|
152
|
+
}));
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
// dd.MM.yyyy HH:mm
|
|
156
|
+
export const dateTimeFormatter = /*#__PURE__*/ new DateTimeFormat();
|
|
157
|
+
/**
|
|
158
|
+
* Возвращает дату конца месяца
|
|
159
|
+
*/ export function endOfMonth(date) {
|
|
160
|
+
const result = new Date(date);
|
|
161
|
+
const month = result.getMonth();
|
|
162
|
+
result.setFullYear(result.getFullYear(), month + 1, 0);
|
|
163
|
+
result.setHours(23, 59, 59, 999);
|
|
164
|
+
return result;
|
|
165
|
+
}
|
|
166
|
+
export function endOfDay(date) {
|
|
167
|
+
const result = new Date(date);
|
|
168
|
+
result.setHours(23, 59, 59, 999);
|
|
169
|
+
return result;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Проверяет, что переданные даты относятся к одному и тому же месяцу
|
|
173
|
+
*
|
|
174
|
+
* @example
|
|
175
|
+
* ```ts
|
|
176
|
+
* import assert from 'node:assert';
|
|
177
|
+
* import { isSameMonth } from './date.ts';
|
|
178
|
+
*
|
|
179
|
+
* const d1 = new Date();
|
|
180
|
+
* const d2 = new Date();
|
|
181
|
+
* assert.ok(isSameMonth(d1, d2));
|
|
182
|
+
* ```
|
|
183
|
+
*/ export function isSameMonth(d1, d2) {
|
|
184
|
+
return d1.getMonth() === d2.getMonth() && d1.getFullYear() === d2.getFullYear();
|
|
185
|
+
}
|
|
186
|
+
export function isLastDayOfMonth(date) {
|
|
187
|
+
return +endOfDay(date) === +endOfMonth(date);
|
|
188
|
+
}
|
|
189
|
+
export function isWithinInterval(date, interval) {
|
|
190
|
+
const [startTime, endTime] = interval.sort((a, b)=>+a - +b);
|
|
191
|
+
return date >= startTime && date <= endTime;
|
|
192
|
+
}
|
|
193
|
+
export function isToday(date) {
|
|
194
|
+
return isSameDate(date, new Date());
|
|
195
|
+
}
|
|
196
|
+
export function isYesterday(date) {
|
|
197
|
+
const yesterday = new Date();
|
|
198
|
+
yesterday.setDate(yesterday.getDate() - 1);
|
|
199
|
+
return isSameDate(date, yesterday);
|
|
137
200
|
}
|
|
138
201
|
export function isMatch(input, format) {
|
|
139
202
|
return !isNaN(+parse(input, format));
|
|
140
203
|
}
|
|
204
|
+
export const millisecondsInSecond = 1000;
|
|
141
205
|
|
|
142
206
|
//# sourceMappingURL=date.js.map
|
package/dist/lib/date.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/lib/date.ts"],"sourcesContent":["import { TZDateMini } from '@vkontakte/vkui-date-fns-tz';\nimport { lightFormat } from 'date-fns';\n\nexport function parse(input: string, format: string, referenceDate: Date = new Date()): Date {\n const match2 = /^\\d\\d/; // 00 - 99\n const match4 = /^\\d{4}/; // 0000 - 9999\n\n const entries: Array<[string, RegExp, (val: string) => [string, number, boolean]]> = [\n ['yyyy', match4, (val) => ['Y', +val, true]],\n [\n 'MM',\n match2,\n (val) => {\n const numVal = +val;\n const okay = numVal > 0 && numVal <= 12;\n\n return ['M', numVal - 1, okay];\n },\n ],\n ['dd', match2, (val) => ['D', +val, true]],\n [\n 'HH',\n match2,\n (val) => {\n const numVal = parseInt(val, 10);\n const okay = numVal >= 0 && numVal < 24;\n\n return ['h', numVal, okay];\n },\n ],\n [\n 'mm',\n match2,\n (val) => {\n const numVal = parseInt(val, 10);\n const okay = numVal >= 0 && numVal < 60;\n\n return ['m', numVal, okay];\n },\n ],\n ];\n\n const superRegExp = new RegExp(entries.map((item) => item[0]).join('|'), 'g');\n\n const store: {\n [key: string]: number;\n } = {\n y: referenceDate.getFullYear(),\n M: referenceDate.getMonth(),\n d: referenceDate.getDate(),\n h: referenceDate.getHours(),\n m: referenceDate.getMinutes(),\n s: referenceDate.getSeconds(),\n ms: referenceDate.getMilliseconds(),\n };\n\n let prevInputIndex = 0;\n let lastNonFormatting = '';\n let lastFormatIndex = 0;\n let found = false;\n\n while (true) {\n const match = superRegExp.exec(format);\n\n if (!match) {\n break;\n }\n\n const length = match[0].length;\n const atIndex = superRegExp.lastIndex - length;\n\n const item = entries.find((item) => item[0] === match[0])!;\n\n lastNonFormatting = format.slice(lastFormatIndex, atIndex);\n lastFormatIndex = superRegExp.lastIndex;\n\n if (\n input.slice(prevInputIndex, prevInputIndex + lastNonFormatting.length) !== lastNonFormatting\n ) {\n return new Date('');\n }\n\n const value = input.slice(prevInputIndex + lastNonFormatting.length).match(item[1]);\n\n if (!value) {\n return new Date('');\n }\n\n prevInputIndex = prevInputIndex + lastNonFormatting.length + value[0].length;\n\n const [key, newValue, okay] = item[2](value[0]);\n\n if (!okay) {\n return new Date('');\n }\n\n store[key] = newValue;\n found = true;\n }\n\n if (!found) {\n return new Date('');\n }\n\n const date = new Date(store.Y, store.M, store.D, store.h, store.m, store.s, store.ms);\n\n // Since days of months are dynamic, they can't be validated in entries,\n // so we check it here, in the finalized date\n if (date.getMonth() !== store.M || date.getDate() !== store.D) {\n return new Date('');\n }\n\n return date;\n}\n\nexport const convertDateToTimeZone = (\n date?: Date | null,\n timezone?: string,\n): Date | undefined | null => {\n if (!timezone) {\n return date;\n }\n if (date === null) {\n return null;\n }\n return date ? TZDateMini.tz(timezone, date) : undefined;\n};\n\nexport const convertDateFromTimeZone = (\n date?: Date | null,\n timezone?: string,\n): Date | undefined | null => {\n if (!timezone) {\n return date;\n }\n if (date === null) {\n return null;\n }\n // eslint-disable-next-line new-cap\n const systemTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone;\n return date ? TZDateMini.tz(systemTimezone, date) : undefined;\n};\n\nexport function format(date: Date | number, format: string): string {\n return lightFormat(date, format);\n}\n\nexport function isMatch(input: string, format: string): boolean {\n return !isNaN(+parse(input, format));\n}\n"],"names":["TZDateMini","lightFormat","parse","input","format","referenceDate","Date","match2","match4","entries","val","numVal","okay","parseInt","superRegExp","RegExp","map","item","join","store","y","getFullYear","M","getMonth","d","getDate","h","getHours","m","getMinutes","s","getSeconds","ms","getMilliseconds","prevInputIndex","lastNonFormatting","lastFormatIndex","found","match","exec","length","atIndex","lastIndex","find","slice","value","key","newValue","date","Y","D","convertDateToTimeZone","timezone","tz","undefined","convertDateFromTimeZone","systemTimezone","Intl","DateTimeFormat","resolvedOptions","timeZone","isMatch","isNaN"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/lib/date.ts"],"sourcesContent":["import { isSameDate } from '@vkontakte/vkjs';\nimport { TZDateMini } from '@vkontakte/vkui-date-fns-tz';\n\nexport function parse(input: string, format: string, referenceDate: Date = new Date()): Date {\n const match2 = /^\\d\\d/; // 00 - 99\n const match4 = /^\\d{4}/; // 0000 - 9999\n\n const entries: Array<[string, RegExp, (val: string) => [string, number, boolean]]> = [\n ['yyyy', match4, (val) => ['Y', +val, true]],\n [\n 'MM',\n match2,\n (val) => {\n const numVal = +val;\n const okay = numVal > 0 && numVal <= 12;\n\n return ['M', numVal - 1, okay];\n },\n ],\n ['dd', match2, (val) => ['D', +val, true]],\n [\n 'HH',\n match2,\n (val) => {\n const numVal = parseInt(val, 10);\n const okay = numVal >= 0 && numVal < 24;\n\n return ['h', numVal, okay];\n },\n ],\n [\n 'mm',\n match2,\n (val) => {\n const numVal = parseInt(val, 10);\n const okay = numVal >= 0 && numVal < 60;\n\n return ['m', numVal, okay];\n },\n ],\n ];\n\n const superRegExp = new RegExp(entries.map((item) => item[0]).join('|'), 'g');\n\n const store: {\n [key: string]: number;\n } = {\n y: referenceDate.getFullYear(),\n M: referenceDate.getMonth(),\n d: referenceDate.getDate(),\n h: referenceDate.getHours(),\n m: referenceDate.getMinutes(),\n s: referenceDate.getSeconds(),\n ms: referenceDate.getMilliseconds(),\n };\n\n let prevInputIndex = 0;\n let lastNonFormatting = '';\n let lastFormatIndex = 0;\n let found = false;\n\n while (true) {\n const match = superRegExp.exec(format);\n\n if (!match) {\n break;\n }\n\n const length = match[0].length;\n const atIndex = superRegExp.lastIndex - length;\n\n const item = entries.find((item) => item[0] === match[0])!;\n\n lastNonFormatting = format.slice(lastFormatIndex, atIndex);\n lastFormatIndex = superRegExp.lastIndex;\n\n if (\n input.slice(prevInputIndex, prevInputIndex + lastNonFormatting.length) !== lastNonFormatting\n ) {\n return new Date('');\n }\n\n const value = input.slice(prevInputIndex + lastNonFormatting.length).match(item[1]);\n\n if (!value) {\n return new Date('');\n }\n\n prevInputIndex = prevInputIndex + lastNonFormatting.length + value[0].length;\n\n const [key, newValue, okay] = item[2](value[0]);\n\n if (!okay) {\n return new Date('');\n }\n\n store[key] = newValue;\n found = true;\n }\n\n if (!found) {\n return new Date('');\n }\n\n const date = new Date(store.Y, store.M, store.D, store.h, store.m, store.s, store.ms);\n\n // Since days of months are dynamic, they can't be validated in entries,\n // so we check it here, in the finalized date\n if (date.getMonth() !== store.M || date.getDate() !== store.D) {\n return new Date('');\n }\n\n return date;\n}\n\nexport const convertDateToTimeZone = (\n date?: Date | null,\n timezone?: string,\n): Date | undefined | null => {\n if (!timezone) {\n return date;\n }\n if (date === null) {\n return null;\n }\n return date ? TZDateMini.tz(timezone, date) : undefined;\n};\n\nexport const convertDateFromTimeZone = (\n date?: Date | null,\n timezone?: string,\n): Date | undefined | null => {\n if (!timezone) {\n return date;\n }\n if (date === null) {\n return null;\n }\n // eslint-disable-next-line new-cap\n const systemTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone;\n return date ? TZDateMini.tz(systemTimezone, date) : undefined;\n};\n\nconst dateOptions: Intl.DateTimeFormatOptions = {\n day: '2-digit',\n month: '2-digit',\n year: 'numeric',\n};\n\n// dd.MM.yyyy\nexport const dateFormatter = /*#__PURE__*/ new Intl.DateTimeFormat('ru-RU', dateOptions);\n\nclass DateTimeFormat extends Intl.DateTimeFormat {\n constructor() {\n super('ru-RU', {\n ...dateOptions,\n hour: '2-digit',\n minute: '2-digit',\n });\n }\n\n format(date?: Date | number): string {\n return super.format(date).replace(',', '');\n }\n}\n\n// dd.MM.yyyy HH:mm\nexport const dateTimeFormatter = /*#__PURE__*/ new DateTimeFormat();\n\n/**\n * Возвращает дату конца месяца\n */\nexport function endOfMonth(date: Date): Date {\n const result = new Date(date);\n const month = result.getMonth();\n result.setFullYear(result.getFullYear(), month + 1, 0);\n result.setHours(23, 59, 59, 999);\n return result;\n}\n\nexport function endOfDay(date: Date): Date {\n const result = new Date(date);\n result.setHours(23, 59, 59, 999);\n return result;\n}\n\n/**\n * Проверяет, что переданные даты относятся к одному и тому же месяцу\n *\n * @example\n * ```ts\n * import assert from 'node:assert';\n * import { isSameMonth } from './date.ts';\n *\n * const d1 = new Date();\n * const d2 = new Date();\n * assert.ok(isSameMonth(d1, d2));\n * ```\n */\nexport function isSameMonth(d1: Date, d2: Date): boolean {\n return d1.getMonth() === d2.getMonth() && d1.getFullYear() === d2.getFullYear();\n}\n\nexport function isLastDayOfMonth(date: Date) {\n return +endOfDay(date) === +endOfMonth(date);\n}\n\nexport function isWithinInterval(date: Date, interval: [Date, Date]) {\n const [startTime, endTime] = interval.sort((a, b) => +a - +b);\n\n return date >= startTime && date <= endTime;\n}\n\nexport function isToday(date: Date) {\n return isSameDate(date, new Date());\n}\n\nexport function isYesterday(date: Date) {\n const yesterday = new Date();\n yesterday.setDate(yesterday.getDate() - 1);\n\n return isSameDate(date, yesterday);\n}\n\nexport function isMatch(input: string, format: string): boolean {\n return !isNaN(+parse(input, format));\n}\n\nexport const millisecondsInSecond = 1000;\n"],"names":["isSameDate","TZDateMini","parse","input","format","referenceDate","Date","match2","match4","entries","val","numVal","okay","parseInt","superRegExp","RegExp","map","item","join","store","y","getFullYear","M","getMonth","d","getDate","h","getHours","m","getMinutes","s","getSeconds","ms","getMilliseconds","prevInputIndex","lastNonFormatting","lastFormatIndex","found","match","exec","length","atIndex","lastIndex","find","slice","value","key","newValue","date","Y","D","convertDateToTimeZone","timezone","tz","undefined","convertDateFromTimeZone","systemTimezone","Intl","DateTimeFormat","resolvedOptions","timeZone","dateOptions","day","month","year","dateFormatter","replace","hour","minute","dateTimeFormatter","endOfMonth","result","setFullYear","setHours","endOfDay","isSameMonth","d1","d2","isLastDayOfMonth","isWithinInterval","interval","startTime","endTime","sort","a","b","isToday","isYesterday","yesterday","setDate","isMatch","isNaN","millisecondsInSecond"],"mappings":"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"}
|
|
@@ -10,6 +10,11 @@ export interface UseFloatingMiddlewaresBootstrapOptions {
|
|
|
10
10
|
* Не оказывает влияния при `placement` значениях - `'auto' | 'auto-start' | 'auto-end'`
|
|
11
11
|
*/
|
|
12
12
|
disableFlipMiddleware?: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Позволяет отключить смещение по главной оси,
|
|
15
|
+
* которое не даёт всплывающему элементу выходить за границы видимой области.
|
|
16
|
+
*/
|
|
17
|
+
disableShiftMiddleware?: boolean;
|
|
13
18
|
/**
|
|
14
19
|
* Задаёт резервный вариант размещения по перпендикулярной оси.
|
|
15
20
|
*/
|
|
@@ -48,7 +53,7 @@ export interface UseFloatingMiddlewaresBootstrapOptions {
|
|
|
48
53
|
*/
|
|
49
54
|
hideWhenReferenceHidden?: boolean;
|
|
50
55
|
}
|
|
51
|
-
export declare const useFloatingMiddlewaresBootstrap: ({ placement, arrowRef, arrow, arrowHeight, arrowPadding, sameWidth, offsetByMainAxis, offsetByCrossAxis, customMiddlewares, hideWhenReferenceHidden, disableFlipMiddleware, flipMiddlewareFallbackAxisSideDirection, }: UseFloatingMiddlewaresBootstrapOptions) => {
|
|
56
|
+
export declare const useFloatingMiddlewaresBootstrap: ({ placement, arrowRef, arrow, arrowHeight, arrowPadding, sameWidth, offsetByMainAxis, offsetByCrossAxis, customMiddlewares, hideWhenReferenceHidden, disableFlipMiddleware, disableShiftMiddleware, flipMiddlewareFallbackAxisSideDirection, }: UseFloatingMiddlewaresBootstrapOptions) => {
|
|
52
57
|
middlewares: UseFloatingMiddleware[];
|
|
53
58
|
strictPlacement: Placement | undefined;
|
|
54
59
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/floating/useFloatingMiddlewaresBootstrap/index.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,qBAAqB,EAK3B,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC3B,MAAM,iBAAiB,CAAC;AAEzB,MAAM,WAAW,sCAAsC;IACrD;;OAEG;IACH,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B;;;OAGG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;OAEG;IACH,uCAAuC,CAAC,EAAE,qBAAqB,CAAC,2BAA2B,CAAC,CAAC;IAC7F;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;IACnC;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,iBAAiB,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAC5C;;OAEG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC;AAED,eAAO,MAAM,+BAA+B,GAAI,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/floating/useFloatingMiddlewaresBootstrap/index.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,qBAAqB,EAK3B,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC3B,MAAM,iBAAiB,CAAC;AAEzB,MAAM,WAAW,sCAAsC;IACrD;;OAEG;IACH,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B;;;OAGG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;;OAGG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC;;OAEG;IACH,uCAAuC,CAAC,EAAE,qBAAqB,CAAC,2BAA2B,CAAC,CAAC;IAC7F;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;IACnC;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,iBAAiB,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAC5C;;OAEG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC;AAED,eAAO,MAAM,+BAA+B,GAAI,gPAc7C,sCAAsC,KAAG;IAC1C,WAAW,EAAE,qBAAqB,EAAE,CAAC;IACrC,eAAe,EAAE,SAAS,GAAG,SAAS,CAAC;CAuFxC,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import { arrowMiddleware, autoPlacementMiddleware, flipMiddleware, hideMiddleware, offsetMiddleware, shiftMiddleware, sizeMiddleware } from "../adapters.js";
|
|
3
3
|
import { checkIsNotAutoPlacement, getAutoPlacementAlign } from "../functions.js";
|
|
4
|
-
export const useFloatingMiddlewaresBootstrap = ({ placement = 'bottom-start', arrowRef = null, arrow, arrowHeight, arrowPadding, sameWidth, offsetByMainAxis = 0, offsetByCrossAxis = 0, customMiddlewares, hideWhenReferenceHidden, disableFlipMiddleware = false, flipMiddlewareFallbackAxisSideDirection = 'end' })=>{
|
|
4
|
+
export const useFloatingMiddlewaresBootstrap = ({ placement = 'bottom-start', arrowRef = null, arrow, arrowHeight, arrowPadding, sameWidth, offsetByMainAxis = 0, offsetByCrossAxis = 0, customMiddlewares, hideWhenReferenceHidden, disableFlipMiddleware = false, disableShiftMiddleware = false, flipMiddlewareFallbackAxisSideDirection = 'end' })=>{
|
|
5
5
|
return React.useMemo(()=>{
|
|
6
6
|
const isAutoPlacement = !checkIsNotAutoPlacement(placement);
|
|
7
7
|
const middlewares = [
|
|
@@ -10,25 +10,34 @@ export const useFloatingMiddlewaresBootstrap = ({ placement = 'bottom-start', ar
|
|
|
10
10
|
mainAxis: arrow && arrowHeight ? offsetByMainAxis + arrowHeight : offsetByMainAxis
|
|
11
11
|
})
|
|
12
12
|
];
|
|
13
|
-
const
|
|
13
|
+
const shift = disableShiftMiddleware ? null : shiftMiddleware();
|
|
14
14
|
// см. https://github.com/floating-ui/floating-ui/blob/%40floating-ui/core%401.7.1/website/pages/docs/flip.mdx#conflict-with-autoplacementjs
|
|
15
15
|
if (isAutoPlacement) {
|
|
16
16
|
middlewares.push(autoPlacementMiddleware({
|
|
17
17
|
alignment: getAutoPlacementAlign(placement)
|
|
18
|
-
})
|
|
18
|
+
}));
|
|
19
|
+
if (shift) {
|
|
20
|
+
middlewares.push(shift);
|
|
21
|
+
}
|
|
19
22
|
} else if (!disableFlipMiddleware) {
|
|
20
|
-
const
|
|
23
|
+
const flip = flipMiddleware({
|
|
21
24
|
crossAxis: 'alignment',
|
|
22
25
|
fallbackAxisSideDirection: flipMiddlewareFallbackAxisSideDirection
|
|
23
26
|
});
|
|
24
27
|
// см. https://github.com/floating-ui/floating-ui/blob/%40floating-ui/core%401.7.1/website/pages/docs/flip.mdx#combining-with-shiftjs
|
|
25
28
|
if (placement.includes('-')) {
|
|
26
|
-
middlewares.push(
|
|
29
|
+
middlewares.push(flip);
|
|
30
|
+
if (shift) {
|
|
31
|
+
middlewares.push(shift);
|
|
32
|
+
}
|
|
27
33
|
} else {
|
|
28
|
-
|
|
34
|
+
if (shift) {
|
|
35
|
+
middlewares.push(shift);
|
|
36
|
+
}
|
|
37
|
+
middlewares.push(flip);
|
|
29
38
|
}
|
|
30
|
-
} else {
|
|
31
|
-
middlewares.push(
|
|
39
|
+
} else if (shift) {
|
|
40
|
+
middlewares.push(shift);
|
|
32
41
|
}
|
|
33
42
|
if (sameWidth) {
|
|
34
43
|
middlewares.push(sizeMiddleware({
|
|
@@ -63,6 +72,7 @@ export const useFloatingMiddlewaresBootstrap = ({ placement = 'bottom-start', ar
|
|
|
63
72
|
arrowHeight,
|
|
64
73
|
offsetByMainAxis,
|
|
65
74
|
disableFlipMiddleware,
|
|
75
|
+
disableShiftMiddleware,
|
|
66
76
|
flipMiddlewareFallbackAxisSideDirection,
|
|
67
77
|
sameWidth,
|
|
68
78
|
customMiddlewares,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/lib/floating/useFloatingMiddlewaresBootstrap/index.ts"],"sourcesContent":["import * as React from 'react';\nimport {\n arrowMiddleware,\n autoPlacementMiddleware,\n flipMiddleware,\n type FlipMiddlewareOptions,\n hideMiddleware,\n offsetMiddleware,\n shiftMiddleware,\n sizeMiddleware,\n} from '../adapters';\nimport { checkIsNotAutoPlacement, getAutoPlacementAlign } from '../functions';\nimport {\n type ArrowOptions,\n type Placement,\n type PlacementWithAuto,\n type UseFloatingMiddleware,\n} from '../types/common';\n\nexport interface UseFloatingMiddlewaresBootstrapOptions {\n /**\n * По умолчанию компонент выберет наилучшее расположение сам, но приоритетное можно задать с помощью этого свойства.\n */\n placement?: PlacementWithAuto;\n /**\n * Указанное значение `placement` форсируется, даже если для выпадающего элемента недостаточно места.\n * Не оказывает влияния при `placement` значениях - `'auto' | 'auto-start' | 'auto-end'`\n */\n disableFlipMiddleware?: boolean;\n /**\n * Задаёт резервный вариант размещения по перпендикулярной оси.\n */\n flipMiddlewareFallbackAxisSideDirection?: FlipMiddlewareOptions['fallbackAxisSideDirection'];\n /**\n * Отступ по главной оси.\n */\n offsetByMainAxis?: number;\n /**\n * Отступ по вспомогательной оси.\n */\n offsetByCrossAxis?: number;\n arrowRef?: ArrowOptions['element'];\n /**\n * Отображать ли стрелку, указывающую на якорный элемент.\n */\n arrow?: boolean;\n /**\n * Высота стрелки. Складывается с `mainAxis`, чтобы стрелка не залезала на якорный элемент.\n */\n arrowHeight?: number;\n /**\n * Безопасная зона вокруг стрелки, чтобы та не выходила за края контента.\n */\n arrowPadding?: number;\n /**\n * Выставлять ширину равной target элементу.\n */\n sameWidth?: boolean;\n /**\n * Массив кастомных модификаторов для Popper (необходимо мемоизировать).\n */\n customMiddlewares?: UseFloatingMiddleware[];\n /**\n * Принудительно скрывает компонент если целевой элемент вышел за область видимости.\n */\n hideWhenReferenceHidden?: boolean;\n}\n\nexport const useFloatingMiddlewaresBootstrap = ({\n placement = 'bottom-start',\n arrowRef = null,\n arrow,\n arrowHeight,\n arrowPadding,\n sameWidth,\n offsetByMainAxis = 0,\n offsetByCrossAxis = 0,\n customMiddlewares,\n hideWhenReferenceHidden,\n disableFlipMiddleware = false,\n flipMiddlewareFallbackAxisSideDirection = 'end',\n}: UseFloatingMiddlewaresBootstrapOptions): {\n middlewares: UseFloatingMiddleware[];\n strictPlacement: Placement | undefined;\n} => {\n return React.useMemo(() => {\n const isAutoPlacement = !checkIsNotAutoPlacement(placement);\n const middlewares: UseFloatingMiddleware[] = [\n offsetMiddleware({\n crossAxis: offsetByCrossAxis,\n mainAxis: arrow && arrowHeight ? offsetByMainAxis + arrowHeight : offsetByMainAxis,\n }),\n ];\n\n const
|
|
1
|
+
{"version":3,"sources":["../../../../src/lib/floating/useFloatingMiddlewaresBootstrap/index.ts"],"sourcesContent":["import * as React from 'react';\nimport {\n arrowMiddleware,\n autoPlacementMiddleware,\n flipMiddleware,\n type FlipMiddlewareOptions,\n hideMiddleware,\n offsetMiddleware,\n shiftMiddleware,\n sizeMiddleware,\n} from '../adapters';\nimport { checkIsNotAutoPlacement, getAutoPlacementAlign } from '../functions';\nimport {\n type ArrowOptions,\n type Placement,\n type PlacementWithAuto,\n type UseFloatingMiddleware,\n} from '../types/common';\n\nexport interface UseFloatingMiddlewaresBootstrapOptions {\n /**\n * По умолчанию компонент выберет наилучшее расположение сам, но приоритетное можно задать с помощью этого свойства.\n */\n placement?: PlacementWithAuto;\n /**\n * Указанное значение `placement` форсируется, даже если для выпадающего элемента недостаточно места.\n * Не оказывает влияния при `placement` значениях - `'auto' | 'auto-start' | 'auto-end'`\n */\n disableFlipMiddleware?: boolean;\n /**\n * Позволяет отключить смещение по главной оси,\n * которое не даёт всплывающему элементу выходить за границы видимой области.\n */\n disableShiftMiddleware?: boolean;\n /**\n * Задаёт резервный вариант размещения по перпендикулярной оси.\n */\n flipMiddlewareFallbackAxisSideDirection?: FlipMiddlewareOptions['fallbackAxisSideDirection'];\n /**\n * Отступ по главной оси.\n */\n offsetByMainAxis?: number;\n /**\n * Отступ по вспомогательной оси.\n */\n offsetByCrossAxis?: number;\n arrowRef?: ArrowOptions['element'];\n /**\n * Отображать ли стрелку, указывающую на якорный элемент.\n */\n arrow?: boolean;\n /**\n * Высота стрелки. Складывается с `mainAxis`, чтобы стрелка не залезала на якорный элемент.\n */\n arrowHeight?: number;\n /**\n * Безопасная зона вокруг стрелки, чтобы та не выходила за края контента.\n */\n arrowPadding?: number;\n /**\n * Выставлять ширину равной target элементу.\n */\n sameWidth?: boolean;\n /**\n * Массив кастомных модификаторов для Popper (необходимо мемоизировать).\n */\n customMiddlewares?: UseFloatingMiddleware[];\n /**\n * Принудительно скрывает компонент если целевой элемент вышел за область видимости.\n */\n hideWhenReferenceHidden?: boolean;\n}\n\nexport const useFloatingMiddlewaresBootstrap = ({\n placement = 'bottom-start',\n arrowRef = null,\n arrow,\n arrowHeight,\n arrowPadding,\n sameWidth,\n offsetByMainAxis = 0,\n offsetByCrossAxis = 0,\n customMiddlewares,\n hideWhenReferenceHidden,\n disableFlipMiddleware = false,\n disableShiftMiddleware = false,\n flipMiddlewareFallbackAxisSideDirection = 'end',\n}: UseFloatingMiddlewaresBootstrapOptions): {\n middlewares: UseFloatingMiddleware[];\n strictPlacement: Placement | undefined;\n} => {\n return React.useMemo(() => {\n const isAutoPlacement = !checkIsNotAutoPlacement(placement);\n const middlewares: UseFloatingMiddleware[] = [\n offsetMiddleware({\n crossAxis: offsetByCrossAxis,\n mainAxis: arrow && arrowHeight ? offsetByMainAxis + arrowHeight : offsetByMainAxis,\n }),\n ];\n\n const shift = disableShiftMiddleware ? null : shiftMiddleware();\n\n // см. https://github.com/floating-ui/floating-ui/blob/%40floating-ui/core%401.7.1/website/pages/docs/flip.mdx#conflict-with-autoplacementjs\n if (isAutoPlacement) {\n middlewares.push(autoPlacementMiddleware({ alignment: getAutoPlacementAlign(placement) }));\n if (shift) {\n middlewares.push(shift);\n }\n } else if (!disableFlipMiddleware) {\n const flip = flipMiddleware({\n crossAxis: 'alignment',\n fallbackAxisSideDirection: flipMiddlewareFallbackAxisSideDirection,\n });\n\n // см. https://github.com/floating-ui/floating-ui/blob/%40floating-ui/core%401.7.1/website/pages/docs/flip.mdx#combining-with-shiftjs\n if (placement.includes('-')) {\n middlewares.push(flip);\n if (shift) {\n middlewares.push(shift);\n }\n } else {\n if (shift) {\n middlewares.push(shift);\n }\n middlewares.push(flip);\n }\n } else if (shift) {\n middlewares.push(shift);\n }\n\n if (sameWidth) {\n middlewares.push(\n sizeMiddleware({\n apply({ rects, elements }) {\n Object.assign(elements.floating.style, {\n width: `${rects.reference.width}px`,\n });\n },\n }),\n );\n }\n\n if (customMiddlewares) {\n middlewares.push(...customMiddlewares);\n }\n\n // см. https://github.com/floating-ui/floating-ui/blob/%40floating-ui/core%401.7.1/website/pages/docs/arrow.mdx#order\n if (arrow) {\n middlewares.push(\n arrowMiddleware({\n element: arrowRef,\n padding: arrowPadding,\n }),\n );\n }\n\n if (hideWhenReferenceHidden) {\n middlewares.push(hideMiddleware());\n }\n\n return { middlewares, strictPlacement: isAutoPlacement ? undefined : placement };\n }, [\n placement,\n offsetByCrossAxis,\n arrow,\n arrowHeight,\n offsetByMainAxis,\n disableFlipMiddleware,\n disableShiftMiddleware,\n flipMiddlewareFallbackAxisSideDirection,\n sameWidth,\n customMiddlewares,\n hideWhenReferenceHidden,\n arrowRef,\n arrowPadding,\n ]);\n};\n"],"names":["React","arrowMiddleware","autoPlacementMiddleware","flipMiddleware","hideMiddleware","offsetMiddleware","shiftMiddleware","sizeMiddleware","checkIsNotAutoPlacement","getAutoPlacementAlign","useFloatingMiddlewaresBootstrap","placement","arrowRef","arrow","arrowHeight","arrowPadding","sameWidth","offsetByMainAxis","offsetByCrossAxis","customMiddlewares","hideWhenReferenceHidden","disableFlipMiddleware","disableShiftMiddleware","flipMiddlewareFallbackAxisSideDirection","useMemo","isAutoPlacement","middlewares","crossAxis","mainAxis","shift","push","alignment","flip","fallbackAxisSideDirection","includes","apply","rects","elements","Object","assign","floating","style","width","reference","element","padding","strictPlacement","undefined"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SACEC,eAAe,EACfC,uBAAuB,EACvBC,cAAc,EAEdC,cAAc,EACdC,gBAAgB,EAChBC,eAAe,EACfC,cAAc,QACT,iBAAc;AACrB,SAASC,uBAAuB,EAAEC,qBAAqB,QAAQ,kBAAe;AA8D9E,OAAO,MAAMC,kCAAkC,CAAC,EAC9CC,YAAY,cAAc,EAC1BC,WAAW,IAAI,EACfC,KAAK,EACLC,WAAW,EACXC,YAAY,EACZC,SAAS,EACTC,mBAAmB,CAAC,EACpBC,oBAAoB,CAAC,EACrBC,iBAAiB,EACjBC,uBAAuB,EACvBC,wBAAwB,KAAK,EAC7BC,yBAAyB,KAAK,EAC9BC,0CAA0C,KAAK,EACR;IAIvC,OAAOvB,MAAMwB,OAAO,CAAC;QACnB,MAAMC,kBAAkB,CAACjB,wBAAwBG;QACjD,MAAMe,cAAuC;YAC3CrB,iBAAiB;gBACfsB,WAAWT;gBACXU,UAAUf,SAASC,cAAcG,mBAAmBH,cAAcG;YACpE;SACD;QAED,MAAMY,QAAQP,yBAAyB,OAAOhB;QAE9C,4IAA4I;QAC5I,IAAImB,iBAAiB;YACnBC,YAAYI,IAAI,CAAC5B,wBAAwB;gBAAE6B,WAAWtB,sBAAsBE;YAAW;YACvF,IAAIkB,OAAO;gBACTH,YAAYI,IAAI,CAACD;YACnB;QACF,OAAO,IAAI,CAACR,uBAAuB;YACjC,MAAMW,OAAO7B,eAAe;gBAC1BwB,WAAW;gBACXM,2BAA2BV;YAC7B;YAEA,qIAAqI;YACrI,IAAIZ,UAAUuB,QAAQ,CAAC,MAAM;gBAC3BR,YAAYI,IAAI,CAACE;gBACjB,IAAIH,OAAO;oBACTH,YAAYI,IAAI,CAACD;gBACnB;YACF,OAAO;gBACL,IAAIA,OAAO;oBACTH,YAAYI,IAAI,CAACD;gBACnB;gBACAH,YAAYI,IAAI,CAACE;YACnB;QACF,OAAO,IAAIH,OAAO;YAChBH,YAAYI,IAAI,CAACD;QACnB;QAEA,IAAIb,WAAW;YACbU,YAAYI,IAAI,CACdvB,eAAe;gBACb4B,OAAM,EAAEC,KAAK,EAAEC,QAAQ,EAAE;oBACvBC,OAAOC,MAAM,CAACF,SAASG,QAAQ,CAACC,KAAK,EAAE;wBACrCC,OAAO,GAAGN,MAAMO,SAAS,CAACD,KAAK,CAAC,EAAE,CAAC;oBACrC;gBACF;YACF;QAEJ;QAEA,IAAIvB,mBAAmB;YACrBO,YAAYI,IAAI,IAAIX;QACtB;QAEA,qHAAqH;QACrH,IAAIN,OAAO;YACTa,YAAYI,IAAI,CACd7B,gBAAgB;gBACd2C,SAAShC;gBACTiC,SAAS9B;YACX;QAEJ;QAEA,IAAIK,yBAAyB;YAC3BM,YAAYI,IAAI,CAAC1B;QACnB;QAEA,OAAO;YAAEsB;YAAaoB,iBAAiBrB,kBAAkBsB,YAAYpC;QAAU;IACjF,GAAG;QACDA;QACAO;QACAL;QACAC;QACAG;QACAI;QACAC;QACAC;QACAP;QACAG;QACAC;QACAR;QACAG;KACD;AACH,EAAE"}
|
|
@@ -30,6 +30,8 @@ export interface UseFloatingWithInteractionsProps {
|
|
|
30
30
|
* > ⚠️`"hover"` на тач-устройствах будет работать как `"click"`, с одним лишь нюансом, что
|
|
31
31
|
* > не будет закрываться при повторном нажатии на целевой элемент. Для закрытия необходимо нажать
|
|
32
32
|
* > на область вне целевого элемента и выпадающего окна.
|
|
33
|
+
*
|
|
34
|
+
* **Избегайте использования `trigger="hover"` как единственного механизма активации, так как пользователи клавиатуры или скринридеров не смогут использовать компонент**
|
|
33
35
|
*/
|
|
34
36
|
trigger?: TriggerType;
|
|
35
37
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/lib/floating/useFloatingWithInteractions/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACrB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,MAAM,sBAAsB,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AAEjE,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC;AAEzC,MAAM,MAAM,WAAW,GAAG,iBAAiB,GAAG,sBAAsB,GAAG,sBAAsB,EAAE,CAAC;AAEhG,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,gBAAgB,GAAG,WAAW,CAAC;AAExE,MAAM,MAAM,iBAAiB,GACzB,eAAe,GACf,YAAY,GACZ,OAAO,GACP,OAAO,GACP,OAAO,GACP,UAAU,CAAC;AAEf,MAAM,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,iBAAiB,KAAK,IAAI,CAAC;AAEjF,MAAM,WAAW,gCAAgC;IAC/C,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,wBAAwB,CAAC;IACpC,WAAW,CAAC,EAAE,qBAAqB,EAAE,CAAC;IACtC
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/lib/floating/useFloatingWithInteractions/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/lib/floating/useFloatingWithInteractions/types.ts"],"sourcesContent":["import {\n type FloatingPositionStrategy,\n type Placement,\n type UseFloatingData,\n type UseFloatingMiddleware,\n type UseFloatingRefs,\n} from '../types/common';\n\nexport type InteractiveTriggerType = 'click' | 'hover' | 'focus';\n\nexport type ManualTriggerType = 'manual';\n\nexport type TriggerType = ManualTriggerType | InteractiveTriggerType | InteractiveTriggerType[];\n\nexport type RestoreFocusType = boolean | 'anchor-element' | HTMLElement;\n\nexport type ShownChangeReason =\n | 'click-outside'\n | 'escape-key'\n | 'click'\n | 'hover'\n | 'focus'\n | 'callback';\n\nexport type OnShownChange = (shown: boolean, reason?: ShownChangeReason) => void;\n\nexport interface UseFloatingWithInteractionsProps {\n placement?: Placement;\n /**\n * Стратегия позиционирования всплывающего элемента.\n *\n * - `\"fixed\"` - позиционируется, используя `position: fixed`. Является значением по умолчанию\n * - `\"absolute\"` - позиционируется, используя `position: absolute`, относительно ближайшего элемента с `position: relative`\n *\n * > `strategy=\"absolute\"` Рекомендуется использовать с `usePortal={false}`. И нужно не забыть обернуть в элемент с `position: relative`\n */\n strategy?: FloatingPositionStrategy;\n middlewares?: UseFloatingMiddleware[];\n /**\n * Механика вызова всплывающего элемента.\n *\n * - `\"click\"` – показывается/скрывается только при нажатии.\n * - `\"hover\"` – будет показываться/скрывается при наведении/отведении мыши.\n * - `\"focus\"` – будет показываться/скрывается при фокусе/потере фокуса мыши.\n * - `\"manual\"` – будет показываться/скрывается только через свойство `shown`. `onShownChange`\n * будет вызываться при нажатии за пределы целевого и всплывающего элементов, а также по кнопке\n * ESC.\n *\n * > ⚠️`\"hover\"` на тач-устройствах будет работать как `\"click\"`, с одним лишь нюансом, что\n * > не будет закрываться при повторном нажатии на целевой элемент. Для закрытия необходимо нажать\n * > на область вне целевого элемента и выпадающего окна.\n */\n trigger?: TriggerType;\n /**\n * Количество миллисекунд, после которых произойдёт показ/скрытие всплывающего элемента\n * при наведении.\n *\n * > Чтобы задать разное время на показ и скрытие, передайте массив типа `[<показ>, <скрытие>]`.\n *\n * > Используется только для `trigger=\"hover\"`.\n */\n hoverDelay?: number | [number, number];\n /**\n * При `trigger=\"hover\"` закрывает всплывающий элемент при нажатии на целевой элемент.\n */\n closeAfterClick?: boolean;\n /**\n * Блокирует изменение состояния.\n */\n disabled?: boolean;\n /**\n * Отключает взаимодействие со всплывающим элементом.\n */\n disableInteractive?: boolean;\n /**\n * Отключает закрытие нажатием на область вне целевого и всплывающего элемента.\n */\n disableCloseOnClickOutside?: boolean;\n /**\n * Отключает закрытие нажатием на кнопку ESC.\n */\n disableCloseOnEscKey?: boolean;\n /**\n * Начальное состояние всплывающего элемента.\n */\n defaultShown?: boolean;\n /**\n * Если передан, то всплывающий элемент будет показано/скрыто в зависимости от значения свойства.\n */\n shown?: boolean;\n /**\n * Вызывается при каждом изменении видимости всплывающего элемента.\n */\n onShownChange?: OnShownChange;\n /**\n * Вызывается при каждом изменении видимости всплывающего элемента, но после завершении анимации.\n */\n onShownChanged?: OnShownChange;\n}\n\nexport type ReferenceProps<T = HTMLElement> = Omit<\n React.HTMLAttributes<T>,\n keyof React.DOMAttributes<T>\n> &\n Pick<React.DOMAttributes<T>, 'onMouseOver' | 'onMouseLeave' | 'onClick' | 'onFocus' | 'onBlur'>;\n\nexport type FloatingProps<T = HTMLElement> = Omit<\n React.HTMLAttributes<T>,\n keyof React.DOMAttributes<T> | 'style'\n> & { style: React.CSSProperties } & Pick<\n React.DOMAttributes<T>,\n 'onMouseOver' | 'onMouseLeave' | 'onClick' | 'onAnimationStart' | 'onAnimationEnd'\n >;\n\nexport interface UseFloatingWithInteractionsReturn<T extends HTMLElement = HTMLElement> {\n placement: Placement;\n shown: boolean;\n willBeHide: boolean;\n refs: UseFloatingRefs<T>;\n referenceProps: ReferenceProps<T>;\n floatingProps: FloatingProps<T>;\n middlewareData: UseFloatingData['middlewareData'];\n onClose: (this: void) => void;\n onEscapeKeyDown?: (this: void) => void;\n onRestoreFocus: (restoreFocus?: RestoreFocusType) => boolean | HTMLElement;\n}\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../../src/lib/floating/useFloatingWithInteractions/types.ts"],"sourcesContent":["import {\n type FloatingPositionStrategy,\n type Placement,\n type UseFloatingData,\n type UseFloatingMiddleware,\n type UseFloatingRefs,\n} from '../types/common';\n\nexport type InteractiveTriggerType = 'click' | 'hover' | 'focus';\n\nexport type ManualTriggerType = 'manual';\n\nexport type TriggerType = ManualTriggerType | InteractiveTriggerType | InteractiveTriggerType[];\n\nexport type RestoreFocusType = boolean | 'anchor-element' | HTMLElement;\n\nexport type ShownChangeReason =\n | 'click-outside'\n | 'escape-key'\n | 'click'\n | 'hover'\n | 'focus'\n | 'callback';\n\nexport type OnShownChange = (shown: boolean, reason?: ShownChangeReason) => void;\n\nexport interface UseFloatingWithInteractionsProps {\n placement?: Placement;\n /**\n * Стратегия позиционирования всплывающего элемента.\n *\n * - `\"fixed\"` - позиционируется, используя `position: fixed`. Является значением по умолчанию\n * - `\"absolute\"` - позиционируется, используя `position: absolute`, относительно ближайшего элемента с `position: relative`\n *\n * > `strategy=\"absolute\"` Рекомендуется использовать с `usePortal={false}`. И нужно не забыть обернуть в элемент с `position: relative`\n */\n strategy?: FloatingPositionStrategy;\n middlewares?: UseFloatingMiddleware[];\n /**\n * Механика вызова всплывающего элемента.\n *\n * - `\"click\"` – показывается/скрывается только при нажатии.\n * - `\"hover\"` – будет показываться/скрывается при наведении/отведении мыши.\n * - `\"focus\"` – будет показываться/скрывается при фокусе/потере фокуса мыши.\n * - `\"manual\"` – будет показываться/скрывается только через свойство `shown`. `onShownChange`\n * будет вызываться при нажатии за пределы целевого и всплывающего элементов, а также по кнопке\n * ESC.\n *\n * > ⚠️`\"hover\"` на тач-устройствах будет работать как `\"click\"`, с одним лишь нюансом, что\n * > не будет закрываться при повторном нажатии на целевой элемент. Для закрытия необходимо нажать\n * > на область вне целевого элемента и выпадающего окна.\n *\n * **Избегайте использования `trigger=\"hover\"` как единственного механизма активации, так как пользователи клавиатуры или скринридеров не смогут использовать компонент**\n */\n trigger?: TriggerType;\n /**\n * Количество миллисекунд, после которых произойдёт показ/скрытие всплывающего элемента\n * при наведении.\n *\n * > Чтобы задать разное время на показ и скрытие, передайте массив типа `[<показ>, <скрытие>]`.\n *\n * > Используется только для `trigger=\"hover\"`.\n */\n hoverDelay?: number | [number, number];\n /**\n * При `trigger=\"hover\"` закрывает всплывающий элемент при нажатии на целевой элемент.\n */\n closeAfterClick?: boolean;\n /**\n * Блокирует изменение состояния.\n */\n disabled?: boolean;\n /**\n * Отключает взаимодействие со всплывающим элементом.\n */\n disableInteractive?: boolean;\n /**\n * Отключает закрытие нажатием на область вне целевого и всплывающего элемента.\n */\n disableCloseOnClickOutside?: boolean;\n /**\n * Отключает закрытие нажатием на кнопку ESC.\n */\n disableCloseOnEscKey?: boolean;\n /**\n * Начальное состояние всплывающего элемента.\n */\n defaultShown?: boolean;\n /**\n * Если передан, то всплывающий элемент будет показано/скрыто в зависимости от значения свойства.\n */\n shown?: boolean;\n /**\n * Вызывается при каждом изменении видимости всплывающего элемента.\n */\n onShownChange?: OnShownChange;\n /**\n * Вызывается при каждом изменении видимости всплывающего элемента, но после завершении анимации.\n */\n onShownChanged?: OnShownChange;\n}\n\nexport type ReferenceProps<T = HTMLElement> = Omit<\n React.HTMLAttributes<T>,\n keyof React.DOMAttributes<T>\n> &\n Pick<React.DOMAttributes<T>, 'onMouseOver' | 'onMouseLeave' | 'onClick' | 'onFocus' | 'onBlur'>;\n\nexport type FloatingProps<T = HTMLElement> = Omit<\n React.HTMLAttributes<T>,\n keyof React.DOMAttributes<T> | 'style'\n> & { style: React.CSSProperties } & Pick<\n React.DOMAttributes<T>,\n 'onMouseOver' | 'onMouseLeave' | 'onClick' | 'onAnimationStart' | 'onAnimationEnd'\n >;\n\nexport interface UseFloatingWithInteractionsReturn<T extends HTMLElement = HTMLElement> {\n placement: Placement;\n shown: boolean;\n willBeHide: boolean;\n refs: UseFloatingRefs<T>;\n referenceProps: ReferenceProps<T>;\n floatingProps: FloatingProps<T>;\n middlewareData: UseFloatingData['middlewareData'];\n onClose: (this: void) => void;\n onEscapeKeyDown?: (this: void) => void;\n onRestoreFocus: (restoreFocus?: RestoreFocusType) => boolean | HTMLElement;\n}\n"],"names":[],"mappings":"AAoHA,WAWC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UIPanGestureRecognizer.d.ts","sourceRoot":"","sources":["../../../src/lib/touch/UIPanGestureRecognizer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"UIPanGestureRecognizer.d.ts","sourceRoot":"","sources":["../../../src/lib/touch/UIPanGestureRecognizer.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,SAAS,GAAG;IAAE,IAAI,EAAE,GAAG,GAAG,GAAG,CAAC;IAAC,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;CAAE,CAAC;AAEtE,MAAM,MAAM,MAAM,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAI9C;;;;GAIG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,WAAW,CAAwB;IAC3C,EAAE,SAAK;IACP,EAAE,SAAK;IACP,EAAE,SAAK;IACP,EAAE,SAAK;IAEP,kBAAkB,IAAI,IAAI;IAM1B,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAMpC,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAMlC,KAAK,IAAI,MAAM;IAOf,QAAQ,IAAI,MAAM;IAKlB,QAAQ,IAAI,MAAM;IAWlB,KAAK,IAAI,MAAM;IAQf,SAAS,IAAI,SAAS;IAOtB,KAAK,IAAI,IAAI;CAKd"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { _ as _define_property } from "@swc/helpers/_/_define_property";
|
|
2
|
+
import { millisecondsInSecond } from "../date.js";
|
|
2
3
|
import { getFirstTouchEventData } from "../dom.js";
|
|
3
4
|
const DEFAULT_INITIAL_TIME = 0;
|
|
4
|
-
const MILLISECONDS = 1000;
|
|
5
5
|
/**
|
|
6
6
|
* JS имплементация класса из UIKIt iOS.
|
|
7
7
|
*
|
|
@@ -33,7 +33,7 @@ const MILLISECONDS = 1000;
|
|
|
33
33
|
return Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));
|
|
34
34
|
}
|
|
35
35
|
velocity() {
|
|
36
|
-
const deltaTime = (Date.now() - this.initialTime) /
|
|
36
|
+
const deltaTime = (Date.now() - this.initialTime) / millisecondsInSecond;
|
|
37
37
|
if (deltaTime <= 0) {
|
|
38
38
|
return {
|
|
39
39
|
x: 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/touch/UIPanGestureRecognizer.ts"],"sourcesContent":["import { getFirstTouchEventData } from '../dom';\n\nexport type Direction = { axis: 'x' | 'y'; direction: -1 | 1 | null };\n\nexport type Coords = { x: number; y: number };\n\nconst DEFAULT_INITIAL_TIME = 0;\
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/touch/UIPanGestureRecognizer.ts"],"sourcesContent":["import { millisecondsInSecond } from '../date';\nimport { getFirstTouchEventData } from '../dom';\n\nexport type Direction = { axis: 'x' | 'y'; direction: -1 | 1 | null };\n\nexport type Coords = { x: number; y: number };\n\nconst DEFAULT_INITIAL_TIME = 0;\n\n/**\n * JS имплементация класса из UIKIt iOS.\n *\n * https://developer.apple.com/documentation/uikit/uipangesturerecognizer\n */\nexport class UIPanGestureRecognizer {\n private initialTime = DEFAULT_INITIAL_TIME;\n x1 = 0;\n y1 = 0;\n x2 = 0;\n y2 = 0;\n\n setInitialTimeOnce(): void {\n if (this.initialTime === DEFAULT_INITIAL_TIME) {\n this.initialTime = Date.now();\n }\n }\n\n setStartCoords(event: UIEvent): void {\n const { clientX, clientY } = getFirstTouchEventData(event);\n this.x1 = clientX;\n this.y1 = clientY;\n }\n\n setEndCoords(event: UIEvent): void {\n const { clientX, clientY } = getFirstTouchEventData(event);\n this.x2 = clientX;\n this.y2 = clientY;\n }\n\n delta(): Coords {\n return {\n x: this.x2 - this.x1,\n y: this.y2 - this.y1,\n };\n }\n\n distance(): number {\n const { x, y } = this.delta();\n return Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));\n }\n\n velocity(): Coords {\n const deltaTime = (Date.now() - this.initialTime) / millisecondsInSecond;\n\n if (deltaTime <= 0) {\n return { x: 0, y: 0 };\n }\n\n const { x, y } = this.delta();\n return { x: x / deltaTime, y: y / deltaTime };\n }\n\n angle(): number {\n const deltaX = this.x2 - this.x1;\n const deltaY = this.y2 - this.y1;\n const radians = Math.atan2(deltaY, deltaX);\n const degrees = (radians * 180) / Math.PI;\n return degrees < 0 ? 360 + degrees : degrees;\n }\n\n direction(): Direction {\n const { x, y } = this.delta();\n return Math.abs(x) > Math.abs(y)\n ? { axis: 'x', direction: x > 0 ? 1 : x < 0 ? -1 : null }\n : { axis: 'y', direction: y > 0 ? 1 : y < 0 ? -1 : null };\n }\n\n reset(): void {\n this.initialTime = DEFAULT_INITIAL_TIME;\n this.x1 = this.y1 = 0;\n this.x2 = this.y2 = 0;\n }\n}\n"],"names":["millisecondsInSecond","getFirstTouchEventData","DEFAULT_INITIAL_TIME","UIPanGestureRecognizer","setInitialTimeOnce","initialTime","Date","now","setStartCoords","event","clientX","clientY","x1","y1","setEndCoords","x2","y2","delta","x","y","distance","Math","sqrt","pow","velocity","deltaTime","angle","deltaX","deltaY","radians","atan2","degrees","PI","direction","abs","axis","reset"],"mappings":";AAAA,SAASA,oBAAoB,QAAQ,aAAU;AAC/C,SAASC,sBAAsB,QAAQ,YAAS;AAMhD,MAAMC,uBAAuB;AAE7B;;;;CAIC,GACD,OAAO,MAAMC;IAOXC,qBAA2B;QACzB,IAAI,IAAI,CAACC,WAAW,KAAKH,sBAAsB;YAC7C,IAAI,CAACG,WAAW,GAAGC,KAAKC,GAAG;QAC7B;IACF;IAEAC,eAAeC,KAAc,EAAQ;QACnC,MAAM,EAAEC,OAAO,EAAEC,OAAO,EAAE,GAAGV,uBAAuBQ;QACpD,IAAI,CAACG,EAAE,GAAGF;QACV,IAAI,CAACG,EAAE,GAAGF;IACZ;IAEAG,aAAaL,KAAc,EAAQ;QACjC,MAAM,EAAEC,OAAO,EAAEC,OAAO,EAAE,GAAGV,uBAAuBQ;QACpD,IAAI,CAACM,EAAE,GAAGL;QACV,IAAI,CAACM,EAAE,GAAGL;IACZ;IAEAM,QAAgB;QACd,OAAO;YACLC,GAAG,IAAI,CAACH,EAAE,GAAG,IAAI,CAACH,EAAE;YACpBO,GAAG,IAAI,CAACH,EAAE,GAAG,IAAI,CAACH,EAAE;QACtB;IACF;IAEAO,WAAmB;QACjB,MAAM,EAAEF,CAAC,EAAEC,CAAC,EAAE,GAAG,IAAI,CAACF,KAAK;QAC3B,OAAOI,KAAKC,IAAI,CAACD,KAAKE,GAAG,CAACL,GAAG,KAAKG,KAAKE,GAAG,CAACJ,GAAG;IAChD;IAEAK,WAAmB;QACjB,MAAMC,YAAY,AAACnB,CAAAA,KAAKC,GAAG,KAAK,IAAI,CAACF,WAAW,AAAD,IAAKL;QAEpD,IAAIyB,aAAa,GAAG;YAClB,OAAO;gBAAEP,GAAG;gBAAGC,GAAG;YAAE;QACtB;QAEA,MAAM,EAAED,CAAC,EAAEC,CAAC,EAAE,GAAG,IAAI,CAACF,KAAK;QAC3B,OAAO;YAAEC,GAAGA,IAAIO;YAAWN,GAAGA,IAAIM;QAAU;IAC9C;IAEAC,QAAgB;QACd,MAAMC,SAAS,IAAI,CAACZ,EAAE,GAAG,IAAI,CAACH,EAAE;QAChC,MAAMgB,SAAS,IAAI,CAACZ,EAAE,GAAG,IAAI,CAACH,EAAE;QAChC,MAAMgB,UAAUR,KAAKS,KAAK,CAACF,QAAQD;QACnC,MAAMI,UAAU,AAACF,UAAU,MAAOR,KAAKW,EAAE;QACzC,OAAOD,UAAU,IAAI,MAAMA,UAAUA;IACvC;IAEAE,YAAuB;QACrB,MAAM,EAAEf,CAAC,EAAEC,CAAC,EAAE,GAAG,IAAI,CAACF,KAAK;QAC3B,OAAOI,KAAKa,GAAG,CAAChB,KAAKG,KAAKa,GAAG,CAACf,KAC1B;YAAEgB,MAAM;YAAKF,WAAWf,IAAI,IAAI,IAAIA,IAAI,IAAI,CAAC,IAAI;QAAK,IACtD;YAAEiB,MAAM;YAAKF,WAAWd,IAAI,IAAI,IAAIA,IAAI,IAAI,CAAC,IAAI;QAAK;IAC5D;IAEAiB,QAAc;QACZ,IAAI,CAAC/B,WAAW,GAAGH;QACnB,IAAI,CAACU,EAAE,GAAG,IAAI,CAACC,EAAE,GAAG;QACpB,IAAI,CAACE,EAAE,GAAG,IAAI,CAACC,EAAE,GAAG;IACtB;;QAlEA,uBAAQX,eAAcH;QACtBU,uBAAAA,MAAK;QACLC,uBAAAA,MAAK;QACLE,uBAAAA,MAAK;QACLC,uBAAAA,MAAK;;AA+DP"}
|
package/dist/lib/utils.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ export type ImgOnlyAttributes = {
|
|
|
5
5
|
export declare function setRef<T>(element: T, ref?: React.Ref<T>): void;
|
|
6
6
|
export declare function multiRef<T>(...refs: Array<React.Ref<T> | undefined>): React.RefObject<T | null>;
|
|
7
7
|
export declare const stopPropagation: <T extends React.SyntheticEvent>(event: T) => void;
|
|
8
|
+
export declare const preventDefault: <T extends React.SyntheticEvent>(event: T) => void;
|
|
8
9
|
export declare function addClassNameToElement(element: HTMLElement, className: string): void;
|
|
9
10
|
export declare function removeClassNameFromElement(element: HTMLElement, classNameToRemove: string): void;
|
|
10
11
|
type ExcludeKeysWithUndefined<T> = {
|
package/dist/lib/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/utils.js
CHANGED
|
@@ -23,6 +23,7 @@ export function multiRef(...refs) {
|
|
|
23
23
|
};
|
|
24
24
|
}
|
|
25
25
|
export const stopPropagation = (event)=>event.stopPropagation();
|
|
26
|
+
export const preventDefault = (event)=>event.preventDefault();
|
|
26
27
|
export function addClassNameToElement(element1, className) {
|
|
27
28
|
const elementClassName = element1.getAttribute('class') || '';
|
|
28
29
|
const updatedClassName = `${elementClassName}${elementClassName ? ' ' : ''}${className}`;
|
package/dist/lib/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/lib/utils.ts"],"sourcesContent":["import * as React from 'react';\nimport { shouldTriggerClickOnEnterOrSpace } from './accessibility';\nimport { isHTMLElement } from './dom';\n\nexport type ImgOnlyAttributes = {\n [index in Exclude<\n keyof React.ImgHTMLAttributes<HTMLImageElement>,\n keyof React.HTMLAttributes<HTMLImageElement>\n >]: React.ImgHTMLAttributes<HTMLImageElement>[index];\n};\n\nexport function setRef<T>(element: T, ref?: React.Ref<T>): void {\n if (ref) {\n if (typeof ref === 'function') {\n ref(element);\n } else {\n (ref as React.RefObject<T>).current = element;\n }\n }\n}\n\nexport function multiRef<T>(...refs: Array<React.Ref<T> | undefined>): React.RefObject<T | null> {\n let current: T | null = null;\n return {\n get current() {\n return current;\n },\n set current(element) {\n current = element;\n refs.forEach((ref) => ref && setRef(element, ref));\n },\n };\n}\n\nexport const stopPropagation = <T extends React.SyntheticEvent>(event: T): void =>\n event.stopPropagation();\n\nexport function addClassNameToElement(element: HTMLElement, className: string): void {\n const elementClassName = element.getAttribute('class') || '';\n const updatedClassName = `${elementClassName}${elementClassName ? ' ' : ''}${className}`;\n\n element.setAttribute('class', updatedClassName);\n}\n\nexport function removeClassNameFromElement(element: HTMLElement, classNameToRemove: string): void {\n const classNamesArray = (element.getAttribute('class') || '').split(/\\s+/);\n const elementIndexToRemove = classNamesArray.findIndex(\n (className) => className === classNameToRemove,\n );\n if (elementIndexToRemove === -1) {\n return;\n }\n classNamesArray.splice(elementIndexToRemove, 1);\n\n element.setAttribute('class', classNamesArray.join(' '));\n}\n\ntype ExcludeKeysWithUndefined<T> = {\n [P in keyof T]?: Exclude<T[P], undefined>;\n};\n\nexport const excludeKeysWithUndefined = <T extends Record<string | number | symbol, any>>(\n obj: T,\n): ExcludeKeysWithUndefined<T> => {\n const filteredObj: ExcludeKeysWithUndefined<T> = {};\n for (const key in obj) {\n if (obj.hasOwnProperty(key) && obj[key] !== undefined) {\n filteredObj[key] = obj[key];\n }\n }\n return filteredObj;\n};\n\nexport const isDOMTypeElement = <\n P extends React.HTMLAttributes<T> | React.SVGAttributes<T>,\n T extends Element,\n>(\n element: React.ReactElement,\n): element is Omit<React.DOMElement<P, T>, 'ref'> & { ref?: React.Ref<T> | undefined } =>\n typeof element.type === 'string';\n\nexport function isValidNotReactFragmentElement(\n children: Parameters<typeof React.isValidElement>[0],\n): children is React.ReactElement<Record<PropertyKey, any>> {\n return (\n React.isValidElement(children) &&\n // @ts-expect-error: TS2339 $$typeof всегда symbol, в отличии от type, благодаря этому пропускаем лишние проверки на тип.\n children.$$typeof !== Symbol.for('react.fragment')\n );\n}\n\nexport function isForwardRefElement<\n P extends React.HTMLAttributes<T> | React.SVGAttributes<T>,\n T extends Element,\n>(\n children: Parameters<typeof React.isValidElement>[0],\n): children is Omit<React.DOMElement<P, T>, 'ref'> & { ref?: React.Ref<T> | undefined } {\n if (!React.isValidElement(children)) {\n return false;\n }\n\n // @ts-expect-error: TS2339 $$typeof всегда symbol, в отличии от type, благодаря этому пропускаем лишние проверки на тип.\n // черпаем вдохновение из react-is https://github.com/facebook/react/blob/d48dbb824985166ecb7b2959db03090a8593dce0/packages/react-is/src/ReactIs.js#L119-L121\n const typeOfOfType = children.type && children.type.$$typeof;\n return typeOfOfType === Symbol.for('react.forward_ref');\n}\n\n/**\n * При использовании пропа fetchPriority генерируется warning \"Invalid DOM property\" (версия React 18.*)\n * Ворнинга нет в React версии 19.*, поэтому пока поддерживаем 2 версии наименования\n */\nexport function getFetchPriorityProp(value: React.ImgHTMLAttributes<HTMLElement>['fetchPriority']):\n | {\n fetchPriority: 'high' | 'low' | 'auto' | undefined;\n }\n | {\n fetchpriority: 'high' | 'low' | 'auto' | undefined;\n } {\n if (React.version.startsWith('19')) {\n return { fetchPriority: value };\n }\n return { fetchpriority: value };\n}\n\n/*\n * [a11y]\n * Обрабатывает событие onkeydown\n * для кастомных доступных элементов:\n * - role=\"link\" (активация по Enter)\n * - role=\"button\" (активация по Space и Enter)\n */\nexport function clickByKeyboardHandler(event: React.KeyboardEvent<HTMLDivElement>): void {\n if (!isHTMLElement(event.target) || !shouldTriggerClickOnEnterOrSpace(event)) {\n return;\n }\n\n event.preventDefault();\n event.target.click?.();\n}\n"],"names":["React","shouldTriggerClickOnEnterOrSpace","isHTMLElement","setRef","element","ref","current","multiRef","refs","forEach","stopPropagation","event","addClassNameToElement","className","elementClassName","getAttribute","updatedClassName","setAttribute","removeClassNameFromElement","classNameToRemove","classNamesArray","split","elementIndexToRemove","findIndex","splice","join","excludeKeysWithUndefined","obj","filteredObj","key","hasOwnProperty","undefined","isDOMTypeElement","type","isValidNotReactFragmentElement","children","isValidElement","$$typeof","Symbol","for","isForwardRefElement","typeOfOfType","getFetchPriorityProp","value","version","startsWith","fetchPriority","fetchpriority","clickByKeyboardHandler","target","
|
|
1
|
+
{"version":3,"sources":["../../src/lib/utils.ts"],"sourcesContent":["import * as React from 'react';\nimport { shouldTriggerClickOnEnterOrSpace } from './accessibility';\nimport { isHTMLElement } from './dom';\n\nexport type ImgOnlyAttributes = {\n [index in Exclude<\n keyof React.ImgHTMLAttributes<HTMLImageElement>,\n keyof React.HTMLAttributes<HTMLImageElement>\n >]: React.ImgHTMLAttributes<HTMLImageElement>[index];\n};\n\nexport function setRef<T>(element: T, ref?: React.Ref<T>): void {\n if (ref) {\n if (typeof ref === 'function') {\n ref(element);\n } else {\n (ref as React.RefObject<T>).current = element;\n }\n }\n}\n\nexport function multiRef<T>(...refs: Array<React.Ref<T> | undefined>): React.RefObject<T | null> {\n let current: T | null = null;\n return {\n get current() {\n return current;\n },\n set current(element) {\n current = element;\n refs.forEach((ref) => ref && setRef(element, ref));\n },\n };\n}\n\nexport const stopPropagation = <T extends React.SyntheticEvent>(event: T): void =>\n event.stopPropagation();\n\nexport const preventDefault = <T extends React.SyntheticEvent>(event: T): void =>\n event.preventDefault();\n\nexport function addClassNameToElement(element: HTMLElement, className: string): void {\n const elementClassName = element.getAttribute('class') || '';\n const updatedClassName = `${elementClassName}${elementClassName ? ' ' : ''}${className}`;\n\n element.setAttribute('class', updatedClassName);\n}\n\nexport function removeClassNameFromElement(element: HTMLElement, classNameToRemove: string): void {\n const classNamesArray = (element.getAttribute('class') || '').split(/\\s+/);\n const elementIndexToRemove = classNamesArray.findIndex(\n (className) => className === classNameToRemove,\n );\n if (elementIndexToRemove === -1) {\n return;\n }\n classNamesArray.splice(elementIndexToRemove, 1);\n\n element.setAttribute('class', classNamesArray.join(' '));\n}\n\ntype ExcludeKeysWithUndefined<T> = {\n [P in keyof T]?: Exclude<T[P], undefined>;\n};\n\nexport const excludeKeysWithUndefined = <T extends Record<string | number | symbol, any>>(\n obj: T,\n): ExcludeKeysWithUndefined<T> => {\n const filteredObj: ExcludeKeysWithUndefined<T> = {};\n for (const key in obj) {\n if (obj.hasOwnProperty(key) && obj[key] !== undefined) {\n filteredObj[key] = obj[key];\n }\n }\n return filteredObj;\n};\n\nexport const isDOMTypeElement = <\n P extends React.HTMLAttributes<T> | React.SVGAttributes<T>,\n T extends Element,\n>(\n element: React.ReactElement,\n): element is Omit<React.DOMElement<P, T>, 'ref'> & { ref?: React.Ref<T> | undefined } =>\n typeof element.type === 'string';\n\nexport function isValidNotReactFragmentElement(\n children: Parameters<typeof React.isValidElement>[0],\n): children is React.ReactElement<Record<PropertyKey, any>> {\n return (\n React.isValidElement(children) &&\n // @ts-expect-error: TS2339 $$typeof всегда symbol, в отличии от type, благодаря этому пропускаем лишние проверки на тип.\n children.$$typeof !== Symbol.for('react.fragment')\n );\n}\n\nexport function isForwardRefElement<\n P extends React.HTMLAttributes<T> | React.SVGAttributes<T>,\n T extends Element,\n>(\n children: Parameters<typeof React.isValidElement>[0],\n): children is Omit<React.DOMElement<P, T>, 'ref'> & { ref?: React.Ref<T> | undefined } {\n if (!React.isValidElement(children)) {\n return false;\n }\n\n // @ts-expect-error: TS2339 $$typeof всегда symbol, в отличии от type, благодаря этому пропускаем лишние проверки на тип.\n // черпаем вдохновение из react-is https://github.com/facebook/react/blob/d48dbb824985166ecb7b2959db03090a8593dce0/packages/react-is/src/ReactIs.js#L119-L121\n const typeOfOfType = children.type && children.type.$$typeof;\n return typeOfOfType === Symbol.for('react.forward_ref');\n}\n\n/**\n * При использовании пропа fetchPriority генерируется warning \"Invalid DOM property\" (версия React 18.*)\n * Ворнинга нет в React версии 19.*, поэтому пока поддерживаем 2 версии наименования\n */\nexport function getFetchPriorityProp(value: React.ImgHTMLAttributes<HTMLElement>['fetchPriority']):\n | {\n fetchPriority: 'high' | 'low' | 'auto' | undefined;\n }\n | {\n fetchpriority: 'high' | 'low' | 'auto' | undefined;\n } {\n if (React.version.startsWith('19')) {\n return { fetchPriority: value };\n }\n return { fetchpriority: value };\n}\n\n/*\n * [a11y]\n * Обрабатывает событие onkeydown\n * для кастомных доступных элементов:\n * - role=\"link\" (активация по Enter)\n * - role=\"button\" (активация по Space и Enter)\n */\nexport function clickByKeyboardHandler(event: React.KeyboardEvent<HTMLDivElement>): void {\n if (!isHTMLElement(event.target) || !shouldTriggerClickOnEnterOrSpace(event)) {\n return;\n }\n\n event.preventDefault();\n event.target.click?.();\n}\n"],"names":["React","shouldTriggerClickOnEnterOrSpace","isHTMLElement","setRef","element","ref","current","multiRef","refs","forEach","stopPropagation","event","preventDefault","addClassNameToElement","className","elementClassName","getAttribute","updatedClassName","setAttribute","removeClassNameFromElement","classNameToRemove","classNamesArray","split","elementIndexToRemove","findIndex","splice","join","excludeKeysWithUndefined","obj","filteredObj","key","hasOwnProperty","undefined","isDOMTypeElement","type","isValidNotReactFragmentElement","children","isValidElement","$$typeof","Symbol","for","isForwardRefElement","typeOfOfType","getFetchPriorityProp","value","version","startsWith","fetchPriority","fetchpriority","clickByKeyboardHandler","target","click"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,gCAAgC,QAAQ,qBAAkB;AACnE,SAASC,aAAa,QAAQ,WAAQ;AAStC,OAAO,SAASC,OAAUC,QAAU,EAAEC,GAAkB;IACtD,IAAIA,KAAK;QACP,IAAI,OAAOA,QAAQ,YAAY;YAC7BA,IAAID;QACN,OAAO;YACJC,IAA2BC,OAAO,GAAGF;QACxC;IACF;AACF;AAEA,OAAO,SAASG,SAAY,GAAGC,IAAqC;IAClE,IAAIF,UAAoB;IACxB,OAAO;QACL,IAAIA,WAAU;YACZ,OAAOA;QACT;QACA,IAAIA,SAAQF,QAAS;YACnBE,UAAUF;YACVI,KAAKC,OAAO,CAAC,CAACJ,MAAQA,OAAOF,OAAOC,SAASC;QAC/C;IACF;AACF;AAEA,OAAO,MAAMK,kBAAkB,CAAiCC,QAC9DA,MAAMD,eAAe,GAAG;AAE1B,OAAO,MAAME,iBAAiB,CAAiCD,QAC7DA,MAAMC,cAAc,GAAG;AAEzB,OAAO,SAASC,sBAAsBT,QAAoB,EAAEU,SAAiB;IAC3E,MAAMC,mBAAmBX,SAAQY,YAAY,CAAC,YAAY;IAC1D,MAAMC,mBAAmB,GAAGF,mBAAmBA,mBAAmB,MAAM,KAAKD,WAAW;IAExFV,SAAQc,YAAY,CAAC,SAASD;AAChC;AAEA,OAAO,SAASE,2BAA2Bf,QAAoB,EAAEgB,iBAAyB;IACxF,MAAMC,kBAAkB,AAACjB,CAAAA,SAAQY,YAAY,CAAC,YAAY,EAAC,EAAGM,KAAK,CAAC;IACpE,MAAMC,uBAAuBF,gBAAgBG,SAAS,CACpD,CAACV,YAAcA,cAAcM;IAE/B,IAAIG,yBAAyB,CAAC,GAAG;QAC/B;IACF;IACAF,gBAAgBI,MAAM,CAACF,sBAAsB;IAE7CnB,SAAQc,YAAY,CAAC,SAASG,gBAAgBK,IAAI,CAAC;AACrD;AAMA,OAAO,MAAMC,2BAA2B,CACtCC;IAEA,MAAMC,cAA2C,CAAC;IAClD,IAAK,MAAMC,OAAOF,IAAK;QACrB,IAAIA,IAAIG,cAAc,CAACD,QAAQF,GAAG,CAACE,IAAI,KAAKE,WAAW;YACrDH,WAAW,CAACC,IAAI,GAAGF,GAAG,CAACE,IAAI;QAC7B;IACF;IACA,OAAOD;AACT,EAAE;AAEF,OAAO,MAAMI,mBAAmB,CAI9B7B,WAEA,OAAOA,SAAQ8B,IAAI,KAAK,SAAS;AAEnC,OAAO,SAASC,+BACdC,QAAoD;IAEpD,OACEpC,MAAMqC,cAAc,CAACD,aACrB,yHAAyH;IACzHA,SAASE,QAAQ,KAAKC,OAAOC,GAAG,CAAC;AAErC;AAEA,OAAO,SAASC,oBAIdL,QAAoD;IAEpD,IAAI,CAACpC,MAAMqC,cAAc,CAACD,WAAW;QACnC,OAAO;IACT;IAEA,yHAAyH;IACzH,6JAA6J;IAC7J,MAAMM,eAAeN,SAASF,IAAI,IAAIE,SAASF,IAAI,CAACI,QAAQ;IAC5D,OAAOI,iBAAiBH,OAAOC,GAAG,CAAC;AACrC;AAEA;;;CAGC,GACD,OAAO,SAASG,qBAAqBC,KAA4D;IAO/F,IAAI5C,MAAM6C,OAAO,CAACC,UAAU,CAAC,OAAO;QAClC,OAAO;YAAEC,eAAeH;QAAM;IAChC;IACA,OAAO;QAAEI,eAAeJ;IAAM;AAChC;AAEA;;;;;;CAMC,GACD,OAAO,SAASK,uBAAuBtC,KAA0C;QAM/EA,qBAAAA;IALA,IAAI,CAACT,cAAcS,MAAMuC,MAAM,KAAK,CAACjD,iCAAiCU,QAAQ;QAC5E;IACF;IAEAA,MAAMC,cAAc;KACpBD,sBAAAA,CAAAA,gBAAAA,MAAMuC,MAAM,EAACC,KAAK,cAAlBxC,0CAAAA,yBAAAA;AACF"}
|