@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
|
@@ -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,46 @@ const theme = React.useContext(ThemeContext);
|
|
|
103
104
|
</ThemeContext.Provider>
|
|
104
105
|
```
|
|
105
106
|
|
|
107
|
+
### Кастомный рендер дня
|
|
108
|
+
|
|
109
|
+
```jsx harmony
|
|
110
|
+
import { Tooltip, Hint, CalendarDay } from '@skbkontur/react-ui';
|
|
111
|
+
|
|
112
|
+
const initialValue = "02.09.2023";
|
|
113
|
+
|
|
114
|
+
const [value, setValue] = React.useState(initialValue);
|
|
115
|
+
|
|
116
|
+
const renderDay = (props) => {
|
|
117
|
+
const [date, month, year] = props.date.split('.').map(Number);
|
|
118
|
+
|
|
119
|
+
if (month == 9 && date > 12 && date < 16) {
|
|
120
|
+
return (
|
|
121
|
+
<Tooltip render={() => "Кастомный день"}>
|
|
122
|
+
<CalendarDay {...props} style={{ background: 'darkgray' }} />
|
|
123
|
+
</Tooltip>
|
|
124
|
+
);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
if (month == 8 && date == 20) {
|
|
128
|
+
return (
|
|
129
|
+
<Hint text={date} pos="right middle">
|
|
130
|
+
<CalendarDay {...props}>
|
|
131
|
+
<b style={{color: 'orange'}}>#</b>
|
|
132
|
+
</CalendarDay>
|
|
133
|
+
</Hint>
|
|
134
|
+
);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
return <CalendarDay {...props} />
|
|
138
|
+
};
|
|
139
|
+
|
|
140
|
+
<Calendar
|
|
141
|
+
value={value}
|
|
142
|
+
onValueChange={setValue}
|
|
143
|
+
renderDay={renderDay}
|
|
144
|
+
/>;
|
|
145
|
+
```
|
|
146
|
+
|
|
106
147
|
#### Локали по умолчанию
|
|
107
148
|
|
|
108
149
|
```typescript static
|
|
@@ -5,7 +5,7 @@ var _templateObject, _templateObject2, _templateObject3;
|
|
|
5
5
|
import { css, memoizeStyle } from "../../../lib/theming/Emotion";
|
|
6
6
|
export var styles = memoizeStyle({
|
|
7
7
|
root: function root(t) {
|
|
8
|
-
var width = parseInt(t.
|
|
8
|
+
var width = parseInt(t.calendarCellWidth) * 7;
|
|
9
9
|
return css(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\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 "])), t.calendarBg, t.pickerBorderRadius, t.textColorDefault, t.calendarPaddingX, width);
|
|
10
10
|
},
|
|
11
11
|
wrapper: function wrapper() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Calendar.styles.ts"],"names":["css","memoizeStyle","styles","root","t","width","parseInt","
|
|
1
|
+
{"version":3,"sources":["Calendar.styles.ts"],"names":["css","memoizeStyle","styles","root","t","width","parseInt","calendarCellWidth","calendarBg","pickerBorderRadius","textColorDefault","calendarPaddingX","wrapper","separator","calendarBottomSeparatorBorder","calendarMonthTitleMarginX"],"mappings":"wJAAA,SAASA,GAAT,EAAcC,YAAd,QAAkC,2BAAlC;;;AAGA,OAAO,IAAMC,MAAM,GAAGD,YAAY,CAAC;AACjCE,EAAAA,IADiC,gBAC5BC,CAD4B,EAClB;AACb,QAAMC,KAAK,GAAGC,QAAQ,CAACF,CAAC,CAACG,iBAAH,CAAR,GAAgC,CAA9C;AACA,WAAOP,GAAP;AACgBI,IAAAA,CAAC,CAACI,UADlB;;AAGmBJ,IAAAA,CAAC,CAACK,kBAHrB;AAIWL,IAAAA,CAAC,CAACM,gBAJb;;AAMeN,IAAAA,CAAC,CAACO,gBANjB;AAOWN,IAAAA,KAPX;;;AAUD,GAbgC;;AAejCO,EAAAA,OAfiC,qBAevB;AACR,WAAOZ,GAAP;;;;;AAKD,GArBgC;;AAuBjCa,EAAAA,SAvBiC,qBAuBvBT,CAvBuB,EAuBb;AAClB,WAAOJ,GAAP;AACmBI,IAAAA,CAAC,CAACU,6BADrB;AAEcV,IAAAA,CAAC,CAACW,yBAFhB;;AAID,GA5BgC,EAAD,CAA3B","sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\n\nexport const styles = memoizeStyle({\n root(t: Theme) {\n const width = parseInt(t.calendarCellWidth) * 7;\n return 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 css`\n font-size: 14px;\n position: relative;\n overflow: hidden;\n `;\n },\n\n separator(t: Theme) {\n return css`\n border-bottom: ${t.calendarBottomSeparatorBorder};\n margin: 0 ${t.calendarMonthTitleMarginX};\n `;\n },\n});\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["CalendarContext.ts"],"names":["createContext","CalendarContext"],"mappings":"AAAA,SAASA,aAAT,QAA8B,OAA9B;;;;;;;;;;;;;;;AAeA,OAAO,IAAMC,eAAe,gBAAGD,aAAa,CAAuB,EAAvB,CAArC","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"]}
|
|
@@ -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>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export var isEqual = function isEqual(a, b) {
|
|
2
|
-
return !a && !b || a && b && a.year === b.year && a.month === b.month && a.date === b.date;
|
|
2
|
+
return Boolean(!a && !b || a && b && a.year === b.year && a.month === b.month && a.date === b.date);
|
|
3
3
|
};
|
|
4
4
|
export var comparator = function comparator(a, b) {
|
|
5
5
|
if (a.year < b.year) {
|
|
@@ -47,4 +47,26 @@ export var isBetween = function isBetween(date, left, right) {
|
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
return true;
|
|
50
|
+
};
|
|
51
|
+
export var fromString = function fromString(dateString) {
|
|
52
|
+
var _dateString$split$map = dateString.split('.').map(Number),
|
|
53
|
+
date = _dateString$split$map[0],
|
|
54
|
+
month = _dateString$split$map[1],
|
|
55
|
+
year = _dateString$split$map[2];
|
|
56
|
+
|
|
57
|
+
return create(date, month, year);
|
|
58
|
+
};
|
|
59
|
+
export var toString = function toString(_ref) {
|
|
60
|
+
var date = _ref.date,
|
|
61
|
+
month = _ref.month,
|
|
62
|
+
year = _ref.year;
|
|
63
|
+
|
|
64
|
+
var _map = [date, month, year].map(function (x) {
|
|
65
|
+
return x.toString();
|
|
66
|
+
}),
|
|
67
|
+
d = _map[0],
|
|
68
|
+
m = _map[1],
|
|
69
|
+
y = _map[2];
|
|
70
|
+
|
|
71
|
+
return d.padStart(2, '0') + "." + m.padStart(2, '0') + "." + y.padStart(4, '0');
|
|
50
72
|
};
|
|
@@ -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":";;;;;;;;AAQA,OAAO,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":"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","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"]}
|
|
@@ -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;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
+
var _excluded = ["isToday", "isSelected", "isDisabled", "isWeekend", "date", "children", "className"];
|
|
4
|
+
import React, { useContext, memo } from 'react';
|
|
5
|
+
import { useLocaleForControl } from "../../../lib/locale/useLocaleForControl";
|
|
6
|
+
import { ThemeContext } from "../../../lib/theming/ThemeContext";
|
|
7
|
+
import { cx } from "../../../lib/theming/Emotion";
|
|
8
|
+
import { isTheme2022 } from "../../../lib/theming/ThemeHelpers";
|
|
9
|
+
import { DatePickerLocaleHelper } from "../../DatePicker/locale";
|
|
10
|
+
import { InternalDate } from "../../../lib/date/InternalDate";
|
|
11
|
+
import { LocaleContext } from "../../../lib/locale";
|
|
12
|
+
import { getVisualStateDataAttributes } from "../../../internal/CommonWrapper/utils/getVisualStateDataAttributes";
|
|
13
|
+
import { forwardRefAndName } from "../../../lib/forwardRefAndName";
|
|
14
|
+
import { styles } from "../DayCellView.styles";
|
|
15
|
+
import { CalendarDataTids } from "../Calendar";
|
|
16
|
+
/**
|
|
17
|
+
* @visibleName Calendar.Day
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
export var CalendarDay = /*#__PURE__*/memo(forwardRefAndName('CalendarDay', function CalendarDay(_ref, ref) {
|
|
21
|
+
var _cx, _cx2;
|
|
22
|
+
|
|
23
|
+
var isToday = _ref.isToday,
|
|
24
|
+
isSelected = _ref.isSelected,
|
|
25
|
+
isDisabled = _ref.isDisabled,
|
|
26
|
+
isWeekend = _ref.isWeekend,
|
|
27
|
+
date = _ref.date,
|
|
28
|
+
children = _ref.children,
|
|
29
|
+
className = _ref.className,
|
|
30
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
31
|
+
|
|
32
|
+
var theme = useContext(ThemeContext);
|
|
33
|
+
|
|
34
|
+
var _isTheme2022 = isTheme2022(theme);
|
|
35
|
+
|
|
36
|
+
var _useContext = useContext(LocaleContext),
|
|
37
|
+
langCode = _useContext.langCode;
|
|
38
|
+
|
|
39
|
+
var internalDate = new InternalDate({
|
|
40
|
+
langCode: langCode,
|
|
41
|
+
value: date
|
|
42
|
+
});
|
|
43
|
+
var locale = useLocaleForControl('Calendar', DatePickerLocaleHelper);
|
|
44
|
+
var ariaLabel = locale.dayCellChooseDateAriaLabel + ": " + internalDate.toA11YFormat();
|
|
45
|
+
|
|
46
|
+
var _internalDate$getComp = internalDate.getComponentsLikeNumber(),
|
|
47
|
+
day = _internalDate$getComp.date;
|
|
48
|
+
|
|
49
|
+
var caption = children != null ? children : day;
|
|
50
|
+
return /*#__PURE__*/React.createElement("button", _extends({
|
|
51
|
+
ref: ref,
|
|
52
|
+
"data-tid": CalendarDataTids.dayCell,
|
|
53
|
+
"aria-label": ariaLabel,
|
|
54
|
+
tabIndex: -1,
|
|
55
|
+
disabled: isDisabled,
|
|
56
|
+
className: cx((_cx = {}, _cx[styles.day(theme)] = true, _cx[styles.today(theme)] = isToday && !_isTheme2022, _cx[styles.selected(theme)] = isSelected, _cx[styles.weekend(theme)] = isWeekend, _cx), className)
|
|
57
|
+
}, getVisualStateDataAttributes({
|
|
58
|
+
selected: isSelected
|
|
59
|
+
}), rest), /*#__PURE__*/React.createElement("span", {
|
|
60
|
+
className: cx((_cx2 = {}, _cx2[styles.todayCaption2022(theme)] = isToday && _isTheme2022, _cx2))
|
|
61
|
+
}, caption));
|
|
62
|
+
}));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["CalendarDay.tsx"],"names":["React","useContext","memo","useLocaleForControl","ThemeContext","cx","isTheme2022","DatePickerLocaleHelper","InternalDate","LocaleContext","getVisualStateDataAttributes","forwardRefAndName","styles","CalendarDataTids","CalendarDay","ref","isToday","isSelected","isDisabled","isWeekend","date","children","className","rest","theme","_isTheme2022","langCode","internalDate","value","locale","ariaLabel","dayCellChooseDateAriaLabel","toA11YFormat","getComponentsLikeNumber","day","caption","dayCell","today","selected","weekend","todayCaption2022"],"mappings":"oQAAA,OAAOA,KAAP,IAAmCC,UAAnC,EAA+CC,IAA/C,QAA2D,OAA3D;;AAEA,SAASC,mBAAT,QAAoC,sCAApC;AACA,SAASC,YAAT,QAA6B,gCAA7B;AACA,SAASC,EAAT,QAAmB,2BAAnB;AACA,SAASC,WAAT,QAA4B,gCAA5B;AACA,SAASC,sBAAT,QAAuC,sBAAvC;AACA,SAASC,YAAT,QAA6B,6BAA7B;AACA,SAASC,aAAT,QAA8B,kBAA9B;AACA,SAASC,4BAAT,QAA6C,iEAA7C;AACA,SAASC,iBAAT,QAAkC,6BAAlC;;AAEA,SAASC,MAAT,QAAuB,sBAAvB;AACA,SAASC,gBAAT,QAAiC,YAAjC;;;;;;;;;;AAUA;AACA;AACA;AACA,OAAO,IAAMC,WAAW,gBAAGZ,IAAI;AAC7BS,iBAAiB;AACf,aADe;AAEf,SAASG,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,GAAGvB,UAAU,CAACG,YAAD,CAAxB;AACA,MAAMqB,YAAY,GAAGnB,WAAW,CAACkB,KAAD,CAAhC;;AAEA,oBAAqBvB,UAAU,CAACQ,aAAD,CAA/B,CAAQiB,QAAR,eAAQA,QAAR;AACA,MAAMC,YAAY,GAAG,IAAInB,YAAJ,CAAiB,EAAEkB,QAAQ,EAARA,QAAF,EAAYE,KAAK,EAAER,IAAnB,EAAjB,CAArB;;AAEA,MAAMS,MAAM,GAAG1B,mBAAmB,CAAC,UAAD,EAAaI,sBAAb,CAAlC;AACA,MAAMuB,SAAS,GAAMD,MAAM,CAACE,0BAAb,UAA4CJ,YAAY,CAACK,YAAb,EAA3D;;AAEA,8BAAsBL,YAAY,CAACM,uBAAb,EAAtB,CAAcC,GAAd,yBAAQd,IAAR;AACA,MAAMe,OAAO,GAAGd,QAAH,WAAGA,QAAH,GAAea,GAA5B;;AAEA;AACE;AACE,MAAA,GAAG,EAAEnB,GADP;AAEE,kBAAUF,gBAAgB,CAACuB,OAF7B;AAGE,oBAAYN,SAHd;AAIE,MAAA,QAAQ,EAAE,CAAC,CAJb;AAKE,MAAA,QAAQ,EAAEZ,UALZ;AAME,MAAA,SAAS,EAAEb,EAAE;;AAERO,MAAAA,MAAM,CAACsB,GAAP,CAAWV,KAAX,CAFQ,IAEY,IAFZ;AAGRZ,MAAAA,MAAM,CAACyB,KAAP,CAAab,KAAb,CAHQ,IAGcR,OAAO,IAAI,CAACS,YAH1B;AAIRb,MAAAA,MAAM,CAAC0B,QAAP,CAAgBd,KAAhB,CAJQ,IAIiBP,UAJjB;AAKRL,MAAAA,MAAM,CAAC2B,OAAP,CAAef,KAAf,CALQ,IAKgBL,SALhB;;AAOXG,MAAAA,SAPW,CANf;;AAeMZ,IAAAA,4BAA4B,CAAC,EAAE4B,QAAQ,EAAErB,UAAZ,EAAD,CAflC;AAgBMM,IAAAA,IAhBN;;AAkBE,kCAAM,SAAS,EAAElB,EAAE,kBAAIO,MAAM,CAAC4B,gBAAP,CAAwBhB,KAAxB,CAAJ,IAAqCR,OAAO,IAAIS,YAAhD,QAAnB,IAAqFU,OAArF,CAlBF,CADF;;;AAsBD,CAjDc,CADY,CAAxB","sourcesContent":["import React, { PropsWithChildren, useContext, memo } from 'react';\n\nimport { useLocaleForControl } from '../../lib/locale/useLocaleForControl';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { cx } 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 { styles } 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 _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\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,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,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;
|
|
@@ -69,10 +69,11 @@ export var getMonths = function getMonths(month, year) {
|
|
|
69
69
|
return MonthViewModel.create(month + x, year);
|
|
70
70
|
});
|
|
71
71
|
};
|
|
72
|
-
export var getMonthInNativeFormat = function getMonthInNativeFormat(
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
72
|
+
export var getMonthInNativeFormat = function getMonthInNativeFormat(month) {
|
|
73
|
+
return month - 1;
|
|
74
|
+
};
|
|
75
|
+
export var getMonthInHumanFormat = function getMonthInHumanFormat(month) {
|
|
76
|
+
return month + 1;
|
|
76
77
|
};
|
|
77
78
|
export var getInitialDate = function getInitialDate(_ref3) {
|
|
78
79
|
var today = _ref3.today,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["CalendarUtils.ts"],"names":["themeConfig","MonthViewModel","isGreater","isLess","calculateScrollPosition","months","scrollPosition","deltaY","theme","scrollDirection","nextScrollPosition","nextMonths","firstMonth","getHeight","getMonths","month","year","lastMonth","length","applyDelta","minDate","maxDate","isMinDateExceeded","isMaxDateExceeded","isMonthVisible","top","WRAPPER_HEIGHT","getMonthsHeight","reduce","a","b","map","x","create","getMonthInNativeFormat","
|
|
1
|
+
{"version":3,"sources":["CalendarUtils.ts"],"names":["themeConfig","MonthViewModel","isGreater","isLess","calculateScrollPosition","months","scrollPosition","deltaY","theme","scrollDirection","nextScrollPosition","nextMonths","firstMonth","getHeight","getMonths","month","year","lastMonth","length","applyDelta","minDate","maxDate","isMinDateExceeded","isMaxDateExceeded","isMonthVisible","top","WRAPPER_HEIGHT","getMonthsHeight","reduce","a","b","map","x","create","getMonthInNativeFormat","getMonthInHumanFormat","getInitialDate","today","date","getTodayDate","Date","getDate","getMonth","getFullYear"],"mappings":"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","sourcesContent":["import { Nullable } from '../../typings/utility-types';\nimport { Theme } from '../../lib/theming/Theme';\n\nimport { themeConfig } from './config';\nimport { MonthViewModel } from './MonthViewModel';\nimport { CalendarState } from './Calendar';\nimport { CalendarDateShape, isGreater, isLess } from './CalendarDateShape';\n\nexport const calculateScrollPosition = (\n months: MonthViewModel[],\n scrollPosition: number,\n deltaY: number,\n theme: Theme,\n) => {\n const scrollDirection = deltaY > 0 ? 1 : -1;\n\n let nextScrollPosition = scrollPosition - deltaY;\n let nextMonths = months;\n\n const firstMonth = months[0];\n if (scrollDirection < 0 && nextScrollPosition >= firstMonth.getHeight(theme)) {\n do {\n nextScrollPosition -= nextMonths[0].getHeight(theme);\n nextMonths = getMonths(firstMonth.month, firstMonth.year);\n } while (nextScrollPosition >= nextMonths[0].getHeight(theme));\n }\n\n const lastMonth = months[months.length - 1];\n if (scrollDirection > 0 && nextScrollPosition < 0) {\n do {\n nextScrollPosition += nextMonths[1].getHeight(theme);\n nextMonths = getMonths(lastMonth.month, lastMonth.year);\n } while (nextScrollPosition < 0);\n }\n\n return {\n scrollPosition: nextScrollPosition,\n months: nextMonths,\n scrollDirection,\n };\n};\n\nexport const applyDelta = (deltaY: number, theme: Theme) => {\n return (\n { scrollPosition, months }: Readonly<CalendarState>,\n { minDate, maxDate }: { minDate: CalendarDateShape; maxDate: CalendarDateShape },\n ) => {\n const scrollDirection = deltaY > 0 ? 1 : -1;\n const isMinDateExceeded =\n minDate && scrollDirection < 0 && minDate.year * 12 + minDate.month > months[0].year * 12 + months[0].month;\n\n const isMaxDateExceeded =\n maxDate && scrollDirection > 0 && maxDate.year * 12 + maxDate.month < months[1].year * 12 + months[1].month;\n\n if (isMinDateExceeded) {\n return { scrollPosition: 0, scrollDirection };\n }\n\n if (isMaxDateExceeded) {\n return { scrollPosition: months[2].getHeight(theme), scrollDirection };\n }\n\n return calculateScrollPosition(months, scrollPosition, deltaY, theme);\n };\n};\n\nexport const isMonthVisible = (top: number, month: MonthViewModel, theme: Theme) => {\n return top < themeConfig(theme).WRAPPER_HEIGHT && top > -month.getHeight(theme);\n};\n\nexport const getMonthsHeight = (months: MonthViewModel[], theme: Theme) =>\n months.reduce((a, b) => a + b.getHeight(theme), 0);\n\nexport const getMonths = (month: number, year: number): MonthViewModel[] => {\n return [-1, 0, 1].map((x) => MonthViewModel.create(month + x, year));\n};\n\nexport const getMonthInNativeFormat = (month: number) => month - 1;\n\nexport const getMonthInHumanFormat = (month: number) => month + 1;\n\nexport const getInitialDate = ({\n today,\n date,\n minDate,\n maxDate,\n}: {\n today: CalendarDateShape;\n date?: Nullable<CalendarDateShape>;\n minDate?: Nullable<CalendarDateShape>;\n maxDate?: Nullable<CalendarDateShape>;\n}) => {\n if (date) {\n return date;\n }\n\n if (minDate && isLess(today, minDate)) {\n return minDate;\n }\n\n if (maxDate && isGreater(today, maxDate)) {\n return maxDate;\n }\n\n return today;\n};\n\nexport const getTodayDate = () => {\n const date = new Date();\n return {\n date: date.getDate(),\n month: date.getMonth(),\n year: date.getFullYear(),\n };\n};\n"]}
|
|
@@ -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,55 +1,41 @@
|
|
|
1
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
1
|
import React, { useContext } from 'react';
|
|
3
|
-
import { useLocaleForControl } from "../../../lib/locale/useLocaleForControl";
|
|
4
2
|
import { ThemeContext } from "../../../lib/theming/ThemeContext";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import { getVisualStateDataAttributes } from "../../../internal/CommonWrapper/utils/getVisualStateDataAttributes";
|
|
3
|
+
import { InternalDateTransformer } from "../../../lib/date/InternalDateTransformer";
|
|
4
|
+
import { styles } from "../DayCellView.styles";
|
|
5
|
+
import { CalendarContext } from "../CalendarContext";
|
|
9
6
|
import * as CDS from "../CalendarDateShape";
|
|
10
|
-
import {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
var _cx;
|
|
7
|
+
import { CalendarDay } from "../CalendarDay";
|
|
8
|
+
export var DayCellView = function DayCellView(props) {
|
|
9
|
+
var _isHoliday, _renderDay;
|
|
14
10
|
|
|
15
|
-
var date = props.date
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
11
|
+
var date = props.date;
|
|
12
|
+
|
|
13
|
+
var _useContext = useContext(CalendarContext),
|
|
14
|
+
value = _useContext.value,
|
|
15
|
+
minDate = _useContext.minDate,
|
|
16
|
+
maxDate = _useContext.maxDate,
|
|
17
|
+
isHoliday = _useContext.isHoliday,
|
|
18
|
+
renderDay = _useContext.renderDay,
|
|
19
|
+
today = _useContext.today,
|
|
20
|
+
onDateClick = _useContext.onDateClick;
|
|
23
21
|
|
|
24
|
-
var
|
|
22
|
+
var theme = useContext(ThemeContext);
|
|
25
23
|
|
|
26
24
|
var handleClick = function handleClick() {
|
|
27
|
-
|
|
28
|
-
date = _props$date.date,
|
|
29
|
-
month = _props$date.month,
|
|
30
|
-
year = _props$date.year;
|
|
31
|
-
onDateClick == null ? void 0 : onDateClick({
|
|
32
|
-
date: date,
|
|
33
|
-
month: month,
|
|
34
|
-
year: year
|
|
35
|
-
});
|
|
25
|
+
onDateClick == null ? void 0 : onDateClick(date);
|
|
36
26
|
};
|
|
37
27
|
|
|
38
|
-
var
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
className:
|
|
50
|
-
},
|
|
51
|
-
|
|
52
|
-
}), {
|
|
53
|
-
onClick: handleClick
|
|
54
|
-
}), child);
|
|
55
|
-
}
|
|
28
|
+
var humanDateString = InternalDateTransformer.dateToHumanString(date);
|
|
29
|
+
var dayProps = {
|
|
30
|
+
isToday: Boolean(today && CDS.isEqual(date, today)),
|
|
31
|
+
isSelected: Boolean(value && CDS.isEqual(date, value)),
|
|
32
|
+
isDisabled: !CDS.isBetween(date, minDate, maxDate),
|
|
33
|
+
isWeekend: (_isHoliday = isHoliday == null ? void 0 : isHoliday(humanDateString, date.isWeekend)) != null ? _isHoliday : date.isWeekend,
|
|
34
|
+
date: humanDateString
|
|
35
|
+
};
|
|
36
|
+
var dayElement = (_renderDay = renderDay == null ? void 0 : renderDay(dayProps)) != null ? _renderDay : /*#__PURE__*/React.createElement(CalendarDay, dayProps);
|
|
37
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
38
|
+
onClick: handleClick,
|
|
39
|
+
className: styles.cell(theme)
|
|
40
|
+
}, dayElement);
|
|
41
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["DayCellView.tsx"],"names":["React","useContext","
|
|
1
|
+
{"version":3,"sources":["DayCellView.tsx"],"names":["React","useContext","ThemeContext","InternalDateTransformer","styles","CalendarContext","CDS","CalendarDay","DayCellView","props","date","value","minDate","maxDate","isHoliday","renderDay","today","onDateClick","theme","handleClick","humanDateString","dateToHumanString","dayProps","isToday","Boolean","isEqual","isSelected","isDisabled","isBetween","isWeekend","dayElement","cell"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,UAAhB,QAAkC,OAAlC;;AAEA,SAASC,YAAT,QAA6B,gCAA7B;AACA,SAASC,uBAAT,QAAwC,wCAAxC;;AAEA,SAASC,MAAT,QAAuB,sBAAvB;AACA,SAASC,eAAT,QAAgC,mBAAhC;;AAEA,OAAO,KAAKC,GAAZ,MAAqB,qBAArB;AACA,SAASC,WAAT,QAA8C,eAA9C;;;;;;AAMA,OAAO,IAAMC,WAAW,GAAG,SAAdA,WAAc,CAACC,KAAD,EAA6B;AACtD,MAAQC,IAAR,GAAiBD,KAAjB,CAAQC,IAAR;AACA,oBAA8ET,UAAU,CAACI,eAAD,CAAxF,CAAQM,KAAR,eAAQA,KAAR,CAAeC,OAAf,eAAeA,OAAf,CAAwBC,OAAxB,eAAwBA,OAAxB,CAAiCC,SAAjC,eAAiCA,SAAjC,CAA4CC,SAA5C,eAA4CA,SAA5C,CAAuDC,KAAvD,eAAuDA,KAAvD,CAA8DC,WAA9D,eAA8DA,WAA9D;AACA,MAAMC,KAAK,GAAGjB,UAAU,CAACC,YAAD,CAAxB;;AAEA,MAAMiB,WAAW,GAAG,SAAdA,WAAc,GAAM;AACxBF,IAAAA,WAAW,QAAX,YAAAA,WAAW,CAAGP,IAAH,CAAX;AACD,GAFD;;AAIA,MAAMU,eAAe,GAAGjB,uBAAuB,CAACkB,iBAAxB,CAA0CX,IAA1C,CAAxB;;AAEA,MAAMY,QAA0B,GAAG;AACjCC,IAAAA,OAAO,EAAEC,OAAO,CAACR,KAAK,IAAIV,GAAG,CAACmB,OAAJ,CAAYf,IAAZ,EAAkBM,KAAlB,CAAV,CADiB;AAEjCU,IAAAA,UAAU,EAAEF,OAAO,CAACb,KAAK,IAAIL,GAAG,CAACmB,OAAJ,CAAYf,IAAZ,EAAkBC,KAAlB,CAAV,CAFc;AAGjCgB,IAAAA,UAAU,EAAE,CAACrB,GAAG,CAACsB,SAAJ,CAAclB,IAAd,EAAoBE,OAApB,EAA6BC,OAA7B,CAHoB;AAIjCgB,IAAAA,SAAS,gBAAEf,SAAF,oBAAEA,SAAS,CAAGM,eAAH,EAAoBV,IAAI,CAACmB,SAAzB,CAAX,yBAAkDnB,IAAI,CAACmB,SAJ/B;AAKjCnB,IAAAA,IAAI,EAAEU,eAL2B,EAAnC;;;AAQA,MAAMU,UAAU,iBAAGf,SAAH,oBAAGA,SAAS,CAAGO,QAAH,CAAZ,sCAA4B,oBAAC,WAAD,EAAiBA,QAAjB,CAA5C;;AAEA;AACE,iCAAK,OAAO,EAAEH,WAAd,EAA2B,SAAS,EAAEf,MAAM,CAAC2B,IAAP,CAAYb,KAAZ,CAAtC;AACGY,IAAAA,UADH,CADF;;;AAKD,CA1BM","sourcesContent":["import React, { useContext } from 'react';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { InternalDateTransformer } from '../../lib/date/InternalDateTransformer';\n\nimport { styles } from './DayCellView.styles';\nimport { CalendarContext } from './CalendarContext';\nimport { DayCellViewModel } from './DayCellViewModel';\nimport * as CDS from './CalendarDateShape';\nimport { CalendarDay, CalendarDayProps } from './CalendarDay';\n\nexport interface DayCellViewProps {\n date: DayCellViewModel;\n}\n\nexport const DayCellView = (props: DayCellViewProps) => {\n const { date } = props;\n const { value, minDate, maxDate, isHoliday, renderDay, today, onDateClick } = useContext(CalendarContext);\n const theme = useContext(ThemeContext);\n\n const handleClick = () => {\n onDateClick?.(date);\n };\n\n const humanDateString = InternalDateTransformer.dateToHumanString(date);\n\n const dayProps: CalendarDayProps = {\n isToday: Boolean(today && CDS.isEqual(date, today)),\n isSelected: Boolean(value && CDS.isEqual(date, value)),\n isDisabled: !CDS.isBetween(date, minDate, maxDate),\n isWeekend: isHoliday?.(humanDateString, date.isWeekend) ?? date.isWeekend,\n date: humanDateString,\n };\n\n const dayElement = renderDay?.(dayProps) ?? <CalendarDay {...dayProps} />;\n\n return (\n <div onClick={handleClick} className={styles.cell(theme)}>\n {dayElement}\n </div>\n );\n};\n"]}
|
|
@@ -1,13 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
date: CDS.CalendarDateShape;
|
|
5
|
-
today?: CDS.CalendarDateShape;
|
|
6
|
-
value?: Nullable<CDS.CalendarDateShape>;
|
|
7
|
-
minDate?: CDS.CalendarDateShape;
|
|
8
|
-
maxDate?: CDS.CalendarDateShape;
|
|
9
|
-
onDateClick?: (day: CDS.CalendarDateShape) => void;
|
|
10
|
-
isWeekend?: boolean;
|
|
1
|
+
import { DayCellViewModel } from './DayCellViewModel';
|
|
2
|
+
export interface DayCellViewProps {
|
|
3
|
+
date: DayCellViewModel;
|
|
11
4
|
}
|
|
12
|
-
export declare
|
|
13
|
-
export {};
|
|
5
|
+
export declare const DayCellView: (props: DayCellViewProps) => JSX.Element;
|
|
@@ -2,28 +2,25 @@ import _taggedTemplateLiteralLoose from "@babel/runtime/helpers/esm/taggedTempla
|
|
|
2
2
|
|
|
3
3
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
|
|
4
4
|
|
|
5
|
-
import { css, memoizeStyle
|
|
5
|
+
import { css, memoizeStyle } from "../../../lib/theming/Emotion";
|
|
6
6
|
import { resetButton } from "../../../lib/styles/Mixins";
|
|
7
|
-
export var globalClasses = prefix('day-cell-view')({
|
|
8
|
-
todayCaption: 'today-caption'
|
|
9
|
-
});
|
|
10
7
|
export var styles = memoizeStyle({
|
|
11
8
|
cell: function cell(t) {
|
|
12
|
-
return css(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n
|
|
9
|
+
return css(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n flex: 1 1 ", ";\n height: ", ";\n "])), t.calendarCellWidth, t.calendarCellHeight);
|
|
10
|
+
},
|
|
11
|
+
day: function day(t) {
|
|
12
|
+
return css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["\n ", ";\n width: 100%;\n height: 100%;\n\n background: ", ";\n border: 1px solid transparent;\n font-size: ", ";\n padding: 0;\n text-align: center;\n user-select: none;\n position: relative;\n line-height: ", ";\n border-radius: ", ";\n\n &:hover {\n background-color: ", ";\n color: ", ";\n cursor: pointer;\n }\n &:disabled {\n opacity: 0.5;\n pointer-events: none;\n }\n &:active:hover:enabled {\n color: ", ";\n }\n "])), resetButton(), t.calendarCellBg, t.calendarCellFontSize, t.calendarCellLineHeight, t.calendarCellBorderRadius, t.calendarCellHoverBgColor, t.calendarCellHoverColor, t.calendarCellActiveHoverColor);
|
|
13
13
|
},
|
|
14
14
|
selected: function selected(t) {
|
|
15
|
-
return css(
|
|
15
|
+
return css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteralLoose(["\n background-color: ", ";\n color: ", ";\n "])), t.calendarCellSelectedBgColor, t.calendarCellSelectedFontColor);
|
|
16
16
|
},
|
|
17
17
|
weekend: function weekend(t) {
|
|
18
|
-
return css(
|
|
18
|
+
return css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteralLoose(["\n color: ", ";\n "])), t.calendarCellWeekendColor);
|
|
19
19
|
},
|
|
20
20
|
today: function today(t) {
|
|
21
|
-
return css(
|
|
22
|
-
},
|
|
23
|
-
today2022: function today2022(t) {
|
|
24
|
-
return css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteralLoose(["\n .", " {\n border-bottom: ", ";\n }\n "])), globalClasses.todayCaption, t.calendarCellTodayBorder);
|
|
21
|
+
return css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteralLoose(["\n border: ", ";\n "])), t.calendarCellTodayBorder);
|
|
25
22
|
},
|
|
26
|
-
|
|
27
|
-
return css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteralLoose(["\n padding-bottom: 2px;\n "])));
|
|
23
|
+
todayCaption2022: function todayCaption2022(t) {
|
|
24
|
+
return css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteralLoose(["\n padding-bottom: 2px;\n border-bottom: ", ";\n "])), t.calendarCellTodayBorder);
|
|
28
25
|
}
|
|
29
26
|
});
|