@skbkontur/react-ui 5.6.7 → 5.6.8

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,18 @@
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.6.8](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.6.7...@skbkontur/react-ui@5.6.8) (2026-03-12)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **Calendar:** show year label only for first month ([0513727](https://github.com/skbkontur/retail-ui/commit/05137279c82a4a77bc4d875e708890117659aac1))
12
+ * **Textarea:** remove min-width ([8941d1b](https://github.com/skbkontur/retail-ui/commit/8941d1ba9f3aa88e53cd9d6fdc2b3bd99606a674))
13
+
14
+
15
+
16
+
17
+
6
18
  ## [5.6.7](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.6.6...@skbkontur/react-ui@5.6.7) (2026-03-12)
7
19
 
8
20
 
@@ -205,7 +205,7 @@ Calendar = exports.Calendar = (0, _rootNode.rootNode)(_class = (_Calendar = /*#_
205
205
  * Прокручивает календарь до переданной даты
206
206
  * @public
207
207
  */_this.
208
- scrollToMonth = /*#__PURE__*/function () {var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(month, year) {var monthNative, minDate, maxDate, minMonth, maxMonth, currentMonth, diffInMonths, maxMonthsToAdd, onEnd, isYearChanges, monthsToPrependCount, monthsToPrepend, monthsToAppendCount, monthsToAppend;return _regenerator.default.wrap(function _callee$(_context) {while (1) switch (_context.prev = _context.next) {case 0:
208
+ scrollToMonth = /*#__PURE__*/function () {var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(month, year) {var monthNative, minDate, maxDate, minMonth, maxMonth, currentMonth, diffInMonths, maxMonthsToAdd, onEnd, monthsToPrependCount, monthsToPrepend, monthsToAppendCount, monthsToAppend;return _regenerator.default.wrap(function _callee$(_context) {while (1) switch (_context.prev = _context.next) {case 0:
209
209
  monthNative = CalendarUtils.getMonthInNativeFormat(month);if (!
210
210
 
211
211
  _this.animation.inProgress()) {_context.next = 5;break;}
@@ -246,16 +246,6 @@ Calendar = exports.Calendar = (0, _rootNode.rootNode)(_class = (_Calendar = /*#_
246
246
  });
247
247
  };
248
248
 
249
- isYearChanges = function isYearChanges(state) {
250
- return (
251
- state.months[1].year !== year &&
252
- // if diff in months is 2 or less,
253
- // either year is not changing either months already
254
- // have right isFirstInYear/isLastInYear flags
255
- Math.abs(diffInMonths) > 2);
256
-
257
- };
258
-
259
249
  // If scrolling upwards, prepend maximum maxMonthsToAdd months
260
250
  // and scroll to the first month
261
251
  if (diffInMonths > 0) {
@@ -265,16 +255,6 @@ Calendar = exports.Calendar = (0, _rootNode.rootNode)(_class = (_Calendar = /*#_
265
255
  });
266
256
  _this.setState(
267
257
  function (state) {
268
- var yearChanges = isYearChanges(state);
269
- if (yearChanges) {
270
- // Mutating here can lead to some unexpected bugs
271
- // but we couldn't find any yet
272
- state.months[0].isFirstInYear = true;
273
- if (monthsToPrepend.length) {
274
- // Mutating item here is safe as it was just created
275
- monthsToPrepend[monthsToPrepend.length - 1].isLastInYear = true;
276
- }
277
- }
278
258
  return {
279
259
  months: monthsToPrepend.concat(state.months),
280
260
  scrollPosition: -CalendarUtils.getMonthsHeight(monthsToPrepend, _this.theme)
@@ -296,15 +276,6 @@ Calendar = exports.Calendar = (0, _rootNode.rootNode)(_class = (_Calendar = /*#_
296
276
  });
297
277
  _this.setState(
298
278
  function (state) {
299
- if (isYearChanges(state)) {
300
- // Mutating here can lead to some unexpected bugs
301
- // but we couldn't find any yet
302
- state.months[state.months.length - 1].isLastInYear = true;
303
- // Mutating item here is safe as it was just created
304
- if (monthsToAppend[0]) {
305
- monthsToAppend[0].isFirstInYear = true;
306
- }
307
- }
308
279
  return { months: state.months.concat(monthsToAppend) };
309
280
  },
310
281
  function () {
@@ -312,7 +283,7 @@ Calendar = exports.Calendar = (0, _rootNode.rootNode)(_class = (_Calendar = /*#_
312
283
  _this.scrollTo(targetPosition, onEnd);
313
284
  }
314
285
  );
315
- }case 25:case "end":return _context.stop();}}, _callee);}));return function (_x, _x2) {return _ref.apply(this, arguments);};}();_this.
286
+ }case 24:case "end":return _context.stop();}}, _callee);}));return function (_x, _x2) {return _ref.apply(this, arguments);};}();_this.
316
287
 
317
288
 
318
289
  handleMonthChange = function (visibleMonths) {
@@ -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 type { SafeTimer } from '@skbkontur/global-object';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport { InternalDate } from '../../lib/date/InternalDate';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { MAX_DATE, MAX_MONTH, MAX_YEAR, MIN_DATE, MIN_MONTH, MIN_YEAR } from '../../lib/date/constants';\nimport type { Nullable, Range } from '../../typings/utility-types';\nimport type { 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 type { CalendarDateShape } from './CalendarDateShape';\nimport { create, isGreater, isLess } from './CalendarDateShape';\nimport * as CalendarUtils from './CalendarUtils';\nimport type { CalendarContextProps } from './CalendarContext';\nimport { CalendarContext } from './CalendarContext';\nimport type { CalendarDayProps } from './CalendarDay';\nimport { CalendarDay } from './CalendarDay';\n\nexport interface CalendarProps extends CommonProps {\n /** Задает функцию, которая вызывается при изменении value.\n * @param {string} date - строка в формате `dd.mm.yyyy`. */\n onValueChange?: (date: string) => void;\n\n /** Задает текущую дату в формате `dd.mm.yyyy`. */\n value: Nullable<string>;\n\n /** Задает максимальную возможную дату в формате `dd.mm.yyyy`. */\n maxDate?: string;\n\n /** Задает минимальную возможную дату в формате `dd.mm.yyyy`. */\n minDate?: string;\n\n /** Задает начальную дату периода в формате `dd.mm.yyyy`. */\n periodStartDate?: string;\n\n /** Задает конечную дату периода в формате `dd.mm.yyyy`. */\n periodEndDate?: string;\n\n /** Задает функцию для определения праздничных дней.\n * @default (_day, isWeekend) => isWeekend.\n * @param {string} day - строка в формате `dd.mm.yyyy`.\n * @param {boolean} isWeekend - флаг выходного (суббота или воскресенье).\n * @returns {boolean} `true` для выходного или `false` для рабочего дня. */\n isHoliday?: (day: string, isWeekend: boolean) => boolean;\n\n /** Задает начальный месяц. */\n initialMonth?: Range<1, 13>;\n\n /** Задает начальный год. */\n initialYear?: number;\n\n /** Задает метод отрисовки дат в календаре.\n * @default (props: CalendarDayProps) => <CalendarDay {...props} />\n * @param {CalendarDayProps} props - параметры дня.\n * @returns {ReactElement} элемент, который отрисовывает контент числа месяца. */\n renderDay?: (props: CalendarDayProps) => React.ReactElement;\n\n /** Задает функцию, которая вызывается при каждом изменении месяца.\n * @param {CalendarMonthChangeInfo} changeInfo - информация о изменении отображаемого месяца, где\n * `month: number` - номер текущего отображаемого месяца от 1 до 12,\n * `year: number` - отображаемый год. */\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 * Компонент календаря `Calendar` из 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 public getRootNode!: TGetRootNode;\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":[]}
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","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","min","abs","Array","from","length","_","index","MonthViewModel","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 type { SafeTimer } from '@skbkontur/global-object';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport { InternalDate } from '../../lib/date/InternalDate';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { MAX_DATE, MAX_MONTH, MAX_YEAR, MIN_DATE, MIN_MONTH, MIN_YEAR } from '../../lib/date/constants';\nimport type { Nullable, Range } from '../../typings/utility-types';\nimport type { 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 type { CalendarDateShape } from './CalendarDateShape';\nimport { create, isGreater, isLess } from './CalendarDateShape';\nimport * as CalendarUtils from './CalendarUtils';\nimport type { CalendarContextProps } from './CalendarContext';\nimport { CalendarContext } from './CalendarContext';\nimport type { CalendarDayProps } from './CalendarDay';\nimport { CalendarDay } from './CalendarDay';\n\nexport interface CalendarProps extends CommonProps {\n /** Задает функцию, которая вызывается при изменении value.\n * @param {string} date - строка в формате `dd.mm.yyyy`. */\n onValueChange?: (date: string) => void;\n\n /** Задает текущую дату в формате `dd.mm.yyyy`. */\n value: Nullable<string>;\n\n /** Задает максимальную возможную дату в формате `dd.mm.yyyy`. */\n maxDate?: string;\n\n /** Задает минимальную возможную дату в формате `dd.mm.yyyy`. */\n minDate?: string;\n\n /** Задает начальную дату периода в формате `dd.mm.yyyy`. */\n periodStartDate?: string;\n\n /** Задает конечную дату периода в формате `dd.mm.yyyy`. */\n periodEndDate?: string;\n\n /** Задает функцию для определения праздничных дней.\n * @default (_day, isWeekend) => isWeekend.\n * @param {string} day - строка в формате `dd.mm.yyyy`.\n * @param {boolean} isWeekend - флаг выходного (суббота или воскресенье).\n * @returns {boolean} `true` для выходного или `false` для рабочего дня. */\n isHoliday?: (day: string, isWeekend: boolean) => boolean;\n\n /** Задает начальный месяц. */\n initialMonth?: Range<1, 13>;\n\n /** Задает начальный год. */\n initialYear?: number;\n\n /** Задает метод отрисовки дат в календаре.\n * @default (props: CalendarDayProps) => <CalendarDay {...props} />\n * @param {CalendarDayProps} props - параметры дня.\n * @returns {ReactElement} элемент, который отрисовывает контент числа месяца. */\n renderDay?: (props: CalendarDayProps) => React.ReactElement;\n\n /** Задает функцию, которая вызывается при каждом изменении месяца.\n * @param {CalendarMonthChangeInfo} changeInfo - информация о изменении отображаемого месяца, где\n * `month: number` - номер текущего отображаемого месяца от 1 до 12,\n * `year: number` - отображаемый год. */\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 * Компонент календаря `Calendar` из 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 public getRootNode!: TGetRootNode;\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 // 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 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 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":[]}
@@ -4,41 +4,42 @@ import type { CommonProps } from '../../internal/CommonWrapper';
4
4
  import type { TGetRootNode } from '../../lib/rootNode';
5
5
  import type { SizeProp } from '../../lib/types/props';
6
6
  export interface ItemComponentProps {
7
- /** Определяет, является ли страница текущей. */
8
- active: boolean;
9
7
  /** @ignore */
10
8
  children?: React.ReactNode;
11
- /** Задает HTML-атрибут class. */
12
- className: string;
13
- /** Задает функцию, которая вызывается при клике на элемент. */
14
- onClick: () => void;
15
- /** Задает номер текущей страницы. */
9
+ /** Определяет, является ли страница текущей. */
10
+ active: boolean;
11
+ /** Номер страницы. */
16
12
  pageNumber: number | 'forward';
17
- /** Задает HTML-атрибут `tabindex`. */
13
+ /** Вызывается при клике на элемент. */
14
+ onClick: () => void;
15
+ /** HTML-атрибут `class`. */
16
+ className: string;
17
+ /** HTML-атрибут `tabindex`. */
18
18
  tabIndex: number;
19
19
  }
20
20
  export interface PagingProps extends CommonProps {
21
+ /** Количество страниц. */
22
+ pagesCount: number;
23
+ /** Номер текущей страницы. */
21
24
  activePage: number;
22
- /** Компонент обертки по умолчанию.
23
- * @default <span/> */
24
- component?: React.ComponentType<ItemComponentProps>;
25
- /** Задает функцию, которая вызывается при переключении страницы. */
25
+ /** Вызывается при переключении страницы. */
26
26
  onPageChange: (pageNumber: number) => void;
27
- /** Задает общее количество страниц. */
28
- pagesCount: number;
29
- /** Задает размер контрола.
30
- * @default 'small'. Проп поддерживается начиная с версии темы 5.3. */
27
+ /** Размер пейджинга.
28
+ *
29
+ * *Проп поддерживается начиная с версии 5.3.*
30
+ * @default 'small' */
31
31
  size?: SizeProp;
32
32
  /** Делает компонент недоступным. */
33
33
  disabled?: boolean;
34
+ /** Подпись у кнопки перехода на следующую страницу. */
35
+ caption?: string;
36
+ /** Компонент обёртки страниц.
37
+ * @default <span/> */
38
+ component?: React.ComponentType<ItemComponentProps>;
34
39
  /** Отключает навигационные подсказки.
35
- * По умолчанию подсказки появляются, когда доступно управление с клавиатуры (либо элемент в фокусе, либо globalListeners === true). */
40
+ * По умолчанию подсказки появляются, когда доступно управление с клавиатуры (либо контрол в фокусе, либо globalListeners === true). */
36
41
  withoutNavigationHint?: boolean;
37
- /** Подпись у пейджинга. */
38
- caption?: string;
39
- /** Глобальный слушатель **keyDown**, для навигации клавишами без фокуса на компоненте.
40
- * Если на странице используется несколько элементов **Paging** с useGlobalListener === true,
41
- * то обработчик keyDown будет вызываться на каждом из них. Такие случаи лучше обрабатывать отдельно. */
42
+ /** Включает глобальный слушатель `keyDown`, для навигации клавишами без фокуса на контроле. */
42
43
  useGlobalListener?: boolean;
43
44
  }
44
45
  export interface PagingState {
@@ -91,6 +91,7 @@ var IGNORE_EVENT_TAGS = ['input', 'textarea'];
91
91
 
92
92
 
93
93
 
94
+
94
95
 
95
96
 
96
97
  var PagingDataTids = exports.PagingDataTids = {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_globalObject","_isInstanceOf","_identifiers","_decorators","_keyListener","_utils","_client","_ThemeContext","_ThemeHelpers","_CommonWrapper","_Emotion","_rootNode","_createPropsGetter","_getVisualStateDataAttributes","_ResponsiveLayout","_Paging2","NavigationHelper","_interopRequireWildcard","_PagingHelper","_locale","_PagingDefaultComponent","_ForwardIcon","_DotsIcon","_dec","_class","_Paging","IGNORE_EVENT_TAGS","PagingDataTids","exports","root","dots","forwardLink","pageLinkWrapper","pageLink","Paging","locale","PagingLocaleHelper","rootNode","_React$PureComponent","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","focusedByTab","focusedItem","keyboardControl","useGlobalListener","addedGlobalListener","container","renderItem","item","index","focused","getFocusedItem","key","renderDots","disabled","isItemDisabled","renderForwardLink","active","props","activePage","renderPageLink","_cx","default","createElement","className","cx","styles","theme","sizeClassNames","dotsDisabled","getDotsIcon","_cx2","classNames","pageLinkFocused","forwardLinkDisabled","Component","component","forward","forwardIcon","getForwardIcon","_extends2","onClick","emptyHandler","goForward","tabIndex","pageNumber","getVisualStateDataAttributes","isMobile","caption","_cx3","pageLinkDisabled","pageLinkCurrent","pageLinkCurrentDisabled","handleClick","goToPage","onMouseDown","handleMouseDownPageLink","renderNavigationHint","withoutNavigationHint","canGoBackward","canGoForward","hint","Fragment","transparent","getKeyName","pageLinkHint","handleMouseDown","setState","isIE11","globalObject","setTimeout","focus","handleKeyDown","e","shiftKey","target","isArrowLeft","isKeyArrowLeft","isArrowRight","isKeyArrowRight","isInstanceOf","Element","includes","tagName","toLowerCase","isContentEditable","checkKeyPressed","goBackward","moveFocusLeft","moveFocusRight","isKeyEnter","executeItemAction","handleFocus","requestAnimationFrame","keyListener","isTabPressed","handleBlur","getItems","pagesCount","isItemFocusable","moveFocus","step","items","findIndex","x","onPageChange","addGlobalListener","_globalObject$documen","document","addEventListener","removeGlobalListener","_globalObject$documen2","removeEventListener","refContainer","element","getPagingSizeClassNames","size","getSize","pagingLegacy","dotsLegacy","forwardLinkLegacy","pageLinkLegacy","pagingSmall","dotsSmall","forwardLinkSmall","pageLinkSmall","pagingMedium","dotsMedium","forwardLinkMediumMobile","forwardLinkMedium","pageLinkMedium","pagingLarge","dotsLarge","forwardLinkLargeMobile","forwardLinkLarge","pageLinkLarge","TypeError","DotsIcon","iconSize","parseInt","pagingForwardIconSize","ForwardIconMobile","ForwardIcon","style","marginLeft","defaultSize","isThemeGTE","_inheritsLoose2","isForward","_proto","prototype","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","render","_this2","ThemeContext","Consumer","ResponsiveLayout","_ref","renderMain","_cx4","_this3","_this$getProps","CommonWrapper","rootNodeRef","setRootNode","paging","pagingMobile","pagingDisabled","onKeyDown","undefined","onFocus","onBlur","ref","map","React","PureComponent","__KONTUR_REACT_UI__","displayName","PagingDefaultComponent"],"sources":["Paging.tsx"],"sourcesContent":["import React from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport { isKeyArrowLeft, isKeyArrowRight, isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { locale } from '../../lib/locale/decorators';\nimport type { Nullable } from '../../typings/utility-types';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { emptyHandler } from '../../lib/utils';\nimport { isIE11 } from '../../lib/client';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { isThemeGTE } from '../../lib/theming/ThemeHelpers';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes';\nimport { ResponsiveLayout } from '../ResponsiveLayout';\nimport type { SizeProp } from '../../lib/types/props';\n\nimport { styles } from './Paging.styles';\nimport * as NavigationHelper from './NavigationHelper';\nimport { getItems } from './PagingHelper';\nimport type { PagingLocale } from './locale';\nimport { PagingLocaleHelper } from './locale';\nimport { PagingDefaultComponent } from './PagingDefaultComponent';\nimport { ForwardIcon, ForwardIconMobile } from './ForwardIcon';\nimport { DotsIcon } from './DotsIcon';\n\nconst IGNORE_EVENT_TAGS = ['input', 'textarea'];\n\nexport interface ItemComponentProps {\n /** Определяет, является ли страница текущей. */\n active: boolean;\n\n /** @ignore */\n children?: React.ReactNode;\n\n /** Задает HTML-атрибут class. */\n className: string;\n\n /** Задает функцию, которая вызывается при клике на элемент. */\n onClick: () => void;\n\n /** Задает номер текущей страницы. */\n pageNumber: number | 'forward';\n\n /** Задает HTML-атрибут `tabindex`. */\n tabIndex: number;\n}\n\nexport interface PagingProps extends CommonProps {\n activePage: number;\n\n /** Компонент обертки по умолчанию.\n * @default <span/> */\n component?: React.ComponentType<ItemComponentProps>;\n\n /** Задает функцию, которая вызывается при переключении страницы. */\n onPageChange: (pageNumber: number) => void;\n\n /** Задает общее количество страниц. */\n pagesCount: number;\n\n /** Задает размер контрола.\n * @default 'small'. Проп поддерживается начиная с версии темы 5.3. */\n size?: SizeProp;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Отключает навигационные подсказки.\n * По умолчанию подсказки появляются, когда доступно управление с клавиатуры (либо элемент в фокусе, либо globalListeners === true). */\n withoutNavigationHint?: boolean;\n\n /** Подпись у пейджинга. */\n caption?: string;\n\n /** Глобальный слушатель **keyDown**, для навигации клавишами без фокуса на компоненте.\n * Если на странице используется несколько элементов **Paging** с useGlobalListener === true,\n * то обработчик keyDown будет вызываться на каждом из них. Такие случаи лучше обрабатывать отдельно. */\n useGlobalListener?: boolean;\n}\n\nexport interface PagingState {\n focusedByTab: boolean;\n focusedItem: Nullable<ItemType>;\n keyboardControl: boolean;\n}\n\nexport type ItemType = number | '.' | 'forward';\n\nexport const PagingDataTids = {\n root: 'Paging__root',\n dots: 'Paging__dots',\n forwardLink: 'Paging__forwardLink',\n pageLinkWrapper: 'Paging__pageLinkWrapper',\n pageLink: 'Paging__pageLink',\n} as const;\n\ntype DefaultProps = Required<Pick<PagingProps, 'component' | 'useGlobalListener'>>;\n\ninterface PagingSizeClassNames {\n root: string;\n dots: string;\n forwardLink: string;\n pageLink: string;\n}\n\n/**\n * Постраничная навигация `Paging` (пейджинг или пагинация) — способ представления большого количества однородной информации, когда контент разбивается на страницы.\n */\n@rootNode\n@locale('Paging', PagingLocaleHelper)\nexport class Paging extends React.PureComponent<PagingProps, PagingState> {\n public static __KONTUR_REACT_UI__ = 'Paging';\n public static displayName = 'Paging';\n\n public static defaultProps: DefaultProps = {\n component: PagingDefaultComponent,\n useGlobalListener: false,\n };\n\n private getProps = createPropsGetter(Paging.defaultProps);\n\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public static isForward(pageNumber: number | 'forward'): boolean {\n return pageNumber === 'forward';\n }\n\n public state: PagingState = {\n focusedByTab: false,\n focusedItem: null,\n keyboardControl: this.getProps().useGlobalListener,\n };\n\n private theme!: Theme;\n private readonly locale!: PagingLocale;\n private isMobile!: boolean;\n private sizeClassNames!: PagingSizeClassNames;\n private addedGlobalListener = false;\n private container: HTMLSpanElement | null = null;\n\n public componentDidMount() {\n const useGlobalListener = this.getProps().useGlobalListener;\n if (useGlobalListener) {\n this.addGlobalListener();\n }\n }\n\n public componentDidUpdate(prevProps: PagingProps) {\n const useGlobalListener = this.getProps().useGlobalListener;\n if (!prevProps.useGlobalListener && useGlobalListener) {\n this.addGlobalListener();\n }\n\n if (prevProps.useGlobalListener && !useGlobalListener) {\n this.removeGlobalListener();\n }\n\n if (prevProps.useGlobalListener !== useGlobalListener) {\n this.setState({\n keyboardControl: useGlobalListener,\n });\n }\n }\n\n public componentWillUnmount() {\n this.removeGlobalListener();\n }\n\n public render() {\n if (this.props.pagesCount < 2) {\n return null;\n }\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <ResponsiveLayout>\n {({ isMobile }) => {\n this.isMobile = isMobile && isThemeGTE(this.theme, '5.3');\n this.sizeClassNames = this.getPagingSizeClassNames();\n return this.renderMain();\n }}\n </ResponsiveLayout>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { useGlobalListener } = this.getProps();\n return (\n <CommonWrapper\n rootNodeRef={this.setRootNode}\n {...this.props}\n {...getVisualStateDataAttributes({ disabled: this.props.disabled })}\n >\n <span\n tabIndex={this.props.disabled ? -1 : 0}\n data-tid={PagingDataTids.root}\n className={cx(styles.paging(), this.sizeClassNames.root, {\n [styles.pagingMobile()]: this.isMobile,\n [styles.pagingDisabled()]: this.props.disabled,\n })}\n onKeyDown={useGlobalListener ? undefined : this.handleKeyDown}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n onMouseDown={this.handleMouseDown}\n ref={this.refContainer}\n >\n {this.getItems().map((item, index) => this.renderItem(item, index))}\n </span>\n </CommonWrapper>\n );\n }\n\n private renderItem = (item: ItemType, index: number) => {\n const focused = this.getFocusedItem() === item;\n switch (item) {\n case '.': {\n const key = `dots${index < 5 ? 'Left' : 'Right'}`;\n return this.renderDots(key);\n }\n case 'forward': {\n const disabled = this.isItemDisabled(item);\n return this.renderForwardLink(disabled, focused);\n }\n default: {\n const active = this.props.activePage === item;\n return this.renderPageLink(item, active, focused);\n }\n }\n };\n\n private renderDots = (key: string) => {\n return (\n <span\n data-tid={PagingDataTids.dots}\n key={key}\n className={cx(styles.dots(this.theme), this.sizeClassNames.dots, {\n [styles.dotsDisabled(this.theme)]: this.props.disabled,\n })}\n >\n {this.getDotsIcon()}\n </span>\n );\n };\n\n private renderForwardLink = (disabled: boolean, focused: boolean): JSX.Element => {\n const classNames = cx(\n styles.pageLink(this.theme),\n this.sizeClassNames.pageLink,\n styles.forwardLink(this.theme),\n this.sizeClassNames.forwardLink,\n {\n [styles.pageLinkFocused(this.theme)]: focused,\n [styles.forwardLinkDisabled(this.theme)]: disabled || this.props.disabled,\n },\n );\n const Component = this.getProps().component;\n const { forward } = this.locale;\n\n const forwardIcon = this.getForwardIcon();\n\n return (\n <Component\n key={'forward'}\n data-tid={PagingDataTids.forwardLink}\n active={false}\n className={classNames}\n onClick={disabled ? emptyHandler : this.goForward}\n tabIndex={-1}\n pageNumber={'forward' as const}\n {...getVisualStateDataAttributes({ disabled })}\n >\n {!this.isMobile && (this.props.caption || forward)}\n {forwardIcon}\n </Component>\n );\n };\n\n private renderPageLink = (pageNumber: number, active: boolean, focused: boolean): JSX.Element => {\n const disabled = this.props.disabled;\n const classNames = cx(styles.pageLink(this.theme), this.sizeClassNames.pageLink, {\n [styles.pageLinkFocused(this.theme)]: focused,\n [styles.pageLinkDisabled(this.theme)]: disabled,\n [styles.pageLinkCurrent(this.theme)]: active,\n [styles.pageLinkCurrentDisabled(this.theme)]: active && disabled,\n });\n const Component = this.getProps().component;\n const handleClick = () => this.goToPage(pageNumber);\n\n return (\n <span\n data-tid={PagingDataTids.pageLinkWrapper}\n key={pageNumber}\n className={styles.pageLinkWrapper()}\n {...getVisualStateDataAttributes({ active, disabled })}\n onMouseDown={this.handleMouseDownPageLink}\n >\n <Component\n data-tid={PagingDataTids.pageLink}\n active={active}\n className={classNames}\n onClick={handleClick}\n tabIndex={-1}\n pageNumber={pageNumber}\n >\n {pageNumber}\n </Component>\n {active && !this.isMobile && this.renderNavigationHint()}\n </span>\n );\n };\n\n private renderNavigationHint = () => {\n if (this.props.withoutNavigationHint) {\n return null;\n }\n\n const { keyboardControl } = this.state;\n const canGoBackward = this.canGoBackward();\n const canGoForward = this.canGoForward();\n\n let hint = null;\n if (keyboardControl && (canGoBackward || canGoForward)) {\n hint = (\n <>\n <span className={canGoBackward ? '' : styles.transparent()}>{'←'}</span>\n <span>{NavigationHelper.getKeyName(this.theme)}</span>\n <span className={canGoForward ? '' : styles.transparent()}>{'→'}</span>\n </>\n );\n }\n return <div className={styles.pageLinkHint(this.theme)}>{hint}</div>;\n };\n\n private handleMouseDown = () => {\n this.setState({ focusedByTab: false, focusedItem: null });\n };\n\n private handleMouseDownPageLink = () => {\n if (isIE11) {\n // Клик по span внутри контейнера с tabindex=\"0\" переносит фокус именно на этот span.\n // Поэтому горячие клавиши работают пока span существует на странице.\n globalObject.setTimeout(() => this.container && this.container.focus(), 0);\n }\n };\n\n private handleKeyDown = (e: KeyboardEvent | React.KeyboardEvent<HTMLElement>) => {\n if (e.shiftKey) {\n return;\n }\n\n const target = e.target;\n\n const isArrowLeft = isKeyArrowLeft(e);\n const isArrowRight = isKeyArrowRight(e);\n\n if (\n isInstanceOf(target, globalObject.Element) &&\n (IGNORE_EVENT_TAGS.includes(target.tagName.toLowerCase()) || (target as HTMLElement).isContentEditable)\n ) {\n return;\n }\n\n if (NavigationHelper.checkKeyPressed(e, this.theme) && isArrowLeft) {\n this.setState({ focusedItem: null }, this.goBackward);\n return;\n }\n if (NavigationHelper.checkKeyPressed(e, this.theme) && isArrowRight) {\n this.setState({ focusedItem: null }, this.goForward);\n return;\n }\n\n if (this.container && this.container === e.target) {\n if (isArrowLeft) {\n this.setState({ focusedByTab: true }, this.moveFocusLeft);\n return;\n }\n if (isArrowRight) {\n this.setState({ focusedByTab: true }, this.moveFocusRight);\n return;\n }\n if (isKeyEnter(e)) {\n this.executeItemAction(this.getFocusedItem());\n return;\n }\n }\n };\n\n private handleFocus = () => {\n if (this.props.disabled) {\n return;\n }\n\n this.setState({ keyboardControl: true });\n\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n };\n\n private handleBlur = () => {\n this.setState({\n focusedByTab: false,\n keyboardControl: this.getProps().useGlobalListener || false,\n });\n };\n\n private getItems = (): ItemType[] => {\n return getItems(this.props.activePage, this.props.pagesCount, this.isMobile).concat('forward');\n };\n\n private getFocusedItem = (): Nullable<ItemType> => {\n if (!this.state.focusedByTab) {\n return null;\n }\n\n const { focusedItem } = this.state;\n if (focusedItem && this.getItems().includes(focusedItem) && this.isItemFocusable(focusedItem)) {\n return focusedItem;\n }\n\n return this.props.activePage;\n };\n\n private isItemFocusable = (item: ItemType) => {\n return !this.isItemDisabled(item);\n };\n\n private isItemDisabled = (item: ItemType) => {\n switch (item) {\n case '.':\n return true;\n case 'forward':\n return !this.canGoForward();\n default:\n return false;\n }\n };\n\n private executeItemAction = (item: Nullable<ItemType>) => {\n if (item === 'forward') {\n this.goForward();\n }\n if (typeof item === 'number') {\n this.goToPage(item);\n }\n };\n\n private moveFocusLeft = () => {\n this.moveFocus(-1);\n };\n\n private moveFocusRight = () => {\n this.moveFocus(1);\n };\n\n private moveFocus = (step: number) => {\n const focusedItem = this.getFocusedItem();\n const items = this.getItems();\n let index = items.findIndex((x) => x === focusedItem);\n do {\n index = (index + step + items.length) % items.length;\n } while (!this.isItemFocusable(items[index]));\n this.setState({ focusedItem: items[index] });\n };\n\n private canGoBackward = (): boolean => {\n return this.props.activePage > 1;\n };\n\n private canGoForward = (): boolean => {\n return this.props.activePage < this.props.pagesCount;\n };\n\n private goBackward = () => {\n this.goToPage(this.props.activePage - 1);\n };\n\n private goForward = () => {\n this.goToPage(this.props.activePage + 1);\n };\n\n private goToPage = (pageNumber: number) => {\n if (pageNumber >= 1 && pageNumber !== this.props.activePage && pageNumber <= this.props.pagesCount) {\n this.props.onPageChange(pageNumber);\n }\n };\n\n private addGlobalListener = () => {\n if (this.addedGlobalListener) {\n return;\n }\n\n globalObject.document?.addEventListener('keydown', this.handleKeyDown);\n this.addedGlobalListener = true;\n };\n\n private removeGlobalListener = () => {\n if (this.addedGlobalListener) {\n globalObject.document?.removeEventListener('keydown', this.handleKeyDown);\n\n this.addedGlobalListener = false;\n }\n };\n\n private refContainer = (element: HTMLSpanElement | null) => {\n this.container = element;\n };\n\n private getPagingSizeClassNames = (): PagingSizeClassNames => {\n const size = this.getSize();\n switch (size) {\n case 'legacy':\n return {\n root: styles.pagingLegacy(this.theme),\n dots: styles.dotsLegacy(this.theme),\n forwardLink: styles.forwardLinkLegacy(this.theme),\n pageLink: styles.pageLinkLegacy(this.theme),\n };\n case 'small':\n return {\n root: styles.pagingSmall(this.theme),\n dots: styles.dotsSmall(this.theme),\n forwardLink: styles.forwardLinkSmall(this.theme),\n pageLink: styles.pageLinkSmall(this.theme),\n };\n case 'medium':\n return {\n root: styles.pagingMedium(this.theme),\n dots: styles.dotsMedium(this.theme),\n forwardLink: this.isMobile\n ? styles.forwardLinkMediumMobile(this.theme)\n : styles.forwardLinkMedium(this.theme),\n pageLink: styles.pageLinkMedium(this.theme),\n };\n case 'large':\n return {\n root: styles.pagingLarge(this.theme),\n dots: styles.dotsLarge(this.theme),\n forwardLink: this.isMobile ? styles.forwardLinkLargeMobile(this.theme) : styles.forwardLinkLarge(this.theme),\n pageLink: styles.pageLinkLarge(this.theme),\n };\n default:\n throw new TypeError(`Invalid size prop: '${this.props.size}'`);\n }\n };\n\n private getDotsIcon = () => {\n const size = this.getSize();\n return size === 'legacy' ? '...' : <DotsIcon size={size} />;\n };\n\n private getForwardIcon = () => {\n const size = this.getSize();\n const iconSize = size === 'legacy' ? parseInt(this.theme.pagingForwardIconSize) : size;\n return this.isMobile ? (\n <ForwardIconMobile size={iconSize} />\n ) : (\n <ForwardIcon size={iconSize} style={{ marginLeft: 4 }} />\n );\n };\n\n private getSize = () => {\n if (this.props.size) {\n return this.isMobile && this.props.size === 'small' ? 'medium' : this.props.size;\n }\n\n const defaultSize = isThemeGTE(this.theme, '5.3') ? 'small' : 'legacy';\n return this.isMobile && defaultSize === 'small' ? 'medium' : defaultSize;\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_globalObject","_isInstanceOf","_identifiers","_decorators","_keyListener","_utils","_client","_ThemeContext","_ThemeHelpers","_CommonWrapper","_Emotion","_rootNode","_createPropsGetter","_getVisualStateDataAttributes","_ResponsiveLayout","_Paging2","NavigationHelper","_interopRequireWildcard","_PagingHelper","_locale","_PagingDefaultComponent","_ForwardIcon","_DotsIcon","_dec","_class","_Paging","IGNORE_EVENT_TAGS","PagingDataTids","exports","root","dots","forwardLink","pageLinkWrapper","pageLink","Paging","locale","PagingLocaleHelper","rootNode","_React$PureComponent","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","focusedByTab","focusedItem","keyboardControl","useGlobalListener","addedGlobalListener","container","renderItem","item","index","focused","getFocusedItem","key","renderDots","disabled","isItemDisabled","renderForwardLink","active","props","activePage","renderPageLink","_cx","default","createElement","className","cx","styles","theme","sizeClassNames","dotsDisabled","getDotsIcon","_cx2","classNames","pageLinkFocused","forwardLinkDisabled","Component","component","forward","forwardIcon","getForwardIcon","_extends2","onClick","emptyHandler","goForward","tabIndex","pageNumber","getVisualStateDataAttributes","isMobile","caption","_cx3","pageLinkDisabled","pageLinkCurrent","pageLinkCurrentDisabled","handleClick","goToPage","onMouseDown","handleMouseDownPageLink","renderNavigationHint","withoutNavigationHint","canGoBackward","canGoForward","hint","Fragment","transparent","getKeyName","pageLinkHint","handleMouseDown","setState","isIE11","globalObject","setTimeout","focus","handleKeyDown","e","shiftKey","target","isArrowLeft","isKeyArrowLeft","isArrowRight","isKeyArrowRight","isInstanceOf","Element","includes","tagName","toLowerCase","isContentEditable","checkKeyPressed","goBackward","moveFocusLeft","moveFocusRight","isKeyEnter","executeItemAction","handleFocus","requestAnimationFrame","keyListener","isTabPressed","handleBlur","getItems","pagesCount","isItemFocusable","moveFocus","step","items","findIndex","x","onPageChange","addGlobalListener","_globalObject$documen","document","addEventListener","removeGlobalListener","_globalObject$documen2","removeEventListener","refContainer","element","getPagingSizeClassNames","size","getSize","pagingLegacy","dotsLegacy","forwardLinkLegacy","pageLinkLegacy","pagingSmall","dotsSmall","forwardLinkSmall","pageLinkSmall","pagingMedium","dotsMedium","forwardLinkMediumMobile","forwardLinkMedium","pageLinkMedium","pagingLarge","dotsLarge","forwardLinkLargeMobile","forwardLinkLarge","pageLinkLarge","TypeError","DotsIcon","iconSize","parseInt","pagingForwardIconSize","ForwardIconMobile","ForwardIcon","style","marginLeft","defaultSize","isThemeGTE","_inheritsLoose2","isForward","_proto","prototype","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","render","_this2","ThemeContext","Consumer","ResponsiveLayout","_ref","renderMain","_cx4","_this3","_this$getProps","CommonWrapper","rootNodeRef","setRootNode","paging","pagingMobile","pagingDisabled","onKeyDown","undefined","onFocus","onBlur","ref","map","React","PureComponent","__KONTUR_REACT_UI__","displayName","PagingDefaultComponent"],"sources":["Paging.tsx"],"sourcesContent":["import React from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport { isKeyArrowLeft, isKeyArrowRight, isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { locale } from '../../lib/locale/decorators';\nimport type { Nullable } from '../../typings/utility-types';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { emptyHandler } from '../../lib/utils';\nimport { isIE11 } from '../../lib/client';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { isThemeGTE } from '../../lib/theming/ThemeHelpers';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes';\nimport { ResponsiveLayout } from '../ResponsiveLayout';\nimport type { SizeProp } from '../../lib/types/props';\n\nimport { styles } from './Paging.styles';\nimport * as NavigationHelper from './NavigationHelper';\nimport { getItems } from './PagingHelper';\nimport type { PagingLocale } from './locale';\nimport { PagingLocaleHelper } from './locale';\nimport { PagingDefaultComponent } from './PagingDefaultComponent';\nimport { ForwardIcon, ForwardIconMobile } from './ForwardIcon';\nimport { DotsIcon } from './DotsIcon';\n\nconst IGNORE_EVENT_TAGS = ['input', 'textarea'];\n\nexport interface ItemComponentProps {\n /** @ignore */\n children?: React.ReactNode;\n\n /** Определяет, является ли страница текущей. */\n active: boolean;\n\n /** Номер страницы. */\n pageNumber: number | 'forward';\n\n /** Вызывается при клике на элемент. */\n onClick: () => void;\n\n /** HTML-атрибут `class`. */\n className: string;\n\n /** HTML-атрибут `tabindex`. */\n tabIndex: number;\n}\n\nexport interface PagingProps extends CommonProps {\n /** Количество страниц. */\n pagesCount: number;\n\n /** Номер текущей страницы. */\n activePage: number;\n\n /** Вызывается при переключении страницы. */\n onPageChange: (pageNumber: number) => void;\n\n /** Размер пейджинга.\n *\n * *Проп поддерживается начиная с версии 5.3.*\n * @default 'small' */\n size?: SizeProp;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Подпись у кнопки перехода на следующую страницу. */\n caption?: string;\n\n /** Компонент обёртки страниц.\n * @default <span/> */\n component?: React.ComponentType<ItemComponentProps>;\n\n /** Отключает навигационные подсказки.\n * По умолчанию подсказки появляются, когда доступно управление с клавиатуры (либо контрол в фокусе, либо globalListeners === true). */\n withoutNavigationHint?: boolean;\n\n /** Включает глобальный слушатель `keyDown`, для навигации клавишами без фокуса на контроле. */\n useGlobalListener?: boolean;\n}\n\nexport interface PagingState {\n focusedByTab: boolean;\n focusedItem: Nullable<ItemType>;\n keyboardControl: boolean;\n}\n\nexport type ItemType = number | '.' | 'forward';\n\nexport const PagingDataTids = {\n root: 'Paging__root',\n dots: 'Paging__dots',\n forwardLink: 'Paging__forwardLink',\n pageLinkWrapper: 'Paging__pageLinkWrapper',\n pageLink: 'Paging__pageLink',\n} as const;\n\ntype DefaultProps = Required<Pick<PagingProps, 'component' | 'useGlobalListener'>>;\n\ninterface PagingSizeClassNames {\n root: string;\n dots: string;\n forwardLink: string;\n pageLink: string;\n}\n\n/**\n * Постраничная навигация `Paging` (пейджинг или пагинация) — способ представления большого количества однородной информации, когда контент разбивается на страницы.\n */\n@rootNode\n@locale('Paging', PagingLocaleHelper)\nexport class Paging extends React.PureComponent<PagingProps, PagingState> {\n public static __KONTUR_REACT_UI__ = 'Paging';\n public static displayName = 'Paging';\n\n public static defaultProps: DefaultProps = {\n component: PagingDefaultComponent,\n useGlobalListener: false,\n };\n\n private getProps = createPropsGetter(Paging.defaultProps);\n\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public static isForward(pageNumber: number | 'forward'): boolean {\n return pageNumber === 'forward';\n }\n\n public state: PagingState = {\n focusedByTab: false,\n focusedItem: null,\n keyboardControl: this.getProps().useGlobalListener,\n };\n\n private theme!: Theme;\n private readonly locale!: PagingLocale;\n private isMobile!: boolean;\n private sizeClassNames!: PagingSizeClassNames;\n private addedGlobalListener = false;\n private container: HTMLSpanElement | null = null;\n\n public componentDidMount() {\n const useGlobalListener = this.getProps().useGlobalListener;\n if (useGlobalListener) {\n this.addGlobalListener();\n }\n }\n\n public componentDidUpdate(prevProps: PagingProps) {\n const useGlobalListener = this.getProps().useGlobalListener;\n if (!prevProps.useGlobalListener && useGlobalListener) {\n this.addGlobalListener();\n }\n\n if (prevProps.useGlobalListener && !useGlobalListener) {\n this.removeGlobalListener();\n }\n\n if (prevProps.useGlobalListener !== useGlobalListener) {\n this.setState({\n keyboardControl: useGlobalListener,\n });\n }\n }\n\n public componentWillUnmount() {\n this.removeGlobalListener();\n }\n\n public render() {\n if (this.props.pagesCount < 2) {\n return null;\n }\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <ResponsiveLayout>\n {({ isMobile }) => {\n this.isMobile = isMobile && isThemeGTE(this.theme, '5.3');\n this.sizeClassNames = this.getPagingSizeClassNames();\n return this.renderMain();\n }}\n </ResponsiveLayout>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { useGlobalListener } = this.getProps();\n return (\n <CommonWrapper\n rootNodeRef={this.setRootNode}\n {...this.props}\n {...getVisualStateDataAttributes({ disabled: this.props.disabled })}\n >\n <span\n tabIndex={this.props.disabled ? -1 : 0}\n data-tid={PagingDataTids.root}\n className={cx(styles.paging(), this.sizeClassNames.root, {\n [styles.pagingMobile()]: this.isMobile,\n [styles.pagingDisabled()]: this.props.disabled,\n })}\n onKeyDown={useGlobalListener ? undefined : this.handleKeyDown}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n onMouseDown={this.handleMouseDown}\n ref={this.refContainer}\n >\n {this.getItems().map((item, index) => this.renderItem(item, index))}\n </span>\n </CommonWrapper>\n );\n }\n\n private renderItem = (item: ItemType, index: number) => {\n const focused = this.getFocusedItem() === item;\n switch (item) {\n case '.': {\n const key = `dots${index < 5 ? 'Left' : 'Right'}`;\n return this.renderDots(key);\n }\n case 'forward': {\n const disabled = this.isItemDisabled(item);\n return this.renderForwardLink(disabled, focused);\n }\n default: {\n const active = this.props.activePage === item;\n return this.renderPageLink(item, active, focused);\n }\n }\n };\n\n private renderDots = (key: string) => {\n return (\n <span\n data-tid={PagingDataTids.dots}\n key={key}\n className={cx(styles.dots(this.theme), this.sizeClassNames.dots, {\n [styles.dotsDisabled(this.theme)]: this.props.disabled,\n })}\n >\n {this.getDotsIcon()}\n </span>\n );\n };\n\n private renderForwardLink = (disabled: boolean, focused: boolean): JSX.Element => {\n const classNames = cx(\n styles.pageLink(this.theme),\n this.sizeClassNames.pageLink,\n styles.forwardLink(this.theme),\n this.sizeClassNames.forwardLink,\n {\n [styles.pageLinkFocused(this.theme)]: focused,\n [styles.forwardLinkDisabled(this.theme)]: disabled || this.props.disabled,\n },\n );\n const Component = this.getProps().component;\n const { forward } = this.locale;\n\n const forwardIcon = this.getForwardIcon();\n\n return (\n <Component\n key={'forward'}\n data-tid={PagingDataTids.forwardLink}\n active={false}\n className={classNames}\n onClick={disabled ? emptyHandler : this.goForward}\n tabIndex={-1}\n pageNumber={'forward' as const}\n {...getVisualStateDataAttributes({ disabled })}\n >\n {!this.isMobile && (this.props.caption || forward)}\n {forwardIcon}\n </Component>\n );\n };\n\n private renderPageLink = (pageNumber: number, active: boolean, focused: boolean): JSX.Element => {\n const disabled = this.props.disabled;\n const classNames = cx(styles.pageLink(this.theme), this.sizeClassNames.pageLink, {\n [styles.pageLinkFocused(this.theme)]: focused,\n [styles.pageLinkDisabled(this.theme)]: disabled,\n [styles.pageLinkCurrent(this.theme)]: active,\n [styles.pageLinkCurrentDisabled(this.theme)]: active && disabled,\n });\n const Component = this.getProps().component;\n const handleClick = () => this.goToPage(pageNumber);\n\n return (\n <span\n data-tid={PagingDataTids.pageLinkWrapper}\n key={pageNumber}\n className={styles.pageLinkWrapper()}\n {...getVisualStateDataAttributes({ active, disabled })}\n onMouseDown={this.handleMouseDownPageLink}\n >\n <Component\n data-tid={PagingDataTids.pageLink}\n active={active}\n className={classNames}\n onClick={handleClick}\n tabIndex={-1}\n pageNumber={pageNumber}\n >\n {pageNumber}\n </Component>\n {active && !this.isMobile && this.renderNavigationHint()}\n </span>\n );\n };\n\n private renderNavigationHint = () => {\n if (this.props.withoutNavigationHint) {\n return null;\n }\n\n const { keyboardControl } = this.state;\n const canGoBackward = this.canGoBackward();\n const canGoForward = this.canGoForward();\n\n let hint = null;\n if (keyboardControl && (canGoBackward || canGoForward)) {\n hint = (\n <>\n <span className={canGoBackward ? '' : styles.transparent()}>{'←'}</span>\n <span>{NavigationHelper.getKeyName(this.theme)}</span>\n <span className={canGoForward ? '' : styles.transparent()}>{'→'}</span>\n </>\n );\n }\n return <div className={styles.pageLinkHint(this.theme)}>{hint}</div>;\n };\n\n private handleMouseDown = () => {\n this.setState({ focusedByTab: false, focusedItem: null });\n };\n\n private handleMouseDownPageLink = () => {\n if (isIE11) {\n // Клик по span внутри контейнера с tabindex=\"0\" переносит фокус именно на этот span.\n // Поэтому горячие клавиши работают пока span существует на странице.\n globalObject.setTimeout(() => this.container && this.container.focus(), 0);\n }\n };\n\n private handleKeyDown = (e: KeyboardEvent | React.KeyboardEvent<HTMLElement>) => {\n if (e.shiftKey) {\n return;\n }\n\n const target = e.target;\n\n const isArrowLeft = isKeyArrowLeft(e);\n const isArrowRight = isKeyArrowRight(e);\n\n if (\n isInstanceOf(target, globalObject.Element) &&\n (IGNORE_EVENT_TAGS.includes(target.tagName.toLowerCase()) || (target as HTMLElement).isContentEditable)\n ) {\n return;\n }\n\n if (NavigationHelper.checkKeyPressed(e, this.theme) && isArrowLeft) {\n this.setState({ focusedItem: null }, this.goBackward);\n return;\n }\n if (NavigationHelper.checkKeyPressed(e, this.theme) && isArrowRight) {\n this.setState({ focusedItem: null }, this.goForward);\n return;\n }\n\n if (this.container && this.container === e.target) {\n if (isArrowLeft) {\n this.setState({ focusedByTab: true }, this.moveFocusLeft);\n return;\n }\n if (isArrowRight) {\n this.setState({ focusedByTab: true }, this.moveFocusRight);\n return;\n }\n if (isKeyEnter(e)) {\n this.executeItemAction(this.getFocusedItem());\n return;\n }\n }\n };\n\n private handleFocus = () => {\n if (this.props.disabled) {\n return;\n }\n\n this.setState({ keyboardControl: true });\n\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n };\n\n private handleBlur = () => {\n this.setState({\n focusedByTab: false,\n keyboardControl: this.getProps().useGlobalListener || false,\n });\n };\n\n private getItems = (): ItemType[] => {\n return getItems(this.props.activePage, this.props.pagesCount, this.isMobile).concat('forward');\n };\n\n private getFocusedItem = (): Nullable<ItemType> => {\n if (!this.state.focusedByTab) {\n return null;\n }\n\n const { focusedItem } = this.state;\n if (focusedItem && this.getItems().includes(focusedItem) && this.isItemFocusable(focusedItem)) {\n return focusedItem;\n }\n\n return this.props.activePage;\n };\n\n private isItemFocusable = (item: ItemType) => {\n return !this.isItemDisabled(item);\n };\n\n private isItemDisabled = (item: ItemType) => {\n switch (item) {\n case '.':\n return true;\n case 'forward':\n return !this.canGoForward();\n default:\n return false;\n }\n };\n\n private executeItemAction = (item: Nullable<ItemType>) => {\n if (item === 'forward') {\n this.goForward();\n }\n if (typeof item === 'number') {\n this.goToPage(item);\n }\n };\n\n private moveFocusLeft = () => {\n this.moveFocus(-1);\n };\n\n private moveFocusRight = () => {\n this.moveFocus(1);\n };\n\n private moveFocus = (step: number) => {\n const focusedItem = this.getFocusedItem();\n const items = this.getItems();\n let index = items.findIndex((x) => x === focusedItem);\n do {\n index = (index + step + items.length) % items.length;\n } while (!this.isItemFocusable(items[index]));\n this.setState({ focusedItem: items[index] });\n };\n\n private canGoBackward = (): boolean => {\n return this.props.activePage > 1;\n };\n\n private canGoForward = (): boolean => {\n return this.props.activePage < this.props.pagesCount;\n };\n\n private goBackward = () => {\n this.goToPage(this.props.activePage - 1);\n };\n\n private goForward = () => {\n this.goToPage(this.props.activePage + 1);\n };\n\n private goToPage = (pageNumber: number) => {\n if (pageNumber >= 1 && pageNumber !== this.props.activePage && pageNumber <= this.props.pagesCount) {\n this.props.onPageChange(pageNumber);\n }\n };\n\n private addGlobalListener = () => {\n if (this.addedGlobalListener) {\n return;\n }\n\n globalObject.document?.addEventListener('keydown', this.handleKeyDown);\n this.addedGlobalListener = true;\n };\n\n private removeGlobalListener = () => {\n if (this.addedGlobalListener) {\n globalObject.document?.removeEventListener('keydown', this.handleKeyDown);\n\n this.addedGlobalListener = false;\n }\n };\n\n private refContainer = (element: HTMLSpanElement | null) => {\n this.container = element;\n };\n\n private getPagingSizeClassNames = (): PagingSizeClassNames => {\n const size = this.getSize();\n switch (size) {\n case 'legacy':\n return {\n root: styles.pagingLegacy(this.theme),\n dots: styles.dotsLegacy(this.theme),\n forwardLink: styles.forwardLinkLegacy(this.theme),\n pageLink: styles.pageLinkLegacy(this.theme),\n };\n case 'small':\n return {\n root: styles.pagingSmall(this.theme),\n dots: styles.dotsSmall(this.theme),\n forwardLink: styles.forwardLinkSmall(this.theme),\n pageLink: styles.pageLinkSmall(this.theme),\n };\n case 'medium':\n return {\n root: styles.pagingMedium(this.theme),\n dots: styles.dotsMedium(this.theme),\n forwardLink: this.isMobile\n ? styles.forwardLinkMediumMobile(this.theme)\n : styles.forwardLinkMedium(this.theme),\n pageLink: styles.pageLinkMedium(this.theme),\n };\n case 'large':\n return {\n root: styles.pagingLarge(this.theme),\n dots: styles.dotsLarge(this.theme),\n forwardLink: this.isMobile ? styles.forwardLinkLargeMobile(this.theme) : styles.forwardLinkLarge(this.theme),\n pageLink: styles.pageLinkLarge(this.theme),\n };\n default:\n throw new TypeError(`Invalid size prop: '${this.props.size}'`);\n }\n };\n\n private getDotsIcon = () => {\n const size = this.getSize();\n return size === 'legacy' ? '...' : <DotsIcon size={size} />;\n };\n\n private getForwardIcon = () => {\n const size = this.getSize();\n const iconSize = size === 'legacy' ? parseInt(this.theme.pagingForwardIconSize) : size;\n return this.isMobile ? (\n <ForwardIconMobile size={iconSize} />\n ) : (\n <ForwardIcon size={iconSize} style={{ marginLeft: 4 }} />\n );\n };\n\n private getSize = () => {\n if (this.props.size) {\n return this.isMobile && this.props.size === 'small' ? 'medium' : this.props.size;\n }\n\n const defaultSize = isThemeGTE(this.theme, '5.3') ? 'small' : 'legacy';\n return this.isMobile && defaultSize === 'small' ? 'medium' : defaultSize;\n };\n}\n"],"mappings":"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","ignoreList":[]}