@skbkontur/react-ui 0.0.0-95a1dbe516 → 0.0.0-9ab4f802f3
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/CHANGELOG.md +120 -0
- package/README.md +41 -13
- package/cjs/components/Autocomplete/Autocomplete.js +12 -6
- package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
- package/cjs/components/Autocomplete/Autocomplete.md +76 -3
- package/cjs/components/Autocomplete/Autocomplete.styles.d.ts +1 -0
- package/cjs/components/Autocomplete/Autocomplete.styles.js +7 -1
- package/cjs/components/Autocomplete/Autocomplete.styles.js.map +1 -1
- package/cjs/components/Button/Button.js +2 -2
- package/cjs/components/Button/Button.js.map +1 -1
- package/cjs/components/Button/Button.md +38 -11
- package/cjs/components/Calendar/Calendar.d.ts +28 -5
- package/cjs/components/Calendar/Calendar.js +80 -36
- package/cjs/components/Calendar/Calendar.js.map +1 -1
- package/cjs/components/Calendar/Calendar.md +82 -1
- package/cjs/components/Calendar/Calendar.styles.js +1 -1
- package/cjs/components/Calendar/Calendar.styles.js.map +1 -1
- package/cjs/components/Calendar/CalendarContext.d.ts +12 -0
- package/cjs/components/Calendar/CalendarContext.js +16 -0
- package/cjs/components/Calendar/CalendarContext.js.map +1 -0
- package/cjs/components/Calendar/CalendarDateShape.d.ts +4 -2
- package/cjs/components/Calendar/CalendarDateShape.js +13 -3
- package/cjs/components/Calendar/CalendarDateShape.js.map +1 -1
- package/cjs/components/Calendar/CalendarDay.d.ts +12 -0
- package/cjs/components/Calendar/CalendarDay.js +79 -0
- package/cjs/components/Calendar/CalendarDay.js.map +1 -0
- package/cjs/components/Calendar/CalendarDay.md +70 -0
- package/cjs/components/Calendar/CalendarUtils.d.ts +2 -1
- package/cjs/components/Calendar/CalendarUtils.js +4 -6
- package/cjs/components/Calendar/CalendarUtils.js.map +1 -1
- package/cjs/components/Calendar/DayCellView.d.ts +4 -12
- package/cjs/components/Calendar/DayCellView.js +20 -42
- package/cjs/components/Calendar/DayCellView.js.map +1 -1
- package/cjs/components/Calendar/DayCellView.styles.d.ts +2 -5
- package/cjs/components/Calendar/DayCellView.styles.js +37 -43
- package/cjs/components/Calendar/DayCellView.styles.js.map +1 -1
- package/cjs/components/Calendar/Month.d.ts +0 -10
- package/cjs/components/Calendar/Month.js +36 -88
- package/cjs/components/Calendar/Month.js.map +1 -1
- package/cjs/components/Calendar/MonthView.d.ts +3 -2
- package/cjs/components/Calendar/MonthView.js +47 -37
- package/cjs/components/Calendar/MonthView.js.map +1 -1
- package/cjs/components/Calendar/MonthView.styles.d.ts +3 -0
- package/cjs/components/Calendar/MonthView.styles.js +45 -7
- package/cjs/components/Calendar/MonthView.styles.js.map +1 -1
- package/cjs/components/Calendar/MonthViewModel.js +24 -6
- package/cjs/components/Calendar/MonthViewModel.js.map +1 -1
- package/cjs/components/Calendar/config.js +12 -6
- package/cjs/components/Calendar/config.js.map +1 -1
- package/cjs/components/Calendar/index.d.ts +1 -0
- package/cjs/components/Calendar/index.js +2 -1
- package/cjs/components/Calendar/index.js.map +1 -1
- package/cjs/components/Checkbox/Checkbox.js +1 -1
- package/cjs/components/Checkbox/Checkbox.js.map +1 -1
- package/cjs/components/DateInput/DateFragmentsView.js +1 -1
- package/cjs/components/DateInput/DateFragmentsView.js.map +1 -1
- package/cjs/components/DateInput/DateInput.js +1 -1
- package/cjs/components/DateInput/DateInput.js.map +1 -1
- package/cjs/components/DatePicker/DatePicker.d.ts +4 -1
- package/cjs/components/DatePicker/DatePicker.js +72 -45
- package/cjs/components/DatePicker/DatePicker.js.map +1 -1
- package/cjs/components/DatePicker/DatePicker.md +29 -1
- package/cjs/components/DatePicker/DatePickerHelpers.js +2 -1
- package/cjs/components/DatePicker/DatePickerHelpers.js.map +1 -1
- package/cjs/components/DatePicker/MobilePicker.d.ts +10 -0
- package/cjs/components/DatePicker/MobilePicker.js +118 -0
- package/cjs/components/DatePicker/MobilePicker.js.map +1 -0
- package/cjs/components/DatePicker/MobilePicker.styles.d.ts +3 -0
- package/cjs/components/DatePicker/MobilePicker.styles.js +8 -0
- package/cjs/components/DatePicker/MobilePicker.styles.js.map +1 -0
- package/cjs/components/DatePicker/Picker.js +1 -1
- package/cjs/components/DatePicker/Picker.js.map +1 -1
- package/cjs/components/DatePicker/getMobilePickerTheme.d.ts +2 -0
- package/cjs/components/DatePicker/getMobilePickerTheme.js +19 -0
- package/cjs/components/DatePicker/getMobilePickerTheme.js.map +1 -0
- package/cjs/components/Dropdown/Dropdown.js +1 -1
- package/cjs/components/Dropdown/Dropdown.js.map +1 -1
- package/cjs/components/DropdownMenu/DropdownMenu.js +1 -1
- package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
- package/cjs/components/DropdownMenu/DropdownMenu.md +39 -0
- package/cjs/components/FileUploader/FileUploader.d.ts +2 -0
- package/cjs/components/FileUploader/FileUploader.js +32 -9
- package/cjs/components/FileUploader/FileUploader.js.map +1 -1
- package/cjs/components/FileUploader/FileUploader.md +29 -0
- package/cjs/components/FxInput/FxInput.js +1 -1
- package/cjs/components/FxInput/FxInput.js.map +1 -1
- package/cjs/components/Group/Group.js +1 -1
- package/cjs/components/Group/Group.js.map +1 -1
- package/cjs/components/Hint/Hint.d.ts +4 -3
- package/cjs/components/Hint/Hint.js +9 -8
- package/cjs/components/Hint/Hint.js.map +1 -1
- package/cjs/components/Input/Input.js +1 -1
- package/cjs/components/Input/Input.js.map +1 -1
- package/cjs/components/Input/Input.styles.d.ts +1 -1
- package/cjs/components/Input/Input.styles.js +3 -2
- package/cjs/components/Input/Input.styles.js.map +1 -1
- package/cjs/components/Input/InputLayout/InputLayout.styles.d.ts +1 -1
- package/cjs/components/Input/InputLayout/InputLayout.styles.js +3 -2
- package/cjs/components/Input/InputLayout/InputLayout.styles.js.map +1 -1
- package/cjs/components/Input/InputLayout/InputLayoutAsideIcon.js +1 -1
- package/cjs/components/Input/InputLayout/InputLayoutAsideIcon.js.map +1 -1
- package/cjs/components/Kebab/Kebab.js +6 -1
- package/cjs/components/Kebab/Kebab.js.map +1 -1
- package/cjs/components/Link/Link.js +3 -2
- package/cjs/components/Link/Link.js.map +1 -1
- package/cjs/components/Loader/Loader.js +1 -1
- package/cjs/components/Loader/Loader.js.map +1 -1
- package/cjs/components/MenuItem/MenuItem.js +2 -2
- package/cjs/components/MenuItem/MenuItem.js.map +1 -1
- package/cjs/components/MiniModal/MiniModal.js +1 -1
- package/cjs/components/MiniModal/MiniModal.js.map +1 -1
- package/cjs/components/Modal/Modal.js +1 -1
- package/cjs/components/Modal/Modal.js.map +1 -1
- package/cjs/components/Modal/ModalBody.js +1 -1
- package/cjs/components/Modal/ModalBody.js.map +1 -1
- package/cjs/components/Paging/Paging.js +8 -3
- package/cjs/components/Paging/Paging.js.map +1 -1
- package/cjs/components/PasswordInput/PasswordInput.js +1 -1
- package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
- package/cjs/components/Radio/Radio.js +1 -1
- package/cjs/components/Radio/Radio.js.map +1 -1
- package/cjs/components/RadioGroup/RadioGroup.js +10 -1
- package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
- package/cjs/components/ScrollContainer/ScrollBar.js +1 -1
- package/cjs/components/ScrollContainer/ScrollBar.js.map +1 -1
- package/cjs/components/ScrollContainer/ScrollContainer.d.ts +1 -0
- package/cjs/components/ScrollContainer/ScrollContainer.js +6 -0
- package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
- package/cjs/components/Select/Select.js +6 -3
- package/cjs/components/Select/Select.js.map +1 -1
- package/cjs/components/SidePage/SidePage.js +1 -1
- package/cjs/components/SidePage/SidePage.js.map +1 -1
- package/cjs/components/SidePage/SidePageBody.js +1 -1
- package/cjs/components/SidePage/SidePageBody.js.map +1 -1
- package/cjs/components/SidePage/SidePageContainer.js +1 -1
- package/cjs/components/SidePage/SidePageContainer.js.map +1 -1
- package/cjs/components/SidePage/SidePageFooter.js +1 -1
- package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
- package/cjs/components/SidePage/SidePageHeader.js +1 -1
- package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
- package/cjs/components/Spinner/Spinner.js +1 -1
- package/cjs/components/Spinner/Spinner.js.map +1 -1
- package/cjs/components/Switcher/Switcher.js +1 -1
- package/cjs/components/Switcher/Switcher.js.map +1 -1
- package/cjs/components/Tabs/Indicator.js +1 -1
- package/cjs/components/Tabs/Indicator.js.map +1 -1
- package/cjs/components/Tabs/Tab.js +2 -2
- package/cjs/components/Tabs/Tab.js.map +1 -1
- package/cjs/components/Tabs/Tabs.js +1 -1
- package/cjs/components/Tabs/Tabs.js.map +1 -1
- package/cjs/components/Textarea/Textarea.js +1 -1
- package/cjs/components/Textarea/Textarea.js.map +1 -1
- package/cjs/components/Toast/Toast.js +1 -1
- package/cjs/components/Toast/Toast.js.map +1 -1
- package/cjs/components/Toast/ToastView.js +1 -1
- package/cjs/components/Toast/ToastView.js.map +1 -1
- package/cjs/components/Toggle/Toggle.js +1 -1
- package/cjs/components/Toggle/Toggle.js.map +1 -1
- package/cjs/components/Token/Token.js +2 -1
- package/cjs/components/Token/Token.js.map +1 -1
- package/cjs/components/TokenInput/TokenInput.js +1 -1
- package/cjs/components/TokenInput/TokenInput.js.map +1 -1
- package/cjs/components/TokenInput/TokenInputMenu.js +2 -2
- package/cjs/components/TokenInput/TokenInputMenu.js.map +1 -1
- package/cjs/components/Tooltip/Tooltip.d.ts +10 -5
- package/cjs/components/Tooltip/Tooltip.js +59 -20
- package/cjs/components/Tooltip/Tooltip.js.map +1 -1
- package/cjs/components/TooltipMenu/TooltipMenu.js +4 -4
- package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
- package/cjs/hooks/useDrop.d.ts +1 -1
- package/cjs/hooks/useDrop.js.map +1 -1
- package/cjs/index.d.ts +2 -0
- package/cjs/index.js +2 -0
- package/cjs/index.js.map +1 -1
- package/cjs/internal/CommonWrapper/CommonWrapper.js +2 -2
- package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
- package/cjs/internal/CommonWrapper/{extractCommonProps.d.ts → utils/extractCommonProps.d.ts} +2 -2
- package/cjs/internal/CommonWrapper/utils/extractCommonProps.js.map +1 -0
- package/cjs/internal/CommonWrapper/{getCommonVisualStateDataAttributes.js → utils/getCommonVisualStateDataAttributes.js} +3 -4
- package/cjs/internal/CommonWrapper/utils/getCommonVisualStateDataAttributes.js.map +1 -0
- package/cjs/internal/CommonWrapper/{getVisualStateDataAttributes.d.ts → utils/getVisualStateDataAttributes.d.ts} +1 -1
- package/cjs/internal/CommonWrapper/{getVisualStateDataAttributes.js → utils/getVisualStateDataAttributes.js} +3 -3
- package/cjs/internal/CommonWrapper/utils/getVisualStateDataAttributes.js.map +1 -0
- package/cjs/internal/CommonWrapper/utils/tryGetBoolean.d.ts +1 -0
- package/cjs/internal/CommonWrapper/utils/tryGetBoolean.js +1 -0
- package/cjs/internal/CommonWrapper/utils/tryGetBoolean.js.map +1 -0
- package/cjs/internal/CustomComboBox/ComboBoxMenu.js +2 -3
- package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
- package/cjs/internal/CustomComboBox/ComboBoxView.js +3 -1
- package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
- package/cjs/internal/DateSelect/DateSelect.d.ts +2 -0
- package/cjs/internal/DateSelect/DateSelect.js +51 -4
- package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
- package/cjs/internal/DateSelect/DateSelect.styles.d.ts +1 -0
- package/cjs/internal/DateSelect/DateSelect.styles.js +15 -1
- package/cjs/internal/DateSelect/DateSelect.styles.js.map +1 -1
- package/cjs/internal/DateSelect/locale/locales/en.js +2 -1
- package/cjs/internal/DateSelect/locale/locales/en.js.map +1 -1
- package/cjs/internal/DateSelect/locale/locales/ru.js +2 -1
- package/cjs/internal/DateSelect/locale/locales/ru.js.map +1 -1
- package/cjs/internal/DateSelect/locale/types.d.ts +1 -0
- package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.d.ts +5 -2
- package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js +16 -3
- package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js.map +1 -1
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +1 -0
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js +4 -2
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js.map +1 -1
- package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +1 -0
- package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js +3 -2
- package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
- package/cjs/internal/InputLikeText/InputLikeText.js +2 -2
- package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
- package/cjs/internal/InternalMaskedInput/InternalMaskedInput.js +1 -1
- package/cjs/internal/InternalMaskedInput/InternalMaskedInput.js.map +1 -1
- package/cjs/internal/InternalMenu/InternalMenu.js +2 -2
- package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
- package/cjs/internal/Menu/Menu.js +2 -2
- package/cjs/internal/Menu/Menu.js.map +1 -1
- package/cjs/internal/MobilePopup/MobilePopup.d.ts +4 -0
- package/cjs/internal/MobilePopup/MobilePopup.js +7 -1
- package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
- package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.d.ts +7 -0
- package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js +32 -0
- package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js.map +1 -0
- package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.d.ts +4 -0
- package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js +15 -0
- package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js.map +1 -0
- package/cjs/internal/MobilePopup/MobilePopupFooter/index.d.ts +1 -0
- package/cjs/internal/MobilePopup/MobilePopupFooter/index.js +1 -0
- package/cjs/internal/MobilePopup/MobilePopupFooter/index.js.map +1 -0
- package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js +1 -1
- package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
- package/cjs/internal/NativeDateInput/utils.js +3 -2
- package/cjs/internal/NativeDateInput/utils.js.map +1 -1
- package/cjs/internal/Popup/Popup.d.ts +15 -4
- package/cjs/internal/Popup/Popup.js +67 -4
- package/cjs/internal/Popup/Popup.js.map +1 -1
- package/cjs/internal/PopupMenu/PopupMenu.js +1 -1
- package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
- package/cjs/internal/RenderContainer/RenderContainer.d.ts +3 -0
- package/cjs/internal/RenderContainer/RenderContainer.js +34 -24
- package/cjs/internal/RenderContainer/RenderContainer.js.map +1 -1
- package/cjs/internal/RenderContainer/RenderInnerContainer.js +8 -4
- package/cjs/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
- package/cjs/internal/RenderLayer/RenderLayer.js +5 -1
- package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
- package/cjs/internal/ThemePlayground/Playground.js +1 -1
- package/cjs/internal/ThemePlayground/Playground.js.map +1 -1
- package/cjs/internal/ThemePlayground/ThemeContextPlayground.js +9 -6
- package/cjs/internal/ThemePlayground/ThemeContextPlayground.js.map +1 -1
- package/cjs/internal/ThemePlayground/constants.js +2 -1
- package/cjs/internal/ThemePlayground/constants.js.map +1 -1
- package/cjs/internal/ThemeShowcase/ThemeShowcase.js +1 -1
- package/cjs/internal/ThemeShowcase/ThemeShowcase.js.map +1 -1
- package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/cjs/internal/ZIndex/ZIndex.d.ts +7 -3
- package/cjs/internal/ZIndex/ZIndex.js +41 -3
- package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
- package/cjs/internal/themes/DarkTheme.d.ts +2 -0
- package/cjs/internal/themes/DarkTheme.js +6 -1
- package/cjs/internal/themes/DarkTheme.js.map +1 -1
- package/cjs/internal/themes/DefaultTheme.d.ts +18 -0
- package/cjs/internal/themes/DefaultTheme.js +32 -4
- package/cjs/internal/themes/DefaultTheme.js.map +1 -1
- package/cjs/lib/date/InternalDate.d.ts +2 -0
- package/cjs/lib/date/InternalDate.js +8 -1
- package/cjs/lib/date/InternalDate.js.map +1 -1
- package/cjs/lib/date/InternalDateTransformer.d.ts +3 -0
- package/cjs/lib/date/InternalDateTransformer.js +23 -0
- package/cjs/lib/date/InternalDateTransformer.js.map +1 -1
- package/cjs/lib/date/InternalDateValidator.js +2 -1
- package/cjs/lib/date/InternalDateValidator.js.map +1 -1
- package/cjs/lib/date/comparison.d.ts +6 -0
- package/cjs/lib/date/comparison.js +44 -0
- package/cjs/lib/date/comparison.js.map +1 -0
- package/cjs/lib/featureFlagsContext/FEATUREFLAGSCONTEXT.md +24 -0
- package/cjs/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +1 -0
- package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +1 -0
- package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js +3 -1
- package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
- package/cjs/lib/listenFocusOutside.js +4 -2
- package/cjs/lib/listenFocusOutside.js.map +1 -1
- package/cjs/lib/locale/constants.d.ts +3 -0
- package/cjs/lib/locale/constants.js +6 -2
- package/cjs/lib/locale/constants.js.map +1 -1
- package/cjs/lib/taskWithDelayAndMinimalDuration.js +1 -0
- package/cjs/lib/taskWithDelayAndMinimalDuration.js.map +1 -1
- package/cjs/lib/theming/Emotion.d.ts +7 -1
- package/cjs/lib/theming/Emotion.js +6 -3
- package/cjs/lib/theming/Emotion.js.map +1 -1
- package/cjs/lib/theming/ThemeContext.d.ts +0 -2
- package/cjs/lib/theming/ThemeContext.js +1 -3
- package/cjs/lib/theming/ThemeContext.js.map +1 -1
- package/cjs/lib/theming/ThemeContext.md +3 -1
- package/cjs/lib/theming/themes/Theme2022DarkUpdate2024.d.ts +30 -0
- package/cjs/lib/theming/themes/Theme2022DarkUpdate2024.js +50 -0
- package/cjs/lib/theming/themes/Theme2022DarkUpdate2024.js.map +1 -0
- package/cjs/lib/theming/themes/Theme2022Update2024.d.ts +46 -0
- package/cjs/lib/theming/themes/Theme2022Update2024.js +75 -0
- package/cjs/lib/theming/themes/Theme2022Update2024.js.map +1 -0
- package/cjs/lib/widgets/StylesContainer.d.ts +13 -0
- package/cjs/lib/widgets/StylesContainer.js +70 -0
- package/cjs/lib/widgets/StylesContainer.js.map +1 -0
- package/cjs/lib/widgets/index.d.ts +1 -0
- package/cjs/lib/widgets/index.js +1 -0
- package/cjs/lib/widgets/index.js.map +1 -0
- package/components/Autocomplete/Autocomplete/Autocomplete.js +11 -5
- package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
- package/components/Autocomplete/Autocomplete.md +76 -3
- package/components/Autocomplete/Autocomplete.styles/Autocomplete.styles.js +4 -1
- package/components/Autocomplete/Autocomplete.styles/Autocomplete.styles.js.map +1 -1
- package/components/Autocomplete/Autocomplete.styles.d.ts +1 -0
- package/components/Button/Button/Button.js +3 -3
- package/components/Button/Button/Button.js.map +1 -1
- package/components/Button/Button.md +38 -11
- package/components/Calendar/Calendar/Calendar.js +83 -66
- package/components/Calendar/Calendar/Calendar.js.map +1 -1
- package/components/Calendar/Calendar.d.ts +28 -5
- package/components/Calendar/Calendar.md +82 -1
- package/components/Calendar/Calendar.styles/Calendar.styles.js +1 -1
- package/components/Calendar/Calendar.styles/Calendar.styles.js.map +1 -1
- package/components/Calendar/CalendarContext/CalendarContext.js +2 -0
- package/components/Calendar/CalendarContext/CalendarContext.js.map +1 -0
- package/components/Calendar/CalendarContext/package.json +6 -0
- package/components/Calendar/CalendarContext.d.ts +12 -0
- package/components/Calendar/CalendarDateShape/CalendarDateShape.js +23 -1
- package/components/Calendar/CalendarDateShape/CalendarDateShape.js.map +1 -1
- package/components/Calendar/CalendarDateShape.d.ts +4 -2
- package/components/Calendar/CalendarDay/CalendarDay.js +64 -0
- package/components/Calendar/CalendarDay/CalendarDay.js.map +1 -0
- package/components/Calendar/CalendarDay/package.json +6 -0
- package/components/Calendar/CalendarDay.d.ts +12 -0
- package/components/Calendar/CalendarDay.md +70 -0
- package/components/Calendar/CalendarUtils/CalendarUtils.js +5 -4
- package/components/Calendar/CalendarUtils/CalendarUtils.js.map +1 -1
- package/components/Calendar/CalendarUtils.d.ts +2 -1
- package/components/Calendar/DayCellView/DayCellView.js +33 -46
- package/components/Calendar/DayCellView/DayCellView.js.map +1 -1
- package/components/Calendar/DayCellView.d.ts +4 -12
- package/components/Calendar/DayCellView.styles/DayCellView.styles.js +10 -14
- package/components/Calendar/DayCellView.styles/DayCellView.styles.js.map +1 -1
- package/components/Calendar/DayCellView.styles.d.ts +2 -5
- package/components/Calendar/Month/Month.js +50 -84
- package/components/Calendar/Month/Month.js.map +1 -1
- package/components/Calendar/Month.d.ts +0 -10
- package/components/Calendar/MonthView/MonthView.js +50 -45
- package/components/Calendar/MonthView/MonthView.js.map +1 -1
- package/components/Calendar/MonthView.d.ts +3 -2
- package/components/Calendar/MonthView.styles/MonthView.styles.js +20 -6
- package/components/Calendar/MonthView.styles/MonthView.styles.js.map +1 -1
- package/components/Calendar/MonthView.styles.d.ts +3 -0
- package/components/Calendar/MonthViewModel/MonthViewModel.js +9 -6
- package/components/Calendar/MonthViewModel/MonthViewModel.js.map +1 -1
- package/components/Calendar/config/config.js +6 -4
- package/components/Calendar/config/config.js.map +1 -1
- package/components/Calendar/index/index.js +2 -1
- package/components/Calendar/index/index.js.map +1 -1
- package/components/Calendar/index.d.ts +1 -0
- package/components/Checkbox/Checkbox/Checkbox.js +2 -2
- package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
- package/components/DateInput/DateFragmentsView/DateFragmentsView.js +2 -2
- package/components/DateInput/DateFragmentsView/DateFragmentsView.js.map +1 -1
- package/components/DateInput/DateInput/DateInput.js +2 -2
- package/components/DateInput/DateInput/DateInput.js.map +1 -1
- package/components/DatePicker/DatePicker/DatePicker.js +62 -41
- package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
- package/components/DatePicker/DatePicker.d.ts +4 -1
- package/components/DatePicker/DatePicker.md +29 -1
- package/components/DatePicker/DatePickerHelpers/DatePickerHelpers.js +2 -1
- package/components/DatePicker/DatePickerHelpers/DatePickerHelpers.js.map +1 -1
- package/components/DatePicker/MobilePicker/MobilePicker.js +91 -0
- package/components/DatePicker/MobilePicker/MobilePicker.js.map +1 -0
- package/components/DatePicker/MobilePicker/package.json +6 -0
- package/components/DatePicker/MobilePicker.d.ts +10 -0
- package/components/DatePicker/MobilePicker.styles/MobilePicker.styles.js +10 -0
- package/components/DatePicker/MobilePicker.styles/MobilePicker.styles.js.map +1 -0
- package/components/DatePicker/MobilePicker.styles/package.json +6 -0
- package/components/DatePicker/MobilePicker.styles.d.ts +3 -0
- package/components/DatePicker/Picker/Picker.js +3 -3
- package/components/DatePicker/Picker/Picker.js.map +1 -1
- package/components/DatePicker/getMobilePickerTheme/getMobilePickerTheme.js +14 -0
- package/components/DatePicker/getMobilePickerTheme/getMobilePickerTheme.js.map +1 -0
- package/components/DatePicker/getMobilePickerTheme/package.json +6 -0
- package/components/DatePicker/getMobilePickerTheme.d.ts +2 -0
- package/components/Dropdown/Dropdown/Dropdown.js +3 -3
- package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
- package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +3 -3
- package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
- package/components/DropdownMenu/DropdownMenu.md +39 -0
- package/components/FileUploader/FileUploader/FileUploader.js +30 -8
- package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
- package/components/FileUploader/FileUploader.d.ts +2 -0
- package/components/FileUploader/FileUploader.md +29 -0
- package/components/FxInput/FxInput/FxInput.js +2 -2
- package/components/FxInput/FxInput/FxInput.js.map +1 -1
- package/components/Group/Group/Group.js +2 -2
- package/components/Group/Group/Group.js.map +1 -1
- package/components/Hint/Hint/Hint.js +53 -48
- package/components/Hint/Hint/Hint.js.map +1 -1
- package/components/Hint/Hint.d.ts +4 -3
- package/components/Input/Input/Input.js +3 -3
- package/components/Input/Input/Input.js.map +1 -1
- package/components/Input/Input.styles/Input.styles.js +2 -2
- package/components/Input/Input.styles/Input.styles.js.map +1 -1
- package/components/Input/Input.styles.d.ts +1 -1
- package/components/Input/InputLayout/InputLayout.styles/InputLayout.styles.js +2 -2
- package/components/Input/InputLayout/InputLayout.styles/InputLayout.styles.js.map +1 -1
- package/components/Input/InputLayout/InputLayout.styles.d.ts +1 -1
- package/components/Input/InputLayout/InputLayoutAsideIcon/InputLayoutAsideIcon.js +1 -1
- package/components/Input/InputLayout/InputLayoutAsideIcon/InputLayoutAsideIcon.js.map +1 -1
- package/components/Kebab/Kebab/Kebab.js +7 -4
- package/components/Kebab/Kebab/Kebab.js.map +1 -1
- package/components/Link/Link/Link.js +6 -3
- package/components/Link/Link/Link.js.map +1 -1
- package/components/Loader/Loader/Loader.js +2 -2
- package/components/Loader/Loader/Loader.js.map +1 -1
- package/components/MenuItem/MenuItem/MenuItem.js +3 -3
- package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
- package/components/MiniModal/MiniModal/MiniModal.js +2 -2
- package/components/MiniModal/MiniModal/MiniModal.js.map +1 -1
- package/components/Modal/Modal/Modal.js +3 -3
- package/components/Modal/Modal/Modal.js.map +1 -1
- package/components/Modal/ModalBody/ModalBody.js +3 -3
- package/components/Modal/ModalBody/ModalBody.js.map +1 -1
- package/components/Paging/Paging/Paging.js +10 -6
- package/components/Paging/Paging/Paging.js.map +1 -1
- package/components/PasswordInput/PasswordInput/PasswordInput.js +2 -2
- package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
- package/components/Radio/Radio/Radio.js +2 -2
- package/components/Radio/Radio/Radio.js.map +1 -1
- package/components/RadioGroup/RadioGroup/RadioGroup.js +8 -4
- package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
- package/components/ScrollContainer/ScrollBar/ScrollBar.js +2 -2
- package/components/ScrollContainer/ScrollBar/ScrollBar.js.map +1 -1
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +5 -0
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
- package/components/ScrollContainer/ScrollContainer.d.ts +1 -0
- package/components/Select/Select/Select.js +6 -5
- package/components/Select/Select/Select.js.map +1 -1
- package/components/SidePage/SidePage/SidePage.js +2 -2
- package/components/SidePage/SidePage/SidePage.js.map +1 -1
- package/components/SidePage/SidePageBody/SidePageBody.js +2 -2
- package/components/SidePage/SidePageBody/SidePageBody.js.map +1 -1
- package/components/SidePage/SidePageContainer/SidePageContainer.js +2 -2
- package/components/SidePage/SidePageContainer/SidePageContainer.js.map +1 -1
- package/components/SidePage/SidePageFooter/SidePageFooter.js +2 -2
- package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
- package/components/SidePage/SidePageHeader/SidePageHeader.js +2 -2
- package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
- package/components/Spinner/Spinner/Spinner.js +2 -2
- package/components/Spinner/Spinner/Spinner.js.map +1 -1
- package/components/Switcher/Switcher/Switcher.js +3 -3
- package/components/Switcher/Switcher/Switcher.js.map +1 -1
- package/components/Tabs/Indicator/Indicator.js +2 -2
- package/components/Tabs/Indicator/Indicator.js.map +1 -1
- package/components/Tabs/Tab/Tab.js +3 -3
- package/components/Tabs/Tab/Tab.js.map +1 -1
- package/components/Tabs/Tabs/Tabs.js +2 -2
- package/components/Tabs/Tabs/Tabs.js.map +1 -1
- package/components/Textarea/Textarea/Textarea.js +2 -2
- package/components/Textarea/Textarea/Textarea.js.map +1 -1
- package/components/Toast/Toast/Toast.js +3 -3
- package/components/Toast/Toast/Toast.js.map +1 -1
- package/components/Toast/ToastView/ToastView.js +2 -2
- package/components/Toast/ToastView/ToastView.js.map +1 -1
- package/components/Toggle/Toggle/Toggle.js +2 -2
- package/components/Toggle/Toggle/Toggle.js.map +1 -1
- package/components/Token/Token/Token.js +6 -3
- package/components/Token/Token/Token.js.map +1 -1
- package/components/TokenInput/TokenInput/TokenInput.js +2 -2
- package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
- package/components/TokenInput/TokenInputMenu/TokenInputMenu.js +3 -3
- package/components/TokenInput/TokenInputMenu/TokenInputMenu.js.map +1 -1
- package/components/Tooltip/Tooltip/Tooltip.js +67 -46
- package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
- package/components/Tooltip/Tooltip.d.ts +10 -5
- package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +3 -3
- package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
- package/hooks/useDrop/useDrop.js.map +1 -1
- package/hooks/useDrop.d.ts +1 -1
- package/index.d.ts +2 -0
- package/index.js +2 -0
- package/index.js.map +1 -1
- package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +2 -2
- package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
- package/internal/CommonWrapper/utils/extractCommonProps/extractCommonProps.js.map +1 -0
- package/internal/CommonWrapper/{extractCommonProps → utils/extractCommonProps}/package.json +1 -1
- package/internal/CommonWrapper/{extractCommonProps.d.ts → utils/extractCommonProps.d.ts} +2 -2
- package/internal/CommonWrapper/{getCommonVisualStateDataAttributes → utils/getCommonVisualStateDataAttributes}/getCommonVisualStateDataAttributes.js +1 -5
- package/internal/CommonWrapper/utils/getCommonVisualStateDataAttributes/getCommonVisualStateDataAttributes.js.map +1 -0
- package/internal/CommonWrapper/{getCommonVisualStateDataAttributes → utils/getCommonVisualStateDataAttributes}/package.json +1 -1
- package/internal/CommonWrapper/{getVisualStateDataAttributes → utils/getVisualStateDataAttributes}/getVisualStateDataAttributes.js +3 -3
- package/internal/CommonWrapper/utils/getVisualStateDataAttributes/getVisualStateDataAttributes.js.map +1 -0
- package/internal/CommonWrapper/{getVisualStateDataAttributes → utils/getVisualStateDataAttributes}/package.json +1 -1
- package/internal/CommonWrapper/{getVisualStateDataAttributes.d.ts → utils/getVisualStateDataAttributes.d.ts} +1 -1
- package/internal/CommonWrapper/utils/tryGetBoolean/package.json +6 -0
- package/internal/CommonWrapper/utils/tryGetBoolean/tryGetBoolean.js +3 -0
- package/internal/CommonWrapper/utils/tryGetBoolean/tryGetBoolean.js.map +1 -0
- package/internal/CommonWrapper/utils/tryGetBoolean.d.ts +1 -0
- package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +3 -3
- package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +5 -3
- package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
- package/internal/DateSelect/DateSelect/DateSelect.js +59 -6
- package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
- package/internal/DateSelect/DateSelect.d.ts +2 -0
- package/internal/DateSelect/DateSelect.styles/DateSelect.styles.js +4 -1
- package/internal/DateSelect/DateSelect.styles/DateSelect.styles.js.map +1 -1
- package/internal/DateSelect/DateSelect.styles.d.ts +1 -0
- package/internal/DateSelect/locale/locales/en/en.js +2 -1
- package/internal/DateSelect/locale/locales/en/en.js.map +1 -1
- package/internal/DateSelect/locale/locales/ru/ru.js +2 -1
- package/internal/DateSelect/locale/locales/ru/ru.js.map +1 -1
- package/internal/DateSelect/locale/types.d.ts +1 -0
- package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js +12 -3
- package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js.map +1 -1
- package/internal/FileUploaderControl/FileUploaderControlProvider.d.ts +5 -2
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js +4 -2
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js.map +1 -1
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +1 -0
- package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js +4 -2
- package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
- package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +1 -0
- package/internal/InputLikeText/InputLikeText/InputLikeText.js +3 -3
- package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
- package/internal/InternalMaskedInput/InternalMaskedInput/InternalMaskedInput.js +2 -2
- package/internal/InternalMaskedInput/InternalMaskedInput/InternalMaskedInput.js.map +1 -1
- package/internal/InternalMenu/InternalMenu/InternalMenu.js +3 -3
- package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
- package/internal/Menu/Menu/Menu.js +3 -3
- package/internal/Menu/Menu/Menu.js.map +1 -1
- package/internal/MobilePopup/MobilePopup/MobilePopup.js +4 -3
- package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
- package/internal/MobilePopup/MobilePopup.d.ts +4 -0
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter/MobilePopupFooter.js +37 -0
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter/MobilePopupFooter.js.map +1 -0
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter/package.json +6 -0
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.d.ts +7 -0
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles/MobilePopupFooter.styles.js +11 -0
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles/MobilePopupFooter.styles.js.map +1 -0
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles/package.json +6 -0
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.d.ts +4 -0
- package/internal/MobilePopup/MobilePopupFooter/index/index.js +1 -0
- package/internal/MobilePopup/MobilePopupFooter/index/index.js.map +1 -0
- package/internal/MobilePopup/MobilePopupFooter/index/package.json +6 -0
- package/internal/MobilePopup/MobilePopupFooter/index.d.ts +1 -0
- package/internal/MobilePopup/MobilePopupFooter/package.json +6 -0
- package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader/MobilePopupHeader.js +2 -2
- package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
- package/internal/NativeDateInput/utils/utils.js +2 -1
- package/internal/NativeDateInput/utils/utils.js.map +1 -1
- package/internal/Popup/Popup/Popup.js +53 -10
- package/internal/Popup/Popup/Popup.js.map +1 -1
- package/internal/Popup/Popup.d.ts +15 -4
- package/internal/PopupMenu/PopupMenu/PopupMenu.js +3 -3
- package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
- package/internal/RenderContainer/RenderContainer/RenderContainer.js +19 -12
- package/internal/RenderContainer/RenderContainer/RenderContainer.js.map +1 -1
- package/internal/RenderContainer/RenderContainer.d.ts +3 -0
- package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js +11 -5
- package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js.map +1 -1
- package/internal/RenderLayer/RenderLayer/RenderLayer.js +2 -2
- package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
- package/internal/ThemePlayground/Playground/Playground.js +2 -2
- package/internal/ThemePlayground/Playground/Playground.js.map +1 -1
- package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js +10 -7
- package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js.map +1 -1
- package/internal/ThemePlayground/constants/constants.js +3 -0
- package/internal/ThemePlayground/constants/constants.js.map +1 -1
- package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js +2 -2
- package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js.map +1 -1
- package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/internal/ZIndex/ZIndex/ZIndex.js +55 -7
- package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
- package/internal/ZIndex/ZIndex.d.ts +7 -3
- package/internal/themes/DarkTheme/DarkTheme.js +2 -0
- package/internal/themes/DarkTheme/DarkTheme.js.map +1 -1
- package/internal/themes/DarkTheme.d.ts +2 -0
- package/internal/themes/DefaultTheme/DefaultTheme.js +32 -1
- package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
- package/internal/themes/DefaultTheme.d.ts +18 -0
- package/lib/date/InternalDate/InternalDate.js +7 -1
- package/lib/date/InternalDate/InternalDate.js.map +1 -1
- package/lib/date/InternalDate.d.ts +2 -0
- package/lib/date/InternalDateTransformer/InternalDateTransformer.js +30 -0
- package/lib/date/InternalDateTransformer/InternalDateTransformer.js.map +1 -1
- package/lib/date/InternalDateTransformer.d.ts +3 -0
- package/lib/date/InternalDateValidator/InternalDateValidator.js +6 -1
- package/lib/date/InternalDateValidator/InternalDateValidator.js.map +1 -1
- package/lib/date/comparison/comparison.js +45 -0
- package/lib/date/comparison/comparison.js.map +1 -0
- package/lib/date/comparison/package.json +6 -0
- package/lib/date/comparison.d.ts +6 -0
- package/lib/featureFlagsContext/FEATUREFLAGSCONTEXT.md +24 -0
- package/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +1 -0
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js +2 -1
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +1 -0
- package/lib/listenFocusOutside/listenFocusOutside.js +3 -2
- package/lib/listenFocusOutside/listenFocusOutside.js.map +1 -1
- package/lib/locale/constants/constants.js +4 -1
- package/lib/locale/constants/constants.js.map +1 -1
- package/lib/locale/constants.d.ts +3 -0
- package/lib/taskWithDelayAndMinimalDuration/taskWithDelayAndMinimalDuration.js +2 -0
- package/lib/taskWithDelayAndMinimalDuration/taskWithDelayAndMinimalDuration.js.map +1 -1
- package/lib/theming/Emotion/Emotion.js +12 -3
- package/lib/theming/Emotion/Emotion.js.map +1 -1
- package/lib/theming/Emotion.d.ts +7 -1
- package/lib/theming/ThemeContext/ThemeContext.js +0 -2
- package/lib/theming/ThemeContext/ThemeContext.js.map +1 -1
- package/lib/theming/ThemeContext.d.ts +0 -2
- package/lib/theming/ThemeContext.md +3 -1
- package/lib/theming/themes/Theme2022DarkUpdate2024/Theme2022DarkUpdate2024.js +33 -0
- package/lib/theming/themes/Theme2022DarkUpdate2024/Theme2022DarkUpdate2024.js.map +1 -0
- package/lib/theming/themes/Theme2022DarkUpdate2024/package.json +6 -0
- package/lib/theming/themes/Theme2022DarkUpdate2024.d.ts +30 -0
- package/lib/theming/themes/Theme2022Update2024/Theme2022Update2024.js +50 -0
- package/lib/theming/themes/Theme2022Update2024/Theme2022Update2024.js.map +1 -0
- package/lib/theming/themes/Theme2022Update2024/package.json +6 -0
- package/lib/theming/themes/Theme2022Update2024.d.ts +46 -0
- package/lib/widgets/StylesContainer/StylesContainer.js +65 -0
- package/lib/widgets/StylesContainer/StylesContainer.js.map +1 -0
- package/lib/widgets/StylesContainer/package.json +6 -0
- package/lib/widgets/StylesContainer.d.ts +13 -0
- package/lib/widgets/index/index.js +1 -0
- package/lib/widgets/index/index.js.map +1 -0
- package/lib/widgets/index/package.json +6 -0
- package/lib/widgets/index.d.ts +1 -0
- package/lib/widgets/package.json +6 -0
- package/package.json +3 -2
- package/cjs/internal/CommonWrapper/extractCommonProps.js.map +0 -1
- package/cjs/internal/CommonWrapper/getCommonVisualStateDataAttributes.js.map +0 -1
- package/cjs/internal/CommonWrapper/getVisualStateDataAttributes.js.map +0 -1
- package/cjs/lib/theming/StyleContainer.d.ts +0 -4
- package/cjs/lib/theming/StyleContainer.js +0 -21
- package/cjs/lib/theming/StyleContainer.js.map +0 -1
- package/internal/CommonWrapper/extractCommonProps/extractCommonProps.js.map +0 -1
- package/internal/CommonWrapper/getCommonVisualStateDataAttributes/getCommonVisualStateDataAttributes.js.map +0 -1
- package/internal/CommonWrapper/getVisualStateDataAttributes/getVisualStateDataAttributes.js.map +0 -1
- package/lib/theming/StyleContainer/StyleContainer.js +0 -21
- package/lib/theming/StyleContainer/StyleContainer.js.map +0 -1
- package/lib/theming/StyleContainer/package.json +0 -6
- package/lib/theming/StyleContainer.d.ts +0 -4
- /package/cjs/internal/CommonWrapper/{extractCommonProps.js → utils/extractCommonProps.js} +0 -0
- /package/cjs/internal/CommonWrapper/{getCommonVisualStateDataAttributes.d.ts → utils/getCommonVisualStateDataAttributes.d.ts} +0 -0
- /package/internal/CommonWrapper/{extractCommonProps → utils/extractCommonProps}/extractCommonProps.js +0 -0
- /package/internal/CommonWrapper/{getCommonVisualStateDataAttributes.d.ts → utils/getCommonVisualStateDataAttributes.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Calendar.tsx"],"names":["CalendarDataTids","root","month","dayCell","headerMonth","headerYear","Calendar","rootNode","formatDate","date","year","InternalDate","setComponents","toString","withPad","props","getProps","defaultProps","animation","touchStartY","scrollToMonth","inProgress","finish","Promise","r","globalObject","setTimeout","minDate","getDateInNativeFormat","maxDate","currentMonth","state","months","diffInMonths","scrollTo","maxMonthsToAdd","theme","MAX_MONTHS_TO_APPEND_ON_SCROLL","onEnd","setState","CalendarUtils","getMonths","scrollPosition","isYearChanges","Math","abs","monthsToPrependCount","min","monthsToPrepend","Array","from","length","_","index","MonthViewModel","create","yearChanges","isFirstInYear","isLastInYear","concat","getMonthsHeight","targetPosition","getHeight","monthsToAppendCount","monthsToAppend","slice","renderMain","positions","getMonthPositions","wrapperStyle","height","WRAPPER_HEIGHT","styles","emotion","setRootNode","refRoot","cx","wrapper","map","x","i","filter","top","isMonthVisible","renderMonth","separator","element","isMobile","addEventListener","handleTouchStart","throttledHandleTouchMove","handleWheel","passive","removeEventListener","isHoliday","isWeekend","dateString","InternalDateTransformer","dateToInternalString","handleDateChange","dateShape","value","onValueChange","handleMonthYearChange","executeAnimations","pixelY","calculateScrollPosition","scrollTarget","handleWheelEnd","animate","deltaY","applyDelta","CalendarScrollEvents","emit","event","TouchEvent","clientY","targetTouches","handleTouchMove","changedTouches","WheelEvent","preventDefault","wheelEndTimeout","clearTimeout","scrollToNearestWeek","scrollDirection","trasholdHeight","MONTH_TITLE_OFFSET_HEIGHT","DAY_SIZE","amount","pos","scrollAmmount","scrollAmount","minDateShape","maxDateShape","today","getTodayDate","initialDate","getInitialDate","initialMonth","getMonthInNativeFormat","initialYear","componentDidUpdate","prevProps","parseValue","getComponentsLikeNumber","componentWillUnmount","cancel","render","toNativeFormat","position","push","React","Component","__KONTUR_REACT_UI__","displayName","MIN_DATE","MIN_MONTH","MIN_YEAR","MAX_DATE","MAX_MONTH","MAX_YEAR","_day"],"mappings":"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","sourcesContent":["import React from 'react';\nimport normalizeWheel from 'normalize-wheel';\nimport throttle from 'lodash.throttle';\nimport shallowEqual from 'shallowequal';\nimport { globalObject, SafeTimer } from '@skbkontur/global-object';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport { InternalDate } from '../../lib/date/InternalDate';\nimport { InternalDateTransformer } from '../../lib/date/InternalDateTransformer';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { EmotionConsumer } from '../../lib/theming/Emotion';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { MAX_DATE, MAX_MONTH, MAX_YEAR, MIN_DATE, MIN_MONTH, MIN_YEAR } from '../../lib/date/constants';\nimport { Nullable, Range } from '../../typings/utility-types';\nimport { Theme } from '../../lib/theming/Theme';\nimport { animation } from '../../lib/animation';\nimport { isMobile } from '../../lib/client';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { ThemeConsumer } from '../../lib/theming/ThemeContext';\n\nimport { themeConfig } from './config';\nimport { MonthViewModel } from './MonthViewModel';\nimport * as CalendarScrollEvents from './CalendarScrollEvents';\nimport { Month } from './Month';\nimport { CalendarDateShape, create, isGreater, isLess } from './CalendarDateShape';\nimport * as CalendarUtils from './CalendarUtils';\nimport { getStyles } from './Calendar.styles';\n\nexport interface CalendarProps extends CommonProps {\n /**\n * Вызывается при изменении `value`\n *\n * В аргументе хранится дата в формате `dd.mm.yyyy`\n */\n onValueChange?: (date: string) => void;\n /**\n * Задаёт текущую дату\n *\n * Дата задаётся в формате `dd.mm.yyyy`\n */\n value: Nullable<string>;\n /**\n * Задаёт максимальную возможную дату\n *\n * Дата задаётся в формате `dd.mm.yyyy`\n */\n maxDate?: string;\n /**\n * Задаёт минимальную возможную дату\n *\n * Дата задаётся в формате `dd.mm.yyyy`\n */\n minDate?: string;\n /**\n * Функция для определения праздничных дней\n * @default (_day, isWeekend) => isWeekend\n * @param {string} day - строка в формате `dd.mm.yyyy`\n * @param {boolean} isWeekend - флаг выходного (суббота или воскресенье)\n *\n * @returns {boolean} `true` для выходного или `false` для рабочего дня\n */\n isHoliday?: (day: string, isWeekend: boolean) => boolean;\n /**\n * Позволяет задать начальный месяц\n */\n initialMonth?: Range<1, 13>;\n /**\n * Позволяет задать начальный год\n */\n initialYear?: number;\n}\n\nexport interface CalendarState {\n scrollPosition: number;\n months: MonthViewModel[];\n today: CalendarDateShape;\n scrollDirection: number;\n scrollTarget: number;\n}\n\nexport const CalendarDataTids = {\n root: 'Calendar__root',\n month: 'MonthView__month',\n dayCell: 'DayCellView__root',\n headerMonth: 'MonthView__headerMonth',\n headerYear: 'MonthView__headerYear',\n} as const;\n\ntype DefaultProps = Required<Pick<CalendarProps, 'minDate' | 'maxDate' | 'isHoliday'>>;\n\n/**\n * Компонент календаря из [DatePicker](https://tech.skbkontur.ru/react-ui/#/Components/DatePicker)'а\n */\n@rootNode\nexport class Calendar extends React.Component<CalendarProps, CalendarState> {\n public static __KONTUR_REACT_UI__ = 'Calendar';\n public static displayName = 'Calendar';\n\n private static formatDate(date: number, month: number, year: number) {\n return new InternalDate().setComponents({ date, month, year }).toString({ withPad: true });\n }\n\n public static defaultProps: DefaultProps = {\n minDate: Calendar.formatDate(MIN_DATE, MIN_MONTH, MIN_YEAR),\n maxDate: Calendar.formatDate(MAX_DATE, MAX_MONTH, MAX_YEAR),\n isHoliday: (_day: string, isWeekend: boolean) => isWeekend,\n };\n\n private getProps = createPropsGetter(Calendar.defaultProps);\n\n private theme!: Theme;\n private emotion!: Emotion;\n private wheelEndTimeout: SafeTimer;\n private root: Nullable<HTMLElement>;\n private animation = animation();\n private touchStartY: Nullable<number> = null;\n private setRootNode!: TSetRootNode;\n\n constructor(props: CalendarProps) {\n super(props);\n\n const { minDate, maxDate, value } = this.getProps();\n\n const minDateShape = this.getDateInNativeFormat(minDate);\n const maxDateShape = this.getDateInNativeFormat(maxDate);\n const dateShape = this.getDateInNativeFormat(value);\n\n const today = CalendarUtils.getTodayDate();\n const initialDate = CalendarUtils.getInitialDate({\n today,\n date: dateShape,\n minDate: minDateShape,\n maxDate: maxDateShape,\n });\n\n const initialMonth = CalendarUtils.getMonthInNativeFormat(this.props.initialMonth) ?? initialDate.month;\n const initialYear = this.props.initialYear ?? initialDate.year;\n\n this.state = {\n scrollPosition: 0,\n months: CalendarUtils.getMonths(initialMonth, initialYear),\n today,\n scrollDirection: 1,\n scrollTarget: 0,\n };\n }\n\n public componentDidUpdate(prevProps: Readonly<CalendarProps>): void {\n const { value } = this.props;\n if (value && !shallowEqual(value, prevProps.value)) {\n const date = new InternalDate().parseValue(value).getComponentsLikeNumber();\n this.scrollToMonth(date.month - 1, date.year);\n }\n }\n\n public componentWillUnmount() {\n if (this.animation.inProgress()) {\n this.animation.cancel();\n }\n }\n\n public render() {\n return (\n <EmotionConsumer>\n {(emotion) => {\n this.emotion = emotion;\n return (\n <ThemeConsumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeConsumer>\n );\n }}\n </EmotionConsumer>\n );\n }\n\n /**\n * Прокручивает календарь до переданной даты\n * @public\n */\n public scrollToMonth = async (month: number, year: number) => {\n if (this.animation.inProgress()) {\n this.animation.finish();\n // FIXME: Dirty hack to await batched updates\n await new Promise((r) => globalObject.setTimeout(r, 0));\n }\n\n const minDate = this.getDateInNativeFormat(this.getProps().minDate);\n const maxDate = this.getDateInNativeFormat(this.getProps().maxDate);\n\n if (minDate && isGreater(minDate, create(32, month, year))) {\n this.scrollToMonth(minDate.month, minDate.year);\n return;\n }\n\n if (maxDate && isLess(maxDate, create(0, month, year))) {\n this.scrollToMonth(maxDate.month, maxDate.year);\n return;\n }\n\n const currentMonth = this.state.months[1];\n const diffInMonths = currentMonth.month + currentMonth.year * 12 - month - year * 12;\n\n if (diffInMonths === 0) {\n this.scrollTo(0);\n return;\n }\n\n const maxMonthsToAdd = themeConfig(this.theme).MAX_MONTHS_TO_APPEND_ON_SCROLL;\n\n const onEnd = () => {\n this.setState({\n months: CalendarUtils.getMonths(month, year),\n scrollPosition: 0,\n });\n };\n\n const isYearChanges = (state: CalendarState) => {\n return (\n state.months[1].year !== year &&\n // if diff in months is 2 or less,\n // either year is not changing either months already\n // have right isFirstInYear/isLastInYear flags\n Math.abs(diffInMonths) > 2\n );\n };\n\n // If scrolling upwards, prepend maximum maxMonthsToAdd months\n // and scroll to the first month\n if (diffInMonths > 0) {\n const monthsToPrependCount = Math.min(Math.abs(diffInMonths) - 1, maxMonthsToAdd);\n const monthsToPrepend = Array.from({ length: monthsToPrependCount }, (_, index) => {\n return MonthViewModel.create(month + index, year);\n });\n this.setState(\n (state) => {\n const yearChanges = isYearChanges(state);\n if (yearChanges) {\n // Mutating here can lead to some unexpected bugs\n // but we couldn't find any yet\n state.months[0].isFirstInYear = true;\n if (monthsToPrepend.length) {\n // Mutating item here is safe as it was just created\n monthsToPrepend[monthsToPrepend.length - 1].isLastInYear = true;\n }\n }\n return {\n months: monthsToPrepend.concat(state.months),\n scrollPosition: -CalendarUtils.getMonthsHeight(monthsToPrepend, this.theme),\n };\n },\n () => {\n const targetPosition = this.state.months[0].getHeight(this.theme);\n this.scrollTo(targetPosition, onEnd);\n },\n );\n }\n\n // If scrolling downwards, append maximum maxMonthsToAdd months\n // and scroll to the last but one month\n if (diffInMonths < 0) {\n const monthsToAppendCount = Math.min(Math.abs(diffInMonths), maxMonthsToAdd);\n const monthsToAppend = Array.from({ length: monthsToAppendCount }, (_, index) => {\n return MonthViewModel.create(month + index - monthsToAppendCount + 2, year);\n });\n this.setState(\n (state) => {\n if (isYearChanges(state)) {\n // Mutating here can lead to some unexpected bugs\n // but we couldn't find any yet\n state.months[state.months.length - 1].isLastInYear = true;\n // Mutating item here is safe as it was just created\n if (monthsToAppend[0]) {\n monthsToAppend[0].isFirstInYear = true;\n }\n }\n return { months: state.months.concat(monthsToAppend) };\n },\n () => {\n const targetPosition = -1 * CalendarUtils.getMonthsHeight(this.state.months.slice(1, -2), this.theme);\n this.scrollTo(targetPosition, onEnd);\n },\n );\n }\n };\n\n private renderMain = () => {\n const positions = this.getMonthPositions();\n const wrapperStyle = { height: themeConfig(this.theme).WRAPPER_HEIGHT };\n\n const props = this.getProps();\n const styles = getStyles(this.emotion);\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...props}>\n <div ref={this.refRoot} data-tid={CalendarDataTids.root} className={this.emotion.cx(styles.root(this.theme))}>\n <div style={wrapperStyle} className={styles.wrapper()}>\n {this.state.months\n .map<[number, MonthViewModel]>((x, i) => [positions[i], x])\n .filter(([top, month]) => CalendarUtils.isMonthVisible(top, month, this.theme))\n .map(this.renderMonth, this)}\n </div>\n <div className={styles.separator(this.theme)} />\n </div>\n </CommonWrapper>\n );\n };\n\n private refRoot = (element: HTMLElement | null) => {\n if (!this.root && element) {\n if (isMobile) {\n element.addEventListener('touchstart', this.handleTouchStart);\n element.addEventListener('touchmove', this.throttledHandleTouchMove);\n } else {\n element.addEventListener('wheel', this.handleWheel, { passive: false });\n }\n }\n if (this.root && !element) {\n if (isMobile) {\n this.root.removeEventListener('touchstart', this.handleTouchStart);\n this.root.removeEventListener('touchmove', this.throttledHandleTouchMove);\n } else {\n this.root.removeEventListener('wheel', this.handleWheel);\n }\n }\n this.root = element;\n };\n\n private renderMonth([top, month]: [number, MonthViewModel]) {\n const date = this.getDateInNativeFormat(this.props.value);\n const minDate = this.getDateInNativeFormat(this.props.minDate);\n const maxDate = this.getDateInNativeFormat(this.props.maxDate);\n\n return (\n <Month\n key={month.month + '-' + month.year}\n top={top}\n month={month}\n maxDate={maxDate}\n minDate={minDate}\n today={this.state.today}\n value={date}\n onDateClick={this.handleDateChange}\n onMonthYearChange={this.handleMonthYearChange}\n isHoliday={this.isHoliday}\n />\n );\n }\n\n private isHoliday = ({ date, month, year, isWeekend }: CalendarDateShape & { isWeekend: boolean }) => {\n const dateString = InternalDateTransformer.dateToInternalString({ date, month: month + 1, year });\n\n return this.getProps().isHoliday(dateString, isWeekend);\n };\n\n private handleDateChange = (dateShape: CalendarDateShape) => {\n const value = InternalDateTransformer.dateToInternalString({\n date: dateShape.date,\n month: dateShape.month + 1,\n year: dateShape.year,\n });\n\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n };\n\n private getDateInNativeFormat(date: Nullable<string>) {\n return new InternalDate().parseValue(date).toNativeFormat();\n }\n\n private getMonthPositions() {\n const { scrollPosition, months } = this.state;\n\n const positions = [scrollPosition - months[0].getHeight(this.theme)];\n for (let i = 1; i < months.length; i++) {\n const position = positions[i - 1] + months[i - 1].getHeight(this.theme);\n positions.push(position);\n }\n return positions;\n }\n\n private handleMonthYearChange = (month: number, year: number) => {\n this.scrollToMonth(month, year);\n };\n\n private executeAnimations = (pixelY: number) => {\n this.setState(({ months, scrollPosition }) => {\n const targetPosition = CalendarUtils.calculateScrollPosition(\n months,\n scrollPosition,\n pixelY,\n this.theme,\n ).scrollPosition;\n return { scrollTarget: targetPosition };\n }, this.handleWheelEnd);\n\n this.animation.animate(pixelY, (deltaY) => {\n // FIXME: Typescript not resolving setState cb type\n this.setState(CalendarUtils.applyDelta(deltaY, this.theme) as any);\n });\n\n CalendarScrollEvents.emit();\n };\n\n private handleTouchStart = (event: Event) => {\n if (!isInstanceOf(event, globalObject.TouchEvent)) {\n return;\n }\n\n const clientY = event.targetTouches[0].clientY;\n this.touchStartY = clientY;\n };\n\n private handleTouchMove = (event: Event) => {\n if (!isInstanceOf(event, globalObject.TouchEvent)) {\n return;\n }\n\n const { clientY } = event.changedTouches[0];\n\n const deltaY = (this.touchStartY || 0) - clientY;\n this.touchStartY = clientY;\n\n this.executeAnimations(deltaY);\n };\n\n private throttledHandleTouchMove = throttle(this.handleTouchMove, 10);\n\n private handleWheel = (event: Event) => {\n if (!isInstanceOf(event, globalObject.WheelEvent)) {\n return;\n }\n event.preventDefault();\n const { pixelY } = normalizeWheel(event);\n\n this.executeAnimations(pixelY);\n };\n\n private handleWheelEnd = () => {\n if (this.wheelEndTimeout) {\n globalObject.clearTimeout(this.wheelEndTimeout);\n }\n this.wheelEndTimeout = globalObject.setTimeout(this.scrollToNearestWeek, 300);\n };\n private scrollToNearestWeek = () => {\n const { scrollTarget, scrollDirection } = this.state;\n\n const trasholdHeight = themeConfig(this.theme).MONTH_TITLE_OFFSET_HEIGHT + themeConfig(this.theme).DAY_SIZE;\n\n if (scrollTarget < trasholdHeight) {\n let targetPosition = 0;\n if (scrollDirection < 0) {\n targetPosition = trasholdHeight;\n }\n\n this.setState({ scrollTarget: targetPosition }, () => {\n const amount = scrollTarget - targetPosition;\n this.animation.animate(amount, (deltaY) => {\n // FIXME: Typescript not resolving setState cb type\n this.setState(CalendarUtils.applyDelta(deltaY, this.theme) as any);\n });\n });\n }\n };\n\n private scrollTo = (pos: number, onEnd?: () => void) => {\n const scrollAmmount = pos - this.state.scrollPosition;\n return this.scrollAmount(scrollAmmount, onEnd);\n };\n\n private scrollAmount = (scrollAmmount: number, onEnd?: () => void) => {\n return this.animation.animate(\n scrollAmmount,\n (deltaY) => {\n this.setState(({ scrollPosition }) => ({\n scrollPosition: scrollPosition + deltaY,\n }));\n },\n onEnd,\n );\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["Calendar.tsx"],"names":["CalendarDataTids","root","month","dayCell","headerMonth","monthSelectMobile","headerYear","yearSelectMobile","Calendar","rootNode","formatDate","date","year","InternalDate","setComponents","toString","withPad","props","getProps","defaultProps","animation","touchStartY","scrollToMonth","inProgress","finish","Promise","r","globalObject","setTimeout","minDate","getDateInNativeFormat","maxDate","currentMonth","state","months","diffInMonths","scrollTo","maxMonthsToAdd","theme","MAX_MONTHS_TO_APPEND_ON_SCROLL","onEnd","setState","CalendarUtils","getMonths","scrollPosition","isYearChanges","Math","abs","monthsToPrependCount","min","monthsToPrepend","Array","from","length","_","index","MonthViewModel","create","yearChanges","isFirstInYear","isLastInYear","concat","getMonthsHeight","targetPosition","getHeight","monthsToAppendCount","monthsToAppend","slice","handleMonthChange","visibleMonths","changeInfo","getMonthInHumanFormat","onMonthChange","getViewModel","item","renderMain","monthsForRender","getVisibleMonths","wrapperStyle","height","WRAPPER_HEIGHT","styles","emotion","context","value","isHoliday","renderDay","today","getTodayDate","onDateClick","handleDateClick","setRootNode","refRoot","cx","wrapper","map","renderMonth","separator","element","isMobile","addEventListener","handleTouchStart","throttledHandleTouchMove","handleWheel","passive","removeEventListener","dateShape","InternalDateTransformer","dateToHumanString","onValueChange","handleMonthYearChange","executeAnimations","pixelY","calculateScrollPosition","scrollTarget","handleWheelEnd","animate","deltaY","applyDelta","CalendarScrollEvents","emit","event","TouchEvent","clientY","targetTouches","handleTouchMove","changedTouches","WheelEvent","preventDefault","wheelEndTimeout","clearTimeout","scrollToNearestWeek","scrollDirection","thresholdHeight","MONTH_TITLE_OFFSET_HEIGHT","DAY_HEIGHT","amount","pos","scrollAmmount","scrollAmount","minDateShape","maxDateShape","initialDate","getInitialDate","initialMonth","getMonthInNativeFormat","initialYear","componentDidUpdate","prevProps","prevState","parseValue","getComponentsLikeNumber","visibleMonthsModels","prevFirstVisibleMonthModels","prevCurrentMonth","componentWillUnmount","cancel","render","top","toNativeFormat","getMonthPositions","positions","i","position","push","x","filter","isMonthVisible","React","Component","__KONTUR_REACT_UI__","displayName","Day","CalendarDay","MIN_DATE","MIN_MONTH","MIN_YEAR","MAX_DATE","MAX_MONTH","MAX_YEAR","_day","isWeekend"],"mappings":"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","sourcesContent":["import React from 'react';\nimport normalizeWheel from 'normalize-wheel';\nimport throttle from 'lodash.throttle';\nimport shallowEqual from 'shallowequal';\nimport { globalObject, SafeTimer } from '@skbkontur/global-object';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport { InternalDate } from '../../lib/date/InternalDate';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { EmotionConsumer } from '../../lib/theming/Emotion';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { MAX_DATE, MAX_MONTH, MAX_YEAR, MIN_DATE, MIN_MONTH, MIN_YEAR } from '../../lib/date/constants';\nimport { Nullable, Range } from '../../typings/utility-types';\nimport { Theme } from '../../lib/theming/Theme';\nimport { animation } from '../../lib/animation';\nimport { isMobile } from '../../lib/client';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { InternalDateTransformer } from '../../lib/date/InternalDateTransformer';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\n\nimport { themeConfig } from './config';\nimport { MonthViewModel } from './MonthViewModel';\nimport * as CalendarScrollEvents from './CalendarScrollEvents';\nimport { Month } from './Month';\nimport { CalendarDateShape, create, isGreater, isLess } from './CalendarDateShape';\nimport * as CalendarUtils from './CalendarUtils';\nimport { CalendarContext, CalendarContextProps } from './CalendarContext';\nimport { getStyles } from './Calendar.styles';\nimport { CalendarDay, CalendarDayProps } from './CalendarDay';\n\nexport interface CalendarProps extends CommonProps {\n /**\n * Вызывается при изменении `value`\n *\n * В аргументе хранится дата в формате `dd.mm.yyyy`\n */\n onValueChange?: (date: string) => void;\n /**\n * Задаёт текущую дату\n *\n * Дата задаётся в формате `dd.mm.yyyy`\n */\n value: Nullable<string>;\n /**\n * Задаёт максимальную возможную дату\n *\n * Дата задаётся в формате `dd.mm.yyyy`\n */\n maxDate?: string;\n /**\n * Задаёт минимальную возможную дату\n *\n * Дата задаётся в формате `dd.mm.yyyy`\n */\n minDate?: string;\n /**\n * Функция для определения праздничных дней\n * @default (_day, isWeekend) => isWeekend\n * @param {string} day - строка в формате `dd.mm.yyyy`\n * @param {boolean} isWeekend - флаг выходного (суббота или воскресенье)\n *\n * @returns {boolean} `true` для выходного или `false` для рабочего дня\n */\n isHoliday?: (day: string, isWeekend: boolean) => boolean;\n /**\n * Позволяет задать начальный месяц\n */\n initialMonth?: Range<1, 13>;\n /**\n * Позволяет задать начальный год\n */\n initialYear?: number;\n /**\n * Метод отрисовки дат в календаре\n * @default (props: CalendarDayProps) => <CalendarDay {...props} />\n * @param {CalendarDayProps} props\n *\n * @returns {ReactElement} Элемент, который отрисовывает контент числа месяца.\n */\n renderDay?: (props: CalendarDayProps) => React.ReactElement;\n\n /**\n * Вызывается при каждом изменении месяца\n * @param {CalendarMonthChangeInfo} changeInfo - информация о изменении отображаемого месяца, где\n * `month: number` - номер текущего отображаемого месяца от 1 до 12,\n * `year: number` - отображаемый год,\n */\n onMonthChange?: (changeInfo: CalendarMonthChangeInfo) => void;\n}\n\nexport interface CalendarState {\n scrollPosition: number;\n months: MonthViewModel[];\n scrollDirection: number;\n scrollTarget: number;\n}\n\nexport interface CalendarMonthChangeInfo {\n month: number;\n year: number;\n}\n\nexport const CalendarDataTids = {\n root: 'Calendar__root',\n month: 'MonthView__month',\n dayCell: 'DayCellView__root',\n headerMonth: 'MonthView__headerMonth',\n monthSelectMobile: 'MonthView__monthSelectMobile',\n headerYear: 'MonthView__headerYear',\n yearSelectMobile: 'MonthView__yearSelectMobile',\n} as const;\n\ntype DefaultProps = Required<Pick<CalendarProps, 'minDate' | 'maxDate' | 'isHoliday'>>;\n\n/**\n * Компонент календаря из [DatePicker](https://tech.skbkontur.ru/react-ui/#/Components/DatePicker)'а\n */\n@rootNode\nexport class Calendar extends React.Component<CalendarProps, CalendarState> {\n public static __KONTUR_REACT_UI__ = 'Calendar';\n public static displayName = 'Calendar';\n\n public static Day = CalendarDay;\n\n private static formatDate(date: number, month: number, year: number) {\n return new InternalDate().setComponents({ date, month, year }).toString({ withPad: true });\n }\n\n public static defaultProps: DefaultProps = {\n minDate: Calendar.formatDate(MIN_DATE, MIN_MONTH, MIN_YEAR),\n maxDate: Calendar.formatDate(MAX_DATE, MAX_MONTH, MAX_YEAR),\n isHoliday: (_day: string, isWeekend: boolean) => isWeekend,\n };\n\n private getProps = createPropsGetter(Calendar.defaultProps);\n\n private theme!: Theme;\n private emotion!: Emotion;\n private wheelEndTimeout: SafeTimer;\n private root: Nullable<HTMLElement>;\n private animation = animation();\n private touchStartY: Nullable<number> = null;\n private setRootNode!: TSetRootNode;\n\n constructor(props: CalendarProps) {\n super(props);\n\n const { minDate, maxDate, value } = this.getProps();\n\n const minDateShape = this.getDateInNativeFormat(minDate);\n const maxDateShape = this.getDateInNativeFormat(maxDate);\n const dateShape = this.getDateInNativeFormat(value);\n\n const today = CalendarUtils.getTodayDate();\n const initialDate = CalendarUtils.getInitialDate({\n today,\n date: dateShape,\n minDate: minDateShape,\n maxDate: maxDateShape,\n });\n\n const initialMonth = this.props.initialMonth\n ? CalendarUtils.getMonthInNativeFormat(this.props.initialMonth)\n : initialDate.month;\n const initialYear = this.props.initialYear ?? initialDate.year;\n\n this.state = {\n scrollPosition: 0,\n months: CalendarUtils.getMonths(initialMonth, initialYear),\n scrollDirection: 1,\n scrollTarget: 0,\n };\n }\n\n public componentDidUpdate(prevProps: Readonly<CalendarProps>, prevState: Readonly<CalendarState>): void {\n const { value, onMonthChange } = this.props;\n if (value && !shallowEqual(value, prevProps.value)) {\n const date = new InternalDate().parseValue(value).getComponentsLikeNumber();\n this.scrollToMonth(date.month - 1, date.year);\n }\n\n if (onMonthChange) {\n const visibleMonthsModels = this.getVisibleMonths(this.state).map(this.getViewModel);\n const prevFirstVisibleMonthModels = this.getVisibleMonths(prevState).map(this.getViewModel);\n const currentMonth = visibleMonthsModels[0].month;\n const prevCurrentMonth = prevFirstVisibleMonthModels[0].month;\n\n if (currentMonth !== prevCurrentMonth) {\n this.handleMonthChange(visibleMonthsModels);\n }\n }\n }\n\n public componentWillUnmount() {\n if (this.animation.inProgress()) {\n this.animation.cancel();\n }\n }\n\n public render() {\n return (\n <EmotionConsumer>\n {(emotion) => {\n this.emotion = emotion;\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }}\n </EmotionConsumer>\n );\n }\n\n /**\n * Прокручивает календарь до переданной даты\n * @public\n */\n public scrollToMonth = async (month: number, year: number) => {\n if (this.animation.inProgress()) {\n this.animation.finish();\n // FIXME: Dirty hack to await batched updates\n await new Promise((r) => globalObject.setTimeout(r, 0));\n }\n\n const minDate = this.getDateInNativeFormat(this.getProps().minDate);\n const maxDate = this.getDateInNativeFormat(this.getProps().maxDate);\n\n if (minDate && isGreater(minDate, create(32, month, year))) {\n this.scrollToMonth(minDate.month, minDate.year);\n return;\n }\n\n if (maxDate && isLess(maxDate, create(0, month, year))) {\n this.scrollToMonth(maxDate.month, maxDate.year);\n return;\n }\n\n const currentMonth = this.state.months[1];\n const diffInMonths = currentMonth.month + currentMonth.year * 12 - month - year * 12;\n\n if (diffInMonths === 0) {\n this.scrollTo(0);\n return;\n }\n\n const maxMonthsToAdd = themeConfig(this.theme).MAX_MONTHS_TO_APPEND_ON_SCROLL;\n\n const onEnd = () => {\n this.setState({\n months: CalendarUtils.getMonths(month, year),\n scrollPosition: 0,\n });\n };\n\n const isYearChanges = (state: CalendarState) => {\n return (\n state.months[1].year !== year &&\n // if diff in months is 2 or less,\n // either year is not changing either months already\n // have right isFirstInYear/isLastInYear flags\n Math.abs(diffInMonths) > 2\n );\n };\n\n // If scrolling upwards, prepend maximum maxMonthsToAdd months\n // and scroll to the first month\n if (diffInMonths > 0) {\n const monthsToPrependCount = Math.min(Math.abs(diffInMonths) - 1, maxMonthsToAdd);\n const monthsToPrepend = Array.from({ length: monthsToPrependCount }, (_, index) => {\n return MonthViewModel.create(month + index, year);\n });\n this.setState(\n (state) => {\n const yearChanges = isYearChanges(state);\n if (yearChanges) {\n // Mutating here can lead to some unexpected bugs\n // but we couldn't find any yet\n state.months[0].isFirstInYear = true;\n if (monthsToPrepend.length) {\n // Mutating item here is safe as it was just created\n monthsToPrepend[monthsToPrepend.length - 1].isLastInYear = true;\n }\n }\n return {\n months: monthsToPrepend.concat(state.months),\n scrollPosition: -CalendarUtils.getMonthsHeight(monthsToPrepend, this.theme),\n };\n },\n () => {\n const targetPosition = this.state.months[0].getHeight(this.theme);\n this.scrollTo(targetPosition, onEnd);\n },\n );\n }\n\n // If scrolling downwards, append maximum maxMonthsToAdd months\n // and scroll to the last but one month\n if (diffInMonths < 0) {\n const monthsToAppendCount = Math.min(Math.abs(diffInMonths), maxMonthsToAdd);\n const monthsToAppend = Array.from({ length: monthsToAppendCount }, (_, index) => {\n return MonthViewModel.create(month + index - monthsToAppendCount + 2, year);\n });\n this.setState(\n (state) => {\n if (isYearChanges(state)) {\n // Mutating here can lead to some unexpected bugs\n // but we couldn't find any yet\n state.months[state.months.length - 1].isLastInYear = true;\n // Mutating item here is safe as it was just created\n if (monthsToAppend[0]) {\n monthsToAppend[0].isFirstInYear = true;\n }\n }\n return { months: state.months.concat(monthsToAppend) };\n },\n () => {\n const targetPosition = -1 * CalendarUtils.getMonthsHeight(this.state.months.slice(1, -2), this.theme);\n this.scrollTo(targetPosition, onEnd);\n },\n );\n }\n };\n\n private handleMonthChange = (visibleMonths: MonthViewModel[]): void => {\n const currentMonth = visibleMonths[0];\n const changeInfo = {\n month: CalendarUtils.getMonthInHumanFormat(currentMonth.month),\n year: currentMonth.year,\n };\n\n this.props.onMonthChange?.(changeInfo);\n };\n\n private getViewModel = (item: [number, MonthViewModel]): MonthViewModel => item[1];\n\n private renderMain = () => {\n const monthsForRender = this.getVisibleMonths(this.state);\n const wrapperStyle = { height: themeConfig(this.theme).WRAPPER_HEIGHT };\n\n const props = this.getProps();\n const styles = getStyles(this.emotion);\n\n const context: CalendarContextProps = {\n value: this.getDateInNativeFormat(props.value),\n minDate: this.getDateInNativeFormat(props.minDate),\n maxDate: this.getDateInNativeFormat(props.maxDate),\n isHoliday: props.isHoliday,\n renderDay: props.renderDay,\n today: CalendarUtils.getTodayDate(),\n onDateClick: this.handleDateClick,\n };\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...props}>\n <div ref={this.refRoot} data-tid={CalendarDataTids.root} className={this.emotion.cx(styles.root(this.theme))}>\n <div style={wrapperStyle} className={styles.wrapper()}>\n <CalendarContext.Provider value={context}>\n {monthsForRender.map(this.renderMonth, this)}\n </CalendarContext.Provider>\n </div>\n <div className={styles.separator(this.theme)} />\n </div>\n </CommonWrapper>\n );\n };\n\n private refRoot = (element: HTMLElement | null) => {\n if (!this.root && element) {\n if (isMobile) {\n element.addEventListener('touchstart', this.handleTouchStart);\n element.addEventListener('touchmove', this.throttledHandleTouchMove);\n } else {\n element.addEventListener('wheel', this.handleWheel, { passive: false });\n }\n }\n if (this.root && !element) {\n if (isMobile) {\n this.root.removeEventListener('touchstart', this.handleTouchStart);\n this.root.removeEventListener('touchmove', this.throttledHandleTouchMove);\n } else {\n this.root.removeEventListener('wheel', this.handleWheel);\n }\n }\n this.root = element;\n };\n\n private renderMonth([top, month]: [number, MonthViewModel]) {\n return (\n <Month\n key={month.month + '-' + month.year}\n top={top}\n month={month}\n onMonthYearChange={this.handleMonthYearChange}\n />\n );\n }\n\n private handleDateClick = (dateShape: CalendarDateShape) => {\n const value = InternalDateTransformer.dateToHumanString(dateShape);\n\n this.props.onValueChange?.(value);\n };\n\n private getDateInNativeFormat(date: Nullable<string>) {\n return new InternalDate().parseValue(date).toNativeFormat();\n }\n\n private getMonthPositions(months: MonthViewModel[], scrollPosition: number) {\n const positions = [scrollPosition - months[0].getHeight(this.theme)];\n for (let i = 1; i < months.length; i++) {\n const position = positions[i - 1] + months[i - 1].getHeight(this.theme);\n positions.push(position);\n }\n return positions;\n }\n\n private getVisibleMonths(state: Readonly<CalendarState>): Array<[number, MonthViewModel]> {\n const { months, scrollPosition } = state;\n const positions = this.getMonthPositions(months, scrollPosition);\n\n return months\n .map<[number, MonthViewModel]>((x, i) => [positions[i], x])\n .filter(([top, month]) => CalendarUtils.isMonthVisible(top, month, this.theme));\n }\n\n private handleMonthYearChange = (month: number, year: number) => {\n this.scrollToMonth(month, year);\n };\n\n private executeAnimations = (pixelY: number) => {\n this.setState(({ months, scrollPosition }) => {\n const targetPosition = CalendarUtils.calculateScrollPosition(\n months,\n scrollPosition,\n pixelY,\n this.theme,\n ).scrollPosition;\n return { scrollTarget: targetPosition };\n }, this.handleWheelEnd);\n\n this.animation.animate(pixelY, (deltaY) => {\n // FIXME: Typescript not resolving setState cb type\n this.setState(CalendarUtils.applyDelta(deltaY, this.theme) as any);\n });\n\n CalendarScrollEvents.emit();\n };\n\n private handleTouchStart = (event: Event) => {\n if (!isInstanceOf(event, globalObject.TouchEvent)) {\n return;\n }\n\n const clientY = event.targetTouches[0].clientY;\n this.touchStartY = clientY;\n };\n\n private handleTouchMove = (event: Event) => {\n if (!isInstanceOf(event, globalObject.TouchEvent)) {\n return;\n }\n\n const { clientY } = event.changedTouches[0];\n\n const deltaY = (this.touchStartY || 0) - clientY;\n this.touchStartY = clientY;\n\n this.executeAnimations(deltaY);\n };\n\n private throttledHandleTouchMove = throttle(this.handleTouchMove, 10);\n\n private handleWheel = (event: Event) => {\n if (!isInstanceOf(event, globalObject.WheelEvent)) {\n return;\n }\n event.preventDefault();\n const { pixelY } = normalizeWheel(event);\n\n this.executeAnimations(pixelY);\n };\n\n private handleWheelEnd = () => {\n if (this.wheelEndTimeout) {\n globalObject.clearTimeout(this.wheelEndTimeout);\n }\n this.wheelEndTimeout = globalObject.setTimeout(this.scrollToNearestWeek, 300);\n };\n private scrollToNearestWeek = () => {\n const { scrollTarget, scrollDirection } = this.state;\n\n const thresholdHeight = themeConfig(this.theme).MONTH_TITLE_OFFSET_HEIGHT + themeConfig(this.theme).DAY_HEIGHT;\n\n if (scrollTarget < thresholdHeight) {\n let targetPosition = 0;\n if (scrollDirection < 0) {\n targetPosition = thresholdHeight;\n }\n\n this.setState({ scrollTarget: targetPosition }, () => {\n const amount = scrollTarget - targetPosition;\n this.animation.animate(amount, (deltaY) => {\n // FIXME: Typescript not resolving setState cb type\n this.setState(CalendarUtils.applyDelta(deltaY, this.theme) as any);\n });\n });\n }\n };\n\n private scrollTo = (pos: number, onEnd?: () => void) => {\n const scrollAmmount = pos - this.state.scrollPosition;\n return this.scrollAmount(scrollAmmount, onEnd);\n };\n\n private scrollAmount = (scrollAmmount: number, onEnd?: () => void) => {\n return this.animation.animate(\n scrollAmmount,\n (deltaY) => {\n this.setState(({ scrollPosition }) => ({\n scrollPosition: scrollPosition + deltaY,\n }));\n },\n onEnd,\n );\n };\n}\n"]}
|
|
@@ -82,10 +82,11 @@ const isHoliday = (day, isWeekend) => {
|
|
|
82
82
|
<Calendar isHoliday={isHoliday} value={date} onValueChange={setDate} />;
|
|
83
83
|
```
|
|
84
84
|
|
|
85
|
-
|
|
86
85
|
Календарю можно задать кастомную высоту с помощью переменной темы `calendarWrapperHeight`
|
|
86
|
+
|
|
87
87
|
- Базовая высота календаря - `330px`
|
|
88
88
|
- Максимальная высота календаря - `450px`
|
|
89
|
+
|
|
89
90
|
```jsx harmony
|
|
90
91
|
import { ThemeContext } from '@skbkontur/react-ui/lib/theming/ThemeContext';
|
|
91
92
|
import { ThemeFactory } from '@skbkontur/react-ui/lib/theming/ThemeFactory';
|
|
@@ -103,6 +104,86 @@ const theme = React.useContext(ThemeContext);
|
|
|
103
104
|
</ThemeContext.Provider>
|
|
104
105
|
```
|
|
105
106
|
|
|
107
|
+
### Кастомный рендер дня
|
|
108
|
+
|
|
109
|
+
Для кастомнизации дней в календаре используется метод `renderDay` и компонент [Calendar.Day](#/Components/Calendar/Calendar.Day)
|
|
110
|
+
|
|
111
|
+
```jsx harmony
|
|
112
|
+
import { Tooltip, Hint, CalendarDay } from '@skbkontur/react-ui';
|
|
113
|
+
|
|
114
|
+
const initialValue = "02.09.2023";
|
|
115
|
+
|
|
116
|
+
const [value, setValue] = React.useState(initialValue);
|
|
117
|
+
|
|
118
|
+
const renderDay = (props) => {
|
|
119
|
+
const [date, month, year] = props.date.split('.').map(Number);
|
|
120
|
+
|
|
121
|
+
if (month == 9 && date > 12 && date < 16) {
|
|
122
|
+
return (
|
|
123
|
+
<Tooltip render={() => "Кастомный день"}>
|
|
124
|
+
<CalendarDay {...props} style={{ background: 'darkgray' }} />
|
|
125
|
+
</Tooltip>
|
|
126
|
+
);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
if (month == 8 && date == 20) {
|
|
130
|
+
return (
|
|
131
|
+
<Hint text={date} pos="right middle">
|
|
132
|
+
<CalendarDay {...props}>
|
|
133
|
+
<b style={{color: 'orange'}}>#</b>
|
|
134
|
+
</CalendarDay>
|
|
135
|
+
</Hint>
|
|
136
|
+
);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
return <CalendarDay {...props} />
|
|
140
|
+
};
|
|
141
|
+
|
|
142
|
+
<Calendar
|
|
143
|
+
value={value}
|
|
144
|
+
onValueChange={setValue}
|
|
145
|
+
renderDay={renderDay}
|
|
146
|
+
/>;
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
### Календарь с ценами
|
|
150
|
+
|
|
151
|
+
Пример с кастомизацией темы и кастомным рендером дня
|
|
152
|
+
|
|
153
|
+
```jsx harmony
|
|
154
|
+
import { ThemeContext, ThemeFactory, CalendarDay } from '@skbkontur/react-ui';
|
|
155
|
+
|
|
156
|
+
const theme = React.useContext(ThemeContext);
|
|
157
|
+
|
|
158
|
+
function renderDay(props) {
|
|
159
|
+
const [date, month] = props.date.split('.').map(Number);
|
|
160
|
+
const randomDay = date % 6 === 0 || date % 7 === 0 || date % 8 === 0;
|
|
161
|
+
const randomPrice = Math.round((date / month) * 1000);
|
|
162
|
+
|
|
163
|
+
return (
|
|
164
|
+
<CalendarDay {...props}>
|
|
165
|
+
<div style={{ fontSize: theme.calendarCellFontSize }}>{date}</div>
|
|
166
|
+
<div style={{ fontSize: '11px', fontFeatureSettings: 'tnum', fontVariantNumeric: 'tabular-nums' }}>
|
|
167
|
+
{randomDay ? <>{randomPrice} ₽</> : <span style={{ color: theme.tokenTextColorDisabled }}>—</span>}
|
|
168
|
+
</div>
|
|
169
|
+
</CalendarDay>
|
|
170
|
+
);
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
const [value, setValue] = React.useState(null);
|
|
174
|
+
|
|
175
|
+
<ThemeContext.Provider
|
|
176
|
+
value={ThemeFactory.create({
|
|
177
|
+
calendarCellSize: '56px',
|
|
178
|
+
calendarCellLineHeight: '1.5',
|
|
179
|
+
calendarWrapperHeight: '600px',
|
|
180
|
+
calendarCellBorderRadius: '8px'
|
|
181
|
+
}, theme)}
|
|
182
|
+
>
|
|
183
|
+
<Calendar value={value} renderDay={renderDay} onValueChange={setValue} />
|
|
184
|
+
</ThemeContext.Provider>
|
|
185
|
+
```
|
|
186
|
+
|
|
106
187
|
#### Локали по умолчанию
|
|
107
188
|
|
|
108
189
|
```typescript static
|
|
@@ -6,7 +6,7 @@ var _Emotion = require("../../lib/theming/Emotion");var _templateObject, _templa
|
|
|
6
6
|
var getStyles = function getStyles(emotion) {return (
|
|
7
7
|
(0, _Emotion.memoizeStyle)({
|
|
8
8
|
root: function root(t) {
|
|
9
|
-
var width = parseInt(t.
|
|
9
|
+
var width = parseInt(t.calendarCellWidth) * 7;
|
|
10
10
|
return emotion.css(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["\n background: ", ";\n box-sizing: content-box;\n border-radius: ", ";\n color: ", ";\n display: block;\n padding: 0 ", ";\n width: ", "px;\n touch-action: none;\n "])),
|
|
11
11
|
t.calendarBg,
|
|
12
12
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Calendar.styles.ts"],"names":["getStyles","emotion","root","t","width","parseInt","
|
|
1
|
+
{"version":3,"sources":["Calendar.styles.ts"],"names":["getStyles","emotion","root","t","width","parseInt","calendarCellWidth","css","calendarBg","pickerBorderRadius","textColorDefault","calendarPaddingX","wrapper","separator","calendarBottomSeparatorBorder","calendarMonthTitleMarginX"],"mappings":";;AAEA,oD;;;AAGO,IAAMA,SAAS,GAAG,SAAZA,SAAY,CAACC,OAAD;AACvB,+BAAa;AACXC,MAAAA,IADW,gBACNC,CADM,EACI;AACb,YAAMC,KAAK,GAAGC,QAAQ,CAACF,CAAC,CAACG,iBAAH,CAAR,GAAgC,CAA9C;AACA,eAAOL,OAAO,CAACM,GAAf;AACgBJ,QAAAA,CAAC,CAACK,UADlB;;AAGmBL,QAAAA,CAAC,CAACM,kBAHrB;AAIWN,QAAAA,CAAC,CAACO,gBAJb;;AAMeP,QAAAA,CAAC,CAACQ,gBANjB;AAOWP,QAAAA,KAPX;;;AAUD,OAbU;;AAeXQ,MAAAA,OAfW,qBAeD;AACR,eAAOX,OAAO,CAACM,GAAf;;;;;AAKD,OArBU;;AAuBXM,MAAAA,SAvBW,qBAuBDV,CAvBC,EAuBS;AAClB,eAAOF,OAAO,CAACM,GAAf;AACmBJ,QAAAA,CAAC,CAACW,6BADrB;AAEcX,QAAAA,CAAC,CAACY,yBAFhB;;AAID,OA5BU,EAAb,CADuB,GAAlB,C","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\n\nimport { memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\n\nexport const getStyles = (emotion: Emotion) =>\n memoizeStyle({\n root(t: Theme) {\n const width = parseInt(t.calendarCellWidth) * 7;\n return emotion.css`\n background: ${t.calendarBg};\n box-sizing: content-box;\n border-radius: ${t.pickerBorderRadius};\n color: ${t.textColorDefault};\n display: block;\n padding: 0 ${t.calendarPaddingX};\n width: ${width}px;\n touch-action: none;\n `;\n },\n\n wrapper() {\n return emotion.css`\n font-size: 14px;\n position: relative;\n overflow: hidden;\n `;\n },\n\n separator(t: Theme) {\n return emotion.css`\n border-bottom: ${t.calendarBottomSeparatorBorder};\n margin: 0 ${t.calendarMonthTitleMarginX};\n `;\n },\n });\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { CalendarDateShape } from './CalendarDateShape';
|
|
2
|
+
import { CalendarProps } from './Calendar';
|
|
3
|
+
export interface CalendarContextProps {
|
|
4
|
+
renderDay?: CalendarProps['renderDay'];
|
|
5
|
+
value?: CalendarDateShape;
|
|
6
|
+
minDate?: CalendarDateShape;
|
|
7
|
+
maxDate?: CalendarDateShape;
|
|
8
|
+
isHoliday?: CalendarProps['isHoliday'];
|
|
9
|
+
today?: CalendarDateShape;
|
|
10
|
+
onDateClick?: (date: CalendarDateShape) => void;
|
|
11
|
+
}
|
|
12
|
+
export declare const CalendarContext: import("react").Context<CalendarContextProps>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["CalendarContext.ts"],"names":["CalendarContext"],"mappings":"wEAAA;;;;;;;;;;;;;;;AAeO,IAAMA,eAAe,gBAAG,0BAAoC,EAApC,CAAxB,C","sourcesContent":["import { createContext } from 'react';\n\nimport { CalendarDateShape } from './CalendarDateShape';\nimport { CalendarProps } from './Calendar';\n\nexport interface CalendarContextProps {\n renderDay?: CalendarProps['renderDay'];\n value?: CalendarDateShape;\n minDate?: CalendarDateShape;\n maxDate?: CalendarDateShape;\n isHoliday?: CalendarProps['isHoliday'];\n today?: CalendarDateShape;\n onDateClick?: (date: CalendarDateShape) => void;\n}\n\nexport const CalendarContext = createContext<CalendarContextProps>({});\n"]}
|
|
@@ -4,11 +4,13 @@ export interface CalendarDateShape {
|
|
|
4
4
|
month: number;
|
|
5
5
|
date: number;
|
|
6
6
|
}
|
|
7
|
-
export declare const isEqual: (a: Nullable<CalendarDateShape>, b: Nullable<CalendarDateShape>) => boolean
|
|
7
|
+
export declare const isEqual: (a: Nullable<CalendarDateShape>, b: Nullable<CalendarDateShape>) => boolean;
|
|
8
8
|
export declare const comparator: (a: CalendarDateShape, b: CalendarDateShape) => 0 | 1 | -1;
|
|
9
9
|
export declare const create: (date: number, month: number, year: number) => CalendarDateShape;
|
|
10
10
|
export declare const isLess: (left: CalendarDateShape, right: CalendarDateShape) => boolean;
|
|
11
|
-
export declare const isLessOrEqual: (left: CalendarDateShape, right: CalendarDateShape) => boolean
|
|
11
|
+
export declare const isLessOrEqual: (left: CalendarDateShape, right: CalendarDateShape) => boolean;
|
|
12
12
|
export declare const isGreater: (left: CalendarDateShape, right: CalendarDateShape) => boolean;
|
|
13
13
|
export declare const isGreaterOrEqual: (left: CalendarDateShape, right: CalendarDateShape) => boolean;
|
|
14
14
|
export declare const isBetween: (date: CalendarDateShape, left?: Nullable<CalendarDateShape>, right?: Nullable<CalendarDateShape>) => boolean;
|
|
15
|
+
export declare const fromString: (dateString: string) => CalendarDateShape;
|
|
16
|
+
export declare const toString: ({ date, month, year }: CalendarDateShape) => string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";exports.__esModule = true;exports.isLessOrEqual = exports.isLess = exports.isGreaterOrEqual = exports.isGreater = exports.isEqual = exports.isBetween = exports.create = exports.comparator = void 0;
|
|
1
|
+
"use strict";exports.__esModule = true;exports.toString = exports.isLessOrEqual = exports.isLess = exports.isGreaterOrEqual = exports.isGreater = exports.isEqual = exports.isBetween = exports.fromString = exports.create = exports.comparator = void 0;
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
var isEqual = function isEqual(a, b) {return (
|
|
10
|
-
!a && !b || a && b && a.year === b.year && a.month === b.month && a.date === b.date);};exports.isEqual = isEqual;
|
|
10
|
+
Boolean(!a && !b || a && b && a.year === b.year && a.month === b.month && a.date === b.date));};exports.isEqual = isEqual;
|
|
11
11
|
|
|
12
12
|
var comparator = function comparator(a, b) {
|
|
13
13
|
if (a.year < b.year) {
|
|
@@ -49,4 +49,14 @@ right)
|
|
|
49
49
|
return false;
|
|
50
50
|
}
|
|
51
51
|
return true;
|
|
52
|
-
};exports.isBetween = isBetween;
|
|
52
|
+
};exports.isBetween = isBetween;
|
|
53
|
+
|
|
54
|
+
var fromString = function fromString(dateString) {
|
|
55
|
+
var _dateString$split$map = dateString.split('.').map(Number),date = _dateString$split$map[0],month = _dateString$split$map[1],year = _dateString$split$map[2];
|
|
56
|
+
return create(date, month, year);
|
|
57
|
+
};exports.fromString = fromString;
|
|
58
|
+
|
|
59
|
+
var toString = function toString(_ref) {var date = _ref.date,month = _ref.month,year = _ref.year;
|
|
60
|
+
var _map = [date, month, year].map(function (x) {return x.toString();}),d = _map[0],m = _map[1],y = _map[2];
|
|
61
|
+
return d.padStart(2, '0') + "." + m.padStart(2, '0') + "." + y.padStart(4, '0');
|
|
62
|
+
};exports.toString = toString;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["CalendarDateShape.ts"],"names":["isEqual","a","b","year","month","date","comparator","create","isLess","left","right","isLessOrEqual","isGreater","isGreaterOrEqual","isBetween"],"mappings":";;;;;;;;AAQO,IAAMA,OAAO,GAAG,SAAVA,OAAU,CAACC,CAAD,EAAiCC,CAAjC;
|
|
1
|
+
{"version":3,"sources":["CalendarDateShape.ts"],"names":["isEqual","a","b","Boolean","year","month","date","comparator","create","isLess","left","right","isLessOrEqual","isGreater","isGreaterOrEqual","isBetween","fromString","dateString","split","map","Number","toString","x","d","m","y","padStart"],"mappings":";;;;;;;;AAQO,IAAMA,OAAO,GAAG,SAAVA,OAAU,CAACC,CAAD,EAAiCC,CAAjC;AACrBC,IAAAA,OAAO,CAAE,CAACF,CAAD,IAAM,CAACC,CAAR,IAAeD,CAAC,IAAIC,CAAL,IAAUD,CAAC,CAACG,IAAF,KAAWF,CAAC,CAACE,IAAvB,IAA+BH,CAAC,CAACI,KAAF,KAAYH,CAAC,CAACG,KAA7C,IAAsDJ,CAAC,CAACK,IAAF,KAAWJ,CAAC,CAACI,IAAnF,CADc,GAAhB,C;;AAGA,IAAMC,UAAU,GAAG,SAAbA,UAAa,CAACN,CAAD,EAAuBC,CAAvB,EAAgD;AACxE,MAAID,CAAC,CAACG,IAAF,GAASF,CAAC,CAACE,IAAf,EAAqB;AACnB,WAAO,CAAC,CAAR;AACD,GAFD,MAEO,IAAIH,CAAC,CAACG,IAAF,GAASF,CAAC,CAACE,IAAf,EAAqB;AAC1B,WAAO,CAAP;AACD,GAFM,MAEA,IAAIH,CAAC,CAACI,KAAF,GAAUH,CAAC,CAACG,KAAhB,EAAuB;AAC5B,WAAO,CAAC,CAAR;AACD,GAFM,MAEA,IAAIJ,CAAC,CAACI,KAAF,GAAUH,CAAC,CAACG,KAAhB,EAAuB;AAC5B,WAAO,CAAP;AACD,GAFM,MAEA,IAAIJ,CAAC,CAACK,IAAF,GAASJ,CAAC,CAACI,IAAf,EAAqB;AAC1B,WAAO,CAAC,CAAR;AACD,GAFM,MAEA,IAAIL,CAAC,CAACK,IAAF,GAASJ,CAAC,CAACI,IAAf,EAAqB;AAC1B,WAAO,CAAP;AACD;AACD,SAAO,CAAP;AACD,CAfM,C;;AAiBA,IAAME,MAAM,GAAG,SAATA,MAAS,CAACF,IAAD,EAAeD,KAAf,EAA8BD,IAA9B,UAAmE,EAAEE,IAAI,EAAJA,IAAF,EAAQD,KAAK,EAALA,KAAR,EAAeD,IAAI,EAAJA,IAAf,EAAnE,EAAf,C;;AAEA,IAAMK,MAAM,GAAG,SAATA,MAAS,CAACC,IAAD,EAA0BC,KAA1B,UAAuDJ,UAAU,CAACG,IAAD,EAAOC,KAAP,CAAV,KAA4B,CAAC,CAApF,EAAf,C;;AAEA,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAACF,IAAD,EAA0BC,KAA1B;AAC3BF,IAAAA,MAAM,CAACC,IAAD,EAAOC,KAAP,CAAN,IAAuBX,OAAO,CAACU,IAAD,EAAOC,KAAP,CADH,GAAtB,C;;AAGA,IAAME,SAAS,GAAG,SAAZA,SAAY,CAACH,IAAD,EAA0BC,KAA1B,UAAuD,CAACC,aAAa,CAACF,IAAD,EAAOC,KAAP,CAArE,EAAlB,C;;AAEA,IAAMG,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACJ,IAAD,EAA0BC,KAA1B,UAAuD,CAACF,MAAM,CAACC,IAAD,EAAOC,KAAP,CAA9D,EAAzB,C;;AAEA,IAAMI,SAAS,GAAG,SAAZA,SAAY;AACvBT,IADuB;AAEvBI,IAFuB;AAGvBC,KAHuB;AAIpB;AACH,MAAID,IAAI,IAAID,MAAM,CAACH,IAAD,EAAOI,IAAP,CAAlB,EAAgC;AAC9B,WAAO,KAAP;AACD;AACD,MAAIC,KAAK,IAAIE,SAAS,CAACP,IAAD,EAAOK,KAAP,CAAtB,EAAqC;AACnC,WAAO,KAAP;AACD;AACD,SAAO,IAAP;AACD,CAZM,C;;AAcA,IAAMK,UAAU,GAAG,SAAbA,UAAa,CAACC,UAAD,EAA2C;AACnE,8BAA4BA,UAAU,CAACC,KAAX,CAAiB,GAAjB,EAAsBC,GAAtB,CAA0BC,MAA1B,CAA5B,CAAOd,IAAP,4BAAaD,KAAb,4BAAoBD,IAApB;AACA,SAAOI,MAAM,CAACF,IAAD,EAAOD,KAAP,EAAcD,IAAd,CAAb;AACD,CAHM,C;;AAKA,IAAMiB,QAAQ,GAAG,SAAXA,QAAW,OAAsD,KAAnDf,IAAmD,QAAnDA,IAAmD,CAA7CD,KAA6C,QAA7CA,KAA6C,CAAtCD,IAAsC,QAAtCA,IAAsC;AAC5E,aAAkB,CAACE,IAAD,EAAOD,KAAP,EAAcD,IAAd,EAAoBe,GAApB,CAAwB,UAACG,CAAD,UAAOA,CAAC,CAACD,QAAF,EAAP,EAAxB,CAAlB,CAAOE,CAAP,WAAUC,CAAV,WAAaC,CAAb;AACA,SAAUF,CAAC,CAACG,QAAF,CAAW,CAAX,EAAc,GAAd,CAAV,SAAgCF,CAAC,CAACE,QAAF,CAAW,CAAX,EAAc,GAAd,CAAhC,SAAsDD,CAAC,CAACC,QAAF,CAAW,CAAX,EAAc,GAAd,CAAtD;AACD,CAHM,C","sourcesContent":["import { Nullable } from '../../typings/utility-types';\n\nexport interface CalendarDateShape {\n year: number;\n month: number;\n date: number;\n}\n\nexport const isEqual = (a: Nullable<CalendarDateShape>, b: Nullable<CalendarDateShape>) =>\n Boolean((!a && !b) || (a && b && a.year === b.year && a.month === b.month && a.date === b.date));\n\nexport const comparator = (a: CalendarDateShape, b: CalendarDateShape) => {\n if (a.year < b.year) {\n return -1;\n } else if (a.year > b.year) {\n return 1;\n } else if (a.month < b.month) {\n return -1;\n } else if (a.month > b.month) {\n return 1;\n } else if (a.date < b.date) {\n return -1;\n } else if (a.date > b.date) {\n return 1;\n }\n return 0;\n};\n\nexport const create = (date: number, month: number, year: number): CalendarDateShape => ({ date, month, year });\n\nexport const isLess = (left: CalendarDateShape, right: CalendarDateShape) => comparator(left, right) === -1;\n\nexport const isLessOrEqual = (left: CalendarDateShape, right: CalendarDateShape) =>\n isLess(left, right) || isEqual(left, right);\n\nexport const isGreater = (left: CalendarDateShape, right: CalendarDateShape) => !isLessOrEqual(left, right);\n\nexport const isGreaterOrEqual = (left: CalendarDateShape, right: CalendarDateShape) => !isLess(left, right);\n\nexport const isBetween = (\n date: CalendarDateShape,\n left?: Nullable<CalendarDateShape>,\n right?: Nullable<CalendarDateShape>,\n) => {\n if (left && isLess(date, left)) {\n return false;\n }\n if (right && isGreater(date, right)) {\n return false;\n }\n return true;\n};\n\nexport const fromString = (dateString: string): CalendarDateShape => {\n const [date, month, year] = dateString.split('.').map(Number);\n return create(date, month, year);\n};\n\nexport const toString = ({ date, month, year }: CalendarDateShape): string => {\n const [d, m, y] = [date, month, year].map((x) => x.toString());\n return `${d.padStart(2, '0')}.${m.padStart(2, '0')}.${y.padStart(4, '0')}`;\n};\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface CalendarDayProps extends React.HTMLAttributes<HTMLButtonElement> {
|
|
3
|
+
isToday?: boolean;
|
|
4
|
+
isSelected?: boolean;
|
|
5
|
+
isDisabled?: boolean;
|
|
6
|
+
isWeekend?: boolean;
|
|
7
|
+
date: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* @visibleName Calendar.Day
|
|
11
|
+
*/
|
|
12
|
+
export declare const CalendarDay: React.MemoExoticComponent<import("../../lib/forwardRefAndName").ReactUIComponentWithRef<HTMLButtonElement, CalendarDayProps> & Record<string, unknown>>;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;exports.__esModule = true;exports.CalendarDay = void 0;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));var _react = _interopRequireWildcard(require("react"));
|
|
2
|
+
|
|
3
|
+
var _useLocaleForControl = require("../../lib/locale/useLocaleForControl");
|
|
4
|
+
var _ThemeContext = require("../../lib/theming/ThemeContext");
|
|
5
|
+
var _Emotion = require("../../lib/theming/Emotion");
|
|
6
|
+
var _ThemeHelpers = require("../../lib/theming/ThemeHelpers");
|
|
7
|
+
var _locale = require("../DatePicker/locale");
|
|
8
|
+
var _InternalDate = require("../../lib/date/InternalDate");
|
|
9
|
+
var _locale2 = require("../../lib/locale");
|
|
10
|
+
var _getVisualStateDataAttributes = require("../../internal/CommonWrapper/utils/getVisualStateDataAttributes");
|
|
11
|
+
var _forwardRefAndName = require("../../lib/forwardRefAndName");
|
|
12
|
+
|
|
13
|
+
var _DayCellView = require("./DayCellView.styles");
|
|
14
|
+
var _Calendar = require("./Calendar");var _excluded = ["isToday", "isSelected", "isDisabled", "isWeekend", "date", "children", "className"];
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* @visibleName Calendar.Day
|
|
26
|
+
*/
|
|
27
|
+
var CalendarDay = /*#__PURE__*/(0, _react.memo)(
|
|
28
|
+
(0, _forwardRefAndName.forwardRefAndName)(
|
|
29
|
+
'CalendarDay',
|
|
30
|
+
function CalendarDay(_ref,
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
ref)
|
|
42
|
+
{var _cx, _cx2;var isToday = _ref.isToday,isSelected = _ref.isSelected,isDisabled = _ref.isDisabled,isWeekend = _ref.isWeekend,date = _ref.date,children = _ref.children,className = _ref.className,rest = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
|
|
43
|
+
var theme = (0, _react.useContext)(_ThemeContext.ThemeContext);
|
|
44
|
+
var emotion = (0, _Emotion.useEmotion)();
|
|
45
|
+
var _isTheme2022 = (0, _ThemeHelpers.isTheme2022)(theme);
|
|
46
|
+
|
|
47
|
+
var _useContext = (0, _react.useContext)(_locale2.LocaleContext),langCode = _useContext.langCode;
|
|
48
|
+
var internalDate = new _InternalDate.InternalDate({ langCode: langCode, value: date });
|
|
49
|
+
|
|
50
|
+
var locale = (0, _useLocaleForControl.useLocaleForControl)('Calendar', _locale.DatePickerLocaleHelper);
|
|
51
|
+
var ariaLabel = locale.dayCellChooseDateAriaLabel + ": " + internalDate.toA11YFormat();
|
|
52
|
+
|
|
53
|
+
var _internalDate$getComp = internalDate.getComponentsLikeNumber(),day = _internalDate$getComp.date;
|
|
54
|
+
var caption = children != null ? children : day;
|
|
55
|
+
var styles = (0, _DayCellView.getStyles)(emotion);
|
|
56
|
+
|
|
57
|
+
return /*#__PURE__*/(
|
|
58
|
+
_react.default.createElement("button", (0, _extends2.default)({
|
|
59
|
+
ref: ref,
|
|
60
|
+
"data-tid": _Calendar.CalendarDataTids.dayCell,
|
|
61
|
+
"aria-label": ariaLabel,
|
|
62
|
+
tabIndex: -1,
|
|
63
|
+
disabled: isDisabled,
|
|
64
|
+
className: (0, _Emotion.cx)((_cx = {}, _cx[
|
|
65
|
+
|
|
66
|
+
styles.day(theme)] = true, _cx[
|
|
67
|
+
styles.today(theme)] = isToday && !_isTheme2022, _cx[
|
|
68
|
+
styles.selected(theme)] = isSelected, _cx[
|
|
69
|
+
styles.weekend(theme)] = isWeekend, _cx),
|
|
70
|
+
|
|
71
|
+
className) },
|
|
72
|
+
|
|
73
|
+
(0, _getVisualStateDataAttributes.getVisualStateDataAttributes)({ selected: isSelected }),
|
|
74
|
+
rest), /*#__PURE__*/
|
|
75
|
+
|
|
76
|
+
_react.default.createElement("span", { className: (0, _Emotion.cx)((_cx2 = {}, _cx2[styles.todayCaption2022(theme)] = isToday && _isTheme2022, _cx2)) }, caption)));
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
}));exports.CalendarDay = CalendarDay;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["CalendarDay.tsx"],"names":["CalendarDay","ref","isToday","isSelected","isDisabled","isWeekend","date","children","className","rest","theme","ThemeContext","emotion","_isTheme2022","LocaleContext","langCode","internalDate","InternalDate","value","locale","DatePickerLocaleHelper","ariaLabel","dayCellChooseDateAriaLabel","toA11YFormat","getComponentsLikeNumber","day","caption","styles","CalendarDataTids","dayCell","today","selected","weekend","todayCaption2022"],"mappings":"8cAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sC;;;;;;;;;;AAUA;AACA;AACA;AACO,IAAMA,WAAW,gBAAG;AACzB;AACE,aADF;AAEE,SAASA,WAAT;;;;;;;;;;;AAWEC,GAXF;AAYE,mBAVEC,OAUF,QAVEA,OAUF,CATEC,UASF,QATEA,UASF,CAREC,UAQF,QAREA,UAQF,CAPEC,SAOF,QAPEA,SAOF,CANEC,IAMF,QANEA,IAMF,CALEC,QAKF,QALEA,QAKF,CAJEC,SAIF,QAJEA,SAIF,CAHKC,IAGL;AACA,MAAMC,KAAK,GAAG,uBAAWC,0BAAX,CAAd;AACA,MAAMC,OAAO,GAAG,0BAAhB;AACA,MAAMC,YAAY,GAAG,+BAAYH,KAAZ,CAArB;;AAEA,oBAAqB,uBAAWI,sBAAX,CAArB,CAAQC,QAAR,eAAQA,QAAR;AACA,MAAMC,YAAY,GAAG,IAAIC,0BAAJ,CAAiB,EAAEF,QAAQ,EAARA,QAAF,EAAYG,KAAK,EAAEZ,IAAnB,EAAjB,CAArB;;AAEA,MAAMa,MAAM,GAAG,8CAAoB,UAApB,EAAgCC,8BAAhC,CAAf;AACA,MAAMC,SAAS,GAAMF,MAAM,CAACG,0BAAb,UAA4CN,YAAY,CAACO,YAAb,EAA3D;;AAEA,8BAAsBP,YAAY,CAACQ,uBAAb,EAAtB,CAAcC,GAAd,yBAAQnB,IAAR;AACA,MAAMoB,OAAO,GAAGnB,QAAH,WAAGA,QAAH,GAAekB,GAA5B;AACA,MAAME,MAAM,GAAG,4BAAUf,OAAV,CAAf;;AAEA;AACE;AACE,MAAA,GAAG,EAAEX,GADP;AAEE,kBAAU2B,2BAAiBC,OAF7B;AAGE,oBAAYR,SAHd;AAIE,MAAA,QAAQ,EAAE,CAAC,CAJb;AAKE,MAAA,QAAQ,EAAEjB,UALZ;AAME,MAAA,SAAS,EAAE;;AAENuB,MAAAA,MAAM,CAACF,GAAP,CAAWf,KAAX,CAFM,IAEc,IAFd;AAGNiB,MAAAA,MAAM,CAACG,KAAP,CAAapB,KAAb,CAHM,IAGgBR,OAAO,IAAI,CAACW,YAH5B;AAINc,MAAAA,MAAM,CAACI,QAAP,CAAgBrB,KAAhB,CAJM,IAImBP,UAJnB;AAKNwB,MAAAA,MAAM,CAACK,OAAP,CAAetB,KAAf,CALM,IAKkBL,SALlB;;AAOTG,MAAAA,SAPS,CANb;;AAeM,oEAA6B,EAAEuB,QAAQ,EAAE5B,UAAZ,EAA7B,CAfN;AAgBMM,IAAAA,IAhBN;;AAkBE,2CAAM,SAAS,EAAE,kCAAMkB,MAAM,CAACM,gBAAP,CAAwBvB,KAAxB,CAAN,IAAuCR,OAAO,IAAIW,YAAlD,QAAjB,IAAqFa,OAArF,CAlBF,CADF;;;AAsBD,CAnDH,CADyB,CAApB,C","sourcesContent":["import React, { PropsWithChildren, useContext, memo } from 'react';\n\nimport { useLocaleForControl } from '../../lib/locale/useLocaleForControl';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { cx, useEmotion } from '../../lib/theming/Emotion';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { DatePickerLocaleHelper } from '../DatePicker/locale';\nimport { InternalDate } from '../../lib/date/InternalDate';\nimport { LocaleContext } from '../../lib/locale';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\n\nimport { getStyles } from './DayCellView.styles';\nimport { CalendarDataTids } from './Calendar';\n\nexport interface CalendarDayProps extends React.HTMLAttributes<HTMLButtonElement> {\n isToday?: boolean;\n isSelected?: boolean;\n isDisabled?: boolean;\n isWeekend?: boolean;\n date: string;\n}\n\n/**\n * @visibleName Calendar.Day\n */\nexport const CalendarDay = memo(\n forwardRefAndName(\n 'CalendarDay',\n function CalendarDay(\n {\n isToday,\n isSelected,\n isDisabled,\n isWeekend,\n date,\n children,\n className,\n ...rest\n }: PropsWithChildren<CalendarDayProps>,\n ref: React.Ref<HTMLButtonElement>,\n ) {\n const theme = useContext(ThemeContext);\n const emotion = useEmotion();\n const _isTheme2022 = isTheme2022(theme);\n\n const { langCode } = useContext(LocaleContext);\n const internalDate = new InternalDate({ langCode, value: date });\n\n const locale = useLocaleForControl('Calendar', DatePickerLocaleHelper);\n const ariaLabel = `${locale.dayCellChooseDateAriaLabel}: ${internalDate.toA11YFormat()}`;\n\n const { date: day } = internalDate.getComponentsLikeNumber();\n const caption = children ?? day;\n const styles = getStyles(emotion);\n\n return (\n <button\n ref={ref}\n data-tid={CalendarDataTids.dayCell}\n aria-label={ariaLabel}\n tabIndex={-1}\n disabled={isDisabled}\n className={cx(\n {\n [styles.day(theme)]: true,\n [styles.today(theme)]: isToday && !_isTheme2022,\n [styles.selected(theme)]: isSelected,\n [styles.weekend(theme)]: isWeekend,\n },\n className,\n )}\n {...getVisualStateDataAttributes({ selected: isSelected })}\n {...rest}\n >\n <span className={cx({ [styles.todayCaption2022(theme)]: isToday && _isTheme2022 })}>{caption}</span>\n </button>\n );\n },\n ),\n);\n"]}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
Компонент для отрисовки дня в Calendar. Полезен при использовании вместе с его пропом `renderDay`.
|
|
2
|
+
|
|
3
|
+
```jsx harmony
|
|
4
|
+
import { Calendar, Gapped } from '@skbkontur/react-ui';
|
|
5
|
+
|
|
6
|
+
const date = '20.05.2024';
|
|
7
|
+
const style = { width: 32, height: 32 };
|
|
8
|
+
|
|
9
|
+
<Gapped>
|
|
10
|
+
<Calendar.Day style={style} date={date} />
|
|
11
|
+
<Calendar.Day style={style} date={date} isToday={true} />
|
|
12
|
+
<Calendar.Day style={style} date={date} isSelected={true} />
|
|
13
|
+
<Calendar.Day style={style} date={date} isDisabled={true} />
|
|
14
|
+
<Calendar.Day style={style} date={date} isWeekend={true} />
|
|
15
|
+
<Calendar.Day style={style}><b>20</b></Calendar.Day>
|
|
16
|
+
</Gapped>
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Набор функций для сравнения строковых дат.
|
|
20
|
+
|
|
21
|
+
```jsx harmony
|
|
22
|
+
import { isBetween, isEqual, isGreater, isGreaterOrEqual, isLess, isLessOrEqual } from '@skbkontur/react-ui/lib/date/comparison';
|
|
23
|
+
|
|
24
|
+
const date_a = '10.03.2017';
|
|
25
|
+
const date_b = '11.03.2017';
|
|
26
|
+
const date_c = '12.03.2017';
|
|
27
|
+
|
|
28
|
+
const Table = ({ children }) => (
|
|
29
|
+
<table>
|
|
30
|
+
<thead>
|
|
31
|
+
<tr>
|
|
32
|
+
<td>Функция</td>
|
|
33
|
+
<td>Результат</td>
|
|
34
|
+
</tr>
|
|
35
|
+
</thead>
|
|
36
|
+
<tbody>
|
|
37
|
+
{ children }
|
|
38
|
+
</tbody>
|
|
39
|
+
</table>
|
|
40
|
+
)
|
|
41
|
+
|
|
42
|
+
const Row = ({ code }) => (
|
|
43
|
+
<tr>
|
|
44
|
+
<td><code>{code}</code></td>
|
|
45
|
+
<td><code>{JSON.stringify(eval(code), null, 2)}</code></td>
|
|
46
|
+
</tr>
|
|
47
|
+
);
|
|
48
|
+
|
|
49
|
+
<Table>
|
|
50
|
+
<Row code={`isEqual("${date_a}", "${date_a}")`} />
|
|
51
|
+
<Row code={`isLess("${date_a}", "${date_b}")`} />
|
|
52
|
+
<Row code={`isLessOrEqual("${date_a}", "${date_b}")`} />
|
|
53
|
+
<Row code={`isGreater("${date_b}", "${date_a}")`} />
|
|
54
|
+
<Row code={`isGreaterOrEqual("${date_b}", "${date_a}")`} />
|
|
55
|
+
<Row code={`isBetween("${date_b}", "${date_a}", "${date_b}")`} />
|
|
56
|
+
</Table>
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
```typescript static
|
|
61
|
+
export function isEqual(left: string, right: string): boolean;
|
|
62
|
+
export function isLess(left: string, right: string): boolean;
|
|
63
|
+
export function isLessOrEqual(left: string, right: string): boolean;
|
|
64
|
+
export function isGreater(left: string, right: string): boolean;
|
|
65
|
+
export function isGreaterOrEqual(left: string, right: string): boolean;
|
|
66
|
+
export function isBetween(
|
|
67
|
+
date: string,
|
|
68
|
+
left?: string,
|
|
69
|
+
right?: string,
|
|
70
|
+
): boolean;
|
|
@@ -22,7 +22,8 @@ export declare const applyDelta: (deltaY: number, theme: Theme) => ({ scrollPosi
|
|
|
22
22
|
export declare const isMonthVisible: (top: number, month: MonthViewModel, theme: Theme) => boolean;
|
|
23
23
|
export declare const getMonthsHeight: (months: MonthViewModel[], theme: Theme) => number;
|
|
24
24
|
export declare const getMonths: (month: number, year: number) => MonthViewModel[];
|
|
25
|
-
export declare const getMonthInNativeFormat: (
|
|
25
|
+
export declare const getMonthInNativeFormat: (month: number) => number;
|
|
26
|
+
export declare const getMonthInHumanFormat: (month: number) => number;
|
|
26
27
|
export declare const getInitialDate: ({ today, date, minDate, maxDate, }: {
|
|
27
28
|
today: CalendarDateShape;
|
|
28
29
|
date?: Nullable<CalendarDateShape>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";exports.__esModule = true;exports.isMonthVisible = exports.getTodayDate = exports.getMonthsHeight = exports.getMonths = exports.getMonthInNativeFormat = exports.getInitialDate = exports.calculateScrollPosition = exports.applyDelta = void 0;
|
|
1
|
+
"use strict";exports.__esModule = true;exports.isMonthVisible = exports.getTodayDate = exports.getMonthsHeight = exports.getMonths = exports.getMonthInNativeFormat = exports.getMonthInHumanFormat = exports.getInitialDate = exports.calculateScrollPosition = exports.applyDelta = void 0;
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
var _config = require("./config");
|
|
@@ -75,11 +75,9 @@ var getMonths = function getMonths(month, year) {
|
|
|
75
75
|
return [-1, 0, 1].map(function (x) {return _MonthViewModel.MonthViewModel.create(month + x, year);});
|
|
76
76
|
};exports.getMonths = getMonths;
|
|
77
77
|
|
|
78
|
-
var getMonthInNativeFormat = function getMonthInNativeFormat(
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
}
|
|
82
|
-
};exports.getMonthInNativeFormat = getMonthInNativeFormat;
|
|
78
|
+
var getMonthInNativeFormat = function getMonthInNativeFormat(month) {return month - 1;};exports.getMonthInNativeFormat = getMonthInNativeFormat;
|
|
79
|
+
|
|
80
|
+
var getMonthInHumanFormat = function getMonthInHumanFormat(month) {return month + 1;};exports.getMonthInHumanFormat = getMonthInHumanFormat;
|
|
83
81
|
|
|
84
82
|
var getInitialDate = function getInitialDate(_ref3)
|
|
85
83
|
|