@skbkontur/react-ui 5.6.7-aa2dc.0 → 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.
Files changed (115) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/cjs/components/Calendar/Calendar.js +2 -31
  3. package/cjs/components/Calendar/Calendar.js.map +1 -1
  4. package/cjs/components/Calendar/CalendarDay.js +2 -2
  5. package/cjs/components/Calendar/CalendarDay.js.map +1 -1
  6. package/cjs/components/Dropdown/Dropdown.d.ts +18 -19
  7. package/cjs/components/Dropdown/Dropdown.js +2 -3
  8. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  9. package/cjs/components/FxInput/FxInput.js +1 -2
  10. package/cjs/components/FxInput/FxInput.js.map +1 -1
  11. package/cjs/components/GlobalLoader/GlobalLoader.d.ts +20 -23
  12. package/cjs/components/GlobalLoader/GlobalLoader.js +4 -7
  13. package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
  14. package/cjs/components/Kebab/Kebab.d.ts +10 -10
  15. package/cjs/components/Kebab/Kebab.js +1 -2
  16. package/cjs/components/Kebab/Kebab.js.map +1 -1
  17. package/cjs/components/Loader/Loader.d.ts +9 -9
  18. package/cjs/components/Loader/Loader.js +3 -3
  19. package/cjs/components/Loader/Loader.js.map +1 -1
  20. package/cjs/components/Paging/Paging.d.ts +23 -22
  21. package/cjs/components/Paging/Paging.js +1 -0
  22. package/cjs/components/Paging/Paging.js.map +1 -1
  23. package/cjs/components/Spinner/Spinner.d.ts +28 -16
  24. package/cjs/components/Spinner/Spinner.js +17 -5
  25. package/cjs/components/Spinner/Spinner.js.map +1 -1
  26. package/cjs/components/Tabs/Indicator.styles.d.ts +1 -0
  27. package/cjs/components/Tabs/Indicator.styles.js +8 -1
  28. package/cjs/components/Tabs/Indicator.styles.js.map +1 -1
  29. package/cjs/components/Tabs/Tab.d.ts +11 -10
  30. package/cjs/components/Tabs/Tab.js +3 -2
  31. package/cjs/components/Tabs/Tab.js.map +1 -1
  32. package/cjs/components/Tabs/Tabs.d.ts +7 -12
  33. package/cjs/components/Tabs/Tabs.js +1 -6
  34. package/cjs/components/Tabs/Tabs.js.map +1 -1
  35. package/cjs/components/Textarea/Textarea.styles.js +2 -3
  36. package/cjs/components/Textarea/Textarea.styles.js.map +1 -1
  37. package/cjs/components/Toast/Toast.d.ts +4 -4
  38. package/cjs/components/Toast/Toast.js +2 -2
  39. package/cjs/components/Toast/Toast.js.map +1 -1
  40. package/cjs/components/Tooltip/Tooltip.d.ts +1 -1
  41. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  42. package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +4 -1
  43. package/cjs/internal/CustomComboBox/ComboBoxView.js +0 -1
  44. package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  45. package/cjs/internal/Menu/Menu.d.ts +1 -2
  46. package/cjs/internal/Menu/Menu.js +0 -1
  47. package/cjs/internal/Menu/Menu.js.map +1 -1
  48. package/cjs/internal/Popup/Popup.d.ts +0 -7
  49. package/cjs/internal/Popup/Popup.js +2 -44
  50. package/cjs/internal/Popup/Popup.js.map +1 -1
  51. package/cjs/internal/Popup/PopupHelper.d.ts +0 -27
  52. package/cjs/internal/Popup/PopupHelper.js +2 -125
  53. package/cjs/internal/Popup/PopupHelper.js.map +1 -1
  54. package/cjs/internal/PopupMenu/PopupMenu.d.ts +3 -7
  55. package/cjs/internal/PopupMenu/PopupMenu.js +0 -4
  56. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  57. package/cjs/internal/themes/BasicTheme.d.ts +1 -0
  58. package/cjs/internal/themes/BasicTheme.js +2 -1
  59. package/cjs/internal/themes/BasicTheme.js.map +1 -1
  60. package/components/Calendar/Calendar/Calendar.js +2 -28
  61. package/components/Calendar/Calendar/Calendar.js.map +1 -1
  62. package/components/Calendar/CalendarDay/CalendarDay.js +1 -1
  63. package/components/Calendar/CalendarDay/CalendarDay.js.map +1 -1
  64. package/components/Dropdown/Dropdown/Dropdown.js +2 -2
  65. package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
  66. package/components/Dropdown/Dropdown.d.ts +18 -19
  67. package/components/FxInput/FxInput/FxInput.js +3 -1
  68. package/components/FxInput/FxInput/FxInput.js.map +1 -1
  69. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js +4 -7
  70. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
  71. package/components/GlobalLoader/GlobalLoader.d.ts +20 -23
  72. package/components/Kebab/Kebab/Kebab.js +1 -2
  73. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  74. package/components/Kebab/Kebab.d.ts +10 -10
  75. package/components/Loader/Loader/Loader.js +3 -3
  76. package/components/Loader/Loader/Loader.js.map +1 -1
  77. package/components/Loader/Loader.d.ts +9 -9
  78. package/components/Paging/Paging/Paging.js.map +1 -1
  79. package/components/Paging/Paging.d.ts +23 -22
  80. package/components/Spinner/Spinner/Spinner.js +0 -5
  81. package/components/Spinner/Spinner/Spinner.js.map +1 -1
  82. package/components/Spinner/Spinner.d.ts +28 -16
  83. package/components/Tabs/Indicator.styles/Indicator.styles.js +4 -1
  84. package/components/Tabs/Indicator.styles/Indicator.styles.js.map +1 -1
  85. package/components/Tabs/Indicator.styles.d.ts +1 -0
  86. package/components/Tabs/Tab/Tab.js +3 -1
  87. package/components/Tabs/Tab/Tab.js.map +1 -1
  88. package/components/Tabs/Tab.d.ts +11 -10
  89. package/components/Tabs/Tabs/Tabs.js +1 -6
  90. package/components/Tabs/Tabs/Tabs.js.map +1 -1
  91. package/components/Tabs/Tabs.d.ts +7 -12
  92. package/components/Textarea/Textarea.styles/Textarea.styles.js +1 -1
  93. package/components/Textarea/Textarea.styles/Textarea.styles.js.map +1 -1
  94. package/components/Toast/Toast/Toast.js +2 -2
  95. package/components/Toast/Toast/Toast.js.map +1 -1
  96. package/components/Toast/Toast.d.ts +4 -4
  97. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  98. package/components/Tooltip/Tooltip.d.ts +1 -1
  99. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +0 -1
  100. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
  101. package/internal/CustomComboBox/ComboBoxView.d.ts +4 -1
  102. package/internal/Menu/Menu/Menu.js.map +1 -1
  103. package/internal/Menu/Menu.d.ts +1 -2
  104. package/internal/Popup/Popup/Popup.js +2 -26
  105. package/internal/Popup/Popup/Popup.js.map +1 -1
  106. package/internal/Popup/Popup.d.ts +0 -7
  107. package/internal/Popup/PopupHelper/PopupHelper.js +1 -114
  108. package/internal/Popup/PopupHelper/PopupHelper.js.map +1 -1
  109. package/internal/Popup/PopupHelper.d.ts +0 -27
  110. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  111. package/internal/PopupMenu/PopupMenu.d.ts +3 -7
  112. package/internal/themes/BasicTheme/BasicTheme.js +2 -0
  113. package/internal/themes/BasicTheme/BasicTheme.js.map +1 -1
  114. package/internal/themes/BasicTheme.d.ts +1 -0
  115. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -3,6 +3,29 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [5.6.8](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.6.7...@skbkontur/react-ui@5.6.8) (2026-03-12)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **Calendar:** show year label only for first month ([0513727](https://github.com/skbkontur/retail-ui/commit/05137279c82a4a77bc4d875e708890117659aac1))
12
+ * **Textarea:** remove min-width ([8941d1b](https://github.com/skbkontur/retail-ui/commit/8941d1ba9f3aa88e53cd9d6fdc2b3bd99606a674))
13
+
14
+
15
+
16
+
17
+
18
+ ## [5.6.7](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.6.6...@skbkontur/react-ui@5.6.7) (2026-03-12)
19
+
20
+
21
+ ### Bug Fixes
22
+
23
+ * **Calendar:** fix color calendar active weekend by figma ([ab605b6](https://github.com/skbkontur/retail-ui/commit/ab605b6b1933cd23fa2cc7553496812f4bdc37cf))
24
+
25
+
26
+
27
+
28
+
6
29
  ## [5.6.6](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.6.5...@skbkontur/react-ui@5.6.6) (2026-02-26)
7
30
 
8
31
 
@@ -205,7 +205,7 @@ Calendar = exports.Calendar = (0, _rootNode.rootNode)(_class = (_Calendar = /*#_
205
205
  * Прокручивает календарь до переданной даты
206
206
  * @public
207
207
  */_this.
208
- scrollToMonth = /*#__PURE__*/function () {var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(month, year) {var monthNative, minDate, maxDate, minMonth, maxMonth, currentMonth, diffInMonths, maxMonthsToAdd, onEnd, isYearChanges, monthsToPrependCount, monthsToPrepend, monthsToAppendCount, monthsToAppend;return _regenerator.default.wrap(function _callee$(_context) {while (1) switch (_context.prev = _context.next) {case 0:
208
+ scrollToMonth = /*#__PURE__*/function () {var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(month, year) {var monthNative, minDate, maxDate, minMonth, maxMonth, currentMonth, diffInMonths, maxMonthsToAdd, onEnd, monthsToPrependCount, monthsToPrepend, monthsToAppendCount, monthsToAppend;return _regenerator.default.wrap(function _callee$(_context) {while (1) switch (_context.prev = _context.next) {case 0:
209
209
  monthNative = CalendarUtils.getMonthInNativeFormat(month);if (!
210
210
 
211
211
  _this.animation.inProgress()) {_context.next = 5;break;}
@@ -246,16 +246,6 @@ Calendar = exports.Calendar = (0, _rootNode.rootNode)(_class = (_Calendar = /*#_
246
246
  });
247
247
  };
248
248
 
249
- isYearChanges = function isYearChanges(state) {
250
- return (
251
- state.months[1].year !== year &&
252
- // if diff in months is 2 or less,
253
- // either year is not changing either months already
254
- // have right isFirstInYear/isLastInYear flags
255
- Math.abs(diffInMonths) > 2);
256
-
257
- };
258
-
259
249
  // If scrolling upwards, prepend maximum maxMonthsToAdd months
260
250
  // and scroll to the first month
261
251
  if (diffInMonths > 0) {
@@ -265,16 +255,6 @@ Calendar = exports.Calendar = (0, _rootNode.rootNode)(_class = (_Calendar = /*#_
265
255
  });
266
256
  _this.setState(
267
257
  function (state) {
268
- var yearChanges = isYearChanges(state);
269
- if (yearChanges) {
270
- // Mutating here can lead to some unexpected bugs
271
- // but we couldn't find any yet
272
- state.months[0].isFirstInYear = true;
273
- if (monthsToPrepend.length) {
274
- // Mutating item here is safe as it was just created
275
- monthsToPrepend[monthsToPrepend.length - 1].isLastInYear = true;
276
- }
277
- }
278
258
  return {
279
259
  months: monthsToPrepend.concat(state.months),
280
260
  scrollPosition: -CalendarUtils.getMonthsHeight(monthsToPrepend, _this.theme)
@@ -296,15 +276,6 @@ Calendar = exports.Calendar = (0, _rootNode.rootNode)(_class = (_Calendar = /*#_
296
276
  });
297
277
  _this.setState(
298
278
  function (state) {
299
- if (isYearChanges(state)) {
300
- // Mutating here can lead to some unexpected bugs
301
- // but we couldn't find any yet
302
- state.months[state.months.length - 1].isLastInYear = true;
303
- // Mutating item here is safe as it was just created
304
- if (monthsToAppend[0]) {
305
- monthsToAppend[0].isFirstInYear = true;
306
- }
307
- }
308
279
  return { months: state.months.concat(monthsToAppend) };
309
280
  },
310
281
  function () {
@@ -312,7 +283,7 @@ Calendar = exports.Calendar = (0, _rootNode.rootNode)(_class = (_Calendar = /*#_
312
283
  _this.scrollTo(targetPosition, onEnd);
313
284
  }
314
285
  );
315
- }case 25:case "end":return _context.stop();}}, _callee);}));return function (_x, _x2) {return _ref.apply(this, arguments);};}();_this.
286
+ }case 24:case "end":return _context.stop();}}, _callee);}));return function (_x, _x2) {return _ref.apply(this, arguments);};}();_this.
316
287
 
317
288
 
318
289
  handleMonthChange = function (visibleMonths) {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_normalizeWheel2","_lodash","_shallowequal","_globalObject","_isInstanceOf","_InternalDate","_rootNode","_Emotion","_CommonWrapper","_constants","_ThemeContext","_animation","_client","_createPropsGetter","_InternalDateTransformer","_config","_MonthViewModel","CalendarScrollEvents","_interopRequireWildcard","_Month","_Calendar2","_CalendarDateShape","CalendarUtils","_CalendarContext","_CalendarDay","_class","_Calendar","CalendarDataTids","exports","root","month","dayCell","headerMonth","headerYear","Calendar","rootNode","_React$Component","props","_this$props$initialYe","_this","call","getProps","createPropsGetter","defaultProps","animation","touchStartY","scrollToMonth","_ref","_asyncToGenerator2","default","_regenerator","mark","_callee","year","monthNative","minDate","maxDate","minMonth","maxMonth","currentMonth","diffInMonths","maxMonthsToAdd","onEnd","isYearChanges","monthsToPrependCount","monthsToPrepend","monthsToAppendCount","monthsToAppend","wrap","_callee$","_context","prev","next","getMonthInNativeFormat","inProgress","finish","Promise","r","globalObject","setTimeout","getDateInNativeFormat","isGreater","create","getMonthInHumanFormat","abrupt","isLess","state","months","scrollTo","themeConfig","theme","MAX_MONTHS_TO_APPEND_ON_SCROLL","setState","getMonths","scrollPosition","Math","abs","min","Array","from","length","_","index","MonthViewModel","yearChanges","isFirstInYear","isLastInYear","concat","getMonthsHeight","targetPosition","getHeight","slice","stop","_x","_x2","apply","arguments","handleMonthChange","visibleMonths","changeInfo","onMonthChange","getViewModel","item","renderMain","monthsForRender","getVisibleMonths","wrapperStyle","height","WRAPPER_HEIGHT","context","value","isHoliday","renderDay","today","getTodayDate","onDateClick","handleDateClick","createElement","CommonWrapper","_extends2","rootNodeRef","setRootNode","ref","refRoot","className","cx","styles","style","wrapper","CalendarContext","Provider","map","renderMonth","separator","element","isMobile","addEventListener","handleTouchStart","throttledHandleTouchMove","handleWheel","passive","removeEventListener","dateShape","InternalDateTransformer","dateToHumanString","onValueChange","handleMonthYearChange","executeAnimations","pixelY","_ref2","calculateScrollPosition","scrollTarget","handleWheelEnd","animate","deltaY","applyDelta","emit","event","isInstanceOf","TouchEvent","clientY","targetTouches","handleTouchMove","changedTouches","throttle","WheelEvent","preventDefault","_normalizeWheel","normalizeWheel","wheelEndTimeout","clearTimeout","scrollToNearestWeek","_this$state","scrollDirection","thresholdHeight","MONTH_TITLE_OFFSET_HEIGHT","DAY_HEIGHT","amount","pos","scrollAmmount","scrollAmount","_ref3","_this$getProps","minDateShape","maxDateShape","initialDate","getInitialDate","date","initialMonth","initialYear","_inheritsLoose2","formatDate","InternalDate","setComponents","toString","withPad","_proto","prototype","componentDidUpdate","prevProps","prevState","_this$props","shallowEqual","parseValue","getComponentsLikeNumber","visibleMonthsModels","prevFirstVisibleMonthModels","prevCurrentMonth","componentWillUnmount","cancel","render","_this2","ThemeContext","Consumer","_ref4","top","Month","key","onMonthYearChange","toNativeFormat","getMonthPositions","positions","i","position","push","_this3","x","filter","_ref5","isMonthVisible","React","Component","__KONTUR_REACT_UI__","displayName","Day","CalendarDay","MIN_DATE","MIN_MONTH","MIN_YEAR","MAX_DATE","MAX_MONTH","MAX_YEAR","_day","isWeekend"],"sources":["Calendar.tsx"],"sourcesContent":["import React from 'react';\nimport normalizeWheel from 'normalize-wheel';\nimport throttle from 'lodash.throttle';\nimport shallowEqual from 'shallowequal';\nimport type { SafeTimer } from '@skbkontur/global-object';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport { InternalDate } from '../../lib/date/InternalDate';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { MAX_DATE, MAX_MONTH, MAX_YEAR, MIN_DATE, MIN_MONTH, MIN_YEAR } from '../../lib/date/constants';\nimport type { Nullable, Range } from '../../typings/utility-types';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { animation } from '../../lib/animation';\nimport { isMobile } from '../../lib/client';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { InternalDateTransformer } from '../../lib/date/InternalDateTransformer';\n\nimport { themeConfig } from './config';\nimport { MonthViewModel } from './MonthViewModel';\nimport * as CalendarScrollEvents from './CalendarScrollEvents';\nimport { Month } from './Month';\nimport { styles } from './Calendar.styles';\nimport type { CalendarDateShape } from './CalendarDateShape';\nimport { create, isGreater, isLess } from './CalendarDateShape';\nimport * as CalendarUtils from './CalendarUtils';\nimport type { CalendarContextProps } from './CalendarContext';\nimport { CalendarContext } from './CalendarContext';\nimport type { CalendarDayProps } from './CalendarDay';\nimport { CalendarDay } from './CalendarDay';\n\nexport interface CalendarProps extends CommonProps {\n /** Задает функцию, которая вызывается при изменении value.\n * @param {string} date - строка в формате `dd.mm.yyyy`. */\n onValueChange?: (date: string) => void;\n\n /** Задает текущую дату в формате `dd.mm.yyyy`. */\n value: Nullable<string>;\n\n /** Задает максимальную возможную дату в формате `dd.mm.yyyy`. */\n maxDate?: string;\n\n /** Задает минимальную возможную дату в формате `dd.mm.yyyy`. */\n minDate?: string;\n\n /** Задает начальную дату периода в формате `dd.mm.yyyy`. */\n periodStartDate?: string;\n\n /** Задает конечную дату периода в формате `dd.mm.yyyy`. */\n periodEndDate?: string;\n\n /** Задает функцию для определения праздничных дней.\n * @default (_day, isWeekend) => isWeekend.\n * @param {string} day - строка в формате `dd.mm.yyyy`.\n * @param {boolean} isWeekend - флаг выходного (суббота или воскресенье).\n * @returns {boolean} `true` для выходного или `false` для рабочего дня. */\n isHoliday?: (day: string, isWeekend: boolean) => boolean;\n\n /** Задает начальный месяц. */\n initialMonth?: Range<1, 13>;\n\n /** Задает начальный год. */\n initialYear?: number;\n\n /** Задает метод отрисовки дат в календаре.\n * @default (props: CalendarDayProps) => <CalendarDay {...props} />\n * @param {CalendarDayProps} props - параметры дня.\n * @returns {ReactElement} элемент, который отрисовывает контент числа месяца. */\n renderDay?: (props: CalendarDayProps) => React.ReactElement;\n\n /** Задает функцию, которая вызывается при каждом изменении месяца.\n * @param {CalendarMonthChangeInfo} changeInfo - информация о изменении отображаемого месяца, где\n * `month: number` - номер текущего отображаемого месяца от 1 до 12,\n * `year: number` - отображаемый год. */\n onMonthChange?: (changeInfo: CalendarMonthChangeInfo) => void;\n}\n\nexport interface CalendarState {\n scrollPosition: number;\n months: MonthViewModel[];\n scrollDirection: number;\n scrollTarget: number;\n}\n\nexport interface CalendarMonthChangeInfo {\n month: number;\n year: number;\n}\n\nexport const CalendarDataTids = {\n root: 'Calendar__root',\n month: 'MonthView__month',\n dayCell: 'DayCellView__root',\n headerMonth: 'MonthView__headerMonth',\n headerYear: 'MonthView__headerYear',\n} as const;\n\ntype DefaultProps = Required<Pick<CalendarProps, 'minDate' | 'maxDate' | 'isHoliday'>>;\n\n/**\n * Компонент календаря `Calendar` из DatePicker'а помогает выбирать дату с помощью мыши.\n */\n@rootNode\nexport class Calendar extends React.Component<CalendarProps, CalendarState> {\n public static __KONTUR_REACT_UI__ = 'Calendar';\n public static displayName = 'Calendar';\n\n public static Day = CalendarDay;\n\n private static formatDate(date: number, month: number, year: number) {\n return new InternalDate().setComponents({ date, month, year }).toString({ withPad: true });\n }\n\n public static defaultProps: DefaultProps = {\n minDate: Calendar.formatDate(MIN_DATE, MIN_MONTH, MIN_YEAR),\n maxDate: Calendar.formatDate(MAX_DATE, MAX_MONTH, MAX_YEAR),\n isHoliday: (_day: string, isWeekend: boolean) => isWeekend,\n };\n\n private getProps = createPropsGetter(Calendar.defaultProps);\n\n private theme!: Theme;\n private wheelEndTimeout: SafeTimer;\n private root: Nullable<HTMLElement>;\n private animation = animation();\n private touchStartY: Nullable<number> = null;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n constructor(props: CalendarProps) {\n super(props);\n\n const { minDate, maxDate, value } = this.getProps();\n\n const minDateShape = this.getDateInNativeFormat(minDate);\n const maxDateShape = this.getDateInNativeFormat(maxDate);\n const dateShape = this.getDateInNativeFormat(value);\n\n const today = CalendarUtils.getTodayDate();\n const initialDate = CalendarUtils.getInitialDate({\n today,\n date: dateShape,\n minDate: minDateShape,\n maxDate: maxDateShape,\n });\n\n const initialMonth = this.props.initialMonth\n ? CalendarUtils.getMonthInNativeFormat(this.props.initialMonth)\n : initialDate.month;\n const initialYear = this.props.initialYear ?? initialDate.year;\n\n this.state = {\n scrollPosition: 0,\n months: CalendarUtils.getMonths(initialMonth, initialYear),\n scrollDirection: 1,\n scrollTarget: 0,\n };\n }\n\n public componentDidUpdate(prevProps: Readonly<CalendarProps>, prevState: Readonly<CalendarState>): void {\n const { value, onMonthChange } = this.props;\n if (value && !shallowEqual(value, prevProps.value)) {\n const date = new InternalDate().parseValue(value).getComponentsLikeNumber();\n this.scrollToMonth(date.month, date.year);\n }\n\n if (onMonthChange) {\n const visibleMonthsModels = this.getVisibleMonths(this.state).map(this.getViewModel);\n const prevFirstVisibleMonthModels = this.getVisibleMonths(prevState).map(this.getViewModel);\n\n if (visibleMonthsModels.length > 0 && prevFirstVisibleMonthModels.length > 0) {\n const currentMonth = visibleMonthsModels[0].month;\n const prevCurrentMonth = prevFirstVisibleMonthModels[0].month;\n\n if (currentMonth !== prevCurrentMonth) {\n this.handleMonthChange(visibleMonthsModels);\n }\n }\n }\n }\n\n public componentWillUnmount() {\n if (this.animation.inProgress()) {\n this.animation.cancel();\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * Прокручивает календарь до переданной даты\n * @public\n */\n public scrollToMonth = async (month: number, year: number) => {\n const monthNative = CalendarUtils.getMonthInNativeFormat(month);\n\n if (this.animation.inProgress()) {\n this.animation.finish();\n // FIXME: Dirty hack to await batched updates\n await new Promise((r) => globalObject.setTimeout(r, 0));\n }\n\n const minDate = this.getDateInNativeFormat(this.getProps().minDate);\n const maxDate = this.getDateInNativeFormat(this.getProps().maxDate);\n\n if (minDate && isGreater(minDate, create(32, monthNative, year))) {\n const minMonth = CalendarUtils.getMonthInHumanFormat(minDate.month);\n this.scrollToMonth(minMonth, minDate.year);\n return;\n }\n\n if (maxDate && isLess(maxDate, create(0, monthNative, year))) {\n const maxMonth = CalendarUtils.getMonthInHumanFormat(maxDate.month);\n this.scrollToMonth(maxMonth, maxDate.year);\n return;\n }\n\n const currentMonth = this.state.months[1];\n const diffInMonths = currentMonth.month + currentMonth.year * 12 - monthNative - year * 12;\n\n if (diffInMonths === 0) {\n this.scrollTo(0);\n return;\n }\n\n const maxMonthsToAdd = themeConfig(this.theme).MAX_MONTHS_TO_APPEND_ON_SCROLL;\n\n const onEnd = () => {\n this.setState({\n months: CalendarUtils.getMonths(monthNative, year),\n scrollPosition: 0,\n });\n };\n\n const isYearChanges = (state: CalendarState) => {\n return (\n state.months[1].year !== year &&\n // if diff in months is 2 or less,\n // either year is not changing either months already\n // have right isFirstInYear/isLastInYear flags\n Math.abs(diffInMonths) > 2\n );\n };\n\n // If scrolling upwards, prepend maximum maxMonthsToAdd months\n // and scroll to the first month\n if (diffInMonths > 0) {\n const monthsToPrependCount = Math.min(Math.abs(diffInMonths) - 1, maxMonthsToAdd);\n const monthsToPrepend = Array.from({ length: monthsToPrependCount }, (_, index) => {\n return MonthViewModel.create(monthNative + index, year);\n });\n this.setState(\n (state) => {\n const yearChanges = isYearChanges(state);\n if (yearChanges) {\n // Mutating here can lead to some unexpected bugs\n // but we couldn't find any yet\n state.months[0].isFirstInYear = true;\n if (monthsToPrepend.length) {\n // Mutating item here is safe as it was just created\n monthsToPrepend[monthsToPrepend.length - 1].isLastInYear = true;\n }\n }\n return {\n months: monthsToPrepend.concat(state.months),\n scrollPosition: -CalendarUtils.getMonthsHeight(monthsToPrepend, this.theme),\n };\n },\n () => {\n const targetPosition = this.state.months[0].getHeight(this.theme);\n this.scrollTo(targetPosition, onEnd);\n },\n );\n }\n\n // If scrolling downwards, append maximum maxMonthsToAdd months\n // and scroll to the last but one month\n if (diffInMonths < 0) {\n const monthsToAppendCount = Math.min(Math.abs(diffInMonths), maxMonthsToAdd);\n const monthsToAppend = Array.from({ length: monthsToAppendCount }, (_, index) => {\n return MonthViewModel.create(monthNative + index - monthsToAppendCount + 2, year);\n });\n this.setState(\n (state) => {\n if (isYearChanges(state)) {\n // Mutating here can lead to some unexpected bugs\n // but we couldn't find any yet\n state.months[state.months.length - 1].isLastInYear = true;\n // Mutating item here is safe as it was just created\n if (monthsToAppend[0]) {\n monthsToAppend[0].isFirstInYear = true;\n }\n }\n return { months: state.months.concat(monthsToAppend) };\n },\n () => {\n const targetPosition = -1 * CalendarUtils.getMonthsHeight(this.state.months.slice(1, -2), this.theme);\n this.scrollTo(targetPosition, onEnd);\n },\n );\n }\n };\n\n private handleMonthChange = (visibleMonths: MonthViewModel[]): void => {\n const currentMonth = visibleMonths[0];\n const changeInfo = {\n month: CalendarUtils.getMonthInHumanFormat(currentMonth.month),\n year: currentMonth.year,\n };\n\n this.props.onMonthChange?.(changeInfo);\n };\n\n private getViewModel = (item: [number, MonthViewModel]): MonthViewModel => item[1];\n\n private renderMain = () => {\n const monthsForRender = this.getVisibleMonths(this.state);\n const wrapperStyle = { height: themeConfig(this.theme).WRAPPER_HEIGHT };\n\n const props = this.getProps();\n\n const context: CalendarContextProps = {\n value: this.getDateInNativeFormat(props.value),\n minDate: this.getDateInNativeFormat(props.minDate),\n maxDate: this.getDateInNativeFormat(props.maxDate),\n isHoliday: props.isHoliday,\n renderDay: props.renderDay,\n today: CalendarUtils.getTodayDate(),\n onDateClick: this.handleDateClick,\n };\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...props}>\n <div ref={this.refRoot} data-tid={CalendarDataTids.root} className={cx(styles.root(this.theme))}>\n <div style={wrapperStyle} className={styles.wrapper()}>\n <CalendarContext.Provider value={context}>\n {monthsForRender.map(this.renderMonth, this)}\n </CalendarContext.Provider>\n </div>\n <div className={styles.separator(this.theme)} />\n </div>\n </CommonWrapper>\n );\n };\n\n private refRoot = (element: HTMLElement | null) => {\n if (!this.root && element) {\n if (isMobile) {\n element.addEventListener('touchstart', this.handleTouchStart);\n element.addEventListener('touchmove', this.throttledHandleTouchMove);\n } else {\n element.addEventListener('wheel', this.handleWheel, { passive: false });\n }\n }\n if (this.root && !element) {\n if (isMobile) {\n this.root.removeEventListener('touchstart', this.handleTouchStart);\n this.root.removeEventListener('touchmove', this.throttledHandleTouchMove);\n } else {\n this.root.removeEventListener('wheel', this.handleWheel);\n }\n }\n this.root = element;\n };\n\n private renderMonth([top, month]: [number, MonthViewModel]) {\n return (\n <Month\n key={month.month + '-' + month.year}\n top={top}\n month={month}\n onMonthYearChange={this.handleMonthYearChange}\n />\n );\n }\n\n private handleDateClick = (dateShape: CalendarDateShape) => {\n const value = InternalDateTransformer.dateToHumanString(dateShape);\n\n this.props.onValueChange?.(value);\n };\n\n private getDateInNativeFormat(date: Nullable<string>) {\n return new InternalDate().parseValue(date).toNativeFormat();\n }\n\n private getMonthPositions(months: MonthViewModel[], scrollPosition: number) {\n const positions = [scrollPosition - months[0].getHeight(this.theme)];\n for (let i = 1; i < months.length; i++) {\n const position = positions[i - 1] + months[i - 1].getHeight(this.theme);\n positions.push(position);\n }\n return positions;\n }\n\n private getVisibleMonths(state: Readonly<CalendarState>): Array<[number, MonthViewModel]> {\n const { months, scrollPosition } = state;\n const positions = this.getMonthPositions(months, scrollPosition);\n\n return months\n .map<[number, MonthViewModel]>((x, i) => [positions[i], x])\n .filter(([top, month]) => CalendarUtils.isMonthVisible(top, month, this.theme));\n }\n\n private handleMonthYearChange = (monthNative: number, year: number) => {\n const month = CalendarUtils.getMonthInHumanFormat(monthNative);\n this.scrollToMonth(month, year);\n };\n\n private executeAnimations = (pixelY: number) => {\n this.setState(({ months, scrollPosition }) => {\n const targetPosition = CalendarUtils.calculateScrollPosition(\n months,\n scrollPosition,\n pixelY,\n this.theme,\n ).scrollPosition;\n return { scrollTarget: targetPosition };\n }, this.handleWheelEnd);\n\n this.animation.animate(pixelY, (deltaY) => {\n // FIXME: Typescript not resolving setState cb type\n this.setState(CalendarUtils.applyDelta(deltaY, this.theme) as any);\n });\n\n CalendarScrollEvents.emit();\n };\n\n private handleTouchStart = (event: Event) => {\n if (!isInstanceOf(event, globalObject.TouchEvent)) {\n return;\n }\n\n const clientY = event.targetTouches[0].clientY;\n this.touchStartY = clientY;\n };\n\n private handleTouchMove = (event: Event) => {\n if (!isInstanceOf(event, globalObject.TouchEvent)) {\n return;\n }\n\n const { clientY } = event.changedTouches[0];\n\n const deltaY = (this.touchStartY || 0) - clientY;\n this.touchStartY = clientY;\n\n this.executeAnimations(deltaY);\n };\n\n private throttledHandleTouchMove = throttle(this.handleTouchMove, 10);\n\n private handleWheel = (event: Event) => {\n if (!isInstanceOf(event, globalObject.WheelEvent)) {\n return;\n }\n event.preventDefault();\n const { pixelY } = normalizeWheel(event);\n\n this.executeAnimations(pixelY);\n };\n\n private handleWheelEnd = () => {\n if (this.wheelEndTimeout) {\n globalObject.clearTimeout(this.wheelEndTimeout);\n }\n this.wheelEndTimeout = globalObject.setTimeout(this.scrollToNearestWeek, 300);\n };\n private scrollToNearestWeek = () => {\n const { scrollTarget, scrollDirection } = this.state;\n\n const thresholdHeight = themeConfig(this.theme).MONTH_TITLE_OFFSET_HEIGHT + themeConfig(this.theme).DAY_HEIGHT;\n\n if (scrollTarget < thresholdHeight) {\n let targetPosition = 0;\n if (scrollDirection < 0) {\n targetPosition = thresholdHeight;\n }\n\n this.setState({ scrollTarget: targetPosition }, () => {\n const amount = scrollTarget - targetPosition;\n this.animation.animate(amount, (deltaY) => {\n // FIXME: Typescript not resolving setState cb type\n this.setState(CalendarUtils.applyDelta(deltaY, this.theme) as any);\n });\n });\n }\n };\n\n private scrollTo = (pos: number, onEnd?: () => void) => {\n const scrollAmmount = pos - this.state.scrollPosition;\n return this.scrollAmount(scrollAmmount, onEnd);\n };\n\n private scrollAmount = (scrollAmmount: number, onEnd?: () => void) => {\n return this.animation.animate(\n scrollAmmount,\n (deltaY) => {\n this.setState(({ scrollPosition }) => ({\n scrollPosition: scrollPosition + deltaY,\n }));\n },\n onEnd,\n );\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_normalizeWheel2","_lodash","_shallowequal","_globalObject","_isInstanceOf","_InternalDate","_rootNode","_Emotion","_CommonWrapper","_constants","_ThemeContext","_animation","_client","_createPropsGetter","_InternalDateTransformer","_config","_MonthViewModel","CalendarScrollEvents","_interopRequireWildcard","_Month","_Calendar2","_CalendarDateShape","CalendarUtils","_CalendarContext","_CalendarDay","_class","_Calendar","CalendarDataTids","exports","root","month","dayCell","headerMonth","headerYear","Calendar","rootNode","_React$Component","props","_this$props$initialYe","_this","call","getProps","createPropsGetter","defaultProps","animation","touchStartY","scrollToMonth","_ref","_asyncToGenerator2","default","_regenerator","mark","_callee","year","monthNative","minDate","maxDate","minMonth","maxMonth","currentMonth","diffInMonths","maxMonthsToAdd","onEnd","monthsToPrependCount","monthsToPrepend","monthsToAppendCount","monthsToAppend","wrap","_callee$","_context","prev","next","getMonthInNativeFormat","inProgress","finish","Promise","r","globalObject","setTimeout","getDateInNativeFormat","isGreater","create","getMonthInHumanFormat","abrupt","isLess","state","months","scrollTo","themeConfig","theme","MAX_MONTHS_TO_APPEND_ON_SCROLL","setState","getMonths","scrollPosition","Math","min","abs","Array","from","length","_","index","MonthViewModel","concat","getMonthsHeight","targetPosition","getHeight","slice","stop","_x","_x2","apply","arguments","handleMonthChange","visibleMonths","changeInfo","onMonthChange","getViewModel","item","renderMain","monthsForRender","getVisibleMonths","wrapperStyle","height","WRAPPER_HEIGHT","context","value","isHoliday","renderDay","today","getTodayDate","onDateClick","handleDateClick","createElement","CommonWrapper","_extends2","rootNodeRef","setRootNode","ref","refRoot","className","cx","styles","style","wrapper","CalendarContext","Provider","map","renderMonth","separator","element","isMobile","addEventListener","handleTouchStart","throttledHandleTouchMove","handleWheel","passive","removeEventListener","dateShape","InternalDateTransformer","dateToHumanString","onValueChange","handleMonthYearChange","executeAnimations","pixelY","_ref2","calculateScrollPosition","scrollTarget","handleWheelEnd","animate","deltaY","applyDelta","emit","event","isInstanceOf","TouchEvent","clientY","targetTouches","handleTouchMove","changedTouches","throttle","WheelEvent","preventDefault","_normalizeWheel","normalizeWheel","wheelEndTimeout","clearTimeout","scrollToNearestWeek","_this$state","scrollDirection","thresholdHeight","MONTH_TITLE_OFFSET_HEIGHT","DAY_HEIGHT","amount","pos","scrollAmmount","scrollAmount","_ref3","_this$getProps","minDateShape","maxDateShape","initialDate","getInitialDate","date","initialMonth","initialYear","_inheritsLoose2","formatDate","InternalDate","setComponents","toString","withPad","_proto","prototype","componentDidUpdate","prevProps","prevState","_this$props","shallowEqual","parseValue","getComponentsLikeNumber","visibleMonthsModels","prevFirstVisibleMonthModels","prevCurrentMonth","componentWillUnmount","cancel","render","_this2","ThemeContext","Consumer","_ref4","top","Month","key","onMonthYearChange","toNativeFormat","getMonthPositions","positions","i","position","push","_this3","x","filter","_ref5","isMonthVisible","React","Component","__KONTUR_REACT_UI__","displayName","Day","CalendarDay","MIN_DATE","MIN_MONTH","MIN_YEAR","MAX_DATE","MAX_MONTH","MAX_YEAR","_day","isWeekend"],"sources":["Calendar.tsx"],"sourcesContent":["import React from 'react';\nimport normalizeWheel from 'normalize-wheel';\nimport throttle from 'lodash.throttle';\nimport shallowEqual from 'shallowequal';\nimport type { SafeTimer } from '@skbkontur/global-object';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport { InternalDate } from '../../lib/date/InternalDate';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { MAX_DATE, MAX_MONTH, MAX_YEAR, MIN_DATE, MIN_MONTH, MIN_YEAR } from '../../lib/date/constants';\nimport type { Nullable, Range } from '../../typings/utility-types';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { animation } from '../../lib/animation';\nimport { isMobile } from '../../lib/client';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { InternalDateTransformer } from '../../lib/date/InternalDateTransformer';\n\nimport { themeConfig } from './config';\nimport { MonthViewModel } from './MonthViewModel';\nimport * as CalendarScrollEvents from './CalendarScrollEvents';\nimport { Month } from './Month';\nimport { styles } from './Calendar.styles';\nimport type { CalendarDateShape } from './CalendarDateShape';\nimport { create, isGreater, isLess } from './CalendarDateShape';\nimport * as CalendarUtils from './CalendarUtils';\nimport type { CalendarContextProps } from './CalendarContext';\nimport { CalendarContext } from './CalendarContext';\nimport type { CalendarDayProps } from './CalendarDay';\nimport { CalendarDay } from './CalendarDay';\n\nexport interface CalendarProps extends CommonProps {\n /** Задает функцию, которая вызывается при изменении value.\n * @param {string} date - строка в формате `dd.mm.yyyy`. */\n onValueChange?: (date: string) => void;\n\n /** Задает текущую дату в формате `dd.mm.yyyy`. */\n value: Nullable<string>;\n\n /** Задает максимальную возможную дату в формате `dd.mm.yyyy`. */\n maxDate?: string;\n\n /** Задает минимальную возможную дату в формате `dd.mm.yyyy`. */\n minDate?: string;\n\n /** Задает начальную дату периода в формате `dd.mm.yyyy`. */\n periodStartDate?: string;\n\n /** Задает конечную дату периода в формате `dd.mm.yyyy`. */\n periodEndDate?: string;\n\n /** Задает функцию для определения праздничных дней.\n * @default (_day, isWeekend) => isWeekend.\n * @param {string} day - строка в формате `dd.mm.yyyy`.\n * @param {boolean} isWeekend - флаг выходного (суббота или воскресенье).\n * @returns {boolean} `true` для выходного или `false` для рабочего дня. */\n isHoliday?: (day: string, isWeekend: boolean) => boolean;\n\n /** Задает начальный месяц. */\n initialMonth?: Range<1, 13>;\n\n /** Задает начальный год. */\n initialYear?: number;\n\n /** Задает метод отрисовки дат в календаре.\n * @default (props: CalendarDayProps) => <CalendarDay {...props} />\n * @param {CalendarDayProps} props - параметры дня.\n * @returns {ReactElement} элемент, который отрисовывает контент числа месяца. */\n renderDay?: (props: CalendarDayProps) => React.ReactElement;\n\n /** Задает функцию, которая вызывается при каждом изменении месяца.\n * @param {CalendarMonthChangeInfo} changeInfo - информация о изменении отображаемого месяца, где\n * `month: number` - номер текущего отображаемого месяца от 1 до 12,\n * `year: number` - отображаемый год. */\n onMonthChange?: (changeInfo: CalendarMonthChangeInfo) => void;\n}\n\nexport interface CalendarState {\n scrollPosition: number;\n months: MonthViewModel[];\n scrollDirection: number;\n scrollTarget: number;\n}\n\nexport interface CalendarMonthChangeInfo {\n month: number;\n year: number;\n}\n\nexport const CalendarDataTids = {\n root: 'Calendar__root',\n month: 'MonthView__month',\n dayCell: 'DayCellView__root',\n headerMonth: 'MonthView__headerMonth',\n headerYear: 'MonthView__headerYear',\n} as const;\n\ntype DefaultProps = Required<Pick<CalendarProps, 'minDate' | 'maxDate' | 'isHoliday'>>;\n\n/**\n * Компонент календаря `Calendar` из DatePicker'а помогает выбирать дату с помощью мыши.\n */\n@rootNode\nexport class Calendar extends React.Component<CalendarProps, CalendarState> {\n public static __KONTUR_REACT_UI__ = 'Calendar';\n public static displayName = 'Calendar';\n\n public static Day = CalendarDay;\n\n private static formatDate(date: number, month: number, year: number) {\n return new InternalDate().setComponents({ date, month, year }).toString({ withPad: true });\n }\n\n public static defaultProps: DefaultProps = {\n minDate: Calendar.formatDate(MIN_DATE, MIN_MONTH, MIN_YEAR),\n maxDate: Calendar.formatDate(MAX_DATE, MAX_MONTH, MAX_YEAR),\n isHoliday: (_day: string, isWeekend: boolean) => isWeekend,\n };\n\n private getProps = createPropsGetter(Calendar.defaultProps);\n\n private theme!: Theme;\n private wheelEndTimeout: SafeTimer;\n private root: Nullable<HTMLElement>;\n private animation = animation();\n private touchStartY: Nullable<number> = null;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n constructor(props: CalendarProps) {\n super(props);\n\n const { minDate, maxDate, value } = this.getProps();\n\n const minDateShape = this.getDateInNativeFormat(minDate);\n const maxDateShape = this.getDateInNativeFormat(maxDate);\n const dateShape = this.getDateInNativeFormat(value);\n\n const today = CalendarUtils.getTodayDate();\n const initialDate = CalendarUtils.getInitialDate({\n today,\n date: dateShape,\n minDate: minDateShape,\n maxDate: maxDateShape,\n });\n\n const initialMonth = this.props.initialMonth\n ? CalendarUtils.getMonthInNativeFormat(this.props.initialMonth)\n : initialDate.month;\n const initialYear = this.props.initialYear ?? initialDate.year;\n\n this.state = {\n scrollPosition: 0,\n months: CalendarUtils.getMonths(initialMonth, initialYear),\n scrollDirection: 1,\n scrollTarget: 0,\n };\n }\n\n public componentDidUpdate(prevProps: Readonly<CalendarProps>, prevState: Readonly<CalendarState>): void {\n const { value, onMonthChange } = this.props;\n if (value && !shallowEqual(value, prevProps.value)) {\n const date = new InternalDate().parseValue(value).getComponentsLikeNumber();\n this.scrollToMonth(date.month, date.year);\n }\n\n if (onMonthChange) {\n const visibleMonthsModels = this.getVisibleMonths(this.state).map(this.getViewModel);\n const prevFirstVisibleMonthModels = this.getVisibleMonths(prevState).map(this.getViewModel);\n\n if (visibleMonthsModels.length > 0 && prevFirstVisibleMonthModels.length > 0) {\n const currentMonth = visibleMonthsModels[0].month;\n const prevCurrentMonth = prevFirstVisibleMonthModels[0].month;\n\n if (currentMonth !== prevCurrentMonth) {\n this.handleMonthChange(visibleMonthsModels);\n }\n }\n }\n }\n\n public componentWillUnmount() {\n if (this.animation.inProgress()) {\n this.animation.cancel();\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * Прокручивает календарь до переданной даты\n * @public\n */\n public scrollToMonth = async (month: number, year: number) => {\n const monthNative = CalendarUtils.getMonthInNativeFormat(month);\n\n if (this.animation.inProgress()) {\n this.animation.finish();\n // FIXME: Dirty hack to await batched updates\n await new Promise((r) => globalObject.setTimeout(r, 0));\n }\n\n const minDate = this.getDateInNativeFormat(this.getProps().minDate);\n const maxDate = this.getDateInNativeFormat(this.getProps().maxDate);\n\n if (minDate && isGreater(minDate, create(32, monthNative, year))) {\n const minMonth = CalendarUtils.getMonthInHumanFormat(minDate.month);\n this.scrollToMonth(minMonth, minDate.year);\n return;\n }\n\n if (maxDate && isLess(maxDate, create(0, monthNative, year))) {\n const maxMonth = CalendarUtils.getMonthInHumanFormat(maxDate.month);\n this.scrollToMonth(maxMonth, maxDate.year);\n return;\n }\n\n const currentMonth = this.state.months[1];\n const diffInMonths = currentMonth.month + currentMonth.year * 12 - monthNative - year * 12;\n\n if (diffInMonths === 0) {\n this.scrollTo(0);\n return;\n }\n\n const maxMonthsToAdd = themeConfig(this.theme).MAX_MONTHS_TO_APPEND_ON_SCROLL;\n\n const onEnd = () => {\n this.setState({\n months: CalendarUtils.getMonths(monthNative, year),\n scrollPosition: 0,\n });\n };\n\n // If scrolling upwards, prepend maximum maxMonthsToAdd months\n // and scroll to the first month\n if (diffInMonths > 0) {\n const monthsToPrependCount = Math.min(Math.abs(diffInMonths) - 1, maxMonthsToAdd);\n const monthsToPrepend = Array.from({ length: monthsToPrependCount }, (_, index) => {\n return MonthViewModel.create(monthNative + index, year);\n });\n this.setState(\n (state) => {\n return {\n months: monthsToPrepend.concat(state.months),\n scrollPosition: -CalendarUtils.getMonthsHeight(monthsToPrepend, this.theme),\n };\n },\n () => {\n const targetPosition = this.state.months[0].getHeight(this.theme);\n this.scrollTo(targetPosition, onEnd);\n },\n );\n }\n\n // If scrolling downwards, append maximum maxMonthsToAdd months\n // and scroll to the last but one month\n if (diffInMonths < 0) {\n const monthsToAppendCount = Math.min(Math.abs(diffInMonths), maxMonthsToAdd);\n const monthsToAppend = Array.from({ length: monthsToAppendCount }, (_, index) => {\n return MonthViewModel.create(monthNative + index - monthsToAppendCount + 2, year);\n });\n this.setState(\n (state) => {\n return { months: state.months.concat(monthsToAppend) };\n },\n () => {\n const targetPosition = -1 * CalendarUtils.getMonthsHeight(this.state.months.slice(1, -2), this.theme);\n this.scrollTo(targetPosition, onEnd);\n },\n );\n }\n };\n\n private handleMonthChange = (visibleMonths: MonthViewModel[]): void => {\n const currentMonth = visibleMonths[0];\n const changeInfo = {\n month: CalendarUtils.getMonthInHumanFormat(currentMonth.month),\n year: currentMonth.year,\n };\n\n this.props.onMonthChange?.(changeInfo);\n };\n\n private getViewModel = (item: [number, MonthViewModel]): MonthViewModel => item[1];\n\n private renderMain = () => {\n const monthsForRender = this.getVisibleMonths(this.state);\n const wrapperStyle = { height: themeConfig(this.theme).WRAPPER_HEIGHT };\n\n const props = this.getProps();\n\n const context: CalendarContextProps = {\n value: this.getDateInNativeFormat(props.value),\n minDate: this.getDateInNativeFormat(props.minDate),\n maxDate: this.getDateInNativeFormat(props.maxDate),\n isHoliday: props.isHoliday,\n renderDay: props.renderDay,\n today: CalendarUtils.getTodayDate(),\n onDateClick: this.handleDateClick,\n };\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...props}>\n <div ref={this.refRoot} data-tid={CalendarDataTids.root} className={cx(styles.root(this.theme))}>\n <div style={wrapperStyle} className={styles.wrapper()}>\n <CalendarContext.Provider value={context}>\n {monthsForRender.map(this.renderMonth, this)}\n </CalendarContext.Provider>\n </div>\n <div className={styles.separator(this.theme)} />\n </div>\n </CommonWrapper>\n );\n };\n\n private refRoot = (element: HTMLElement | null) => {\n if (!this.root && element) {\n if (isMobile) {\n element.addEventListener('touchstart', this.handleTouchStart);\n element.addEventListener('touchmove', this.throttledHandleTouchMove);\n } else {\n element.addEventListener('wheel', this.handleWheel, { passive: false });\n }\n }\n if (this.root && !element) {\n if (isMobile) {\n this.root.removeEventListener('touchstart', this.handleTouchStart);\n this.root.removeEventListener('touchmove', this.throttledHandleTouchMove);\n } else {\n this.root.removeEventListener('wheel', this.handleWheel);\n }\n }\n this.root = element;\n };\n\n private renderMonth([top, month]: [number, MonthViewModel]) {\n return (\n <Month\n key={month.month + '-' + month.year}\n top={top}\n month={month}\n onMonthYearChange={this.handleMonthYearChange}\n />\n );\n }\n\n private handleDateClick = (dateShape: CalendarDateShape) => {\n const value = InternalDateTransformer.dateToHumanString(dateShape);\n\n this.props.onValueChange?.(value);\n };\n\n private getDateInNativeFormat(date: Nullable<string>) {\n return new InternalDate().parseValue(date).toNativeFormat();\n }\n\n private getMonthPositions(months: MonthViewModel[], scrollPosition: number) {\n const positions = [scrollPosition - months[0].getHeight(this.theme)];\n for (let i = 1; i < months.length; i++) {\n const position = positions[i - 1] + months[i - 1].getHeight(this.theme);\n positions.push(position);\n }\n return positions;\n }\n\n private getVisibleMonths(state: Readonly<CalendarState>): Array<[number, MonthViewModel]> {\n const { months, scrollPosition } = state;\n const positions = this.getMonthPositions(months, scrollPosition);\n\n return months\n .map<[number, MonthViewModel]>((x, i) => [positions[i], x])\n .filter(([top, month]) => CalendarUtils.isMonthVisible(top, month, this.theme));\n }\n\n private handleMonthYearChange = (monthNative: number, year: number) => {\n const month = CalendarUtils.getMonthInHumanFormat(monthNative);\n this.scrollToMonth(month, year);\n };\n\n private executeAnimations = (pixelY: number) => {\n this.setState(({ months, scrollPosition }) => {\n const targetPosition = CalendarUtils.calculateScrollPosition(\n months,\n scrollPosition,\n pixelY,\n this.theme,\n ).scrollPosition;\n return { scrollTarget: targetPosition };\n }, this.handleWheelEnd);\n\n this.animation.animate(pixelY, (deltaY) => {\n // FIXME: Typescript not resolving setState cb type\n this.setState(CalendarUtils.applyDelta(deltaY, this.theme) as any);\n });\n\n CalendarScrollEvents.emit();\n };\n\n private handleTouchStart = (event: Event) => {\n if (!isInstanceOf(event, globalObject.TouchEvent)) {\n return;\n }\n\n const clientY = event.targetTouches[0].clientY;\n this.touchStartY = clientY;\n };\n\n private handleTouchMove = (event: Event) => {\n if (!isInstanceOf(event, globalObject.TouchEvent)) {\n return;\n }\n\n const { clientY } = event.changedTouches[0];\n\n const deltaY = (this.touchStartY || 0) - clientY;\n this.touchStartY = clientY;\n\n this.executeAnimations(deltaY);\n };\n\n private throttledHandleTouchMove = throttle(this.handleTouchMove, 10);\n\n private handleWheel = (event: Event) => {\n if (!isInstanceOf(event, globalObject.WheelEvent)) {\n return;\n }\n event.preventDefault();\n const { pixelY } = normalizeWheel(event);\n\n this.executeAnimations(pixelY);\n };\n\n private handleWheelEnd = () => {\n if (this.wheelEndTimeout) {\n globalObject.clearTimeout(this.wheelEndTimeout);\n }\n this.wheelEndTimeout = globalObject.setTimeout(this.scrollToNearestWeek, 300);\n };\n private scrollToNearestWeek = () => {\n const { scrollTarget, scrollDirection } = this.state;\n\n const thresholdHeight = themeConfig(this.theme).MONTH_TITLE_OFFSET_HEIGHT + themeConfig(this.theme).DAY_HEIGHT;\n\n if (scrollTarget < thresholdHeight) {\n let targetPosition = 0;\n if (scrollDirection < 0) {\n targetPosition = thresholdHeight;\n }\n\n this.setState({ scrollTarget: targetPosition }, () => {\n const amount = scrollTarget - targetPosition;\n this.animation.animate(amount, (deltaY) => {\n // FIXME: Typescript not resolving setState cb type\n this.setState(CalendarUtils.applyDelta(deltaY, this.theme) as any);\n });\n });\n }\n };\n\n private scrollTo = (pos: number, onEnd?: () => void) => {\n const scrollAmmount = pos - this.state.scrollPosition;\n return this.scrollAmount(scrollAmmount, onEnd);\n };\n\n private scrollAmount = (scrollAmmount: number, onEnd?: () => void) => {\n return this.animation.animate(\n scrollAmmount,\n (deltaY) => {\n this.setState(({ scrollPosition }) => ({\n scrollPosition: scrollPosition + deltaY,\n }));\n },\n onEnd,\n );\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -88,8 +88,8 @@ var CalendarDay = exports.CalendarDay = /*#__PURE__*/(0, _react.memo)(
88
88
  className: (0, _Emotion.cx)((_cx = {}, _cx[
89
89
 
90
90
  _DayCellView.styles.day(theme)] = true, _cx[
91
- _DayCellView.styles.selected(theme)] = isSelected, _cx[
92
- _DayCellView.styles.weekend(theme)] = isWeekend, _cx),
91
+ _DayCellView.styles.weekend(theme)] = isWeekend, _cx[
92
+ _DayCellView.styles.selected(theme)] = isSelected, _cx),
93
93
 
94
94
  className
95
95
  ) },
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_useLocaleForControl","_ThemeContext","_Emotion","_locale","_InternalDate","_locale2","_getVisualStateDataAttributes","_forwardRefAndName","_DayCellView","_Calendar","_excluded","CalendarDay","exports","memo","forwardRefAndName","_ref","ref","_cx","_cx2","isToday","isSelected","isDisabled","isWeekend","date","onDayClick","onClick","children","className","rest","_objectWithoutPropertiesLoose2","default","theme","useContext","ThemeContext","_useContext","LocaleContext","langCode","internalDate","InternalDate","value","locale","useLocaleForControl","DatePickerLocaleHelper","ariaLabel","dayCellChooseDateAriaLabel","toA11YFormat","handleClick","useCallback","e","_internalDate$getComp","getComponentsLikeNumber","day","caption","createElement","_extends2","CalendarDataTids","dayCell","tabIndex","disabled","cx","styles","selected","weekend","getVisualStateDataAttributes","todayCaption"],"sources":["CalendarDay.tsx"],"sourcesContent":["import type { PropsWithChildren } from 'react';\nimport React, { useContext, memo, useCallback } from 'react';\n\nimport { useLocaleForControl } from '../../lib/locale/useLocaleForControl';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { cx } from '../../lib/theming/Emotion';\nimport { DatePickerLocaleHelper } from '../DatePicker/locale';\nimport { InternalDate } from '../../lib/date/InternalDate';\nimport { LocaleContext } from '../../lib/locale';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\n\nimport { styles } from './DayCellView.styles';\nimport { CalendarDataTids } from './Calendar';\n\nexport interface CalendarDayProps extends React.HTMLAttributes<HTMLButtonElement> {\n /** Устанавливает, является ли день текущим. */\n isToday?: boolean;\n\n /** Устанавливает, является ли день выбранным. */\n isSelected?: boolean;\n\n /** Устанавливает, является ли день недоступным. */\n isDisabled?: boolean;\n\n /** Устанавливает, является ли день выходным. */\n isWeekend?: boolean;\n\n /** Задает день. */\n date: string;\n\n /** Задает функцию, которая вызывается при клике на день. Необходима для внутренней работы Calendar. Не предназначена для переопределения. Вместо этого, следует использовать стандартный `onClick`.\n * @internal @ignore\n */\n onDayClick: () => void;\n}\n\n/**\n * Компонент дня `CalendarDay` из Calendar.\n *\n * @visibleName Calendar.Day\n */\nexport const CalendarDay = memo(\n forwardRefAndName(\n 'CalendarDay',\n function CalendarDay(\n {\n isToday,\n isSelected,\n isDisabled,\n isWeekend,\n date,\n onDayClick,\n onClick,\n children,\n className,\n ...rest\n }: PropsWithChildren<CalendarDayProps>,\n ref: React.Ref<HTMLButtonElement>,\n ) {\n const theme = useContext(ThemeContext);\n\n const { langCode } = useContext(LocaleContext);\n const internalDate = new InternalDate({ langCode, value: date });\n\n const locale = useLocaleForControl('Calendar', DatePickerLocaleHelper);\n const ariaLabel = `${locale.dayCellChooseDateAriaLabel}: ${internalDate.toA11YFormat()}`;\n\n const handleClick = useCallback<React.MouseEventHandler<HTMLButtonElement>>(\n (e) => {\n onDayClick();\n onClick?.(e);\n },\n [onDayClick, onClick],\n );\n\n const { date: day } = internalDate.getComponentsLikeNumber();\n const caption = children ?? day;\n\n return (\n <button\n ref={ref}\n data-tid={CalendarDataTids.dayCell}\n aria-label={ariaLabel}\n tabIndex={-1}\n disabled={isDisabled}\n onClick={handleClick}\n className={cx(\n {\n [styles.day(theme)]: true,\n [styles.selected(theme)]: isSelected,\n [styles.weekend(theme)]: isWeekend,\n },\n className,\n )}\n {...getVisualStateDataAttributes({ selected: isSelected })}\n {...rest}\n >\n <span className={cx({ [styles.todayCaption(theme)]: isToday })}>{caption}</span>\n </button>\n );\n },\n ),\n);\n"],"mappings":";AACA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;;AAEA,IAAAC,oBAAA,GAAAD,OAAA;AACA,IAAAE,aAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AACA,IAAAK,aAAA,GAAAL,OAAA;AACA,IAAAM,QAAA,GAAAN,OAAA;AACA,IAAAO,6BAAA,GAAAP,OAAA;AACA,IAAAQ,kBAAA,GAAAR,OAAA;;AAEA,IAAAS,YAAA,GAAAT,OAAA;AACA,IAAAU,SAAA,GAAAV,OAAA,eAA8C,IAAAW,SAAA;;;;;;;;;;;;;;;;;;;;;;;;AAwB9C;AACA;AACA;AACA;AACA;AACO,IAAMC,WAAW,GAAAC,OAAA,CAAAD,WAAA,gBAAG,IAAAE,WAAI;EAC7B,IAAAC,oCAAiB;IACf,aAAa;IACb,SAASH,WAAWA,CAAAI,IAAA;;;;;;;;;;;;;IAalBC,GAAiC;IACjC,KAAAC,GAAA,EAAAC,IAAA,KAZEC,OAAO,GAAAJ,IAAA,CAAPI,OAAO,CACPC,UAAU,GAAAL,IAAA,CAAVK,UAAU,CACVC,UAAU,GAAAN,IAAA,CAAVM,UAAU,CACVC,SAAS,GAAAP,IAAA,CAATO,SAAS,CACTC,IAAI,GAAAR,IAAA,CAAJQ,IAAI,CACJC,UAAU,GAAAT,IAAA,CAAVS,UAAU,CACVC,OAAO,GAAAV,IAAA,CAAPU,OAAO,CACPC,QAAQ,GAAAX,IAAA,CAARW,QAAQ,CACRC,SAAS,GAAAZ,IAAA,CAATY,SAAS,CACNC,IAAI,OAAAC,8BAAA,CAAAC,OAAA,EAAAf,IAAA,EAAAL,SAAA;MAIT,IAAMqB,KAAK,GAAG,IAAAC,iBAAU,EAACC,0BAAY,CAAC;;MAEtC,IAAAC,WAAA,GAAqB,IAAAF,iBAAU,EAACG,sBAAa,CAAC,CAAtCC,QAAQ,GAAAF,WAAA,CAARE,QAAQ;MAChB,IAAMC,YAAY,GAAG,IAAIC,0BAAY,CAAC,EAAEF,QAAQ,EAARA,QAAQ,EAAEG,KAAK,EAAEhB,IAAI,CAAC,CAAC,CAAC;;MAEhE,IAAMiB,MAAM,GAAG,IAAAC,wCAAmB,EAAC,UAAU,EAAEC,8BAAsB,CAAC;MACtE,IAAMC,SAAS,GAAMH,MAAM,CAACI,0BAA0B,UAAKP,YAAY,CAACQ,YAAY,CAAC,CAAG;;MAExF,IAAMC,WAAW,GAAG,IAAAC,kBAAW;QAC7B,UAACC,CAAC,EAAK;UACLxB,UAAU,CAAC,CAAC;UACZC,OAAO,YAAPA,OAAO,CAAGuB,CAAC,CAAC;QACd,CAAC;QACD,CAACxB,UAAU,EAAEC,OAAO;MACtB,CAAC;;MAED,IAAAwB,qBAAA,GAAsBZ,YAAY,CAACa,uBAAuB,CAAC,CAAC,CAA9CC,GAAG,GAAAF,qBAAA,CAAT1B,IAAI;MACZ,IAAM6B,OAAO,GAAG1B,QAAQ,WAARA,QAAQ,GAAIyB,GAAG;;MAE/B;QACEtD,MAAA,CAAAiC,OAAA,CAAAuB,aAAA,eAAAC,SAAA,CAAAxB,OAAA;UACEd,GAAG,EAAEA,GAAI;UACT,YAAUuC,0BAAgB,CAACC,OAAQ;UACnC,cAAYb,SAAU;UACtBc,QAAQ,EAAE,CAAC,CAAE;UACbC,QAAQ,EAAErC,UAAW;UACrBI,OAAO,EAAEqB,WAAY;UACrBnB,SAAS,EAAE,IAAAgC,WAAE,GAAA1C,GAAA,OAAAA,GAAA;;UAER2C,mBAAM,CAACT,GAAG,CAACpB,KAAK,CAAC,IAAG,IAAI,EAAAd,GAAA;UACxB2C,mBAAM,CAACC,QAAQ,CAAC9B,KAAK,CAAC,IAAGX,UAAU,EAAAH,GAAA;UACnC2C,mBAAM,CAACE,OAAO,CAAC/B,KAAK,CAAC,IAAGT,SAAS,EAAAL,GAAA;;UAEpCU;UACF,CAAE;QACE,IAAAoC,0DAA4B,EAAC,EAAEF,QAAQ,EAAEzC,UAAU,CAAC,CAAC,CAAC;QACtDQ,IAAI;;QAER/B,MAAA,CAAAiC,OAAA,CAAAuB,aAAA,WAAM1B,SAAS,EAAE,IAAAgC,WAAE,GAAAzC,IAAA,OAAAA,IAAA,CAAI0C,mBAAM,CAACI,YAAY,CAACjC,KAAK,CAAC,IAAGZ,OAAO,EAAAD,IAAA,CAAE,CAAE,IAAEkC,OAAc;QACzE,CAAC;;IAEb;EACF;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_useLocaleForControl","_ThemeContext","_Emotion","_locale","_InternalDate","_locale2","_getVisualStateDataAttributes","_forwardRefAndName","_DayCellView","_Calendar","_excluded","CalendarDay","exports","memo","forwardRefAndName","_ref","ref","_cx","_cx2","isToday","isSelected","isDisabled","isWeekend","date","onDayClick","onClick","children","className","rest","_objectWithoutPropertiesLoose2","default","theme","useContext","ThemeContext","_useContext","LocaleContext","langCode","internalDate","InternalDate","value","locale","useLocaleForControl","DatePickerLocaleHelper","ariaLabel","dayCellChooseDateAriaLabel","toA11YFormat","handleClick","useCallback","e","_internalDate$getComp","getComponentsLikeNumber","day","caption","createElement","_extends2","CalendarDataTids","dayCell","tabIndex","disabled","cx","styles","weekend","selected","getVisualStateDataAttributes","todayCaption"],"sources":["CalendarDay.tsx"],"sourcesContent":["import type { PropsWithChildren } from 'react';\nimport React, { useContext, memo, useCallback } from 'react';\n\nimport { useLocaleForControl } from '../../lib/locale/useLocaleForControl';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { cx } from '../../lib/theming/Emotion';\nimport { DatePickerLocaleHelper } from '../DatePicker/locale';\nimport { InternalDate } from '../../lib/date/InternalDate';\nimport { LocaleContext } from '../../lib/locale';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\n\nimport { styles } from './DayCellView.styles';\nimport { CalendarDataTids } from './Calendar';\n\nexport interface CalendarDayProps extends React.HTMLAttributes<HTMLButtonElement> {\n /** Устанавливает, является ли день текущим. */\n isToday?: boolean;\n\n /** Устанавливает, является ли день выбранным. */\n isSelected?: boolean;\n\n /** Устанавливает, является ли день недоступным. */\n isDisabled?: boolean;\n\n /** Устанавливает, является ли день выходным. */\n isWeekend?: boolean;\n\n /** Задает день. */\n date: string;\n\n /** Задает функцию, которая вызывается при клике на день. Необходима для внутренней работы Calendar. Не предназначена для переопределения. Вместо этого, следует использовать стандартный `onClick`.\n * @internal @ignore\n */\n onDayClick: () => void;\n}\n\n/**\n * Компонент дня `CalendarDay` из Calendar.\n *\n * @visibleName Calendar.Day\n */\nexport const CalendarDay = memo(\n forwardRefAndName(\n 'CalendarDay',\n function CalendarDay(\n {\n isToday,\n isSelected,\n isDisabled,\n isWeekend,\n date,\n onDayClick,\n onClick,\n children,\n className,\n ...rest\n }: PropsWithChildren<CalendarDayProps>,\n ref: React.Ref<HTMLButtonElement>,\n ) {\n const theme = useContext(ThemeContext);\n\n const { langCode } = useContext(LocaleContext);\n const internalDate = new InternalDate({ langCode, value: date });\n\n const locale = useLocaleForControl('Calendar', DatePickerLocaleHelper);\n const ariaLabel = `${locale.dayCellChooseDateAriaLabel}: ${internalDate.toA11YFormat()}`;\n\n const handleClick = useCallback<React.MouseEventHandler<HTMLButtonElement>>(\n (e) => {\n onDayClick();\n onClick?.(e);\n },\n [onDayClick, onClick],\n );\n\n const { date: day } = internalDate.getComponentsLikeNumber();\n const caption = children ?? day;\n\n return (\n <button\n ref={ref}\n data-tid={CalendarDataTids.dayCell}\n aria-label={ariaLabel}\n tabIndex={-1}\n disabled={isDisabled}\n onClick={handleClick}\n className={cx(\n {\n [styles.day(theme)]: true,\n [styles.weekend(theme)]: isWeekend,\n [styles.selected(theme)]: isSelected,\n },\n className,\n )}\n {...getVisualStateDataAttributes({ selected: isSelected })}\n {...rest}\n >\n <span className={cx({ [styles.todayCaption(theme)]: isToday })}>{caption}</span>\n </button>\n );\n },\n ),\n);\n"],"mappings":"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","ignoreList":[]}
@@ -6,60 +6,59 @@ import type { CommonProps } from '../../internal/CommonWrapper';
6
6
  import type { TGetRootNode } from '../../lib/rootNode';
7
7
  import type { SizeProp } from '../../lib/types/props';
8
8
  export interface DropdownProps extends Pick<AriaAttributes, 'aria-label' | 'aria-describedby'>, Pick<HTMLAttributes<HTMLElement>, 'id'>, CommonProps {
9
- /** Задает подпись на кнопке. */
9
+ /** Текст кнопки-меню. */
10
10
  caption: React.ReactNode;
11
11
  /** Добавляет иконку слева от текста кнопки. */
12
12
  icon?: React.ReactElement<any>;
13
- /** Задает ширину выпадающего меню. */
13
+ /** Ширина кнопки-меню. Если `menuWidth` не задан, такая же минимальная ширина применяется к раскрывающемуся меню. */
14
14
  width?: React.CSSProperties['width'];
15
15
  /** @ignore */
16
16
  _renderButton?: (params: any) => JSX.Element;
17
17
  /** Отключает использование портала. */
18
18
  disablePortal?: boolean;
19
- /** Делает компонент недоступным.*/
19
+ /** Блокирует компонент. */
20
20
  disabled?: boolean;
21
- /** Переводит контрол в состояние валидации "ошибка". */
21
+ /** Показывает состояние ошибки. */
22
22
  error?: boolean;
23
- /** Переводит контрол в состояние валидации "предупреждение". */
23
+ /** Показывает состояние предупреждения. */
24
24
  warning?: boolean;
25
- /** Задает максимальную высоту меню. */
25
+ /** Ограничивает максимальную высоту раскрывающегося меню. */
26
26
  maxMenuHeight?: number;
27
- /** Задает текущую позицию выпадающего окна вручную.
28
- */
27
+ /** Фиксирует положение раскрывающегося меню относительно кнопки-меню. */
29
28
  menuPos?: 'top' | 'bottom';
30
- /** Задает выравнивание выпадающего меню. */
29
+ /** Выравнивает раскрывающееся меню относительно кнопки-меню. */
31
30
  menuAlign?: 'left' | 'right';
32
- /** Задает длину меню. */
31
+ /** Ширина раскрывающегося меню. */
33
32
  menuWidth?: number | string;
34
- /** Задает размер контрола. */
33
+ /** Размер кнопки-меню. */
35
34
  size?: SizeProp;
36
- /** Задаёт стиль кнопки. */
35
+ /** Визуальный стиль кнопки-меню. */
37
36
  use?: ButtonUse;
38
37
  /** @ignore */
39
38
  corners?: React.CSSProperties;
40
- /** Задает функцию, которая вызывается при закрытии меню. */
39
+ /** Вызывается при закрытии раскрывающегося меню. */
41
40
  onClose?: () => void;
42
- /** Задает функцию, которая вызывается при открытии меню. */
41
+ /** Вызывается при открытии раскрывающегося меню. */
43
42
  onOpen?: () => void;
44
- /** Задает функцию, которая вызывается при наведении мышкой (событие `onmouseenter`). См разницу с onMouseOver в [документации](https://learn.javascript.ru/mousemove-mouseover-mouseout-mouseenter-mouseleave) */
43
+ /** Вызывается при наведении курсора (событие `onmouseenter`). Разницу с `onMouseOver` смотрите в [документации](https://learn.javascript.ru/mousemove-mouseover-mouseout-mouseenter-mouseleave). */
45
44
  onMouseEnter?: (event: React.MouseEvent<HTMLElement>) => void;
46
- /** Задает функцию, которая вызывается при уходе мышки с объекта (событие `onmouseleave`). */
45
+ /** Вызывается при уходе курсора с элемента (событие `onmouseleave`). */
47
46
  onMouseLeave?: (event: React.MouseEvent<HTMLElement>) => void;
48
- /** Задает функцию, которая вызывается при наведении мышкой (событие `onmouseover`). */
47
+ /** Вызывается при движении курсора над элементом (событие `onmouseover`). */
49
48
  onMouseOver?: (event: React.MouseEvent<HTMLElement>) => void;
50
49
  }
51
50
  export declare const DropdownDataTids: {
52
51
  readonly root: "Dropdown__root";
53
52
  };
54
53
  /**
55
- * Выпадающее меню `Dropdown`. Содержит несколько команд, объединенных по смыслу.
54
+ * Кнопка-меню `Dropdown` открывает раскрывающееся меню с командами, объединенными по смыслу.
56
55
  *
57
56
  * Используйте кнопку-меню:
58
57
  * * когда не хватает места для нескольких кнопок.
59
58
  * * когда названия действий очень длинные.
60
59
  * * когда действия редко используются или объединены по смыслу.
61
60
  *
62
- * Не используйте `Dropdown` для выбора значения из набора вариантов. В таком случае воспользуйтесь компонентом Select.
61
+ * Не используйте `Dropdown` для выбора значения из набора вариантов. В таком случае воспользуйтесь компонентом `Select`.
63
62
  */
64
63
  export declare class Dropdown extends React.Component<DropdownProps> {
65
64
  static __KONTUR_REACT_UI__: string;
@@ -107,7 +107,6 @@ var PASS_PROPS = {
107
107
 
108
108
 
109
109
 
110
-
111
110
 
112
111
 
113
112
  var DropdownDataTids = exports.DropdownDataTids = {
@@ -115,14 +114,14 @@ var DropdownDataTids = exports.DropdownDataTids = {
115
114
  };
116
115
 
117
116
  /**
118
- * Выпадающее меню `Dropdown`. Содержит несколько команд, объединенных по смыслу.
117
+ * Кнопка-меню `Dropdown` открывает раскрывающееся меню с командами, объединенными по смыслу.
119
118
  *
120
119
  * Используйте кнопку-меню:
121
120
  * * когда не хватает места для нескольких кнопок.
122
121
  * * когда названия действий очень длинные.
123
122
  * * когда действия редко используются или объединены по смыслу.
124
123
  *
125
- * Не используйте `Dropdown` для выбора значения из набора вариантов. В таком случае воспользуйтесь компонентом Select.
124
+ * Не используйте `Dropdown` для выбора значения из набора вариантов. В таком случае воспользуйтесь компонентом `Select`.
126
125
  */var
127
126
 
128
127
  Dropdown = exports.Dropdown = (0, _rootNode.rootNode)(_class = (_Dropdown = /*#__PURE__*/function (_React$Component) {function Dropdown() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;_this.
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_filterProps","_MenuHeader","_MenuItem","_MenuSeparator","_Select","_CommonWrapper","_rootNode","_ThemeContext","_getDropdownTheme","_excluded","_class","_Dropdown","PASS_PROPS","_renderButton","error","disabled","disablePortal","menuAlign","menuWidth","maxMenuHeight","use","size","warning","width","onOpen","onClose","onMouseEnter","onMouseLeave","onMouseOver","menuPos","corners","id","DropdownDataTids","exports","root","Dropdown","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","renderMain","_this$props","props","caption","icon","rest","_objectWithoutPropertiesLoose2","default","items","React","Children","map","children","item","createElement","CommonWrapper","_extends2","rootNodeRef","setRootNode","Select","ref","_refSelect","filterProps","value","_icon","renderValue","element","_select","_inheritsLoose2","_proto","prototype","render","_this2","ThemeContext","Consumer","theme","getDropdownTheme","Provider","open","close","Component","__KONTUR_REACT_UI__","displayName","Header","MenuHeader","MenuItem","Separator","MenuSeparator"],"sources":["Dropdown.tsx"],"sourcesContent":["import type { AriaAttributes, HTMLAttributes } from 'react';\nimport React from 'react';\n\nimport { filterProps } from '../../lib/filterProps';\nimport { MenuHeader } from '../MenuHeader';\nimport { MenuItem } from '../MenuItem';\nimport { MenuSeparator } from '../MenuSeparator';\nimport { Select } from '../Select';\nimport type { Nullable } from '../../typings/utility-types';\nimport type { ButtonUse } from '../Button';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { SizeProp } from '../../lib/types/props';\n\nimport { getDropdownTheme } from './getDropdownTheme';\n\nconst PASS_PROPS = {\n _renderButton: true,\n error: true,\n disabled: true,\n disablePortal: true,\n menuAlign: true,\n menuWidth: true,\n maxMenuHeight: true,\n use: true,\n size: true,\n warning: true,\n width: true,\n onOpen: true,\n onClose: true,\n onMouseEnter: true,\n onMouseLeave: true,\n onMouseOver: true,\n menuPos: true,\n corners: true,\n id: true,\n 'aria-describedby': true,\n 'aria-label': true,\n};\n\nexport interface DropdownProps\n extends Pick<AriaAttributes, 'aria-label' | 'aria-describedby'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n CommonProps {\n /** Задает подпись на кнопке. */\n caption: React.ReactNode;\n\n /** Добавляет иконку слева от текста кнопки. */\n icon?: React.ReactElement<any>;\n\n /** Задает ширину выпадающего меню. */\n width?: React.CSSProperties['width'];\n\n /** @ignore */\n _renderButton?: (params: any) => JSX.Element;\n\n /** Отключает использование портала. */\n disablePortal?: boolean;\n\n /** Делает компонент недоступным.*/\n disabled?: boolean;\n\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Задает максимальную высоту меню. */\n maxMenuHeight?: number;\n\n /** Задает текущую позицию выпадающего окна вручную.\n */\n menuPos?: 'top' | 'bottom';\n\n /** Задает выравнивание выпадающего меню. */\n menuAlign?: 'left' | 'right';\n\n /** Задает длину меню. */\n menuWidth?: number | string;\n\n /** Задает размер контрола. */\n size?: SizeProp;\n\n /** Задаёт стиль кнопки. */\n use?: ButtonUse;\n\n /** @ignore */\n corners?: React.CSSProperties;\n\n /** Задает функцию, которая вызывается при закрытии меню. */\n onClose?: () => void;\n\n /** Задает функцию, которая вызывается при открытии меню. */\n onOpen?: () => void;\n\n /** Задает функцию, которая вызывается при наведении мышкой (событие `onmouseenter`). См разницу с onMouseOver в [документации](https://learn.javascript.ru/mousemove-mouseover-mouseout-mouseenter-mouseleave) */\n onMouseEnter?: (event: React.MouseEvent<HTMLElement>) => void;\n\n /** Задает функцию, которая вызывается при уходе мышки с объекта (событие `onmouseleave`). */\n onMouseLeave?: (event: React.MouseEvent<HTMLElement>) => void;\n\n /** Задает функцию, которая вызывается при наведении мышкой (событие `onmouseover`). */\n onMouseOver?: (event: React.MouseEvent<HTMLElement>) => void;\n}\n\ntype DropdownSelectType = Select<React.ReactNode, React.ReactNode>;\n\nexport const DropdownDataTids = {\n root: 'Dropdown__root',\n} as const;\n\n/**\n * Выпадающее меню `Dropdown`. Содержит несколько команд, объединенных по смыслу.\n *\n * Используйте кнопку-меню:\n * * когда не хватает места для нескольких кнопок.\n * * когда названия действий очень длинные.\n * * когда действия редко используются или объединены по смыслу.\n *\n * Не используйте `Dropdown` для выбора значения из набора вариантов. В таком случае воспользуйтесь компонентом Select.\n */\n@rootNode\nexport class Dropdown extends React.Component<DropdownProps> {\n public static __KONTUR_REACT_UI__ = 'Dropdown';\n public static displayName = 'Dropdown';\n\n public static Header = MenuHeader;\n public static MenuItem = MenuItem;\n public static Separator = MenuSeparator;\n\n private _select: Nullable<DropdownSelectType>;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private theme!: Theme;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = getDropdownTheme(theme);\n return <ThemeContext.Provider value={this.theme}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain = () => {\n const { caption, icon, ...rest } = this.props;\n const items = React.Children.map(this.props.children, (item) => item) || [];\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...rest}>\n <Select<React.ReactNode, React.ReactNode>\n data-tid={DropdownDataTids.root}\n ref={this._refSelect}\n {...filterProps(rest, PASS_PROPS)}\n value={caption}\n items={items}\n _icon={icon}\n renderValue={renderValue}\n />\n </CommonWrapper>\n );\n };\n\n /**\n * @public\n */\n public open() {\n if (this._select) {\n this._select.open();\n }\n }\n\n /**\n * @public\n */\n public close() {\n if (this._select) {\n this._select.close();\n }\n }\n\n private _refSelect = (element: DropdownSelectType): void => {\n this._select = element;\n };\n}\n\nfunction renderValue(value: any) {\n return value;\n}\n"],"mappings":";AACA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;;AAEA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,SAAA,GAAAH,OAAA;AACA,IAAAI,cAAA,GAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA;;;;AAIA,IAAAM,cAAA,GAAAN,OAAA;;AAEA,IAAAO,SAAA,GAAAP,OAAA;AACA,IAAAQ,aAAA,GAAAR,OAAA;;;;AAIA,IAAAS,iBAAA,GAAAT,OAAA,uBAAsD,IAAAU,SAAA,2BAAAC,MAAA,EAAAC,SAAA;;AAEtD,IAAMC,UAAU,GAAG;EACjBC,aAAa,EAAE,IAAI;EACnBC,KAAK,EAAE,IAAI;EACXC,QAAQ,EAAE,IAAI;EACdC,aAAa,EAAE,IAAI;EACnBC,SAAS,EAAE,IAAI;EACfC,SAAS,EAAE,IAAI;EACfC,aAAa,EAAE,IAAI;EACnBC,GAAG,EAAE,IAAI;EACTC,IAAI,EAAE,IAAI;EACVC,OAAO,EAAE,IAAI;EACbC,KAAK,EAAE,IAAI;EACXC,MAAM,EAAE,IAAI;EACZC,OAAO,EAAE,IAAI;EACbC,YAAY,EAAE,IAAI;EAClBC,YAAY,EAAE,IAAI;EAClBC,WAAW,EAAE,IAAI;EACjBC,OAAO,EAAE,IAAI;EACbC,OAAO,EAAE,IAAI;EACbC,EAAE,EAAE,IAAI;EACR,kBAAkB,EAAE,IAAI;EACxB,YAAY,EAAE;AAChB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsEM,IAAMC,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAG;EAC9BE,IAAI,EAAE;AACR,CAAU;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GATA;;AAWaC,QAAQ,GAAAF,OAAA,CAAAE,QAAA,OADpBC,kBAAQ,EAAA1B,MAAA,IAAAC,SAAA,0BAAA0B,gBAAA,YAAAF,SAAA,OAAAG,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,gBAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,gBAAA,SAAAU,MAAA,CAAAL,IAAA,WAAAJ,KAAA;;;;;;;;;;;;;;;;;;;;;;;;IAyBAU,UAAU,GAAG,YAAM;MACxB,IAAAC,WAAA,GAAmCX,KAAA,CAAKY,KAAK,CAArCC,OAAO,GAAAF,WAAA,CAAPE,OAAO,CAAEC,IAAI,GAAAH,WAAA,CAAJG,IAAI,CAAKC,IAAI,OAAAC,8BAAA,CAAAC,OAAA,EAAAN,WAAA,EAAAxC,SAAA;MAC9B,IAAM+C,KAAK,GAAGC,cAAK,CAACC,QAAQ,CAACC,GAAG,CAACrB,KAAA,CAAKY,KAAK,CAACU,QAAQ,EAAE,UAACC,IAAI,UAAKA,IAAI,GAAC,IAAI,EAAE;;MAE3E;QACEhE,MAAA,CAAA0D,OAAA,CAAAO,aAAA,CAACzD,cAAA,CAAA0D,aAAa,MAAAC,SAAA,CAAAT,OAAA,IAACU,WAAW,EAAE3B,KAAA,CAAK4B,WAAY,IAAKb,IAAI;QACpDxD,MAAA,CAAA0D,OAAA,CAAAO,aAAA,CAAC1D,OAAA,CAAA+D,MAAM,MAAAH,SAAA,CAAAT,OAAA;UACL,YAAUvB,gBAAgB,CAACE,IAAK;UAChCkC,GAAG,EAAE9B,KAAA,CAAK+B,UAAW;QACjB,IAAAC,wBAAW,EAACjB,IAAI,EAAEzC,UAAU,CAAC;UACjC2D,KAAK,EAAEpB,OAAQ;UACfK,KAAK,EAAEA,KAAM;UACbgB,KAAK,EAAEpB,IAAK;UACZqB,WAAW,EAAEA,WAAY;QAC1B;QACY,CAAC;;IAEpB,CAAC,CAAAnC,KAAA;;;;;;;;;;;;;;;;;;;;IAoBO+B,UAAU,GAAG,UAACK,OAA2B,EAAW;MAC1DpC,KAAA,CAAKqC,OAAO,GAAGD,OAAO;IACxB,CAAC,QAAApC,KAAA,MAAAsC,eAAA,CAAArB,OAAA,EAAApB,QAAA,EAAAE,gBAAA,MAAAwC,MAAA,GAAA1C,QAAA,CAAA2C,SAAA,CAAAD,MAAA,CAlDME,MAAM,GAAb,SAAAA,OAAA,EAAgB,KAAAC,MAAA,QACd,oBACEnF,MAAA,CAAA0D,OAAA,CAAAO,aAAA,CAACvD,aAAA,CAAA0E,YAAY,CAACC,QAAQ,QACnB,UAACC,KAAK,EAAK,CACVH,MAAI,CAACG,KAAK,GAAG,IAAAC,kCAAgB,EAACD,KAAK,CAAC,CACpC,oBAAOtF,MAAA,CAAA0D,OAAA,CAAAO,aAAA,CAACvD,aAAA,CAAA0E,YAAY,CAACI,QAAQ,IAACd,KAAK,EAAES,MAAI,CAACG,KAAM,IAAEH,MAAI,CAAChC,UAAU,CAAC,CAAyB,CAAC,CAC9F,CACqB,CAAC,CAE5B,CAAC,EAqBD;AACF;AACA,KAFE6B,MAAA,CAGOS,IAAI,GAAX,SAAAA,KAAA,EAAc,CACZ,IAAI,IAAI,CAACX,OAAO,EAAE,CAChB,IAAI,CAACA,OAAO,CAACW,IAAI,CAAC,CAAC,CACrB,CACF,CAAC,CAED;AACF;AACA,KAFE,CAAAT,MAAA,CAGOU,KAAK,GAAZ,SAAAA,MAAA,EAAe,CACb,IAAI,IAAI,CAACZ,OAAO,EAAE,CAChB,IAAI,CAACA,OAAO,CAACY,KAAK,CAAC,CAAC,CACtB,CACF,CAAC,QAAApD,QAAA,GA3D2BsB,cAAK,CAAC+B,SAAS,GAAA7E,SAAA,CAC7B8E,mBAAmB,GAAG,UAAU,EAAA9E,SAAA,CAChC+E,WAAW,GAAG,UAAU,EAAA/E,SAAA,CAExBgF,MAAM,GAAGC,sBAAU,EAAAjF,SAAA,CACnBkF,QAAQ,GAAGA,kBAAQ,EAAAlF,SAAA,CACnBmF,SAAS,GAAGC,4BAAa,EAAApF,SAAA,MAAAD,MAAA,CA4DzC,SAAS+D,WAAWA,CAACF,KAAU,EAAE,CAC/B,OAAOA,KAAK;AACd","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_filterProps","_MenuHeader","_MenuItem","_MenuSeparator","_Select","_CommonWrapper","_rootNode","_ThemeContext","_getDropdownTheme","_excluded","_class","_Dropdown","PASS_PROPS","_renderButton","error","disabled","disablePortal","menuAlign","menuWidth","maxMenuHeight","use","size","warning","width","onOpen","onClose","onMouseEnter","onMouseLeave","onMouseOver","menuPos","corners","id","DropdownDataTids","exports","root","Dropdown","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","renderMain","_this$props","props","caption","icon","rest","_objectWithoutPropertiesLoose2","default","items","React","Children","map","children","item","createElement","CommonWrapper","_extends2","rootNodeRef","setRootNode","Select","ref","_refSelect","filterProps","value","_icon","renderValue","element","_select","_inheritsLoose2","_proto","prototype","render","_this2","ThemeContext","Consumer","theme","getDropdownTheme","Provider","open","close","Component","__KONTUR_REACT_UI__","displayName","Header","MenuHeader","MenuItem","Separator","MenuSeparator"],"sources":["Dropdown.tsx"],"sourcesContent":["import type { AriaAttributes, HTMLAttributes } from 'react';\nimport React from 'react';\n\nimport { filterProps } from '../../lib/filterProps';\nimport { MenuHeader } from '../MenuHeader';\nimport { MenuItem } from '../MenuItem';\nimport { MenuSeparator } from '../MenuSeparator';\nimport { Select } from '../Select';\nimport type { Nullable } from '../../typings/utility-types';\nimport type { ButtonUse } from '../Button';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { SizeProp } from '../../lib/types/props';\n\nimport { getDropdownTheme } from './getDropdownTheme';\n\nconst PASS_PROPS = {\n _renderButton: true,\n error: true,\n disabled: true,\n disablePortal: true,\n menuAlign: true,\n menuWidth: true,\n maxMenuHeight: true,\n use: true,\n size: true,\n warning: true,\n width: true,\n onOpen: true,\n onClose: true,\n onMouseEnter: true,\n onMouseLeave: true,\n onMouseOver: true,\n menuPos: true,\n corners: true,\n id: true,\n 'aria-describedby': true,\n 'aria-label': true,\n};\n\nexport interface DropdownProps\n extends Pick<AriaAttributes, 'aria-label' | 'aria-describedby'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n CommonProps {\n /** Текст кнопки-меню. */\n caption: React.ReactNode;\n\n /** Добавляет иконку слева от текста кнопки. */\n icon?: React.ReactElement<any>;\n\n /** Ширина кнопки-меню. Если `menuWidth` не задан, такая же минимальная ширина применяется к раскрывающемуся меню. */\n width?: React.CSSProperties['width'];\n\n /** @ignore */\n _renderButton?: (params: any) => JSX.Element;\n\n /** Отключает использование портала. */\n disablePortal?: boolean;\n\n /** Блокирует компонент. */\n disabled?: boolean;\n\n /** Показывает состояние ошибки. */\n error?: boolean;\n\n /** Показывает состояние предупреждения. */\n warning?: boolean;\n\n /** Ограничивает максимальную высоту раскрывающегося меню. */\n maxMenuHeight?: number;\n\n /** Фиксирует положение раскрывающегося меню относительно кнопки-меню. */\n menuPos?: 'top' | 'bottom';\n\n /** Выравнивает раскрывающееся меню относительно кнопки-меню. */\n menuAlign?: 'left' | 'right';\n\n /** Ширина раскрывающегося меню. */\n menuWidth?: number | string;\n\n /** Размер кнопки-меню. */\n size?: SizeProp;\n\n /** Визуальный стиль кнопки-меню. */\n use?: ButtonUse;\n\n /** @ignore */\n corners?: React.CSSProperties;\n\n /** Вызывается при закрытии раскрывающегося меню. */\n onClose?: () => void;\n\n /** Вызывается при открытии раскрывающегося меню. */\n onOpen?: () => void;\n\n /** Вызывается при наведении курсора (событие `onmouseenter`). Разницу с `onMouseOver` смотрите в [документации](https://learn.javascript.ru/mousemove-mouseover-mouseout-mouseenter-mouseleave). */\n onMouseEnter?: (event: React.MouseEvent<HTMLElement>) => void;\n\n /** Вызывается при уходе курсора с элемента (событие `onmouseleave`). */\n onMouseLeave?: (event: React.MouseEvent<HTMLElement>) => void;\n\n /** Вызывается при движении курсора над элементом (событие `onmouseover`). */\n onMouseOver?: (event: React.MouseEvent<HTMLElement>) => void;\n}\n\ntype DropdownSelectType = Select<React.ReactNode, React.ReactNode>;\n\nexport const DropdownDataTids = {\n root: 'Dropdown__root',\n} as const;\n\n/**\n * Кнопка-меню `Dropdown` открывает раскрывающееся меню с командами, объединенными по смыслу.\n *\n * Используйте кнопку-меню:\n * * когда не хватает места для нескольких кнопок.\n * * когда названия действий очень длинные.\n * * когда действия редко используются или объединены по смыслу.\n *\n * Не используйте `Dropdown` для выбора значения из набора вариантов. В таком случае воспользуйтесь компонентом `Select`.\n */\n@rootNode\nexport class Dropdown extends React.Component<DropdownProps> {\n public static __KONTUR_REACT_UI__ = 'Dropdown';\n public static displayName = 'Dropdown';\n\n public static Header = MenuHeader;\n public static MenuItem = MenuItem;\n public static Separator = MenuSeparator;\n\n private _select: Nullable<DropdownSelectType>;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private theme!: Theme;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = getDropdownTheme(theme);\n return <ThemeContext.Provider value={this.theme}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain = () => {\n const { caption, icon, ...rest } = this.props;\n const items = React.Children.map(this.props.children, (item) => item) || [];\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...rest}>\n <Select<React.ReactNode, React.ReactNode>\n data-tid={DropdownDataTids.root}\n ref={this._refSelect}\n {...filterProps(rest, PASS_PROPS)}\n value={caption}\n items={items}\n _icon={icon}\n renderValue={renderValue}\n />\n </CommonWrapper>\n );\n };\n\n /**\n * @public\n */\n public open() {\n if (this._select) {\n this._select.open();\n }\n }\n\n /**\n * @public\n */\n public close() {\n if (this._select) {\n this._select.close();\n }\n }\n\n private _refSelect = (element: DropdownSelectType): void => {\n this._select = element;\n };\n}\n\nfunction renderValue(value: any) {\n return value;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -132,7 +132,6 @@ FxInput = exports.FxInput = (0, _rootNode.rootNode)(_class = (0, _SizeDecorator.
132
132
 
133
133
 
134
134
 
135
-
136
135
 
137
136
 
138
137
  renderMain = function (props) {
@@ -271,4 +270,4 @@ FxInput = exports.FxInput = (0, _rootNode.rootNode)(_class = (0, _SizeDecorator.
271
270
  onValueChange: _this.props.onValueChange })
272
271
  ));
273
272
 
274
- };return _this;}(0, _inheritsLoose2.default)(FxInput, _React$Component);var _proto = FxInput.prototype;_proto.validateProps = function validateProps(props) {(0, _warning.default)(props.type !== 'currency' && props.mask !== undefined, '[FxInput]: Prop "mask" is not supported when type="currency"');};_proto.componentDidMount = function componentDidMount() {this.validateProps(this.getProps());};_proto.componentDidUpdate = function componentDidUpdate() {this.validateProps(this.getProps());};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ReactUIFeatureFlagsContext.ReactUIFeatureFlagsContext.Consumer, null, function (flags) {_this2.featureFlags = (0, _featureFlagsContext.getFullReactUIFlagsContext)(flags);return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: _this2.setRootNode }, _this2.getProps()), _this2.renderMain);});});};return FxInput;}(_react.default.Component), _FxInput.__KONTUR_REACT_UI__ = 'FxInput', _FxInput.displayName = 'FxInput', _FxInput.defaultProps = { width: 250, type: 'text', value: '', auto: false }, _FxInput)) || _class) || _class;
273
+ };return _this;}(0, _inheritsLoose2.default)(FxInput, _React$Component);var _proto = FxInput.prototype;_proto.validateProps = function validateProps(props) {if (props.type === 'currency' && props.mask !== undefined) {(0, _warning.default)(false, '[FxInput]: Prop "mask" is not supported when type="currency"');}};_proto.componentDidMount = function componentDidMount() {this.validateProps(this.getProps());};_proto.componentDidUpdate = function componentDidUpdate() {this.validateProps(this.getProps());};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ReactUIFeatureFlagsContext.ReactUIFeatureFlagsContext.Consumer, null, function (flags) {_this2.featureFlags = (0, _featureFlagsContext.getFullReactUIFlagsContext)(flags);return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: _this2.setRootNode }, _this2.getProps()), _this2.renderMain);});});};return FxInput;}(_react.default.Component), _FxInput.__KONTUR_REACT_UI__ = 'FxInput', _FxInput.displayName = 'FxInput', _FxInput.defaultProps = { width: 250, type: 'text', value: '', auto: false }, _FxInput)) || _class) || _class;