@skbkontur/react-ui 5.6.6 → 5.6.7

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 (76) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/cjs/components/Calendar/CalendarDay.js +2 -2
  3. package/cjs/components/Calendar/CalendarDay.js.map +1 -1
  4. package/cjs/components/Dropdown/Dropdown.d.ts +18 -19
  5. package/cjs/components/Dropdown/Dropdown.js +2 -3
  6. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  7. package/cjs/components/FxInput/FxInput.js +1 -2
  8. package/cjs/components/FxInput/FxInput.js.map +1 -1
  9. package/cjs/components/GlobalLoader/GlobalLoader.d.ts +20 -23
  10. package/cjs/components/GlobalLoader/GlobalLoader.js +4 -7
  11. package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
  12. package/cjs/components/Kebab/Kebab.d.ts +10 -10
  13. package/cjs/components/Kebab/Kebab.js +1 -2
  14. package/cjs/components/Kebab/Kebab.js.map +1 -1
  15. package/cjs/components/Loader/Loader.d.ts +9 -9
  16. package/cjs/components/Loader/Loader.js +3 -3
  17. package/cjs/components/Loader/Loader.js.map +1 -1
  18. package/cjs/components/Paging/Paging.d.ts +2 -2
  19. package/cjs/components/Paging/Paging.js.map +1 -1
  20. package/cjs/components/Tabs/Indicator.styles.d.ts +1 -0
  21. package/cjs/components/Tabs/Indicator.styles.js +8 -1
  22. package/cjs/components/Tabs/Indicator.styles.js.map +1 -1
  23. package/cjs/components/Tabs/Tab.d.ts +11 -10
  24. package/cjs/components/Tabs/Tab.js +3 -2
  25. package/cjs/components/Tabs/Tab.js.map +1 -1
  26. package/cjs/components/Tabs/Tabs.d.ts +7 -12
  27. package/cjs/components/Tabs/Tabs.js +1 -6
  28. package/cjs/components/Tabs/Tabs.js.map +1 -1
  29. package/cjs/components/Toast/Toast.d.ts +4 -4
  30. package/cjs/components/Toast/Toast.js +2 -2
  31. package/cjs/components/Toast/Toast.js.map +1 -1
  32. package/cjs/components/Tooltip/Tooltip.d.ts +1 -1
  33. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  34. package/cjs/internal/Menu/Menu.d.ts +1 -2
  35. package/cjs/internal/Menu/Menu.js +0 -1
  36. package/cjs/internal/Menu/Menu.js.map +1 -1
  37. package/cjs/internal/PopupMenu/PopupMenu.d.ts +3 -7
  38. package/cjs/internal/PopupMenu/PopupMenu.js +0 -4
  39. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  40. package/components/Calendar/CalendarDay/CalendarDay.js +1 -1
  41. package/components/Calendar/CalendarDay/CalendarDay.js.map +1 -1
  42. package/components/Dropdown/Dropdown/Dropdown.js +2 -2
  43. package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
  44. package/components/Dropdown/Dropdown.d.ts +18 -19
  45. package/components/FxInput/FxInput/FxInput.js +3 -1
  46. package/components/FxInput/FxInput/FxInput.js.map +1 -1
  47. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js +4 -7
  48. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
  49. package/components/GlobalLoader/GlobalLoader.d.ts +20 -23
  50. package/components/Kebab/Kebab/Kebab.js +1 -2
  51. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  52. package/components/Kebab/Kebab.d.ts +10 -10
  53. package/components/Loader/Loader/Loader.js +3 -3
  54. package/components/Loader/Loader/Loader.js.map +1 -1
  55. package/components/Loader/Loader.d.ts +9 -9
  56. package/components/Paging/Paging/Paging.js.map +1 -1
  57. package/components/Paging/Paging.d.ts +2 -2
  58. package/components/Tabs/Indicator.styles/Indicator.styles.js +4 -1
  59. package/components/Tabs/Indicator.styles/Indicator.styles.js.map +1 -1
  60. package/components/Tabs/Indicator.styles.d.ts +1 -0
  61. package/components/Tabs/Tab/Tab.js +3 -1
  62. package/components/Tabs/Tab/Tab.js.map +1 -1
  63. package/components/Tabs/Tab.d.ts +11 -10
  64. package/components/Tabs/Tabs/Tabs.js +1 -6
  65. package/components/Tabs/Tabs/Tabs.js.map +1 -1
  66. package/components/Tabs/Tabs.d.ts +7 -12
  67. package/components/Toast/Toast/Toast.js +2 -2
  68. package/components/Toast/Toast/Toast.js.map +1 -1
  69. package/components/Toast/Toast.d.ts +4 -4
  70. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  71. package/components/Tooltip/Tooltip.d.ts +1 -1
  72. package/internal/Menu/Menu/Menu.js.map +1 -1
  73. package/internal/Menu/Menu.d.ts +1 -2
  74. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  75. package/internal/PopupMenu/PopupMenu.d.ts +3 -7
  76. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -3,6 +3,17 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [5.6.7](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.6.6...@skbkontur/react-ui@5.6.7) (2026-03-12)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **Calendar:** fix color calendar active weekend by figma ([ab605b6](https://github.com/skbkontur/retail-ui/commit/ab605b6b1933cd23fa2cc7553496812f4bdc37cf))
12
+
13
+
14
+
15
+
16
+
6
17
  ## [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
18
 
8
19
 
@@ -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":"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","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;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_warning","_Group","_Input","_CurrencyInput","_createPropsGetter","_CommonWrapper","_rootNode","_ThemeContext","_MaskedInput","_featureFlagsContext","_ReactUIFeatureFlagsContext","_SizeDecorator","_MathFunctionIcon","_FxInputRestoreBtn","_excluded","_class","_FxInput","FxInputDataTids","exports","root","FxInput","rootNode","withSize","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","input","getProps","createPropsGetter","defaultProps","renderMain","props","button","auto","default","createElement","FxInputRestoreBtn","size","onRestore","corners","disabled","borderless","buttonAriaLabel","Group","width","getInput","focus","blur","refInput","element","getLeftIcon","iconSizes","small","parseInt","theme","inputIconSizeSmall","medium","inputIconSizeMedium","large","inputIconSizeLarge","MathFunctionIcon","type","value","_size","mask","maskChar","formatChars","alwaysShowMask","signed","integerDigits","fractionDigits","hideTrailingZeros","originalCorners","rest","_objectWithoutPropertiesLoose2","_extends2","borderBottomLeftRadius","borderTopLeftRadius","commonInputProps","ref","CurrencyInput","onValueChange","featureFlags","fxInputUseMaskedInput","MaskedInput","leftIcon","align","Input","_inheritsLoose2","_proto","prototype","validateProps","warning","undefined","componentDidMount","componentDidUpdate","render","_this2","ReactUIFeatureFlagsContext","Consumer","flags","getFullReactUIFlagsContext","ThemeContext","CommonWrapper","rootNodeRef","setRootNode","React","Component","__KONTUR_REACT_UI__","displayName"],"sources":["FxInput.tsx"],"sourcesContent":["import type { AriaAttributes } from 'react';\nimport React from 'react';\nimport warning from 'warning';\n\nimport { Group } from '../Group';\nimport type { InputProps } from '../Input';\nimport { Input } from '../Input';\nimport type { CurrencyInputProps } from '../CurrencyInput';\nimport { CurrencyInput } from '../CurrencyInput';\nimport type { DefaultizedProps } from '../../lib/createPropsGetter';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { Override } from '../../typings/utility-types';\nimport type { CommonProps, CommonWrapperRestProps } 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';\nimport type { MaskedInputProps } from '../MaskedInput';\nimport { MaskedInput } from '../MaskedInput';\nimport type { ReactUIFeatureFlags } from '../../lib/featureFlagsContext';\nimport { getFullReactUIFlagsContext } from '../../lib/featureFlagsContext';\nimport { ReactUIFeatureFlagsContext } from '../../lib/featureFlagsContext/ReactUIFeatureFlagsContext';\nimport { withSize } from '../../lib/size/SizeDecorator';\n\nimport { MathFunctionIcon } from './MathFunctionIcon';\nimport { FxInputRestoreBtn } from './FxInputRestoreBtn';\n\nexport interface FxInputProps\n extends Pick<AriaAttributes, 'aria-label'>,\n CommonProps,\n Pick<Partial<MaskedInputProps>, 'alwaysShowMask' | 'mask' | 'maskChar' | 'formatChars'>,\n Override<\n Omit<CurrencyInputProps, 'alwaysShowMask' | 'mask' | 'maskChar' | 'formatChars'>,\n {\n /** Управляет видимостью кнопки Restore:\n * - true — кнопка Restore не отображается. Значение в поле является автоматически рассчитанным.\n * - false — кнопка Restore отображается в поле. Значение в поле считается отредактированным. */\n auto?: boolean;\n\n /** Тип поля. */\n type?: 'currency' | InputProps['type'];\n\n /** Событие нажатия на кнопку Restore. */\n onRestore?: () => void;\n\n /** Событие изменения value. */\n onValueChange: CurrencyInputProps['onValueChange'] | InputProps['onValueChange'];\n\n /** Значение поля. */\n value?: string | number;\n\n /** Задаёт ref поля. */\n refInput?: (element: CurrencyInput | Input | null) => void;\n\n /** Убирает лишние нули после запятой. */\n hideTrailingZeros?: boolean;\n\n /** Атрибут aria-label кнопке Restore. */\n buttonAriaLabel?: AriaAttributes['aria-label'];\n\n /** @ignore */\n corners?: React.CSSProperties;\n }\n > {}\n\nexport const FxInputDataTids = {\n root: 'FxInput__root',\n} as const;\n\ntype DefaultProps = Required<Pick<FxInputProps, 'width' | 'type' | 'value' | 'auto'>>;\ntype DefaultizedFxInputProps = DefaultizedProps<FxInputProps, DefaultProps>;\n\n/** В автополе можно вывести автоматически рассчитанное цифровое значение. В него можно передавать итог любого вычисления, например, сумму других полей, процент или более сложную функцию.\n *\n * У поля есть иконка математической формулы и кнопка Restore — с её помощью пользователь может вернуть исходное значение, если редактировал поле. Видимость кнопки и поведение при нажатии нужно прописывать в компоненте самостоятельно.\n */\n@rootNode\n@withSize\nexport class FxInput extends React.Component<FxInputProps> {\n public static __KONTUR_REACT_UI__ = 'FxInput';\n public static displayName = 'FxInput';\n\n public static defaultProps: DefaultProps = {\n width: 250,\n type: 'text',\n value: '',\n auto: false,\n };\n\n private theme!: Theme;\n private size!: SizeProp;\n private input: Input | CurrencyInput | null = null;\n\n private getProps = createPropsGetter(FxInput.defaultProps);\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private featureFlags!: ReactUIFeatureFlags;\n\n private validateProps(props: FxInputProps) {\n warning(\n props.type !== 'currency' && props.mask !== undefined,\n '[FxInput]: Prop \"mask\" is not supported when type=\"currency\"',\n );\n }\n\n public componentDidMount() {\n this.validateProps(this.getProps());\n }\n\n public componentDidUpdate() {\n this.validateProps(this.getProps());\n }\n\n public render() {\n return (\n <ReactUIFeatureFlagsContext.Consumer>\n {(flags) => {\n this.featureFlags = getFullReactUIFlagsContext(flags);\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }}\n </ReactUIFeatureFlagsContext.Consumer>\n );\n }\n\n public renderMain = (props: CommonWrapperRestProps<DefaultizedFxInputProps>) => {\n const button = props.auto ? null : (\n <FxInputRestoreBtn\n size={props.size}\n onRestore={props.onRestore}\n corners={props.corners}\n disabled={props.disabled}\n borderless={props.borderless}\n aria-label={props.buttonAriaLabel}\n />\n );\n\n return (\n <Group data-tid={FxInputDataTids.root} width={props.width}>\n {button}\n {this.getInput(props)}\n </Group>\n );\n };\n\n /** Программно устанавливает фокус на поле.\n * Появляется фокусная рамка, элемент получает клавиатурные события и воспринимается как текущий элемент для чтения скринридерами.\n * @public\n */\n public focus = () => {\n if (this.input) {\n this.input.focus();\n }\n };\n\n /** Программно снимает фокус с кнопки.\n * @public\n */\n public blur = () => {\n if (this.input) {\n this.input.blur();\n }\n };\n\n private refInput = (element: Input | CurrencyInput | null) => {\n this.input = element;\n\n if (this.props.refInput) {\n this.props.refInput(this.input);\n }\n };\n\n private getLeftIcon = (props: FxInputProps) => {\n if (!props.auto) {\n return null;\n }\n\n const iconSizes: Record<SizeProp, number> = {\n small: parseInt(this.theme.inputIconSizeSmall),\n medium: parseInt(this.theme.inputIconSizeMedium),\n large: parseInt(this.theme.inputIconSizeLarge),\n };\n const size = this.size;\n\n return <MathFunctionIcon size={iconSizes[size]} />;\n };\n\n private getInput = (props: FxInputProps) => {\n const {\n type,\n onRestore,\n auto,\n refInput,\n value,\n width,\n size: _size,\n mask,\n maskChar,\n formatChars,\n alwaysShowMask,\n signed,\n integerDigits,\n fractionDigits,\n hideTrailingZeros,\n buttonAriaLabel,\n corners: originalCorners,\n ...rest\n } = props;\n const corners: InputProps['corners'] = auto\n ? originalCorners\n : { borderBottomLeftRadius: 0, borderTopLeftRadius: 0, ...originalCorners };\n const size = this.size;\n const commonInputProps = {\n corners,\n size,\n width: '100%',\n ref: this.refInput,\n ...rest,\n };\n\n if (type === 'currency') {\n return (\n <CurrencyInput\n {...commonInputProps}\n signed={signed}\n integerDigits={integerDigits}\n fractionDigits={fractionDigits}\n value={value as CurrencyInputProps['value']}\n onValueChange={this.props.onValueChange as CurrencyInputProps['onValueChange']}\n />\n );\n }\n if (this.featureFlags.fxInputUseMaskedInput && mask) {\n return (\n <MaskedInput\n {...commonInputProps}\n leftIcon={this.getLeftIcon(props)}\n align=\"right\"\n mask={mask}\n maskChar={maskChar}\n formatChars={formatChars}\n alwaysShowMask={alwaysShowMask}\n value={value as MaskedInputProps['value']}\n onValueChange={this.props.onValueChange as MaskedInputProps['onValueChange']}\n />\n );\n }\n return (\n <Input\n {...commonInputProps}\n leftIcon={this.getLeftIcon(props)}\n align=\"right\"\n mask={mask}\n maskChar={maskChar}\n formatChars={formatChars}\n alwaysShowMask={alwaysShowMask}\n type={type}\n value={value as InputProps['value']}\n onValueChange={this.props.onValueChange as InputProps['onValueChange']}\n />\n );\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_warning","_Group","_Input","_CurrencyInput","_createPropsGetter","_CommonWrapper","_rootNode","_ThemeContext","_MaskedInput","_featureFlagsContext","_ReactUIFeatureFlagsContext","_SizeDecorator","_MathFunctionIcon","_FxInputRestoreBtn","_excluded","_class","_FxInput","FxInputDataTids","exports","root","FxInput","rootNode","withSize","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","input","getProps","createPropsGetter","defaultProps","renderMain","props","button","auto","default","createElement","FxInputRestoreBtn","size","onRestore","corners","disabled","borderless","buttonAriaLabel","Group","width","getInput","focus","blur","refInput","element","getLeftIcon","iconSizes","small","parseInt","theme","inputIconSizeSmall","medium","inputIconSizeMedium","large","inputIconSizeLarge","MathFunctionIcon","type","value","_size","mask","maskChar","formatChars","alwaysShowMask","signed","integerDigits","fractionDigits","hideTrailingZeros","originalCorners","rest","_objectWithoutPropertiesLoose2","_extends2","borderBottomLeftRadius","borderTopLeftRadius","commonInputProps","ref","CurrencyInput","onValueChange","featureFlags","fxInputUseMaskedInput","MaskedInput","leftIcon","align","Input","_inheritsLoose2","_proto","prototype","validateProps","undefined","warning","componentDidMount","componentDidUpdate","render","_this2","ReactUIFeatureFlagsContext","Consumer","flags","getFullReactUIFlagsContext","ThemeContext","CommonWrapper","rootNodeRef","setRootNode","React","Component","__KONTUR_REACT_UI__","displayName"],"sources":["FxInput.tsx"],"sourcesContent":["import type { AriaAttributes } from 'react';\nimport React from 'react';\nimport warning from 'warning';\n\nimport { Group } from '../Group';\nimport type { InputProps } from '../Input';\nimport { Input } from '../Input';\nimport type { CurrencyInputProps } from '../CurrencyInput';\nimport { CurrencyInput } from '../CurrencyInput';\nimport type { DefaultizedProps } from '../../lib/createPropsGetter';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { Override } from '../../typings/utility-types';\nimport type { CommonProps, CommonWrapperRestProps } 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';\nimport type { MaskedInputProps } from '../MaskedInput';\nimport { MaskedInput } from '../MaskedInput';\nimport type { ReactUIFeatureFlags } from '../../lib/featureFlagsContext';\nimport { getFullReactUIFlagsContext } from '../../lib/featureFlagsContext';\nimport { ReactUIFeatureFlagsContext } from '../../lib/featureFlagsContext/ReactUIFeatureFlagsContext';\nimport { withSize } from '../../lib/size/SizeDecorator';\n\nimport { MathFunctionIcon } from './MathFunctionIcon';\nimport { FxInputRestoreBtn } from './FxInputRestoreBtn';\n\nexport interface FxInputProps\n extends Pick<AriaAttributes, 'aria-label'>,\n CommonProps,\n Pick<Partial<MaskedInputProps>, 'alwaysShowMask' | 'mask' | 'maskChar' | 'formatChars'>,\n Override<\n Omit<CurrencyInputProps, 'alwaysShowMask' | 'mask' | 'maskChar' | 'formatChars'>,\n {\n /** Управляет видимостью кнопки Restore:\n * - true — кнопка Restore не отображается. Значение в поле является автоматически рассчитанным.\n * - false — кнопка Restore отображается в поле. Значение в поле считается отредактированным. */\n auto?: boolean;\n\n /** Тип поля. */\n type?: 'currency' | InputProps['type'];\n\n /** Событие нажатия на кнопку Restore. */\n onRestore?: () => void;\n\n /** Событие изменения value. */\n onValueChange: CurrencyInputProps['onValueChange'] | InputProps['onValueChange'];\n\n /** Значение поля. */\n value?: string | number;\n\n /** Задаёт ref поля. */\n refInput?: (element: CurrencyInput | Input | null) => void;\n\n /** Убирает лишние нули после запятой. */\n hideTrailingZeros?: boolean;\n\n /** Атрибут aria-label кнопке Restore. */\n buttonAriaLabel?: AriaAttributes['aria-label'];\n\n /** @ignore */\n corners?: React.CSSProperties;\n }\n > {}\n\nexport const FxInputDataTids = {\n root: 'FxInput__root',\n} as const;\n\ntype DefaultProps = Required<Pick<FxInputProps, 'width' | 'type' | 'value' | 'auto'>>;\ntype DefaultizedFxInputProps = DefaultizedProps<FxInputProps, DefaultProps>;\n\n/** В автополе можно вывести автоматически рассчитанное цифровое значение. В него можно передавать итог любого вычисления, например, сумму других полей, процент или более сложную функцию.\n *\n * У поля есть иконка математической формулы и кнопка Restore — с её помощью пользователь может вернуть исходное значение, если редактировал поле. Видимость кнопки и поведение при нажатии нужно прописывать в компоненте самостоятельно.\n */\n@rootNode\n@withSize\nexport class FxInput extends React.Component<FxInputProps> {\n public static __KONTUR_REACT_UI__ = 'FxInput';\n public static displayName = 'FxInput';\n\n public static defaultProps: DefaultProps = {\n width: 250,\n type: 'text',\n value: '',\n auto: false,\n };\n\n private theme!: Theme;\n private size!: SizeProp;\n private input: Input | CurrencyInput | null = null;\n\n private getProps = createPropsGetter(FxInput.defaultProps);\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private featureFlags!: ReactUIFeatureFlags;\n\n private validateProps(props: FxInputProps) {\n if (props.type === 'currency' && props.mask !== undefined) {\n warning(false, '[FxInput]: Prop \"mask\" is not supported when type=\"currency\"');\n }\n }\n\n public componentDidMount() {\n this.validateProps(this.getProps());\n }\n\n public componentDidUpdate() {\n this.validateProps(this.getProps());\n }\n\n public render() {\n return (\n <ReactUIFeatureFlagsContext.Consumer>\n {(flags) => {\n this.featureFlags = getFullReactUIFlagsContext(flags);\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }}\n </ReactUIFeatureFlagsContext.Consumer>\n );\n }\n\n public renderMain = (props: CommonWrapperRestProps<DefaultizedFxInputProps>) => {\n const button = props.auto ? null : (\n <FxInputRestoreBtn\n size={props.size}\n onRestore={props.onRestore}\n corners={props.corners}\n disabled={props.disabled}\n borderless={props.borderless}\n aria-label={props.buttonAriaLabel}\n />\n );\n\n return (\n <Group data-tid={FxInputDataTids.root} width={props.width}>\n {button}\n {this.getInput(props)}\n </Group>\n );\n };\n\n /** Программно устанавливает фокус на поле.\n * Появляется фокусная рамка, элемент получает клавиатурные события и воспринимается как текущий элемент для чтения скринридерами.\n * @public\n */\n public focus = () => {\n if (this.input) {\n this.input.focus();\n }\n };\n\n /** Программно снимает фокус с кнопки.\n * @public\n */\n public blur = () => {\n if (this.input) {\n this.input.blur();\n }\n };\n\n private refInput = (element: Input | CurrencyInput | null) => {\n this.input = element;\n\n if (this.props.refInput) {\n this.props.refInput(this.input);\n }\n };\n\n private getLeftIcon = (props: FxInputProps) => {\n if (!props.auto) {\n return null;\n }\n\n const iconSizes: Record<SizeProp, number> = {\n small: parseInt(this.theme.inputIconSizeSmall),\n medium: parseInt(this.theme.inputIconSizeMedium),\n large: parseInt(this.theme.inputIconSizeLarge),\n };\n const size = this.size;\n\n return <MathFunctionIcon size={iconSizes[size]} />;\n };\n\n private getInput = (props: FxInputProps) => {\n const {\n type,\n onRestore,\n auto,\n refInput,\n value,\n width,\n size: _size,\n mask,\n maskChar,\n formatChars,\n alwaysShowMask,\n signed,\n integerDigits,\n fractionDigits,\n hideTrailingZeros,\n buttonAriaLabel,\n corners: originalCorners,\n ...rest\n } = props;\n const corners: InputProps['corners'] = auto\n ? originalCorners\n : { borderBottomLeftRadius: 0, borderTopLeftRadius: 0, ...originalCorners };\n const size = this.size;\n const commonInputProps = {\n corners,\n size,\n width: '100%',\n ref: this.refInput,\n ...rest,\n };\n\n if (type === 'currency') {\n return (\n <CurrencyInput\n {...commonInputProps}\n signed={signed}\n integerDigits={integerDigits}\n fractionDigits={fractionDigits}\n value={value as CurrencyInputProps['value']}\n onValueChange={this.props.onValueChange as CurrencyInputProps['onValueChange']}\n />\n );\n }\n if (this.featureFlags.fxInputUseMaskedInput && mask) {\n return (\n <MaskedInput\n {...commonInputProps}\n leftIcon={this.getLeftIcon(props)}\n align=\"right\"\n mask={mask}\n maskChar={maskChar}\n formatChars={formatChars}\n alwaysShowMask={alwaysShowMask}\n value={value as MaskedInputProps['value']}\n onValueChange={this.props.onValueChange as MaskedInputProps['onValueChange']}\n />\n );\n }\n return (\n <Input\n {...commonInputProps}\n leftIcon={this.getLeftIcon(props)}\n align=\"right\"\n mask={mask}\n maskChar={maskChar}\n formatChars={formatChars}\n alwaysShowMask={alwaysShowMask}\n type={type}\n value={value as InputProps['value']}\n onValueChange={this.props.onValueChange as InputProps['onValueChange']}\n />\n );\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,25 +1,25 @@
1
1
  import React from 'react';
2
2
  import type { TGetRootNode } from '../../lib/rootNode';
3
3
  export interface GlobalLoaderProps {
4
- /** Устанавливает задержку в миллисекундах до появления лоадера. */
4
+ /** Задержка до появления лоадера в миллисекундах. */
5
5
  delayBeforeShow?: number;
6
- /** Устанавливает задержку в миллисекундах до исчезновения лоадера. */
6
+ /** Задержка до исчезновения лоадера в миллисекундах. */
7
7
  delayBeforeHide?: number;
8
- /** Устанавливает ожидаемое время(ms) ответа сервера. */
8
+ /** Ожидаемое время(ms) ответа сервера. */
9
9
  expectedResponseTime?: number;
10
- /** Определяет, нужно ли показывать анимацию лоадера в виде спиннера. */
10
+ /** Показывать лоадер в виде бегающей полоски. */
11
11
  rejected?: boolean;
12
- /** Определяет, показывать ли лоадер. */
12
+ /** Показывать лоадер. */
13
13
  active?: boolean;
14
- /** Отключает анимацию. */
14
+ /** Отключить анимацию. */
15
15
  disableAnimations?: boolean;
16
- /** Задает коллбек, вызывающийся после появления лоадера. */
16
+ /** Событие после появления лоадера. */
17
17
  onStart?(): void;
18
- /** Задает коллбек, вызывающийся после исчезновения лоадера. */
18
+ /** Событие после исчезновения лоадера. */
19
19
  onDone?(): void;
20
- /** Задает коллбек, вызывающийся после вызова GlobalLoader.reject(). Или после установки пропа rejected = true. */
20
+ /** Событие после вызова reject. */
21
21
  onReject?(): void;
22
- /** Задает коллбек, вызывающийся после вызова GlobalLoader.accept() или установки пропа rejected = false. */
22
+ /** Событие после вызова accept. */
23
23
  onAccept?(): void;
24
24
  }
25
25
  export interface GlobalLoaderState {
@@ -37,16 +37,13 @@ export declare const GlobalLoaderDataTids: {
37
37
  };
38
38
  type DefaultProps = Required<Pick<GlobalLoaderProps, 'expectedResponseTime' | 'delayBeforeShow' | 'delayBeforeHide' | 'rejected' | 'active' | 'disableAnimations'>>;
39
39
  /**
40
- * Глобальный лоадер `GlobalLoader` — это универсальный индикатор обмена данными с сервером.
40
+ * Универсальный индикатор обмена данными с сервером.
41
41
  * Он появляется у верхней границы экрана и выглядит как тоненькая полоска, окрашенная в фирменный цвет продукта.
42
42
  *
43
- * `GlobalLoader` может быть только один в приложении. Поэтому, каждый новый экземпляр компонента "убивает" предыдущий экземпляр, и начинает перехватывать статические методы.
43
+ * Глобальный лоадер может быть только один в приложении. Поэтому каждый новый экземпляр компонента заменяет предыдущий экземпляр и начинает перехватывать статические методы.
44
44
  *
45
45
  * Предполагается монтирование компонента в единственном месте. И управление им через статические методы, либо через пропсы.
46
46
  *
47
- * `GlobalLoader` работает в двух режимах:
48
- * * как прогресс-бар, примерно показывает ход получения данных от сервера.
49
- * * как спиннер, когда есть проблемы с соединением.
50
47
  */
51
48
  export declare class GlobalLoader extends React.Component<GlobalLoaderProps, GlobalLoaderState> {
52
49
  static __KONTUR_REACT_UI__: string;
@@ -64,29 +61,29 @@ export declare class GlobalLoader extends React.Component<GlobalLoaderProps, Glo
64
61
  componentDidUpdate(prevProps: Readonly<GlobalLoaderProps>): void;
65
62
  render(): false | React.JSX.Element;
66
63
  /**
67
- * Запускает анимацию лоадера <br />
68
- * Равносильно установке пропа `active = true`
64
+ * Запускает анимацию лоадера. <br />
65
+ * Равносильно установке пропа `active = true`.
69
66
  *
70
67
  * @public
71
68
  */
72
69
  static start: (expectedResponseTime?: number) => void;
73
70
  /**
74
- * Показывает анимацию успешного завершения загрузки <br />
75
- * Равносильно установке пропа `active = false`
71
+ * Показывает анимацию успешного завершения загрузки. <br />
72
+ * Равносильно установке пропа `active = false`.
76
73
  *
77
74
  * @public
78
75
  */
79
76
  static done: () => void;
80
77
  /**
81
- * Переключает анимацию лоадера в состояние спиннера <br />
82
- * Равносильно установке пропа `rejected = true`
78
+ * Переключает анимацию лоадера в состояние бегающей полоски. <br />
79
+ * Равносильно установке пропа `rejected = true`.
83
80
  *
84
81
  * @public
85
82
  */
86
83
  static reject: () => void;
87
84
  /**
88
- * Возвращает лоадер из состояния спиннера в обычное и продолжает анимацию с того места, на котором она была прерван <br />
89
- * Равносильно установке пропа `rejected = false`
85
+ * Возвращает лоадер из состояния бегающей полоски в обычное и продолжает анимацию с того места, на котором она была прервана. <br />
86
+ * Равносильно установке пропа `rejected = false`.
90
87
  *
91
88
  * @public
92
89
  */
@@ -66,16 +66,13 @@ var GlobalLoaderDataTids = exports.GlobalLoaderDataTids = {
66
66
  var currentGlobalLoader;
67
67
 
68
68
  /**
69
- * Глобальный лоадер `GlobalLoader` — это универсальный индикатор обмена данными с сервером.
69
+ * Универсальный индикатор обмена данными с сервером.
70
70
  * Он появляется у верхней границы экрана и выглядит как тоненькая полоска, окрашенная в фирменный цвет продукта.
71
71
  *
72
- * `GlobalLoader` может быть только один в приложении. Поэтому, каждый новый экземпляр компонента "убивает" предыдущий экземпляр, и начинает перехватывать статические методы.
72
+ * Глобальный лоадер может быть только один в приложении. Поэтому каждый новый экземпляр компонента заменяет предыдущий экземпляр и начинает перехватывать статические методы.
73
73
  *
74
74
  * Предполагается монтирование компонента в единственном месте. И управление им через статические методы, либо через пропсы.
75
75
  *
76
- * `GlobalLoader` работает в двух режимах:
77
- * * как прогресс-бар, примерно показывает ход получения данных от сервера.
78
- * * как спиннер, когда есть проблемы с соединением.
79
76
  */var
80
77
 
81
78
  GlobalLoader = exports.GlobalLoader = (0, _rootNode.rootNode)(_class = (_GlobalLoader = /*#__PURE__*/function (_React$Component) {
@@ -279,8 +276,8 @@ GlobalLoader = exports.GlobalLoader = (0, _rootNode.rootNode)(_class = (_GlobalL
279
276
  });
280
277
  };_this.state = { started: false, visible: false, done: false, rejected: false, accept: false, dead: false, successAnimationInProgress: false, expectedResponseTime: _this.getProps().expectedResponseTime };return _this;}(0, _inheritsLoose2.default)(GlobalLoader, _React$Component);var _proto = GlobalLoader.prototype;_proto.componentDidMount = function componentDidMount() {var _currentGlobalLoader;(_currentGlobalLoader = currentGlobalLoader) == null || _currentGlobalLoader.kill(); // eslint-disable-next-line @typescript-eslint/no-this-alias
281
278
  currentGlobalLoader = this;var _this$getProps = this.getProps(),active = _this$getProps.active,rejected = _this$getProps.rejected;if (active) {this.setActive();}if (rejected) {this.setReject(true);}};_proto.componentWillUnmount = function componentWillUnmount() {currentGlobalLoader = null;};_proto.componentDidUpdate = function componentDidUpdate(prevProps) {var _this$getProps2 = this.getProps(),expectedResponseTime = _this$getProps2.expectedResponseTime,rejected = _this$getProps2.rejected,active = _this$getProps2.active;if (expectedResponseTime !== prevProps.expectedResponseTime) {this.setState({ expectedResponseTime: expectedResponseTime });}if (rejected !== prevProps.rejected) {this.setReject(rejected);}if (active !== prevProps.active) {if (active) {this.setActive();} else {this.setDone();}}};_proto.render = function render() {var status = 'standard';if (this.state.done) {status = 'success';} else if (this.state.rejected) {status = 'error';} else if (this.state.accept) {status = 'accept';}var _this$getProps3 = this.getProps(),delayBeforeHide = _this$getProps3.delayBeforeHide,disableAnimations = _this$getProps3.disableAnimations;return !this.state.dead && this.state.visible && /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: this.setRootNode }, this.props), /*#__PURE__*/_react.default.createElement(_GlobalLoaderView.GlobalLoaderView, { expectedResponseTime: this.state.expectedResponseTime, delayBeforeHide: delayBeforeHide, status: status, "data-tid": GlobalLoaderDataTids.root, disableAnimations: disableAnimations }));} /**
282
- * Запускает анимацию лоадера <br />
283
- * Равносильно установке пропа `active = true`
279
+ * Запускает анимацию лоадера. <br />
280
+ * Равносильно установке пропа `active = true`.
284
281
  *
285
282
  * @public
286
283
  */;_proto.updateExpectedResponseTime = function updateExpectedResponseTime(expectedResponseTime) {this.setState({ expectedResponseTime: expectedResponseTime });};return GlobalLoader;}(_react.default.Component), _GlobalLoader.__KONTUR_REACT_UI__ = 'GlobalLoader', _GlobalLoader.displayName = 'GlobalLoader', _GlobalLoader.defaultProps = { expectedResponseTime: 1000, delayBeforeShow: 1000, delayBeforeHide: 1000, rejected: false, active: false, disableAnimations: _currentEnvironment.isTestEnv }, _GlobalLoader.start = function (expectedResponseTime) {var _currentGlobalLoader2;(_currentGlobalLoader2 = currentGlobalLoader) == null || _currentGlobalLoader2.setActive();if (typeof expectedResponseTime === 'number') {var _currentGlobalLoader3;(_currentGlobalLoader3 = currentGlobalLoader) == null || _currentGlobalLoader3.updateExpectedResponseTime(expectedResponseTime);}}, _GlobalLoader.done = function () {var _currentGlobalLoader4;(_currentGlobalLoader4 = currentGlobalLoader) == null || _currentGlobalLoader4.setDone();}, _GlobalLoader.reject = function () {var _currentGlobalLoader5;(_currentGlobalLoader5 = currentGlobalLoader) == null || _currentGlobalLoader5.setReject(true);}, _GlobalLoader.accept = function () {var _currentGlobalLoader6;(_currentGlobalLoader6 = currentGlobalLoader) == null || _currentGlobalLoader6.setReject(false);}, _GlobalLoader)) || _class;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_lodash","_currentEnvironment","_CommonWrapper","_rootNode","_createPropsGetter","_GlobalLoaderView","_class","_GlobalLoader","GlobalLoaderDataTids","exports","root","currentGlobalLoader","GlobalLoader","rootNode","_React$Component","props","_this","call","getProps","createPropsGetter","defaultProps","startTask","debounce","setState","visible","onStart","delayBeforeShow","stopTask","successAnimationInProgress","started","onDone","delayBeforeHide","resumeTaskAfterSuccessAnimation","setActive","cancel","state","done","rejected","accept","setReject","setDone","reject","active","onReject","onAccept","kill","dead","expectedResponseTime","_inheritsLoose2","default","_proto","prototype","componentDidMount","_currentGlobalLoader","_this$getProps","componentWillUnmount","componentDidUpdate","prevProps","_this$getProps2","render","status","_this$getProps3","disableAnimations","createElement","CommonWrapper","_extends2","rootNodeRef","setRootNode","GlobalLoaderView","updateExpectedResponseTime","React","Component","__KONTUR_REACT_UI__","displayName","isTestEnv","start","_currentGlobalLoader2","_currentGlobalLoader3","_currentGlobalLoader4","_currentGlobalLoader5","_currentGlobalLoader6"],"sources":["GlobalLoader.tsx"],"sourcesContent":["import React from 'react';\nimport debounce from 'lodash.debounce';\n\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport type { GlobalLoaderViewProps } from './GlobalLoaderView';\nimport { GlobalLoaderView } from './GlobalLoaderView';\n\nexport interface GlobalLoaderProps {\n /** Устанавливает задержку в миллисекундах до появления лоадера. */\n delayBeforeShow?: number;\n\n /** Устанавливает задержку в миллисекундах до исчезновения лоадера. */\n delayBeforeHide?: number;\n\n /** Устанавливает ожидаемое время(ms) ответа сервера. */\n expectedResponseTime?: number;\n\n /** Определяет, нужно ли показывать анимацию лоадера в виде спиннера. */\n rejected?: boolean;\n\n /** Определяет, показывать ли лоадер. */\n active?: boolean;\n\n /** Отключает анимацию. */\n disableAnimations?: boolean;\n\n /** Задает коллбек, вызывающийся после появления лоадера. */\n onStart?(): void;\n\n /** Задает коллбек, вызывающийся после исчезновения лоадера. */\n onDone?(): void;\n\n /** Задает коллбек, вызывающийся после вызова GlobalLoader.reject(). Или после установки пропа rejected = true. */\n onReject?(): void;\n\n /** Задает коллбек, вызывающийся после вызова GlobalLoader.accept() или установки пропа rejected = false. */\n onAccept?(): void;\n}\nexport interface GlobalLoaderState {\n visible: boolean;\n done: boolean;\n rejected: boolean;\n accept: boolean;\n dead: boolean;\n successAnimationInProgress: boolean;\n expectedResponseTime: number;\n started: boolean;\n}\n\nexport const GlobalLoaderDataTids = {\n root: 'GlobalLoader',\n} as const;\n\ntype DefaultProps = Required<\n Pick<\n GlobalLoaderProps,\n 'expectedResponseTime' | 'delayBeforeShow' | 'delayBeforeHide' | 'rejected' | 'active' | 'disableAnimations'\n >\n>;\n\nlet currentGlobalLoader: GlobalLoader | null;\n\n/**\n * Глобальный лоадер `GlobalLoader` — это универсальный индикатор обмена данными с сервером.\n * Он появляется у верхней границы экрана и выглядит как тоненькая полоска, окрашенная в фирменный цвет продукта.\n *\n * `GlobalLoader` может быть только один в приложении. Поэтому, каждый новый экземпляр компонента \"убивает\" предыдущий экземпляр, и начинает перехватывать статические методы.\n *\n * Предполагается монтирование компонента в единственном месте. И управление им через статические методы, либо через пропсы.\n *\n * `GlobalLoader` работает в двух режимах:\n * * как прогресс-бар, примерно показывает ход получения данных от сервера.\n * * как спиннер, когда есть проблемы с соединением.\n */\n@rootNode\nexport class GlobalLoader extends React.Component<GlobalLoaderProps, GlobalLoaderState> {\n public static __KONTUR_REACT_UI__ = 'GlobalLoader';\n public static displayName = 'GlobalLoader';\n\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private getProps = createPropsGetter(GlobalLoader.defaultProps);\n\n private readonly startTask = debounce(() => {\n this.setState({ visible: true });\n this.props.onStart?.();\n }, this.getProps().delayBeforeShow);\n\n private readonly stopTask = debounce(() => {\n this.setState({ visible: false, successAnimationInProgress: false, started: false });\n this.props.onDone?.();\n }, this.getProps().delayBeforeHide);\n\n private readonly resumeTaskAfterSuccessAnimation = debounce(() => {\n this.setActive();\n }, this.getProps().delayBeforeHide);\n\n public static defaultProps: DefaultProps = {\n expectedResponseTime: 1000,\n delayBeforeShow: 1000,\n delayBeforeHide: 1000,\n rejected: false,\n active: false,\n disableAnimations: isTestEnv,\n };\n\n constructor(props: GlobalLoaderProps) {\n super(props);\n this.state = {\n started: false,\n visible: false,\n done: false,\n rejected: false,\n accept: false,\n dead: false,\n successAnimationInProgress: false,\n expectedResponseTime: this.getProps().expectedResponseTime,\n };\n }\n componentDidMount() {\n currentGlobalLoader?.kill();\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n currentGlobalLoader = this;\n const { active, rejected } = this.getProps();\n if (active) {\n this.setActive();\n }\n if (rejected) {\n this.setReject(true);\n }\n }\n\n componentWillUnmount(): void {\n currentGlobalLoader = null;\n }\n\n componentDidUpdate(prevProps: Readonly<GlobalLoaderProps>) {\n const { expectedResponseTime, rejected, active } = this.getProps();\n if (expectedResponseTime !== prevProps.expectedResponseTime) {\n this.setState({ expectedResponseTime });\n }\n if (rejected !== prevProps.rejected) {\n this.setReject(rejected);\n }\n if (active !== prevProps.active) {\n if (active) {\n this.setActive();\n } else {\n this.setDone();\n }\n }\n }\n\n public render() {\n let status: GlobalLoaderViewProps['status'] = 'standard';\n\n if (this.state.done) {\n status = 'success';\n } else if (this.state.rejected) {\n status = 'error';\n } else if (this.state.accept) {\n status = 'accept';\n }\n const { delayBeforeHide, disableAnimations } = this.getProps();\n return (\n !this.state.dead &&\n this.state.visible && (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <GlobalLoaderView\n expectedResponseTime={this.state.expectedResponseTime}\n delayBeforeHide={delayBeforeHide}\n status={status}\n data-tid={GlobalLoaderDataTids.root}\n disableAnimations={disableAnimations}\n />\n </CommonWrapper>\n )\n );\n }\n\n /**\n * Запускает анимацию лоадера <br />\n * Равносильно установке пропа `active = true`\n *\n * @public\n */\n public static start = (expectedResponseTime?: number) => {\n currentGlobalLoader?.setActive();\n if (typeof expectedResponseTime === 'number') {\n currentGlobalLoader?.updateExpectedResponseTime(expectedResponseTime);\n }\n };\n\n /**\n * Показывает анимацию успешного завершения загрузки <br />\n * Равносильно установке пропа `active = false`\n *\n * @public\n */\n public static done = () => {\n currentGlobalLoader?.setDone();\n };\n\n /**\n * Переключает анимацию лоадера в состояние спиннера <br />\n * Равносильно установке пропа `rejected = true`\n *\n * @public\n */\n public static reject = () => {\n currentGlobalLoader?.setReject(true);\n };\n\n /**\n * Возвращает лоадер из состояния спиннера в обычное и продолжает анимацию с того места, на котором она была прерван <br />\n * Равносильно установке пропа `rejected = false`\n *\n * @public\n */\n public static accept = () => {\n currentGlobalLoader?.setReject(false);\n };\n\n public setActive = () => {\n this.startTask.cancel();\n if (this.state.successAnimationInProgress) {\n this.resumeTaskAfterSuccessAnimation();\n } else {\n this.setState({ visible: false, done: false, rejected: false, accept: false, started: true });\n if (this.getProps().rejected) {\n this.setReject(true);\n } else {\n this.stopTask.cancel();\n this.startTask();\n }\n }\n };\n\n public setDone = () => {\n if (!this.state.started) {\n return;\n }\n this.setState({ done: true, successAnimationInProgress: true });\n this.startTask.cancel();\n this.resumeTaskAfterSuccessAnimation.cancel();\n this.stopTask();\n };\n\n public setReject = (reject: boolean) => {\n if (!this.state.visible && (this.state.started || this.getProps().active)) {\n this.setState({ visible: true });\n }\n this.startTask.cancel();\n this.stopTask.cancel();\n if (reject) {\n this.props.onReject?.();\n } else if (this.state.rejected) {\n this.setState({ accept: true });\n this.props.onAccept?.();\n }\n this.setState({ rejected: reject });\n };\n\n public updateExpectedResponseTime(expectedResponseTime: number) {\n this.setState({ expectedResponseTime });\n }\n\n public kill = () => {\n this.stopTask.cancel();\n this.startTask.cancel();\n this.resumeTaskAfterSuccessAnimation.cancel();\n this.setState({\n dead: true,\n });\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_lodash","_currentEnvironment","_CommonWrapper","_rootNode","_createPropsGetter","_GlobalLoaderView","_class","_GlobalLoader","GlobalLoaderDataTids","exports","root","currentGlobalLoader","GlobalLoader","rootNode","_React$Component","props","_this","call","getProps","createPropsGetter","defaultProps","startTask","debounce","setState","visible","onStart","delayBeforeShow","stopTask","successAnimationInProgress","started","onDone","delayBeforeHide","resumeTaskAfterSuccessAnimation","setActive","cancel","state","done","rejected","accept","setReject","setDone","reject","active","onReject","onAccept","kill","dead","expectedResponseTime","_inheritsLoose2","default","_proto","prototype","componentDidMount","_currentGlobalLoader","_this$getProps","componentWillUnmount","componentDidUpdate","prevProps","_this$getProps2","render","status","_this$getProps3","disableAnimations","createElement","CommonWrapper","_extends2","rootNodeRef","setRootNode","GlobalLoaderView","updateExpectedResponseTime","React","Component","__KONTUR_REACT_UI__","displayName","isTestEnv","start","_currentGlobalLoader2","_currentGlobalLoader3","_currentGlobalLoader4","_currentGlobalLoader5","_currentGlobalLoader6"],"sources":["GlobalLoader.tsx"],"sourcesContent":["import React from 'react';\nimport debounce from 'lodash.debounce';\n\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport type { GlobalLoaderViewProps } from './GlobalLoaderView';\nimport { GlobalLoaderView } from './GlobalLoaderView';\n\nexport interface GlobalLoaderProps {\n /** Задержка до появления лоадера в миллисекундах. */\n delayBeforeShow?: number;\n\n /** Задержка до исчезновения лоадера в миллисекундах. */\n delayBeforeHide?: number;\n\n /** Ожидаемое время(ms) ответа сервера. */\n expectedResponseTime?: number;\n\n /** Показывать лоадер в виде бегающей полоски. */\n rejected?: boolean;\n\n /** Показывать лоадер. */\n active?: boolean;\n\n /** Отключить анимацию. */\n disableAnimations?: boolean;\n\n /** Событие после появления лоадера. */\n onStart?(): void;\n\n /** Событие после исчезновения лоадера. */\n onDone?(): void;\n\n /** Событие после вызова reject. */\n onReject?(): void;\n\n /** Событие после вызова accept. */\n onAccept?(): void;\n}\nexport interface GlobalLoaderState {\n visible: boolean;\n done: boolean;\n rejected: boolean;\n accept: boolean;\n dead: boolean;\n successAnimationInProgress: boolean;\n expectedResponseTime: number;\n started: boolean;\n}\n\nexport const GlobalLoaderDataTids = {\n root: 'GlobalLoader',\n} as const;\n\ntype DefaultProps = Required<\n Pick<\n GlobalLoaderProps,\n 'expectedResponseTime' | 'delayBeforeShow' | 'delayBeforeHide' | 'rejected' | 'active' | 'disableAnimations'\n >\n>;\n\nlet currentGlobalLoader: GlobalLoader | null;\n\n/**\n * Универсальный индикатор обмена данными с сервером.\n * Он появляется у верхней границы экрана и выглядит как тоненькая полоска, окрашенная в фирменный цвет продукта.\n *\n * Глобальный лоадер может быть только один в приложении. Поэтому каждый новый экземпляр компонента заменяет предыдущий экземпляр и начинает перехватывать статические методы.\n *\n * Предполагается монтирование компонента в единственном месте. И управление им через статические методы, либо через пропсы.\n *\n */\n@rootNode\nexport class GlobalLoader extends React.Component<GlobalLoaderProps, GlobalLoaderState> {\n public static __KONTUR_REACT_UI__ = 'GlobalLoader';\n public static displayName = 'GlobalLoader';\n\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private getProps = createPropsGetter(GlobalLoader.defaultProps);\n\n private readonly startTask = debounce(() => {\n this.setState({ visible: true });\n this.props.onStart?.();\n }, this.getProps().delayBeforeShow);\n\n private readonly stopTask = debounce(() => {\n this.setState({ visible: false, successAnimationInProgress: false, started: false });\n this.props.onDone?.();\n }, this.getProps().delayBeforeHide);\n\n private readonly resumeTaskAfterSuccessAnimation = debounce(() => {\n this.setActive();\n }, this.getProps().delayBeforeHide);\n\n public static defaultProps: DefaultProps = {\n expectedResponseTime: 1000,\n delayBeforeShow: 1000,\n delayBeforeHide: 1000,\n rejected: false,\n active: false,\n disableAnimations: isTestEnv,\n };\n\n constructor(props: GlobalLoaderProps) {\n super(props);\n this.state = {\n started: false,\n visible: false,\n done: false,\n rejected: false,\n accept: false,\n dead: false,\n successAnimationInProgress: false,\n expectedResponseTime: this.getProps().expectedResponseTime,\n };\n }\n componentDidMount() {\n currentGlobalLoader?.kill();\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n currentGlobalLoader = this;\n const { active, rejected } = this.getProps();\n if (active) {\n this.setActive();\n }\n if (rejected) {\n this.setReject(true);\n }\n }\n\n componentWillUnmount(): void {\n currentGlobalLoader = null;\n }\n\n componentDidUpdate(prevProps: Readonly<GlobalLoaderProps>) {\n const { expectedResponseTime, rejected, active } = this.getProps();\n if (expectedResponseTime !== prevProps.expectedResponseTime) {\n this.setState({ expectedResponseTime });\n }\n if (rejected !== prevProps.rejected) {\n this.setReject(rejected);\n }\n if (active !== prevProps.active) {\n if (active) {\n this.setActive();\n } else {\n this.setDone();\n }\n }\n }\n\n public render() {\n let status: GlobalLoaderViewProps['status'] = 'standard';\n\n if (this.state.done) {\n status = 'success';\n } else if (this.state.rejected) {\n status = 'error';\n } else if (this.state.accept) {\n status = 'accept';\n }\n const { delayBeforeHide, disableAnimations } = this.getProps();\n return (\n !this.state.dead &&\n this.state.visible && (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <GlobalLoaderView\n expectedResponseTime={this.state.expectedResponseTime}\n delayBeforeHide={delayBeforeHide}\n status={status}\n data-tid={GlobalLoaderDataTids.root}\n disableAnimations={disableAnimations}\n />\n </CommonWrapper>\n )\n );\n }\n\n /**\n * Запускает анимацию лоадера. <br />\n * Равносильно установке пропа `active = true`.\n *\n * @public\n */\n public static start = (expectedResponseTime?: number) => {\n currentGlobalLoader?.setActive();\n if (typeof expectedResponseTime === 'number') {\n currentGlobalLoader?.updateExpectedResponseTime(expectedResponseTime);\n }\n };\n\n /**\n * Показывает анимацию успешного завершения загрузки. <br />\n * Равносильно установке пропа `active = false`.\n *\n * @public\n */\n public static done = () => {\n currentGlobalLoader?.setDone();\n };\n\n /**\n * Переключает анимацию лоадера в состояние бегающей полоски. <br />\n * Равносильно установке пропа `rejected = true`.\n *\n * @public\n */\n public static reject = () => {\n currentGlobalLoader?.setReject(true);\n };\n\n /**\n * Возвращает лоадер из состояния бегающей полоски в обычное и продолжает анимацию с того места, на котором она была прервана. <br />\n * Равносильно установке пропа `rejected = false`.\n *\n * @public\n */\n public static accept = () => {\n currentGlobalLoader?.setReject(false);\n };\n\n public setActive = () => {\n this.startTask.cancel();\n if (this.state.successAnimationInProgress) {\n this.resumeTaskAfterSuccessAnimation();\n } else {\n this.setState({ visible: false, done: false, rejected: false, accept: false, started: true });\n if (this.getProps().rejected) {\n this.setReject(true);\n } else {\n this.stopTask.cancel();\n this.startTask();\n }\n }\n };\n\n public setDone = () => {\n if (!this.state.started) {\n return;\n }\n this.setState({ done: true, successAnimationInProgress: true });\n this.startTask.cancel();\n this.resumeTaskAfterSuccessAnimation.cancel();\n this.stopTask();\n };\n\n public setReject = (reject: boolean) => {\n if (!this.state.visible && (this.state.started || this.getProps().active)) {\n this.setState({ visible: true });\n }\n this.startTask.cancel();\n this.stopTask.cancel();\n if (reject) {\n this.props.onReject?.();\n } else if (this.state.rejected) {\n this.setState({ accept: true });\n this.props.onAccept?.();\n }\n this.setState({ rejected: reject });\n };\n\n public updateExpectedResponseTime(expectedResponseTime: number) {\n this.setState({ expectedResponseTime });\n }\n\n public kill = () => {\n this.stopTask.cancel();\n this.startTask.cancel();\n this.resumeTaskAfterSuccessAnimation.cancel();\n this.setState({\n dead: true,\n });\n };\n}\n"],"mappings":"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","ignoreList":[]}