@salutejs/plasma-new-hope 0.327.0-canary.1741.15743877104.0 → 0.327.0-canary.1741.15776056320.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/cjs/components/Autocomplete/Autocomplete.js +3 -3
- package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
- package/cjs/components/Autocomplete/FloatingPopover.js +2 -2
- package/cjs/components/Autocomplete/FloatingPopover.js.map +1 -1
- package/cjs/components/Calendar/CalendarBase/CalendarBase.js +12 -0
- package/cjs/components/Calendar/CalendarBase/CalendarBase.js.map +1 -1
- package/cjs/components/Calendar/CalendarDouble/CalendarDouble.js +12 -0
- package/cjs/components/Calendar/CalendarDouble/CalendarDouble.js.map +1 -1
- package/cjs/components/Calendar/ui/CalendarDays/CalendarDays.js +3 -0
- package/cjs/components/Calendar/ui/CalendarDays/CalendarDays.js.map +1 -1
- package/cjs/components/Calendar/ui/CalendarMonths/CalendarMonths.js +3 -0
- package/cjs/components/Calendar/ui/CalendarMonths/CalendarMonths.js.map +1 -1
- package/cjs/components/Calendar/ui/CalendarQuarters/CalendarQuarters.js +3 -0
- package/cjs/components/Calendar/ui/CalendarQuarters/CalendarQuarters.js.map +1 -1
- package/cjs/components/Calendar/ui/CalendarYears/CalendarYears.js +3 -0
- package/cjs/components/Calendar/ui/CalendarYears/CalendarYears.js.map +1 -1
- package/cjs/components/Checkbox/Checkbox.js +2 -1
- package/cjs/components/Checkbox/Checkbox.js.map +1 -1
- package/cjs/components/Combobox/ComboboxNew/Combobox.js +2 -1
- package/cjs/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
- package/cjs/components/Combobox/ComboboxNew/FloatingPopover.js +2 -2
- package/cjs/components/Combobox/ComboboxNew/FloatingPopover.js.map +1 -1
- package/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js +2 -2
- package/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js.map +1 -1
- package/cjs/components/Combobox/ComboboxOld/Combobox.js +2 -1
- package/cjs/components/Combobox/ComboboxOld/Combobox.js.map +1 -1
- package/cjs/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +3 -3
- package/cjs/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js.map +1 -1
- package/cjs/components/Drawer/Drawer.js +4 -3
- package/cjs/components/Drawer/Drawer.js.map +1 -1
- package/cjs/components/Drawer/hooks/useDrawer.js +2 -2
- package/cjs/components/Drawer/hooks/useDrawer.js.map +1 -1
- package/cjs/components/Dropdown/Dropdown.js +2 -2
- package/cjs/components/Dropdown/Dropdown.js.map +1 -1
- package/cjs/components/Dropdown/FloatingPopover.js +2 -2
- package/cjs/components/Dropdown/FloatingPopover.js.map +1 -1
- package/cjs/components/Dropdown/ui/DropdownDivider/DropdownDivider.js.map +1 -1
- package/cjs/components/Dropdown/ui/DropdownFooter/DropdownFooter.js.map +1 -1
- package/cjs/components/Dropdown/ui/DropdownGroup/DropdownGroup.js.map +1 -1
- package/cjs/components/Dropdown/ui/DropdownHeader/DropdownHeader.js.map +1 -1
- package/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js +2 -2
- package/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js.map +1 -1
- package/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +3 -3
- package/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js.map +1 -1
- package/cjs/components/Dropdown/ui/DropdownOld/DropdownOld.js.map +1 -1
- package/cjs/components/Mask/Mask.js +3 -3
- package/cjs/components/Mask/Mask.js.map +1 -1
- package/cjs/components/Modal/Modal.js +3 -2
- package/cjs/components/Modal/Modal.js.map +1 -1
- package/cjs/components/Modal/hooks/useModal.js +1 -1
- package/cjs/components/Modal/hooks/useModal.js.map +1 -1
- package/cjs/components/Popup/Popup.js +2 -1
- package/cjs/components/Popup/Popup.js.map +1 -1
- package/cjs/components/Popup/PopupContext.js +13 -13
- package/cjs/components/Popup/PopupContext.js.map +1 -1
- package/cjs/components/Radiobox/Radiobox.js +3 -2
- package/cjs/components/Radiobox/Radiobox.js.map +1 -1
- package/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.js +3 -3
- package/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.js.map +1 -1
- package/cjs/components/Segment/ui/SegmentItem/SegmentItem.js +2 -2
- package/cjs/components/Segment/ui/SegmentItem/SegmentItem.js.map +1 -1
- package/cjs/components/Select/FloatingPopover.js +2 -2
- package/cjs/components/Select/FloatingPopover.js.map +1 -1
- package/cjs/components/Select/Select.js +2 -2
- package/cjs/components/Select/Select.js.map +1 -1
- package/cjs/components/Select/ui/Inner/Inner.js +2 -2
- package/cjs/components/Select/ui/Inner/Inner.js.map +1 -1
- package/cjs/components/Spinner/Spinner.js +2 -2
- package/cjs/components/Spinner/Spinner.js.map +1 -1
- package/cjs/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +3 -3
- package/cjs/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js.map +1 -1
- package/cjs/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +3 -3
- package/cjs/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js.map +1 -1
- package/cjs/components/TextArea/ui/Hint/Hint.js.map +1 -1
- package/cjs/components/TextField/TextField.js +4 -3
- package/cjs/components/TextField/TextField.js.map +1 -1
- package/cjs/components/TextField/ui/Hint/Hint.js.map +1 -1
- package/emotion/cjs/components/Autocomplete/Autocomplete.js +3 -3
- package/emotion/cjs/components/Autocomplete/FloatingPopover.js +2 -2
- package/emotion/cjs/components/Calendar/CalendarBase/CalendarBase.js +14 -0
- package/emotion/cjs/components/Calendar/CalendarDouble/CalendarDouble.js +14 -0
- package/emotion/cjs/components/Calendar/ui/CalendarDays/CalendarDays.js +3 -0
- package/emotion/cjs/components/Calendar/ui/CalendarMonths/CalendarMonths.js +3 -0
- package/emotion/cjs/components/Calendar/ui/CalendarQuarters/CalendarQuarters.js +3 -0
- package/emotion/cjs/components/Calendar/ui/CalendarYears/CalendarYears.js +3 -0
- package/emotion/cjs/components/Checkbox/Checkbox.js +3 -2
- package/emotion/cjs/components/Combobox/ComboboxNew/Combobox.js +21 -20
- package/emotion/cjs/components/Combobox/ComboboxNew/FloatingPopover.js +2 -2
- package/emotion/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js +4 -4
- package/emotion/cjs/components/Combobox/ComboboxOld/Combobox.js +9 -8
- package/emotion/cjs/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +7 -7
- package/emotion/cjs/components/Drawer/Drawer.js +8 -8
- package/emotion/cjs/components/Drawer/hooks/useDrawer.js +2 -2
- package/emotion/cjs/components/Dropdown/Dropdown.js +8 -8
- package/emotion/cjs/components/Dropdown/FloatingPopover.js +2 -2
- package/emotion/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js +4 -4
- package/emotion/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +2 -3
- package/emotion/cjs/components/Dropdown/ui/DropdownOld/DropdownOld.js +1 -1
- package/emotion/cjs/components/Mask/Mask.js +4 -4
- package/emotion/cjs/components/Modal/Modal.js +6 -5
- package/emotion/cjs/components/Modal/hooks/useModal.js +1 -1
- package/emotion/cjs/components/Popup/Popup.js +1 -1
- package/emotion/cjs/components/Popup/PopupContext.js +14 -29
- package/emotion/cjs/components/Radiobox/Radiobox.js +2 -2
- package/emotion/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.js +2 -3
- package/emotion/cjs/components/Segment/ui/SegmentItem/SegmentItem.js +1 -2
- package/emotion/cjs/components/Select/FloatingPopover.js +5 -5
- package/emotion/cjs/components/Select/Select.js +1 -2
- package/emotion/cjs/components/Select/ui/Inner/Inner.js +1 -2
- package/emotion/cjs/components/Spinner/Spinner.js +2 -2
- package/emotion/cjs/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +2 -3
- package/emotion/cjs/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +2 -3
- package/emotion/cjs/components/TextArea/ui/Hint/Hint.js +1 -1
- package/emotion/cjs/components/TextField/TextField.js +4 -4
- package/emotion/cjs/components/TextField/ui/Hint/Hint.js +1 -1
- package/emotion/es/components/Autocomplete/Autocomplete.js +1 -1
- package/emotion/es/components/Autocomplete/FloatingPopover.js +1 -1
- package/emotion/es/components/Calendar/CalendarBase/CalendarBase.js +14 -0
- package/emotion/es/components/Calendar/CalendarDouble/CalendarDouble.js +14 -0
- package/emotion/es/components/Calendar/ui/CalendarDays/CalendarDays.js +3 -0
- package/emotion/es/components/Calendar/ui/CalendarMonths/CalendarMonths.js +3 -0
- package/emotion/es/components/Calendar/ui/CalendarQuarters/CalendarQuarters.js +3 -0
- package/emotion/es/components/Calendar/ui/CalendarYears/CalendarYears.js +3 -0
- package/emotion/es/components/Checkbox/Checkbox.js +2 -1
- package/emotion/es/components/Combobox/ComboboxNew/Combobox.js +2 -1
- package/emotion/es/components/Combobox/ComboboxNew/FloatingPopover.js +1 -1
- package/emotion/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js +1 -1
- package/emotion/es/components/Combobox/ComboboxOld/Combobox.js +2 -1
- package/emotion/es/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +1 -1
- package/emotion/es/components/Drawer/Drawer.js +3 -3
- package/emotion/es/components/Drawer/hooks/useDrawer.js +2 -2
- package/emotion/es/components/Dropdown/Dropdown.js +1 -1
- package/emotion/es/components/Dropdown/FloatingPopover.js +1 -1
- package/emotion/es/components/Dropdown/ui/DropdownInner/DropdownInner.js +1 -1
- package/emotion/es/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +1 -2
- package/emotion/es/components/Dropdown/ui/DropdownOld/DropdownOld.js +1 -1
- package/emotion/es/components/Mask/Mask.js +4 -4
- package/emotion/es/components/Modal/Modal.js +4 -3
- package/emotion/es/components/Modal/hooks/useModal.js +1 -1
- package/emotion/es/components/Popup/Popup.js +2 -2
- package/emotion/es/components/Popup/PopupContext.js +14 -29
- package/emotion/es/components/Radiobox/Radiobox.js +2 -2
- package/emotion/es/components/Segment/ui/SegmentGroup/SegmentGroup.js +1 -2
- package/emotion/es/components/Segment/ui/SegmentItem/SegmentItem.js +1 -2
- package/emotion/es/components/Select/FloatingPopover.js +1 -1
- package/emotion/es/components/Select/Select.js +1 -2
- package/emotion/es/components/Select/ui/Inner/Inner.js +1 -2
- package/emotion/es/components/Spinner/Spinner.js +1 -1
- package/emotion/es/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +1 -2
- package/emotion/es/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +1 -2
- package/emotion/es/components/TextArea/ui/Hint/Hint.js +1 -1
- package/emotion/es/components/TextField/TextField.js +3 -3
- package/emotion/es/components/TextField/ui/Hint/Hint.js +1 -1
- package/es/components/Autocomplete/Autocomplete.js +1 -1
- package/es/components/Autocomplete/Autocomplete.js.map +1 -1
- package/es/components/Autocomplete/FloatingPopover.js +1 -1
- package/es/components/Autocomplete/FloatingPopover.js.map +1 -1
- package/es/components/Calendar/CalendarBase/CalendarBase.js +12 -0
- package/es/components/Calendar/CalendarBase/CalendarBase.js.map +1 -1
- package/es/components/Calendar/CalendarDouble/CalendarDouble.js +12 -0
- package/es/components/Calendar/CalendarDouble/CalendarDouble.js.map +1 -1
- package/es/components/Calendar/ui/CalendarDays/CalendarDays.js +3 -0
- package/es/components/Calendar/ui/CalendarDays/CalendarDays.js.map +1 -1
- package/es/components/Calendar/ui/CalendarMonths/CalendarMonths.js +3 -0
- package/es/components/Calendar/ui/CalendarMonths/CalendarMonths.js.map +1 -1
- package/es/components/Calendar/ui/CalendarQuarters/CalendarQuarters.js +3 -0
- package/es/components/Calendar/ui/CalendarQuarters/CalendarQuarters.js.map +1 -1
- package/es/components/Calendar/ui/CalendarYears/CalendarYears.js +3 -0
- package/es/components/Calendar/ui/CalendarYears/CalendarYears.js.map +1 -1
- package/es/components/Checkbox/Checkbox.js +2 -1
- package/es/components/Checkbox/Checkbox.js.map +1 -1
- package/es/components/Combobox/ComboboxNew/Combobox.js +2 -1
- package/es/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
- package/es/components/Combobox/ComboboxNew/FloatingPopover.js +1 -1
- package/es/components/Combobox/ComboboxNew/FloatingPopover.js.map +1 -1
- package/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js +1 -1
- package/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js.map +1 -1
- package/es/components/Combobox/ComboboxOld/Combobox.js +2 -1
- package/es/components/Combobox/ComboboxOld/Combobox.js.map +1 -1
- package/es/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +2 -2
- package/es/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js.map +1 -1
- package/es/components/Drawer/Drawer.js +4 -3
- package/es/components/Drawer/Drawer.js.map +1 -1
- package/es/components/Drawer/hooks/useDrawer.js +2 -2
- package/es/components/Drawer/hooks/useDrawer.js.map +1 -1
- package/es/components/Dropdown/Dropdown.js +1 -1
- package/es/components/Dropdown/Dropdown.js.map +1 -1
- package/es/components/Dropdown/FloatingPopover.js +1 -1
- package/es/components/Dropdown/FloatingPopover.js.map +1 -1
- package/es/components/Dropdown/ui/DropdownDivider/DropdownDivider.js.map +1 -1
- package/es/components/Dropdown/ui/DropdownFooter/DropdownFooter.js.map +1 -1
- package/es/components/Dropdown/ui/DropdownGroup/DropdownGroup.js.map +1 -1
- package/es/components/Dropdown/ui/DropdownHeader/DropdownHeader.js.map +1 -1
- package/es/components/Dropdown/ui/DropdownInner/DropdownInner.js +1 -1
- package/es/components/Dropdown/ui/DropdownInner/DropdownInner.js.map +1 -1
- package/es/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +2 -2
- package/es/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js.map +1 -1
- package/es/components/Dropdown/ui/DropdownOld/DropdownOld.js.map +1 -1
- package/es/components/Mask/Mask.js +3 -3
- package/es/components/Mask/Mask.js.map +1 -1
- package/es/components/Modal/Modal.js +3 -2
- package/es/components/Modal/Modal.js.map +1 -1
- package/es/components/Modal/hooks/useModal.js +1 -1
- package/es/components/Modal/hooks/useModal.js.map +1 -1
- package/es/components/Popup/Popup.js +2 -1
- package/es/components/Popup/Popup.js.map +1 -1
- package/es/components/Popup/PopupContext.js +13 -13
- package/es/components/Popup/PopupContext.js.map +1 -1
- package/es/components/Radiobox/Radiobox.js +3 -2
- package/es/components/Radiobox/Radiobox.js.map +1 -1
- package/es/components/Segment/ui/SegmentGroup/SegmentGroup.js +2 -2
- package/es/components/Segment/ui/SegmentGroup/SegmentGroup.js.map +1 -1
- package/es/components/Segment/ui/SegmentItem/SegmentItem.js +1 -1
- package/es/components/Segment/ui/SegmentItem/SegmentItem.js.map +1 -1
- package/es/components/Select/FloatingPopover.js +1 -1
- package/es/components/Select/FloatingPopover.js.map +1 -1
- package/es/components/Select/Select.js +1 -1
- package/es/components/Select/Select.js.map +1 -1
- package/es/components/Select/ui/Inner/Inner.js +1 -1
- package/es/components/Select/ui/Inner/Inner.js.map +1 -1
- package/es/components/Spinner/Spinner.js +1 -1
- package/es/components/Spinner/Spinner.js.map +1 -1
- package/es/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +2 -2
- package/es/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js.map +1 -1
- package/es/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +2 -2
- package/es/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js.map +1 -1
- package/es/components/TextArea/ui/Hint/Hint.js.map +1 -1
- package/es/components/TextField/TextField.js +2 -1
- package/es/components/TextField/TextField.js.map +1 -1
- package/es/components/TextField/ui/Hint/Hint.js.map +1 -1
- package/package.json +4 -4
- package/styled-components/cjs/components/Autocomplete/Autocomplete.js +3 -3
- package/styled-components/cjs/components/Autocomplete/FloatingPopover.js +2 -2
- package/styled-components/cjs/components/Calendar/CalendarBase/CalendarBase.js +14 -0
- package/styled-components/cjs/components/Calendar/CalendarDouble/CalendarDouble.js +14 -0
- package/styled-components/cjs/components/Calendar/ui/CalendarDays/CalendarDays.js +3 -0
- package/styled-components/cjs/components/Calendar/ui/CalendarMonths/CalendarMonths.js +3 -0
- package/styled-components/cjs/components/Calendar/ui/CalendarQuarters/CalendarQuarters.js +3 -0
- package/styled-components/cjs/components/Calendar/ui/CalendarYears/CalendarYears.js +3 -0
- package/styled-components/cjs/components/Checkbox/Checkbox.js +3 -2
- package/styled-components/cjs/components/Combobox/ComboboxNew/Combobox.js +21 -20
- package/styled-components/cjs/components/Combobox/ComboboxNew/FloatingPopover.js +2 -2
- package/styled-components/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js +4 -4
- package/styled-components/cjs/components/Combobox/ComboboxOld/Combobox.js +9 -8
- package/styled-components/cjs/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +7 -7
- package/styled-components/cjs/components/Drawer/Drawer.js +8 -8
- package/styled-components/cjs/components/Drawer/hooks/useDrawer.js +2 -2
- package/styled-components/cjs/components/Dropdown/Dropdown.js +8 -8
- package/styled-components/cjs/components/Dropdown/FloatingPopover.js +2 -2
- package/styled-components/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js +4 -4
- package/styled-components/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +2 -3
- package/styled-components/cjs/components/Dropdown/ui/DropdownOld/DropdownOld.js +1 -1
- package/styled-components/cjs/components/Mask/Mask.js +4 -4
- package/styled-components/cjs/components/Modal/Modal.js +6 -5
- package/styled-components/cjs/components/Modal/hooks/useModal.js +1 -1
- package/styled-components/cjs/components/Popup/Popup.js +1 -1
- package/styled-components/cjs/components/Popup/PopupContext.js +14 -29
- package/styled-components/cjs/components/Radiobox/Radiobox.js +2 -2
- package/styled-components/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.js +2 -3
- package/styled-components/cjs/components/Segment/ui/SegmentItem/SegmentItem.js +1 -2
- package/styled-components/cjs/components/Select/FloatingPopover.js +5 -5
- package/styled-components/cjs/components/Select/Select.js +1 -2
- package/styled-components/cjs/components/Select/ui/Inner/Inner.js +1 -2
- package/styled-components/cjs/components/Spinner/Spinner.js +2 -2
- package/styled-components/cjs/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +2 -3
- package/styled-components/cjs/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +2 -3
- package/styled-components/cjs/components/TextArea/ui/Hint/Hint.js +1 -1
- package/styled-components/cjs/components/TextField/TextField.js +3 -3
- package/styled-components/cjs/components/TextField/ui/Hint/Hint.js +1 -1
- package/styled-components/es/components/Autocomplete/Autocomplete.js +1 -1
- package/styled-components/es/components/Autocomplete/FloatingPopover.js +1 -1
- package/styled-components/es/components/Calendar/CalendarBase/CalendarBase.js +14 -0
- package/styled-components/es/components/Calendar/CalendarDouble/CalendarDouble.js +14 -0
- package/styled-components/es/components/Calendar/ui/CalendarDays/CalendarDays.js +3 -0
- package/styled-components/es/components/Calendar/ui/CalendarMonths/CalendarMonths.js +3 -0
- package/styled-components/es/components/Calendar/ui/CalendarQuarters/CalendarQuarters.js +3 -0
- package/styled-components/es/components/Calendar/ui/CalendarYears/CalendarYears.js +3 -0
- package/styled-components/es/components/Checkbox/Checkbox.js +2 -1
- package/styled-components/es/components/Combobox/ComboboxNew/Combobox.js +2 -1
- package/styled-components/es/components/Combobox/ComboboxNew/FloatingPopover.js +1 -1
- package/styled-components/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js +1 -1
- package/styled-components/es/components/Combobox/ComboboxOld/Combobox.js +2 -1
- package/styled-components/es/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +1 -1
- package/styled-components/es/components/Drawer/Drawer.js +3 -3
- package/styled-components/es/components/Drawer/hooks/useDrawer.js +2 -2
- package/styled-components/es/components/Dropdown/Dropdown.js +1 -1
- package/styled-components/es/components/Dropdown/FloatingPopover.js +1 -1
- package/styled-components/es/components/Dropdown/ui/DropdownInner/DropdownInner.js +1 -1
- package/styled-components/es/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +1 -2
- package/styled-components/es/components/Dropdown/ui/DropdownOld/DropdownOld.js +1 -1
- package/styled-components/es/components/Mask/Mask.js +4 -4
- package/styled-components/es/components/Modal/Modal.js +4 -3
- package/styled-components/es/components/Modal/hooks/useModal.js +1 -1
- package/styled-components/es/components/Popup/Popup.js +2 -2
- package/styled-components/es/components/Popup/PopupContext.js +14 -29
- package/styled-components/es/components/Radiobox/Radiobox.js +2 -2
- package/styled-components/es/components/Segment/ui/SegmentGroup/SegmentGroup.js +1 -2
- package/styled-components/es/components/Segment/ui/SegmentItem/SegmentItem.js +1 -2
- package/styled-components/es/components/Select/FloatingPopover.js +1 -1
- package/styled-components/es/components/Select/Select.js +1 -2
- package/styled-components/es/components/Select/ui/Inner/Inner.js +1 -2
- package/styled-components/es/components/Spinner/Spinner.js +1 -1
- package/styled-components/es/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +1 -2
- package/styled-components/es/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +1 -2
- package/styled-components/es/components/TextArea/ui/Hint/Hint.js +1 -1
- package/styled-components/es/components/TextField/TextField.js +2 -2
- package/styled-components/es/components/TextField/ui/Hint/Hint.js +1 -1
- package/types/components/Calendar/CalendarBase/CalendarBase.d.ts.map +1 -1
- package/types/components/Calendar/CalendarDouble/CalendarDouble.d.ts.map +1 -1
- package/types/components/Calendar/ui/CalendarDays/CalendarDays.d.ts.map +1 -1
- package/types/components/Calendar/ui/CalendarMonths/CalendarMonths.d.ts.map +1 -1
- package/types/components/Calendar/ui/CalendarQuarters/CalendarQuarters.d.ts.map +1 -1
- package/types/components/Calendar/ui/CalendarYears/CalendarYears.d.ts.map +1 -1
- package/types/components/Checkbox/Checkbox.d.ts.map +1 -1
- package/types/components/Combobox/ComboboxNew/Combobox.d.ts.map +1 -1
- package/types/components/Combobox/ComboboxOld/Combobox.d.ts.map +1 -1
- package/types/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.d.ts.map +1 -1
- package/types/components/Drawer/Drawer.d.ts +1 -1
- package/types/components/Drawer/Drawer.d.ts.map +1 -1
- package/types/components/Drawer/hooks/useDrawer.d.ts.map +1 -1
- package/types/components/Dropdown/Dropdown.d.ts.map +1 -1
- package/types/components/Dropdown/ui/DropdownDivider/DropdownDivider.d.ts +1 -1
- package/types/components/Dropdown/ui/DropdownDivider/DropdownDivider.d.ts.map +1 -1
- package/types/components/Dropdown/ui/DropdownFooter/DropdownFooter.d.ts +1 -1
- package/types/components/Dropdown/ui/DropdownFooter/DropdownFooter.d.ts.map +1 -1
- package/types/components/Dropdown/ui/DropdownGroup/DropdownGroup.d.ts +1 -1
- package/types/components/Dropdown/ui/DropdownGroup/DropdownGroup.d.ts.map +1 -1
- package/types/components/Dropdown/ui/DropdownHeader/DropdownHeader.d.ts +1 -1
- package/types/components/Dropdown/ui/DropdownHeader/DropdownHeader.d.ts.map +1 -1
- package/types/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.d.ts +1 -1
- package/types/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.d.ts.map +1 -1
- package/types/components/Dropdown/ui/DropdownOld/DropdownOld.d.ts +1 -1
- package/types/components/Dropdown/ui/DropdownOld/DropdownOld.d.ts.map +1 -1
- package/types/components/Modal/Modal.d.ts +1 -1
- package/types/components/Modal/Modal.d.ts.map +1 -1
- package/types/components/Popup/Popup.d.ts +1 -1
- package/types/components/Popup/Popup.d.ts.map +1 -1
- package/types/components/Popup/Popup.types.d.ts +1 -1
- package/types/components/Popup/Popup.types.d.ts.map +1 -1
- package/types/components/Popup/PopupContext.d.ts.map +1 -1
- package/types/components/Radiobox/Radiobox.d.ts +2 -2
- package/types/components/Radiobox/Radiobox.d.ts.map +1 -1
- package/types/components/Segment/ui/SegmentGroup/SegmentGroup.d.ts +1 -1
- package/types/components/Segment/ui/SegmentGroup/SegmentGroup.d.ts.map +1 -1
- package/types/components/Segment/ui/SegmentItem/SegmentItem.d.ts +1 -1
- package/types/components/Segment/ui/SegmentItem/SegmentItem.d.ts.map +1 -1
- package/types/components/Select/Select.d.ts.map +1 -1
- package/types/components/Select/ui/Inner/Inner.d.ts.map +1 -1
- package/types/components/Spinner/Spinner.d.ts +1 -1
- package/types/components/Spinner/Spinner.d.ts.map +1 -1
- package/types/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.d.ts +1 -1
- package/types/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.d.ts.map +1 -1
- package/types/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.d.ts +1 -1
- package/types/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.d.ts.map +1 -1
- package/types/components/TextField/TextField.d.ts +1 -1
- package/types/components/TextField/TextField.d.ts.map +1 -1
@@ -4,11 +4,11 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
5
5
|
var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js');
|
6
6
|
var React = require('react');
|
7
|
-
var plasmaCore = require('@salutejs/plasma-core');
|
8
7
|
var FloatingPopover = require('./FloatingPopover.js');
|
9
8
|
var focusedReducer = require('./reducers/focusedReducer.js');
|
10
9
|
var Autocomplete_styles = require('./Autocomplete.styles.js');
|
11
10
|
var useKeyboardNavigation = require('./hooks/useKeyboardNavigation.js');
|
11
|
+
var react = require('../../utils/react.js');
|
12
12
|
var useOutsideClick = require('../../hooks/useOutsideClick.js');
|
13
13
|
var useDidMountEffect = require('../../hooks/useDidMountEffect.js');
|
14
14
|
var TextField_styles = require('./ui/TextField/TextField.styles.js');
|
@@ -61,9 +61,9 @@ const autocompleteRoot = Root => /*#__PURE__*/React.forwardRef(({
|
|
61
61
|
const [focused, dispatchFocused] = React.useReducer(focusedReducer.focusedReducer, null);
|
62
62
|
const [innerValue, setInnerValue] = React.useState('');
|
63
63
|
const [isOpen, setIsOpen] = React.useState(false);
|
64
|
-
const listId =
|
64
|
+
const listId = react.safeUseId();
|
65
65
|
const value = outerValue ?? innerValue;
|
66
|
-
const helperTextId =
|
66
|
+
const helperTextId = react.safeUseId();
|
67
67
|
const floatingPopoverRef = React.useRef(null);
|
68
68
|
const targetRef = useOutsideClick.useOutsideClick(() => {
|
69
69
|
setIsOpen(false);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Autocomplete.js","sources":["../../../src/components/Autocomplete/Autocomplete.tsx"],"sourcesContent":["import React, { forwardRef, useState, useReducer, useLayoutEffect, useRef } from 'react';\nimport { safeUseId } from '@salutejs/plasma-core';\nimport { useDidMountEffect, useOutsideClick } from 'src/hooks';\nimport { RootProps } from 'src/engines';\n\nimport { FloatingPopover } from './FloatingPopover';\nimport { focusedReducer } from './reducers/focusedReducer';\nimport { SuggestionItem, StyledTextField, VirtualList } from './ui';\nimport { Ul, InfiniteLoaderWrapper, base, StyledLeftHelper, ListWrapper } from './Autocomplete.styles';\nimport type { AutocompleteProps, SuggestionItemType } from './Autocomplete.types';\nimport { useKeyNavigation } from './hooks/useKeyboardNavigation';\n\n/**\n * Компонент Autocomplete. Поле ввода с подсказками в выпадающем списке.\n */\nexport const autocompleteRoot = (Root: RootProps<HTMLInputElement, Omit<AutocompleteProps, 'hintText'>>) =>\n forwardRef<HTMLInputElement, AutocompleteProps>(\n (\n {\n value: outerValue,\n defaultValue,\n onChange,\n suggestions,\n view,\n size,\n labelPlacement,\n keepPlaceholder,\n disabled,\n readOnly,\n label,\n leftHelper,\n contentLeft,\n contentRight,\n textBefore,\n textAfter,\n onScroll,\n listMaxHeight = '25rem',\n listWidth,\n portal,\n filter,\n onSuggestionSelect,\n threshold = 2,\n renderList,\n renderListEnd,\n renderItem,\n onSearch,\n hintText,\n hintView = 'default',\n hintSize = 'm',\n beforeList,\n afterList,\n virtual = false,\n ...rest\n },\n ref,\n ) => {\n const [focused, dispatchFocused] = useReducer(focusedReducer, null);\n const [innerValue, setInnerValue] = useState<string | number>('');\n const [isOpen, setIsOpen] = useState(false);\n\n const listId = safeUseId();\n const value = outerValue ?? innerValue;\n\n const helperTextId = safeUseId();\n const floatingPopoverRef = useRef<HTMLDivElement>(null);\n\n const targetRef = useOutsideClick<HTMLUListElement>(() => {\n setIsOpen(false);\n }, floatingPopoverRef);\n\n const handleFocus = () => {\n if (value.toString().length >= threshold) {\n setIsOpen(true);\n }\n };\n\n const handleItemClick = (e: SuggestionItemType) => {\n setInnerValue(e.label);\n\n if (onSuggestionSelect) {\n onSuggestionSelect(e);\n }\n\n setIsOpen(false);\n };\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const currentValue = e.target.value;\n\n setInnerValue(currentValue);\n\n if (onChange) {\n onChange(e);\n }\n\n if (currentValue.toString().length >= threshold) {\n setIsOpen(true);\n } else {\n setIsOpen(false);\n }\n };\n\n const defaultFilterCallback = ({ label }: { label: string }) => {\n return label.toLowerCase().includes(value.toString().toLowerCase());\n };\n\n const helperTextStopPropagation = (event: React.MouseEvent<HTMLDivElement>) => {\n event.stopPropagation();\n };\n\n const finalResults = suggestions?.filter(filter || defaultFilterCallback) || [];\n\n const { onKeyDown } = useKeyNavigation({\n isOpen,\n setIsOpen,\n focused,\n dispatchFocused,\n finalResults,\n handleItemClick,\n });\n\n useDidMountEffect(() => {\n dispatchFocused({ type: 'reset' });\n }, [value]);\n\n useLayoutEffect(() => {\n if (defaultValue) {\n setInnerValue(defaultValue);\n }\n }, [defaultValue]);\n\n return (\n <Root\n view={view}\n size={size}\n labelPlacement={labelPlacement}\n disabled={disabled}\n readOnly={readOnly}\n hintView={hintView}\n hintSize={hintSize}\n >\n <FloatingPopover\n ref={floatingPopoverRef}\n opened={isOpen}\n portal={portal}\n listWidth={listWidth}\n target={(referenceRef) => (\n <StyledTextField\n ref={ref}\n inputWrapperRef={referenceRef}\n value={value}\n onChange={handleChange}\n onSearch={focused === null ? onSearch : undefined}\n size={size}\n view={view}\n disabled={disabled}\n readOnly={readOnly}\n label={label}\n contentLeft={contentLeft}\n contentRight={contentRight}\n textBefore={textBefore}\n textAfter={textAfter}\n onFocus={handleFocus}\n onKeyDown={onKeyDown}\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-controls={listId}\n aria-expanded={isOpen}\n aria-activedescendant={`${listId}/${focused}`}\n aria-describedby={helperTextId}\n hintText={String(hintText || '')}\n labelPlacement={labelPlacement}\n keepPlaceholder={keepPlaceholder}\n leftHelper={\n leftHelper && (\n <StyledLeftHelper onClick={helperTextStopPropagation}>\n {leftHelper}\n </StyledLeftHelper>\n )\n }\n {...rest}\n />\n )}\n >\n {(renderList && renderList(finalResults)) ||\n (Boolean(finalResults.length) && (\n <Root\n view={view}\n size={size}\n labelPlacement={labelPlacement}\n disabled={disabled}\n readOnly={readOnly}\n >\n <ListWrapper>\n <Ul\n ref={targetRef}\n id={listId}\n role=\"listbox\"\n aria-label={label}\n onScroll={virtual ? undefined : onScroll}\n listMaxHeight={listMaxHeight}\n virtual={virtual}\n >\n {virtual ? (\n <VirtualList\n items={finalResults}\n onClick={handleItemClick}\n listId={listId}\n listMaxHeight={listMaxHeight}\n onScroll={onScroll}\n renderItem={renderItem}\n />\n ) : (\n <>\n {beforeList}\n\n {finalResults.map((suggestion, index) => (\n <SuggestionItem\n key={index}\n item={suggestion}\n onClick={handleItemClick}\n id={`${listId}/${index}`}\n focused={focused === index}\n renderItem={renderItem}\n />\n ))}\n\n {afterList}\n </>\n )}\n\n {renderListEnd && (\n <InfiniteLoaderWrapper>{renderListEnd()}</InfiniteLoaderWrapper>\n )}\n </Ul>\n </ListWrapper>\n </Root>\n ))}\n </FloatingPopover>\n </Root>\n );\n },\n );\n\nexport const autocompleteConfig = {\n name: 'Autocomplete',\n tag: 'div',\n layout: autocompleteRoot,\n base,\n defaults: {\n view: 'default',\n size: 'l',\n labelPlacement: 'outer',\n },\n variations: {\n view: {\n css: '',\n },\n },\n};\n"],"names":["autocompleteRoot","Root","forwardRef","value","outerValue","defaultValue","onChange","suggestions","view","size","labelPlacement","keepPlaceholder","disabled","readOnly","label","leftHelper","contentLeft","contentRight","textBefore","textAfter","onScroll","listMaxHeight","listWidth","portal","filter","onSuggestionSelect","threshold","renderList","renderListEnd","renderItem","onSearch","hintText","hintView","hintSize","beforeList","afterList","virtual","rest","ref","focused","dispatchFocused","useReducer","focusedReducer","innerValue","setInnerValue","useState","isOpen","setIsOpen","listId","safeUseId","helperTextId","floatingPopoverRef","useRef","targetRef","useOutsideClick","handleFocus","toString","length","handleItemClick","e","handleChange","currentValue","target","defaultFilterCallback","toLowerCase","includes","helperTextStopPropagation","event","stopPropagation","finalResults","onKeyDown","useKeyNavigation","useDidMountEffect","type","useLayoutEffect","React","createElement","FloatingPopover","opened","referenceRef","StyledTextField","_extends","inputWrapperRef","undefined","onFocus","role","String","StyledLeftHelper","onClick","Boolean","ListWrapper","Ul","id","VirtualList","items","Fragment","map","suggestion","index","SuggestionItem","key","item","InfiniteLoaderWrapper","autocompleteConfig","name","tag","layout","base","defaults","variations","css"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"Autocomplete.js","sources":["../../../src/components/Autocomplete/Autocomplete.tsx"],"sourcesContent":["import React, { forwardRef, useState, useReducer, useLayoutEffect, useRef } from 'react';\nimport { safeUseId } from 'src/utils';\nimport { useDidMountEffect, useOutsideClick } from 'src/hooks';\nimport { RootProps } from 'src/engines';\n\nimport { FloatingPopover } from './FloatingPopover';\nimport { focusedReducer } from './reducers/focusedReducer';\nimport { SuggestionItem, StyledTextField, VirtualList } from './ui';\nimport { Ul, InfiniteLoaderWrapper, base, StyledLeftHelper, ListWrapper } from './Autocomplete.styles';\nimport type { AutocompleteProps, SuggestionItemType } from './Autocomplete.types';\nimport { useKeyNavigation } from './hooks/useKeyboardNavigation';\n\n/**\n * Компонент Autocomplete. Поле ввода с подсказками в выпадающем списке.\n */\nexport const autocompleteRoot = (Root: RootProps<HTMLInputElement, Omit<AutocompleteProps, 'hintText'>>) =>\n forwardRef<HTMLInputElement, AutocompleteProps>(\n (\n {\n value: outerValue,\n defaultValue,\n onChange,\n suggestions,\n view,\n size,\n labelPlacement,\n keepPlaceholder,\n disabled,\n readOnly,\n label,\n leftHelper,\n contentLeft,\n contentRight,\n textBefore,\n textAfter,\n onScroll,\n listMaxHeight = '25rem',\n listWidth,\n portal,\n filter,\n onSuggestionSelect,\n threshold = 2,\n renderList,\n renderListEnd,\n renderItem,\n onSearch,\n hintText,\n hintView = 'default',\n hintSize = 'm',\n beforeList,\n afterList,\n virtual = false,\n ...rest\n },\n ref,\n ) => {\n const [focused, dispatchFocused] = useReducer(focusedReducer, null);\n const [innerValue, setInnerValue] = useState<string | number>('');\n const [isOpen, setIsOpen] = useState(false);\n\n const listId = safeUseId();\n const value = outerValue ?? innerValue;\n\n const helperTextId = safeUseId();\n const floatingPopoverRef = useRef<HTMLDivElement>(null);\n\n const targetRef = useOutsideClick<HTMLUListElement>(() => {\n setIsOpen(false);\n }, floatingPopoverRef);\n\n const handleFocus = () => {\n if (value.toString().length >= threshold) {\n setIsOpen(true);\n }\n };\n\n const handleItemClick = (e: SuggestionItemType) => {\n setInnerValue(e.label);\n\n if (onSuggestionSelect) {\n onSuggestionSelect(e);\n }\n\n setIsOpen(false);\n };\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const currentValue = e.target.value;\n\n setInnerValue(currentValue);\n\n if (onChange) {\n onChange(e);\n }\n\n if (currentValue.toString().length >= threshold) {\n setIsOpen(true);\n } else {\n setIsOpen(false);\n }\n };\n\n const defaultFilterCallback = ({ label }: { label: string }) => {\n return label.toLowerCase().includes(value.toString().toLowerCase());\n };\n\n const helperTextStopPropagation = (event: React.MouseEvent<HTMLDivElement>) => {\n event.stopPropagation();\n };\n\n const finalResults = suggestions?.filter(filter || defaultFilterCallback) || [];\n\n const { onKeyDown } = useKeyNavigation({\n isOpen,\n setIsOpen,\n focused,\n dispatchFocused,\n finalResults,\n handleItemClick,\n });\n\n useDidMountEffect(() => {\n dispatchFocused({ type: 'reset' });\n }, [value]);\n\n useLayoutEffect(() => {\n if (defaultValue) {\n setInnerValue(defaultValue);\n }\n }, [defaultValue]);\n\n return (\n <Root\n view={view}\n size={size}\n labelPlacement={labelPlacement}\n disabled={disabled}\n readOnly={readOnly}\n hintView={hintView}\n hintSize={hintSize}\n >\n <FloatingPopover\n ref={floatingPopoverRef}\n opened={isOpen}\n portal={portal}\n listWidth={listWidth}\n target={(referenceRef) => (\n <StyledTextField\n ref={ref}\n inputWrapperRef={referenceRef}\n value={value}\n onChange={handleChange}\n onSearch={focused === null ? onSearch : undefined}\n size={size}\n view={view}\n disabled={disabled}\n readOnly={readOnly}\n label={label}\n contentLeft={contentLeft}\n contentRight={contentRight}\n textBefore={textBefore}\n textAfter={textAfter}\n onFocus={handleFocus}\n onKeyDown={onKeyDown}\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-controls={listId}\n aria-expanded={isOpen}\n aria-activedescendant={`${listId}/${focused}`}\n aria-describedby={helperTextId}\n hintText={String(hintText || '')}\n labelPlacement={labelPlacement}\n keepPlaceholder={keepPlaceholder}\n leftHelper={\n leftHelper && (\n <StyledLeftHelper onClick={helperTextStopPropagation}>\n {leftHelper}\n </StyledLeftHelper>\n )\n }\n {...rest}\n />\n )}\n >\n {(renderList && renderList(finalResults)) ||\n (Boolean(finalResults.length) && (\n <Root\n view={view}\n size={size}\n labelPlacement={labelPlacement}\n disabled={disabled}\n readOnly={readOnly}\n >\n <ListWrapper>\n <Ul\n ref={targetRef}\n id={listId}\n role=\"listbox\"\n aria-label={label}\n onScroll={virtual ? undefined : onScroll}\n listMaxHeight={listMaxHeight}\n virtual={virtual}\n >\n {virtual ? (\n <VirtualList\n items={finalResults}\n onClick={handleItemClick}\n listId={listId}\n listMaxHeight={listMaxHeight}\n onScroll={onScroll}\n renderItem={renderItem}\n />\n ) : (\n <>\n {beforeList}\n\n {finalResults.map((suggestion, index) => (\n <SuggestionItem\n key={index}\n item={suggestion}\n onClick={handleItemClick}\n id={`${listId}/${index}`}\n focused={focused === index}\n renderItem={renderItem}\n />\n ))}\n\n {afterList}\n </>\n )}\n\n {renderListEnd && (\n <InfiniteLoaderWrapper>{renderListEnd()}</InfiniteLoaderWrapper>\n )}\n </Ul>\n </ListWrapper>\n </Root>\n ))}\n </FloatingPopover>\n </Root>\n );\n },\n );\n\nexport const autocompleteConfig = {\n name: 'Autocomplete',\n tag: 'div',\n layout: autocompleteRoot,\n base,\n defaults: {\n view: 'default',\n size: 'l',\n labelPlacement: 'outer',\n },\n variations: {\n view: {\n css: '',\n },\n },\n};\n"],"names":["autocompleteRoot","Root","forwardRef","value","outerValue","defaultValue","onChange","suggestions","view","size","labelPlacement","keepPlaceholder","disabled","readOnly","label","leftHelper","contentLeft","contentRight","textBefore","textAfter","onScroll","listMaxHeight","listWidth","portal","filter","onSuggestionSelect","threshold","renderList","renderListEnd","renderItem","onSearch","hintText","hintView","hintSize","beforeList","afterList","virtual","rest","ref","focused","dispatchFocused","useReducer","focusedReducer","innerValue","setInnerValue","useState","isOpen","setIsOpen","listId","safeUseId","helperTextId","floatingPopoverRef","useRef","targetRef","useOutsideClick","handleFocus","toString","length","handleItemClick","e","handleChange","currentValue","target","defaultFilterCallback","toLowerCase","includes","helperTextStopPropagation","event","stopPropagation","finalResults","onKeyDown","useKeyNavigation","useDidMountEffect","type","useLayoutEffect","React","createElement","FloatingPopover","opened","referenceRef","StyledTextField","_extends","inputWrapperRef","undefined","onFocus","role","String","StyledLeftHelper","onClick","Boolean","ListWrapper","Ul","id","VirtualList","items","Fragment","map","suggestion","index","SuggestionItem","key","item","InfiniteLoaderWrapper","autocompleteConfig","name","tag","layout","base","defaults","variations","css"],"mappings":"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"}
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
5
5
|
var react = require('@floating-ui/react');
|
6
6
|
var React = require('react');
|
7
|
-
var
|
7
|
+
var react$1 = require('../../utils/react.js');
|
8
8
|
|
9
9
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
10
10
|
|
@@ -43,7 +43,7 @@ const FloatingPopover = /*#__PURE__*/React.forwardRef(({
|
|
43
43
|
}
|
44
44
|
})]
|
45
45
|
});
|
46
|
-
const wrappedId =
|
46
|
+
const wrappedId = react$1.safeUseId();
|
47
47
|
|
48
48
|
// Проверка на target. Это может быть как ReactNode, так и функция, в которую пробрасывается ref.
|
49
49
|
// Это нужно для более тонкой настройки reference-элемента, вокруг которого и будет позиционироваться выпадашка.
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"FloatingPopover.js","sources":["../../../src/components/Autocomplete/FloatingPopover.tsx"],"sourcesContent":["import { flip, shift, size, useFloating, FloatingPortal, autoUpdate } from '@floating-ui/react';\nimport React, { forwardRef } from 'react';\nimport { safeUseId } from '
|
1
|
+
{"version":3,"file":"FloatingPopover.js","sources":["../../../src/components/Autocomplete/FloatingPopover.tsx"],"sourcesContent":["import { flip, shift, size, useFloating, FloatingPortal, autoUpdate } from '@floating-ui/react';\nimport React, { forwardRef } from 'react';\nimport { safeUseId } from 'src/utils';\n\nimport type { FloatingPopoverProps } from './Autocomplete.types';\n\nconst FloatingPopover = forwardRef<HTMLDivElement, FloatingPopoverProps>(\n ({ target, children, opened, portal, listWidth }, ref) => {\n const { refs, floatingStyles } = useFloating({\n whileElementsMounted(referenceEl, floatingEl, update) {\n return autoUpdate(referenceEl, floatingEl, update, {\n ancestorScroll: false,\n ancestorResize: false,\n layoutShift: false,\n });\n },\n placement: 'bottom-start',\n open: opened,\n middleware: [\n flip({ fallbackAxisSideDirection: 'end' }),\n shift(),\n size({\n apply({ rects, elements }) {\n Object.assign(elements.floating.style, {\n width: listWidth || `${rects.reference.width}px`,\n });\n },\n }),\n ],\n });\n\n const wrappedId = safeUseId();\n\n // Проверка на target. Это может быть как ReactNode, так и функция, в которую пробрасывается ref.\n // Это нужно для более тонкой настройки reference-элемента, вокруг которого и будет позиционироваться выпадашка.\n // Пример: когда в Textfield под инпутом находится helperText (или еще что-либо),\n // но выпадающий список должен позиционироваться непосредственно возле самого инпута.\n const isTargetAsFunction = typeof target === 'function';\n\n return (\n <div ref={ref} id={wrappedId} style={{ position: 'relative' }}>\n <div ref={isTargetAsFunction ? undefined : refs.setReference}>\n {typeof target === 'function' ? target(refs.setReference as any) : target}\n </div>\n\n {opened && (\n // root - принимает ref контейнера портала.\n // id - если есть портал - не используется, если портала нет - подставляется 'wrappedId'.\n <FloatingPortal {...getFloatingPortalProps(portal, wrappedId)}>\n <div ref={refs.setFloating} style={{ ...floatingStyles, zIndex: 1000 }}>\n {children}\n </div>\n </FloatingPortal>\n )}\n </div>\n );\n },\n);\n\ntype FloatingPortalReturnedProps = {\n root?: React.RefObject<HTMLElement>;\n id?: string;\n};\n\n// root - принимает ref контейнера портала.\n// id - если есть портал - не используется, если портала нет - подставляется 'wrappedId'.\nconst getFloatingPortalProps = (\n portal: FloatingPopoverProps['portal'],\n wrappedId: string,\n): FloatingPortalReturnedProps => {\n if (!portal) {\n return { id: wrappedId };\n }\n\n if (typeof portal === 'string') {\n return { id: portal };\n }\n\n return { root: portal };\n};\n\nexport { FloatingPopover };\n"],"names":["FloatingPopover","forwardRef","target","children","opened","portal","listWidth","ref","refs","floatingStyles","useFloating","whileElementsMounted","referenceEl","floatingEl","update","autoUpdate","ancestorScroll","ancestorResize","layoutShift","placement","open","middleware","flip","fallbackAxisSideDirection","shift","size","apply","rects","elements","Object","assign","floating","style","width","reference","wrappedId","safeUseId","isTargetAsFunction","React","createElement","id","position","undefined","setReference","FloatingPortal","getFloatingPortalProps","setFloating","zIndex","root"],"mappings":"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"}
|
@@ -113,6 +113,18 @@ const calendarBaseRoot = Root => /*#__PURE__*/React.forwardRef(({
|
|
113
113
|
setPrevType(calendarState);
|
114
114
|
}
|
115
115
|
}, [calendarState]);
|
116
|
+
React.useEffect(() => {
|
117
|
+
if (prevType !== type) {
|
118
|
+
dispatch({
|
119
|
+
type: types.ActionType.UPDATE_CALENDAR_STATE,
|
120
|
+
payload: {
|
121
|
+
calendarState: type,
|
122
|
+
size: reducer.sizeMap[type].single
|
123
|
+
}
|
124
|
+
});
|
125
|
+
setPrevType(type);
|
126
|
+
}
|
127
|
+
}, [type]);
|
116
128
|
React.useEffect(() => {
|
117
129
|
if (value && prevValue && calendarRangeHelper.isValueUpdate(value, prevValue) || value && !prevValue) {
|
118
130
|
dispatch({
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"CalendarBase.js","sources":["../../../../src/components/Calendar/CalendarBase/CalendarBase.tsx"],"sourcesContent":["import React, {\n useCallback,\n useMemo,\n useReducer,\n useState,\n KeyboardEvent,\n HTMLAttributes,\n forwardRef,\n useEffect,\n} from 'react';\nimport cls from 'classnames';\n\nimport type { Calendar, CalendarConfigProps, DateObject } from '../Calendar.types';\nimport { getInitialState, reducer, sizeMap } from '../store/reducer';\nimport { ActionType, CalendarState } from '../store/types';\nimport { I18N, isValueUpdate } from '../utils';\nimport { useKeyNavigation, useCalendarNavigation, useCalendarDateChange } from '../hooks';\nimport { CalendarDays, CalendarHeader, CalendarMonths, CalendarQuarters, CalendarYears } from '../ui';\nimport { RootProps } from '../../../engines';\nimport { classes } from '../Calendar.tokens';\n\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { IsOutOfRange, StyledCalendar } from './CalendarBase.styles';\n\nexport type CalendarBaseProps = Calendar & CalendarConfigProps;\n\n/**\n * Компонент календаря.\n */\nexport const calendarBaseRoot = (Root: RootProps<HTMLDivElement, HTMLAttributes<HTMLDivElement>>) =>\n forwardRef<HTMLDivElement, CalendarBaseProps>(\n (\n {\n className,\n value: externalValue,\n min: minDate,\n max: maxDate,\n renderFromDate,\n includeEdgeDates,\n type = 'Days',\n eventList,\n disabledList,\n eventMonthList,\n disabledMonthList,\n eventQuarterList,\n disabledQuarterList,\n eventYearList,\n disabledYearList,\n locale = 'ru',\n stretched,\n onChangeValue,\n ...rest\n },\n outerRootRef,\n ) => {\n const [firstValue, secondValue] = useMemo(\n () => (Array.isArray(externalValue) ? externalValue : [externalValue]),\n [externalValue],\n );\n const value = secondValue || firstValue;\n\n const [hoveredItem, setHoveredItem] = useState<DateObject | undefined>();\n const [prevType, setPrevType] = useState(type);\n const [prevValue, setPrevValue] = useState(value);\n const [outOfRangeKey, setOutOfRangeKey] = useState<number>(0);\n\n const min = minDate && new Date(minDate);\n const max = maxDate && new Date(maxDate);\n const renderFrom = renderFromDate && new Date(renderFromDate);\n\n const [state, dispatch] = useReducer(reducer, getInitialState(value, min, renderFrom, type));\n\n const { date, calendarState, startYear, size } = state;\n\n const { handleNext, handlePrev } = useCalendarNavigation({\n calendarState,\n date,\n dispatch,\n });\n\n const [selectIndexes, onKeyDown, onSelectIndexes, outerRefs, isOutOfRange] = useKeyNavigation({\n size,\n calendarState,\n onNext: handleNext,\n onPrev: handlePrev,\n });\n\n const {\n handleOnChangeDay,\n handleOnChangeMonth,\n handleOnChangeQuarter,\n handleOnChangeYear,\n handleUpdateCalendarState,\n } = useCalendarDateChange({ type, onChangeValue, onSelectIndexes, dispatch });\n\n // Изменяем ключ каждый раз как пытаемся перейти на даты которые находятся за пределами min/max ограничений.\n // Это необходимо для того чтобы screen-reader корректно озвучивал уведомление aria-live=\"assertive\"\n // о том что нет доступных дат\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n setOutOfRangeKey((previousState) => Number(!previousState));\n\n onKeyDown(event);\n },\n [onKeyDown],\n );\n\n useEffect(() => {\n if (prevType !== calendarState) {\n dispatch({\n type: ActionType.UPDATE_CALENDAR_STATE,\n payload: { calendarState, size: sizeMap[calendarState].single },\n });\n\n setPrevType(calendarState);\n }\n }, [calendarState]);\n\n useEffect(() => {\n if ((value && prevValue && isValueUpdate(value, prevValue)) || (value && !prevValue)) {\n dispatch({\n type: ActionType.UPDATE_DATE,\n payload: { value },\n });\n }\n\n if (!value && !prevValue) {\n dispatch({\n type: ActionType.UPDATE_DATE,\n payload: { value: renderFrom || min || new Date() },\n });\n }\n\n setPrevValue(value);\n }, [value]);\n\n return (\n <Root\n ref={outerRootRef}\n className={cls(className, { [classes.stretched]: stretched })}\n aria-label={I18N.selectDate[locale]}\n {...rest}\n >\n {isOutOfRange && (\n <IsOutOfRange\n key={outOfRangeKey}\n aria-atomic=\"true\"\n role=\"alert\"\n aria-live=\"assertive\"\n aria-relevant=\"additions\"\n >\n Далее нет доступных дат.\n </IsOutOfRange>\n )}\n <CalendarHeader\n size={rest.size}\n firstDate={date}\n startYear={startYear}\n type={calendarState}\n onPrev={handlePrev}\n onNext={handleNext}\n onUpdateCalendarState={handleUpdateCalendarState}\n locale={locale}\n />\n {calendarState === CalendarState.Days && (\n <CalendarDays\n value={externalValue}\n date={date}\n min={min}\n max={max}\n eventList={eventList}\n disabledList={disabledList}\n includeEdgeDates={includeEdgeDates}\n hoveredDay={hoveredItem}\n selectIndexes={selectIndexes}\n onChangeDay={handleOnChangeDay}\n onSetSelected={onSelectIndexes}\n onHoverDay={setHoveredItem}\n onKeyDown={handleKeyDown}\n outerRefs={outerRefs}\n locale={locale}\n />\n )}\n {calendarState === CalendarState.Months && (\n <CalendarMonths\n value={externalValue}\n date={date}\n min={min}\n max={max}\n eventList={eventMonthList}\n disabledList={disabledMonthList}\n hoveredMonth={hoveredItem}\n selectIndexes={selectIndexes}\n onChangeMonth={handleOnChangeMonth}\n onSetSelected={onSelectIndexes}\n onHoverMonth={setHoveredItem}\n onKeyDown={onKeyDown}\n outerRefs={outerRefs}\n locale={locale}\n />\n )}\n {calendarState === CalendarState.Quarters && (\n <CalendarQuarters\n value={externalValue}\n date={date}\n min={min}\n max={max}\n eventList={eventQuarterList}\n disabledList={disabledQuarterList}\n hoveredQuarter={hoveredItem}\n selectIndexes={selectIndexes}\n onChangeQuarter={handleOnChangeQuarter}\n onSetSelected={onSelectIndexes}\n onHoverQuarter={setHoveredItem}\n onKeyDown={onKeyDown}\n outerRefs={outerRefs}\n />\n )}\n {calendarState === CalendarState.Years && (\n <CalendarYears\n value={externalValue}\n date={date}\n startYear={startYear}\n selectIndexes={selectIndexes}\n min={min}\n max={max}\n eventList={eventYearList}\n disabledList={disabledYearList}\n hoveredYear={hoveredItem}\n onChangeYear={handleOnChangeYear}\n onSetSelected={onSelectIndexes}\n onHoverYear={setHoveredItem}\n onKeyDown={onKeyDown}\n outerRefs={outerRefs}\n />\n )}\n </Root>\n );\n },\n );\n\nexport const calendarBaseConfig = {\n name: 'CalendarBase',\n tag: 'div',\n layout: calendarBaseRoot,\n base: StyledCalendar,\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n },\n defaults: {\n view: 'primary',\n size: 'm',\n },\n};\n"],"names":["calendarBaseRoot","Root","forwardRef","className","value","externalValue","min","minDate","max","maxDate","renderFromDate","includeEdgeDates","type","eventList","disabledList","eventMonthList","disabledMonthList","eventQuarterList","disabledQuarterList","eventYearList","disabledYearList","locale","stretched","onChangeValue","rest","outerRootRef","firstValue","secondValue","useMemo","Array","isArray","hoveredItem","setHoveredItem","useState","prevType","setPrevType","prevValue","setPrevValue","outOfRangeKey","setOutOfRangeKey","Date","renderFrom","state","dispatch","useReducer","reducer","getInitialState","date","calendarState","startYear","size","handleNext","handlePrev","useCalendarNavigation","selectIndexes","onKeyDown","onSelectIndexes","outerRefs","isOutOfRange","useKeyNavigation","onNext","onPrev","handleOnChangeDay","handleOnChangeMonth","handleOnChangeQuarter","handleOnChangeYear","handleUpdateCalendarState","useCalendarDateChange","handleKeyDown","useCallback","event","previousState","Number","useEffect","ActionType","UPDATE_CALENDAR_STATE","payload","sizeMap","single","isValueUpdate","UPDATE_DATE","React","createElement","_extends","ref","cls","classes","I18N","selectDate","IsOutOfRange","key","role","CalendarHeader","firstDate","onUpdateCalendarState","CalendarState","Days","CalendarDays","hoveredDay","onChangeDay","onSetSelected","onHoverDay","Months","CalendarMonths","hoveredMonth","onChangeMonth","onHoverMonth","Quarters","CalendarQuarters","hoveredQuarter","onChangeQuarter","onHoverQuarter","Years","CalendarYears","hoveredYear","onChangeYear","onHoverYear","calendarBaseConfig","name","tag","layout","base","StyledCalendar","variations","view","css","viewCSS","sizeCSS","defaults"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"CalendarBase.js","sources":["../../../../src/components/Calendar/CalendarBase/CalendarBase.tsx"],"sourcesContent":["import React, {\n useCallback,\n useMemo,\n useReducer,\n useState,\n KeyboardEvent,\n HTMLAttributes,\n forwardRef,\n useEffect,\n} from 'react';\nimport cls from 'classnames';\n\nimport type { Calendar, CalendarConfigProps, DateObject } from '../Calendar.types';\nimport { getInitialState, reducer, sizeMap } from '../store/reducer';\nimport { ActionType, CalendarState } from '../store/types';\nimport { I18N, isValueUpdate } from '../utils';\nimport { useKeyNavigation, useCalendarNavigation, useCalendarDateChange } from '../hooks';\nimport { CalendarDays, CalendarHeader, CalendarMonths, CalendarQuarters, CalendarYears } from '../ui';\nimport { RootProps } from '../../../engines';\nimport { classes } from '../Calendar.tokens';\n\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { IsOutOfRange, StyledCalendar } from './CalendarBase.styles';\n\nexport type CalendarBaseProps = Calendar & CalendarConfigProps;\n\n/**\n * Компонент календаря.\n */\nexport const calendarBaseRoot = (Root: RootProps<HTMLDivElement, HTMLAttributes<HTMLDivElement>>) =>\n forwardRef<HTMLDivElement, CalendarBaseProps>(\n (\n {\n className,\n value: externalValue,\n min: minDate,\n max: maxDate,\n renderFromDate,\n includeEdgeDates,\n type = 'Days',\n eventList,\n disabledList,\n eventMonthList,\n disabledMonthList,\n eventQuarterList,\n disabledQuarterList,\n eventYearList,\n disabledYearList,\n locale = 'ru',\n stretched,\n onChangeValue,\n ...rest\n },\n outerRootRef,\n ) => {\n const [firstValue, secondValue] = useMemo(\n () => (Array.isArray(externalValue) ? externalValue : [externalValue]),\n [externalValue],\n );\n const value = secondValue || firstValue;\n\n const [hoveredItem, setHoveredItem] = useState<DateObject | undefined>();\n const [prevType, setPrevType] = useState(type);\n const [prevValue, setPrevValue] = useState(value);\n const [outOfRangeKey, setOutOfRangeKey] = useState<number>(0);\n\n const min = minDate && new Date(minDate);\n const max = maxDate && new Date(maxDate);\n const renderFrom = renderFromDate && new Date(renderFromDate);\n\n const [state, dispatch] = useReducer(reducer, getInitialState(value, min, renderFrom, type));\n\n const { date, calendarState, startYear, size } = state;\n\n const { handleNext, handlePrev } = useCalendarNavigation({\n calendarState,\n date,\n dispatch,\n });\n\n const [selectIndexes, onKeyDown, onSelectIndexes, outerRefs, isOutOfRange] = useKeyNavigation({\n size,\n calendarState,\n onNext: handleNext,\n onPrev: handlePrev,\n });\n\n const {\n handleOnChangeDay,\n handleOnChangeMonth,\n handleOnChangeQuarter,\n handleOnChangeYear,\n handleUpdateCalendarState,\n } = useCalendarDateChange({ type, onChangeValue, onSelectIndexes, dispatch });\n\n // Изменяем ключ каждый раз как пытаемся перейти на даты которые находятся за пределами min/max ограничений.\n // Это необходимо для того чтобы screen-reader корректно озвучивал уведомление aria-live=\"assertive\"\n // о том что нет доступных дат\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n setOutOfRangeKey((previousState) => Number(!previousState));\n\n onKeyDown(event);\n },\n [onKeyDown],\n );\n\n useEffect(() => {\n if (prevType !== calendarState) {\n dispatch({\n type: ActionType.UPDATE_CALENDAR_STATE,\n payload: { calendarState, size: sizeMap[calendarState].single },\n });\n\n setPrevType(calendarState);\n }\n }, [calendarState]);\n\n useEffect(() => {\n if (prevType !== type) {\n dispatch({\n type: ActionType.UPDATE_CALENDAR_STATE,\n payload: { calendarState: type, size: sizeMap[type].single },\n });\n\n setPrevType(type);\n }\n }, [type]);\n\n useEffect(() => {\n if ((value && prevValue && isValueUpdate(value, prevValue)) || (value && !prevValue)) {\n dispatch({\n type: ActionType.UPDATE_DATE,\n payload: { value },\n });\n }\n\n if (!value && !prevValue) {\n dispatch({\n type: ActionType.UPDATE_DATE,\n payload: { value: renderFrom || min || new Date() },\n });\n }\n\n setPrevValue(value);\n }, [value]);\n\n return (\n <Root\n ref={outerRootRef}\n className={cls(className, { [classes.stretched]: stretched })}\n aria-label={I18N.selectDate[locale]}\n {...rest}\n >\n {isOutOfRange && (\n <IsOutOfRange\n key={outOfRangeKey}\n aria-atomic=\"true\"\n role=\"alert\"\n aria-live=\"assertive\"\n aria-relevant=\"additions\"\n >\n Далее нет доступных дат.\n </IsOutOfRange>\n )}\n <CalendarHeader\n size={rest.size}\n firstDate={date}\n startYear={startYear}\n type={calendarState}\n onPrev={handlePrev}\n onNext={handleNext}\n onUpdateCalendarState={handleUpdateCalendarState}\n locale={locale}\n />\n {calendarState === CalendarState.Days && (\n <CalendarDays\n value={externalValue}\n date={date}\n min={min}\n max={max}\n eventList={eventList}\n disabledList={disabledList}\n includeEdgeDates={includeEdgeDates}\n hoveredDay={hoveredItem}\n selectIndexes={selectIndexes}\n onChangeDay={handleOnChangeDay}\n onSetSelected={onSelectIndexes}\n onHoverDay={setHoveredItem}\n onKeyDown={handleKeyDown}\n outerRefs={outerRefs}\n locale={locale}\n />\n )}\n {calendarState === CalendarState.Months && (\n <CalendarMonths\n value={externalValue}\n date={date}\n min={min}\n max={max}\n eventList={eventMonthList}\n disabledList={disabledMonthList}\n hoveredMonth={hoveredItem}\n selectIndexes={selectIndexes}\n onChangeMonth={handleOnChangeMonth}\n onSetSelected={onSelectIndexes}\n onHoverMonth={setHoveredItem}\n onKeyDown={onKeyDown}\n outerRefs={outerRefs}\n locale={locale}\n />\n )}\n {calendarState === CalendarState.Quarters && (\n <CalendarQuarters\n value={externalValue}\n date={date}\n min={min}\n max={max}\n eventList={eventQuarterList}\n disabledList={disabledQuarterList}\n hoveredQuarter={hoveredItem}\n selectIndexes={selectIndexes}\n onChangeQuarter={handleOnChangeQuarter}\n onSetSelected={onSelectIndexes}\n onHoverQuarter={setHoveredItem}\n onKeyDown={onKeyDown}\n outerRefs={outerRefs}\n />\n )}\n {calendarState === CalendarState.Years && (\n <CalendarYears\n value={externalValue}\n date={date}\n startYear={startYear}\n selectIndexes={selectIndexes}\n min={min}\n max={max}\n eventList={eventYearList}\n disabledList={disabledYearList}\n hoveredYear={hoveredItem}\n onChangeYear={handleOnChangeYear}\n onSetSelected={onSelectIndexes}\n onHoverYear={setHoveredItem}\n onKeyDown={onKeyDown}\n outerRefs={outerRefs}\n />\n )}\n </Root>\n );\n },\n );\n\nexport const calendarBaseConfig = {\n name: 'CalendarBase',\n tag: 'div',\n layout: calendarBaseRoot,\n base: StyledCalendar,\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n },\n defaults: {\n view: 'primary',\n size: 'm',\n },\n};\n"],"names":["calendarBaseRoot","Root","forwardRef","className","value","externalValue","min","minDate","max","maxDate","renderFromDate","includeEdgeDates","type","eventList","disabledList","eventMonthList","disabledMonthList","eventQuarterList","disabledQuarterList","eventYearList","disabledYearList","locale","stretched","onChangeValue","rest","outerRootRef","firstValue","secondValue","useMemo","Array","isArray","hoveredItem","setHoveredItem","useState","prevType","setPrevType","prevValue","setPrevValue","outOfRangeKey","setOutOfRangeKey","Date","renderFrom","state","dispatch","useReducer","reducer","getInitialState","date","calendarState","startYear","size","handleNext","handlePrev","useCalendarNavigation","selectIndexes","onKeyDown","onSelectIndexes","outerRefs","isOutOfRange","useKeyNavigation","onNext","onPrev","handleOnChangeDay","handleOnChangeMonth","handleOnChangeQuarter","handleOnChangeYear","handleUpdateCalendarState","useCalendarDateChange","handleKeyDown","useCallback","event","previousState","Number","useEffect","ActionType","UPDATE_CALENDAR_STATE","payload","sizeMap","single","isValueUpdate","UPDATE_DATE","React","createElement","_extends","ref","cls","classes","I18N","selectDate","IsOutOfRange","key","role","CalendarHeader","firstDate","onUpdateCalendarState","CalendarState","Days","CalendarDays","hoveredDay","onChangeDay","onSetSelected","onHoverDay","Months","CalendarMonths","hoveredMonth","onChangeMonth","onHoverMonth","Quarters","CalendarQuarters","hoveredQuarter","onChangeQuarter","onHoverQuarter","Years","CalendarYears","hoveredYear","onChangeYear","onHoverYear","calendarBaseConfig","name","tag","layout","base","StyledCalendar","variations","view","css","viewCSS","sizeCSS","defaults"],"mappings":"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"}
|
@@ -151,6 +151,18 @@ const calendarDoubleRoot = Root => /*#__PURE__*/React.forwardRef(({
|
|
151
151
|
setPrevType(calendarState);
|
152
152
|
}
|
153
153
|
}, [calendarState]);
|
154
|
+
React.useEffect(() => {
|
155
|
+
if (prevType !== type) {
|
156
|
+
dispatch({
|
157
|
+
type: types.ActionType.UPDATE_CALENDAR_STATE,
|
158
|
+
payload: {
|
159
|
+
calendarState: type,
|
160
|
+
size: reducer.sizeMap[type].double
|
161
|
+
}
|
162
|
+
});
|
163
|
+
setPrevType(type);
|
164
|
+
}
|
165
|
+
}, [type]);
|
154
166
|
React.useEffect(() => {
|
155
167
|
if (value && prevValue && calendarRangeHelper.isValueUpdate(value, prevValue) || value && !prevValue) {
|
156
168
|
const [minVisibleDate, maxVisibleDate] = getBoundaryDates();
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"CalendarDouble.js","sources":["../../../../src/components/Calendar/CalendarDouble/CalendarDouble.tsx"],"sourcesContent":["import React, {\n useState,\n useCallback,\n useMemo,\n forwardRef,\n HTMLAttributes,\n KeyboardEvent,\n useEffect,\n useReducer,\n} from 'react';\nimport cls from 'classnames';\n\nimport type { Calendar, CalendarConfigProps, DateObject } from '../Calendar.types';\nimport { YEAR_RENDER_COUNT, getNextDate, isValueUpdate, I18N } from '../utils';\nimport { useKeyNavigation, useCalendarNavigation, useCalendarDateChange } from '../hooks';\nimport { CalendarDays, CalendarHeader, CalendarMonths, CalendarQuarters, CalendarYears } from '../ui';\nimport { RootProps } from '../../../engines/types';\nimport { getInitialState, reducer, sizeMap } from '../store/reducer';\nimport { ActionType, CalendarState } from '../store/types';\nimport { IsOutOfRange } from '../CalendarBase/CalendarBase.styles';\nimport { classes } from '../Calendar.tokens';\n\nimport { base as viewCSS } from './variations/_view/base';\nimport { StyledCalendar, StyledSeparator, StyledWrapper } from './CalendarDouble.styles';\n\nexport type CalendarDoubleProps = Calendar & CalendarConfigProps;\n\n/**\n * Компонент двойного календаря.\n */\nexport const calendarDoubleRoot = (Root: RootProps<HTMLDivElement, HTMLAttributes<HTMLDivElement>>) =>\n forwardRef<HTMLDivElement, CalendarDoubleProps>(\n (\n {\n className,\n value: externalValue,\n min: minDate,\n max: maxDate,\n renderFromDate,\n includeEdgeDates,\n type = 'Days',\n eventList,\n disabledList,\n eventMonthList,\n disabledMonthList,\n eventQuarterList,\n disabledQuarterList,\n eventYearList,\n disabledYearList,\n locale = 'ru',\n stretched,\n onChangeValue,\n ...rest\n },\n outerRootRef,\n ) => {\n const [firstValue, secondValue] = useMemo(\n () => (Array.isArray(externalValue) ? externalValue : [externalValue]),\n [externalValue],\n );\n const value = secondValue || firstValue;\n\n const [hoveredItem, setHoveredItem] = useState<DateObject | undefined>();\n const [prevType, setPrevType] = useState(type);\n const [prevValue, setPrevValue] = useState(value);\n const [outOfRangeKey, setOutOfRangeKey] = useState<number>(0);\n\n const min = minDate && new Date(minDate);\n const max = maxDate && new Date(maxDate);\n\n const [state, dispatch] = useReducer(reducer, getInitialState(value, min, renderFromDate, type, true));\n\n const { date, calendarState, startYear, size } = state;\n\n const [firstDate, setFirstDate] = useState<DateObject>(date);\n const [secondDate, setSecondDate] = useState<DateObject>(date);\n\n const { handleNext, handlePrev } = useCalendarNavigation({\n calendarState,\n date,\n dispatch,\n });\n\n const [selectIndexes, onKeyDown, onSelectIndexes, outerRefs, isOutOfRange] = useKeyNavigation({\n isDouble: true,\n size,\n calendarState,\n onNext: handleNext,\n onPrev: handlePrev,\n });\n\n const {\n handleOnChangeDay,\n handleOnChangeMonth,\n handleOnChangeQuarter,\n handleOnChangeYear,\n handleUpdateCalendarState,\n } = useCalendarDateChange({ type, onChangeValue, onSelectIndexes, dispatch });\n\n const updateSecondDate = () => {\n if (calendarState === CalendarState.Days) {\n const [nextYear, nextMonthIndex] = getNextDate(date.year, date.monthIndex);\n setSecondDate({ year: nextYear, monthIndex: nextMonthIndex, day: date.day });\n }\n\n if (calendarState === CalendarState.Months || calendarState === CalendarState.Quarters) {\n setSecondDate({ year: date.year + 1, monthIndex: date.monthIndex, day: date.day });\n }\n\n if (calendarState === CalendarState.Years) {\n setSecondDate({ year: startYear + YEAR_RENDER_COUNT, monthIndex: date.monthIndex, day: date.day });\n }\n };\n\n const getBoundaryDates = () => {\n // NOTE: Если установить индекс дня равным \"0\", то берется последнее число предыдущего месяца\n if (calendarState === CalendarState.Days) {\n return [\n new Date(firstDate.year, firstDate.monthIndex, 1),\n new Date(secondDate.year, secondDate.monthIndex + 1, 0),\n ];\n }\n\n if (calendarState === CalendarState.Months || calendarState === CalendarState.Quarters) {\n return [new Date(firstDate.year, 0), new Date(secondDate.year, 12, 0)];\n }\n\n const endVisibleYear = startYear + YEAR_RENDER_COUNT * 2 - 1;\n return [new Date(startYear, 0), new Date(endVisibleYear, 11)];\n };\n\n // Изменяем ключ каждый раз как пытаемся перейти на даты которые находятся за пределами min/max ограничений.\n // Это необходимо для того чтобы screen-reader корректно озвучивал уведомление aria-live=\"assertive\"\n // о том что нет доступных дат\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n setOutOfRangeKey((previousState) => Number(!previousState));\n\n onKeyDown(event);\n },\n [onKeyDown],\n );\n\n useEffect(() => {\n if (prevType !== calendarState) {\n dispatch({\n type: ActionType.UPDATE_CALENDAR_STATE,\n payload: { calendarState, size: sizeMap[calendarState].double },\n });\n\n setPrevType(calendarState);\n }\n }, [calendarState]);\n\n useEffect(() => {\n if ((value && prevValue && isValueUpdate(value, prevValue)) || (value && !prevValue)) {\n const [minVisibleDate, maxVisibleDate] = getBoundaryDates();\n\n if (value > maxVisibleDate || value < minVisibleDate) {\n dispatch({\n type: ActionType.UPDATE_DATE,\n payload: { value },\n });\n }\n }\n\n if (!value && !prevValue) {\n dispatch({\n type: ActionType.UPDATE_DATE,\n payload: { value: renderFromDate || min || new Date() },\n });\n }\n\n setPrevValue(value);\n }, [value]);\n\n useEffect(() => {\n setFirstDate(date);\n\n updateSecondDate();\n }, [date, calendarState]);\n\n return (\n <Root\n ref={outerRootRef}\n className={cls(className, { [classes.stretched]: stretched })}\n aria-label={I18N.selectDate[locale]}\n {...rest}\n >\n {isOutOfRange && (\n <IsOutOfRange\n key={outOfRangeKey}\n aria-atomic=\"true\"\n role=\"alert\"\n aria-live=\"assertive\"\n aria-relevant=\"additions\"\n >\n Далее нет доступных дат.\n </IsOutOfRange>\n )}\n <CalendarHeader\n isDouble\n size={rest.size}\n firstDate={firstDate}\n secondDate={secondDate}\n startYear={startYear}\n type={calendarState}\n onPrev={handlePrev}\n onNext={handleNext}\n onUpdateCalendarState={handleUpdateCalendarState}\n locale={locale}\n />\n\n <StyledWrapper>\n {calendarState === CalendarState.Days && (\n <>\n <CalendarDays\n value={externalValue}\n date={firstDate}\n min={min}\n max={max}\n eventList={eventList}\n disabledList={disabledList}\n includeEdgeDates={includeEdgeDates}\n hoveredDay={hoveredItem}\n selectIndexes={selectIndexes}\n onChangeDay={handleOnChangeDay}\n onHoverDay={setHoveredItem}\n onSetSelected={onSelectIndexes}\n onKeyDown={handleKeyDown}\n outerRefs={outerRefs}\n locale={locale}\n isDouble\n />\n <StyledSeparator />\n <CalendarDays\n value={externalValue}\n date={secondDate}\n min={min}\n max={max}\n eventList={eventList}\n disabledList={disabledList}\n includeEdgeDates={includeEdgeDates}\n hoveredDay={hoveredItem}\n selectIndexes={selectIndexes}\n onChangeDay={handleOnChangeDay}\n onHoverDay={setHoveredItem}\n onSetSelected={onSelectIndexes}\n onKeyDown={handleKeyDown}\n outerRefs={outerRefs}\n locale={locale}\n isDouble\n isSecond\n />\n </>\n )}\n {calendarState === CalendarState.Months && (\n <>\n <CalendarMonths\n value={externalValue}\n date={firstDate}\n min={min}\n max={max}\n eventList={eventMonthList}\n disabledList={disabledMonthList}\n hoveredMonth={hoveredItem}\n selectIndexes={selectIndexes}\n onChangeMonth={handleOnChangeMonth}\n onSetSelected={onSelectIndexes}\n onHoverMonth={setHoveredItem}\n onKeyDown={handleKeyDown}\n outerRefs={outerRefs}\n locale={locale}\n isDouble\n />\n <StyledSeparator />\n <CalendarMonths\n value={externalValue}\n date={secondDate}\n min={min}\n max={max}\n eventList={eventMonthList}\n disabledList={disabledMonthList}\n hoveredMonth={hoveredItem}\n selectIndexes={selectIndexes}\n onChangeMonth={handleOnChangeMonth}\n onSetSelected={onSelectIndexes}\n onHoverMonth={setHoveredItem}\n onKeyDown={handleKeyDown}\n outerRefs={outerRefs}\n locale={locale}\n isDouble\n isSecond\n />\n </>\n )}\n {calendarState === CalendarState.Quarters && (\n <>\n <CalendarQuarters\n value={externalValue}\n date={firstDate}\n min={min}\n max={max}\n eventList={eventQuarterList}\n disabledList={disabledQuarterList}\n hoveredQuarter={hoveredItem}\n selectIndexes={selectIndexes}\n onChangeQuarter={handleOnChangeQuarter}\n onSetSelected={onSelectIndexes}\n onHoverQuarter={setHoveredItem}\n onKeyDown={handleKeyDown}\n outerRefs={outerRefs}\n isDouble\n />\n <StyledSeparator />\n <CalendarQuarters\n value={externalValue}\n date={secondDate}\n min={min}\n max={max}\n eventList={eventQuarterList}\n disabledList={disabledQuarterList}\n hoveredQuarter={hoveredItem}\n selectIndexes={selectIndexes}\n onChangeQuarter={handleOnChangeQuarter}\n onSetSelected={onSelectIndexes}\n onHoverQuarter={setHoveredItem}\n onKeyDown={handleKeyDown}\n outerRefs={outerRefs}\n isDouble\n isSecond\n />\n </>\n )}\n {calendarState === CalendarState.Years && (\n <>\n <CalendarYears\n value={externalValue}\n date={firstDate}\n startYear={startYear}\n selectIndexes={selectIndexes}\n min={min}\n max={max}\n eventList={eventYearList}\n disabledList={disabledYearList}\n hoveredYear={hoveredItem}\n onChangeYear={handleOnChangeYear}\n onSetSelected={onSelectIndexes}\n onHoverYear={setHoveredItem}\n onKeyDown={handleKeyDown}\n outerRefs={outerRefs}\n isDouble\n />\n <StyledSeparator />\n <CalendarYears\n value={externalValue}\n date={secondDate}\n startYear={startYear + YEAR_RENDER_COUNT}\n selectIndexes={selectIndexes}\n min={min}\n max={max}\n eventList={eventYearList}\n disabledList={disabledYearList}\n hoveredYear={hoveredItem}\n onChangeYear={handleOnChangeYear}\n onSetSelected={onSelectIndexes}\n onHoverYear={setHoveredItem}\n onKeyDown={handleKeyDown}\n outerRefs={outerRefs}\n isDouble\n isSecond\n />\n </>\n )}\n </StyledWrapper>\n </Root>\n );\n },\n );\n\nexport const calendarDoubleConfig = {\n name: 'CalendarDouble',\n tag: 'div',\n layout: calendarDoubleRoot,\n base: StyledCalendar,\n variations: {\n view: {\n css: viewCSS,\n },\n },\n defaults: {\n view: 'primary',\n size: 'm',\n },\n};\n"],"names":["calendarDoubleRoot","Root","forwardRef","className","value","externalValue","min","minDate","max","maxDate","renderFromDate","includeEdgeDates","type","eventList","disabledList","eventMonthList","disabledMonthList","eventQuarterList","disabledQuarterList","eventYearList","disabledYearList","locale","stretched","onChangeValue","rest","outerRootRef","firstValue","secondValue","useMemo","Array","isArray","hoveredItem","setHoveredItem","useState","prevType","setPrevType","prevValue","setPrevValue","outOfRangeKey","setOutOfRangeKey","Date","state","dispatch","useReducer","reducer","getInitialState","date","calendarState","startYear","size","firstDate","setFirstDate","secondDate","setSecondDate","handleNext","handlePrev","useCalendarNavigation","selectIndexes","onKeyDown","onSelectIndexes","outerRefs","isOutOfRange","useKeyNavigation","isDouble","onNext","onPrev","handleOnChangeDay","handleOnChangeMonth","handleOnChangeQuarter","handleOnChangeYear","handleUpdateCalendarState","useCalendarDateChange","updateSecondDate","CalendarState","Days","nextYear","nextMonthIndex","getNextDate","year","monthIndex","day","Months","Quarters","Years","YEAR_RENDER_COUNT","getBoundaryDates","endVisibleYear","handleKeyDown","useCallback","event","previousState","Number","useEffect","ActionType","UPDATE_CALENDAR_STATE","payload","sizeMap","double","isValueUpdate","minVisibleDate","maxVisibleDate","UPDATE_DATE","React","createElement","_extends","ref","cls","classes","I18N","selectDate","IsOutOfRange","key","role","CalendarHeader","onUpdateCalendarState","StyledWrapper","Fragment","CalendarDays","hoveredDay","onChangeDay","onHoverDay","onSetSelected","StyledSeparator","isSecond","CalendarMonths","hoveredMonth","onChangeMonth","onHoverMonth","CalendarQuarters","hoveredQuarter","onChangeQuarter","onHoverQuarter","CalendarYears","hoveredYear","onChangeYear","onHoverYear","calendarDoubleConfig","name","tag","layout","base","StyledCalendar","variations","view","css","viewCSS","defaults"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"CalendarDouble.js","sources":["../../../../src/components/Calendar/CalendarDouble/CalendarDouble.tsx"],"sourcesContent":["import React, {\n useState,\n useCallback,\n useMemo,\n forwardRef,\n HTMLAttributes,\n KeyboardEvent,\n useEffect,\n useReducer,\n} from 'react';\nimport cls from 'classnames';\n\nimport type { Calendar, CalendarConfigProps, DateObject } from '../Calendar.types';\nimport { YEAR_RENDER_COUNT, getNextDate, isValueUpdate, I18N } from '../utils';\nimport { useKeyNavigation, useCalendarNavigation, useCalendarDateChange } from '../hooks';\nimport { CalendarDays, CalendarHeader, CalendarMonths, CalendarQuarters, CalendarYears } from '../ui';\nimport { RootProps } from '../../../engines/types';\nimport { getInitialState, reducer, sizeMap } from '../store/reducer';\nimport { ActionType, CalendarState } from '../store/types';\nimport { IsOutOfRange } from '../CalendarBase/CalendarBase.styles';\nimport { classes } from '../Calendar.tokens';\n\nimport { base as viewCSS } from './variations/_view/base';\nimport { StyledCalendar, StyledSeparator, StyledWrapper } from './CalendarDouble.styles';\n\nexport type CalendarDoubleProps = Calendar & CalendarConfigProps;\n\n/**\n * Компонент двойного календаря.\n */\nexport const calendarDoubleRoot = (Root: RootProps<HTMLDivElement, HTMLAttributes<HTMLDivElement>>) =>\n forwardRef<HTMLDivElement, CalendarDoubleProps>(\n (\n {\n className,\n value: externalValue,\n min: minDate,\n max: maxDate,\n renderFromDate,\n includeEdgeDates,\n type = 'Days',\n eventList,\n disabledList,\n eventMonthList,\n disabledMonthList,\n eventQuarterList,\n disabledQuarterList,\n eventYearList,\n disabledYearList,\n locale = 'ru',\n stretched,\n onChangeValue,\n ...rest\n },\n outerRootRef,\n ) => {\n const [firstValue, secondValue] = useMemo(\n () => (Array.isArray(externalValue) ? externalValue : [externalValue]),\n [externalValue],\n );\n const value = secondValue || firstValue;\n\n const [hoveredItem, setHoveredItem] = useState<DateObject | undefined>();\n const [prevType, setPrevType] = useState(type);\n const [prevValue, setPrevValue] = useState(value);\n const [outOfRangeKey, setOutOfRangeKey] = useState<number>(0);\n\n const min = minDate && new Date(minDate);\n const max = maxDate && new Date(maxDate);\n\n const [state, dispatch] = useReducer(reducer, getInitialState(value, min, renderFromDate, type, true));\n\n const { date, calendarState, startYear, size } = state;\n\n const [firstDate, setFirstDate] = useState<DateObject>(date);\n const [secondDate, setSecondDate] = useState<DateObject>(date);\n\n const { handleNext, handlePrev } = useCalendarNavigation({\n calendarState,\n date,\n dispatch,\n });\n\n const [selectIndexes, onKeyDown, onSelectIndexes, outerRefs, isOutOfRange] = useKeyNavigation({\n isDouble: true,\n size,\n calendarState,\n onNext: handleNext,\n onPrev: handlePrev,\n });\n\n const {\n handleOnChangeDay,\n handleOnChangeMonth,\n handleOnChangeQuarter,\n handleOnChangeYear,\n handleUpdateCalendarState,\n } = useCalendarDateChange({ type, onChangeValue, onSelectIndexes, dispatch });\n\n const updateSecondDate = () => {\n if (calendarState === CalendarState.Days) {\n const [nextYear, nextMonthIndex] = getNextDate(date.year, date.monthIndex);\n setSecondDate({ year: nextYear, monthIndex: nextMonthIndex, day: date.day });\n }\n\n if (calendarState === CalendarState.Months || calendarState === CalendarState.Quarters) {\n setSecondDate({ year: date.year + 1, monthIndex: date.monthIndex, day: date.day });\n }\n\n if (calendarState === CalendarState.Years) {\n setSecondDate({ year: startYear + YEAR_RENDER_COUNT, monthIndex: date.monthIndex, day: date.day });\n }\n };\n\n const getBoundaryDates = () => {\n // NOTE: Если установить индекс дня равным \"0\", то берется последнее число предыдущего месяца\n if (calendarState === CalendarState.Days) {\n return [\n new Date(firstDate.year, firstDate.monthIndex, 1),\n new Date(secondDate.year, secondDate.monthIndex + 1, 0),\n ];\n }\n\n if (calendarState === CalendarState.Months || calendarState === CalendarState.Quarters) {\n return [new Date(firstDate.year, 0), new Date(secondDate.year, 12, 0)];\n }\n\n const endVisibleYear = startYear + YEAR_RENDER_COUNT * 2 - 1;\n return [new Date(startYear, 0), new Date(endVisibleYear, 11)];\n };\n\n // Изменяем ключ каждый раз как пытаемся перейти на даты которые находятся за пределами min/max ограничений.\n // Это необходимо для того чтобы screen-reader корректно озвучивал уведомление aria-live=\"assertive\"\n // о том что нет доступных дат\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n setOutOfRangeKey((previousState) => Number(!previousState));\n\n onKeyDown(event);\n },\n [onKeyDown],\n );\n\n useEffect(() => {\n if (prevType !== calendarState) {\n dispatch({\n type: ActionType.UPDATE_CALENDAR_STATE,\n payload: { calendarState, size: sizeMap[calendarState].double },\n });\n\n setPrevType(calendarState);\n }\n }, [calendarState]);\n\n useEffect(() => {\n if (prevType !== type) {\n dispatch({\n type: ActionType.UPDATE_CALENDAR_STATE,\n payload: { calendarState: type, size: sizeMap[type].double },\n });\n\n setPrevType(type);\n }\n }, [type]);\n\n useEffect(() => {\n if ((value && prevValue && isValueUpdate(value, prevValue)) || (value && !prevValue)) {\n const [minVisibleDate, maxVisibleDate] = getBoundaryDates();\n\n if (value > maxVisibleDate || value < minVisibleDate) {\n dispatch({\n type: ActionType.UPDATE_DATE,\n payload: { value },\n });\n }\n }\n\n if (!value && !prevValue) {\n dispatch({\n type: ActionType.UPDATE_DATE,\n payload: { value: renderFromDate || min || new Date() },\n });\n }\n\n setPrevValue(value);\n }, [value]);\n\n useEffect(() => {\n setFirstDate(date);\n\n updateSecondDate();\n }, [date, calendarState]);\n\n return (\n <Root\n ref={outerRootRef}\n className={cls(className, { [classes.stretched]: stretched })}\n aria-label={I18N.selectDate[locale]}\n {...rest}\n >\n {isOutOfRange && (\n <IsOutOfRange\n key={outOfRangeKey}\n aria-atomic=\"true\"\n role=\"alert\"\n aria-live=\"assertive\"\n aria-relevant=\"additions\"\n >\n Далее нет доступных дат.\n </IsOutOfRange>\n )}\n <CalendarHeader\n isDouble\n size={rest.size}\n firstDate={firstDate}\n secondDate={secondDate}\n startYear={startYear}\n type={calendarState}\n onPrev={handlePrev}\n onNext={handleNext}\n onUpdateCalendarState={handleUpdateCalendarState}\n locale={locale}\n />\n\n <StyledWrapper>\n {calendarState === CalendarState.Days && (\n <>\n <CalendarDays\n value={externalValue}\n date={firstDate}\n min={min}\n max={max}\n eventList={eventList}\n disabledList={disabledList}\n includeEdgeDates={includeEdgeDates}\n hoveredDay={hoveredItem}\n selectIndexes={selectIndexes}\n onChangeDay={handleOnChangeDay}\n onHoverDay={setHoveredItem}\n onSetSelected={onSelectIndexes}\n onKeyDown={handleKeyDown}\n outerRefs={outerRefs}\n locale={locale}\n isDouble\n />\n <StyledSeparator />\n <CalendarDays\n value={externalValue}\n date={secondDate}\n min={min}\n max={max}\n eventList={eventList}\n disabledList={disabledList}\n includeEdgeDates={includeEdgeDates}\n hoveredDay={hoveredItem}\n selectIndexes={selectIndexes}\n onChangeDay={handleOnChangeDay}\n onHoverDay={setHoveredItem}\n onSetSelected={onSelectIndexes}\n onKeyDown={handleKeyDown}\n outerRefs={outerRefs}\n locale={locale}\n isDouble\n isSecond\n />\n </>\n )}\n {calendarState === CalendarState.Months && (\n <>\n <CalendarMonths\n value={externalValue}\n date={firstDate}\n min={min}\n max={max}\n eventList={eventMonthList}\n disabledList={disabledMonthList}\n hoveredMonth={hoveredItem}\n selectIndexes={selectIndexes}\n onChangeMonth={handleOnChangeMonth}\n onSetSelected={onSelectIndexes}\n onHoverMonth={setHoveredItem}\n onKeyDown={handleKeyDown}\n outerRefs={outerRefs}\n locale={locale}\n isDouble\n />\n <StyledSeparator />\n <CalendarMonths\n value={externalValue}\n date={secondDate}\n min={min}\n max={max}\n eventList={eventMonthList}\n disabledList={disabledMonthList}\n hoveredMonth={hoveredItem}\n selectIndexes={selectIndexes}\n onChangeMonth={handleOnChangeMonth}\n onSetSelected={onSelectIndexes}\n onHoverMonth={setHoveredItem}\n onKeyDown={handleKeyDown}\n outerRefs={outerRefs}\n locale={locale}\n isDouble\n isSecond\n />\n </>\n )}\n {calendarState === CalendarState.Quarters && (\n <>\n <CalendarQuarters\n value={externalValue}\n date={firstDate}\n min={min}\n max={max}\n eventList={eventQuarterList}\n disabledList={disabledQuarterList}\n hoveredQuarter={hoveredItem}\n selectIndexes={selectIndexes}\n onChangeQuarter={handleOnChangeQuarter}\n onSetSelected={onSelectIndexes}\n onHoverQuarter={setHoveredItem}\n onKeyDown={handleKeyDown}\n outerRefs={outerRefs}\n isDouble\n />\n <StyledSeparator />\n <CalendarQuarters\n value={externalValue}\n date={secondDate}\n min={min}\n max={max}\n eventList={eventQuarterList}\n disabledList={disabledQuarterList}\n hoveredQuarter={hoveredItem}\n selectIndexes={selectIndexes}\n onChangeQuarter={handleOnChangeQuarter}\n onSetSelected={onSelectIndexes}\n onHoverQuarter={setHoveredItem}\n onKeyDown={handleKeyDown}\n outerRefs={outerRefs}\n isDouble\n isSecond\n />\n </>\n )}\n {calendarState === CalendarState.Years && (\n <>\n <CalendarYears\n value={externalValue}\n date={firstDate}\n startYear={startYear}\n selectIndexes={selectIndexes}\n min={min}\n max={max}\n eventList={eventYearList}\n disabledList={disabledYearList}\n hoveredYear={hoveredItem}\n onChangeYear={handleOnChangeYear}\n onSetSelected={onSelectIndexes}\n onHoverYear={setHoveredItem}\n onKeyDown={handleKeyDown}\n outerRefs={outerRefs}\n isDouble\n />\n <StyledSeparator />\n <CalendarYears\n value={externalValue}\n date={secondDate}\n startYear={startYear + YEAR_RENDER_COUNT}\n selectIndexes={selectIndexes}\n min={min}\n max={max}\n eventList={eventYearList}\n disabledList={disabledYearList}\n hoveredYear={hoveredItem}\n onChangeYear={handleOnChangeYear}\n onSetSelected={onSelectIndexes}\n onHoverYear={setHoveredItem}\n onKeyDown={handleKeyDown}\n outerRefs={outerRefs}\n isDouble\n isSecond\n />\n </>\n )}\n </StyledWrapper>\n </Root>\n );\n },\n );\n\nexport const calendarDoubleConfig = {\n name: 'CalendarDouble',\n tag: 'div',\n layout: calendarDoubleRoot,\n base: StyledCalendar,\n variations: {\n view: {\n css: viewCSS,\n },\n },\n defaults: {\n view: 'primary',\n size: 'm',\n },\n};\n"],"names":["calendarDoubleRoot","Root","forwardRef","className","value","externalValue","min","minDate","max","maxDate","renderFromDate","includeEdgeDates","type","eventList","disabledList","eventMonthList","disabledMonthList","eventQuarterList","disabledQuarterList","eventYearList","disabledYearList","locale","stretched","onChangeValue","rest","outerRootRef","firstValue","secondValue","useMemo","Array","isArray","hoveredItem","setHoveredItem","useState","prevType","setPrevType","prevValue","setPrevValue","outOfRangeKey","setOutOfRangeKey","Date","state","dispatch","useReducer","reducer","getInitialState","date","calendarState","startYear","size","firstDate","setFirstDate","secondDate","setSecondDate","handleNext","handlePrev","useCalendarNavigation","selectIndexes","onKeyDown","onSelectIndexes","outerRefs","isOutOfRange","useKeyNavigation","isDouble","onNext","onPrev","handleOnChangeDay","handleOnChangeMonth","handleOnChangeQuarter","handleOnChangeYear","handleUpdateCalendarState","useCalendarDateChange","updateSecondDate","CalendarState","Days","nextYear","nextMonthIndex","getNextDate","year","monthIndex","day","Months","Quarters","Years","YEAR_RENDER_COUNT","getBoundaryDates","endVisibleYear","handleKeyDown","useCallback","event","previousState","Number","useEffect","ActionType","UPDATE_CALENDAR_STATE","payload","sizeMap","double","isValueUpdate","minVisibleDate","maxVisibleDate","UPDATE_DATE","React","createElement","_extends","ref","cls","classes","I18N","selectDate","IsOutOfRange","key","role","CalendarHeader","onUpdateCalendarState","StyledWrapper","Fragment","CalendarDays","hoveredDay","onChangeDay","onHoverDay","onSetSelected","StyledSeparator","isSecond","CalendarMonths","hoveredMonth","onChangeMonth","onHoverMonth","CalendarQuarters","hoveredQuarter","onChangeQuarter","onHoverQuarter","CalendarYears","hoveredYear","onChangeYear","onHoverYear","calendarDoubleConfig","name","tag","layout","base","StyledCalendar","variations","view","css","viewCSS","defaults"],"mappings":"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"}
|
@@ -96,6 +96,9 @@ const CalendarDays = ({
|
|
96
96
|
const handleMouseOutGrid = () => onHoverDay?.(undefined);
|
97
97
|
const getRefs = (element, isDayInCurrentMonth, i, j) => {
|
98
98
|
if (isDayInCurrentMonth) {
|
99
|
+
if (!outerRefs.current[i + offset]) {
|
100
|
+
outerRefs.current[i + offset] = [];
|
101
|
+
}
|
99
102
|
outerRefs.current[i + offset][j] = element;
|
100
103
|
}
|
101
104
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"CalendarDays.js","sources":["../../../../../src/components/Calendar/ui/CalendarDays/CalendarDays.tsx"],"sourcesContent":["import React, { Fragment, useCallback, useEffect, useRef } from 'react';\n\nimport { useDays } from '../../hooks';\nimport {\n canSelectDate,\n FULL_DAY_NAMES,\n getInRange,\n getSideInRange,\n isSameDay,\n isSelectProcess,\n ROW_STEP,\n SHORT_DAY_NAMES,\n I18N,\n} from '../../utils';\nimport { DateStructureItem } from '../DateStructureItem/DateStructureItem';\nimport { DateItem } from '../../Calendar.types';\nimport { innerTokens, tokens } from '../../Calendar.tokens';\n\nimport { StyledCalendarDays, StyledCalendarDaysHint } from './CalendarDays.styles';\nimport type { CalendarDaysProps } from './CalendarDays.types';\n\n/**\n * Компонент дней в календаре.\n */\nexport const CalendarDays: React.FC<CalendarDaysProps> = ({\n date: currentDate,\n value,\n eventList,\n disabledList,\n min,\n max,\n includeEdgeDates,\n hoveredDay,\n selectIndexes,\n isDouble,\n isSecond,\n outerRefs,\n onChangeDay,\n onHoverDay,\n onSetSelected,\n onKeyDown,\n locale = 'ru',\n}) => {\n const [days, selected] = useDays({ date: currentDate, value, eventList, disabledList, min, max, includeEdgeDates });\n const selectedRef = useRef(selected);\n const onSetSelectedRef = useRef(onSetSelected);\n\n const offset = isSecond ? ROW_STEP : 0;\n\n const dayItemTokens = {\n [`${innerTokens.dateStructureFontFamily}`]: `var(${tokens.calendarDayFontFamily})`,\n [`${innerTokens.dateStructureFontSize}`]: `var(${tokens.calendarDayFontSize})`,\n [`${innerTokens.dateStructureFontWeight}`]: `var(${tokens.calendarDayFontWeight})`,\n [`${innerTokens.dateStructureFontLineHeight}`]: `var(${tokens.calendarDayFontLineHeight})`,\n [`${innerTokens.dateStructureFontLetterSpacing}`]: `var(${tokens.calendarDayFontLetterSpacing})`,\n [`${innerTokens.dateStructureFontStyle}`]: `var(${tokens.calendarDayFontStyle})`,\n [`${innerTokens.dateStructureSelectedFontWeight}`]: `var(${tokens.calendarDaySelectedFontWeight})`,\n [`${innerTokens.dateStructureBorderRadius}`]: `var(${tokens.calendarDayItemBorderRadius})`,\n };\n\n const getSelectedDate = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n const { day, monthIndex, year } = event.currentTarget.dataset;\n\n const selectedDate = {\n day: Number(day),\n monthIndex: Number(monthIndex),\n year: Number(year),\n };\n\n if (!canSelectDate(selectedDate, value, disabledList)) {\n return;\n }\n\n return selectedDate;\n },\n [disabledList, value],\n );\n\n const handleOnChangeDay = useCallback(\n (i: number, j: number) => (event: React.MouseEvent<HTMLDivElement>) => {\n const selectedDate = getSelectedDate(event);\n\n if (!selectedDate) {\n return;\n }\n\n onChangeDay(selectedDate, [i + offset, j]);\n\n if (isSelectProcess(value)) {\n onHoverDay?.(undefined);\n }\n },\n [getSelectedDate, onChangeDay, offset, value, onHoverDay],\n );\n\n const handleOnHoverDay = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n const selectedDate = getSelectedDate(event);\n const isSelectedDone = Array.isArray(value) && value[0] && value[1];\n\n if (!selectedDate || !Array.isArray(value) || isSelectedDone) {\n return;\n }\n\n onHoverDay?.(selectedDate);\n },\n [getSelectedDate, onHoverDay, value],\n );\n\n const handleMouseOutGrid = () => onHoverDay?.(undefined);\n\n const getRefs = (element: HTMLDivElement, isDayInCurrentMonth: boolean, i: number, j: number) => {\n if (isDayInCurrentMonth) {\n outerRefs.current[i + offset][j] = element;\n }\n };\n\n useEffect(() => {\n if (selectedRef.current) {\n onSetSelectedRef.current?.(selectedRef.current);\n }\n }, []);\n\n return (\n <StyledCalendarDays\n role=\"grid\"\n aria-labelledby=\"id-grid-label\"\n onKeyDown={onKeyDown}\n onMouseLeave={handleMouseOutGrid}\n >\n <StyledCalendarDaysHint id=\"withShift\">{I18N.navigationByShift[locale]}</StyledCalendarDaysHint>\n <>\n {SHORT_DAY_NAMES[locale].map((name) => (\n <DateStructureItem\n role=\"columnheader\"\n aria-label={FULL_DAY_NAMES[locale][name]}\n key={name}\n dayOfWeek\n day={name}\n style={dayItemTokens}\n >\n {name}\n </DateStructureItem>\n ))}\n </>\n {days.map((day: DateItem[], i) => (\n <Fragment key={i}>\n {day.map(\n (\n {\n date,\n events,\n disabled,\n isSelected,\n isCurrent,\n isDayInCurrentMonth,\n inRange,\n isOutOfMinMaxRange = false,\n disabledArrowKey,\n disabledDates,\n },\n j,\n ) => (\n <DateStructureItem\n ref={(element: HTMLDivElement) => getRefs(element, Boolean(isDayInCurrentMonth), i, j)}\n style={dayItemTokens}\n eventList={events}\n disabled={disabled}\n day={date.day}\n year={date.year}\n monthIndex={date.monthIndex}\n isFocused={\n i + offset === selectIndexes?.[0] && j === selectIndexes?.[1] && !isOutOfMinMaxRange\n }\n isSelected={isSelected}\n isCurrent={isCurrent}\n isDayInCurrentMonth={isDayInCurrentMonth}\n isDouble={isDouble}\n isHovered={isSameDay(date, hoveredDay)}\n inRange={getInRange(value, date, hoveredDay, inRange)}\n sideInRange={getSideInRange(value, date, hoveredDay, isSelected)}\n onClick={disabled ? undefined : handleOnChangeDay(i, j)}\n onMouseOver={disabled ? undefined : handleOnHoverDay}\n key={`StyledDay-${i}-${j}`}\n role=\"gridcell\"\n disabledArrowKey={disabledArrowKey}\n disabledMonths={disabledDates}\n >\n {date.day}\n </DateStructureItem>\n ),\n )}\n </Fragment>\n ))}\n </StyledCalendarDays>\n );\n};\n"],"names":["CalendarDays","date","currentDate","value","eventList","disabledList","min","max","includeEdgeDates","hoveredDay","selectIndexes","isDouble","isSecond","outerRefs","onChangeDay","onHoverDay","onSetSelected","onKeyDown","locale","days","selected","useDays","selectedRef","useRef","onSetSelectedRef","offset","ROW_STEP","dayItemTokens","innerTokens","dateStructureFontFamily","tokens","calendarDayFontFamily","dateStructureFontSize","calendarDayFontSize","dateStructureFontWeight","calendarDayFontWeight","dateStructureFontLineHeight","calendarDayFontLineHeight","dateStructureFontLetterSpacing","calendarDayFontLetterSpacing","dateStructureFontStyle","calendarDayFontStyle","dateStructureSelectedFontWeight","calendarDaySelectedFontWeight","dateStructureBorderRadius","calendarDayItemBorderRadius","getSelectedDate","useCallback","event","day","monthIndex","year","currentTarget","dataset","selectedDate","Number","canSelectDate","handleOnChangeDay","i","j","isSelectProcess","undefined","handleOnHoverDay","isSelectedDone","Array","isArray","handleMouseOutGrid","getRefs","element","isDayInCurrentMonth","current","useEffect","React","createElement","StyledCalendarDays","role","onMouseLeave","StyledCalendarDaysHint","id","I18N","navigationByShift","Fragment","SHORT_DAY_NAMES","map","name","DateStructureItem","FULL_DAY_NAMES","key","dayOfWeek","style","events","disabled","isSelected","isCurrent","inRange","isOutOfMinMaxRange","disabledArrowKey","disabledDates","ref","Boolean","isFocused","isHovered","isSameDay","getInRange","sideInRange","getSideInRange","onClick","onMouseOver","disabledMonths"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"CalendarDays.js","sources":["../../../../../src/components/Calendar/ui/CalendarDays/CalendarDays.tsx"],"sourcesContent":["import React, { Fragment, useCallback, useEffect, useRef } from 'react';\n\nimport { useDays } from '../../hooks';\nimport {\n canSelectDate,\n FULL_DAY_NAMES,\n getInRange,\n getSideInRange,\n isSameDay,\n isSelectProcess,\n ROW_STEP,\n SHORT_DAY_NAMES,\n I18N,\n} from '../../utils';\nimport { DateStructureItem } from '../DateStructureItem/DateStructureItem';\nimport { DateItem } from '../../Calendar.types';\nimport { innerTokens, tokens } from '../../Calendar.tokens';\n\nimport { StyledCalendarDays, StyledCalendarDaysHint } from './CalendarDays.styles';\nimport type { CalendarDaysProps } from './CalendarDays.types';\n\n/**\n * Компонент дней в календаре.\n */\nexport const CalendarDays: React.FC<CalendarDaysProps> = ({\n date: currentDate,\n value,\n eventList,\n disabledList,\n min,\n max,\n includeEdgeDates,\n hoveredDay,\n selectIndexes,\n isDouble,\n isSecond,\n outerRefs,\n onChangeDay,\n onHoverDay,\n onSetSelected,\n onKeyDown,\n locale = 'ru',\n}) => {\n const [days, selected] = useDays({ date: currentDate, value, eventList, disabledList, min, max, includeEdgeDates });\n const selectedRef = useRef(selected);\n const onSetSelectedRef = useRef(onSetSelected);\n\n const offset = isSecond ? ROW_STEP : 0;\n\n const dayItemTokens = {\n [`${innerTokens.dateStructureFontFamily}`]: `var(${tokens.calendarDayFontFamily})`,\n [`${innerTokens.dateStructureFontSize}`]: `var(${tokens.calendarDayFontSize})`,\n [`${innerTokens.dateStructureFontWeight}`]: `var(${tokens.calendarDayFontWeight})`,\n [`${innerTokens.dateStructureFontLineHeight}`]: `var(${tokens.calendarDayFontLineHeight})`,\n [`${innerTokens.dateStructureFontLetterSpacing}`]: `var(${tokens.calendarDayFontLetterSpacing})`,\n [`${innerTokens.dateStructureFontStyle}`]: `var(${tokens.calendarDayFontStyle})`,\n [`${innerTokens.dateStructureSelectedFontWeight}`]: `var(${tokens.calendarDaySelectedFontWeight})`,\n [`${innerTokens.dateStructureBorderRadius}`]: `var(${tokens.calendarDayItemBorderRadius})`,\n };\n\n const getSelectedDate = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n const { day, monthIndex, year } = event.currentTarget.dataset;\n\n const selectedDate = {\n day: Number(day),\n monthIndex: Number(monthIndex),\n year: Number(year),\n };\n\n if (!canSelectDate(selectedDate, value, disabledList)) {\n return;\n }\n\n return selectedDate;\n },\n [disabledList, value],\n );\n\n const handleOnChangeDay = useCallback(\n (i: number, j: number) => (event: React.MouseEvent<HTMLDivElement>) => {\n const selectedDate = getSelectedDate(event);\n\n if (!selectedDate) {\n return;\n }\n\n onChangeDay(selectedDate, [i + offset, j]);\n\n if (isSelectProcess(value)) {\n onHoverDay?.(undefined);\n }\n },\n [getSelectedDate, onChangeDay, offset, value, onHoverDay],\n );\n\n const handleOnHoverDay = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n const selectedDate = getSelectedDate(event);\n const isSelectedDone = Array.isArray(value) && value[0] && value[1];\n\n if (!selectedDate || !Array.isArray(value) || isSelectedDone) {\n return;\n }\n\n onHoverDay?.(selectedDate);\n },\n [getSelectedDate, onHoverDay, value],\n );\n\n const handleMouseOutGrid = () => onHoverDay?.(undefined);\n\n const getRefs = (element: HTMLDivElement, isDayInCurrentMonth: boolean, i: number, j: number) => {\n if (isDayInCurrentMonth) {\n if (!outerRefs.current[i + offset]) {\n outerRefs.current[i + offset] = [];\n }\n\n outerRefs.current[i + offset][j] = element;\n }\n };\n\n useEffect(() => {\n if (selectedRef.current) {\n onSetSelectedRef.current?.(selectedRef.current);\n }\n }, []);\n\n return (\n <StyledCalendarDays\n role=\"grid\"\n aria-labelledby=\"id-grid-label\"\n onKeyDown={onKeyDown}\n onMouseLeave={handleMouseOutGrid}\n >\n <StyledCalendarDaysHint id=\"withShift\">{I18N.navigationByShift[locale]}</StyledCalendarDaysHint>\n <>\n {SHORT_DAY_NAMES[locale].map((name) => (\n <DateStructureItem\n role=\"columnheader\"\n aria-label={FULL_DAY_NAMES[locale][name]}\n key={name}\n dayOfWeek\n day={name}\n style={dayItemTokens}\n >\n {name}\n </DateStructureItem>\n ))}\n </>\n {days.map((day: DateItem[], i) => (\n <Fragment key={i}>\n {day.map(\n (\n {\n date,\n events,\n disabled,\n isSelected,\n isCurrent,\n isDayInCurrentMonth,\n inRange,\n isOutOfMinMaxRange = false,\n disabledArrowKey,\n disabledDates,\n },\n j,\n ) => (\n <DateStructureItem\n ref={(element: HTMLDivElement) => getRefs(element, Boolean(isDayInCurrentMonth), i, j)}\n style={dayItemTokens}\n eventList={events}\n disabled={disabled}\n day={date.day}\n year={date.year}\n monthIndex={date.monthIndex}\n isFocused={\n i + offset === selectIndexes?.[0] && j === selectIndexes?.[1] && !isOutOfMinMaxRange\n }\n isSelected={isSelected}\n isCurrent={isCurrent}\n isDayInCurrentMonth={isDayInCurrentMonth}\n isDouble={isDouble}\n isHovered={isSameDay(date, hoveredDay)}\n inRange={getInRange(value, date, hoveredDay, inRange)}\n sideInRange={getSideInRange(value, date, hoveredDay, isSelected)}\n onClick={disabled ? undefined : handleOnChangeDay(i, j)}\n onMouseOver={disabled ? undefined : handleOnHoverDay}\n key={`StyledDay-${i}-${j}`}\n role=\"gridcell\"\n disabledArrowKey={disabledArrowKey}\n disabledMonths={disabledDates}\n >\n {date.day}\n </DateStructureItem>\n ),\n )}\n </Fragment>\n ))}\n </StyledCalendarDays>\n );\n};\n"],"names":["CalendarDays","date","currentDate","value","eventList","disabledList","min","max","includeEdgeDates","hoveredDay","selectIndexes","isDouble","isSecond","outerRefs","onChangeDay","onHoverDay","onSetSelected","onKeyDown","locale","days","selected","useDays","selectedRef","useRef","onSetSelectedRef","offset","ROW_STEP","dayItemTokens","innerTokens","dateStructureFontFamily","tokens","calendarDayFontFamily","dateStructureFontSize","calendarDayFontSize","dateStructureFontWeight","calendarDayFontWeight","dateStructureFontLineHeight","calendarDayFontLineHeight","dateStructureFontLetterSpacing","calendarDayFontLetterSpacing","dateStructureFontStyle","calendarDayFontStyle","dateStructureSelectedFontWeight","calendarDaySelectedFontWeight","dateStructureBorderRadius","calendarDayItemBorderRadius","getSelectedDate","useCallback","event","day","monthIndex","year","currentTarget","dataset","selectedDate","Number","canSelectDate","handleOnChangeDay","i","j","isSelectProcess","undefined","handleOnHoverDay","isSelectedDone","Array","isArray","handleMouseOutGrid","getRefs","element","isDayInCurrentMonth","current","useEffect","React","createElement","StyledCalendarDays","role","onMouseLeave","StyledCalendarDaysHint","id","I18N","navigationByShift","Fragment","SHORT_DAY_NAMES","map","name","DateStructureItem","FULL_DAY_NAMES","key","dayOfWeek","style","events","disabled","isSelected","isCurrent","inRange","isOutOfMinMaxRange","disabledArrowKey","disabledDates","ref","Boolean","isFocused","isHovered","isSameDay","getInRange","sideInRange","getSideInRange","onClick","onMouseOver","disabledMonths"],"mappings":";;;;;;;;;;;;;;;;;AAqBA;AACA;AACA;AACO,MAAMA,YAAyC,GAAGA,CAAC;AACtDC,EAAAA,IAAI,EAAEC,WAAW;EACjBC,KAAK;EACLC,SAAS;EACTC,YAAY;EACZC,GAAG;EACHC,GAAG;EACHC,gBAAgB;EAChBC,UAAU;EACVC,aAAa;EACbC,QAAQ;EACRC,QAAQ;EACRC,SAAS;EACTC,WAAW;EACXC,UAAU;EACVC,aAAa;EACbC,SAAS;AACTC,EAAAA,MAAM,GAAG,IAAA;AACb,CAAC,KAAK;AACF,EAAA,MAAM,CAACC,IAAI,EAAEC,QAAQ,CAAC,GAAGC,eAAO,CAAC;AAAEpB,IAAAA,IAAI,EAAEC,WAAW;IAAEC,KAAK;IAAEC,SAAS;IAAEC,YAAY;IAAEC,GAAG;IAAEC,GAAG;AAAEC,IAAAA,gBAAAA;AAAiB,GAAC,CAAC,CAAA;AACnH,EAAA,MAAMc,WAAW,GAAGC,YAAM,CAACH,QAAQ,CAAC,CAAA;AACpC,EAAA,MAAMI,gBAAgB,GAAGD,YAAM,CAACP,aAAa,CAAC,CAAA;AAE9C,EAAA,MAAMS,MAAM,GAAGb,QAAQ,GAAGc,kBAAQ,GAAG,CAAC,CAAA;AAEtC,EAAA,MAAMC,aAAa,GAAG;IAClB,CAAC,CAAA,EAAGC,2BAAW,CAACC,uBAAuB,CAAA,CAAE,GAAG,CAAOC,IAAAA,EAAAA,sBAAM,CAACC,qBAAqB,CAAG,CAAA,CAAA;IAClF,CAAC,CAAA,EAAGH,2BAAW,CAACI,qBAAqB,CAAA,CAAE,GAAG,CAAOF,IAAAA,EAAAA,sBAAM,CAACG,mBAAmB,CAAG,CAAA,CAAA;IAC9E,CAAC,CAAA,EAAGL,2BAAW,CAACM,uBAAuB,CAAA,CAAE,GAAG,CAAOJ,IAAAA,EAAAA,sBAAM,CAACK,qBAAqB,CAAG,CAAA,CAAA;IAClF,CAAC,CAAA,EAAGP,2BAAW,CAACQ,2BAA2B,CAAA,CAAE,GAAG,CAAON,IAAAA,EAAAA,sBAAM,CAACO,yBAAyB,CAAG,CAAA,CAAA;IAC1F,CAAC,CAAA,EAAGT,2BAAW,CAACU,8BAA8B,CAAA,CAAE,GAAG,CAAOR,IAAAA,EAAAA,sBAAM,CAACS,4BAA4B,CAAG,CAAA,CAAA;IAChG,CAAC,CAAA,EAAGX,2BAAW,CAACY,sBAAsB,CAAA,CAAE,GAAG,CAAOV,IAAAA,EAAAA,sBAAM,CAACW,oBAAoB,CAAG,CAAA,CAAA;IAChF,CAAC,CAAA,EAAGb,2BAAW,CAACc,+BAA+B,CAAA,CAAE,GAAG,CAAOZ,IAAAA,EAAAA,sBAAM,CAACa,6BAA6B,CAAG,CAAA,CAAA;IAClG,CAAC,CAAA,EAAGf,2BAAW,CAACgB,yBAAyB,EAAE,GAAG,CAAA,IAAA,EAAOd,sBAAM,CAACe,2BAA2B,CAAA,CAAA,CAAA;GAC1F,CAAA;AAED,EAAA,MAAMC,eAAe,GAAGC,iBAAW,CAC9BC,KAAuC,IAAK;IACzC,MAAM;MAAEC,GAAG;MAAEC,UAAU;AAAEC,MAAAA,IAAAA;AAAK,KAAC,GAAGH,KAAK,CAACI,aAAa,CAACC,OAAO,CAAA;AAE7D,IAAA,MAAMC,YAAY,GAAG;AACjBL,MAAAA,GAAG,EAAEM,MAAM,CAACN,GAAG,CAAC;AAChBC,MAAAA,UAAU,EAAEK,MAAM,CAACL,UAAU,CAAC;MAC9BC,IAAI,EAAEI,MAAM,CAACJ,IAAI,CAAA;KACpB,CAAA;IAED,IAAI,CAACK,gCAAa,CAACF,YAAY,EAAEnD,KAAK,EAAEE,YAAY,CAAC,EAAE;AACnD,MAAA,OAAA;AACJ,KAAA;AAEA,IAAA,OAAOiD,YAAY,CAAA;AACvB,GAAC,EACD,CAACjD,YAAY,EAAEF,KAAK,CACxB,CAAC,CAAA;EAED,MAAMsD,iBAAiB,GAAGV,iBAAW,CACjC,CAACW,CAAS,EAAEC,CAAS,KAAMX,KAAuC,IAAK;AACnE,IAAA,MAAMM,YAAY,GAAGR,eAAe,CAACE,KAAK,CAAC,CAAA;IAE3C,IAAI,CAACM,YAAY,EAAE;AACf,MAAA,OAAA;AACJ,KAAA;IAEAxC,WAAW,CAACwC,YAAY,EAAE,CAACI,CAAC,GAAGjC,MAAM,EAAEkC,CAAC,CAAC,CAAC,CAAA;AAE1C,IAAA,IAAIC,mCAAe,CAACzD,KAAK,CAAC,EAAE;MACxBY,UAAU,GAAG8C,SAAS,CAAC,CAAA;AAC3B,KAAA;AACJ,GAAC,EACD,CAACf,eAAe,EAAEhC,WAAW,EAAEW,MAAM,EAAEtB,KAAK,EAAEY,UAAU,CAC5D,CAAC,CAAA;AAED,EAAA,MAAM+C,gBAAgB,GAAGf,iBAAW,CAC/BC,KAAuC,IAAK;AACzC,IAAA,MAAMM,YAAY,GAAGR,eAAe,CAACE,KAAK,CAAC,CAAA;AAC3C,IAAA,MAAMe,cAAc,GAAGC,KAAK,CAACC,OAAO,CAAC9D,KAAK,CAAC,IAAIA,KAAK,CAAC,CAAC,CAAC,IAAIA,KAAK,CAAC,CAAC,CAAC,CAAA;AAEnE,IAAA,IAAI,CAACmD,YAAY,IAAI,CAACU,KAAK,CAACC,OAAO,CAAC9D,KAAK,CAAC,IAAI4D,cAAc,EAAE;AAC1D,MAAA,OAAA;AACJ,KAAA;IAEAhD,UAAU,GAAGuC,YAAY,CAAC,CAAA;GAC7B,EACD,CAACR,eAAe,EAAE/B,UAAU,EAAEZ,KAAK,CACvC,CAAC,CAAA;AAED,EAAA,MAAM+D,kBAAkB,GAAGA,MAAMnD,UAAU,GAAG8C,SAAS,CAAC,CAAA;EAExD,MAAMM,OAAO,GAAGA,CAACC,OAAuB,EAAEC,mBAA4B,EAAEX,CAAS,EAAEC,CAAS,KAAK;AAC7F,IAAA,IAAIU,mBAAmB,EAAE;MACrB,IAAI,CAACxD,SAAS,CAACyD,OAAO,CAACZ,CAAC,GAAGjC,MAAM,CAAC,EAAE;QAChCZ,SAAS,CAACyD,OAAO,CAACZ,CAAC,GAAGjC,MAAM,CAAC,GAAG,EAAE,CAAA;AACtC,OAAA;MAEAZ,SAAS,CAACyD,OAAO,CAACZ,CAAC,GAAGjC,MAAM,CAAC,CAACkC,CAAC,CAAC,GAAGS,OAAO,CAAA;AAC9C,KAAA;GACH,CAAA;AAEDG,EAAAA,eAAS,CAAC,MAAM;IACZ,IAAIjD,WAAW,CAACgD,OAAO,EAAE;AACrB9C,MAAAA,gBAAgB,CAAC8C,OAAO,GAAGhD,WAAW,CAACgD,OAAO,CAAC,CAAA;AACnD,KAAA;GACH,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,oBACIE,sBAAA,CAAAC,aAAA,CAACC,sCAAkB,EAAA;AACfC,IAAAA,IAAI,EAAC,MAAM;AACX,IAAA,iBAAA,EAAgB,eAAe;AAC/B1D,IAAAA,SAAS,EAAEA,SAAU;AACrB2D,IAAAA,YAAY,EAAEV,kBAAAA;AAAmB,GAAA,eAEjCM,sBAAA,CAAAC,aAAA,CAACI,0CAAsB,EAAA;AAACC,IAAAA,EAAE,EAAC,WAAA;AAAW,GAAA,EAAEC,cAAI,CAACC,iBAAiB,CAAC9D,MAAM,CAA0B,CAAC,eAChGsD,sBAAA,CAAAC,aAAA,CAAAD,sBAAA,CAAAS,QAAA,EAAA,IAAA,EACKC,yBAAe,CAAChE,MAAM,CAAC,CAACiE,GAAG,CAAEC,IAAI,iBAC9BZ,sBAAA,CAAAC,aAAA,CAACY,mCAAiB,EAAA;AACdV,IAAAA,IAAI,EAAC,cAAc;AACnB,IAAA,YAAA,EAAYW,wBAAc,CAACpE,MAAM,CAAC,CAACkE,IAAI,CAAE;AACzCG,IAAAA,GAAG,EAAEH,IAAK;IACVI,SAAS,EAAA,IAAA;AACTvC,IAAAA,GAAG,EAAEmC,IAAK;AACVK,IAAAA,KAAK,EAAE9D,aAAAA;AAAc,GAAA,EAEpByD,IACc,CACtB,CACH,CAAC,EACFjE,IAAI,CAACgE,GAAG,CAAC,CAAClC,GAAe,EAAES,CAAC,kBACzBc,sBAAA,CAAAC,aAAA,CAACQ,cAAQ,EAAA;AAACM,IAAAA,GAAG,EAAE7B,CAAAA;AAAE,GAAA,EACZT,GAAG,CAACkC,GAAG,CACJ,CACI;IACIlF,IAAI;IACJyF,MAAM;IACNC,QAAQ;IACRC,UAAU;IACVC,SAAS;IACTxB,mBAAmB;IACnByB,OAAO;AACPC,IAAAA,kBAAkB,GAAG,KAAK;IAC1BC,gBAAgB;AAChBC,IAAAA,aAAAA;AACJ,GAAC,EACDtC,CAAC,kBAEDa,sBAAA,CAAAC,aAAA,CAACY,mCAAiB,EAAA;AACda,IAAAA,GAAG,EAAG9B,OAAuB,IAAKD,OAAO,CAACC,OAAO,EAAE+B,OAAO,CAAC9B,mBAAmB,CAAC,EAAEX,CAAC,EAAEC,CAAC,CAAE;AACvF8B,IAAAA,KAAK,EAAE9D,aAAc;AACrBvB,IAAAA,SAAS,EAAEsF,MAAO;AAClBC,IAAAA,QAAQ,EAAEA,QAAS;IACnB1C,GAAG,EAAEhD,IAAI,CAACgD,GAAI;IACdE,IAAI,EAAElD,IAAI,CAACkD,IAAK;IAChBD,UAAU,EAAEjD,IAAI,CAACiD,UAAW;AAC5BkD,IAAAA,SAAS,EACL1C,CAAC,GAAGjC,MAAM,KAAKf,aAAa,GAAG,CAAC,CAAC,IAAIiD,CAAC,KAAKjD,aAAa,GAAG,CAAC,CAAC,IAAI,CAACqF,kBACrE;AACDH,IAAAA,UAAU,EAAEA,UAAW;AACvBC,IAAAA,SAAS,EAAEA,SAAU;AACrBxB,IAAAA,mBAAmB,EAAEA,mBAAoB;AACzC1D,IAAAA,QAAQ,EAAEA,QAAS;AACnB0F,IAAAA,SAAS,EAAEC,6BAAS,CAACrG,IAAI,EAAEQ,UAAU,CAAE;IACvCqF,OAAO,EAAES,8BAAU,CAACpG,KAAK,EAAEF,IAAI,EAAEQ,UAAU,EAAEqF,OAAO,CAAE;IACtDU,WAAW,EAAEC,kCAAc,CAACtG,KAAK,EAAEF,IAAI,EAAEQ,UAAU,EAAEmF,UAAU,CAAE;IACjEc,OAAO,EAAEf,QAAQ,GAAG9B,SAAS,GAAGJ,iBAAiB,CAACC,CAAC,EAAEC,CAAC,CAAE;AACxDgD,IAAAA,WAAW,EAAEhB,QAAQ,GAAG9B,SAAS,GAAGC,gBAAiB;AACrDyB,IAAAA,GAAG,EAAE,CAAA,UAAA,EAAa7B,CAAC,CAAA,CAAA,EAAIC,CAAC,CAAG,CAAA;AAC3BgB,IAAAA,IAAI,EAAC,UAAU;AACfqB,IAAAA,gBAAgB,EAAEA,gBAAiB;AACnCY,IAAAA,cAAc,EAAEX,aAAAA;AAAc,GAAA,EAE7BhG,IAAI,CAACgD,GACS,CAE3B,CACM,CACb,CACe,CAAC,CAAA;AAE7B;;;;"}
|
@@ -102,6 +102,9 @@ const CalendarMonths = ({
|
|
102
102
|
}, [getSelectedDate, onHoverMonth, value]);
|
103
103
|
const handleMouseOutGrid = () => onHoverMonth?.(undefined);
|
104
104
|
const getRefs = React.useCallback((element, i, j) => {
|
105
|
+
if (!outerRefs.current[i + offset]) {
|
106
|
+
outerRefs.current[i + offset] = [];
|
107
|
+
}
|
105
108
|
outerRefs.current[i + offset][j] = element;
|
106
109
|
}, [offset, outerRefs]);
|
107
110
|
React.useEffect(() => {
|