@skbkontur/react-ui 5.0.12 → 5.0.13
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 +11 -0
- package/cjs/components/Calendar/Calendar.js +4 -1
- package/cjs/components/Calendar/Calendar.js.map +1 -1
- package/cjs/components/DatePicker/MobilePicker.js +0 -9
- package/cjs/components/DatePicker/MobilePicker.js.map +1 -1
- package/components/Calendar/Calendar/Calendar.js +6 -4
- package/components/Calendar/Calendar/Calendar.js.map +1 -1
- package/components/DatePicker/MobilePicker/MobilePicker.js +0 -8
- package/components/DatePicker/MobilePicker/MobilePicker.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [5.0.13](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.0.12...@skbkontur/react-ui@5.0.13) (2025-03-17)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **DatePicker:** remove unnecessary hook usage ([#3619](https://github.com/skbkontur/retail-ui/issues/3619)) ([35572c8](https://github.com/skbkontur/retail-ui/commit/35572c8b13a8866c4670b19fd7948a22683d7753))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
## [5.0.12](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.0.11...@skbkontur/react-ui@5.0.12) (2025-03-11)
|
|
7
18
|
|
|
8
19
|
|
|
@@ -201,6 +201,9 @@ Calendar = exports.Calendar = (0, _rootNode.rootNode)(_class = (_Calendar = /*#_
|
|
|
201
201
|
|
|
202
202
|
|
|
203
203
|
|
|
204
|
+
|
|
205
|
+
|
|
206
|
+
|
|
204
207
|
|
|
205
208
|
|
|
206
209
|
|
|
@@ -520,4 +523,4 @@ Calendar = exports.Calendar = (0, _rootNode.rootNode)(_class = (_Calendar = /*#_
|
|
|
520
523
|
},
|
|
521
524
|
onEnd
|
|
522
525
|
);
|
|
523
|
-
};var _this$getProps = _this.getProps(),_minDate = _this$getProps.minDate,_maxDate = _this$getProps.maxDate,_value = _this$getProps.value;var minDateShape = _this.getDateInNativeFormat(_minDate);var maxDateShape = _this.getDateInNativeFormat(_maxDate);var _dateShape = _this.getDateInNativeFormat(_value);var today = CalendarUtils.getTodayDate();var initialDate = CalendarUtils.getInitialDate({ today: today, date: _dateShape, minDate: minDateShape, maxDate: maxDateShape });var initialMonth = _this.props.initialMonth ? CalendarUtils.getMonthInNativeFormat(_this.props.initialMonth) : initialDate.month;var initialYear = (_this$props$initialYe = _this.props.initialYear) != null ? _this$props$initialYe : initialDate.year;_this.state = { scrollPosition: 0, months: CalendarUtils.getMonths(initialMonth, initialYear), scrollDirection: 1, scrollTarget: 0 };return _this;}(0, _inheritsLoose2.default)(Calendar, _React$Component);Calendar.formatDate = function formatDate(date, month, year) {return new _InternalDate.InternalDate().setComponents({ date: date, month: month, year: year }).toString({ withPad: true });};var _proto = Calendar.prototype;_proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {var _this$props = this.props,value = _this$props.value,onMonthChange = _this$props.onMonthChange;if (value && !(0, _shallowequal.default)(value, prevProps.value)) {var date = new _InternalDate.InternalDate().parseValue(value).getComponentsLikeNumber();this.scrollToMonth(date.month, date.year);}if (onMonthChange) {var visibleMonthsModels = this.getVisibleMonths(this.state).map(this.getViewModel);var prevFirstVisibleMonthModels = this.getVisibleMonths(prevState).map(this.getViewModel);var currentMonth = visibleMonthsModels[0].month;var prevCurrentMonth = prevFirstVisibleMonthModels[0].month;if (currentMonth !== prevCurrentMonth) {this.handleMonthChange(visibleMonthsModels);}}};_proto.componentWillUnmount = function componentWillUnmount() {if (this.animation.inProgress()) {this.animation.cancel();}};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return _this2.renderMain();});};_proto.renderMonth = function renderMonth(_ref4) {var top = _ref4[0],month = _ref4[1];return /*#__PURE__*/_react.default.createElement(_Month.Month, { key: month.month + '-' + month.year, top: top, month: month, onMonthYearChange: this.handleMonthYearChange });};_proto.getDateInNativeFormat = function getDateInNativeFormat(date) {return new _InternalDate.InternalDate().parseValue(date).toNativeFormat();};_proto.getMonthPositions = function getMonthPositions(months, scrollPosition) {var positions = [scrollPosition - months[0].getHeight(this.theme)];for (var i = 1; i < months.length; i++) {var position = positions[i - 1] + months[i - 1].getHeight(this.theme);positions.push(position);}return positions;};_proto.getVisibleMonths = function getVisibleMonths(state) {var _this3 = this;var months = state.months,scrollPosition = state.scrollPosition;var positions = this.getMonthPositions(months, scrollPosition);return months.map(function (x, i) {return [positions[i], x];}).filter(function (_ref5) {var top = _ref5[0],month = _ref5[1];return CalendarUtils.isMonthVisible(top, month, _this3.theme);});};return Calendar;}(_react.default.Component), _Calendar.__KONTUR_REACT_UI__ = 'Calendar', _Calendar.displayName = 'Calendar', _Calendar.Day = _CalendarDay.CalendarDay, _Calendar.defaultProps = { minDate: _Calendar.formatDate(_constants.MIN_DATE, _constants.MIN_MONTH, _constants.MIN_YEAR), maxDate: _Calendar.formatDate(_constants.MAX_DATE, _constants.MAX_MONTH, _constants.MAX_YEAR), isHoliday: function isHoliday(_day, isWeekend) {return isWeekend;} }, _Calendar)) || _class;
|
|
526
|
+
};var _this$getProps = _this.getProps(),_minDate = _this$getProps.minDate,_maxDate = _this$getProps.maxDate,_value = _this$getProps.value;var minDateShape = _this.getDateInNativeFormat(_minDate);var maxDateShape = _this.getDateInNativeFormat(_maxDate);var _dateShape = _this.getDateInNativeFormat(_value);var today = CalendarUtils.getTodayDate();var initialDate = CalendarUtils.getInitialDate({ today: today, date: _dateShape, minDate: minDateShape, maxDate: maxDateShape });var initialMonth = _this.props.initialMonth ? CalendarUtils.getMonthInNativeFormat(_this.props.initialMonth) : initialDate.month;var initialYear = (_this$props$initialYe = _this.props.initialYear) != null ? _this$props$initialYe : initialDate.year;_this.state = { scrollPosition: 0, months: CalendarUtils.getMonths(initialMonth, initialYear), scrollDirection: 1, scrollTarget: 0 };return _this;}(0, _inheritsLoose2.default)(Calendar, _React$Component);Calendar.formatDate = function formatDate(date, month, year) {return new _InternalDate.InternalDate().setComponents({ date: date, month: month, year: year }).toString({ withPad: true });};var _proto = Calendar.prototype;_proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {var _this$props = this.props,value = _this$props.value,onMonthChange = _this$props.onMonthChange;if (value && !(0, _shallowequal.default)(value, prevProps.value)) {var date = new _InternalDate.InternalDate().parseValue(value).getComponentsLikeNumber();this.scrollToMonth(date.month, date.year);}if (onMonthChange) {var visibleMonthsModels = this.getVisibleMonths(this.state).map(this.getViewModel);var prevFirstVisibleMonthModels = this.getVisibleMonths(prevState).map(this.getViewModel);if (visibleMonthsModels.length > 0 && prevFirstVisibleMonthModels.length > 0) {var currentMonth = visibleMonthsModels[0].month;var prevCurrentMonth = prevFirstVisibleMonthModels[0].month;if (currentMonth !== prevCurrentMonth) {this.handleMonthChange(visibleMonthsModels);}}}};_proto.componentWillUnmount = function componentWillUnmount() {if (this.animation.inProgress()) {this.animation.cancel();}};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return _this2.renderMain();});};_proto.renderMonth = function renderMonth(_ref4) {var top = _ref4[0],month = _ref4[1];return /*#__PURE__*/_react.default.createElement(_Month.Month, { key: month.month + '-' + month.year, top: top, month: month, onMonthYearChange: this.handleMonthYearChange });};_proto.getDateInNativeFormat = function getDateInNativeFormat(date) {return new _InternalDate.InternalDate().parseValue(date).toNativeFormat();};_proto.getMonthPositions = function getMonthPositions(months, scrollPosition) {var positions = [scrollPosition - months[0].getHeight(this.theme)];for (var i = 1; i < months.length; i++) {var position = positions[i - 1] + months[i - 1].getHeight(this.theme);positions.push(position);}return positions;};_proto.getVisibleMonths = function getVisibleMonths(state) {var _this3 = this;var months = state.months,scrollPosition = state.scrollPosition;var positions = this.getMonthPositions(months, scrollPosition);return months.map(function (x, i) {return [positions[i], x];}).filter(function (_ref5) {var top = _ref5[0],month = _ref5[1];return CalendarUtils.isMonthVisible(top, month, _this3.theme);});};return Calendar;}(_react.default.Component), _Calendar.__KONTUR_REACT_UI__ = 'Calendar', _Calendar.displayName = 'Calendar', _Calendar.Day = _CalendarDay.CalendarDay, _Calendar.defaultProps = { minDate: _Calendar.formatDate(_constants.MIN_DATE, _constants.MIN_MONTH, _constants.MIN_YEAR), maxDate: _Calendar.formatDate(_constants.MAX_DATE, _constants.MAX_MONTH, _constants.MAX_YEAR), isHoliday: function isHoliday(_day, isWeekend) {return isWeekend;} }, _Calendar)) || _class;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_normalizeWheel2","_lodash","_shallowequal","_globalObject","_isInstanceOf","_InternalDate","_rootNode","_Emotion","_CommonWrapper","_constants","_ThemeContext","_animation","_client","_createPropsGetter","_InternalDateTransformer","_config","_MonthViewModel","CalendarScrollEvents","_interopRequireWildcard","_Month","_Calendar2","_CalendarDateShape","CalendarUtils","_CalendarContext","_CalendarDay","_class","_Calendar","CalendarDataTids","exports","root","month","dayCell","headerMonth","headerYear","Calendar","rootNode","_React$Component","props","_this$props$initialYe","_this","call","getProps","createPropsGetter","defaultProps","animation","touchStartY","scrollToMonth","_ref","_asyncToGenerator2","default","_regenerator","mark","_callee","year","monthNative","minDate","maxDate","minMonth","maxMonth","currentMonth","diffInMonths","maxMonthsToAdd","onEnd","isYearChanges","monthsToPrependCount","monthsToPrepend","monthsToAppendCount","monthsToAppend","wrap","_callee$","_context","prev","next","getMonthInNativeFormat","inProgress","finish","Promise","r","globalObject","setTimeout","getDateInNativeFormat","isGreater","create","getMonthInHumanFormat","abrupt","isLess","state","months","scrollTo","themeConfig","theme","MAX_MONTHS_TO_APPEND_ON_SCROLL","setState","getMonths","scrollPosition","Math","abs","min","Array","from","length","_","index","MonthViewModel","yearChanges","isFirstInYear","isLastInYear","concat","getMonthsHeight","targetPosition","getHeight","slice","stop","_x","_x2","apply","arguments","handleMonthChange","visibleMonths","changeInfo","onMonthChange","getViewModel","item","renderMain","monthsForRender","getVisibleMonths","wrapperStyle","height","WRAPPER_HEIGHT","context","value","isHoliday","renderDay","today","getTodayDate","onDateClick","handleDateClick","createElement","CommonWrapper","_extends2","rootNodeRef","setRootNode","ref","refRoot","className","cx","styles","style","wrapper","CalendarContext","Provider","map","renderMonth","separator","element","isMobile","addEventListener","handleTouchStart","throttledHandleTouchMove","handleWheel","passive","removeEventListener","dateShape","InternalDateTransformer","dateToHumanString","onValueChange","handleMonthYearChange","executeAnimations","pixelY","_ref2","calculateScrollPosition","scrollTarget","handleWheelEnd","animate","deltaY","applyDelta","emit","event","isInstanceOf","TouchEvent","clientY","targetTouches","handleTouchMove","changedTouches","throttle","WheelEvent","preventDefault","_normalizeWheel","normalizeWheel","wheelEndTimeout","clearTimeout","scrollToNearestWeek","_this$state","scrollDirection","thresholdHeight","MONTH_TITLE_OFFSET_HEIGHT","DAY_HEIGHT","amount","pos","scrollAmmount","scrollAmount","_ref3","_this$getProps","minDateShape","maxDateShape","initialDate","getInitialDate","date","initialMonth","initialYear","_inheritsLoose2","formatDate","InternalDate","setComponents","toString","withPad","_proto","prototype","componentDidUpdate","prevProps","prevState","_this$props","shallowEqual","parseValue","getComponentsLikeNumber","visibleMonthsModels","prevFirstVisibleMonthModels","prevCurrentMonth","componentWillUnmount","cancel","render","_this2","ThemeContext","Consumer","_ref4","top","Month","key","onMonthYearChange","toNativeFormat","getMonthPositions","positions","i","position","push","_this3","x","filter","_ref5","isMonthVisible","React","Component","__KONTUR_REACT_UI__","displayName","Day","CalendarDay","MIN_DATE","MIN_MONTH","MIN_YEAR","MAX_DATE","MAX_MONTH","MAX_YEAR","_day","isWeekend"],"sources":["Calendar.tsx"],"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 * @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 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 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, 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 const monthNative = CalendarUtils.getMonthInNativeFormat(month);\n\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, monthNative, year))) {\n const minMonth = CalendarUtils.getMonthInHumanFormat(minDate.month);\n this.scrollToMonth(minMonth, minDate.year);\n return;\n }\n\n if (maxDate && isLess(maxDate, create(0, monthNative, year))) {\n const maxMonth = CalendarUtils.getMonthInHumanFormat(maxDate.month);\n this.scrollToMonth(maxMonth, maxDate.year);\n return;\n }\n\n const currentMonth = this.state.months[1];\n const diffInMonths = currentMonth.month + currentMonth.year * 12 - monthNative - 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(monthNative, 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(monthNative + 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(monthNative + 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 = (monthNative: number, year: number) => {\n const month = CalendarUtils.getMonthInHumanFormat(monthNative);\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"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_normalizeWheel2","_lodash","_shallowequal","_globalObject","_isInstanceOf","_InternalDate","_rootNode","_Emotion","_CommonWrapper","_constants","_ThemeContext","_animation","_client","_createPropsGetter","_InternalDateTransformer","_config","_MonthViewModel","CalendarScrollEvents","_interopRequireWildcard","_Month","_Calendar2","_CalendarDateShape","CalendarUtils","_CalendarContext","_CalendarDay","_class","_Calendar","CalendarDataTids","exports","root","month","dayCell","headerMonth","headerYear","Calendar","rootNode","_React$Component","props","_this$props$initialYe","_this","call","getProps","createPropsGetter","defaultProps","animation","touchStartY","scrollToMonth","_ref","_asyncToGenerator2","default","_regenerator","mark","_callee","year","monthNative","minDate","maxDate","minMonth","maxMonth","currentMonth","diffInMonths","maxMonthsToAdd","onEnd","isYearChanges","monthsToPrependCount","monthsToPrepend","monthsToAppendCount","monthsToAppend","wrap","_callee$","_context","prev","next","getMonthInNativeFormat","inProgress","finish","Promise","r","globalObject","setTimeout","getDateInNativeFormat","isGreater","create","getMonthInHumanFormat","abrupt","isLess","state","months","scrollTo","themeConfig","theme","MAX_MONTHS_TO_APPEND_ON_SCROLL","setState","getMonths","scrollPosition","Math","abs","min","Array","from","length","_","index","MonthViewModel","yearChanges","isFirstInYear","isLastInYear","concat","getMonthsHeight","targetPosition","getHeight","slice","stop","_x","_x2","apply","arguments","handleMonthChange","visibleMonths","changeInfo","onMonthChange","getViewModel","item","renderMain","monthsForRender","getVisibleMonths","wrapperStyle","height","WRAPPER_HEIGHT","context","value","isHoliday","renderDay","today","getTodayDate","onDateClick","handleDateClick","createElement","CommonWrapper","_extends2","rootNodeRef","setRootNode","ref","refRoot","className","cx","styles","style","wrapper","CalendarContext","Provider","map","renderMonth","separator","element","isMobile","addEventListener","handleTouchStart","throttledHandleTouchMove","handleWheel","passive","removeEventListener","dateShape","InternalDateTransformer","dateToHumanString","onValueChange","handleMonthYearChange","executeAnimations","pixelY","_ref2","calculateScrollPosition","scrollTarget","handleWheelEnd","animate","deltaY","applyDelta","emit","event","isInstanceOf","TouchEvent","clientY","targetTouches","handleTouchMove","changedTouches","throttle","WheelEvent","preventDefault","_normalizeWheel","normalizeWheel","wheelEndTimeout","clearTimeout","scrollToNearestWeek","_this$state","scrollDirection","thresholdHeight","MONTH_TITLE_OFFSET_HEIGHT","DAY_HEIGHT","amount","pos","scrollAmmount","scrollAmount","_ref3","_this$getProps","minDateShape","maxDateShape","initialDate","getInitialDate","date","initialMonth","initialYear","_inheritsLoose2","formatDate","InternalDate","setComponents","toString","withPad","_proto","prototype","componentDidUpdate","prevProps","prevState","_this$props","shallowEqual","parseValue","getComponentsLikeNumber","visibleMonthsModels","prevFirstVisibleMonthModels","prevCurrentMonth","componentWillUnmount","cancel","render","_this2","ThemeContext","Consumer","_ref4","top","Month","key","onMonthYearChange","toNativeFormat","getMonthPositions","positions","i","position","push","_this3","x","filter","_ref5","isMonthVisible","React","Component","__KONTUR_REACT_UI__","displayName","Day","CalendarDay","MIN_DATE","MIN_MONTH","MIN_YEAR","MAX_DATE","MAX_MONTH","MAX_YEAR","_day","isWeekend"],"sources":["Calendar.tsx"],"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 * @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 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 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, 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\n if (visibleMonthsModels.length > 0 && prevFirstVisibleMonthModels.length > 0) {\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\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 const monthNative = CalendarUtils.getMonthInNativeFormat(month);\n\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, monthNative, year))) {\n const minMonth = CalendarUtils.getMonthInHumanFormat(minDate.month);\n this.scrollToMonth(minMonth, minDate.year);\n return;\n }\n\n if (maxDate && isLess(maxDate, create(0, monthNative, year))) {\n const maxMonth = CalendarUtils.getMonthInHumanFormat(maxDate.month);\n this.scrollToMonth(maxMonth, maxDate.year);\n return;\n }\n\n const currentMonth = this.state.months[1];\n const diffInMonths = currentMonth.month + currentMonth.year * 12 - monthNative - 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(monthNative, 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(monthNative + 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(monthNative + 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 = (monthNative: number, year: number) => {\n const month = CalendarUtils.getMonthInHumanFormat(monthNative);\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"],"mappings":"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","ignoreList":[]}
|
|
@@ -7,7 +7,6 @@ var _MobilePopup = require("../../internal/MobilePopup");
|
|
|
7
7
|
var _DateInput = require("../DateInput");
|
|
8
8
|
var _Button = require("../Button");
|
|
9
9
|
var _useLocaleForControl = require("../../lib/locale/useLocaleForControl");
|
|
10
|
-
var _useEffectWithoutInitCall = require("../../hooks/useEffectWithoutInitCall");
|
|
11
10
|
|
|
12
11
|
|
|
13
12
|
var _locale = require("./locale");
|
|
@@ -64,14 +63,6 @@ var MobilePicker = exports.MobilePicker = function MobilePicker(props) {
|
|
|
64
63
|
}
|
|
65
64
|
};
|
|
66
65
|
|
|
67
|
-
(0, _useEffectWithoutInitCall.useEffectWithoutInitCall)(function () {
|
|
68
|
-
if (props.value && calendarRef.current) {
|
|
69
|
-
var _month = (0, _CalendarUtils.getMonthInHumanFormat)(+props.value.substring(3, 5));
|
|
70
|
-
var _year = +props.value.substring(6);
|
|
71
|
-
calendarRef.current.scrollToMonth(_month, _year);
|
|
72
|
-
}
|
|
73
|
-
}, [props.value]);
|
|
74
|
-
|
|
75
66
|
return /*#__PURE__*/(
|
|
76
67
|
_react.default.createElement(_ThemeContext.ThemeContext.Provider, { value: theme }, /*#__PURE__*/
|
|
77
68
|
_react.default.createElement(_MobilePopup.MobilePopup, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_Calendar","_CalendarUtils","_ThemeContext","_MobilePopup","_DateInput","_Button","_useLocaleForControl","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_Calendar","_CalendarUtils","_ThemeContext","_MobilePopup","_DateInput","_Button","_useLocaleForControl","_locale","_MobilePicker","_getMobilePickerTheme","MobilePickerDataTids","exports","input","today","MobilePicker","props","locale","useLocaleForControl","DatePickerLocaleHelper","theme","getMobilePickerTheme","useContext","ThemeContext","calendarRef","useRef","inputRef","_useState","useState","getTodayDate","_useState$","monthNative","month","year","getMonthInHumanFormat","onValueChange","date","onCloseRequest","useLayoutEffect","setTimeout","_inputRef$current","current","focus","onTodayClick","scrollToMonth","default","createElement","Provider","value","MobilePopup","opened","headerChildComponent","DateInput","width","withIcon","ref","minDate","maxDate","size","warning","error","footerChildComponent","enableTodayLink","Button","onClick","Calendar","className","styles","calendarRoot","isHoliday","renderDay","onMonthChange"],"sources":["MobilePicker.tsx"],"sourcesContent":["import React, { useContext, useLayoutEffect, useRef, useState } from 'react';\n\nimport { Calendar } from '../Calendar';\nimport { getMonthInHumanFormat, getTodayDate } from '../Calendar/CalendarUtils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { MobilePopup } from '../../internal/MobilePopup';\nimport { DateInput } from '../DateInput';\nimport { Button } from '../Button';\nimport { useLocaleForControl } from '../../lib/locale/useLocaleForControl';\n\nimport { DatePickerProps } from './DatePicker';\nimport { DatePickerLocaleHelper } from './locale';\nimport { styles } from './MobilePicker.styles';\nimport { getMobilePickerTheme } from './getMobilePickerTheme';\n\nexport const MobilePickerDataTids = {\n input: 'MobilePicker__input',\n today: 'MobilePicker__today',\n} as const;\n\nexport interface MobilePickerProps\n extends Pick<\n DatePickerProps,\n | 'error'\n | 'warning'\n | 'value'\n | 'minDate'\n | 'maxDate'\n | 'onValueChange'\n | 'isHoliday'\n | 'enableTodayLink'\n | 'renderDay'\n | 'onMonthChange'\n > {\n onCloseRequest?: () => void;\n}\n\nexport const MobilePicker: React.FC<MobilePickerProps> = (props) => {\n const locale = useLocaleForControl('DatePicker', DatePickerLocaleHelper);\n const theme = getMobilePickerTheme(useContext(ThemeContext));\n\n const calendarRef = useRef<Calendar>(null);\n const inputRef = useRef<DateInput>(null);\n\n const [{ month: monthNative, year }] = useState(() => getTodayDate());\n const month = getMonthInHumanFormat(monthNative);\n\n const onValueChange = (date: string) => {\n props.onValueChange?.(date);\n props.onCloseRequest?.();\n };\n\n useLayoutEffect(() => {\n // fix DateInput flushSync warning in React 18\n setTimeout(() => {\n inputRef.current?.focus();\n });\n }, []);\n\n const onTodayClick = () => {\n if (calendarRef.current) {\n calendarRef.current.scrollToMonth(month, year);\n }\n };\n\n return (\n <ThemeContext.Provider value={theme}>\n <MobilePopup\n opened\n headerChildComponent={\n <DateInput\n value={props.value || ''}\n width=\"100%\"\n withIcon\n ref={inputRef}\n minDate={props.minDate}\n maxDate={props.maxDate}\n onValueChange={props.onValueChange}\n size=\"medium\"\n warning={props.warning}\n error={props.error}\n data-tid={MobilePickerDataTids.input}\n />\n }\n footerChildComponent={\n props.enableTodayLink && (\n <Button size=\"medium\" onClick={onTodayClick} data-tid={MobilePickerDataTids.today}>\n {locale.today}\n </Button>\n )\n }\n onCloseRequest={props.onCloseRequest}\n >\n <Calendar\n ref={calendarRef}\n value={props.value}\n className={styles.calendarRoot()}\n minDate={props.minDate}\n maxDate={props.maxDate}\n onValueChange={onValueChange}\n isHoliday={props.isHoliday}\n renderDay={props.renderDay}\n onMonthChange={props.onMonthChange}\n />\n </MobilePopup>\n </ThemeContext.Provider>\n );\n};\n"],"mappings":"mMAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;;AAEA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AACA,IAAAG,aAAA,GAAAH,OAAA;AACA,IAAAI,YAAA,GAAAJ,OAAA;AACA,IAAAK,UAAA,GAAAL,OAAA;AACA,IAAAM,OAAA,GAAAN,OAAA;AACA,IAAAO,oBAAA,GAAAP,OAAA;;;AAGA,IAAAQ,OAAA,GAAAR,OAAA;AACA,IAAAS,aAAA,GAAAT,OAAA;AACA,IAAAU,qBAAA,GAAAV,OAAA;;AAEO,IAAMW,oBAAoB,GAAAC,OAAA,CAAAD,oBAAA,GAAG;EAClCE,KAAK,EAAE,qBAAqB;EAC5BC,KAAK,EAAE;AACT,CAAU;;;;;;;;;;;;;;;;;;;AAmBH,IAAMC,YAAyC,GAAAH,OAAA,CAAAG,YAAA,GAAG,SAA5CA,YAAyCA,CAAIC,KAAK,EAAK;EAClE,IAAMC,MAAM,GAAG,IAAAC,wCAAmB,EAAC,YAAY,EAAEC,8BAAsB,CAAC;EACxE,IAAMC,KAAK,GAAG,IAAAC,0CAAoB,EAAC,IAAAC,iBAAU,EAACC,0BAAY,CAAC,CAAC;;EAE5D,IAAMC,WAAW,GAAG,IAAAC,aAAM,EAAW,IAAI,CAAC;EAC1C,IAAMC,QAAQ,GAAG,IAAAD,aAAM,EAAY,IAAI,CAAC;;EAExC,IAAAE,SAAA,GAAuC,IAAAC,eAAQ,EAAC,oBAAM,IAAAC,2BAAY,EAAC,CAAC,GAAC,CAAAC,UAAA,GAAAH,SAAA,IAArDI,WAAW,GAAAD,UAAA,CAAlBE,KAAK,CAAeC,IAAI,GAAAH,UAAA,CAAJG,IAAI;EACjC,IAAMD,KAAK,GAAG,IAAAE,oCAAqB,EAACH,WAAW,CAAC;;EAEhD,IAAMI,aAAa,GAAG,SAAhBA,aAAaA,CAAIC,IAAY,EAAK;IACtCpB,KAAK,CAACmB,aAAa,YAAnBnB,KAAK,CAACmB,aAAa,CAAGC,IAAI,CAAC;IAC3BpB,KAAK,CAACqB,cAAc,YAApBrB,KAAK,CAACqB,cAAc,CAAG,CAAC;EAC1B,CAAC;;EAED,IAAAC,sBAAe,EAAC,YAAM;IACpB;IACAC,UAAU,CAAC,YAAM,KAAAC,iBAAA;MACf,CAAAA,iBAAA,GAAAd,QAAQ,CAACe,OAAO,aAAhBD,iBAAA,CAAkBE,KAAK,CAAC,CAAC;IAC3B,CAAC,CAAC;EACJ,CAAC,EAAE,EAAE,CAAC;;EAEN,IAAMC,YAAY,GAAG,SAAfA,YAAYA,CAAA,EAAS;IACzB,IAAInB,WAAW,CAACiB,OAAO,EAAE;MACvBjB,WAAW,CAACiB,OAAO,CAACG,aAAa,CAACZ,KAAK,EAAEC,IAAI,CAAC;IAChD;EACF,CAAC;;EAED;IACEnC,MAAA,CAAA+C,OAAA,CAAAC,aAAA,CAAC3C,aAAA,CAAAoB,YAAY,CAACwB,QAAQ,IAACC,KAAK,EAAE5B,KAAM;IAClCtB,MAAA,CAAA+C,OAAA,CAAAC,aAAA,CAAC1C,YAAA,CAAA6C,WAAW;MACVC,MAAM;MACNC,oBAAoB;MAClBrD,MAAA,CAAA+C,OAAA,CAAAC,aAAA,CAACzC,UAAA,CAAA+C,SAAS;QACRJ,KAAK,EAAEhC,KAAK,CAACgC,KAAK,IAAI,EAAG;QACzBK,KAAK,EAAC,MAAM;QACZC,QAAQ;QACRC,GAAG,EAAE7B,QAAS;QACd8B,OAAO,EAAExC,KAAK,CAACwC,OAAQ;QACvBC,OAAO,EAAEzC,KAAK,CAACyC,OAAQ;QACvBtB,aAAa,EAAEnB,KAAK,CAACmB,aAAc;QACnCuB,IAAI,EAAC,QAAQ;QACbC,OAAO,EAAE3C,KAAK,CAAC2C,OAAQ;QACvBC,KAAK,EAAE5C,KAAK,CAAC4C,KAAM;QACnB,YAAUjD,oBAAoB,CAACE,KAAM;MACtC,CACF;;MACDgD,oBAAoB;MAClB7C,KAAK,CAAC8C,eAAe;MACnBhE,MAAA,CAAA+C,OAAA,CAAAC,aAAA,CAACxC,OAAA,CAAAyD,MAAM,IAACL,IAAI,EAAC,QAAQ,EAACM,OAAO,EAAErB,YAAa,EAAC,YAAUhC,oBAAoB,CAACG,KAAM;MAC/EG,MAAM,CAACH;MACF,CAEX;;;MACDuB,cAAc,EAAErB,KAAK,CAACqB,cAAe;;IAErCvC,MAAA,CAAA+C,OAAA,CAAAC,aAAA,CAAC7C,SAAA,CAAAgE,QAAQ;MACPV,GAAG,EAAE/B,WAAY;MACjBwB,KAAK,EAAEhC,KAAK,CAACgC,KAAM;MACnBkB,SAAS,EAAEC,oBAAM,CAACC,YAAY,CAAC,CAAE;MACjCZ,OAAO,EAAExC,KAAK,CAACwC,OAAQ;MACvBC,OAAO,EAAEzC,KAAK,CAACyC,OAAQ;MACvBtB,aAAa,EAAEA,aAAc;MAC7BkC,SAAS,EAAErD,KAAK,CAACqD,SAAU;MAC3BC,SAAS,EAAEtD,KAAK,CAACsD,SAAU;MAC3BC,aAAa,EAAEvD,KAAK,CAACuD,aAAc;IACpC;IACU;IACQ,CAAC;;AAE5B,CAAC","ignoreList":[]}
|
|
@@ -383,10 +383,12 @@ export var Calendar = rootNode(_class = (_Calendar = /*#__PURE__*/function (_Rea
|
|
|
383
383
|
if (onMonthChange) {
|
|
384
384
|
var visibleMonthsModels = this.getVisibleMonths(this.state).map(this.getViewModel);
|
|
385
385
|
var prevFirstVisibleMonthModels = this.getVisibleMonths(prevState).map(this.getViewModel);
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
386
|
+
if (visibleMonthsModels.length > 0 && prevFirstVisibleMonthModels.length > 0) {
|
|
387
|
+
var currentMonth = visibleMonthsModels[0].month;
|
|
388
|
+
var prevCurrentMonth = prevFirstVisibleMonthModels[0].month;
|
|
389
|
+
if (currentMonth !== prevCurrentMonth) {
|
|
390
|
+
this.handleMonthChange(visibleMonthsModels);
|
|
391
|
+
}
|
|
390
392
|
}
|
|
391
393
|
}
|
|
392
394
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"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","headerYear","Calendar","_class","_Calendar","_React$Component","props","_this$props$initialYe","_this","call","getProps","defaultProps","touchStartY","scrollToMonth","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","year","monthNative","minDate","maxDate","minMonth","maxMonth","currentMonth","diffInMonths","maxMonthsToAdd","onEnd","isYearChanges","monthsToPrependCount","monthsToPrepend","monthsToAppendCount","monthsToAppend","wrap","_callee$","_context","prev","next","getMonthInNativeFormat","inProgress","finish","Promise","r","setTimeout","getDateInNativeFormat","getMonthInHumanFormat","abrupt","state","months","scrollTo","theme","MAX_MONTHS_TO_APPEND_ON_SCROLL","setState","getMonths","scrollPosition","Math","abs","min","Array","from","length","_","index","yearChanges","isFirstInYear","isLastInYear","concat","getMonthsHeight","targetPosition","getHeight","slice","stop","_x","_x2","apply","arguments","handleMonthChange","visibleMonths","changeInfo","onMonthChange","getViewModel","item","renderMain","monthsForRender","getVisibleMonths","wrapperStyle","height","WRAPPER_HEIGHT","context","value","isHoliday","renderDay","today","getTodayDate","onDateClick","handleDateClick","createElement","_extends","rootNodeRef","setRootNode","ref","refRoot","className","style","wrapper","Provider","map","renderMonth","separator","element","addEventListener","handleTouchStart","throttledHandleTouchMove","handleWheel","passive","removeEventListener","dateShape","dateToHumanString","onValueChange","handleMonthYearChange","executeAnimations","pixelY","_ref2","calculateScrollPosition","scrollTarget","handleWheelEnd","animate","deltaY","applyDelta","emit","event","TouchEvent","clientY","targetTouches","handleTouchMove","changedTouches","WheelEvent","preventDefault","_normalizeWheel","wheelEndTimeout","clearTimeout","scrollToNearestWeek","_this$state","scrollDirection","thresholdHeight","MONTH_TITLE_OFFSET_HEIGHT","DAY_HEIGHT","amount","pos","scrollAmmount","scrollAmount","_ref3","_this$getProps","minDateShape","maxDateShape","initialDate","getInitialDate","date","initialMonth","initialYear","_inheritsLoose","formatDate","setComponents","toString","withPad","_proto","prototype","componentDidUpdate","prevProps","prevState","_this$props","parseValue","getComponentsLikeNumber","visibleMonthsModels","prevFirstVisibleMonthModels","prevCurrentMonth","componentWillUnmount","cancel","render","_this2","Consumer","_ref4","top","key","onMonthYearChange","toNativeFormat","getMonthPositions","positions","i","position","push","_this3","x","filter","_ref5","isMonthVisible","Component","__KONTUR_REACT_UI__","displayName","Day","_day","isWeekend"],"sources":["Calendar.tsx"],"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 * @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 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 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, 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 const monthNative = CalendarUtils.getMonthInNativeFormat(month);\n\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, monthNative, year))) {\n const minMonth = CalendarUtils.getMonthInHumanFormat(minDate.month);\n this.scrollToMonth(minMonth, minDate.year);\n return;\n }\n\n if (maxDate && isLess(maxDate, create(0, monthNative, year))) {\n const maxMonth = CalendarUtils.getMonthInHumanFormat(maxDate.month);\n this.scrollToMonth(maxMonth, maxDate.year);\n return;\n }\n\n const currentMonth = this.state.months[1];\n const diffInMonths = currentMonth.month + currentMonth.year * 12 - monthNative - 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(monthNative, 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(monthNative + 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(monthNative + 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 = (monthNative: number, year: number) => {\n const month = CalendarUtils.getMonthInHumanFormat(monthNative);\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"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"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","headerYear","Calendar","_class","_Calendar","_React$Component","props","_this$props$initialYe","_this","call","getProps","defaultProps","touchStartY","scrollToMonth","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","year","monthNative","minDate","maxDate","minMonth","maxMonth","currentMonth","diffInMonths","maxMonthsToAdd","onEnd","isYearChanges","monthsToPrependCount","monthsToPrepend","monthsToAppendCount","monthsToAppend","wrap","_callee$","_context","prev","next","getMonthInNativeFormat","inProgress","finish","Promise","r","setTimeout","getDateInNativeFormat","getMonthInHumanFormat","abrupt","state","months","scrollTo","theme","MAX_MONTHS_TO_APPEND_ON_SCROLL","setState","getMonths","scrollPosition","Math","abs","min","Array","from","length","_","index","yearChanges","isFirstInYear","isLastInYear","concat","getMonthsHeight","targetPosition","getHeight","slice","stop","_x","_x2","apply","arguments","handleMonthChange","visibleMonths","changeInfo","onMonthChange","getViewModel","item","renderMain","monthsForRender","getVisibleMonths","wrapperStyle","height","WRAPPER_HEIGHT","context","value","isHoliday","renderDay","today","getTodayDate","onDateClick","handleDateClick","createElement","_extends","rootNodeRef","setRootNode","ref","refRoot","className","style","wrapper","Provider","map","renderMonth","separator","element","addEventListener","handleTouchStart","throttledHandleTouchMove","handleWheel","passive","removeEventListener","dateShape","dateToHumanString","onValueChange","handleMonthYearChange","executeAnimations","pixelY","_ref2","calculateScrollPosition","scrollTarget","handleWheelEnd","animate","deltaY","applyDelta","emit","event","TouchEvent","clientY","targetTouches","handleTouchMove","changedTouches","WheelEvent","preventDefault","_normalizeWheel","wheelEndTimeout","clearTimeout","scrollToNearestWeek","_this$state","scrollDirection","thresholdHeight","MONTH_TITLE_OFFSET_HEIGHT","DAY_HEIGHT","amount","pos","scrollAmmount","scrollAmount","_ref3","_this$getProps","minDateShape","maxDateShape","initialDate","getInitialDate","date","initialMonth","initialYear","_inheritsLoose","formatDate","setComponents","toString","withPad","_proto","prototype","componentDidUpdate","prevProps","prevState","_this$props","parseValue","getComponentsLikeNumber","visibleMonthsModels","prevFirstVisibleMonthModels","prevCurrentMonth","componentWillUnmount","cancel","render","_this2","Consumer","_ref4","top","key","onMonthYearChange","toNativeFormat","getMonthPositions","positions","i","position","push","_this3","x","filter","_ref5","isMonthVisible","Component","__KONTUR_REACT_UI__","displayName","Day","_day","isWeekend"],"sources":["Calendar.tsx"],"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 * @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 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 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, 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\n if (visibleMonthsModels.length > 0 && prevFirstVisibleMonthModels.length > 0) {\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\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 const monthNative = CalendarUtils.getMonthInNativeFormat(month);\n\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, monthNative, year))) {\n const minMonth = CalendarUtils.getMonthInHumanFormat(minDate.month);\n this.scrollToMonth(minMonth, minDate.year);\n return;\n }\n\n if (maxDate && isLess(maxDate, create(0, monthNative, year))) {\n const maxMonth = CalendarUtils.getMonthInHumanFormat(maxDate.month);\n this.scrollToMonth(maxMonth, maxDate.year);\n return;\n }\n\n const currentMonth = this.state.months[1];\n const diffInMonths = currentMonth.month + currentMonth.year * 12 - monthNative - 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(monthNative, 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(monthNative + 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(monthNative + 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 = (monthNative: number, year: number) => {\n const month = CalendarUtils.getMonthInHumanFormat(monthNative);\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"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,7 +6,6 @@ import { MobilePopup } from "../../../internal/MobilePopup";
|
|
|
6
6
|
import { DateInput } from "../../DateInput";
|
|
7
7
|
import { Button } from "../../Button";
|
|
8
8
|
import { useLocaleForControl } from "../../../lib/locale/useLocaleForControl";
|
|
9
|
-
import { useEffectWithoutInitCall } from "../../../hooks/useEffectWithoutInitCall";
|
|
10
9
|
import { DatePickerLocaleHelper } from "../locale";
|
|
11
10
|
import { styles } from "../MobilePicker.styles";
|
|
12
11
|
import { getMobilePickerTheme } from "../getMobilePickerTheme";
|
|
@@ -42,13 +41,6 @@ export var MobilePicker = function MobilePicker(props) {
|
|
|
42
41
|
calendarRef.current.scrollToMonth(month, year);
|
|
43
42
|
}
|
|
44
43
|
};
|
|
45
|
-
useEffectWithoutInitCall(function () {
|
|
46
|
-
if (props.value && calendarRef.current) {
|
|
47
|
-
var _month = getMonthInHumanFormat(+props.value.substring(3, 5));
|
|
48
|
-
var _year = +props.value.substring(6);
|
|
49
|
-
calendarRef.current.scrollToMonth(_month, _year);
|
|
50
|
-
}
|
|
51
|
-
}, [props.value]);
|
|
52
44
|
return /*#__PURE__*/(
|
|
53
45
|
React.createElement(ThemeContext.Provider, {
|
|
54
46
|
value: theme
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useContext","useLayoutEffect","useRef","useState","Calendar","getMonthInHumanFormat","getTodayDate","ThemeContext","MobilePopup","DateInput","Button","useLocaleForControl","
|
|
1
|
+
{"version":3,"names":["React","useContext","useLayoutEffect","useRef","useState","Calendar","getMonthInHumanFormat","getTodayDate","ThemeContext","MobilePopup","DateInput","Button","useLocaleForControl","DatePickerLocaleHelper","styles","getMobilePickerTheme","MobilePickerDataTids","input","today","MobilePicker","props","locale","theme","calendarRef","inputRef","_useState","_useState$","monthNative","month","year","onValueChange","date","onCloseRequest","setTimeout","_inputRef$current","current","focus","onTodayClick","scrollToMonth","createElement","Provider","value","opened","headerChildComponent","width","withIcon","ref","minDate","maxDate","size","warning","error","footerChildComponent","enableTodayLink","onClick","className","calendarRoot","isHoliday","renderDay","onMonthChange"],"sources":["MobilePicker.tsx"],"sourcesContent":["import React, { useContext, useLayoutEffect, useRef, useState } from 'react';\n\nimport { Calendar } from '../Calendar';\nimport { getMonthInHumanFormat, getTodayDate } from '../Calendar/CalendarUtils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { MobilePopup } from '../../internal/MobilePopup';\nimport { DateInput } from '../DateInput';\nimport { Button } from '../Button';\nimport { useLocaleForControl } from '../../lib/locale/useLocaleForControl';\n\nimport { DatePickerProps } from './DatePicker';\nimport { DatePickerLocaleHelper } from './locale';\nimport { styles } from './MobilePicker.styles';\nimport { getMobilePickerTheme } from './getMobilePickerTheme';\n\nexport const MobilePickerDataTids = {\n input: 'MobilePicker__input',\n today: 'MobilePicker__today',\n} as const;\n\nexport interface MobilePickerProps\n extends Pick<\n DatePickerProps,\n | 'error'\n | 'warning'\n | 'value'\n | 'minDate'\n | 'maxDate'\n | 'onValueChange'\n | 'isHoliday'\n | 'enableTodayLink'\n | 'renderDay'\n | 'onMonthChange'\n > {\n onCloseRequest?: () => void;\n}\n\nexport const MobilePicker: React.FC<MobilePickerProps> = (props) => {\n const locale = useLocaleForControl('DatePicker', DatePickerLocaleHelper);\n const theme = getMobilePickerTheme(useContext(ThemeContext));\n\n const calendarRef = useRef<Calendar>(null);\n const inputRef = useRef<DateInput>(null);\n\n const [{ month: monthNative, year }] = useState(() => getTodayDate());\n const month = getMonthInHumanFormat(monthNative);\n\n const onValueChange = (date: string) => {\n props.onValueChange?.(date);\n props.onCloseRequest?.();\n };\n\n useLayoutEffect(() => {\n // fix DateInput flushSync warning in React 18\n setTimeout(() => {\n inputRef.current?.focus();\n });\n }, []);\n\n const onTodayClick = () => {\n if (calendarRef.current) {\n calendarRef.current.scrollToMonth(month, year);\n }\n };\n\n return (\n <ThemeContext.Provider value={theme}>\n <MobilePopup\n opened\n headerChildComponent={\n <DateInput\n value={props.value || ''}\n width=\"100%\"\n withIcon\n ref={inputRef}\n minDate={props.minDate}\n maxDate={props.maxDate}\n onValueChange={props.onValueChange}\n size=\"medium\"\n warning={props.warning}\n error={props.error}\n data-tid={MobilePickerDataTids.input}\n />\n }\n footerChildComponent={\n props.enableTodayLink && (\n <Button size=\"medium\" onClick={onTodayClick} data-tid={MobilePickerDataTids.today}>\n {locale.today}\n </Button>\n )\n }\n onCloseRequest={props.onCloseRequest}\n >\n <Calendar\n ref={calendarRef}\n value={props.value}\n className={styles.calendarRoot()}\n minDate={props.minDate}\n maxDate={props.maxDate}\n onValueChange={onValueChange}\n isHoliday={props.isHoliday}\n renderDay={props.renderDay}\n onMonthChange={props.onMonthChange}\n />\n </MobilePopup>\n </ThemeContext.Provider>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@skbkontur/react-ui",
|
|
3
|
-
"version": "5.0.
|
|
3
|
+
"version": "5.0.13",
|
|
4
4
|
"description": "UI Components",
|
|
5
5
|
"main": "cjs/index.js",
|
|
6
6
|
"module": "index.js",
|
|
7
7
|
"sideEffects": false,
|
|
8
|
-
"homepage": "https://tech.skbkontur.ru/react-ui/5.0.
|
|
8
|
+
"homepage": "https://tech.skbkontur.ru/react-ui/5.0.13/",
|
|
9
9
|
"repository": {
|
|
10
10
|
"type": "git",
|
|
11
11
|
"url": "git@github.com:skbkontur/retail-ui.git"
|