@sberbusiness/triplex-next 1.40.0 → 1.41.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/chunks/{AlertProcessSpoiler-BNrk1vyk.js → AlertProcessSpoiler-Dnwmfds3.js} +16 -16
- package/chunks/{AlertProcessSpoiler-BNrk1vyk.js.map → AlertProcessSpoiler-Dnwmfds3.js.map} +1 -1
- package/chunks/{CalendarViewItem-knPscTce.js → CalendarViewItem-CeA4XADM.js} +30 -28
- package/chunks/CalendarViewItem-CeA4XADM.js.map +1 -0
- package/chunks/Card.module-CnX8TfnM.js +32 -0
- package/chunks/Card.module-CnX8TfnM.js.map +1 -0
- package/chunks/Carousel.module-By3qExUV.js +30 -0
- package/chunks/Carousel.module-By3qExUV.js.map +1 -0
- package/chunks/CheckboxTreeExtended.module-9l5Ifhk7.js +24 -0
- package/chunks/CheckboxTreeExtended.module-9l5Ifhk7.js.map +1 -0
- package/chunks/{Chip-CI8ALCUS.js → Chip-B5RNQL8v.js} +27 -27
- package/chunks/Chip-B5RNQL8v.js.map +1 -0
- package/chunks/Confirm.module-Cpg9tBFI.js +24 -0
- package/chunks/Confirm.module-Cpg9tBFI.js.map +1 -0
- package/chunks/{DropdownListItem-BqOoPFSx.js → DropdownListItem-BVgGltGX.js} +10 -10
- package/chunks/{DropdownListItem-BqOoPFSx.js.map → DropdownListItem-BVgGltGX.js.map} +1 -1
- package/chunks/DropdownMobile.module-DRF4HXhL.js +40 -0
- package/chunks/DropdownMobile.module-DRF4HXhL.js.map +1 -0
- package/chunks/Footer.module-C3ICz5DE.js +12 -0
- package/chunks/Footer.module-C3ICz5DE.js.map +1 -0
- package/chunks/{HeaderLayoutSidebar.module-MnhSBdiv.js → HeaderLayoutSidebar.module-CfWoWqQ1.js} +4 -4
- package/chunks/HeaderLayoutSidebar.module-CfWoWqQ1.js.map +1 -0
- package/chunks/HeaderTabs.module-CQ5eAWqH.js +12 -0
- package/chunks/HeaderTabs.module-CQ5eAWqH.js.map +1 -0
- package/chunks/{HeaderTitle.module-BGOYMt6r.js → HeaderTitle.module-DeWO1h-Y.js} +4 -4
- package/chunks/HeaderTitle.module-DeWO1h-Y.js.map +1 -0
- package/chunks/ImageGalleryExtendedMain.module-Ci9TjdxN.js +28 -0
- package/chunks/ImageGalleryExtendedMain.module-Ci9TjdxN.js.map +1 -0
- package/chunks/{ImageGalleryExtendedThumb-D6RAJpt8.js → ImageGalleryExtendedThumb-BWOvPHBA.js} +5 -5
- package/chunks/{ImageGalleryExtendedThumb-D6RAJpt8.js.map → ImageGalleryExtendedThumb-BWOvPHBA.js.map} +1 -1
- package/chunks/IslandAccordion.module-DDGI83_h.js +44 -0
- package/chunks/IslandAccordion.module-DDGI83_h.js.map +1 -0
- package/chunks/IslandWidgetFooter.module-DPeifuz4.js +12 -0
- package/chunks/IslandWidgetFooter.module-DPeifuz4.js.map +1 -0
- package/chunks/IslandWidgetHeader.module-6il25_jE.js +20 -0
- package/chunks/IslandWidgetHeader.module-6il25_jE.js.map +1 -0
- package/chunks/{LightBoxContent-d_LBU_ZW.js → LightBoxContent-CfT1YJ33.js} +14 -14
- package/chunks/{LightBoxContent-d_LBU_ZW.js.map → LightBoxContent-CfT1YJ33.js.map} +1 -1
- package/chunks/LightBoxControls.module-Cs64xjct.js +26 -0
- package/chunks/LightBoxControls.module-Cs64xjct.js.map +1 -0
- package/chunks/{LightBoxSideOverlayClose.module-eTdxNvSz.js → LightBoxSideOverlayClose.module-sV6yxJQT.js} +4 -4
- package/chunks/LightBoxSideOverlayClose.module-sV6yxJQT.js.map +1 -0
- package/chunks/{ListItemControlsButton-D2ONoqII.js → ListItemControlsButton-Cs8N-_FI.js} +9 -9
- package/chunks/{ListItemControlsButton-D2ONoqII.js.map → ListItemControlsButton-Cs8N-_FI.js.map} +1 -1
- package/chunks/ListItemTail.module-Cv3Fx6WM.js +18 -0
- package/chunks/ListItemTail.module-Cv3Fx6WM.js.map +1 -0
- package/chunks/ListMasterFooter.module-DcmWf5IP.js +14 -0
- package/chunks/ListMasterFooter.module-DcmWf5IP.js.map +1 -0
- package/chunks/ModalWindow.module-BsRM6pWm.js +28 -0
- package/chunks/ModalWindow.module-BsRM6pWm.js.map +1 -0
- package/chunks/Notification.module-Diy7bSw7.js +34 -0
- package/chunks/Notification.module-Diy7bSw7.js.map +1 -0
- package/chunks/Overlay.module-Bc3D2mQ-.js +30 -0
- package/chunks/Overlay.module-Bc3D2mQ-.js.map +1 -0
- package/chunks/Page.module-CqkiljCk.js +15 -0
- package/chunks/Page.module-CqkiljCk.js.map +1 -0
- package/chunks/SMSField.module-BY_XV_HG.js +26 -0
- package/chunks/SMSField.module-BY_XV_HG.js.map +1 -0
- package/chunks/SliderExtendedMarks.module-DXI6Xg6v.js +24 -0
- package/chunks/SliderExtendedMarks.module-DXI6Xg6v.js.map +1 -0
- package/chunks/{SliderExtendedRail-CVEwe6OK.js → SliderExtendedRail-D7gQetwK.js} +5 -5
- package/chunks/{SliderExtendedRail-CVEwe6OK.js.map → SliderExtendedRail-D7gQetwK.js.map} +1 -1
- package/chunks/StatusTracker.module-DYVyu4Qv.js +44 -0
- package/chunks/StatusTracker.module-DYVyu4Qv.js.map +1 -0
- package/chunks/{StepperStepArrowBorder-BO_ItxMh.js → StepperStepArrowBorder-CY-4Rorx.js} +16 -16
- package/chunks/{StepperStepArrowBorder-BO_ItxMh.js.map → StepperStepArrowBorder-CY-4Rorx.js.map} +1 -1
- package/chunks/{SuggestFieldMobileDropdownHint-DyfJuyUe.js → SuggestFieldMobileDropdownHint-B4k9UKDH.js} +3 -3
- package/chunks/{SuggestFieldMobileDropdownHint-DyfJuyUe.js.map → SuggestFieldMobileDropdownHint-B4k9UKDH.js.map} +1 -1
- package/chunks/TableFooter.module-C1BtmpbW.js +22 -0
- package/chunks/TableFooter.module-C1BtmpbW.js.map +1 -0
- package/chunks/TabsExtended.module-BVBDZGtj.js +26 -0
- package/chunks/TabsExtended.module-BVBDZGtj.js.map +1 -0
- package/chunks/TabsLine.module-DXgk6eNb.js +36 -0
- package/chunks/TabsLine.module-DXgk6eNb.js.map +1 -0
- package/chunks/TooltipDesktop.module-BKIRlstC.js +32 -0
- package/chunks/TooltipDesktop.module-BKIRlstC.js.map +1 -0
- package/chunks/TreeView.module-BZWQB1ox.js +12 -0
- package/chunks/TreeView.module-BZWQB1ox.js.map +1 -0
- package/chunks/{UploadZoneInput-BHUONqVR.js → UploadZoneInput-BdhIPJdP.js} +5 -5
- package/chunks/{UploadZoneInput-BHUONqVR.js.map → UploadZoneInput-BdhIPJdP.js.map} +1 -1
- package/chunks/{constants-C-WrqYH6.js → constants-Cn8ZrJM2.js} +27 -27
- package/chunks/{constants-C-WrqYH6.js.map → constants-Cn8ZrJM2.js.map} +1 -1
- package/chunks/{utils-BHxrQbA6.js → utils-Cr7DslJx.js} +8 -8
- package/chunks/utils-Cr7DslJx.js.map +1 -0
- package/chunks/{utils-D4UOxU49.js → utils-Dhu3zNqv.js} +27 -27
- package/chunks/{utils-D4UOxU49.js.map → utils-Dhu3zNqv.js.map} +1 -1
- package/chunks/{utils-BaakoACO.js → utils-Fg8ptXcX.js} +6 -6
- package/chunks/{utils-BaakoACO.js.map → utils-Fg8ptXcX.js.map} +1 -1
- package/chunks/{utils-g0xZYVuS.js → utils-QF2QqBDT.js} +11 -11
- package/chunks/{utils-g0xZYVuS.js.map → utils-QF2QqBDT.js.map} +1 -1
- package/components/Alert/AlertContext/AlertContext.js +7 -7
- package/components/Alert/AlertProcess/AlertProcess.js +2 -2
- package/components/Alert/AlertProcess/components/AlertProcessSpoiler.js +1 -1
- package/components/Amount/Amount.js +2 -2
- package/components/Avatar/Avatar.js +13 -13
- package/components/Badge/Badge.js +4 -4
- package/components/Badge/BadgeDot.js +4 -4
- package/components/Badge/components/BadgeContent.js +6 -6
- package/components/Badge/components/BadgePostfix.js +1 -1
- package/components/Badge/components/BadgePrefix.js +1 -1
- package/components/Body/Body.js +3 -3
- package/components/Button/Button.js +20 -20
- package/components/Button/ButtonBase.js +1 -1
- package/components/Button/ButtonDropdown.js +8 -8
- package/components/Button/ButtonDropdownExtended.js +2 -2
- package/components/Button/ButtonIcon.js +3 -3
- package/components/Calendar/Calendar.js +16 -16
- package/components/Calendar/Calendar.js.map +1 -1
- package/components/Calendar/CalendarContext.js.map +1 -1
- package/components/Calendar/CalendarViewContext.js.map +1 -1
- package/components/Calendar/components/CalendarControls.js +12 -32
- package/components/Calendar/components/CalendarControls.js.map +1 -1
- package/components/Calendar/components/CalendarFooter.js +3 -2
- package/components/Calendar/components/CalendarFooter.js.map +1 -1
- package/components/Calendar/components/CalendarView.js +1 -0
- package/components/Calendar/components/CalendarView.js.map +1 -1
- package/components/Calendar/components/CalendarViewDays.js +31 -55
- package/components/Calendar/components/CalendarViewDays.js.map +1 -1
- package/components/Calendar/components/CalendarViewItem.js +1 -1
- package/components/Calendar/components/CalendarViewMonths.js +30 -52
- package/components/Calendar/components/CalendarViewMonths.js.map +1 -1
- package/components/Calendar/components/CalendarViewYears.js +34 -55
- package/components/Calendar/components/CalendarViewYears.js.map +1 -1
- package/components/Calendar/utils.js +43 -10
- package/components/Calendar/utils.js.map +1 -1
- package/components/Card/CardAction.js +5 -5
- package/components/Card/CardStatic.js +2 -2
- package/components/Card/components/CardContent/CardContent.js +1 -1
- package/components/Card/components/CardContent/components/CardContentBody.js +1 -1
- package/components/Card/components/CardContent/components/CardContentFooter.js +1 -1
- package/components/Card/components/CardContent/components/CardContentHeader.js +1 -1
- package/components/Card/components/CardMedia.js +1 -1
- package/components/Card/enums.js +1 -0
- package/components/Card/enums.js.map +1 -1
- package/components/Card/utils.js +2 -1
- package/components/Card/utils.js.map +1 -1
- package/components/Carousel/Carousel.js +1 -1
- package/components/Carousel/CarouselButton.js +1 -1
- package/components/Carousel/CarouselIndicators.js +1 -1
- package/components/Carousel/CarouselItem.js +1 -1
- package/components/Carousel/CarouselTrack.js +1 -1
- package/components/Carousel/CarouselViewport.js +1 -1
- package/components/CarouselExtended/CarouselExtended.js +1 -1
- package/components/Checkbox/Checkbox.js +10 -10
- package/components/Checkbox/CheckboxXGroup.js +8 -8
- package/components/Checkbox/CheckboxYGroup.js +1 -1
- package/components/CheckboxTreeExtended/CheckboxTreeExtended.js +1 -1
- package/components/CheckboxTreeExtended/components/CheckboxTreeExtendedArrow.js +1 -1
- package/components/CheckboxTreeExtended/components/CheckboxTreeExtendedCheckbox.js +1 -1
- package/components/CheckboxTreeExtended/components/CheckboxTreeExtendedNode.js +1 -1
- package/components/Chip/Chip.js +1 -1
- package/components/Chip/ChipClearButton.js +1 -1
- package/components/Chip/ChipDatePicker/ChipDatePicker.js +1 -1
- package/components/Chip/ChipDatePicker/ChipDatePickerTarget.js +1 -1
- package/components/Chip/ChipDropdownArrow.js +2 -2
- package/components/Chip/ChipIcon.js +1 -1
- package/components/Chip/ChipMultiselect.js +1 -1
- package/components/Chip/ChipOptions.js +2 -2
- package/components/Chip/ChipSelect/ChipSelect.js +1 -1
- package/components/Chip/ChipSelect/ChipSelectTarget.js +1 -1
- package/components/Chip/ChipSort.js +1 -1
- package/components/Chip/ChipSuggest/ChipSuggest.js +1 -1
- package/components/Chip/ChipSuggest/ChipSuggestDropdown.js +1 -1
- package/components/Chip/ChipSuggest/ChipSuggestTarget.js +1 -1
- package/components/Chip/ChipSuggest/desktop/ChipSuggestDesktopDropdownField.js +1 -1
- package/components/Chip/index.js +1 -1
- package/components/ChipGroup/ChipGroup.js +7 -7
- package/components/Col/Col.js +132 -132
- package/components/CollapsibleTree/CollapsibleTree.js +1 -1
- package/components/CollapsibleTree/components/CollapsibleTreeLeafContent.js +1 -1
- package/components/CollapsibleTree/components/CollapsibleTreeLeafNode.js +1 -1
- package/components/CollapsibleTree/components/CollapsibleTreeNodeHeader.js +4 -4
- package/components/CollapsibleTreeExtended/components/CollapsibleTreeExtendedNode.js +1 -1
- package/components/Confirm/Confirm.js +1 -1
- package/components/Confirm/components/ConfirmCloseButton.js +1 -1
- package/components/Confirm/components/ConfirmContent.js +1 -1
- package/components/Confirm/components/ConfirmContentTitle.js +1 -1
- package/components/Confirm/components/ConfirmControls.js +1 -1
- package/components/DateField/utils.js +2 -2
- package/components/DateField/utils.js.map +1 -1
- package/components/DatePickerExtended/DatePickerExtended.js +2 -2
- package/components/DatePickerExtended/DatePickerExtendedDropdown.js +1 -1
- package/components/DateRange/DateRange.js +3 -3
- package/components/DesignTokens/DesignTokenUtils.js +25 -20
- package/components/DesignTokens/DesignTokenUtils.js.map +1 -1
- package/components/DesignTokens/components/Calendar.js +2 -2
- package/components/DesignTokens/components/Calendar.js.map +1 -1
- package/components/DesignTokens/components/StatusTracker.js +8 -2
- package/components/DesignTokens/components/StatusTracker.js.map +1 -1
- package/components/Divider/Divider.js +17 -17
- package/components/DocumentNumberEdit/DocumentNumberEdit.js +3 -3
- package/components/Dropdown/desktop/DropdownDesktop.js +6 -6
- package/components/Dropdown/desktop/DropdownList.js +1 -1
- package/components/Dropdown/desktop/DropdownListItem.js +1 -1
- package/components/Dropdown/desktop/index.js +1 -1
- package/components/Dropdown/index.js +1 -1
- package/components/Dropdown/mobile/DropdownMobile.js +2 -2
- package/components/Dropdown/mobile/DropdownMobileBody.js +1 -1
- package/components/Dropdown/mobile/DropdownMobileClose.js +1 -1
- package/components/Dropdown/mobile/DropdownMobileFooter.js +1 -1
- package/components/Dropdown/mobile/DropdownMobileHeader.js +1 -1
- package/components/Dropdown/mobile/DropdownMobileInner.js +1 -1
- package/components/Dropdown/mobile/DropdownMobileInput.js +1 -1
- package/components/Dropdown/mobile/DropdownMobileList.js +1 -1
- package/components/Dropdown/mobile/DropdownMobileListItem.js +1 -1
- package/components/Dropdown/mobile/DropdownMobileLoader.js +1 -1
- package/components/Dropdown/mobile/DropdownMobileMaskedInput.js +1 -1
- package/components/Ellipsis/Ellipsis.js +3 -3
- package/components/EmptyView/EmptyView.js +4 -4
- package/components/ExpandAnimation/ExpandAnimation.js +1 -1
- package/components/FocusTrapExtended/FocusTrapExtended.js +20 -8
- package/components/FocusTrapExtended/FocusTrapExtended.js.map +1 -1
- package/components/Footer/Footer.js +1 -1
- package/components/Footer/components/FooterDescription.js +1 -1
- package/components/Footer/components/FooterDescriptionContent.js +1 -1
- package/components/Footer/components/FooterDescriptionControls.js +1 -1
- package/components/FormField/FormField.js +20 -20
- package/components/FormField/FormField.js.map +1 -1
- package/components/FormField/FormFieldContext.js.map +1 -1
- package/components/FormField/FormFieldDescriptionContext.js.map +1 -1
- package/components/FormField/components/FormFieldClear.js +1 -1
- package/components/FormField/components/FormFieldClear.js.map +1 -1
- package/components/FormField/components/FormFieldCounter.js +5 -4
- package/components/FormField/components/FormFieldCounter.js.map +1 -1
- package/components/FormField/components/FormFieldDescription.js +13 -5
- package/components/FormField/components/FormFieldDescription.js.map +1 -1
- package/components/FormField/components/FormFieldInput.js +7 -8
- package/components/FormField/components/FormFieldInput.js.map +1 -1
- package/components/FormField/components/FormFieldLabel.js +10 -11
- package/components/FormField/components/FormFieldLabel.js.map +1 -1
- package/components/FormField/components/FormFieldMaskedInput.js +6 -6
- package/components/FormField/components/FormFieldPostfix.js +5 -29
- package/components/FormField/components/FormFieldPostfix.js.map +1 -1
- package/components/FormField/components/FormFieldPrefix.js +5 -29
- package/components/FormField/components/FormFieldPrefix.js.map +1 -1
- package/components/FormField/components/FormFieldTarget.js +8 -8
- package/components/FormField/components/FormFieldTextarea.js +4 -4
- package/components/FormField/components/useFormFieldAffixWidth.js +33 -0
- package/components/FormField/components/useFormFieldAffixWidth.js.map +1 -0
- package/components/FormField/components/utils.js +9 -1
- package/components/FormField/components/utils.js.map +1 -1
- package/components/FormField/consts.js.map +1 -1
- package/components/FormField/enums.js.map +1 -1
- package/components/FormField/index.js +2 -3
- package/components/Gap/Gap.js +8 -8
- package/components/Header/Header.js +1 -1
- package/components/Header/components/HeaderLayoutSidebar/HeaderLayoutSidebar.js +1 -1
- package/components/Header/components/HeaderLayoutSidebar/HeaderLayoutSidebarContent.js +1 -1
- package/components/Header/components/HeaderLayoutSidebar/HeaderLayoutSidebarSidebar.js +1 -1
- package/components/Header/components/HeaderSubheader/HeaderSubheader.js +2 -2
- package/components/Header/components/HeaderTabs/HeaderTabs.js +1 -1
- package/components/Header/components/HeaderTabs/HeaderTabsContent.js +1 -1
- package/components/Header/components/HeaderTabs/HeaderTabsControls.js +1 -1
- package/components/Header/components/HeaderTitle/HeaderTitle.js +1 -1
- package/components/Header/components/HeaderTitle/HeaderTitleContent.js +1 -1
- package/components/Header/components/HeaderTitle/HeaderTitleControls.js +1 -1
- package/components/HelpBox/HelpBox.js +1 -1
- package/components/IconWrapper/IconWrapper.js +7 -7
- package/components/IconWrapper/IconWrapper.js.map +1 -1
- package/components/ImageGallery/ImageGallery.js +1 -1
- package/components/ImageGalleryExtended/ImageGalleryExtended.js +2 -2
- package/components/ImageGalleryExtended/components/ImageGalleryExtendedArrow.js +1 -1
- package/components/ImageGalleryExtended/components/ImageGalleryExtendedDots.js +3 -3
- package/components/ImageGalleryExtended/components/ImageGalleryExtendedMain.js +1 -1
- package/components/ImageGalleryExtended/components/ImageGalleryExtendedSlide.js +1 -1
- package/components/ImageGalleryExtended/components/ImageGalleryExtendedSwipeTrack.js +1 -1
- package/components/ImageGalleryExtended/components/ImageGalleryExtendedThumb.js +1 -1
- package/components/ImageGalleryExtended/components/ImageGalleryExtendedThumbnails.js +1 -1
- package/components/ImageGalleryExtended/components/index.js +1 -1
- package/components/ImageGalleryExtended/index.js +1 -1
- package/components/Island/Island.js +3 -3
- package/components/Island/Island.js.map +1 -1
- package/components/Island/components/IslandBody.js +2 -1
- package/components/Island/components/IslandBody.js.map +1 -1
- package/components/Island/components/IslandFooter.js +7 -4
- package/components/Island/components/IslandFooter.js.map +1 -1
- package/components/Island/components/IslandHeader.js +7 -4
- package/components/Island/components/IslandHeader.js.map +1 -1
- package/components/Island/enums.js.map +1 -1
- package/components/Island/utils.js +1 -1
- package/components/IslandAccordion/IslandAccordion.js +2 -2
- package/components/IslandAccordion/components/IslandAccordionContent.js +1 -1
- package/components/IslandAccordion/components/IslandAccordionFooter.js +1 -1
- package/components/IslandAccordion/components/IslandAccordionItem.js +2 -2
- package/components/IslandWidget/IslandWidget.js +4 -4
- package/components/IslandWidget/components/IslandWidgetBody.js +1 -1
- package/components/IslandWidget/components/IslandWidgetExtraFooter.js +1 -1
- package/components/IslandWidget/components/IslandWidgetFooter.js +1 -1
- package/components/IslandWidget/components/IslandWidgetFooterContent.js +1 -1
- package/components/IslandWidget/components/IslandWidgetFooterControls.js +1 -1
- package/components/IslandWidget/components/IslandWidgetHeader.js +1 -1
- package/components/IslandWidget/components/IslandWidgetHeaderContent.js +1 -1
- package/components/IslandWidget/components/IslandWidgetHeaderControls.js +1 -1
- package/components/IslandWidget/components/IslandWidgetHeaderDescription.js +1 -1
- package/components/IslandWidget/components/IslandWidgetHeaderTitle.js +1 -1
- package/components/IslandWidget/components/IslandWidgetWrapper.js +1 -1
- package/components/KeyDownListener/ComposedKeyDownListener.js +7 -8
- package/components/KeyDownListener/ComposedKeyDownListener.js.map +1 -1
- package/components/KeyDownListener/KeyDownListener.js +3 -4
- package/components/KeyDownListener/KeyDownListener.js.map +1 -1
- package/components/LightBox/LightBox.js +5 -5
- package/components/LightBox/LightBoxContent.js +1 -1
- package/components/LightBox/LightBoxControls/LightBoxArrow.js +1 -1
- package/components/LightBox/LightBoxControls/LightBoxClose.js +1 -1
- package/components/LightBox/LightBoxControls/LightBoxControls.js +1 -1
- package/components/LightBox/LightBoxControls/LightBoxNext.js +1 -1
- package/components/LightBox/LightBoxControls/LightBoxPrev.js +1 -1
- package/components/LightBox/LightBoxSideOverlay/LightBoxSideOverlay.js +12 -13
- package/components/LightBox/LightBoxSideOverlay/LightBoxSideOverlay.js.map +1 -1
- package/components/LightBox/LightBoxSideOverlay/LightBoxSideOverlayCloseDesktop.js +1 -1
- package/components/LightBox/LightBoxSideOverlay/LightBoxSideOverlayCloseMobile.js +1 -1
- package/components/LightBox/LightBoxSideOverlay/LightBoxSideOverlayLoader.js +1 -1
- package/components/LightBox/LightBoxSidebars/LightBoxLeftSidebar.js +3 -3
- package/components/LightBox/LightBoxSidebars/LightBoxRightSidebar.js +3 -3
- package/components/Link/Link.js +5 -5
- package/components/List/List.js +3 -3
- package/components/List/components/ListActionItem.js +1 -1
- package/components/List/components/ListEmptyState.js +1 -1
- package/components/List/components/ListItem.js +1 -1
- package/components/List/components/ListItemContent.js +4 -4
- package/components/List/components/ListItemControls.js +1 -1
- package/components/List/components/ListItemControlsButton.js +1 -1
- package/components/List/components/ListItemControlsButtonDropdown.js +1 -1
- package/components/List/components/ListItemLoading.js +1 -1
- package/components/List/components/ListItemSelectable.js +6 -6
- package/components/List/components/ListItemTailLeft.js +1 -1
- package/components/List/components/ListItemTailRight.js +1 -1
- package/components/List/components/ListSortableItem.js +2 -2
- package/components/List/components/ListSortableItemControls.js +1 -1
- package/components/List/components/ListSortableItemTarget.js +4 -4
- package/components/List/components/ListTableItem.js +3 -3
- package/components/List/index.js +1 -1
- package/components/ListMaster/ListMaster.js +1 -1
- package/components/ListMaster/components/ListMasterBody.js +1 -1
- package/components/ListMaster/components/ListMasterChipGroup.js +1 -1
- package/components/ListMaster/components/ListMasterFooter.js +1 -1
- package/components/ListMaster/components/ListMasterFooterControls.js +1 -1
- package/components/ListMaster/components/ListMasterFooterDescription.js +1 -1
- package/components/ListMaster/components/ListMasterHeader.js +2 -2
- package/components/ListMaster/components/SelectionControls.js +2 -2
- package/components/Loader/LoaderMiddle/LoaderMiddle.js +10 -10
- package/components/Loader/LoaderMiddle/LoaderMiddle.js.map +1 -1
- package/components/Loader/LoaderSmall/LoaderSmall.js +10 -10
- package/components/LoaderScreen/LoaderScreen.js +13 -12
- package/components/LoaderScreen/LoaderScreen.js.map +1 -1
- package/components/Marker/Marker.js +1 -1
- package/components/Marker/utils.js +1 -1
- package/components/MarkerStatus/MarkerStatus.js +7 -7
- package/components/ModalWindow/ModalWindow.js +1 -1
- package/components/ModalWindow/components/ModalWindowBody.js +1 -1
- package/components/ModalWindow/components/ModalWindowClose.js +1 -1
- package/components/ModalWindow/components/ModalWindowContent.js +1 -1
- package/components/ModalWindow/components/ModalWindowHeader.js +1 -1
- package/components/ModalWindow/components/ModalWindowViewManager.js +1 -1
- package/components/MonthYearField/utils.js +2 -1
- package/components/MonthYearField/utils.js.map +1 -1
- package/components/MonthYearRange/MonthYearRange.js +3 -3
- package/components/MultiselectField/components/MultiselectFieldDropdown.js +1 -1
- package/components/MultiselectField/components/MultiselectFieldDropdownContent.js +5 -5
- package/components/MultiselectField/components/MultiselectFieldDropdownFooter.js +1 -1
- package/components/MultiselectField/components/MultiselectFieldDropdownHeader.js +1 -1
- package/components/Notification/Notification.js +2 -2
- package/components/Notification/NotificationGrouped.js +1 -1
- package/components/Notification/components/NotificationBody.js +1 -1
- package/components/Notification/components/NotificationBodyList.js +1 -1
- package/components/Notification/components/NotificationClose.js +1 -1
- package/components/Notification/components/NotificationFooter.js +1 -1
- package/components/Notification/components/NotificationGroupedFooter.js +1 -1
- package/components/Notification/components/NotificationHeader.js +1 -1
- package/components/Notification/components/NotificationIcon.js +1 -1
- package/components/Notification/components/NotificationTime.js +1 -1
- package/components/OrderedList/OrderedList.js +2 -2
- package/components/OrderedList/OrderedListItem.js +2 -2
- package/components/Overlay/Overlay.js +1 -1
- package/components/Overlay/OverlayMask.js +1 -1
- package/components/Overlay/OverlayPanel.js +1 -1
- package/components/Page/Page.js +1 -1
- package/components/Page/components/BodyPage.js +3 -3
- package/components/Page/components/FooterPage.js +1 -1
- package/components/Page/components/FooterPage.js.map +1 -1
- package/components/Page/components/HeaderPage.js +1 -1
- package/components/Page/components/HeaderPage.js.map +1 -1
- package/components/Pagination/components/PaginationExtended.js +2 -2
- package/components/Pagination/components/PaginationNavigation.js +1 -1
- package/components/Pagination/components/PaginationNavigation.js.map +1 -1
- package/components/Pagination/components/PaginationNavigationButton.js +2 -2
- package/components/Pagination/components/PaginationNavigationExtended.js +1 -1
- package/components/Pagination/components/PaginationPageButton.js +2 -2
- package/components/Pagination/components/PaginationPageEllipsis.js +1 -1
- package/components/Pagination/components/PaginationSelect.js +2 -2
- package/components/Pagination/{utils/paginationUtils.js → utils.js} +2 -2
- package/components/Pagination/utils.js.map +1 -0
- package/components/Radio/Radio.js +9 -9
- package/components/Radio/RadioXGroup.js +8 -8
- package/components/Radio/RadioYGroup.js +1 -1
- package/components/Row/Row.js +4 -4
- package/components/SMSField/SMSField.js +2 -2
- package/components/SMSField/components/RefreshIcon.js +1 -1
- package/components/SMSField/components/SMSFieldInput.js +1 -1
- package/components/SMSField/components/SMSFieldRefresh.js +1 -1
- package/components/SMSField/components/SMSFieldSubmit.js +1 -1
- package/components/SegmentedControl/SegmentedControl.js +9 -9
- package/components/SegmentedControl/SegmentedControlSegment.js +3 -3
- package/components/SelectExtendedField/SelectExtendedField.js +41 -46
- package/components/SelectExtendedField/SelectExtendedField.js.map +1 -1
- package/components/SelectExtendedField/components/SelectExtendedFieldDropdown.js +2 -1
- package/components/SelectExtendedField/components/SelectExtendedFieldDropdown.js.map +1 -1
- package/components/SelectExtendedField/components/SelectExtendedFieldDropdownDefault.js +18 -38
- package/components/SelectExtendedField/components/SelectExtendedFieldDropdownDefault.js.map +1 -1
- package/components/SelectExtendedField/components/SelectExtendedFieldTarget.js +47 -65
- package/components/SelectExtendedField/components/SelectExtendedFieldTarget.js.map +1 -1
- package/components/SelectField/SelectField.js +1 -1
- package/components/Skeleton/Skeleton.js +4 -4
- package/components/SliderExtended/SliderExtended.js +2 -2
- package/components/SliderExtended/components/SliderExtendedDot/SliderExtendedDot.js +6 -5
- package/components/SliderExtended/components/SliderExtendedDot/SliderExtendedDot.js.map +1 -1
- package/components/SliderExtended/components/SliderExtendedMarks/SliderExtendedMark.js +1 -1
- package/components/SliderExtended/components/SliderExtendedMarks/SliderExtendedMarks.js +1 -1
- package/components/SliderExtended/components/SliderExtendedRail.js +1 -1
- package/components/SliderExtended/components/SliderExtendedTooltip/SliderExtendedTooltip.js +4 -4
- package/components/SliderExtended/components/SliderExtendedTrack/SliderExtendedTrack.js +7 -6
- package/components/SliderExtended/components/SliderExtendedTrack/SliderExtendedTrack.js.map +1 -1
- package/components/SmallInput/SmallInput.js +1 -1
- package/components/Spoiler/Spoiler.js +10 -10
- package/components/StatusTracker/StatusTracker.js +7 -6
- package/components/StatusTracker/StatusTracker.js.map +1 -1
- package/components/StatusTracker/components/StatusTrackerAlert.js +1 -1
- package/components/StatusTracker/components/StatusTrackerBody.js +1 -1
- package/components/StatusTracker/components/StatusTrackerButton.js +1 -1
- package/components/StatusTracker/components/StatusTrackerDescription.js +1 -1
- package/components/StatusTracker/components/StatusTrackerFooter.js +1 -1
- package/components/StatusTracker/components/StatusTrackerHeader.js +1 -1
- package/components/StatusTracker/components/StatusTrackerMedia.js +1 -1
- package/components/StatusTracker/components/StatusTrackerStatus.js +1 -1
- package/components/StatusTracker/components/StatusTrackerStatusGroup.js +1 -1
- package/components/StatusTracker/components/StatusTrackerSum.js +1 -1
- package/components/StatusTracker/components/StatusTrackerTitle.js +1 -1
- package/components/Step/Step.js +10 -10
- package/components/Stepper/Stepper.js +8 -8
- package/components/Stepper/StepperExtended.js +1 -1
- package/components/Stepper/StepperStep.js +2 -2
- package/components/Stepper/StepperStepArrowBorder.js +1 -1
- package/components/Suggest/SuggestMobileDropdownContent.js +3 -3
- package/components/SuggestField/SuggestField.js +1 -1
- package/components/SuggestField/desktop/SuggestFieldDesktop.js +1 -1
- package/components/SuggestField/desktop/SuggestFieldDesktopDropdown.js +1 -1
- package/components/SuggestField/index.js +1 -1
- package/components/SuggestField/mobile/SuggestFieldMobile.js +1 -1
- package/components/SuggestField/mobile/SuggestFieldMobileDropdown.js +2 -2
- package/components/SuggestField/mobile/SuggestFieldMobileDropdownHint.js +1 -1
- package/components/SuggestField/mobile/index.js +1 -1
- package/components/SwipeableArea/SwipeableArea.js +8 -8
- package/components/Table/ChipPanel.js +1 -1
- package/components/Table/ChipPanelLinks.js +1 -1
- package/components/Table/FilterPanel.js +2 -2
- package/components/Table/MasterTable.js +2 -2
- package/components/Table/NoColumns.js +2 -2
- package/components/Table/PaginationPanel.js +2 -2
- package/components/Table/TableBasic/TableBasic.js +1 -1
- package/components/Table/TableBasic/components/TableBasicBody.js +1 -1
- package/components/Table/TableBasic/components/TableBasicHeader.js +1 -1
- package/components/Table/TableBasic/components/TableBasicRow.js +1 -1
- package/components/Table/TableBasicSettings/TableBasicSettings.js +2 -2
- package/components/Table/TableBasicSettings/components/ColumnSettingsSortableListItemTarget.js +2 -2
- package/components/Table/TableBasicSettings/components/ColumnSettingsStaticListItem.js +1 -1
- package/components/Table/TableBasicSettings/components/TableBasicSettingsBody.js +1 -1
- package/components/Table/TableBasicSettings/components/TableBasicSettingsFooter.js +1 -1
- package/components/Table/TableBasicSettings/components/TableBasicSettingsHeader.js +1 -1
- package/components/Table/TableFooter/TableFooter.js +1 -1
- package/components/Table/TableFooter/components/TableFooterSummary.js +1 -1
- package/components/Table/TableFooter/components/TableFooterSummaryAmount.js +1 -1
- package/components/Table/TableFooter/components/TableFooterSummarySelectAllButton.js +1 -1
- package/components/Table/TableFooter/components/TableFooterSummarySelectedCount.js +1 -1
- package/components/Table/utils.js +1 -1
- package/components/Tabs/Tabs.js +5 -5
- package/components/TabsExtended/TabsExtended.js +2 -2
- package/components/TabsExtended/components/TabsExtendedContent.js +1 -1
- package/components/TabsExtended/components/TabsExtendedDropdownWrapper.js +1 -1
- package/components/TabsExtended/components/TabsExtendedTab.js +1 -1
- package/components/TabsExtended/components/TabsExtendedTabButton.js +1 -1
- package/components/TabsExtended/components/TabsExtendedTabsWrapper.js +1 -1
- package/components/TabsExtended/utils.js +1 -1
- package/components/TabsLine/TabsLine.js +1 -1
- package/components/TabsLine/components/TabsLineDesktop.js +1 -1
- package/components/TabsLine/components/TabsLineDropdown.js +2 -2
- package/components/TabsLine/components/TabsLineItem.js +1 -1
- package/components/TabsLine/components/TabsLineMobile.js +2 -2
- package/components/Tag/Tag.js +5 -5
- package/components/TagColor/TagColor.js +10 -10
- package/components/TagGroup/TagGroup.js +4 -4
- package/components/ThemeProvider/ETriplexNextTheme.js.map +1 -1
- package/components/ThemeProvider/ThemeProvider.js +5 -3
- package/components/ThemeProvider/ThemeProvider.js.map +1 -1
- package/components/ThemeProvider/ThemeProviderContext.js.map +1 -1
- package/components/ThemeProvider/components/ThemeProviderView.js +6 -9
- package/components/ThemeProvider/components/ThemeProviderView.js.map +1 -1
- package/components/ThemeProvider/useToken.js.map +1 -1
- package/components/Tooltip/Tooltip.js +49 -52
- package/components/Tooltip/Tooltip.js.map +1 -1
- package/components/Tooltip/TootlipContext.js.map +1 -1
- package/components/Tooltip/components/common/TooltipBody.js +1 -1
- package/components/Tooltip/components/common/TooltipLink.js +7 -18
- package/components/Tooltip/components/common/TooltipLink.js.map +1 -1
- package/components/Tooltip/components/common/TooltipTarget.js.map +1 -1
- package/components/Tooltip/components/common/TooltipXButton.js +1 -1
- package/components/Tooltip/components/desktop/TooltipDesktop.js +24 -12
- package/components/Tooltip/components/desktop/TooltipDesktop.js.map +1 -1
- package/components/Tooltip/components/desktop/components/TooltipDesktopBase.js +25 -24
- package/components/Tooltip/components/desktop/components/TooltipDesktopBase.js.map +1 -1
- package/components/Tooltip/components/desktop/components/TooltipDesktopTip.js +8 -17
- package/components/Tooltip/components/desktop/components/TooltipDesktopTip.js.map +1 -1
- package/components/Tooltip/components/mobile/TooltipMobile.js +10 -6
- package/components/Tooltip/components/mobile/TooltipMobile.js.map +1 -1
- package/components/Tooltip/components/mobile/components/TooltipMobileHeader.js +2 -2
- package/components/Tooltip/components/mobile/components/TooltipMobileHeader.js.map +1 -1
- package/components/Tooltip/enums.js.map +1 -1
- package/components/Tooltip/utils/Positioning.js +18 -17
- package/components/Tooltip/utils/Positioning.js.map +1 -1
- package/components/Tooltip/utils/useTooltipTheme.js +40 -12
- package/components/Tooltip/utils/useTooltipTheme.js.map +1 -1
- package/components/TopOverlay/TopOverlay.js +6 -6
- package/components/TreeView/TreeView.js +1 -1
- package/components/TreeView/components/TreeViewGroup.js +1 -1
- package/components/TreeView/components/TreeViewNode.js +1 -1
- package/components/Typography/Caption.js +7 -7
- package/components/Typography/CodeText.js +2 -2
- package/components/Typography/Text.js +9 -9
- package/components/Typography/Title.js +9 -9
- package/components/Typography/constants.js +1 -1
- package/components/UnorderedList/UnorderedList.js +2 -2
- package/components/UnorderedList/UnorderedListItem.js +2 -2
- package/components/UploadZone/UploadZone.js +2 -2
- package/components/UploadZone/components/UploadZoneInput.js +1 -1
- package/components/UploadZone/index.js +1 -1
- package/components/index.js +7 -8
- package/consts/DateConst.js.map +1 -1
- package/index.d.ts +255 -107
- package/index.js +7 -8
- package/package.json +1 -1
- package/styles/triplex-next.css +2962 -2951
- package/chunks/CalendarViewItem-knPscTce.js.map +0 -1
- package/chunks/Card.module-Dd2_zoXF.js +0 -30
- package/chunks/Card.module-Dd2_zoXF.js.map +0 -1
- package/chunks/Carousel.module-LNo8o3qn.js +0 -30
- package/chunks/Carousel.module-LNo8o3qn.js.map +0 -1
- package/chunks/CheckboxTreeExtended.module-CKUO50mv.js +0 -24
- package/chunks/CheckboxTreeExtended.module-CKUO50mv.js.map +0 -1
- package/chunks/Chip-CI8ALCUS.js.map +0 -1
- package/chunks/Confirm.module-BtnLGqBz.js +0 -24
- package/chunks/Confirm.module-BtnLGqBz.js.map +0 -1
- package/chunks/DropdownMobile.module-xbkYiPM1.js +0 -40
- package/chunks/DropdownMobile.module-xbkYiPM1.js.map +0 -1
- package/chunks/Footer.module-CYELL0O7.js +0 -12
- package/chunks/Footer.module-CYELL0O7.js.map +0 -1
- package/chunks/HeaderLayoutSidebar.module-MnhSBdiv.js.map +0 -1
- package/chunks/HeaderTabs.module-D9u9xuSn.js +0 -12
- package/chunks/HeaderTabs.module-D9u9xuSn.js.map +0 -1
- package/chunks/HeaderTitle.module-BGOYMt6r.js.map +0 -1
- package/chunks/ImageGalleryExtendedMain.module-CQNClbso.js +0 -28
- package/chunks/ImageGalleryExtendedMain.module-CQNClbso.js.map +0 -1
- package/chunks/IslandAccordion.module-nyPnHohH.js +0 -44
- package/chunks/IslandAccordion.module-nyPnHohH.js.map +0 -1
- package/chunks/IslandWidgetFooter.module-CNyLawMh.js +0 -12
- package/chunks/IslandWidgetFooter.module-CNyLawMh.js.map +0 -1
- package/chunks/IslandWidgetHeader.module-ChE5SXll.js +0 -20
- package/chunks/IslandWidgetHeader.module-ChE5SXll.js.map +0 -1
- package/chunks/LightBoxControls.module-Buvm7RbG.js +0 -26
- package/chunks/LightBoxControls.module-Buvm7RbG.js.map +0 -1
- package/chunks/LightBoxSideOverlayClose.module-eTdxNvSz.js.map +0 -1
- package/chunks/ListItemTail.module-BhSOptJB.js +0 -18
- package/chunks/ListItemTail.module-BhSOptJB.js.map +0 -1
- package/chunks/ListMasterFooter.module-DrlO_YrT.js +0 -14
- package/chunks/ListMasterFooter.module-DrlO_YrT.js.map +0 -1
- package/chunks/ModalWindow.module-DrJpRuNK.js +0 -28
- package/chunks/ModalWindow.module-DrJpRuNK.js.map +0 -1
- package/chunks/Notification.module-tEh-vvv0.js +0 -34
- package/chunks/Notification.module-tEh-vvv0.js.map +0 -1
- package/chunks/Overlay.module-CPNLKKsF.js +0 -30
- package/chunks/Overlay.module-CPNLKKsF.js.map +0 -1
- package/chunks/Page.module-Dru0rPA5.js +0 -15
- package/chunks/Page.module-Dru0rPA5.js.map +0 -1
- package/chunks/SMSField.module-CjGkO6u6.js +0 -26
- package/chunks/SMSField.module-CjGkO6u6.js.map +0 -1
- package/chunks/SliderExtendedMarks.module-CAeqmSQq.js +0 -24
- package/chunks/SliderExtendedMarks.module-CAeqmSQq.js.map +0 -1
- package/chunks/StatusTracker.module-BD5zJfbg.js +0 -42
- package/chunks/StatusTracker.module-BD5zJfbg.js.map +0 -1
- package/chunks/TableFooter.module-DhudGmzN.js +0 -22
- package/chunks/TableFooter.module-DhudGmzN.js.map +0 -1
- package/chunks/TabsExtended.module-DNjJIne-.js +0 -26
- package/chunks/TabsExtended.module-DNjJIne-.js.map +0 -1
- package/chunks/TabsLine.module-CbVAypRw.js +0 -36
- package/chunks/TabsLine.module-CbVAypRw.js.map +0 -1
- package/chunks/TooltipDesktop.module-DBiY8cJJ.js +0 -32
- package/chunks/TooltipDesktop.module-DBiY8cJJ.js.map +0 -1
- package/chunks/TreeView.module-GA-NyzjK.js +0 -12
- package/chunks/TreeView.module-GA-NyzjK.js.map +0 -1
- package/chunks/utils-BHxrQbA6.js.map +0 -1
- package/components/Pagination/utils/paginationUtils.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CalendarView.js","sources":["../../../../src/components/Calendar/components/CalendarView.tsx"],"sourcesContent":["import React, { useContext, useRef } from \"react\";\nimport { ICalendarViewProps } from \"../types\";\nimport { CalendarContext } from \"../CalendarContext\";\nimport { CalendarViewContext } from \"../CalendarViewContext\";\nimport { ECalendarViewMode } from \"../enums\";\nimport { CalendarViewDays } from \"./CalendarViewDays\";\nimport { CalendarViewMonths } from \"./CalendarViewMonths\";\nimport { CalendarViewYears } from \"./CalendarViewYears\";\n\n/** Вид календаря. */\nexport const CalendarView: React.FC<ICalendarViewProps> = ({\n dayHtmlAttributes,\n monthHtmlAttributes,\n yearHtmlAttributes,\n ...rest\n}) => {\n const { viewMode } = useContext(CalendarContext);\n const viewItemFocusedRef = useRef(false);\n\n /** Рендер текущего вида календаря. */\n const renderCurrentView = () => {\n switch (viewMode) {\n case ECalendarViewMode.DAYS:\n return <CalendarViewDays dayHtmlAttributes={dayHtmlAttributes} {...rest} />;\n case ECalendarViewMode.MONTHS:\n return <CalendarViewMonths monthHtmlAttributes={monthHtmlAttributes} {...rest} />;\n case ECalendarViewMode.YEARS:\n return <CalendarViewYears yearHtmlAttributes={yearHtmlAttributes} {...rest} />;\n }\n };\n\n return (\n <CalendarViewContext.Provider value={{ viewItemFocusedRef }}>\n {renderCurrentView()}\n </CalendarViewContext.Provider>\n );\n};\n"],"names":[],"mappings":";;;;;;;;AAUO,MAAM,eAA6C,CAAC;AAAA,EACvD;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACP,MAAM;AACF,QAAM,EAAE,SAAA,IAAa,WAAW,eAAe;AAC/C,QAAM,qBAAqB,OAAO,KAAK;AAGvC,QAAM,oBAAoB,MAAM;AAC5B,YAAQ,UAAA;AAAA,MACJ,KAAK,kBAAkB;AACnB,eAAO,oBAAC,kBAAA,EAAiB,mBAAuC,GAAG,KAAA,CAAM;AAAA,MAC7E,KAAK,kBAAkB;AACnB,eAAO,oBAAC,oBAAA,EAAmB,qBAA2C,GAAG,KAAA,CAAM;AAAA,MACnF,KAAK,kBAAkB;AACnB,eAAO,oBAAC,mBAAA,EAAkB,oBAAyC,GAAG,KAAA,CAAM;AAAA,IAAA;AAAA,EAExF;AAEA,SACI,oBAAC,oBAAoB,UAApB,EAA6B,OAAO,EAAE,sBAClC,UAAA,kBAAA,GACL;AAER;"}
|
|
1
|
+
{"version":3,"file":"CalendarView.js","sources":["../../../../src/components/Calendar/components/CalendarView.tsx"],"sourcesContent":["import React, { useContext, useRef } from \"react\";\nimport { ICalendarViewProps } from \"../types\";\nimport { CalendarContext } from \"../CalendarContext\";\nimport { CalendarViewContext } from \"../CalendarViewContext\";\nimport { ECalendarViewMode } from \"../enums\";\nimport { CalendarViewDays } from \"./CalendarViewDays\";\nimport { CalendarViewMonths } from \"./CalendarViewMonths\";\nimport { CalendarViewYears } from \"./CalendarViewYears\";\n\n/** Вид календаря. */\nexport const CalendarView: React.FC<ICalendarViewProps> = ({\n dayHtmlAttributes,\n monthHtmlAttributes,\n yearHtmlAttributes,\n ...rest\n}) => {\n const { viewMode } = useContext(CalendarContext);\n const viewItemFocusedRef = useRef(false);\n\n /** Рендер текущего вида календаря. */\n const renderCurrentView = () => {\n switch (viewMode) {\n case ECalendarViewMode.DAYS:\n return <CalendarViewDays dayHtmlAttributes={dayHtmlAttributes} {...rest} />;\n case ECalendarViewMode.MONTHS:\n return <CalendarViewMonths monthHtmlAttributes={monthHtmlAttributes} {...rest} />;\n case ECalendarViewMode.YEARS:\n return <CalendarViewYears yearHtmlAttributes={yearHtmlAttributes} {...rest} />;\n }\n };\n\n return (\n <CalendarViewContext.Provider value={{ viewItemFocusedRef }}>\n {renderCurrentView()}\n </CalendarViewContext.Provider>\n );\n};\n\nCalendarView.displayName = \"CalendarView\";\n"],"names":[],"mappings":";;;;;;;;AAUO,MAAM,eAA6C,CAAC;AAAA,EACvD;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACP,MAAM;AACF,QAAM,EAAE,SAAA,IAAa,WAAW,eAAe;AAC/C,QAAM,qBAAqB,OAAO,KAAK;AAGvC,QAAM,oBAAoB,MAAM;AAC5B,YAAQ,UAAA;AAAA,MACJ,KAAK,kBAAkB;AACnB,eAAO,oBAAC,kBAAA,EAAiB,mBAAuC,GAAG,KAAA,CAAM;AAAA,MAC7E,KAAK,kBAAkB;AACnB,eAAO,oBAAC,oBAAA,EAAmB,qBAA2C,GAAG,KAAA,CAAM;AAAA,MACnF,KAAK,kBAAkB;AACnB,eAAO,oBAAC,mBAAA,EAAkB,oBAAyC,GAAG,KAAA,CAAM;AAAA,IAAA;AAAA,EAExF;AAEA,SACI,oBAAC,oBAAoB,UAApB,EAA6B,OAAO,EAAE,sBAClC,UAAA,kBAAA,GACL;AAER;AAEA,aAAa,cAAc;"}
|
|
@@ -2,13 +2,17 @@ import { jsxs, jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import { useContext, useCallback, useState, useEffect } from "react";
|
|
3
3
|
import moment from "moment";
|
|
4
4
|
import { c as clsx } from "../../../chunks/vendor-CtuAQuEN.js";
|
|
5
|
-
import { isDateOutOfRange, isDayDisabled } from "../utils.js";
|
|
6
|
-
import { WEEKDAYS_SET } from "../../../consts/DateConst.js";
|
|
5
|
+
import { isDateOutOfRange, isDayDisabled, getFirstEnabledDate, getNavigationShift, shiftDate } from "../utils.js";
|
|
6
|
+
import { WEEKDAYS_SET, WEEKS_SET } from "../../../consts/DateConst.js";
|
|
7
7
|
import { CalendarViewContext } from "../CalendarViewContext.js";
|
|
8
|
-
import { s as styles, C as CalendarViewItem } from "../../../chunks/CalendarViewItem-
|
|
9
|
-
import { isKey } from "../../../utils/keyboard.js";
|
|
8
|
+
import { s as styles, C as CalendarViewItem } from "../../../chunks/CalendarViewItem-CeA4XADM.js";
|
|
10
9
|
import { ECalendarDateMarkType, ECalendarViewMode } from "../enums.js";
|
|
11
10
|
import { CalendarContext } from "../CalendarContext.js";
|
|
11
|
+
const NAVIGATION_STEPS = {
|
|
12
|
+
horizontal: { amount: 1, unit: "day" },
|
|
13
|
+
vertical: { amount: 1, unit: "week" },
|
|
14
|
+
page: { amount: 1, unit: "month" }
|
|
15
|
+
};
|
|
12
16
|
const CalendarViewDays = ({ pickedDate, dayHtmlAttributes = {} }) => {
|
|
13
17
|
const { format, periodId, limitRange, viewDate, markedDays, disabledDays, onDateSelect, onPageChange } = useContext(CalendarContext);
|
|
14
18
|
const { viewItemFocusedRef } = useContext(CalendarViewContext);
|
|
@@ -20,15 +24,9 @@ const CalendarViewDays = ({ pickedDate, dayHtmlAttributes = {} }) => {
|
|
|
20
24
|
const getInitialTabbableDate = useCallback(() => {
|
|
21
25
|
if (pickedDate && pickedDate.isSame(viewDate, "month")) {
|
|
22
26
|
return pickedDate;
|
|
23
|
-
} else {
|
|
24
|
-
const date = viewDate.clone().startOf("month");
|
|
25
|
-
for (let i = 0; i < date.daysInMonth(); i++) {
|
|
26
|
-
date.add(i, "day");
|
|
27
|
-
if (!isDisabledDate(date)) {
|
|
28
|
-
return date;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
27
|
}
|
|
28
|
+
const startOfMonth = viewDate.clone().startOf("month");
|
|
29
|
+
return getFirstEnabledDate(startOfMonth, startOfMonth.daysInMonth(), "day", isDisabledDate);
|
|
32
30
|
}, [pickedDate, viewDate, isDisabledDate]);
|
|
33
31
|
const [tabbableDate, setTabbableDate] = useState(getInitialTabbableDate());
|
|
34
32
|
useEffect(() => {
|
|
@@ -49,7 +47,7 @@ const CalendarViewDays = ({ pickedDate, dayHtmlAttributes = {} }) => {
|
|
|
49
47
|
`calendar-table-header-${header}`
|
|
50
48
|
)) }) });
|
|
51
49
|
};
|
|
52
|
-
const renderTableBody = () => /* @__PURE__ */ jsx("tbody", { className: styles.calendarViewDaysBody, children:
|
|
50
|
+
const renderTableBody = () => /* @__PURE__ */ jsx("tbody", { className: styles.calendarViewDaysBody, children: WEEKS_SET.map((row) => /* @__PURE__ */ jsx("tr", { children: WEEKDAYS_SET.map((cell) => renderTableData(row, cell)) }, `calendar-table-row-${row}`)) });
|
|
53
51
|
const renderTableData = (row, cell) => {
|
|
54
52
|
const date = moment(startDate).add(row * 7 + cell, "day");
|
|
55
53
|
const classNames = clsx({ [styles.current]: isCurrentDate(date) });
|
|
@@ -71,7 +69,7 @@ const CalendarViewDays = ({ pickedDate, dayHtmlAttributes = {} }) => {
|
|
|
71
69
|
muted,
|
|
72
70
|
markType,
|
|
73
71
|
onKeyDown: handleItemKeyDown(date),
|
|
74
|
-
onDateSelect
|
|
72
|
+
onDateSelect,
|
|
75
73
|
children: date.date()
|
|
76
74
|
},
|
|
77
75
|
`calendar-table-data-${cell}`
|
|
@@ -100,63 +98,40 @@ const CalendarViewDays = ({ pickedDate, dayHtmlAttributes = {} }) => {
|
|
|
100
98
|
return ECalendarDateMarkType.BASIC;
|
|
101
99
|
}
|
|
102
100
|
} else if (day in markedDays) {
|
|
103
|
-
return markedDays[
|
|
101
|
+
return markedDays[day];
|
|
104
102
|
}
|
|
105
103
|
}
|
|
106
104
|
};
|
|
107
|
-
const getShiftedDate = (currentDate,
|
|
105
|
+
const getShiftedDate = (currentDate, shift) => {
|
|
108
106
|
const day = currentDate.clone();
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
subtract: moment.fn.subtract.bind(day)
|
|
112
|
-
}[operation];
|
|
113
|
-
while (shiftDay(amount, unit)) {
|
|
107
|
+
do {
|
|
108
|
+
shiftDate(day, shift);
|
|
114
109
|
if (isDateOutOfRange(day, limitRange, "day")) {
|
|
115
110
|
return currentDate;
|
|
116
111
|
}
|
|
117
|
-
|
|
118
|
-
break;
|
|
119
|
-
}
|
|
120
|
-
}
|
|
112
|
+
} while (isDisabledDate(day));
|
|
121
113
|
return day;
|
|
122
114
|
};
|
|
123
115
|
const handleItemKeyDown = (date) => (event) => {
|
|
124
|
-
const
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
nextFocusedDate = getShiftedDate(date, "add", 1, "day");
|
|
128
|
-
event.preventDefault();
|
|
129
|
-
} else if (isKey(key, "ARROW_LEFT")) {
|
|
130
|
-
nextFocusedDate = getShiftedDate(date, "subtract", 1, "day");
|
|
131
|
-
event.preventDefault();
|
|
132
|
-
} else if (isKey(key, "ARROW_DOWN")) {
|
|
133
|
-
nextFocusedDate = getShiftedDate(date, "add", 1, "week");
|
|
134
|
-
event.preventDefault();
|
|
135
|
-
} else if (isKey(key, "ARROW_UP")) {
|
|
136
|
-
nextFocusedDate = getShiftedDate(date, "subtract", 1, "week");
|
|
137
|
-
event.preventDefault();
|
|
138
|
-
} else if (isKey(key, "PAGE_DOWN")) {
|
|
139
|
-
nextFocusedDate = getShiftedDate(date, "add", 1, "month");
|
|
140
|
-
event.preventDefault();
|
|
141
|
-
} else if (isKey(key, "PAGE_UP")) {
|
|
142
|
-
nextFocusedDate = getShiftedDate(date, "subtract", 1, "month");
|
|
143
|
-
event.preventDefault();
|
|
144
|
-
}
|
|
145
|
-
if (nextFocusedDate) {
|
|
146
|
-
changeTabbableDate(nextFocusedDate);
|
|
116
|
+
const shift = getNavigationShift(event.code || event.keyCode, NAVIGATION_STEPS);
|
|
117
|
+
if (!shift) {
|
|
118
|
+
return;
|
|
147
119
|
}
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
onDateSelect(date);
|
|
120
|
+
event.preventDefault();
|
|
121
|
+
changeTabbableDate(getShiftedDate(date, shift));
|
|
151
122
|
};
|
|
152
123
|
const changeTabbableDate = (date) => {
|
|
153
124
|
setTabbableDate(date);
|
|
154
125
|
if (date.isBefore(viewDate, "month")) {
|
|
155
|
-
|
|
156
|
-
|
|
126
|
+
onPageChange(
|
|
127
|
+
shiftDate(viewDate.clone(), { operation: "subtract", ...NAVIGATION_STEPS.page }),
|
|
128
|
+
ECalendarViewMode.DAYS
|
|
129
|
+
);
|
|
157
130
|
} else if (date.isAfter(viewDate, "month")) {
|
|
158
|
-
|
|
159
|
-
|
|
131
|
+
onPageChange(
|
|
132
|
+
shiftDate(viewDate.clone(), { operation: "add", ...NAVIGATION_STEPS.page }),
|
|
133
|
+
ECalendarViewMode.DAYS
|
|
134
|
+
);
|
|
160
135
|
}
|
|
161
136
|
};
|
|
162
137
|
return /* @__PURE__ */ jsxs("table", { className: styles.calendarViewDays, role: "grid", "aria-labelledby": periodId, children: [
|
|
@@ -164,6 +139,7 @@ const CalendarViewDays = ({ pickedDate, dayHtmlAttributes = {} }) => {
|
|
|
164
139
|
renderTableBody()
|
|
165
140
|
] });
|
|
166
141
|
};
|
|
142
|
+
CalendarViewDays.displayName = "CalendarViewDays";
|
|
167
143
|
export {
|
|
168
144
|
CalendarViewDays
|
|
169
145
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CalendarViewDays.js","sources":["../../../../src/components/Calendar/components/CalendarViewDays.tsx"],"sourcesContent":["import React, { useState, useEffect, useContext, useCallback } from \"react\";\nimport moment from \"moment\";\nimport clsx from \"clsx\";\nimport { isDateOutOfRange, isDayDisabled } from \"../utils\";\nimport { WEEKDAYS_SET } from \"../../../consts/DateConst\";\nimport { CalendarViewContext } from \"../CalendarViewContext\";\nimport { CalendarViewItem } from \"./CalendarViewItem\";\nimport { isKey } from \"../../../utils/keyboard\";\nimport { ECalendarDateMarkType, ECalendarViewMode } from \"../enums\";\nimport { CalendarContext } from \"../CalendarContext\";\nimport { ICalendarViewProps } from \"../types\";\nimport styles from \"../styles/CalendarView.module.less\";\n\n/** Свойства компонента CalendarViewDays. */\nexport interface ICalendarViewDaysProps extends Omit<\n ICalendarViewProps,\n \"monthHtmlAttributes\" | \"yearHtmlAttributes\"\n> {}\n\n/** Вид календаря с выбором дня. */\nexport const CalendarViewDays: React.FC<ICalendarViewDaysProps> = ({ pickedDate, dayHtmlAttributes = {} }) => {\n const { format, periodId, limitRange, viewDate, markedDays, disabledDays, onDateSelect, onPageChange } =\n useContext(CalendarContext);\n const { viewItemFocusedRef } = useContext(CalendarViewContext);\n const startDate = viewDate.clone().startOf(\"month\").startOf(\"week\");\n\n /** Проверяет, является ли дата отключенной. */\n const isDisabledDate = useCallback(\n (date: moment.Moment) =>\n isDateOutOfRange(date, limitRange, \"day\") || isDayDisabled(date.format(format), disabledDays),\n [limitRange, disabledDays, format],\n );\n\n /** Получить первую доступную для фокуса дату. */\n const getInitialTabbableDate = useCallback(() => {\n if (pickedDate && pickedDate.isSame(viewDate, \"month\")) {\n return pickedDate;\n } else {\n const date = viewDate.clone().startOf(\"month\");\n\n for (let i = 0; i < date.daysInMonth(); i++) {\n date.add(i, \"day\");\n\n if (!isDisabledDate(date)) {\n return date;\n }\n }\n }\n }, [pickedDate, viewDate, isDisabledDate]);\n\n const [tabbableDate, setTabbableDate] = useState(getInitialTabbableDate());\n\n useEffect(() => {\n if (!viewItemFocusedRef.current) {\n setTabbableDate(getInitialTabbableDate());\n }\n }, [viewDate, viewItemFocusedRef, getInitialTabbableDate]);\n\n /** Рендер заголовка таблицы. */\n const renderTableHead = () => {\n const weekdays = moment.weekdays(true);\n const weekdaysMin = moment.weekdaysMin(true);\n\n return (\n <thead>\n <tr>\n {WEEKDAYS_SET.map((header) => (\n <th\n key={`calendar-table-header-${header}`}\n className={styles.calendarViewDaysHeader}\n abbr={weekdays[header]}\n >\n {weekdaysMin[header]}\n </th>\n ))}\n </tr>\n </thead>\n );\n };\n\n /** Рендер тела таблицы. */\n const renderTableBody = () => (\n <tbody className={styles.calendarViewDaysBody}>\n {[0, 1, 2, 3, 4, 5].map((row) => (\n <tr key={`calendar-table-row-${row}`}>\n {[0, 1, 2, 3, 4, 5, 6].map((cell) => renderTableData(row, cell))}\n </tr>\n ))}\n </tbody>\n );\n\n /** Рендер ячейки таблицы. */\n const renderTableData = (row: number, cell: number) => {\n const date = moment(startDate).add(row * 7 + cell, \"day\");\n const classNames = clsx({ [styles.current]: isCurrentDate(date) });\n const active = isActiveDate(date);\n const disabled = isDisabledDate(date);\n const tabbable = !disabled && isTabbableDay(date);\n const muted = isMutedDate(date);\n const markType = getMarkType(date);\n\n return (\n <CalendarViewItem\n key={`calendar-table-data-${cell}`}\n className={classNames}\n {...(typeof dayHtmlAttributes === \"function\"\n ? dayHtmlAttributes({ marked: markType !== undefined })\n : dayHtmlAttributes)}\n date={date}\n unit=\"day\"\n active={active}\n disabled={disabled}\n tabbable={tabbable}\n muted={muted}\n markType={markType}\n onKeyDown={handleItemKeyDown(date)}\n onDateSelect={handleDateSelect}\n >\n {date.date()}\n </CalendarViewItem>\n );\n };\n\n /** Проверяет, может ли дата получить фокус при навигации. */\n const isTabbableDay = (date: moment.Moment) => {\n if (tabbableDate) {\n return date.isSame(tabbableDate, \"day\");\n }\n\n return false;\n };\n\n /** Проверяет, относится ли дата к текущему месяцу. */\n const isMutedDate = (date: moment.Moment) => {\n return !date.isSame(viewDate, \"month\");\n };\n\n /** Проверяет, является ли дата сегодняшней. */\n const isCurrentDate = (date: moment.Moment) => {\n return date.isSame(moment(), \"day\");\n };\n\n /** Проверяет, является ли дата активной. */\n const isActiveDate = (date: moment.Moment) => {\n return !!pickedDate && date.isSame(pickedDate, \"day\");\n };\n\n /** Проверяет, является ли дата отмеченной. */\n const getMarkType = (date: moment.Moment) => {\n if (markedDays) {\n const day = date.format(format);\n\n if (Array.isArray(markedDays)) {\n if (markedDays.includes(day)) {\n return ECalendarDateMarkType.BASIC;\n }\n } else if (day in markedDays) {\n return markedDays[date.format(format)];\n }\n }\n };\n\n /** Возвращает доступную для выбора дату после сдвига. */\n const getShiftedDate = (\n currentDate: moment.Moment,\n operation: \"add\" | \"subtract\",\n amount: number,\n unit: \"day\" | \"week\" | \"month\",\n ) => {\n const day = currentDate.clone();\n const shiftDay = {\n add: moment.fn.add.bind(day),\n subtract: moment.fn.subtract.bind(day),\n }[operation];\n\n while (shiftDay(amount, unit)) {\n // Если вышли за пределы доступного периода – возвращаем текущий день.\n if (isDateOutOfRange(day, limitRange, \"day\")) {\n return currentDate;\n }\n // Если день доступен для выбора – выходим из поиска.\n if (!isDisabledDate(day)) {\n break;\n }\n }\n\n return day;\n };\n\n /** Обработчик нажатия клавиши CalendarViewItem. */\n const handleItemKeyDown = (date: moment.Moment) => (event: React.KeyboardEvent<HTMLTableCellElement>) => {\n const key = event.code || event.keyCode;\n let nextFocusedDate;\n\n if (isKey(key, \"ARROW_RIGHT\")) {\n nextFocusedDate = getShiftedDate(date, \"add\", 1, \"day\");\n event.preventDefault();\n } else if (isKey(key, \"ARROW_LEFT\")) {\n nextFocusedDate = getShiftedDate(date, \"subtract\", 1, \"day\");\n event.preventDefault();\n } else if (isKey(key, \"ARROW_DOWN\")) {\n nextFocusedDate = getShiftedDate(date, \"add\", 1, \"week\");\n event.preventDefault();\n } else if (isKey(key, \"ARROW_UP\")) {\n nextFocusedDate = getShiftedDate(date, \"subtract\", 1, \"week\");\n event.preventDefault();\n } else if (isKey(key, \"PAGE_DOWN\")) {\n nextFocusedDate = getShiftedDate(date, \"add\", 1, \"month\");\n event.preventDefault();\n } else if (isKey(key, \"PAGE_UP\")) {\n nextFocusedDate = getShiftedDate(date, \"subtract\", 1, \"month\");\n event.preventDefault();\n }\n\n if (nextFocusedDate) {\n changeTabbableDate(nextFocusedDate);\n }\n };\n\n /** Обработчик клика по дате. */\n const handleDateSelect = (date: moment.Moment) => {\n onDateSelect(date);\n };\n\n /** Изменение фокусируемой даты. */\n const changeTabbableDate = (date: moment.Moment) => {\n setTabbableDate(date);\n\n if (date.isBefore(viewDate, \"month\")) {\n date = viewDate.clone().subtract(1, \"month\");\n onPageChange(date, ECalendarViewMode.DAYS);\n } else if (date.isAfter(viewDate, \"month\")) {\n date = viewDate.clone().add(1, \"month\");\n onPageChange(date, ECalendarViewMode.DAYS);\n }\n };\n\n return (\n <table className={styles.calendarViewDays} role=\"grid\" aria-labelledby={periodId}>\n {renderTableHead()}\n {renderTableBody()}\n </table>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;AAoBO,MAAM,mBAAqD,CAAC,EAAE,YAAY,oBAAoB,CAAA,QAAS;AAC1G,QAAM,EAAE,QAAQ,UAAU,YAAY,UAAU,YAAY,cAAc,cAAc,iBACpF,WAAW,eAAe;AAC9B,QAAM,EAAE,mBAAA,IAAuB,WAAW,mBAAmB;AAC7D,QAAM,YAAY,SAAS,MAAA,EAAQ,QAAQ,OAAO,EAAE,QAAQ,MAAM;AAGlE,QAAM,iBAAiB;AAAA,IACnB,CAAC,SACG,iBAAiB,MAAM,YAAY,KAAK,KAAK,cAAc,KAAK,OAAO,MAAM,GAAG,YAAY;AAAA,IAChG,CAAC,YAAY,cAAc,MAAM;AAAA,EAAA;AAIrC,QAAM,yBAAyB,YAAY,MAAM;AAC7C,QAAI,cAAc,WAAW,OAAO,UAAU,OAAO,GAAG;AACpD,aAAO;AAAA,IACX,OAAO;AACH,YAAM,OAAO,SAAS,MAAA,EAAQ,QAAQ,OAAO;AAE7C,eAAS,IAAI,GAAG,IAAI,KAAK,YAAA,GAAe,KAAK;AACzC,aAAK,IAAI,GAAG,KAAK;AAEjB,YAAI,CAAC,eAAe,IAAI,GAAG;AACvB,iBAAO;AAAA,QACX;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ,GAAG,CAAC,YAAY,UAAU,cAAc,CAAC;AAEzC,QAAM,CAAC,cAAc,eAAe,IAAI,SAAS,wBAAwB;AAEzE,YAAU,MAAM;AACZ,QAAI,CAAC,mBAAmB,SAAS;AAC7B,sBAAgB,wBAAwB;AAAA,IAC5C;AAAA,EACJ,GAAG,CAAC,UAAU,oBAAoB,sBAAsB,CAAC;AAGzD,QAAM,kBAAkB,MAAM;AAC1B,UAAM,WAAW,OAAO,SAAS,IAAI;AACrC,UAAM,cAAc,OAAO,YAAY,IAAI;AAE3C,+BACK,SAAA,EACG,UAAA,oBAAC,QACI,UAAA,aAAa,IAAI,CAAC,WACf;AAAA,MAAC;AAAA,MAAA;AAAA,QAEG,WAAW,OAAO;AAAA,QAClB,MAAM,SAAS,MAAM;AAAA,QAEpB,sBAAY,MAAM;AAAA,MAAA;AAAA,MAJd,yBAAyB,MAAM;AAAA,IAAA,CAM3C,GACL,EAAA,CACJ;AAAA,EAER;AAGA,QAAM,kBAAkB,MACpB,oBAAC,WAAM,WAAW,OAAO,sBACpB,UAAA,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,QACrB,oBAAC,MAAA,EACI,UAAA,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,gBAAgB,KAAK,IAAI,CAAC,EAAA,GAD1D,sBAAsB,GAAG,EAElC,CACH,GACL;AAIJ,QAAM,kBAAkB,CAAC,KAAa,SAAiB;AACnD,UAAM,OAAO,OAAO,SAAS,EAAE,IAAI,MAAM,IAAI,MAAM,KAAK;AACxD,UAAM,aAAa,KAAK,EAAE,CAAC,OAAO,OAAO,GAAG,cAAc,IAAI,GAAG;AACjE,UAAM,SAAS,aAAa,IAAI;AAChC,UAAM,WAAW,eAAe,IAAI;AACpC,UAAM,WAAW,CAAC,YAAY,cAAc,IAAI;AAChD,UAAM,QAAQ,YAAY,IAAI;AAC9B,UAAM,WAAW,YAAY,IAAI;AAEjC,WACI;AAAA,MAAC;AAAA,MAAA;AAAA,QAEG,WAAW;AAAA,QACV,GAAI,OAAO,sBAAsB,aAC5B,kBAAkB,EAAE,QAAQ,aAAa,OAAA,CAAW,IACpD;AAAA,QACN;AAAA,QACA,MAAK;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,WAAW,kBAAkB,IAAI;AAAA,QACjC,cAAc;AAAA,QAEb,eAAK,KAAA;AAAA,MAAK;AAAA,MAfN,uBAAuB,IAAI;AAAA,IAAA;AAAA,EAkB5C;AAGA,QAAM,gBAAgB,CAAC,SAAwB;AAC3C,QAAI,cAAc;AACd,aAAO,KAAK,OAAO,cAAc,KAAK;AAAA,IAC1C;AAEA,WAAO;AAAA,EACX;AAGA,QAAM,cAAc,CAAC,SAAwB;AACzC,WAAO,CAAC,KAAK,OAAO,UAAU,OAAO;AAAA,EACzC;AAGA,QAAM,gBAAgB,CAAC,SAAwB;AAC3C,WAAO,KAAK,OAAO,OAAA,GAAU,KAAK;AAAA,EACtC;AAGA,QAAM,eAAe,CAAC,SAAwB;AAC1C,WAAO,CAAC,CAAC,cAAc,KAAK,OAAO,YAAY,KAAK;AAAA,EACxD;AAGA,QAAM,cAAc,CAAC,SAAwB;AACzC,QAAI,YAAY;AACZ,YAAM,MAAM,KAAK,OAAO,MAAM;AAE9B,UAAI,MAAM,QAAQ,UAAU,GAAG;AAC3B,YAAI,WAAW,SAAS,GAAG,GAAG;AAC1B,iBAAO,sBAAsB;AAAA,QACjC;AAAA,MACJ,WAAW,OAAO,YAAY;AAC1B,eAAO,WAAW,KAAK,OAAO,MAAM,CAAC;AAAA,MACzC;AAAA,IACJ;AAAA,EACJ;AAGA,QAAM,iBAAiB,CACnB,aACA,WACA,QACA,SACC;AACD,UAAM,MAAM,YAAY,MAAA;AACxB,UAAM,WAAW;AAAA,MACb,KAAK,OAAO,GAAG,IAAI,KAAK,GAAG;AAAA,MAC3B,UAAU,OAAO,GAAG,SAAS,KAAK,GAAG;AAAA,IAAA,EACvC,SAAS;AAEX,WAAO,SAAS,QAAQ,IAAI,GAAG;AAE3B,UAAI,iBAAiB,KAAK,YAAY,KAAK,GAAG;AAC1C,eAAO;AAAA,MACX;AAEA,UAAI,CAAC,eAAe,GAAG,GAAG;AACtB;AAAA,MACJ;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AAGA,QAAM,oBAAoB,CAAC,SAAwB,CAAC,UAAqD;AACrG,UAAM,MAAM,MAAM,QAAQ,MAAM;AAChC,QAAI;AAEJ,QAAI,MAAM,KAAK,aAAa,GAAG;AAC3B,wBAAkB,eAAe,MAAM,OAAO,GAAG,KAAK;AACtD,YAAM,eAAA;AAAA,IACV,WAAW,MAAM,KAAK,YAAY,GAAG;AACjC,wBAAkB,eAAe,MAAM,YAAY,GAAG,KAAK;AAC3D,YAAM,eAAA;AAAA,IACV,WAAW,MAAM,KAAK,YAAY,GAAG;AACjC,wBAAkB,eAAe,MAAM,OAAO,GAAG,MAAM;AACvD,YAAM,eAAA;AAAA,IACV,WAAW,MAAM,KAAK,UAAU,GAAG;AAC/B,wBAAkB,eAAe,MAAM,YAAY,GAAG,MAAM;AAC5D,YAAM,eAAA;AAAA,IACV,WAAW,MAAM,KAAK,WAAW,GAAG;AAChC,wBAAkB,eAAe,MAAM,OAAO,GAAG,OAAO;AACxD,YAAM,eAAA;AAAA,IACV,WAAW,MAAM,KAAK,SAAS,GAAG;AAC9B,wBAAkB,eAAe,MAAM,YAAY,GAAG,OAAO;AAC7D,YAAM,eAAA;AAAA,IACV;AAEA,QAAI,iBAAiB;AACjB,yBAAmB,eAAe;AAAA,IACtC;AAAA,EACJ;AAGA,QAAM,mBAAmB,CAAC,SAAwB;AAC9C,iBAAa,IAAI;AAAA,EACrB;AAGA,QAAM,qBAAqB,CAAC,SAAwB;AAChD,oBAAgB,IAAI;AAEpB,QAAI,KAAK,SAAS,UAAU,OAAO,GAAG;AAClC,aAAO,SAAS,MAAA,EAAQ,SAAS,GAAG,OAAO;AAC3C,mBAAa,MAAM,kBAAkB,IAAI;AAAA,IAC7C,WAAW,KAAK,QAAQ,UAAU,OAAO,GAAG;AACxC,aAAO,SAAS,MAAA,EAAQ,IAAI,GAAG,OAAO;AACtC,mBAAa,MAAM,kBAAkB,IAAI;AAAA,IAC7C;AAAA,EACJ;AAEA,SACI,qBAAC,WAAM,WAAW,OAAO,kBAAkB,MAAK,QAAO,mBAAiB,UACnE,UAAA;AAAA,IAAA,gBAAA;AAAA,IACA,gBAAA;AAAA,EAAgB,GACrB;AAER;"}
|
|
1
|
+
{"version":3,"file":"CalendarViewDays.js","sources":["../../../../src/components/Calendar/components/CalendarViewDays.tsx"],"sourcesContent":["import React, { useState, useEffect, useContext, useCallback } from \"react\";\nimport moment from \"moment\";\nimport clsx from \"clsx\";\nimport {\n ICalendarNavigationShift,\n ICalendarNavigationSteps,\n getFirstEnabledDate,\n getNavigationShift,\n isDateOutOfRange,\n isDayDisabled,\n shiftDate,\n} from \"../utils\";\nimport { WEEKDAYS_SET, WEEKS_SET } from \"../../../consts/DateConst\";\nimport { CalendarViewContext } from \"../CalendarViewContext\";\nimport { CalendarViewItem } from \"./CalendarViewItem\";\nimport { ECalendarDateMarkType, ECalendarViewMode } from \"../enums\";\nimport { CalendarContext } from \"../CalendarContext\";\nimport { ICalendarViewProps } from \"../types\";\nimport styles from \"../styles/CalendarView.module.less\";\n\n/** Свойства компонента CalendarViewDays. */\nexport interface ICalendarViewDaysProps extends Omit<\n ICalendarViewProps,\n \"monthHtmlAttributes\" | \"yearHtmlAttributes\"\n> {}\n\n/** Величины сдвига даты при клавиатурной навигации по сетке дней. */\nconst NAVIGATION_STEPS: ICalendarNavigationSteps = {\n horizontal: { amount: 1, unit: \"day\" },\n vertical: { amount: 1, unit: \"week\" },\n page: { amount: 1, unit: \"month\" },\n};\n\n/** Вид календаря с выбором дня. */\nexport const CalendarViewDays: React.FC<ICalendarViewDaysProps> = ({ pickedDate, dayHtmlAttributes = {} }) => {\n const { format, periodId, limitRange, viewDate, markedDays, disabledDays, onDateSelect, onPageChange } =\n useContext(CalendarContext);\n const { viewItemFocusedRef } = useContext(CalendarViewContext);\n const startDate = viewDate.clone().startOf(\"month\").startOf(\"week\");\n\n /** Проверяет, является ли дата отключенной. */\n const isDisabledDate = useCallback(\n (date: moment.Moment) =>\n isDateOutOfRange(date, limitRange, \"day\") || isDayDisabled(date.format(format), disabledDays),\n [limitRange, disabledDays, format],\n );\n\n /** Получить первую доступную для фокуса дату. */\n const getInitialTabbableDate = useCallback(() => {\n if (pickedDate && pickedDate.isSame(viewDate, \"month\")) {\n return pickedDate;\n }\n\n const startOfMonth = viewDate.clone().startOf(\"month\");\n\n return getFirstEnabledDate(startOfMonth, startOfMonth.daysInMonth(), \"day\", isDisabledDate);\n }, [pickedDate, viewDate, isDisabledDate]);\n\n const [tabbableDate, setTabbableDate] = useState(getInitialTabbableDate());\n\n useEffect(() => {\n if (!viewItemFocusedRef.current) {\n setTabbableDate(getInitialTabbableDate());\n }\n }, [viewDate, viewItemFocusedRef, getInitialTabbableDate]);\n\n /** Рендер заголовка таблицы. */\n const renderTableHead = () => {\n const weekdays = moment.weekdays(true);\n const weekdaysMin = moment.weekdaysMin(true);\n\n return (\n <thead>\n <tr>\n {WEEKDAYS_SET.map((header) => (\n <th\n key={`calendar-table-header-${header}`}\n className={styles.calendarViewDaysHeader}\n abbr={weekdays[header]}\n >\n {weekdaysMin[header]}\n </th>\n ))}\n </tr>\n </thead>\n );\n };\n\n /** Рендер тела таблицы. */\n const renderTableBody = () => (\n <tbody className={styles.calendarViewDaysBody}>\n {WEEKS_SET.map((row) => (\n <tr key={`calendar-table-row-${row}`}>{WEEKDAYS_SET.map((cell) => renderTableData(row, cell))}</tr>\n ))}\n </tbody>\n );\n\n /** Рендер ячейки таблицы. */\n const renderTableData = (row: number, cell: number) => {\n const date = moment(startDate).add(row * 7 + cell, \"day\");\n const classNames = clsx({ [styles.current]: isCurrentDate(date) });\n const active = isActiveDate(date);\n const disabled = isDisabledDate(date);\n const tabbable = !disabled && isTabbableDay(date);\n const muted = isMutedDate(date);\n const markType = getMarkType(date);\n\n return (\n <CalendarViewItem\n key={`calendar-table-data-${cell}`}\n className={classNames}\n {...(typeof dayHtmlAttributes === \"function\"\n ? dayHtmlAttributes({ marked: markType !== undefined })\n : dayHtmlAttributes)}\n date={date}\n unit=\"day\"\n active={active}\n disabled={disabled}\n tabbable={tabbable}\n muted={muted}\n markType={markType}\n onKeyDown={handleItemKeyDown(date)}\n onDateSelect={onDateSelect}\n >\n {date.date()}\n </CalendarViewItem>\n );\n };\n\n /** Проверяет, может ли дата получить фокус при навигации. */\n const isTabbableDay = (date: moment.Moment) => {\n if (tabbableDate) {\n return date.isSame(tabbableDate, \"day\");\n }\n\n return false;\n };\n\n /** Проверяет, относится ли дата к текущему месяцу. */\n const isMutedDate = (date: moment.Moment) => {\n return !date.isSame(viewDate, \"month\");\n };\n\n /** Проверяет, является ли дата сегодняшней. */\n const isCurrentDate = (date: moment.Moment) => {\n return date.isSame(moment(), \"day\");\n };\n\n /** Проверяет, является ли дата активной. */\n const isActiveDate = (date: moment.Moment) => {\n return !!pickedDate && date.isSame(pickedDate, \"day\");\n };\n\n /** Проверяет, является ли дата отмеченной. */\n const getMarkType = (date: moment.Moment) => {\n if (markedDays) {\n const day = date.format(format);\n\n if (Array.isArray(markedDays)) {\n if (markedDays.includes(day)) {\n return ECalendarDateMarkType.BASIC;\n }\n } else if (day in markedDays) {\n return markedDays[day];\n }\n }\n };\n\n /** Возвращает доступную для выбора дату после сдвига. Недоступные дни пропускаются. */\n const getShiftedDate = (currentDate: moment.Moment, shift: ICalendarNavigationShift) => {\n const day = currentDate.clone();\n\n do {\n shiftDate(day, shift);\n\n // Если вышли за пределы доступного периода – возвращаем текущий день.\n if (isDateOutOfRange(day, limitRange, \"day\")) {\n return currentDate;\n }\n // Если день недоступен для выбора – продолжаем поиск в том же направлении.\n } while (isDisabledDate(day));\n\n return day;\n };\n\n /** Обработчик нажатия клавиши CalendarViewItem. */\n const handleItemKeyDown = (date: moment.Moment) => (event: React.KeyboardEvent<HTMLTableCellElement>) => {\n const shift = getNavigationShift(event.code || event.keyCode, NAVIGATION_STEPS);\n\n if (!shift) {\n return;\n }\n\n event.preventDefault();\n changeTabbableDate(getShiftedDate(date, shift));\n };\n\n /** Изменение фокусируемой даты. При уходе даты за пределы страницы перелистывает страницу на шаг NAVIGATION_STEPS.page. */\n const changeTabbableDate = (date: moment.Moment) => {\n setTabbableDate(date);\n\n if (date.isBefore(viewDate, \"month\")) {\n onPageChange(\n shiftDate(viewDate.clone(), { operation: \"subtract\", ...NAVIGATION_STEPS.page }),\n ECalendarViewMode.DAYS,\n );\n } else if (date.isAfter(viewDate, \"month\")) {\n onPageChange(\n shiftDate(viewDate.clone(), { operation: \"add\", ...NAVIGATION_STEPS.page }),\n ECalendarViewMode.DAYS,\n );\n }\n };\n\n return (\n <table className={styles.calendarViewDays} role=\"grid\" aria-labelledby={periodId}>\n {renderTableHead()}\n {renderTableBody()}\n </table>\n );\n};\n\nCalendarViewDays.displayName = \"CalendarViewDays\";\n"],"names":[],"mappings":";;;;;;;;;;AA2BA,MAAM,mBAA6C;AAAA,EAC/C,YAAY,EAAE,QAAQ,GAAG,MAAM,MAAA;AAAA,EAC/B,UAAU,EAAE,QAAQ,GAAG,MAAM,OAAA;AAAA,EAC7B,MAAM,EAAE,QAAQ,GAAG,MAAM,QAAA;AAC7B;AAGO,MAAM,mBAAqD,CAAC,EAAE,YAAY,oBAAoB,CAAA,QAAS;AAC1G,QAAM,EAAE,QAAQ,UAAU,YAAY,UAAU,YAAY,cAAc,cAAc,iBACpF,WAAW,eAAe;AAC9B,QAAM,EAAE,mBAAA,IAAuB,WAAW,mBAAmB;AAC7D,QAAM,YAAY,SAAS,MAAA,EAAQ,QAAQ,OAAO,EAAE,QAAQ,MAAM;AAGlE,QAAM,iBAAiB;AAAA,IACnB,CAAC,SACG,iBAAiB,MAAM,YAAY,KAAK,KAAK,cAAc,KAAK,OAAO,MAAM,GAAG,YAAY;AAAA,IAChG,CAAC,YAAY,cAAc,MAAM;AAAA,EAAA;AAIrC,QAAM,yBAAyB,YAAY,MAAM;AAC7C,QAAI,cAAc,WAAW,OAAO,UAAU,OAAO,GAAG;AACpD,aAAO;AAAA,IACX;AAEA,UAAM,eAAe,SAAS,MAAA,EAAQ,QAAQ,OAAO;AAErD,WAAO,oBAAoB,cAAc,aAAa,YAAA,GAAe,OAAO,cAAc;AAAA,EAC9F,GAAG,CAAC,YAAY,UAAU,cAAc,CAAC;AAEzC,QAAM,CAAC,cAAc,eAAe,IAAI,SAAS,wBAAwB;AAEzE,YAAU,MAAM;AACZ,QAAI,CAAC,mBAAmB,SAAS;AAC7B,sBAAgB,wBAAwB;AAAA,IAC5C;AAAA,EACJ,GAAG,CAAC,UAAU,oBAAoB,sBAAsB,CAAC;AAGzD,QAAM,kBAAkB,MAAM;AAC1B,UAAM,WAAW,OAAO,SAAS,IAAI;AACrC,UAAM,cAAc,OAAO,YAAY,IAAI;AAE3C,+BACK,SAAA,EACG,UAAA,oBAAC,QACI,UAAA,aAAa,IAAI,CAAC,WACf;AAAA,MAAC;AAAA,MAAA;AAAA,QAEG,WAAW,OAAO;AAAA,QAClB,MAAM,SAAS,MAAM;AAAA,QAEpB,sBAAY,MAAM;AAAA,MAAA;AAAA,MAJd,yBAAyB,MAAM;AAAA,IAAA,CAM3C,GACL,EAAA,CACJ;AAAA,EAER;AAGA,QAAM,kBAAkB,MACpB,oBAAC,SAAA,EAAM,WAAW,OAAO,sBACpB,UAAA,UAAU,IAAI,CAAC,QACZ,oBAAC,MAAA,EAAsC,uBAAa,IAAI,CAAC,SAAS,gBAAgB,KAAK,IAAI,CAAC,EAAA,GAAnF,sBAAsB,GAAG,EAA4D,CACjG,EAAA,CACL;AAIJ,QAAM,kBAAkB,CAAC,KAAa,SAAiB;AACnD,UAAM,OAAO,OAAO,SAAS,EAAE,IAAI,MAAM,IAAI,MAAM,KAAK;AACxD,UAAM,aAAa,KAAK,EAAE,CAAC,OAAO,OAAO,GAAG,cAAc,IAAI,GAAG;AACjE,UAAM,SAAS,aAAa,IAAI;AAChC,UAAM,WAAW,eAAe,IAAI;AACpC,UAAM,WAAW,CAAC,YAAY,cAAc,IAAI;AAChD,UAAM,QAAQ,YAAY,IAAI;AAC9B,UAAM,WAAW,YAAY,IAAI;AAEjC,WACI;AAAA,MAAC;AAAA,MAAA;AAAA,QAEG,WAAW;AAAA,QACV,GAAI,OAAO,sBAAsB,aAC5B,kBAAkB,EAAE,QAAQ,aAAa,OAAA,CAAW,IACpD;AAAA,QACN;AAAA,QACA,MAAK;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,WAAW,kBAAkB,IAAI;AAAA,QACjC;AAAA,QAEC,eAAK,KAAA;AAAA,MAAK;AAAA,MAfN,uBAAuB,IAAI;AAAA,IAAA;AAAA,EAkB5C;AAGA,QAAM,gBAAgB,CAAC,SAAwB;AAC3C,QAAI,cAAc;AACd,aAAO,KAAK,OAAO,cAAc,KAAK;AAAA,IAC1C;AAEA,WAAO;AAAA,EACX;AAGA,QAAM,cAAc,CAAC,SAAwB;AACzC,WAAO,CAAC,KAAK,OAAO,UAAU,OAAO;AAAA,EACzC;AAGA,QAAM,gBAAgB,CAAC,SAAwB;AAC3C,WAAO,KAAK,OAAO,OAAA,GAAU,KAAK;AAAA,EACtC;AAGA,QAAM,eAAe,CAAC,SAAwB;AAC1C,WAAO,CAAC,CAAC,cAAc,KAAK,OAAO,YAAY,KAAK;AAAA,EACxD;AAGA,QAAM,cAAc,CAAC,SAAwB;AACzC,QAAI,YAAY;AACZ,YAAM,MAAM,KAAK,OAAO,MAAM;AAE9B,UAAI,MAAM,QAAQ,UAAU,GAAG;AAC3B,YAAI,WAAW,SAAS,GAAG,GAAG;AAC1B,iBAAO,sBAAsB;AAAA,QACjC;AAAA,MACJ,WAAW,OAAO,YAAY;AAC1B,eAAO,WAAW,GAAG;AAAA,MACzB;AAAA,IACJ;AAAA,EACJ;AAGA,QAAM,iBAAiB,CAAC,aAA4B,UAAoC;AACpF,UAAM,MAAM,YAAY,MAAA;AAExB,OAAG;AACC,gBAAU,KAAK,KAAK;AAGpB,UAAI,iBAAiB,KAAK,YAAY,KAAK,GAAG;AAC1C,eAAO;AAAA,MACX;AAAA,IAEJ,SAAS,eAAe,GAAG;AAE3B,WAAO;AAAA,EACX;AAGA,QAAM,oBAAoB,CAAC,SAAwB,CAAC,UAAqD;AACrG,UAAM,QAAQ,mBAAmB,MAAM,QAAQ,MAAM,SAAS,gBAAgB;AAE9E,QAAI,CAAC,OAAO;AACR;AAAA,IACJ;AAEA,UAAM,eAAA;AACN,uBAAmB,eAAe,MAAM,KAAK,CAAC;AAAA,EAClD;AAGA,QAAM,qBAAqB,CAAC,SAAwB;AAChD,oBAAgB,IAAI;AAEpB,QAAI,KAAK,SAAS,UAAU,OAAO,GAAG;AAClC;AAAA,QACI,UAAU,SAAS,SAAS,EAAE,WAAW,YAAY,GAAG,iBAAiB,MAAM;AAAA,QAC/E,kBAAkB;AAAA,MAAA;AAAA,IAE1B,WAAW,KAAK,QAAQ,UAAU,OAAO,GAAG;AACxC;AAAA,QACI,UAAU,SAAS,SAAS,EAAE,WAAW,OAAO,GAAG,iBAAiB,MAAM;AAAA,QAC1E,kBAAkB;AAAA,MAAA;AAAA,IAE1B;AAAA,EACJ;AAEA,SACI,qBAAC,WAAM,WAAW,OAAO,kBAAkB,MAAK,QAAO,mBAAiB,UACnE,UAAA;AAAA,IAAA,gBAAA;AAAA,IACA,gBAAA;AAAA,EAAgB,GACrB;AAER;AAEA,iBAAiB,cAAc;"}
|
|
@@ -4,7 +4,7 @@ import "../../../chunks/vendor-CtuAQuEN.js";
|
|
|
4
4
|
import "../enums.js";
|
|
5
5
|
import "../CalendarViewContext.js";
|
|
6
6
|
import "../../../utils/keyboard.js";
|
|
7
|
-
import { C } from "../../../chunks/CalendarViewItem-
|
|
7
|
+
import { C } from "../../../chunks/CalendarViewItem-CeA4XADM.js";
|
|
8
8
|
export {
|
|
9
9
|
C as CalendarViewItem
|
|
10
10
|
};
|
|
@@ -3,10 +3,14 @@ import { useContext, useCallback, useState, useEffect } from "react";
|
|
|
3
3
|
import moment from "moment";
|
|
4
4
|
import { CalendarContext } from "../CalendarContext.js";
|
|
5
5
|
import { CalendarViewContext } from "../CalendarViewContext.js";
|
|
6
|
-
import { isDateOutOfRange } from "../utils.js";
|
|
7
|
-
import { s as styles, C as CalendarViewItem } from "../../../chunks/CalendarViewItem-
|
|
8
|
-
import { isKey } from "../../../utils/keyboard.js";
|
|
6
|
+
import { isDateOutOfRange, getFirstEnabledDate, VIEW_GRID_ROWS, VIEW_GRID_COLUMNS, getNavigationShift, shiftDate, getShiftedDateInRange } from "../utils.js";
|
|
7
|
+
import { s as styles, C as CalendarViewItem } from "../../../chunks/CalendarViewItem-CeA4XADM.js";
|
|
9
8
|
import { ECalendarPickType, ECalendarViewMode } from "../enums.js";
|
|
9
|
+
const NAVIGATION_STEPS = {
|
|
10
|
+
horizontal: { amount: 1, unit: "month" },
|
|
11
|
+
vertical: { amount: 3, unit: "month" },
|
|
12
|
+
page: { amount: 1, unit: "year" }
|
|
13
|
+
};
|
|
10
14
|
const CalendarViewMonths = ({ pickedDate, monthHtmlAttributes = {} }) => {
|
|
11
15
|
const { pickType, periodId, limitRange, viewDate, onDateSelect, onPageChange, onViewChange } = useContext(CalendarContext);
|
|
12
16
|
const { viewItemFocusedRef } = useContext(CalendarViewContext);
|
|
@@ -18,15 +22,13 @@ const CalendarViewMonths = ({ pickedDate, monthHtmlAttributes = {} }) => {
|
|
|
18
22
|
const getInitialTabbableDate = useCallback(() => {
|
|
19
23
|
if (pickedDate && pickedDate.isSame(viewDate, "year")) {
|
|
20
24
|
return pickedDate;
|
|
21
|
-
} else {
|
|
22
|
-
const date = viewDate.clone().startOf("year");
|
|
23
|
-
for (let i = 0; i < 12; i++) {
|
|
24
|
-
date.add(i, "month");
|
|
25
|
-
if (!isDisabledDate(date)) {
|
|
26
|
-
return date;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
25
|
}
|
|
26
|
+
return getFirstEnabledDate(
|
|
27
|
+
viewDate.clone().startOf("year"),
|
|
28
|
+
VIEW_GRID_ROWS.length * VIEW_GRID_COLUMNS.length,
|
|
29
|
+
"month",
|
|
30
|
+
isDisabledDate
|
|
31
|
+
);
|
|
30
32
|
}, [pickedDate, viewDate, isDisabledDate]);
|
|
31
33
|
const [tabbableDate, setTabbableDate] = useState(getInitialTabbableDate());
|
|
32
34
|
useEffect(() => {
|
|
@@ -34,9 +36,9 @@ const CalendarViewMonths = ({ pickedDate, monthHtmlAttributes = {} }) => {
|
|
|
34
36
|
setTabbableDate(getInitialTabbableDate());
|
|
35
37
|
}
|
|
36
38
|
}, [viewDate, viewItemFocusedRef, getInitialTabbableDate]);
|
|
37
|
-
const renderTableBody = () => /* @__PURE__ */ jsx("tbody", { children:
|
|
39
|
+
const renderTableBody = () => /* @__PURE__ */ jsx("tbody", { children: VIEW_GRID_ROWS.map((row) => /* @__PURE__ */ jsx("tr", { children: VIEW_GRID_COLUMNS.map((cell) => renderTableData(row, cell)) }, `calendar-view-months-row-${row}`)) });
|
|
38
40
|
const renderTableData = (row, cell) => {
|
|
39
|
-
const month = row *
|
|
41
|
+
const month = row * VIEW_GRID_COLUMNS.length + cell;
|
|
40
42
|
const date = viewDate.clone().startOf("month").month(month);
|
|
41
43
|
const active = isActiveDate(date);
|
|
42
44
|
const disabled = isDisabledDate(date);
|
|
@@ -70,43 +72,14 @@ const CalendarViewMonths = ({ pickedDate, monthHtmlAttributes = {} }) => {
|
|
|
70
72
|
return false;
|
|
71
73
|
};
|
|
72
74
|
const handleItemKeyDown = (date) => (event) => {
|
|
73
|
-
const
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
nextFocusedDate = getShiftedDate(date, "add", 1, "month");
|
|
77
|
-
event.preventDefault();
|
|
78
|
-
} else if (isKey(key, "ARROW_LEFT")) {
|
|
79
|
-
nextFocusedDate = getShiftedDate(date, "subtract", 1, "month");
|
|
80
|
-
event.preventDefault();
|
|
81
|
-
} else if (isKey(key, "ARROW_DOWN")) {
|
|
82
|
-
nextFocusedDate = getShiftedDate(date, "add", 3, "month");
|
|
83
|
-
event.preventDefault();
|
|
84
|
-
} else if (isKey(key, "ARROW_UP")) {
|
|
85
|
-
nextFocusedDate = getShiftedDate(date, "subtract", 3, "month");
|
|
86
|
-
event.preventDefault();
|
|
87
|
-
} else if (isKey(key, "PAGE_DOWN")) {
|
|
88
|
-
nextFocusedDate = getShiftedDate(date, "add", 1, "year");
|
|
89
|
-
event.preventDefault();
|
|
90
|
-
} else if (isKey(key, "PAGE_UP")) {
|
|
91
|
-
nextFocusedDate = getShiftedDate(date, "subtract", 1, "year");
|
|
92
|
-
event.preventDefault();
|
|
93
|
-
}
|
|
94
|
-
if (nextFocusedDate) {
|
|
95
|
-
changeTabbableDate(nextFocusedDate);
|
|
96
|
-
}
|
|
97
|
-
};
|
|
98
|
-
const getShiftedDate = (currentDate, operation, amount, unit) => {
|
|
99
|
-
const date = currentDate.clone();
|
|
100
|
-
const shiftDate = {
|
|
101
|
-
add: moment.fn.add.bind(date),
|
|
102
|
-
subtract: moment.fn.subtract.bind(date)
|
|
103
|
-
}[operation];
|
|
104
|
-
shiftDate(amount, unit);
|
|
105
|
-
if (isDateOutOfRange(date, limitRange, "month")) {
|
|
106
|
-
return currentDate;
|
|
75
|
+
const shift = getNavigationShift(event.code || event.keyCode, NAVIGATION_STEPS);
|
|
76
|
+
if (!shift) {
|
|
77
|
+
return;
|
|
107
78
|
}
|
|
108
|
-
|
|
79
|
+
event.preventDefault();
|
|
80
|
+
changeTabbableDate(getShiftedDate(date, shift));
|
|
109
81
|
};
|
|
82
|
+
const getShiftedDate = (currentDate, shift) => getShiftedDateInRange(currentDate, shift, limitRange, "month");
|
|
110
83
|
const handleDateSelect = (date) => {
|
|
111
84
|
if (pickType === ECalendarPickType.MONTH_YEAR) {
|
|
112
85
|
onDateSelect(date);
|
|
@@ -117,15 +90,20 @@ const CalendarViewMonths = ({ pickedDate, monthHtmlAttributes = {} }) => {
|
|
|
117
90
|
const changeTabbableDate = (date) => {
|
|
118
91
|
setTabbableDate(date);
|
|
119
92
|
if (date.isBefore(viewDate, "year")) {
|
|
120
|
-
|
|
121
|
-
|
|
93
|
+
onPageChange(
|
|
94
|
+
shiftDate(viewDate.clone(), { operation: "subtract", ...NAVIGATION_STEPS.page }),
|
|
95
|
+
ECalendarViewMode.MONTHS
|
|
96
|
+
);
|
|
122
97
|
} else if (date.isAfter(viewDate, "year")) {
|
|
123
|
-
|
|
124
|
-
|
|
98
|
+
onPageChange(
|
|
99
|
+
shiftDate(viewDate.clone(), { operation: "add", ...NAVIGATION_STEPS.page }),
|
|
100
|
+
ECalendarViewMode.MONTHS
|
|
101
|
+
);
|
|
125
102
|
}
|
|
126
103
|
};
|
|
127
104
|
return /* @__PURE__ */ jsx("table", { className: styles.calendarViewMonths, role: "grid", "aria-labelledby": periodId, children: renderTableBody() });
|
|
128
105
|
};
|
|
106
|
+
CalendarViewMonths.displayName = "CalendarViewMonths";
|
|
129
107
|
export {
|
|
130
108
|
CalendarViewMonths
|
|
131
109
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CalendarViewMonths.js","sources":["../../../../src/components/Calendar/components/CalendarViewMonths.tsx"],"sourcesContent":["import React, { useState, useEffect, useContext, useCallback } from \"react\";\nimport moment from \"moment\";\nimport { CalendarContext } from \"../CalendarContext\";\nimport { CalendarViewContext } from \"../CalendarViewContext\";\nimport { isDateOutOfRange } from \"../utils\";\nimport { CalendarViewItem } from \"./CalendarViewItem\";\nimport { isKey } from \"../../../utils/keyboard\";\nimport { ECalendarPickType, ECalendarViewMode } from \"../enums\";\nimport { ICalendarViewProps } from \"../types\";\nimport styles from \"../styles/CalendarView.module.less\";\n\n/** Свойства компонента CalendarViewMonths. */\nexport interface ICalendarViewMonthsProps extends Omit<\n ICalendarViewProps,\n \"dayHtmlAttributes\" | \"yearHtmlAttributes\"\n> {}\n\n/** Вид календаря с выбором месяца. */\nexport const CalendarViewMonths: React.FC<ICalendarViewMonthsProps> = ({ pickedDate, monthHtmlAttributes = {} }) => {\n const { pickType, periodId, limitRange, viewDate, onDateSelect, onPageChange, onViewChange } =\n useContext(CalendarContext);\n const { viewItemFocusedRef } = useContext(CalendarViewContext);\n const monthsShort = moment.monthsShort();\n\n /** Проверяет, является ли дата отключенной. */\n const isDisabledDate = useCallback(\n (date: moment.Moment) => isDateOutOfRange(date, limitRange, \"month\"),\n [limitRange],\n );\n\n /** Получить первую доступную для фокуса дату. */\n const getInitialTabbableDate = useCallback(() => {\n if (pickedDate && pickedDate.isSame(viewDate, \"year\")) {\n return pickedDate;\n } else {\n const date = viewDate.clone().startOf(\"year\");\n\n for (let i = 0; i < 12; i++) {\n date.add(i, \"month\");\n\n if (!isDisabledDate(date)) {\n return date;\n }\n }\n }\n }, [pickedDate, viewDate, isDisabledDate]);\n\n const [tabbableDate, setTabbableDate] = useState(getInitialTabbableDate());\n\n useEffect(() => {\n if (!viewItemFocusedRef.current) {\n setTabbableDate(getInitialTabbableDate());\n }\n }, [viewDate, viewItemFocusedRef, getInitialTabbableDate]);\n\n /** Рендер тела таблицы. */\n const renderTableBody = () => (\n <tbody>\n {[0, 1, 2, 3].map((row) => (\n <tr key={`calendar-view-months-row-${row}`}>{[0, 1, 2].map((cell) => renderTableData(row, cell))}</tr>\n ))}\n </tbody>\n );\n\n /** Рендер ячейки таблицы. */\n const renderTableData = (row: number, cell: number) => {\n const month = row * 3 + cell;\n const date = viewDate.clone().startOf(\"month\").month(month);\n const active = isActiveDate(date);\n const disabled = isDisabledDate(date);\n const tabbable = !disabled && isTabbableDate(date);\n\n return (\n <CalendarViewItem\n key={`calendar-table-data-${cell}`}\n {...monthHtmlAttributes}\n date={date}\n unit=\"month\"\n active={active}\n disabled={disabled}\n tabbable={tabbable}\n onKeyDown={handleItemKeyDown(date)}\n onDateSelect={handleDateSelect}\n >\n {monthsShort[month]}\n </CalendarViewItem>\n );\n };\n\n /** Проверяет, является ли дата активной. */\n const isActiveDate = (date: moment.Moment) => {\n if (pickedDate == null) {\n return false;\n }\n\n return pickedDate.isSame(date, \"month\");\n };\n\n /** Проверяет, может ли дата получить фокус при навигации. */\n const isTabbableDate = (date: moment.Moment) => {\n if (tabbableDate) {\n return date.isSame(tabbableDate, \"month\");\n }\n\n return false;\n };\n\n /** Обработчик нажатия клавиши CalendarViewItem. */\n const handleItemKeyDown = (date: moment.Moment) => (event: React.KeyboardEvent<HTMLTableCellElement>) => {\n const key = event.code || event.keyCode;\n let nextFocusedDate;\n\n if (isKey(key, \"ARROW_RIGHT\")) {\n nextFocusedDate = getShiftedDate(date, \"add\", 1, \"month\");\n event.preventDefault();\n } else if (isKey(key, \"ARROW_LEFT\")) {\n nextFocusedDate = getShiftedDate(date, \"subtract\", 1, \"month\");\n event.preventDefault();\n } else if (isKey(key, \"ARROW_DOWN\")) {\n nextFocusedDate = getShiftedDate(date, \"add\", 3, \"month\");\n event.preventDefault();\n } else if (isKey(key, \"ARROW_UP\")) {\n nextFocusedDate = getShiftedDate(date, \"subtract\", 3, \"month\");\n event.preventDefault();\n } else if (isKey(key, \"PAGE_DOWN\")) {\n nextFocusedDate = getShiftedDate(date, \"add\", 1, \"year\");\n event.preventDefault();\n } else if (isKey(key, \"PAGE_UP\")) {\n nextFocusedDate = getShiftedDate(date, \"subtract\", 1, \"year\");\n event.preventDefault();\n }\n\n if (nextFocusedDate) {\n changeTabbableDate(nextFocusedDate);\n }\n };\n\n /** Возвращает доступную для выбора дату после сдвига. */\n const getShiftedDate = (\n currentDate: moment.Moment,\n operation: \"add\" | \"subtract\",\n amount: number,\n unit: \"month\" | \"year\",\n ) => {\n const date = currentDate.clone();\n const shiftDate = {\n add: moment.fn.add.bind(date),\n subtract: moment.fn.subtract.bind(date),\n }[operation];\n\n shiftDate(amount, unit);\n\n if (isDateOutOfRange(date, limitRange, \"month\")) {\n return currentDate;\n }\n\n return date;\n };\n\n /** Обработчик выбора даты. */\n const handleDateSelect = (date: moment.Moment) => {\n if (pickType === ECalendarPickType.MONTH_YEAR) {\n onDateSelect(date);\n } else {\n onViewChange(date, ECalendarViewMode.DAYS);\n }\n };\n\n /** Изменение фокусируемой даты. */\n const changeTabbableDate = (date: moment.Moment) => {\n setTabbableDate(date);\n\n if (date.isBefore(viewDate, \"year\")) {\n date = viewDate.clone().subtract(1, \"year\");\n onPageChange(date, ECalendarViewMode.MONTHS);\n } else if (date.isAfter(viewDate, \"year\")) {\n date = viewDate.clone().add(1, \"year\");\n onPageChange(date, ECalendarViewMode.MONTHS);\n }\n };\n\n return (\n <table className={styles.calendarViewMonths} role=\"grid\" aria-labelledby={periodId}>\n {renderTableBody()}\n </table>\n );\n};\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CalendarViewMonths.js","sources":["../../../../src/components/Calendar/components/CalendarViewMonths.tsx"],"sourcesContent":["import React, { useState, useEffect, useContext, useCallback } from \"react\";\nimport moment from \"moment\";\nimport { CalendarContext } from \"../CalendarContext\";\nimport { CalendarViewContext } from \"../CalendarViewContext\";\nimport {\n ICalendarNavigationShift,\n ICalendarNavigationSteps,\n getFirstEnabledDate,\n getNavigationShift,\n getShiftedDateInRange,\n isDateOutOfRange,\n shiftDate,\n VIEW_GRID_COLUMNS,\n VIEW_GRID_ROWS,\n} from \"../utils\";\nimport { CalendarViewItem } from \"./CalendarViewItem\";\nimport { ECalendarPickType, ECalendarViewMode } from \"../enums\";\nimport { ICalendarViewProps } from \"../types\";\nimport styles from \"../styles/CalendarView.module.less\";\n\n/** Свойства компонента CalendarViewMonths. */\nexport interface ICalendarViewMonthsProps extends Omit<\n ICalendarViewProps,\n \"dayHtmlAttributes\" | \"yearHtmlAttributes\"\n> {}\n\n/** Величины сдвига даты при клавиатурной навигации по сетке месяцев. */\nconst NAVIGATION_STEPS: ICalendarNavigationSteps = {\n horizontal: { amount: 1, unit: \"month\" },\n vertical: { amount: 3, unit: \"month\" },\n page: { amount: 1, unit: \"year\" },\n};\n\n/** Вид календаря с выбором месяца. */\nexport const CalendarViewMonths: React.FC<ICalendarViewMonthsProps> = ({ pickedDate, monthHtmlAttributes = {} }) => {\n const { pickType, periodId, limitRange, viewDate, onDateSelect, onPageChange, onViewChange } =\n useContext(CalendarContext);\n const { viewItemFocusedRef } = useContext(CalendarViewContext);\n const monthsShort = moment.monthsShort();\n\n /** Проверяет, является ли дата отключенной. */\n const isDisabledDate = useCallback(\n (date: moment.Moment) => isDateOutOfRange(date, limitRange, \"month\"),\n [limitRange],\n );\n\n /** Получить первую доступную для фокуса дату. */\n const getInitialTabbableDate = useCallback(() => {\n if (pickedDate && pickedDate.isSame(viewDate, \"year\")) {\n return pickedDate;\n }\n\n return getFirstEnabledDate(\n viewDate.clone().startOf(\"year\"),\n VIEW_GRID_ROWS.length * VIEW_GRID_COLUMNS.length,\n \"month\",\n isDisabledDate,\n );\n }, [pickedDate, viewDate, isDisabledDate]);\n\n const [tabbableDate, setTabbableDate] = useState(getInitialTabbableDate());\n\n useEffect(() => {\n if (!viewItemFocusedRef.current) {\n setTabbableDate(getInitialTabbableDate());\n }\n }, [viewDate, viewItemFocusedRef, getInitialTabbableDate]);\n\n /** Рендер тела таблицы. */\n const renderTableBody = () => (\n <tbody>\n {VIEW_GRID_ROWS.map((row) => (\n <tr key={`calendar-view-months-row-${row}`}>\n {VIEW_GRID_COLUMNS.map((cell) => renderTableData(row, cell))}\n </tr>\n ))}\n </tbody>\n );\n\n /** Рендер ячейки таблицы. */\n const renderTableData = (row: number, cell: number) => {\n const month = row * VIEW_GRID_COLUMNS.length + cell;\n const date = viewDate.clone().startOf(\"month\").month(month);\n const active = isActiveDate(date);\n const disabled = isDisabledDate(date);\n const tabbable = !disabled && isTabbableDate(date);\n\n return (\n <CalendarViewItem\n key={`calendar-table-data-${cell}`}\n {...monthHtmlAttributes}\n date={date}\n unit=\"month\"\n active={active}\n disabled={disabled}\n tabbable={tabbable}\n onKeyDown={handleItemKeyDown(date)}\n onDateSelect={handleDateSelect}\n >\n {monthsShort[month]}\n </CalendarViewItem>\n );\n };\n\n /** Проверяет, является ли дата активной. */\n const isActiveDate = (date: moment.Moment) => {\n if (pickedDate == null) {\n return false;\n }\n\n return pickedDate.isSame(date, \"month\");\n };\n\n /** Проверяет, может ли дата получить фокус при навигации. */\n const isTabbableDate = (date: moment.Moment) => {\n if (tabbableDate) {\n return date.isSame(tabbableDate, \"month\");\n }\n\n return false;\n };\n\n /** Обработчик нажатия клавиши CalendarViewItem. */\n const handleItemKeyDown = (date: moment.Moment) => (event: React.KeyboardEvent<HTMLTableCellElement>) => {\n const shift = getNavigationShift(event.code || event.keyCode, NAVIGATION_STEPS);\n\n if (!shift) {\n return;\n }\n\n event.preventDefault();\n changeTabbableDate(getShiftedDate(date, shift));\n };\n\n /** Возвращает доступную для выбора дату после сдвига. */\n const getShiftedDate = (currentDate: moment.Moment, shift: ICalendarNavigationShift) =>\n getShiftedDateInRange(currentDate, shift, limitRange, \"month\");\n\n /** Обработчик выбора даты. */\n const handleDateSelect = (date: moment.Moment) => {\n if (pickType === ECalendarPickType.MONTH_YEAR) {\n onDateSelect(date);\n } else {\n onViewChange(date, ECalendarViewMode.DAYS);\n }\n };\n\n /** Изменение фокусируемой даты. При уходе даты за пределы страницы перелистывает страницу на шаг NAVIGATION_STEPS.page. */\n const changeTabbableDate = (date: moment.Moment) => {\n setTabbableDate(date);\n\n if (date.isBefore(viewDate, \"year\")) {\n onPageChange(\n shiftDate(viewDate.clone(), { operation: \"subtract\", ...NAVIGATION_STEPS.page }),\n ECalendarViewMode.MONTHS,\n );\n } else if (date.isAfter(viewDate, \"year\")) {\n onPageChange(\n shiftDate(viewDate.clone(), { operation: \"add\", ...NAVIGATION_STEPS.page }),\n ECalendarViewMode.MONTHS,\n );\n }\n };\n\n return (\n <table className={styles.calendarViewMonths} role=\"grid\" aria-labelledby={periodId}>\n {renderTableBody()}\n </table>\n );\n};\n\nCalendarViewMonths.displayName = \"CalendarViewMonths\";\n"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useContext, useCallback, useState, useEffect } from "react";
|
|
3
|
-
import moment from "moment";
|
|
4
3
|
import { CalendarContext } from "../CalendarContext.js";
|
|
5
4
|
import { CalendarViewContext } from "../CalendarViewContext.js";
|
|
6
|
-
import { isDateOutOfRange } from "../utils.js";
|
|
7
|
-
import { s as styles, C as CalendarViewItem } from "../../../chunks/CalendarViewItem-
|
|
8
|
-
import { isKey } from "../../../utils/keyboard.js";
|
|
5
|
+
import { isDateOutOfRange, getFirstEnabledDate, VIEW_GRID_ROWS, VIEW_GRID_COLUMNS, getNavigationShift, shiftDate, getShiftedDateInRange } from "../utils.js";
|
|
6
|
+
import { s as styles, C as CalendarViewItem } from "../../../chunks/CalendarViewItem-CeA4XADM.js";
|
|
9
7
|
import { ECalendarViewMode } from "../enums.js";
|
|
8
|
+
const YEARS_BEFORE_VIEW_DATE = 5;
|
|
9
|
+
const YEARS_AFTER_VIEW_DATE = 6;
|
|
10
|
+
const NAVIGATION_STEPS = {
|
|
11
|
+
horizontal: { amount: 1, unit: "year" },
|
|
12
|
+
vertical: { amount: 3, unit: "year" },
|
|
13
|
+
page: { amount: 12, unit: "year" }
|
|
14
|
+
};
|
|
10
15
|
const CalendarViewYears = ({ pickedDate, yearHtmlAttributes = {} }) => {
|
|
11
16
|
const { periodId, limitRange, viewDate, onPageChange, onViewChange } = useContext(CalendarContext);
|
|
12
17
|
const { viewItemFocusedRef } = useContext(CalendarViewContext);
|
|
@@ -18,15 +23,13 @@ const CalendarViewYears = ({ pickedDate, yearHtmlAttributes = {} }) => {
|
|
|
18
23
|
const getInitialTabbableDate = useCallback(() => {
|
|
19
24
|
if (pickedDate && pickedDate.isSame(viewDate, "year")) {
|
|
20
25
|
return pickedDate;
|
|
21
|
-
} else {
|
|
22
|
-
const date = viewDate.clone().subtract(5, "year");
|
|
23
|
-
for (let i = 0; i < 12; i++) {
|
|
24
|
-
date.add(i, "month");
|
|
25
|
-
if (!isDisabledDate(date)) {
|
|
26
|
-
return date;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
26
|
}
|
|
27
|
+
return getFirstEnabledDate(
|
|
28
|
+
viewDate.clone().subtract(YEARS_BEFORE_VIEW_DATE, "year"),
|
|
29
|
+
VIEW_GRID_ROWS.length * VIEW_GRID_COLUMNS.length,
|
|
30
|
+
"year",
|
|
31
|
+
isDisabledDate
|
|
32
|
+
);
|
|
30
33
|
}, [pickedDate, viewDate, isDisabledDate]);
|
|
31
34
|
const [tabbableDate, setTabbableDate] = useState(getInitialTabbableDate());
|
|
32
35
|
useEffect(() => {
|
|
@@ -34,9 +37,9 @@ const CalendarViewYears = ({ pickedDate, yearHtmlAttributes = {} }) => {
|
|
|
34
37
|
setTabbableDate(getInitialTabbableDate());
|
|
35
38
|
}
|
|
36
39
|
}, [viewDate, viewItemFocusedRef, getInitialTabbableDate]);
|
|
37
|
-
const renderTableBody = () => /* @__PURE__ */ jsx("tbody", { children:
|
|
40
|
+
const renderTableBody = () => /* @__PURE__ */ jsx("tbody", { children: VIEW_GRID_ROWS.map((row) => /* @__PURE__ */ jsx("tr", { children: VIEW_GRID_COLUMNS.map((cell) => renderTableData(row, cell)) }, `calendar-view-years-row-${row}`)) });
|
|
38
41
|
const renderTableData = (row, cell) => {
|
|
39
|
-
const year = currentYear + row *
|
|
42
|
+
const year = currentYear + row * VIEW_GRID_COLUMNS.length + cell - YEARS_BEFORE_VIEW_DATE;
|
|
40
43
|
const date = viewDate.clone().startOf("year").year(year);
|
|
41
44
|
const active = isActiveDate(date);
|
|
42
45
|
const disabled = isDisabledDate(date);
|
|
@@ -70,58 +73,34 @@ const CalendarViewYears = ({ pickedDate, yearHtmlAttributes = {} }) => {
|
|
|
70
73
|
return false;
|
|
71
74
|
};
|
|
72
75
|
const handleItemKeyDown = (date) => (event) => {
|
|
73
|
-
const
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
nextFocusedDate = getShiftedDate(date, "add", 1, "year");
|
|
77
|
-
event.preventDefault();
|
|
78
|
-
} else if (isKey(key, "ARROW_LEFT")) {
|
|
79
|
-
nextFocusedDate = getShiftedDate(date, "subtract", 1, "year");
|
|
80
|
-
event.preventDefault();
|
|
81
|
-
} else if (isKey(key, "ARROW_DOWN")) {
|
|
82
|
-
nextFocusedDate = getShiftedDate(date, "add", 3, "year");
|
|
83
|
-
event.preventDefault();
|
|
84
|
-
} else if (isKey(key, "ARROW_UP")) {
|
|
85
|
-
nextFocusedDate = getShiftedDate(date, "subtract", 3, "year");
|
|
86
|
-
event.preventDefault();
|
|
87
|
-
} else if (isKey(key, "PAGE_DOWN")) {
|
|
88
|
-
nextFocusedDate = getShiftedDate(date, "add", 12, "year");
|
|
89
|
-
event.preventDefault();
|
|
90
|
-
} else if (isKey(key, "PAGE_UP")) {
|
|
91
|
-
nextFocusedDate = getShiftedDate(date, "subtract", 12, "year");
|
|
92
|
-
event.preventDefault();
|
|
93
|
-
}
|
|
94
|
-
if (nextFocusedDate) {
|
|
95
|
-
changeFocusedDate(nextFocusedDate);
|
|
96
|
-
}
|
|
97
|
-
};
|
|
98
|
-
const getShiftedDate = (currentDate, operation, amount, unit) => {
|
|
99
|
-
const date = currentDate.clone();
|
|
100
|
-
const shiftDate = {
|
|
101
|
-
add: moment.fn.add.bind(date),
|
|
102
|
-
subtract: moment.fn.subtract.bind(date)
|
|
103
|
-
}[operation];
|
|
104
|
-
shiftDate(amount, unit);
|
|
105
|
-
if (isDateOutOfRange(date, limitRange, "year")) {
|
|
106
|
-
return currentDate;
|
|
76
|
+
const shift = getNavigationShift(event.code || event.keyCode, NAVIGATION_STEPS);
|
|
77
|
+
if (!shift) {
|
|
78
|
+
return;
|
|
107
79
|
}
|
|
108
|
-
|
|
80
|
+
event.preventDefault();
|
|
81
|
+
changeFocusedDate(getShiftedDate(date, shift));
|
|
109
82
|
};
|
|
83
|
+
const getShiftedDate = (currentDate, shift) => getShiftedDateInRange(currentDate, shift, limitRange, "year");
|
|
110
84
|
const handleDateSelect = (date) => {
|
|
111
85
|
onViewChange(date, ECalendarViewMode.MONTHS);
|
|
112
86
|
};
|
|
113
87
|
const changeFocusedDate = (date) => {
|
|
114
88
|
setTabbableDate(date);
|
|
115
|
-
if (date.year()
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
89
|
+
if (date.year() < viewDate.year() - YEARS_BEFORE_VIEW_DATE) {
|
|
90
|
+
onPageChange(
|
|
91
|
+
shiftDate(viewDate.clone(), { operation: "subtract", ...NAVIGATION_STEPS.page }),
|
|
92
|
+
ECalendarViewMode.YEARS
|
|
93
|
+
);
|
|
94
|
+
} else if (date.year() > viewDate.year() + YEARS_AFTER_VIEW_DATE) {
|
|
95
|
+
onPageChange(
|
|
96
|
+
shiftDate(viewDate.clone(), { operation: "add", ...NAVIGATION_STEPS.page }),
|
|
97
|
+
ECalendarViewMode.YEARS
|
|
98
|
+
);
|
|
121
99
|
}
|
|
122
100
|
};
|
|
123
101
|
return /* @__PURE__ */ jsx("table", { className: styles.calendarViewYears, role: "grid", "aria-labelledby": periodId, children: renderTableBody() });
|
|
124
102
|
};
|
|
103
|
+
CalendarViewYears.displayName = "CalendarViewYears";
|
|
125
104
|
export {
|
|
126
105
|
CalendarViewYears
|
|
127
106
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CalendarViewYears.js","sources":["../../../../src/components/Calendar/components/CalendarViewYears.tsx"],"sourcesContent":["import React, { useState, useEffect, useContext, useCallback } from \"react\";\nimport moment from \"moment\";\nimport { CalendarContext } from \"../CalendarContext\";\nimport { CalendarViewContext } from \"../CalendarViewContext\";\nimport {
|
|
1
|
+
{"version":3,"file":"CalendarViewYears.js","sources":["../../../../src/components/Calendar/components/CalendarViewYears.tsx"],"sourcesContent":["import React, { useState, useEffect, useContext, useCallback } from \"react\";\nimport moment from \"moment\";\nimport { CalendarContext } from \"../CalendarContext\";\nimport { CalendarViewContext } from \"../CalendarViewContext\";\nimport {\n ICalendarNavigationShift,\n ICalendarNavigationSteps,\n getFirstEnabledDate,\n getNavigationShift,\n getShiftedDateInRange,\n isDateOutOfRange,\n shiftDate,\n VIEW_GRID_COLUMNS,\n VIEW_GRID_ROWS,\n} from \"../utils\";\nimport { CalendarViewItem } from \"./CalendarViewItem\";\nimport { ECalendarViewMode } from \"../enums\";\nimport { ICalendarViewProps } from \"../types\";\nimport styles from \"../styles/CalendarView.module.less\";\n\n/** Свойства компонента CalendarViewYears. */\nexport interface ICalendarViewYearsProps extends Omit<\n ICalendarViewProps,\n \"dayHtmlAttributes\" | \"monthHtmlAttributes\"\n> {}\n\n/** Количество лет до отображаемого года, попадающих на страницу. */\nconst YEARS_BEFORE_VIEW_DATE = 5;\n\n/** Количество лет после отображаемого года, попадающих на страницу. */\nconst YEARS_AFTER_VIEW_DATE = 6;\n\n/** Величины сдвига даты при клавиатурной навигации по сетке годов. */\nconst NAVIGATION_STEPS: ICalendarNavigationSteps = {\n horizontal: { amount: 1, unit: \"year\" },\n vertical: { amount: 3, unit: \"year\" },\n page: { amount: 12, unit: \"year\" },\n};\n\n/** Вид календаря с выбором года. */\nexport const CalendarViewYears: React.FC<ICalendarViewYearsProps> = ({ pickedDate, yearHtmlAttributes = {} }) => {\n const { periodId, limitRange, viewDate, onPageChange, onViewChange } = useContext(CalendarContext);\n const { viewItemFocusedRef } = useContext(CalendarViewContext);\n const currentYear = viewDate.year();\n\n /** Проверяет, является ли дата отключенной. */\n const isDisabledDate = useCallback(\n (date: moment.Moment) => isDateOutOfRange(date, limitRange, \"year\"),\n [limitRange],\n );\n\n /** Получить первую доступную для фокуса дату. */\n const getInitialTabbableDate = useCallback(() => {\n if (pickedDate && pickedDate.isSame(viewDate, \"year\")) {\n return pickedDate;\n }\n\n return getFirstEnabledDate(\n viewDate.clone().subtract(YEARS_BEFORE_VIEW_DATE, \"year\"),\n VIEW_GRID_ROWS.length * VIEW_GRID_COLUMNS.length,\n \"year\",\n isDisabledDate,\n );\n }, [pickedDate, viewDate, isDisabledDate]);\n\n const [tabbableDate, setTabbableDate] = useState(getInitialTabbableDate());\n\n useEffect(() => {\n if (!viewItemFocusedRef.current) {\n setTabbableDate(getInitialTabbableDate());\n }\n }, [viewDate, viewItemFocusedRef, getInitialTabbableDate]);\n\n /** Рендер тела таблицы. */\n const renderTableBody = () => (\n <tbody>\n {VIEW_GRID_ROWS.map((row) => (\n <tr key={`calendar-view-years-row-${row}`}>\n {VIEW_GRID_COLUMNS.map((cell) => renderTableData(row, cell))}\n </tr>\n ))}\n </tbody>\n );\n\n /** Рендер ячейки таблицы. */\n const renderTableData = (row: number, cell: number) => {\n const year = currentYear + row * VIEW_GRID_COLUMNS.length + cell - YEARS_BEFORE_VIEW_DATE;\n const date = viewDate.clone().startOf(\"year\").year(year);\n const active = isActiveDate(date);\n const disabled = isDisabledDate(date);\n const tabbable = !disabled && isTabbableDate(date);\n\n return (\n <CalendarViewItem\n key={`calendar-table-data-${cell}`}\n {...yearHtmlAttributes}\n date={date}\n unit=\"year\"\n active={active}\n disabled={disabled}\n tabbable={tabbable}\n onKeyDown={handleItemKeyDown(date)}\n onDateSelect={handleDateSelect}\n >\n {year}\n </CalendarViewItem>\n );\n };\n\n /** Проверяет, является ли дата активной. */\n const isActiveDate = (date: moment.Moment) => {\n if (pickedDate == null) {\n return false;\n }\n\n return pickedDate.isSame(date, \"year\");\n };\n\n /** Проверяет, может ли дата получить фокус при навигации. */\n const isTabbableDate = (date: moment.Moment) => {\n if (tabbableDate) {\n return date.isSame(tabbableDate, \"year\");\n }\n\n return false;\n };\n\n /** Обработчик нажатия клавиши CalendarViewItem. */\n const handleItemKeyDown = (date: moment.Moment) => (event: React.KeyboardEvent<HTMLTableCellElement>) => {\n const shift = getNavigationShift(event.code || event.keyCode, NAVIGATION_STEPS);\n\n if (!shift) {\n return;\n }\n\n event.preventDefault();\n changeFocusedDate(getShiftedDate(date, shift));\n };\n\n /** Возвращает доступную для выбора дату после сдвига. */\n const getShiftedDate = (currentDate: moment.Moment, shift: ICalendarNavigationShift) =>\n getShiftedDateInRange(currentDate, shift, limitRange, \"year\");\n\n /** Обработчик выбора даты. */\n const handleDateSelect = (date: moment.Moment) => {\n onViewChange(date, ECalendarViewMode.MONTHS);\n };\n\n /** Изменение фокусируемой даты. При уходе даты за пределы страницы перелистывает страницу на шаг NAVIGATION_STEPS.page. */\n const changeFocusedDate = (date: moment.Moment) => {\n setTabbableDate(date);\n\n if (date.year() < viewDate.year() - YEARS_BEFORE_VIEW_DATE) {\n onPageChange(\n shiftDate(viewDate.clone(), { operation: \"subtract\", ...NAVIGATION_STEPS.page }),\n ECalendarViewMode.YEARS,\n );\n } else if (date.year() > viewDate.year() + YEARS_AFTER_VIEW_DATE) {\n onPageChange(\n shiftDate(viewDate.clone(), { operation: \"add\", ...NAVIGATION_STEPS.page }),\n ECalendarViewMode.YEARS,\n );\n }\n };\n\n return (\n <table className={styles.calendarViewYears} role=\"grid\" aria-labelledby={periodId}>\n {renderTableBody()}\n </table>\n );\n};\n\nCalendarViewYears.displayName = \"CalendarViewYears\";\n"],"names":[],"mappings":"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"}
|