@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 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","_useEffectWithoutInitCall","_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","useEffectWithoutInitCall","value","substring","default","createElement","Provider","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';\nimport { useEffectWithoutInitCall } from '../../hooks/useEffectWithoutInitCall';\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 useEffectWithoutInitCall(() => {\n if (props.value && calendarRef.current) {\n const month = getMonthInHumanFormat(+props.value.substring(3, 5));\n const year = +props.value.substring(6);\n calendarRef.current.scrollToMonth(month, year);\n }\n }, [props.value]);\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":[]}
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":"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","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
- var currentMonth = visibleMonthsModels[0].month;
387
- var prevCurrentMonth = prevFirstVisibleMonthModels[0].month;
388
- if (currentMonth !== prevCurrentMonth) {
389
- this.handleMonthChange(visibleMonthsModels);
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","useEffectWithoutInitCall","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","value","substring","createElement","Provider","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';\nimport { useEffectWithoutInitCall } from '../../hooks/useEffectWithoutInitCall';\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 useEffectWithoutInitCall(() => {\n if (props.value && calendarRef.current) {\n const month = getMonthInHumanFormat(+props.value.substring(3, 5));\n const year = +props.value.substring(6);\n calendarRef.current.scrollToMonth(month, year);\n }\n }, [props.value]);\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":[]}
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.12",
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.12/",
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"