@skbkontur/react-ui 4.23.0 → 4.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +25 -0
- package/cjs/components/Calendar/Calendar.d.ts +40 -5
- package/cjs/components/Calendar/Calendar.js +92 -36
- package/cjs/components/Calendar/Calendar.js.map +1 -1
- package/cjs/components/Calendar/Calendar.md +42 -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 +77 -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 -43
- 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 +17 -24
- 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 +33 -86
- 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/DatePicker/DatePicker.d.ts +4 -1
- package/cjs/components/DatePicker/DatePicker.js +71 -44
- package/cjs/components/DatePicker/DatePicker.js.map +1 -1
- package/cjs/components/DatePicker/DatePicker.md +36 -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/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/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/internal/DateSelect/DateSelect.d.ts +2 -0
- package/cjs/internal/DateSelect/DateSelect.js +50 -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/InputLikeText/InputLikeText.js +1 -1
- package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
- package/cjs/internal/MobilePopup/MobilePopup.d.ts +4 -0
- package/cjs/internal/MobilePopup/MobilePopup.js +8 -2
- 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/NativeDateInput/utils.js +3 -2
- package/cjs/internal/NativeDateInput/utils.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/VariablesCollector.d.ts +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/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/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/components/Calendar/Calendar/Calendar.js +81 -64
- package/components/Calendar/Calendar/Calendar.js.map +1 -1
- package/components/Calendar/Calendar.d.ts +40 -5
- package/components/Calendar/Calendar.md +42 -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 +62 -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 +32 -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 -13
- 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 +45 -80
- package/components/Calendar/Month/Month.js.map +1 -1
- package/components/Calendar/Month.d.ts +0 -10
- package/components/Calendar/MonthView/MonthView.js +49 -44
- 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/DatePicker/DatePicker/DatePicker.js +60 -38
- package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
- package/components/DatePicker/DatePicker.d.ts +4 -1
- package/components/DatePicker/DatePicker.md +36 -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/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/Input/Input/Input.js +1 -1
- 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/internal/DateSelect/DateSelect/DateSelect.js +56 -4
- 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/InputLikeText/InputLikeText/InputLikeText.js +1 -1
- package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
- package/internal/MobilePopup/MobilePopup/MobilePopup.js +2 -1
- 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/NativeDateInput/utils/utils.js +2 -1
- package/internal/NativeDateInput/utils/utils.js.map +1 -1
- package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js +8 -5
- 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/VariablesCollector.d.ts +1 -1
- 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/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/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/package.json +2 -2
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";exports.__esModule = true;exports.THEME_2022_UPDATE_2024 = void 0;var _ThemeFactory = require("../ThemeFactory");
|
|
2
|
+
|
|
3
|
+
var _Theme = require("./Theme2022");
|
|
4
|
+
|
|
5
|
+
var THEME_2022_UPDATE_2024 = _ThemeFactory.ThemeFactory.create(
|
|
6
|
+
{
|
|
7
|
+
green: '#1C8A3F',
|
|
8
|
+
greenXxLight: '#C7F9CC',
|
|
9
|
+
greenDark: '#197F39',
|
|
10
|
+
|
|
11
|
+
red: '#DD3333',
|
|
12
|
+
redXxLight: '#FFEBEB',
|
|
13
|
+
redDark: '#CC2626',
|
|
14
|
+
|
|
15
|
+
errorMain: '#FE4C4C',
|
|
16
|
+
errorText: '#CC2626',
|
|
17
|
+
|
|
18
|
+
linkSuccessColor: '#1C8A3F',
|
|
19
|
+
linkSuccessHoverColor: '#197F39',
|
|
20
|
+
linkSuccessActiveColor: '#167333',
|
|
21
|
+
|
|
22
|
+
linkDangerColor: '#CC2626',
|
|
23
|
+
linkDangerHoverColor: '#BB1919',
|
|
24
|
+
linkDangerActiveColor: '#AB0D0D',
|
|
25
|
+
|
|
26
|
+
btnSuccessBg: '#26AD50',
|
|
27
|
+
btnSuccessBorderColor: '#26AD50',
|
|
28
|
+
|
|
29
|
+
btnSuccessHoverBg: '#23A14A',
|
|
30
|
+
btnSuccessHoverBorderColor: '#23A14A',
|
|
31
|
+
|
|
32
|
+
btnSuccessActiveBg: '#209644',
|
|
33
|
+
btnSuccessActiveBorderColor: '#209644',
|
|
34
|
+
|
|
35
|
+
btnDangerBg: '#FE4C4C',
|
|
36
|
+
btnDangerBorderColor: '#FE4C4C',
|
|
37
|
+
|
|
38
|
+
btnDangerHoverBg: '#ED3F3F',
|
|
39
|
+
btnDangerHoverBorderColor: '#ED3F3F',
|
|
40
|
+
|
|
41
|
+
btnDangerActiveBg: '#DD3333',
|
|
42
|
+
btnDangerActiveBorderColor: '#DD3333',
|
|
43
|
+
|
|
44
|
+
calendarCellWeekendColor: '#CC2626',
|
|
45
|
+
|
|
46
|
+
inputBorderColorError: '#DD3333',
|
|
47
|
+
|
|
48
|
+
validationsTextColorError: '#CC2626',
|
|
49
|
+
// error background for button use=link
|
|
50
|
+
btnErrorSecondary: '#FFEBEB',
|
|
51
|
+
|
|
52
|
+
// disabled colors
|
|
53
|
+
btnDisabledTextColor: '#ADADAD',
|
|
54
|
+
|
|
55
|
+
inputIconColorDisabled: '#ADADAD',
|
|
56
|
+
inputTextColorDisabled: '#ADADAD',
|
|
57
|
+
inputPlaceholderColorDisabled: '#ADADAD',
|
|
58
|
+
|
|
59
|
+
textareaTextColorDisabled: '#ADADAD',
|
|
60
|
+
textareaPlaceholderColorDisabled: '#ADADAD',
|
|
61
|
+
|
|
62
|
+
tokenTextColorDisabled: '#ADADAD',
|
|
63
|
+
|
|
64
|
+
selectPlaceholderColorDisabled: '#ADADAD',
|
|
65
|
+
selectMenuArrowColorDisabled: '#ADADAD',
|
|
66
|
+
|
|
67
|
+
menuItemDisabledColor: '#ADADAD',
|
|
68
|
+
|
|
69
|
+
linkDisabledColor: '#ADADAD',
|
|
70
|
+
|
|
71
|
+
fileUploaderDisabledTextColor: '#ADADAD',
|
|
72
|
+
fileUploaderDisabledLinkColor: '#ADADAD',
|
|
73
|
+
fileUploaderDisabledIconColor: '#ADADAD' },
|
|
74
|
+
|
|
75
|
+
_Theme.THEME_2022);exports.THEME_2022_UPDATE_2024 = THEME_2022_UPDATE_2024;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["Theme2022Update2024.ts"],"names":["THEME_2022_UPDATE_2024","ThemeFactory","create","green","greenXxLight","greenDark","red","redXxLight","redDark","errorMain","errorText","linkSuccessColor","linkSuccessHoverColor","linkSuccessActiveColor","linkDangerColor","linkDangerHoverColor","linkDangerActiveColor","btnSuccessBg","btnSuccessBorderColor","btnSuccessHoverBg","btnSuccessHoverBorderColor","btnSuccessActiveBg","btnSuccessActiveBorderColor","btnDangerBg","btnDangerBorderColor","btnDangerHoverBg","btnDangerHoverBorderColor","btnDangerActiveBg","btnDangerActiveBorderColor","calendarCellWeekendColor","inputBorderColorError","validationsTextColorError","btnErrorSecondary","btnDisabledTextColor","inputIconColorDisabled","inputTextColorDisabled","inputPlaceholderColorDisabled","textareaTextColorDisabled","textareaPlaceholderColorDisabled","tokenTextColorDisabled","selectPlaceholderColorDisabled","selectMenuArrowColorDisabled","menuItemDisabledColor","linkDisabledColor","fileUploaderDisabledTextColor","fileUploaderDisabledLinkColor","fileUploaderDisabledIconColor","THEME_2022"],"mappings":"+EAAA;;AAEA;;AAEO,IAAMA,sBAAsB,GAAGC,2BAAaC,MAAb;AACpC;AACEC,EAAAA,KAAK,EAAE,SADT;AAEEC,EAAAA,YAAY,EAAE,SAFhB;AAGEC,EAAAA,SAAS,EAAE,SAHb;;AAKEC,EAAAA,GAAG,EAAE,SALP;AAMEC,EAAAA,UAAU,EAAE,SANd;AAOEC,EAAAA,OAAO,EAAE,SAPX;;AASEC,EAAAA,SAAS,EAAE,SATb;AAUEC,EAAAA,SAAS,EAAE,SAVb;;AAYEC,EAAAA,gBAAgB,EAAE,SAZpB;AAaEC,EAAAA,qBAAqB,EAAE,SAbzB;AAcEC,EAAAA,sBAAsB,EAAE,SAd1B;;AAgBEC,EAAAA,eAAe,EAAE,SAhBnB;AAiBEC,EAAAA,oBAAoB,EAAE,SAjBxB;AAkBEC,EAAAA,qBAAqB,EAAE,SAlBzB;;AAoBEC,EAAAA,YAAY,EAAE,SApBhB;AAqBEC,EAAAA,qBAAqB,EAAE,SArBzB;;AAuBEC,EAAAA,iBAAiB,EAAE,SAvBrB;AAwBEC,EAAAA,0BAA0B,EAAE,SAxB9B;;AA0BEC,EAAAA,kBAAkB,EAAE,SA1BtB;AA2BEC,EAAAA,2BAA2B,EAAE,SA3B/B;;AA6BEC,EAAAA,WAAW,EAAE,SA7Bf;AA8BEC,EAAAA,oBAAoB,EAAE,SA9BxB;;AAgCEC,EAAAA,gBAAgB,EAAE,SAhCpB;AAiCEC,EAAAA,yBAAyB,EAAE,SAjC7B;;AAmCEC,EAAAA,iBAAiB,EAAE,SAnCrB;AAoCEC,EAAAA,0BAA0B,EAAE,SApC9B;;AAsCEC,EAAAA,wBAAwB,EAAE,SAtC5B;;AAwCEC,EAAAA,qBAAqB,EAAE,SAxCzB;;AA0CEC,EAAAA,yBAAyB,EAAE,SA1C7B;AA2CE;AACAC,EAAAA,iBAAiB,EAAE,SA5CrB;;AA8CE;AACAC,EAAAA,oBAAoB,EAAE,SA/CxB;;AAiDEC,EAAAA,sBAAsB,EAAE,SAjD1B;AAkDEC,EAAAA,sBAAsB,EAAE,SAlD1B;AAmDEC,EAAAA,6BAA6B,EAAE,SAnDjC;;AAqDEC,EAAAA,yBAAyB,EAAE,SArD7B;AAsDEC,EAAAA,gCAAgC,EAAE,SAtDpC;;AAwDEC,EAAAA,sBAAsB,EAAE,SAxD1B;;AA0DEC,EAAAA,8BAA8B,EAAE,SA1DlC;AA2DEC,EAAAA,4BAA4B,EAAE,SA3DhC;;AA6DEC,EAAAA,qBAAqB,EAAE,SA7DzB;;AA+DEC,EAAAA,iBAAiB,EAAE,SA/DrB;;AAiEEC,EAAAA,6BAA6B,EAAE,SAjEjC;AAkEEC,EAAAA,6BAA6B,EAAE,SAlEjC;AAmEEC,EAAAA,6BAA6B,EAAE,SAnEjC,EADoC;;AAsEpCC,iBAtEoC,CAA/B,C","sourcesContent":["import { ThemeFactory } from '../ThemeFactory';\n\nimport { THEME_2022 } from './Theme2022';\n\nexport const THEME_2022_UPDATE_2024 = ThemeFactory.create(\n {\n green: '#1C8A3F',\n greenXxLight: '#C7F9CC',\n greenDark: '#197F39',\n\n red: '#DD3333',\n redXxLight: '#FFEBEB',\n redDark: '#CC2626',\n\n errorMain: '#FE4C4C',\n errorText: '#CC2626',\n\n linkSuccessColor: '#1C8A3F',\n linkSuccessHoverColor: '#197F39',\n linkSuccessActiveColor: '#167333',\n\n linkDangerColor: '#CC2626',\n linkDangerHoverColor: '#BB1919',\n linkDangerActiveColor: '#AB0D0D',\n\n btnSuccessBg: '#26AD50',\n btnSuccessBorderColor: '#26AD50',\n\n btnSuccessHoverBg: '#23A14A',\n btnSuccessHoverBorderColor: '#23A14A',\n\n btnSuccessActiveBg: '#209644',\n btnSuccessActiveBorderColor: '#209644',\n\n btnDangerBg: '#FE4C4C',\n btnDangerBorderColor: '#FE4C4C',\n\n btnDangerHoverBg: '#ED3F3F',\n btnDangerHoverBorderColor: '#ED3F3F',\n\n btnDangerActiveBg: '#DD3333',\n btnDangerActiveBorderColor: '#DD3333',\n\n calendarCellWeekendColor: '#CC2626',\n\n inputBorderColorError: '#DD3333',\n\n validationsTextColorError: '#CC2626',\n // error background for button use=link\n btnErrorSecondary: '#FFEBEB',\n\n // disabled colors\n btnDisabledTextColor: '#ADADAD',\n\n inputIconColorDisabled: '#ADADAD',\n inputTextColorDisabled: '#ADADAD',\n inputPlaceholderColorDisabled: '#ADADAD',\n\n textareaTextColorDisabled: '#ADADAD',\n textareaPlaceholderColorDisabled: '#ADADAD',\n\n tokenTextColorDisabled: '#ADADAD',\n\n selectPlaceholderColorDisabled: '#ADADAD',\n selectMenuArrowColorDisabled: '#ADADAD',\n\n menuItemDisabledColor: '#ADADAD',\n\n linkDisabledColor: '#ADADAD',\n\n fileUploaderDisabledTextColor: '#ADADAD',\n fileUploaderDisabledLinkColor: '#ADADAD',\n fileUploaderDisabledIconColor: '#ADADAD',\n },\n THEME_2022,\n);\n"]}
|
|
@@ -13,7 +13,6 @@ import shallowEqual from 'shallowequal';
|
|
|
13
13
|
import { globalObject } from '@skbkontur/global-object';
|
|
14
14
|
import { isInstanceOf } from "../../../lib/isInstanceOf";
|
|
15
15
|
import { InternalDate } from "../../../lib/date/InternalDate";
|
|
16
|
-
import { InternalDateTransformer } from "../../../lib/date/InternalDateTransformer";
|
|
17
16
|
import { rootNode } from "../../../lib/rootNode";
|
|
18
17
|
import { cx } from "../../../lib/theming/Emotion";
|
|
19
18
|
import { CommonWrapper } from "../../../internal/CommonWrapper";
|
|
@@ -22,6 +21,7 @@ import { ThemeContext } from "../../../lib/theming/ThemeContext";
|
|
|
22
21
|
import { animation } from "../../../lib/animation";
|
|
23
22
|
import { isMobile } from "../../../lib/client";
|
|
24
23
|
import { createPropsGetter } from "../../../lib/createPropsGetter";
|
|
24
|
+
import { InternalDateTransformer } from "../../../lib/date/InternalDateTransformer";
|
|
25
25
|
import { themeConfig } from "../config";
|
|
26
26
|
import { MonthViewModel } from "../MonthViewModel";
|
|
27
27
|
import * as CalendarScrollEvents from "../CalendarScrollEvents";
|
|
@@ -29,12 +29,16 @@ import { Month } from "../Month";
|
|
|
29
29
|
import { styles } from "../Calendar.styles";
|
|
30
30
|
import { create, isGreater, isLess } from "../CalendarDateShape";
|
|
31
31
|
import * as CalendarUtils from "../CalendarUtils";
|
|
32
|
+
import { CalendarContext } from "../CalendarContext";
|
|
33
|
+
import { CalendarDay } from "../CalendarDay";
|
|
32
34
|
export var CalendarDataTids = {
|
|
33
35
|
root: 'Calendar__root',
|
|
34
36
|
month: 'MonthView__month',
|
|
35
37
|
dayCell: 'DayCellView__root',
|
|
36
38
|
headerMonth: 'MonthView__headerMonth',
|
|
37
|
-
|
|
39
|
+
monthSelectMobile: 'MonthView__monthSelectMobile',
|
|
40
|
+
headerYear: 'MonthView__headerYear',
|
|
41
|
+
yearSelectMobile: 'MonthView__yearSelectMobile'
|
|
38
42
|
};
|
|
39
43
|
export
|
|
40
44
|
/**
|
|
@@ -54,7 +58,7 @@ var Calendar = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_Reac
|
|
|
54
58
|
};
|
|
55
59
|
|
|
56
60
|
function Calendar(_props) {
|
|
57
|
-
var
|
|
61
|
+
var _this$props$initialYe;
|
|
58
62
|
|
|
59
63
|
var _this;
|
|
60
64
|
|
|
@@ -215,8 +219,21 @@ var Calendar = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_Reac
|
|
|
215
219
|
};
|
|
216
220
|
}();
|
|
217
221
|
|
|
222
|
+
_this.handleMonthChange = function (visibleMonths) {
|
|
223
|
+
var currentMonth = visibleMonths[0];
|
|
224
|
+
var changeInfo = {
|
|
225
|
+
month: CalendarUtils.getMonthInHumanFormat(currentMonth.month),
|
|
226
|
+
year: currentMonth.year
|
|
227
|
+
};
|
|
228
|
+
_this.props.onMonthChange == null ? void 0 : _this.props.onMonthChange(changeInfo);
|
|
229
|
+
};
|
|
230
|
+
|
|
231
|
+
_this.getViewModel = function (item) {
|
|
232
|
+
return item[1];
|
|
233
|
+
};
|
|
234
|
+
|
|
218
235
|
_this.renderMain = function () {
|
|
219
|
-
var
|
|
236
|
+
var monthsForRender = _this.getVisibleMonths(_this.state);
|
|
220
237
|
|
|
221
238
|
var wrapperStyle = {
|
|
222
239
|
height: themeConfig(_this.theme).WRAPPER_HEIGHT
|
|
@@ -224,6 +241,15 @@ var Calendar = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_Reac
|
|
|
224
241
|
|
|
225
242
|
var props = _this.getProps();
|
|
226
243
|
|
|
244
|
+
var context = {
|
|
245
|
+
value: _this.getDateInNativeFormat(props.value),
|
|
246
|
+
minDate: _this.getDateInNativeFormat(props.minDate),
|
|
247
|
+
maxDate: _this.getDateInNativeFormat(props.maxDate),
|
|
248
|
+
isHoliday: props.isHoliday,
|
|
249
|
+
renderDay: props.renderDay,
|
|
250
|
+
today: CalendarUtils.getTodayDate(),
|
|
251
|
+
onDateClick: _this.handleDateClick
|
|
252
|
+
};
|
|
227
253
|
return /*#__PURE__*/React.createElement(CommonWrapper, _extends({
|
|
228
254
|
rootNodeRef: _this.setRootNode
|
|
229
255
|
}, props), /*#__PURE__*/React.createElement("div", {
|
|
@@ -233,13 +259,9 @@ var Calendar = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_Reac
|
|
|
233
259
|
}, /*#__PURE__*/React.createElement("div", {
|
|
234
260
|
style: wrapperStyle,
|
|
235
261
|
className: styles.wrapper()
|
|
236
|
-
},
|
|
237
|
-
|
|
238
|
-
}
|
|
239
|
-
var top = _ref2[0],
|
|
240
|
-
month = _ref2[1];
|
|
241
|
-
return CalendarUtils.isMonthVisible(top, month, _this.theme);
|
|
242
|
-
}).map(_this.renderMonth, _assertThisInitialized(_this))), /*#__PURE__*/React.createElement("div", {
|
|
262
|
+
}, /*#__PURE__*/React.createElement(CalendarContext.Provider, {
|
|
263
|
+
value: context
|
|
264
|
+
}, monthsForRender.map(_this.renderMonth, _assertThisInitialized(_this)))), /*#__PURE__*/React.createElement("div", {
|
|
243
265
|
className: styles.separator(_this.theme)
|
|
244
266
|
})));
|
|
245
267
|
};
|
|
@@ -269,29 +291,9 @@ var Calendar = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_Reac
|
|
|
269
291
|
_this.root = element;
|
|
270
292
|
};
|
|
271
293
|
|
|
272
|
-
_this.
|
|
273
|
-
var
|
|
274
|
-
|
|
275
|
-
year = _ref3.year,
|
|
276
|
-
isWeekend = _ref3.isWeekend;
|
|
277
|
-
var dateString = InternalDateTransformer.dateToInternalString({
|
|
278
|
-
date: date,
|
|
279
|
-
month: month + 1,
|
|
280
|
-
year: year
|
|
281
|
-
});
|
|
282
|
-
return _this.getProps().isHoliday(dateString, isWeekend);
|
|
283
|
-
};
|
|
284
|
-
|
|
285
|
-
_this.handleDateChange = function (dateShape) {
|
|
286
|
-
var value = InternalDateTransformer.dateToInternalString({
|
|
287
|
-
date: dateShape.date,
|
|
288
|
-
month: dateShape.month + 1,
|
|
289
|
-
year: dateShape.year
|
|
290
|
-
});
|
|
291
|
-
|
|
292
|
-
if (_this.props.onValueChange) {
|
|
293
|
-
_this.props.onValueChange(value);
|
|
294
|
-
}
|
|
294
|
+
_this.handleDateClick = function (dateShape) {
|
|
295
|
+
var value = InternalDateTransformer.dateToHumanString(dateShape);
|
|
296
|
+
_this.props.onValueChange == null ? void 0 : _this.props.onValueChange(value);
|
|
295
297
|
};
|
|
296
298
|
|
|
297
299
|
_this.handleMonthYearChange = function (month, year) {
|
|
@@ -299,9 +301,9 @@ var Calendar = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_Reac
|
|
|
299
301
|
};
|
|
300
302
|
|
|
301
303
|
_this.executeAnimations = function (pixelY) {
|
|
302
|
-
_this.setState(function (
|
|
303
|
-
var months =
|
|
304
|
-
scrollPosition =
|
|
304
|
+
_this.setState(function (_ref2) {
|
|
305
|
+
var months = _ref2.months,
|
|
306
|
+
scrollPosition = _ref2.scrollPosition;
|
|
305
307
|
var targetPosition = CalendarUtils.calculateScrollPosition(months, scrollPosition, pixelY, _this.theme).scrollPosition;
|
|
306
308
|
return {
|
|
307
309
|
scrollTarget: targetPosition
|
|
@@ -364,13 +366,13 @@ var Calendar = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_Reac
|
|
|
364
366
|
var _this$state = _this.state,
|
|
365
367
|
scrollTarget = _this$state.scrollTarget,
|
|
366
368
|
scrollDirection = _this$state.scrollDirection;
|
|
367
|
-
var
|
|
369
|
+
var thresholdHeight = themeConfig(_this.theme).MONTH_TITLE_OFFSET_HEIGHT + themeConfig(_this.theme).DAY_HEIGHT;
|
|
368
370
|
|
|
369
|
-
if (scrollTarget <
|
|
371
|
+
if (scrollTarget < thresholdHeight) {
|
|
370
372
|
var targetPosition = 0;
|
|
371
373
|
|
|
372
374
|
if (scrollDirection < 0) {
|
|
373
|
-
targetPosition =
|
|
375
|
+
targetPosition = thresholdHeight;
|
|
374
376
|
}
|
|
375
377
|
|
|
376
378
|
_this.setState({
|
|
@@ -393,8 +395,8 @@ var Calendar = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_Reac
|
|
|
393
395
|
|
|
394
396
|
_this.scrollAmount = function (scrollAmmount, onEnd) {
|
|
395
397
|
return _this.animation.animate(scrollAmmount, function (deltaY) {
|
|
396
|
-
_this.setState(function (
|
|
397
|
-
var scrollPosition =
|
|
398
|
+
_this.setState(function (_ref3) {
|
|
399
|
+
var scrollPosition = _ref3.scrollPosition;
|
|
398
400
|
return {
|
|
399
401
|
scrollPosition: scrollPosition + deltaY
|
|
400
402
|
};
|
|
@@ -420,12 +422,11 @@ var Calendar = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_Reac
|
|
|
420
422
|
minDate: minDateShape,
|
|
421
423
|
maxDate: maxDateShape
|
|
422
424
|
});
|
|
423
|
-
var initialMonth =
|
|
425
|
+
var initialMonth = _this.props.initialMonth ? CalendarUtils.getMonthInNativeFormat(_this.props.initialMonth) : initialDate.month;
|
|
424
426
|
var initialYear = (_this$props$initialYe = _this.props.initialYear) != null ? _this$props$initialYe : initialDate.year;
|
|
425
427
|
_this.state = {
|
|
426
428
|
scrollPosition: 0,
|
|
427
429
|
months: CalendarUtils.getMonths(initialMonth, initialYear),
|
|
428
|
-
today: today,
|
|
429
430
|
scrollDirection: 1,
|
|
430
431
|
scrollTarget: 0
|
|
431
432
|
};
|
|
@@ -434,14 +435,27 @@ var Calendar = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_Reac
|
|
|
434
435
|
|
|
435
436
|
var _proto = Calendar.prototype;
|
|
436
437
|
|
|
437
|
-
_proto.componentDidUpdate = function componentDidUpdate(prevProps) {
|
|
438
|
-
var
|
|
438
|
+
_proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {
|
|
439
|
+
var _this$props = this.props,
|
|
440
|
+
value = _this$props.value,
|
|
441
|
+
onMonthChange = _this$props.onMonthChange;
|
|
439
442
|
|
|
440
443
|
if (value && !shallowEqual(value, prevProps.value)) {
|
|
441
444
|
var _date = new InternalDate().parseValue(value).getComponentsLikeNumber();
|
|
442
445
|
|
|
443
446
|
this.scrollToMonth(_date.month - 1, _date.year);
|
|
444
447
|
}
|
|
448
|
+
|
|
449
|
+
if (onMonthChange) {
|
|
450
|
+
var visibleMonthsModels = this.getVisibleMonths(this.state).map(this.getViewModel);
|
|
451
|
+
var prevFirstVisibleMonthModels = this.getVisibleMonths(prevState).map(this.getViewModel);
|
|
452
|
+
var currentMonth = visibleMonthsModels[0].month;
|
|
453
|
+
var prevCurrentMonth = prevFirstVisibleMonthModels[0].month;
|
|
454
|
+
|
|
455
|
+
if (currentMonth !== prevCurrentMonth) {
|
|
456
|
+
this.handleMonthChange(visibleMonthsModels);
|
|
457
|
+
}
|
|
458
|
+
}
|
|
445
459
|
};
|
|
446
460
|
|
|
447
461
|
_proto.componentWillUnmount = function componentWillUnmount() {
|
|
@@ -464,23 +478,14 @@ var Calendar = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_Reac
|
|
|
464
478
|
*/
|
|
465
479
|
;
|
|
466
480
|
|
|
467
|
-
_proto.renderMonth = function renderMonth(
|
|
468
|
-
var top =
|
|
469
|
-
month =
|
|
470
|
-
var date = this.getDateInNativeFormat(this.props.value);
|
|
471
|
-
var minDate = this.getDateInNativeFormat(this.props.minDate);
|
|
472
|
-
var maxDate = this.getDateInNativeFormat(this.props.maxDate);
|
|
481
|
+
_proto.renderMonth = function renderMonth(_ref4) {
|
|
482
|
+
var top = _ref4[0],
|
|
483
|
+
month = _ref4[1];
|
|
473
484
|
return /*#__PURE__*/React.createElement(Month, {
|
|
474
485
|
key: month.month + '-' + month.year,
|
|
475
486
|
top: top,
|
|
476
487
|
month: month,
|
|
477
|
-
|
|
478
|
-
minDate: minDate,
|
|
479
|
-
today: this.state.today,
|
|
480
|
-
value: date,
|
|
481
|
-
onDateClick: this.handleDateChange,
|
|
482
|
-
onMonthYearChange: this.handleMonthYearChange,
|
|
483
|
-
isHoliday: this.isHoliday
|
|
488
|
+
onMonthYearChange: this.handleMonthYearChange
|
|
484
489
|
});
|
|
485
490
|
};
|
|
486
491
|
|
|
@@ -488,10 +493,7 @@ var Calendar = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_Reac
|
|
|
488
493
|
return new InternalDate().parseValue(date).toNativeFormat();
|
|
489
494
|
};
|
|
490
495
|
|
|
491
|
-
_proto.getMonthPositions = function getMonthPositions() {
|
|
492
|
-
var _this$state2 = this.state,
|
|
493
|
-
scrollPosition = _this$state2.scrollPosition,
|
|
494
|
-
months = _this$state2.months;
|
|
496
|
+
_proto.getMonthPositions = function getMonthPositions(months, scrollPosition) {
|
|
495
497
|
var positions = [scrollPosition - months[0].getHeight(this.theme)];
|
|
496
498
|
|
|
497
499
|
for (var i = 1; i < months.length; i++) {
|
|
@@ -502,8 +504,23 @@ var Calendar = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_Reac
|
|
|
502
504
|
return positions;
|
|
503
505
|
};
|
|
504
506
|
|
|
507
|
+
_proto.getVisibleMonths = function getVisibleMonths(state) {
|
|
508
|
+
var _this3 = this;
|
|
509
|
+
|
|
510
|
+
var months = state.months,
|
|
511
|
+
scrollPosition = state.scrollPosition;
|
|
512
|
+
var positions = this.getMonthPositions(months, scrollPosition);
|
|
513
|
+
return months.map(function (x, i) {
|
|
514
|
+
return [positions[i], x];
|
|
515
|
+
}).filter(function (_ref5) {
|
|
516
|
+
var top = _ref5[0],
|
|
517
|
+
month = _ref5[1];
|
|
518
|
+
return CalendarUtils.isMonthVisible(top, month, _this3.theme);
|
|
519
|
+
});
|
|
520
|
+
};
|
|
521
|
+
|
|
505
522
|
return Calendar;
|
|
506
|
-
}(React.Component), _class2.__KONTUR_REACT_UI__ = 'Calendar', _class2.displayName = 'Calendar', _class2.defaultProps = {
|
|
523
|
+
}(React.Component), _class2.__KONTUR_REACT_UI__ = 'Calendar', _class2.displayName = 'Calendar', _class2.Day = CalendarDay, _class2.defaultProps = {
|
|
507
524
|
minDate: _class2.formatDate(MIN_DATE, MIN_MONTH, MIN_YEAR),
|
|
508
525
|
maxDate: _class2.formatDate(MAX_DATE, MAX_MONTH, MAX_YEAR),
|
|
509
526
|
isHoliday: function isHoliday(_day, isWeekend) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Calendar.tsx"],"names":["React","normalizeWheel","throttle","shallowEqual","globalObject","isInstanceOf","InternalDate","InternalDateTransformer","rootNode","cx","CommonWrapper","MAX_DATE","MAX_MONTH","MAX_YEAR","MIN_DATE","MIN_MONTH","MIN_YEAR","ThemeContext","animation","isMobile","createPropsGetter","themeConfig","MonthViewModel","CalendarScrollEvents","Month","styles","create","isGreater","isLess","CalendarUtils","CalendarDataTids","root","month","dayCell","headerMonth","headerYear","Calendar","formatDate","date","year","setComponents","toString","withPad","props","getProps","defaultProps","touchStartY","scrollToMonth","inProgress","finish","Promise","r","setTimeout","minDate","getDateInNativeFormat","maxDate","currentMonth","state","months","diffInMonths","scrollTo","maxMonthsToAdd","theme","MAX_MONTHS_TO_APPEND_ON_SCROLL","onEnd","setState","getMonths","scrollPosition","isYearChanges","Math","abs","monthsToPrependCount","min","monthsToPrepend","Array","from","length","_","index","yearChanges","isFirstInYear","isLastInYear","concat","getMonthsHeight","targetPosition","getHeight","monthsToAppendCount","monthsToAppend","slice","renderMain","positions","getMonthPositions","wrapperStyle","height","WRAPPER_HEIGHT","setRootNode","refRoot","wrapper","map","x","i","filter","top","isMonthVisible","renderMonth","separator","element","addEventListener","handleTouchStart","throttledHandleTouchMove","handleWheel","passive","removeEventListener","isHoliday","isWeekend","dateString","dateToInternalString","handleDateChange","dateShape","value","onValueChange","handleMonthYearChange","executeAnimations","pixelY","calculateScrollPosition","scrollTarget","handleWheelEnd","animate","deltaY","applyDelta","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","Component","__KONTUR_REACT_UI__","displayName","_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';\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 { cx } 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 { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { animation } from '../../lib/animation';\nimport { isMobile } from '../../lib/client';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { themeConfig } from './config';\nimport { MonthViewModel } from './MonthViewModel';\nimport * as CalendarScrollEvents from './CalendarScrollEvents';\nimport { Month } from './Month';\nimport { styles } from './Calendar.styles';\nimport { CalendarDateShape, create, isGreater, isLess } from './CalendarDateShape';\nimport * as CalendarUtils from './CalendarUtils';\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 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 <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\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\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...props}>\n <div ref={this.refRoot} data-tid={CalendarDataTids.root} className={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":["React","normalizeWheel","throttle","shallowEqual","globalObject","isInstanceOf","InternalDate","rootNode","cx","CommonWrapper","MAX_DATE","MAX_MONTH","MAX_YEAR","MIN_DATE","MIN_MONTH","MIN_YEAR","ThemeContext","animation","isMobile","createPropsGetter","InternalDateTransformer","themeConfig","MonthViewModel","CalendarScrollEvents","Month","styles","create","isGreater","isLess","CalendarUtils","CalendarContext","CalendarDay","CalendarDataTids","root","month","dayCell","headerMonth","monthSelectMobile","headerYear","yearSelectMobile","Calendar","formatDate","date","year","setComponents","toString","withPad","props","getProps","defaultProps","touchStartY","scrollToMonth","inProgress","finish","Promise","r","setTimeout","minDate","getDateInNativeFormat","maxDate","currentMonth","state","months","diffInMonths","scrollTo","maxMonthsToAdd","theme","MAX_MONTHS_TO_APPEND_ON_SCROLL","onEnd","setState","getMonths","scrollPosition","isYearChanges","Math","abs","monthsToPrependCount","min","monthsToPrepend","Array","from","length","_","index","yearChanges","isFirstInYear","isLastInYear","concat","getMonthsHeight","targetPosition","getHeight","monthsToAppendCount","monthsToAppend","slice","handleMonthChange","visibleMonths","changeInfo","getMonthInHumanFormat","onMonthChange","getViewModel","item","renderMain","monthsForRender","getVisibleMonths","wrapperStyle","height","WRAPPER_HEIGHT","context","value","isHoliday","renderDay","today","getTodayDate","onDateClick","handleDateClick","setRootNode","refRoot","wrapper","map","renderMonth","separator","element","addEventListener","handleTouchStart","throttledHandleTouchMove","handleWheel","passive","removeEventListener","dateShape","dateToHumanString","onValueChange","handleMonthYearChange","executeAnimations","pixelY","calculateScrollPosition","scrollTarget","handleWheelEnd","animate","deltaY","applyDelta","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","Component","__KONTUR_REACT_UI__","displayName","Day","_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';\n\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport { InternalDate } from '../../lib/date/InternalDate';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { cx } 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 { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { animation } from '../../lib/animation';\nimport { isMobile } from '../../lib/client';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { InternalDateTransformer } from '../../lib/date/InternalDateTransformer';\n\nimport { themeConfig } from './config';\nimport { MonthViewModel } from './MonthViewModel';\nimport * as CalendarScrollEvents from './CalendarScrollEvents';\nimport { Month } from './Month';\nimport { styles } from './Calendar.styles';\nimport { CalendarDateShape, create, isGreater, isLess } from './CalendarDateShape';\nimport * as CalendarUtils from './CalendarUtils';\nimport { CalendarContext, CalendarContextProps } from './CalendarContext';\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 *\n * Дата задаётся в формате `dd.mm.yyyy`\n */\n periodStartDate?: string;\n /**\n * Задаёт конечную дату периода\n *\n * Дата задаётся в формате `dd.mm.yyyy`\n */\n periodEndDate?: 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 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 <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\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\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={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"]}
|
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import { CommonProps } from '../../internal/CommonWrapper';
|
|
3
3
|
import { Nullable, Range } from '../../typings/utility-types';
|
|
4
4
|
import { MonthViewModel } from './MonthViewModel';
|
|
5
|
-
import {
|
|
5
|
+
import { CalendarDayProps } from './CalendarDay';
|
|
6
6
|
export interface CalendarProps extends CommonProps {
|
|
7
7
|
/**
|
|
8
8
|
* Вызывается при изменении `value`
|
|
@@ -28,6 +28,18 @@ export interface CalendarProps extends CommonProps {
|
|
|
28
28
|
* Дата задаётся в формате `dd.mm.yyyy`
|
|
29
29
|
*/
|
|
30
30
|
minDate?: string;
|
|
31
|
+
/**
|
|
32
|
+
* Задаёт начальную дату периода
|
|
33
|
+
*
|
|
34
|
+
* Дата задаётся в формате `dd.mm.yyyy`
|
|
35
|
+
*/
|
|
36
|
+
periodStartDate?: string;
|
|
37
|
+
/**
|
|
38
|
+
* Задаёт конечную дату периода
|
|
39
|
+
*
|
|
40
|
+
* Дата задаётся в формате `dd.mm.yyyy`
|
|
41
|
+
*/
|
|
42
|
+
periodEndDate?: string;
|
|
31
43
|
/**
|
|
32
44
|
* Функция для определения праздничных дней
|
|
33
45
|
* @default (_day, isWeekend) => isWeekend
|
|
@@ -45,20 +57,40 @@ export interface CalendarProps extends CommonProps {
|
|
|
45
57
|
* Позволяет задать начальный год
|
|
46
58
|
*/
|
|
47
59
|
initialYear?: number;
|
|
60
|
+
/**
|
|
61
|
+
* Метод отрисовки дат в календаре
|
|
62
|
+
* @default (props: CalendarDayProps) => <CalendarDay {...props} />
|
|
63
|
+
* @param {CalendarDayProps} props
|
|
64
|
+
*
|
|
65
|
+
* @returns {ReactElement} Элемент, который отрисовывает контент числа месяца.
|
|
66
|
+
*/
|
|
67
|
+
renderDay?: (props: CalendarDayProps) => React.ReactElement;
|
|
68
|
+
/**
|
|
69
|
+
* Вызывается при каждом изменении месяца
|
|
70
|
+
* @param {CalendarMonthChangeInfo} changeInfo - информация о изменении отображаемого месяца, где
|
|
71
|
+
* `month: number` - номер текущего отображаемого месяца от 1 до 12,
|
|
72
|
+
* `year: number` - отображаемый год,
|
|
73
|
+
*/
|
|
74
|
+
onMonthChange?: (changeInfo: CalendarMonthChangeInfo) => void;
|
|
48
75
|
}
|
|
49
76
|
export interface CalendarState {
|
|
50
77
|
scrollPosition: number;
|
|
51
78
|
months: MonthViewModel[];
|
|
52
|
-
today: CalendarDateShape;
|
|
53
79
|
scrollDirection: number;
|
|
54
80
|
scrollTarget: number;
|
|
55
81
|
}
|
|
82
|
+
export interface CalendarMonthChangeInfo {
|
|
83
|
+
month: number;
|
|
84
|
+
year: number;
|
|
85
|
+
}
|
|
56
86
|
export declare const CalendarDataTids: {
|
|
57
87
|
readonly root: "Calendar__root";
|
|
58
88
|
readonly month: "MonthView__month";
|
|
59
89
|
readonly dayCell: "DayCellView__root";
|
|
60
90
|
readonly headerMonth: "MonthView__headerMonth";
|
|
91
|
+
readonly monthSelectMobile: "MonthView__monthSelectMobile";
|
|
61
92
|
readonly headerYear: "MonthView__headerYear";
|
|
93
|
+
readonly yearSelectMobile: "MonthView__yearSelectMobile";
|
|
62
94
|
};
|
|
63
95
|
declare type DefaultProps = Required<Pick<CalendarProps, 'minDate' | 'maxDate' | 'isHoliday'>>;
|
|
64
96
|
/**
|
|
@@ -67,6 +99,7 @@ declare type DefaultProps = Required<Pick<CalendarProps, 'minDate' | 'maxDate' |
|
|
|
67
99
|
export declare class Calendar extends React.Component<CalendarProps, CalendarState> {
|
|
68
100
|
static __KONTUR_REACT_UI__: string;
|
|
69
101
|
static displayName: string;
|
|
102
|
+
static Day: React.MemoExoticComponent<import("../../lib/forwardRefAndName").ReactUIComponentWithRef<HTMLButtonElement, CalendarDayProps> & Record<string, unknown>>;
|
|
70
103
|
private static formatDate;
|
|
71
104
|
static defaultProps: DefaultProps;
|
|
72
105
|
private getProps;
|
|
@@ -77,7 +110,7 @@ export declare class Calendar extends React.Component<CalendarProps, CalendarSta
|
|
|
77
110
|
private touchStartY;
|
|
78
111
|
private setRootNode;
|
|
79
112
|
constructor(props: CalendarProps);
|
|
80
|
-
componentDidUpdate(prevProps: Readonly<CalendarProps>): void;
|
|
113
|
+
componentDidUpdate(prevProps: Readonly<CalendarProps>, prevState: Readonly<CalendarState>): void;
|
|
81
114
|
componentWillUnmount(): void;
|
|
82
115
|
render(): JSX.Element;
|
|
83
116
|
/**
|
|
@@ -85,13 +118,15 @@ export declare class Calendar extends React.Component<CalendarProps, CalendarSta
|
|
|
85
118
|
* @public
|
|
86
119
|
*/
|
|
87
120
|
scrollToMonth: (month: number, year: number) => Promise<void>;
|
|
121
|
+
private handleMonthChange;
|
|
122
|
+
private getViewModel;
|
|
88
123
|
private renderMain;
|
|
89
124
|
private refRoot;
|
|
90
125
|
private renderMonth;
|
|
91
|
-
private
|
|
92
|
-
private handleDateChange;
|
|
126
|
+
private handleDateClick;
|
|
93
127
|
private getDateInNativeFormat;
|
|
94
128
|
private getMonthPositions;
|
|
129
|
+
private getVisibleMonths;
|
|
95
130
|
private handleMonthYearChange;
|
|
96
131
|
private executeAnimations;
|
|
97
132
|
private handleTouchStart;
|