@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 +12 -0
- package/cjs/components/Calendar/Calendar.js +2 -31
- package/cjs/components/Calendar/Calendar.js.map +1 -1
- package/cjs/components/Paging/Paging.d.ts +23 -22
- package/cjs/components/Paging/Paging.js +1 -0
- package/cjs/components/Paging/Paging.js.map +1 -1
- package/cjs/components/Spinner/Spinner.d.ts +28 -16
- package/cjs/components/Spinner/Spinner.js +17 -5
- package/cjs/components/Spinner/Spinner.js.map +1 -1
- package/cjs/components/Textarea/Textarea.styles.js +2 -3
- package/cjs/components/Textarea/Textarea.styles.js.map +1 -1
- package/cjs/internal/themes/BasicTheme.d.ts +1 -0
- package/cjs/internal/themes/BasicTheme.js +2 -1
- package/cjs/internal/themes/BasicTheme.js.map +1 -1
- package/components/Calendar/Calendar/Calendar.js +2 -28
- package/components/Calendar/Calendar/Calendar.js.map +1 -1
- package/components/Paging/Paging/Paging.js.map +1 -1
- package/components/Paging/Paging.d.ts +23 -22
- package/components/Spinner/Spinner/Spinner.js +0 -5
- package/components/Spinner/Spinner/Spinner.js.map +1 -1
- package/components/Spinner/Spinner.d.ts +28 -16
- package/components/Textarea/Textarea.styles/Textarea.styles.js +1 -1
- package/components/Textarea/Textarea.styles/Textarea.styles.js.map +1 -1
- package/internal/themes/BasicTheme/BasicTheme.js +2 -0
- package/internal/themes/BasicTheme/BasicTheme.js.map +1 -1
- package/internal/themes/BasicTheme.d.ts +1 -0
- package/package.json +2 -2
|
@@ -54,7 +54,7 @@ export var Calendar = rootNode(_class = (_Calendar = /*#__PURE__*/function (_Rea
|
|
|
54
54
|
*/
|
|
55
55
|
_this.scrollToMonth = /*#__PURE__*/function () {
|
|
56
56
|
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(month, year) {
|
|
57
|
-
var monthNative, minDate, maxDate, minMonth, maxMonth, currentMonth, diffInMonths, maxMonthsToAdd, onEnd,
|
|
57
|
+
var monthNative, minDate, maxDate, minMonth, maxMonth, currentMonth, diffInMonths, maxMonthsToAdd, onEnd, monthsToPrependCount, monthsToPrepend, monthsToAppendCount, monthsToAppend;
|
|
58
58
|
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
59
59
|
while (1) switch (_context.prev = _context.next) {
|
|
60
60
|
case 0:
|
|
@@ -104,13 +104,6 @@ export var Calendar = rootNode(_class = (_Calendar = /*#__PURE__*/function (_Rea
|
|
|
104
104
|
scrollPosition: 0
|
|
105
105
|
});
|
|
106
106
|
};
|
|
107
|
-
isYearChanges = function isYearChanges(state) {
|
|
108
|
-
return state.months[1].year !== year &&
|
|
109
|
-
// if diff in months is 2 or less,
|
|
110
|
-
// either year is not changing either months already
|
|
111
|
-
// have right isFirstInYear/isLastInYear flags
|
|
112
|
-
Math.abs(diffInMonths) > 2;
|
|
113
|
-
};
|
|
114
107
|
|
|
115
108
|
// If scrolling upwards, prepend maximum maxMonthsToAdd months
|
|
116
109
|
// and scroll to the first month
|
|
@@ -122,16 +115,6 @@ export var Calendar = rootNode(_class = (_Calendar = /*#__PURE__*/function (_Rea
|
|
|
122
115
|
return MonthViewModel.create(monthNative + index, year);
|
|
123
116
|
});
|
|
124
117
|
_this.setState(function (state) {
|
|
125
|
-
var yearChanges = isYearChanges(state);
|
|
126
|
-
if (yearChanges) {
|
|
127
|
-
// Mutating here can lead to some unexpected bugs
|
|
128
|
-
// but we couldn't find any yet
|
|
129
|
-
state.months[0].isFirstInYear = true;
|
|
130
|
-
if (monthsToPrepend.length) {
|
|
131
|
-
// Mutating item here is safe as it was just created
|
|
132
|
-
monthsToPrepend[monthsToPrepend.length - 1].isLastInYear = true;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
118
|
return {
|
|
136
119
|
months: monthsToPrepend.concat(state.months),
|
|
137
120
|
scrollPosition: -CalendarUtils.getMonthsHeight(monthsToPrepend, _this.theme)
|
|
@@ -152,15 +135,6 @@ export var Calendar = rootNode(_class = (_Calendar = /*#__PURE__*/function (_Rea
|
|
|
152
135
|
return MonthViewModel.create(monthNative + index - monthsToAppendCount + 2, year);
|
|
153
136
|
});
|
|
154
137
|
_this.setState(function (state) {
|
|
155
|
-
if (isYearChanges(state)) {
|
|
156
|
-
// Mutating here can lead to some unexpected bugs
|
|
157
|
-
// but we couldn't find any yet
|
|
158
|
-
state.months[state.months.length - 1].isLastInYear = true;
|
|
159
|
-
// Mutating item here is safe as it was just created
|
|
160
|
-
if (monthsToAppend[0]) {
|
|
161
|
-
monthsToAppend[0].isFirstInYear = true;
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
138
|
return {
|
|
165
139
|
months: state.months.concat(monthsToAppend)
|
|
166
140
|
};
|
|
@@ -169,7 +143,7 @@ export var Calendar = rootNode(_class = (_Calendar = /*#__PURE__*/function (_Rea
|
|
|
169
143
|
_this.scrollTo(targetPosition, onEnd);
|
|
170
144
|
});
|
|
171
145
|
}
|
|
172
|
-
case
|
|
146
|
+
case 24:
|
|
173
147
|
case "end":
|
|
174
148
|
return _context.stop();
|
|
175
149
|
}
|
|
@@ -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 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","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","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","min","abs","Array","from","length","_","index","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 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":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","globalObject","isInstanceOf","isKeyArrowLeft","isKeyArrowRight","isKeyEnter","locale","keyListener","emptyHandler","isIE11","ThemeContext","isThemeGTE","CommonWrapper","cx","rootNode","createPropsGetter","getVisualStateDataAttributes","ResponsiveLayout","styles","NavigationHelper","getItems","PagingLocaleHelper","PagingDefaultComponent","ForwardIcon","ForwardIconMobile","DotsIcon","IGNORE_EVENT_TAGS","PagingDataTids","root","dots","forwardLink","pageLinkWrapper","pageLink","Paging","_dec","_class","_Paging","_React$PureComponent","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","state","focusedByTab","focusedItem","keyboardControl","useGlobalListener","addedGlobalListener","container","renderItem","item","index","focused","getFocusedItem","key","renderDots","disabled","isItemDisabled","renderForwardLink","active","props","activePage","renderPageLink","_cx","createElement","className","theme","sizeClassNames","dotsDisabled","getDotsIcon","_cx2","classNames","pageLinkFocused","forwardLinkDisabled","Component","component","forward","forwardIcon","getForwardIcon","_extends","onClick","goForward","tabIndex","pageNumber","isMobile","caption","_cx3","pageLinkDisabled","pageLinkCurrent","pageLinkCurrentDisabled","handleClick","goToPage","onMouseDown","handleMouseDownPageLink","renderNavigationHint","withoutNavigationHint","canGoBackward","canGoForward","hint","Fragment","transparent","getKeyName","pageLinkHint","handleMouseDown","setState","setTimeout","focus","handleKeyDown","e","shiftKey","target","isArrowLeft","isArrowRight","Element","includes","tagName","toLowerCase","isContentEditable","checkKeyPressed","goBackward","moveFocusLeft","moveFocusRight","executeItemAction","handleFocus","requestAnimationFrame","isTabPressed","handleBlur","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","iconSize","parseInt","pagingForwardIconSize","style","marginLeft","defaultSize","_inheritsLoose","isForward","_proto","prototype","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","render","_this2","Consumer","_ref","renderMain","_cx4","_this3","_this$getProps","rootNodeRef","setRootNode","paging","pagingMobile","pagingDisabled","onKeyDown","undefined","onFocus","onBlur","ref","map","PureComponent","__KONTUR_REACT_UI__","displayName"],"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":"0JAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,YAAY,QAAQ,0BAA0B;;AAEvD,SAASC,YAAY,QAAQ,wBAAwB;AACrD,SAASC,cAAc,EAAEC,eAAe,EAAEC,UAAU,QAAQ,uCAAuC;AACnG,SAASC,MAAM,QAAQ,6BAA6B;;AAEpD,SAASC,WAAW,QAAQ,8BAA8B;AAC1D,SAASC,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,MAAM,QAAQ,kBAAkB;AACzC,SAASC,YAAY,QAAQ,gCAAgC;;AAE7D,SAASC,UAAU,QAAQ,gCAAgC;;AAE3D,SAASC,aAAa,QAAQ,8BAA8B;AAC5D,SAASC,EAAE,QAAQ,2BAA2B;;AAE9C,SAASC,QAAQ,QAAQ,oBAAoB;AAC7C,SAASC,iBAAiB,QAAQ,6BAA6B;AAC/D,SAASC,4BAA4B,QAAQ,iEAAiE;AAC9G,SAASC,gBAAgB,QAAQ,qBAAqB;;;AAGtD,SAASC,MAAM,QAAQ,iBAAiB;AACxC,OAAO,KAAKC,gBAAgB,MAAM,oBAAoB;AACtD,SAASC,QAAQ,QAAQ,gBAAgB;;AAEzC,SAASC,kBAAkB,QAAQ,UAAU;AAC7C,SAASC,sBAAsB,QAAQ,0BAA0B;AACjE,SAASC,WAAW,EAAEC,iBAAiB,QAAQ,eAAe;AAC9D,SAASC,QAAQ,QAAQ,YAAY;;AAErC,IAAMC,iBAAiB,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+D/C,OAAO,IAAMC,cAAc,GAAG;EAC5BC,IAAI,EAAE,cAAc;EACpBC,IAAI,EAAE,cAAc;EACpBC,WAAW,EAAE,qBAAqB;EAClCC,eAAe,EAAE,yBAAyB;EAC1CC,QAAQ,EAAE;AACZ,CAAU;;;;;;;;;;;AAWV;AACA;AACA;AACA;;AAEaC,MAAM,IAAAC,IAAA,GADlB5B,MAAM,CAAC,QAAQ,EAAEe,kBAAkB,CAAC,EADpCP,QAAQ,CAAAqB,MAAA,GAAAD,IAAA,CAAAC,MAAA,IAAAC,OAAA,0BAAAC,oBAAA,YAAAJ,OAAA,OAAAK,KAAA,UAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,KAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA,GAAAN,KAAA,GAAAD,oBAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,oBAAA,SAAAU,MAAA,CAAAL,IAAA,WAAAJ,KAAA;;;;;;;;;IAWCU,QAAQ,GAAGjC,iBAAiB,CAACkB,MAAM,CAACgB,YAAY,CAAC,CAAAX,KAAA;;;;;;;;;IASlDY,KAAK,GAAgB;MAC1BC,YAAY,EAAE,KAAK;MACnBC,WAAW,EAAE,IAAI;MACjBC,eAAe,EAAEf,KAAA,CAAKU,QAAQ,CAAC,CAAC,CAACM;IACnC,CAAC,CAAAhB,KAAA;;;;;;IAMOiB,mBAAmB,GAAG,KAAK,CAAAjB,KAAA;IAC3BkB,SAAS,GAA2B,IAAI,CAAAlB,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgFxCmB,UAAU,GAAG,UAACC,IAAc,EAAEC,KAAa,EAAK;MACtD,IAAMC,OAAO,GAAGtB,KAAA,CAAKuB,cAAc,CAAC,CAAC,KAAKH,IAAI;MAC9C,QAAQA,IAAI;QACV,KAAK,GAAG,CAAE;YACR,IAAMI,GAAG,aAAUH,KAAK,GAAG,CAAC,GAAG,MAAM,GAAG,OAAO,CAAE;YACjD,OAAOrB,KAAA,CAAKyB,UAAU,CAACD,GAAG,CAAC;UAC7B;QACA,KAAK,SAAS,CAAE;YACd,IAAME,QAAQ,GAAG1B,KAAA,CAAK2B,cAAc,CAACP,IAAI,CAAC;YAC1C,OAAOpB,KAAA,CAAK4B,iBAAiB,CAACF,QAAQ,EAAEJ,OAAO,CAAC;UAClD;QACA,QAAS;YACP,IAAMO,MAAM,GAAG7B,KAAA,CAAK8B,KAAK,CAACC,UAAU,KAAKX,IAAI;YAC7C,OAAOpB,KAAA,CAAKgC,cAAc,CAACZ,IAAI,EAAES,MAAM,EAAEP,OAAO,CAAC;UACnD;MACF;IACF,CAAC,CAAAtB,KAAA;;IAEOyB,UAAU,GAAG,UAACD,GAAW,EAAK,KAAAS,GAAA;MACpC;QACEvE,KAAA,CAAAwE,aAAA;UACE,YAAU7C,cAAc,CAACE,IAAK;UAC9BiC,GAAG,EAAEA,GAAI;UACTW,SAAS,EAAE5D,EAAE,CAACK,MAAM,CAACW,IAAI,CAACS,KAAA,CAAKoC,KAAK,CAAC,EAAEpC,KAAA,CAAKqC,cAAc,CAAC9C,IAAI,GAAA0C,GAAA,OAAAA,GAAA;UAC5DrD,MAAM,CAAC0D,YAAY,CAACtC,KAAA,CAAKoC,KAAK,CAAC,IAAGpC,KAAA,CAAK8B,KAAK,CAACJ,QAAQ,EAAAO,GAAA;UACvD,CAAE;;QAEFjC,KAAA,CAAKuC,WAAW,CAAC;QACd,CAAC;;IAEX,CAAC,CAAAvC,KAAA;;IAEO4B,iBAAiB,GAAG,UAACF,QAAiB,EAAEJ,OAAgB,EAAkB,KAAAkB,IAAA;MAChF,IAAMC,UAAU,GAAGlE,EAAE;QACnBK,MAAM,CAACc,QAAQ,CAACM,KAAA,CAAKoC,KAAK,CAAC;QAC3BpC,KAAA,CAAKqC,cAAc,CAAC3C,QAAQ;QAC5Bd,MAAM,CAACY,WAAW,CAACQ,KAAA,CAAKoC,KAAK,CAAC;QAC9BpC,KAAA,CAAKqC,cAAc,CAAC7C,WAAW,GAAAgD,IAAA,OAAAA,IAAA;;QAE5B5D,MAAM,CAAC8D,eAAe,CAAC1C,KAAA,CAAKoC,KAAK,CAAC,IAAGd,OAAO,EAAAkB,IAAA;QAC5C5D,MAAM,CAAC+D,mBAAmB,CAAC3C,KAAA,CAAKoC,KAAK,CAAC,IAAGV,QAAQ,IAAI1B,KAAA,CAAK8B,KAAK,CAACJ,QAAQ,EAAAc,IAAA;;MAE7E,CAAC;MACD,IAAMI,SAAS,GAAG5C,KAAA,CAAKU,QAAQ,CAAC,CAAC,CAACmC,SAAS;MAC3C,IAAQC,OAAO,GAAK9C,KAAA,CAAKhC,MAAM,CAAvB8E,OAAO;;MAEf,IAAMC,WAAW,GAAG/C,KAAA,CAAKgD,cAAc,CAAC,CAAC;;MAEzC;QACEtF,KAAA,CAAAwE,aAAA,CAACU,SAAS,EAAAK,QAAA;UACRzB,GAAG,EAAE,SAAU;UACf,YAAUnC,cAAc,CAACG,WAAY;UACrCqC,MAAM,EAAE,KAAM;UACdM,SAAS,EAAEM,UAAW;UACtBS,OAAO,EAAExB,QAAQ,GAAGxD,YAAY,GAAG8B,KAAA,CAAKmD,SAAU;UAClDC,QAAQ,EAAE,CAAC,CAAE;UACbC,UAAU,EAAE,SAAmB;QAC3B3E,4BAA4B,CAAC,EAAEgD,QAAQ,EAARA,QAAQ,CAAC,CAAC,CAAC;;QAE7C,CAAC1B,KAAA,CAAKsD,QAAQ,KAAKtD,KAAA,CAAK8B,KAAK,CAACyB,OAAO,IAAIT,OAAO,CAAC;QACjDC;QACQ,CAAC;;IAEhB,CAAC,CAAA/C,KAAA;;IAEOgC,cAAc,GAAG,UAACqB,UAAkB,EAAExB,MAAe,EAAEP,OAAgB,EAAkB,KAAAkC,IAAA;MAC/F,IAAM9B,QAAQ,GAAG1B,KAAA,CAAK8B,KAAK,CAACJ,QAAQ;MACpC,IAAMe,UAAU,GAAGlE,EAAE,CAACK,MAAM,CAACc,QAAQ,CAACM,KAAA,CAAKoC,KAAK,CAAC,EAAEpC,KAAA,CAAKqC,cAAc,CAAC3C,QAAQ,GAAA8D,IAAA,OAAAA,IAAA;MAC5E5E,MAAM,CAAC8D,eAAe,CAAC1C,KAAA,CAAKoC,KAAK,CAAC,IAAGd,OAAO,EAAAkC,IAAA;MAC5C5E,MAAM,CAAC6E,gBAAgB,CAACzD,KAAA,CAAKoC,KAAK,CAAC,IAAGV,QAAQ,EAAA8B,IAAA;MAC9C5E,MAAM,CAAC8E,eAAe,CAAC1D,KAAA,CAAKoC,KAAK,CAAC,IAAGP,MAAM,EAAA2B,IAAA;MAC3C5E,MAAM,CAAC+E,uBAAuB,CAAC3D,KAAA,CAAKoC,KAAK,CAAC,IAAGP,MAAM,IAAIH,QAAQ,EAAA8B,IAAA;MACjE,CAAC;MACF,IAAMZ,SAAS,GAAG5C,KAAA,CAAKU,QAAQ,CAAC,CAAC,CAACmC,SAAS;MAC3C,IAAMe,WAAW,GAAG,SAAdA,WAAWA,CAAA,UAAS5D,KAAA,CAAK6D,QAAQ,CAACR,UAAU,CAAC;;MAEnD;QACE3F,KAAA,CAAAwE,aAAA,SAAAe,QAAA;UACE,YAAU5D,cAAc,CAACI,eAAgB;UACzC+B,GAAG,EAAE6B,UAAW;UAChBlB,SAAS,EAAEvD,MAAM,CAACa,eAAe,CAAC,CAAE;QAChCf,4BAA4B,CAAC,EAAEmD,MAAM,EAANA,MAAM,EAAEH,QAAQ,EAARA,QAAQ,CAAC,CAAC,CAAC;UACtDoC,WAAW,EAAE9D,KAAA,CAAK+D,uBAAwB;;QAE1CrG,KAAA,CAAAwE,aAAA,CAACU,SAAS;UACR,YAAUvD,cAAc,CAACK,QAAS;UAClCmC,MAAM,EAAEA,MAAO;UACfM,SAAS,EAAEM,UAAW;UACtBS,OAAO,EAAEU,WAAY;UACrBR,QAAQ,EAAE,CAAC,CAAE;UACbC,UAAU,EAAEA,UAAW;;QAEtBA;QACQ,CAAC;QACXxB,MAAM,IAAI,CAAC7B,KAAA,CAAKsD,QAAQ,IAAItD,KAAA,CAAKgE,oBAAoB,CAAC;QACnD,CAAC;;IAEX,CAAC,CAAAhE,KAAA;;IAEOgE,oBAAoB,GAAG,YAAM;MACnC,IAAIhE,KAAA,CAAK8B,KAAK,CAACmC,qBAAqB,EAAE;QACpC,OAAO,IAAI;MACb;;MAEA,IAAQlD,eAAe,GAAKf,KAAA,CAAKY,KAAK,CAA9BG,eAAe;MACvB,IAAMmD,aAAa,GAAGlE,KAAA,CAAKkE,aAAa,CAAC,CAAC;MAC1C,IAAMC,YAAY,GAAGnE,KAAA,CAAKmE,YAAY,CAAC,CAAC;;MAExC,IAAIC,IAAI,GAAG,IAAI;MACf,IAAIrD,eAAe,KAAKmD,aAAa,IAAIC,YAAY,CAAC,EAAE;QACtDC,IAAI;QACF1G,KAAA,CAAAwE,aAAA,CAAAxE,KAAA,CAAA2G,QAAA;QACE3G,KAAA,CAAAwE,aAAA,WAAMC,SAAS,EAAE+B,aAAa,GAAG,EAAE,GAAGtF,MAAM,CAAC0F,WAAW,CAAC,CAAE,IAAE,GAAU,CAAC;QACxE5G,KAAA,CAAAwE,aAAA,eAAOrD,gBAAgB,CAAC0F,UAAU,CAACvE,KAAA,CAAKoC,KAAK,CAAQ,CAAC;QACtD1E,KAAA,CAAAwE,aAAA,WAAMC,SAAS,EAAEgC,YAAY,GAAG,EAAE,GAAGvF,MAAM,CAAC0F,WAAW,CAAC,CAAE,IAAE,GAAU;QACtE,CACH;;MACH;MACA,oBAAO5G,KAAA,CAAAwE,aAAA,UAAKC,SAAS,EAAEvD,MAAM,CAAC4F,YAAY,CAACxE,KAAA,CAAKoC,KAAK,CAAE,IAAEgC,IAAU,CAAC;IACtE,CAAC,CAAApE,KAAA;;IAEOyE,eAAe,GAAG,YAAM;MAC9BzE,KAAA,CAAK0E,QAAQ,CAAC,EAAE7D,YAAY,EAAE,KAAK,EAAEC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;IAC3D,CAAC,CAAAd,KAAA;;IAEO+D,uBAAuB,GAAG,YAAM;MACtC,IAAI5F,MAAM,EAAE;QACV;QACA;QACAR,YAAY,CAACgH,UAAU,CAAC,oBAAM3E,KAAA,CAAKkB,SAAS,IAAIlB,KAAA,CAAKkB,SAAS,CAAC0D,KAAK,CAAC,CAAC,IAAE,CAAC,CAAC;MAC5E;IACF,CAAC,CAAA5E,KAAA;;IAEO6E,aAAa,GAAG,UAACC,CAAmD,EAAK;MAC/E,IAAIA,CAAC,CAACC,QAAQ,EAAE;QACd;MACF;;MAEA,IAAMC,MAAM,GAAGF,CAAC,CAACE,MAAM;;MAEvB,IAAMC,WAAW,GAAGpH,cAAc,CAACiH,CAAC,CAAC;MACrC,IAAMI,YAAY,GAAGpH,eAAe,CAACgH,CAAC,CAAC;;MAEvC;MACElH,YAAY,CAACoH,MAAM,EAAErH,YAAY,CAACwH,OAAO,CAAC;MACzC/F,iBAAiB,CAACgG,QAAQ,CAACJ,MAAM,CAACK,OAAO,CAACC,WAAW,CAAC,CAAC,CAAC,IAAKN,MAAM,CAAiBO,iBAAiB,CAAC;MACvG;QACA;MACF;;MAEA,IAAI1G,gBAAgB,CAAC2G,eAAe,CAACV,CAAC,EAAE9E,KAAA,CAAKoC,KAAK,CAAC,IAAI6C,WAAW,EAAE;QAClEjF,KAAA,CAAK0E,QAAQ,CAAC,EAAE5D,WAAW,EAAE,IAAI,CAAC,CAAC,EAAEd,KAAA,CAAKyF,UAAU,CAAC;QACrD;MACF;MACA,IAAI5G,gBAAgB,CAAC2G,eAAe,CAACV,CAAC,EAAE9E,KAAA,CAAKoC,KAAK,CAAC,IAAI8C,YAAY,EAAE;QACnElF,KAAA,CAAK0E,QAAQ,CAAC,EAAE5D,WAAW,EAAE,IAAI,CAAC,CAAC,EAAEd,KAAA,CAAKmD,SAAS,CAAC;QACpD;MACF;;MAEA,IAAInD,KAAA,CAAKkB,SAAS,IAAIlB,KAAA,CAAKkB,SAAS,KAAK4D,CAAC,CAACE,MAAM,EAAE;QACjD,IAAIC,WAAW,EAAE;UACfjF,KAAA,CAAK0E,QAAQ,CAAC,EAAE7D,YAAY,EAAE,IAAI,CAAC,CAAC,EAAEb,KAAA,CAAK0F,aAAa,CAAC;UACzD;QACF;QACA,IAAIR,YAAY,EAAE;UAChBlF,KAAA,CAAK0E,QAAQ,CAAC,EAAE7D,YAAY,EAAE,IAAI,CAAC,CAAC,EAAEb,KAAA,CAAK2F,cAAc,CAAC;UAC1D;QACF;QACA,IAAI5H,UAAU,CAAC+G,CAAC,CAAC,EAAE;UACjB9E,KAAA,CAAK4F,iBAAiB,CAAC5F,KAAA,CAAKuB,cAAc,CAAC,CAAC,CAAC;UAC7C;QACF;MACF;IACF,CAAC,CAAAvB,KAAA;;IAEO6F,WAAW,GAAG,YAAM;MAC1B,IAAI7F,KAAA,CAAK8B,KAAK,CAACJ,QAAQ,EAAE;QACvB;MACF;;MAEA1B,KAAA,CAAK0E,QAAQ,CAAC,EAAE3D,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC;;MAExC;MACA;MACApD,YAAY,CAACmI,qBAAqB,YAAlCnI,YAAY,CAACmI,qBAAqB,CAAG,YAAM;QACzC,IAAI7H,WAAW,CAAC8H,YAAY,EAAE;UAC5B/F,KAAA,CAAK0E,QAAQ,CAAC,EAAE7D,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC;QACvC;MACF,CAAC,CAAC;IACJ,CAAC,CAAAb,KAAA;;IAEOgG,UAAU,GAAG,YAAM;MACzBhG,KAAA,CAAK0E,QAAQ,CAAC;QACZ7D,YAAY,EAAE,KAAK;QACnBE,eAAe,EAAEf,KAAA,CAAKU,QAAQ,CAAC,CAAC,CAACM,iBAAiB,IAAI;MACxD,CAAC,CAAC;IACJ,CAAC,CAAAhB,KAAA;;IAEOlB,QAAQ,GAAG,YAAkB;MACnC,OAAOA,QAAQ,CAACkB,KAAA,CAAK8B,KAAK,CAACC,UAAU,EAAE/B,KAAA,CAAK8B,KAAK,CAACmE,UAAU,EAAEjG,KAAA,CAAKsD,QAAQ,CAAC,CAAC7C,MAAM,CAAC,SAAS,CAAC;IAChG,CAAC,CAAAT,KAAA;;IAEOuB,cAAc,GAAG,YAA0B;MACjD,IAAI,CAACvB,KAAA,CAAKY,KAAK,CAACC,YAAY,EAAE;QAC5B,OAAO,IAAI;MACb;;MAEA,IAAQC,WAAW,GAAKd,KAAA,CAAKY,KAAK,CAA1BE,WAAW;MACnB,IAAIA,WAAW,IAAId,KAAA,CAAKlB,QAAQ,CAAC,CAAC,CAACsG,QAAQ,CAACtE,WAAW,CAAC,IAAId,KAAA,CAAKkG,eAAe,CAACpF,WAAW,CAAC,EAAE;QAC7F,OAAOA,WAAW;MACpB;;MAEA,OAAOd,KAAA,CAAK8B,KAAK,CAACC,UAAU;IAC9B,CAAC,CAAA/B,KAAA;;IAEOkG,eAAe,GAAG,UAAC9E,IAAc,EAAK;MAC5C,OAAO,CAACpB,KAAA,CAAK2B,cAAc,CAACP,IAAI,CAAC;IACnC,CAAC,CAAApB,KAAA;;IAEO2B,cAAc,GAAG,UAACP,IAAc,EAAK;MAC3C,QAAQA,IAAI;QACV,KAAK,GAAG;UACN,OAAO,IAAI;QACb,KAAK,SAAS;UACZ,OAAO,CAACpB,KAAA,CAAKmE,YAAY,CAAC,CAAC;QAC7B;UACE,OAAO,KAAK;MAChB;IACF,CAAC,CAAAnE,KAAA;;IAEO4F,iBAAiB,GAAG,UAACxE,IAAwB,EAAK;MACxD,IAAIA,IAAI,KAAK,SAAS,EAAE;QACtBpB,KAAA,CAAKmD,SAAS,CAAC,CAAC;MAClB;MACA,IAAI,OAAO/B,IAAI,KAAK,QAAQ,EAAE;QAC5BpB,KAAA,CAAK6D,QAAQ,CAACzC,IAAI,CAAC;MACrB;IACF,CAAC,CAAApB,KAAA;;IAEO0F,aAAa,GAAG,YAAM;MAC5B1F,KAAA,CAAKmG,SAAS,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC,CAAAnG,KAAA;;IAEO2F,cAAc,GAAG,YAAM;MAC7B3F,KAAA,CAAKmG,SAAS,CAAC,CAAC,CAAC;IACnB,CAAC,CAAAnG,KAAA;;IAEOmG,SAAS,GAAG,UAACC,IAAY,EAAK;MACpC,IAAMtF,WAAW,GAAGd,KAAA,CAAKuB,cAAc,CAAC,CAAC;MACzC,IAAM8E,KAAK,GAAGrG,KAAA,CAAKlB,QAAQ,CAAC,CAAC;MAC7B,IAAIuC,KAAK,GAAGgF,KAAK,CAACC,SAAS,CAAC,UAACC,CAAC,UAAKA,CAAC,KAAKzF,WAAW,GAAC;MACrD,GAAG;QACDO,KAAK,GAAG,CAACA,KAAK,GAAG+E,IAAI,GAAGC,KAAK,CAAClG,MAAM,IAAIkG,KAAK,CAAClG,MAAM;MACtD,CAAC,QAAQ,CAACH,KAAA,CAAKkG,eAAe,CAACG,KAAK,CAAChF,KAAK,CAAC,CAAC;MAC5CrB,KAAA,CAAK0E,QAAQ,CAAC,EAAE5D,WAAW,EAAEuF,KAAK,CAAChF,KAAK,CAAC,CAAC,CAAC,CAAC;IAC9C,CAAC,CAAArB,KAAA;;IAEOkE,aAAa,GAAG,YAAe;MACrC,OAAOlE,KAAA,CAAK8B,KAAK,CAACC,UAAU,GAAG,CAAC;IAClC,CAAC,CAAA/B,KAAA;;IAEOmE,YAAY,GAAG,YAAe;MACpC,OAAOnE,KAAA,CAAK8B,KAAK,CAACC,UAAU,GAAG/B,KAAA,CAAK8B,KAAK,CAACmE,UAAU;IACtD,CAAC,CAAAjG,KAAA;;IAEOyF,UAAU,GAAG,YAAM;MACzBzF,KAAA,CAAK6D,QAAQ,CAAC7D,KAAA,CAAK8B,KAAK,CAACC,UAAU,GAAG,CAAC,CAAC;IAC1C,CAAC,CAAA/B,KAAA;;IAEOmD,SAAS,GAAG,YAAM;MACxBnD,KAAA,CAAK6D,QAAQ,CAAC7D,KAAA,CAAK8B,KAAK,CAACC,UAAU,GAAG,CAAC,CAAC;IAC1C,CAAC,CAAA/B,KAAA;;IAEO6D,QAAQ,GAAG,UAACR,UAAkB,EAAK;MACzC,IAAIA,UAAU,IAAI,CAAC,IAAIA,UAAU,KAAKrD,KAAA,CAAK8B,KAAK,CAACC,UAAU,IAAIsB,UAAU,IAAIrD,KAAA,CAAK8B,KAAK,CAACmE,UAAU,EAAE;QAClGjG,KAAA,CAAK8B,KAAK,CAAC0E,YAAY,CAACnD,UAAU,CAAC;MACrC;IACF,CAAC,CAAArD,KAAA;;IAEOyG,iBAAiB,GAAG,YAAM,KAAAC,qBAAA;MAChC,IAAI1G,KAAA,CAAKiB,mBAAmB,EAAE;QAC5B;MACF;;MAEA,CAAAyF,qBAAA,GAAA/I,YAAY,CAACgJ,QAAQ,aAArBD,qBAAA,CAAuBE,gBAAgB,CAAC,SAAS,EAAE5G,KAAA,CAAK6E,aAAa,CAAC;MACtE7E,KAAA,CAAKiB,mBAAmB,GAAG,IAAI;IACjC,CAAC,CAAAjB,KAAA;;IAEO6G,oBAAoB,GAAG,YAAM;MACnC,IAAI7G,KAAA,CAAKiB,mBAAmB,EAAE,KAAA6F,sBAAA;QAC5B,CAAAA,sBAAA,GAAAnJ,YAAY,CAACgJ,QAAQ,aAArBG,sBAAA,CAAuBC,mBAAmB,CAAC,SAAS,EAAE/G,KAAA,CAAK6E,aAAa,CAAC;;QAEzE7E,KAAA,CAAKiB,mBAAmB,GAAG,KAAK;MAClC;IACF,CAAC,CAAAjB,KAAA;;IAEOgH,YAAY,GAAG,UAACC,OAA+B,EAAK;MAC1DjH,KAAA,CAAKkB,SAAS,GAAG+F,OAAO;IAC1B,CAAC,CAAAjH,KAAA;;IAEOkH,uBAAuB,GAAG,YAA4B;MAC5D,IAAMC,IAAI,GAAGnH,KAAA,CAAKoH,OAAO,CAAC,CAAC;MAC3B,QAAQD,IAAI;QACV,KAAK,QAAQ;UACX,OAAO;YACL7H,IAAI,EAAEV,MAAM,CAACyI,YAAY,CAACrH,KAAA,CAAKoC,KAAK,CAAC;YACrC7C,IAAI,EAAEX,MAAM,CAAC0I,UAAU,CAACtH,KAAA,CAAKoC,KAAK,CAAC;YACnC5C,WAAW,EAAEZ,MAAM,CAAC2I,iBAAiB,CAACvH,KAAA,CAAKoC,KAAK,CAAC;YACjD1C,QAAQ,EAAEd,MAAM,CAAC4I,cAAc,CAACxH,KAAA,CAAKoC,KAAK;UAC5C,CAAC;QACH,KAAK,OAAO;UACV,OAAO;YACL9C,IAAI,EAAEV,MAAM,CAAC6I,WAAW,CAACzH,KAAA,CAAKoC,KAAK,CAAC;YACpC7C,IAAI,EAAEX,MAAM,CAAC8I,SAAS,CAAC1H,KAAA,CAAKoC,KAAK,CAAC;YAClC5C,WAAW,EAAEZ,MAAM,CAAC+I,gBAAgB,CAAC3H,KAAA,CAAKoC,KAAK,CAAC;YAChD1C,QAAQ,EAAEd,MAAM,CAACgJ,aAAa,CAAC5H,KAAA,CAAKoC,KAAK;UAC3C,CAAC;QACH,KAAK,QAAQ;UACX,OAAO;YACL9C,IAAI,EAAEV,MAAM,CAACiJ,YAAY,CAAC7H,KAAA,CAAKoC,KAAK,CAAC;YACrC7C,IAAI,EAAEX,MAAM,CAACkJ,UAAU,CAAC9H,KAAA,CAAKoC,KAAK,CAAC;YACnC5C,WAAW,EAAEQ,KAAA,CAAKsD,QAAQ;YACtB1E,MAAM,CAACmJ,uBAAuB,CAAC/H,KAAA,CAAKoC,KAAK,CAAC;YAC1CxD,MAAM,CAACoJ,iBAAiB,CAAChI,KAAA,CAAKoC,KAAK,CAAC;YACxC1C,QAAQ,EAAEd,MAAM,CAACqJ,cAAc,CAACjI,KAAA,CAAKoC,KAAK;UAC5C,CAAC;QACH,KAAK,OAAO;UACV,OAAO;YACL9C,IAAI,EAAEV,MAAM,CAACsJ,WAAW,CAAClI,KAAA,CAAKoC,KAAK,CAAC;YACpC7C,IAAI,EAAEX,MAAM,CAACuJ,SAAS,CAACnI,KAAA,CAAKoC,KAAK,CAAC;YAClC5C,WAAW,EAAEQ,KAAA,CAAKsD,QAAQ,GAAG1E,MAAM,CAACwJ,sBAAsB,CAACpI,KAAA,CAAKoC,KAAK,CAAC,GAAGxD,MAAM,CAACyJ,gBAAgB,CAACrI,KAAA,CAAKoC,KAAK,CAAC;YAC5G1C,QAAQ,EAAEd,MAAM,CAAC0J,aAAa,CAACtI,KAAA,CAAKoC,KAAK;UAC3C,CAAC;QACH;UACE,MAAM,IAAImG,SAAS,0BAAwBvI,KAAA,CAAK8B,KAAK,CAACqF,IAAI,MAAG,CAAC;MAClE;IACF,CAAC,CAAAnH,KAAA;;IAEOuC,WAAW,GAAG,YAAM;MAC1B,IAAM4E,IAAI,GAAGnH,KAAA,CAAKoH,OAAO,CAAC,CAAC;MAC3B,OAAOD,IAAI,KAAK,QAAQ,GAAG,KAAK,gBAAGzJ,KAAA,CAAAwE,aAAA,CAAC/C,QAAQ,IAACgI,IAAI,EAAEA,IAAK,EAAE,CAAC;IAC7D,CAAC,CAAAnH,KAAA;;IAEOgD,cAAc,GAAG,YAAM;MAC7B,IAAMmE,IAAI,GAAGnH,KAAA,CAAKoH,OAAO,CAAC,CAAC;MAC3B,IAAMoB,QAAQ,GAAGrB,IAAI,KAAK,QAAQ,GAAGsB,QAAQ,CAACzI,KAAA,CAAKoC,KAAK,CAACsG,qBAAqB,CAAC,GAAGvB,IAAI;MACtF,OAAOnH,KAAA,CAAKsD,QAAQ;MAClB5F,KAAA,CAAAwE,aAAA,CAAChD,iBAAiB,IAACiI,IAAI,EAAEqB,QAAS,EAAE,CAAC;;MAErC9K,KAAA,CAAAwE,aAAA,CAACjD,WAAW,IAACkI,IAAI,EAAEqB,QAAS,EAACG,KAAK,EAAE,EAAEC,UAAU,EAAE,CAAC,CAAC,CAAE,EAAE,CACzD;;IACH,CAAC,CAAA5I,KAAA;;IAEOoH,OAAO,GAAG,YAAM;MACtB,IAAIpH,KAAA,CAAK8B,KAAK,CAACqF,IAAI,EAAE;QACnB,OAAOnH,KAAA,CAAKsD,QAAQ,IAAItD,KAAA,CAAK8B,KAAK,CAACqF,IAAI,KAAK,OAAO,GAAG,QAAQ,GAAGnH,KAAA,CAAK8B,KAAK,CAACqF,IAAI;MAClF;;MAEA,IAAM0B,WAAW,GAAGxK,UAAU,CAAC2B,KAAA,CAAKoC,KAAK,EAAE,KAAK,CAAC,GAAG,OAAO,GAAG,QAAQ;MACtE,OAAOpC,KAAA,CAAKsD,QAAQ,IAAIuF,WAAW,KAAK,OAAO,GAAG,QAAQ,GAAGA,WAAW;IAC1E,CAAC,QAAA7I,KAAA,EAAA8I,cAAA,CAAAnJ,MAAA,EAAAI,oBAAA,EAAAJ,MAAA,CAvcaoJ,SAAS,GAAvB,SAAAA,UAAwB1F,UAA8B,EAAW,CAC/D,OAAOA,UAAU,KAAK,SAAS,CACjC,CAAC,KAAA2F,MAAA,GAAArJ,MAAA,CAAAsJ,SAAA,CAAAD,MAAA,CAeME,iBAAiB,GAAxB,SAAAA,kBAAA,EAA2B,CACzB,IAAMlI,iBAAiB,GAAG,IAAI,CAACN,QAAQ,CAAC,CAAC,CAACM,iBAAiB,CAC3D,IAAIA,iBAAiB,EAAE,CACrB,IAAI,CAACyF,iBAAiB,CAAC,CAAC,CAC1B,CACF,CAAC,CAAAuC,MAAA,CAEMG,kBAAkB,GAAzB,SAAAA,mBAA0BC,SAAsB,EAAE,CAChD,IAAMpI,iBAAiB,GAAG,IAAI,CAACN,QAAQ,CAAC,CAAC,CAACM,iBAAiB,CAC3D,IAAI,CAACoI,SAAS,CAACpI,iBAAiB,IAAIA,iBAAiB,EAAE,CACrD,IAAI,CAACyF,iBAAiB,CAAC,CAAC,CAC1B,CAEA,IAAI2C,SAAS,CAACpI,iBAAiB,IAAI,CAACA,iBAAiB,EAAE,CACrD,IAAI,CAAC6F,oBAAoB,CAAC,CAAC,CAC7B,CAEA,IAAIuC,SAAS,CAACpI,iBAAiB,KAAKA,iBAAiB,EAAE,CACrD,IAAI,CAAC0D,QAAQ,CAAC,EACZ3D,eAAe,EAAEC,iBAAiB,CACpC,CAAC,CAAC,CACJ,CACF,CAAC,CAAAgI,MAAA,CAEMK,oBAAoB,GAA3B,SAAAA,qBAAA,EAA8B,CAC5B,IAAI,CAACxC,oBAAoB,CAAC,CAAC,CAC7B,CAAC,CAAAmC,MAAA,CAEMM,MAAM,GAAb,SAAAA,OAAA,EAAgB,KAAAC,MAAA,QACd,IAAI,IAAI,CAACzH,KAAK,CAACmE,UAAU,GAAG,CAAC,EAAE,CAC7B,OAAO,IAAI,CACb,CAEA,oBACEvI,KAAA,CAAAwE,aAAA,CAAC9D,YAAY,CAACoL,QAAQ,QACnB,UAACpH,KAAK,EAAK,CACVmH,MAAI,CAACnH,KAAK,GAAGA,KAAK,CAClB,oBACE1E,KAAA,CAAAwE,aAAA,CAACvD,gBAAgB,QACd,UAAA8K,IAAA,EAAkB,KAAfnG,QAAQ,GAAAmG,IAAA,CAARnG,QAAQ,CACViG,MAAI,CAACjG,QAAQ,GAAGA,QAAQ,IAAIjF,UAAU,CAACkL,MAAI,CAACnH,KAAK,EAAE,KAAK,CAAC,CACzDmH,MAAI,CAAClH,cAAc,GAAGkH,MAAI,CAACrC,uBAAuB,CAAC,CAAC,CACpD,OAAOqC,MAAI,CAACG,UAAU,CAAC,CAAC,CAC1B,CACgB,CAAC,CAEvB,CACqB,CAAC,CAE5B,CAAC,CAAAV,MAAA,CAEOU,UAAU,GAAlB,SAAAA,WAAA,EAAqB,KAAAC,IAAA,CAAAC,MAAA,QACnB,IAAAC,cAAA,GAA8B,IAAI,CAACnJ,QAAQ,CAAC,CAAC,CAArCM,iBAAiB,GAAA6I,cAAA,CAAjB7I,iBAAiB,CACzB,oBACEtD,KAAA,CAAAwE,aAAA,CAAC5D,aAAa,EAAA2E,QAAA,GACZ6G,WAAW,EAAE,IAAI,CAACC,WAAY,IAC1B,IAAI,CAACjI,KAAK,EACVpD,4BAA4B,CAAC,EAAEgD,QAAQ,EAAE,IAAI,CAACI,KAAK,CAACJ,QAAQ,CAAC,CAAC,CAAC,gBAEnEhE,KAAA,CAAAwE,aAAA,WACEkB,QAAQ,EAAE,IAAI,CAACtB,KAAK,CAACJ,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAE,EACvC,YAAUrC,cAAc,CAACC,IAAK,EAC9B6C,SAAS,EAAE5D,EAAE,CAACK,MAAM,CAACoL,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC3H,cAAc,CAAC/C,IAAI,GAAAqK,IAAA,OAAAA,IAAA,CACpD/K,MAAM,CAACqL,YAAY,CAAC,CAAC,IAAG,IAAI,CAAC3G,QAAQ,EAAAqG,IAAA,CACrC/K,MAAM,CAACsL,cAAc,CAAC,CAAC,IAAG,IAAI,CAACpI,KAAK,CAACJ,QAAQ,EAAAiI,IAAA,CAC/C,CAAE,EACHQ,SAAS,EAAEnJ,iBAAiB,GAAGoJ,SAAS,GAAG,IAAI,CAACvF,aAAc,EAC9DwF,OAAO,EAAE,IAAI,CAACxE,WAAY,EAC1ByE,MAAM,EAAE,IAAI,CAACtE,UAAW,EACxBlC,WAAW,EAAE,IAAI,CAACW,eAAgB,EAClC8F,GAAG,EAAE,IAAI,CAACvD,YAAa,IAEtB,IAAI,CAAClI,QAAQ,CAAC,CAAC,CAAC0L,GAAG,CAAC,UAACpJ,IAAI,EAAEC,KAAK,UAAKuI,MAAI,CAACzI,UAAU,CAACC,IAAI,EAAEC,KAAK,CAAC,GAC9D,CACO,CAAC,CAEpB,CAAC,QAAA1B,MAAA,GA3GyBjC,KAAK,CAAC+M,aAAa,GAAA3K,OAAA,CAC/B4K,mBAAmB,GAAG,QAAQ,EAAA5K,OAAA,CAC9B6K,WAAW,GAAG,QAAQ,EAAA7K,OAAA,CAEtBa,YAAY,GAAiB,EACzCkC,SAAS,EAAE7D,sBAAsB,EACjCgC,iBAAiB,EAAE,KAAK,CAC1B,CAAC,EAAAlB,OAAA,MAAAD,MAAA,KAAAA,MAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","globalObject","isInstanceOf","isKeyArrowLeft","isKeyArrowRight","isKeyEnter","locale","keyListener","emptyHandler","isIE11","ThemeContext","isThemeGTE","CommonWrapper","cx","rootNode","createPropsGetter","getVisualStateDataAttributes","ResponsiveLayout","styles","NavigationHelper","getItems","PagingLocaleHelper","PagingDefaultComponent","ForwardIcon","ForwardIconMobile","DotsIcon","IGNORE_EVENT_TAGS","PagingDataTids","root","dots","forwardLink","pageLinkWrapper","pageLink","Paging","_dec","_class","_Paging","_React$PureComponent","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","state","focusedByTab","focusedItem","keyboardControl","useGlobalListener","addedGlobalListener","container","renderItem","item","index","focused","getFocusedItem","key","renderDots","disabled","isItemDisabled","renderForwardLink","active","props","activePage","renderPageLink","_cx","createElement","className","theme","sizeClassNames","dotsDisabled","getDotsIcon","_cx2","classNames","pageLinkFocused","forwardLinkDisabled","Component","component","forward","forwardIcon","getForwardIcon","_extends","onClick","goForward","tabIndex","pageNumber","isMobile","caption","_cx3","pageLinkDisabled","pageLinkCurrent","pageLinkCurrentDisabled","handleClick","goToPage","onMouseDown","handleMouseDownPageLink","renderNavigationHint","withoutNavigationHint","canGoBackward","canGoForward","hint","Fragment","transparent","getKeyName","pageLinkHint","handleMouseDown","setState","setTimeout","focus","handleKeyDown","e","shiftKey","target","isArrowLeft","isArrowRight","Element","includes","tagName","toLowerCase","isContentEditable","checkKeyPressed","goBackward","moveFocusLeft","moveFocusRight","executeItemAction","handleFocus","requestAnimationFrame","isTabPressed","handleBlur","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","iconSize","parseInt","pagingForwardIconSize","style","marginLeft","defaultSize","_inheritsLoose","isForward","_proto","prototype","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","render","_this2","Consumer","_ref","renderMain","_cx4","_this3","_this$getProps","rootNodeRef","setRootNode","paging","pagingMobile","pagingDisabled","onKeyDown","undefined","onFocus","onBlur","ref","map","PureComponent","__KONTUR_REACT_UI__","displayName"],"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":[]}
|
|
@@ -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
|
-
/**
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
onClick: () => void;
|
|
15
|
-
/** Задает номер текущей страницы. */
|
|
9
|
+
/** Определяет, является ли страница текущей. */
|
|
10
|
+
active: boolean;
|
|
11
|
+
/** Номер страницы. */
|
|
16
12
|
pageNumber: number | 'forward';
|
|
17
|
-
/**
|
|
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
|
-
|
|
29
|
-
|
|
30
|
-
* @default 'small'
|
|
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
|
-
* По умолчанию подсказки появляются, когда доступно управление с клавиатуры (либо
|
|
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 {
|
|
@@ -16,11 +16,6 @@ export var SpinnerDataTids = {
|
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
18
|
* `Spinner` — это зацикленный индикатор, не отображающий прогресс выполнения задачи.
|
|
19
|
-
*
|
|
20
|
-
* Используйте `Spinner`, чтобы показать, что система выполняет команду, которую дал пользователь.
|
|
21
|
-
* Не применяйте `Spinner` для заполнения паузы при загрузке контента, для этого предназначен GlobalLoader.
|
|
22
|
-
*
|
|
23
|
-
* Используйте компонент `Spinner`, если вам нужен спиннер, без дополнительного функционала, который предоставляет компонент Loader.
|
|
24
19
|
*/
|
|
25
20
|
export var Spinner = rootNode(_class = (_Spinner = /*#__PURE__*/function (_React$Component) {
|
|
26
21
|
function Spinner() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","ThemeContext","SpinnerIcon","CommonWrapper","cx","rootNode","createPropsGetter","styles","types","SpinnerDataTids","root","Spinner","_class","_Spinner","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","renderSpinner","type","dimmed","inline","_cx","createElement","size","className","circle","theme","props","color","circleDimmedColor","circleWithoutColorAnimation","width","renderCaption","caption","captionColor","_inheritsLoose","_proto","prototype","render","_this2","Consumer","renderMain","_this$props","_this$props$caption","_extends","rootNodeRef","setRootNode","spinner","inner","Component","__KONTUR_REACT_UI__","displayName","Types","Object","assign","map","_ref"],"sources":["Spinner.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { SpinnerIcon } from '../../internal/SpinnerIcon/SpinnerIcon';\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';\n\nimport { styles } from './Spinner.styles';\n\nconst types = ['big', 'mini', 'normal'] as const;\n\nexport type SpinnerType = (typeof types)[number];\n\nexport interface SpinnerProps extends CommonProps {\n
|
|
1
|
+
{"version":3,"names":["React","ThemeContext","SpinnerIcon","CommonWrapper","cx","rootNode","createPropsGetter","styles","types","SpinnerDataTids","root","Spinner","_class","_Spinner","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","renderSpinner","type","dimmed","inline","_cx","createElement","size","className","circle","theme","props","color","circleDimmedColor","circleWithoutColorAnimation","width","renderCaption","caption","captionColor","_inheritsLoose","_proto","prototype","render","_this2","Consumer","renderMain","_this$props","_this$props$caption","_extends","rootNodeRef","setRootNode","spinner","inner","Component","__KONTUR_REACT_UI__","displayName","Types","Object","assign","map","_ref"],"sources":["Spinner.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { SpinnerIcon } from '../../internal/SpinnerIcon/SpinnerIcon';\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';\n\nimport { styles } from './Spinner.styles';\n\nconst types = ['big', 'mini', 'normal'] as const;\n\nexport type SpinnerType = (typeof types)[number];\n\nexport interface SpinnerProps extends CommonProps {\n /**\n * Подпись спиннера\n */\n caption?: React.ReactNode;\n\n /**\n * Размер индикатора и текста\n *\n * @default normal\n */\n type?: SpinnerType;\n\n /**\n * Одноцветный режим. Удобная альтернатива пропа `dimmed`\n */\n color?: React.CSSProperties['color'];\n\n /**\n * Уменьшает размер индикатора для работы в строках. Если задан, то размер индикитора из `type` игнорируется\n *\n * @default false\n */\n inline?: boolean;\n\n /**\n * Толщина индикатора в пикселях.\n *\n * @default 2\n */\n width?: number;\n\n /**\n * Одноцветный режим. Цвет спиннера не переливается. Можно кастомизировать переменной `spinnerDimmedColor`\n *\n * @default false\n */\n dimmed?: boolean;\n}\n\nexport const SpinnerDataTids = {\n root: 'Spinner__root',\n} as const;\n\ntype DefaultProps = Required<Pick<SpinnerProps, 'type'>>;\n\n/**\n * `Spinner` — это зацикленный индикатор, не отображающий прогресс выполнения задачи.\n */\n@rootNode\nexport class Spinner extends React.Component<SpinnerProps> {\n public static __KONTUR_REACT_UI__ = 'Spinner';\n public static displayName = 'Spinner';\n\n public static defaultProps: DefaultProps = {\n type: 'normal',\n };\n\n private getProps = createPropsGetter(Spinner.defaultProps);\n\n public static Types: Record<SpinnerType, SpinnerType> = Object.assign({}, ...types.map((type) => ({ [type]: type })));\n private theme!: Theme;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\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 private renderMain() {\n const { caption = null, dimmed, inline } = this.props;\n const type = this.getProps().type;\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div data-tid={SpinnerDataTids.root} className={styles.spinner()}>\n <span className={styles.inner()}>{this.renderSpinner(type, dimmed, inline)}</span>\n {caption && this.renderCaption(type, caption)}\n </div>\n </CommonWrapper>\n );\n }\n\n private renderSpinner = (type: SpinnerType, dimmed?: boolean, inline?: boolean) => {\n return (\n <SpinnerIcon\n size={type}\n className={cx({\n [styles.circle(this.theme)]: !dimmed && !this.props.color,\n [styles.circleDimmedColor(this.theme)]: dimmed,\n [styles.circleWithoutColorAnimation()]: dimmed || !!this.props.color,\n })}\n dimmed={dimmed}\n width={this.props.width}\n color={this.props.color}\n inline={inline}\n />\n );\n };\n\n private renderCaption = (type: SpinnerType, caption: React.ReactNode) => (\n <span className={cx(styles[type](this.theme), styles.captionColor(this.theme))}>{caption}</span>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|