@skbkontur/react-ui 5.0.9 → 5.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,17 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [5.0.10](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.0.9...@skbkontur/react-ui@5.0.10) (2025-01-30)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **GlobalLoader:** render in StrictMode ([#3582](https://github.com/skbkontur/retail-ui/issues/3582)) ([0d83d91](https://github.com/skbkontur/retail-ui/commit/0d83d91b6dbc02f37a89fcc6ef1fb5a970f179aa))
12
+
13
+
14
+
15
+
16
+
6
17
  ## [5.0.9](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.0.8...@skbkontur/react-ui@5.0.9) (2025-01-24)
7
18
 
8
19
  **Note:** Version bump only for package @skbkontur/react-ui
@@ -68,6 +68,7 @@ export declare class GlobalLoader extends React.Component<GlobalLoaderProps, Glo
68
68
  static defaultProps: DefaultProps;
69
69
  constructor(props: GlobalLoaderProps);
70
70
  componentDidMount(): void;
71
+ componentWillUnmount(): void;
71
72
  componentDidUpdate(prevProps: Readonly<GlobalLoaderProps>): void;
72
73
  render(): false | React.JSX.Element;
73
74
  /**
@@ -214,6 +214,10 @@ GlobalLoader = exports.GlobalLoader = (0, _rootNode.rootNode)(_class = (_GlobalL
214
214
 
215
215
 
216
216
 
217
+
218
+
219
+
220
+
217
221
 
218
222
 
219
223
 
@@ -271,9 +275,9 @@ GlobalLoader = exports.GlobalLoader = (0, _rootNode.rootNode)(_class = (_GlobalL
271
275
  dead: true
272
276
  });
273
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
274
- 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.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 }));} /**
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 }));} /**
275
279
  * Запускает анимацию лоадера <br />
276
280
  * Равносильно установке пропа `active = true`
277
281
  *
278
282
  * @public
279
- */;_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) {currentGlobalLoader.setActive();if (typeof expectedResponseTime === 'number') {currentGlobalLoader.updateExpectedResponseTime(expectedResponseTime);}}, _GlobalLoader.done = function () {currentGlobalLoader.setDone();}, _GlobalLoader.reject = function () {currentGlobalLoader.setReject(true);}, _GlobalLoader.accept = function () {currentGlobalLoader.setReject(false);}, _GlobalLoader)) || _class;
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","componentDidUpdate","prevProps","_this$getProps2","render","status","_this$getProps3","disableAnimations","createElement","CommonWrapper","_extends2","rootNodeRef","setRootNode","GlobalLoaderView","updateExpectedResponseTime","React","Component","__KONTUR_REACT_UI__","displayName","isTestEnv","start"],"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 { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { GlobalLoaderView, GlobalLoaderViewProps } from './GlobalLoaderView';\n\nexport interface GlobalLoaderProps {\n /**\n * Время(ms) до появления лоадера\n */\n delayBeforeShow?: number;\n /**\n * Время(ms) до исчезновения лоадера\n */\n delayBeforeHide?: number;\n /**\n * Ожидаемое время(ms) ответа сервера\n */\n expectedResponseTime?: number;\n /**\n * Анимация лоадера в виде спиннера\n */\n rejected?: boolean;\n /**\n * Показывать лоадер\n */\n active?: boolean;\n /**\n * Не показывать анимацию\n */\n disableAnimations?: boolean;\n /**\n * Коллбек, вызывающийся после появления лоадера\n */\n onStart?(): void;\n /**\n * Коллбек, вызывающийся после исчезновения лоадера\n */\n onDone?(): void;\n /**\n * Коллбек, вызывающийся после вызова `GlobalLoader.reject()`.\n * Или после установки пропа `rejected = true`\n */\n onReject?(): void;\n /**\n * Коллбек, вызывающийся после вызова `GlobalLoader.accept()`.\n * Или после установки пропа `rejected = false`\n */\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;\n@rootNode\nexport class GlobalLoader extends React.Component<GlobalLoaderProps, GlobalLoaderState> {\n public static __KONTUR_REACT_UI__ = 'GlobalLoader';\n public static displayName = 'GlobalLoader';\n\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 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 { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { GlobalLoaderView, GlobalLoaderViewProps } from './GlobalLoaderView';\n\nexport interface GlobalLoaderProps {\n /**\n * Время(ms) до появления лоадера\n */\n delayBeforeShow?: number;\n /**\n * Время(ms) до исчезновения лоадера\n */\n delayBeforeHide?: number;\n /**\n * Ожидаемое время(ms) ответа сервера\n */\n expectedResponseTime?: number;\n /**\n * Анимация лоадера в виде спиннера\n */\n rejected?: boolean;\n /**\n * Показывать лоадер\n */\n active?: boolean;\n /**\n * Не показывать анимацию\n */\n disableAnimations?: boolean;\n /**\n * Коллбек, вызывающийся после появления лоадера\n */\n onStart?(): void;\n /**\n * Коллбек, вызывающийся после исчезновения лоадера\n */\n onDone?(): void;\n /**\n * Коллбек, вызывающийся после вызова `GlobalLoader.reject()`.\n * Или после установки пропа `rejected = true`\n */\n onReject?(): void;\n /**\n * Коллбек, вызывающийся после вызова `GlobalLoader.accept()`.\n * Или после установки пропа `rejected = false`\n */\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@rootNode\nexport class GlobalLoader extends React.Component<GlobalLoaderProps, GlobalLoaderState> {\n public static __KONTUR_REACT_UI__ = 'GlobalLoader';\n public static displayName = 'GlobalLoader';\n\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":"iXAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAF,sBAAA,CAAAC,OAAA;;AAEA,IAAAE,mBAAA,GAAAF,OAAA;AACA,IAAAG,cAAA,GAAAH,OAAA;AACA,IAAAI,SAAA,GAAAJ,OAAA;AACA,IAAAK,kBAAA,GAAAL,OAAA;;AAEA,IAAAM,iBAAA,GAAAN,OAAA,uBAA6E,IAAAO,MAAA,EAAAC,aAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyDtE,IAAMC,oBAAoB,GAAAC,OAAA,CAAAD,oBAAA,GAAG;EAClCE,IAAI,EAAE;AACR,CAAU;;;;;;;;;AASV,IAAIC,mBAAwC,CAAC;;AAEhCC,YAAY,GAAAH,OAAA,CAAAG,YAAA,OADxBC,kBAAQ,EAAAP,MAAA,IAAAC,aAAA,0BAAAO,gBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+BP,SAAAF,aAAYG,KAAwB,EAAE,KAAAC,KAAA;IACpCA,KAAA,GAAAF,gBAAA,CAAAG,IAAA,OAAMF,KAAK,CAAC,SAACC,KAAA,CA1BPE,QAAQ,GAAG,IAAAC,oCAAiB,EAACP,YAAY,CAACQ,YAAY,CAAC,CAAAJ,KAAA,CAE9CK,SAAS,GAAG,IAAAC,eAAQ,EAAC,YAAM,CAC1CN,KAAA,CAAKO,QAAQ,CAAC,EAAEC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAChCR,KAAA,CAAKD,KAAK,CAACU,OAAO,YAAlBT,KAAA,CAAKD,KAAK,CAACU,OAAO,CAAG,CAAC,CACxB,CAAC,EAAET,KAAA,CAAKE,QAAQ,CAAC,CAAC,CAACQ,eAAe,CAAC,CAAAV,KAAA,CAElBW,QAAQ,GAAG,IAAAL,eAAQ,EAAC,YAAM,CACzCN,KAAA,CAAKO,QAAQ,CAAC,EAAEC,OAAO,EAAE,KAAK,EAAEI,0BAA0B,EAAE,KAAK,EAAEC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CACpFb,KAAA,CAAKD,KAAK,CAACe,MAAM,YAAjBd,KAAA,CAAKD,KAAK,CAACe,MAAM,CAAG,CAAC,CACvB,CAAC,EAAEd,KAAA,CAAKE,QAAQ,CAAC,CAAC,CAACa,eAAe,CAAC,CAAAf,KAAA,CAElBgB,+BAA+B,GAAG,IAAAV,eAAQ,EAAC,YAAM,CAChEN,KAAA,CAAKiB,SAAS,CAAC,CAAC,CAClB,CAAC,EAAEjB,KAAA,CAAKE,QAAQ,CAAC,CAAC,CAACa,eAAe,CAAC,CAAAf,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgI5BiB,SAAS,GAAG,YAAM;MACvBjB,KAAA,CAAKK,SAAS,CAACa,MAAM,CAAC,CAAC;MACvB,IAAIlB,KAAA,CAAKmB,KAAK,CAACP,0BAA0B,EAAE;QACzCZ,KAAA,CAAKgB,+BAA+B,CAAC,CAAC;MACxC,CAAC,MAAM;QACLhB,KAAA,CAAKO,QAAQ,CAAC,EAAEC,OAAO,EAAE,KAAK,EAAEY,IAAI,EAAE,KAAK,EAAEC,QAAQ,EAAE,KAAK,EAAEC,MAAM,EAAE,KAAK,EAAET,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QAC7F,IAAIb,KAAA,CAAKE,QAAQ,CAAC,CAAC,CAACmB,QAAQ,EAAE;UAC5BrB,KAAA,CAAKuB,SAAS,CAAC,IAAI,CAAC;QACtB,CAAC,MAAM;UACLvB,KAAA,CAAKW,QAAQ,CAACO,MAAM,CAAC,CAAC;UACtBlB,KAAA,CAAKK,SAAS,CAAC,CAAC;QAClB;MACF;IACF,CAAC,CAAAL,KAAA;;IAEMwB,OAAO,GAAG,YAAM;MACrB,IAAI,CAACxB,KAAA,CAAKmB,KAAK,CAACN,OAAO,EAAE;QACvB;MACF;MACAb,KAAA,CAAKO,QAAQ,CAAC,EAAEa,IAAI,EAAE,IAAI,EAAER,0BAA0B,EAAE,IAAI,CAAC,CAAC,CAAC;MAC/DZ,KAAA,CAAKK,SAAS,CAACa,MAAM,CAAC,CAAC;MACvBlB,KAAA,CAAKgB,+BAA+B,CAACE,MAAM,CAAC,CAAC;MAC7ClB,KAAA,CAAKW,QAAQ,CAAC,CAAC;IACjB,CAAC,CAAAX,KAAA;;IAEMuB,SAAS,GAAG,UAACE,MAAe,EAAK;MACtC,IAAI,CAACzB,KAAA,CAAKmB,KAAK,CAACX,OAAO,KAAKR,KAAA,CAAKmB,KAAK,CAACN,OAAO,IAAIb,KAAA,CAAKE,QAAQ,CAAC,CAAC,CAACwB,MAAM,CAAC,EAAE;QACzE1B,KAAA,CAAKO,QAAQ,CAAC,EAAEC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;MAClC;MACAR,KAAA,CAAKK,SAAS,CAACa,MAAM,CAAC,CAAC;MACvBlB,KAAA,CAAKW,QAAQ,CAACO,MAAM,CAAC,CAAC;MACtB,IAAIO,MAAM,EAAE;QACVzB,KAAA,CAAKD,KAAK,CAAC4B,QAAQ,YAAnB3B,KAAA,CAAKD,KAAK,CAAC4B,QAAQ,CAAG,CAAC;MACzB,CAAC,MAAM,IAAI3B,KAAA,CAAKmB,KAAK,CAACE,QAAQ,EAAE;QAC9BrB,KAAA,CAAKO,QAAQ,CAAC,EAAEe,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;QAC/BtB,KAAA,CAAKD,KAAK,CAAC6B,QAAQ,YAAnB5B,KAAA,CAAKD,KAAK,CAAC6B,QAAQ,CAAG,CAAC;MACzB;MACA5B,KAAA,CAAKO,QAAQ,CAAC,EAAEc,QAAQ,EAAEI,MAAM,CAAC,CAAC,CAAC;IACrC,CAAC,CAAAzB,KAAA;;;;;;IAMM6B,IAAI,GAAG,YAAM;MAClB7B,KAAA,CAAKW,QAAQ,CAACO,MAAM,CAAC,CAAC;MACtBlB,KAAA,CAAKK,SAAS,CAACa,MAAM,CAAC,CAAC;MACvBlB,KAAA,CAAKgB,+BAA+B,CAACE,MAAM,CAAC,CAAC;MAC7ClB,KAAA,CAAKO,QAAQ,CAAC;QACZuB,IAAI,EAAE;MACR,CAAC,CAAC;IACJ,CAAC,CAtKC9B,KAAA,CAAKmB,KAAK,GAAG,EACXN,OAAO,EAAE,KAAK,EACdL,OAAO,EAAE,KAAK,EACdY,IAAI,EAAE,KAAK,EACXC,QAAQ,EAAE,KAAK,EACfC,MAAM,EAAE,KAAK,EACbQ,IAAI,EAAE,KAAK,EACXlB,0BAA0B,EAAE,KAAK,EACjCmB,oBAAoB,EAAE/B,KAAA,CAAKE,QAAQ,CAAC,CAAC,CAAC6B,oBAAoB,CAC5D,CAAC,CAAC,OAAA/B,KAAA,CACJ,CAAC,IAAAgC,eAAA,CAAAC,OAAA,EAAArC,YAAA,EAAAE,gBAAA,MAAAoC,MAAA,GAAAtC,YAAA,CAAAuC,SAAA,CAAAD,MAAA,CACDE,iBAAiB,GAAjB,SAAAA,kBAAA,EAAoB,KAAAC,oBAAA,CAClB,CAAAA,oBAAA,GAAA1C,mBAAmB,aAAnB0C,oBAAA,CAAqBR,IAAI,CAAC,CAAC,CAAC,CAC5B;IACAlC,mBAAmB,GAAG,IAAI,CAC1B,IAAA2C,cAAA,GAA6B,IAAI,CAACpC,QAAQ,CAAC,CAAC,CAApCwB,MAAM,GAAAY,cAAA,CAANZ,MAAM,CAAEL,QAAQ,GAAAiB,cAAA,CAARjB,QAAQ,CACxB,IAAIK,MAAM,EAAE,CACV,IAAI,CAACT,SAAS,CAAC,CAAC,CAClB,CACA,IAAII,QAAQ,EAAE,CACZ,IAAI,CAACE,SAAS,CAAC,IAAI,CAAC,CACtB,CACF,CAAC,CAAAW,MAAA,CAEDK,oBAAoB,GAApB,SAAAA,qBAAA,EAA6B,CAC3B5C,mBAAmB,GAAG,IAAI,CAC5B,CAAC,CAAAuC,MAAA,CAEDM,kBAAkB,GAAlB,SAAAA,mBAAmBC,SAAsC,EAAE,CACzD,IAAAC,eAAA,GAAmD,IAAI,CAACxC,QAAQ,CAAC,CAAC,CAA1D6B,oBAAoB,GAAAW,eAAA,CAApBX,oBAAoB,CAAEV,QAAQ,GAAAqB,eAAA,CAARrB,QAAQ,CAAEK,MAAM,GAAAgB,eAAA,CAANhB,MAAM,CAC9C,IAAIK,oBAAoB,KAAKU,SAAS,CAACV,oBAAoB,EAAE,CAC3D,IAAI,CAACxB,QAAQ,CAAC,EAAEwB,oBAAoB,EAApBA,oBAAoB,CAAC,CAAC,CAAC,CACzC,CACA,IAAIV,QAAQ,KAAKoB,SAAS,CAACpB,QAAQ,EAAE,CACnC,IAAI,CAACE,SAAS,CAACF,QAAQ,CAAC,CAC1B,CACA,IAAIK,MAAM,KAAKe,SAAS,CAACf,MAAM,EAAE,CAC/B,IAAIA,MAAM,EAAE,CACV,IAAI,CAACT,SAAS,CAAC,CAAC,CAClB,CAAC,MAAM,CACL,IAAI,CAACO,OAAO,CAAC,CAAC,CAChB,CACF,CACF,CAAC,CAAAU,MAAA,CAEMS,MAAM,GAAb,SAAAA,OAAA,EAAgB,CACd,IAAIC,MAAuC,GAAG,UAAU,CAExD,IAAI,IAAI,CAACzB,KAAK,CAACC,IAAI,EAAE,CACnBwB,MAAM,GAAG,SAAS,CACpB,CAAC,MAAM,IAAI,IAAI,CAACzB,KAAK,CAACE,QAAQ,EAAE,CAC9BuB,MAAM,GAAG,OAAO,CAClB,CAAC,MAAM,IAAI,IAAI,CAACzB,KAAK,CAACG,MAAM,EAAE,CAC5BsB,MAAM,GAAG,QAAQ,CACnB,CACA,IAAAC,eAAA,GAA+C,IAAI,CAAC3C,QAAQ,CAAC,CAAC,CAAtDa,eAAe,GAAA8B,eAAA,CAAf9B,eAAe,CAAE+B,iBAAiB,GAAAD,eAAA,CAAjBC,iBAAiB,CAC1C,OACE,CAAC,IAAI,CAAC3B,KAAK,CAACW,IAAI,IAChB,IAAI,CAACX,KAAK,CAACX,OAAO,iBAChB3B,MAAA,CAAAoD,OAAA,CAAAc,aAAA,CAAC7D,cAAA,CAAA8D,aAAa,MAAAC,SAAA,CAAAhB,OAAA,IAACiB,WAAW,EAAE,IAAI,CAACC,WAAY,IAAK,IAAI,CAACpD,KAAK,gBAC1DlB,MAAA,CAAAoD,OAAA,CAAAc,aAAA,CAAC1D,iBAAA,CAAA+D,gBAAgB,IACfrB,oBAAoB,EAAE,IAAI,CAACZ,KAAK,CAACY,oBAAqB,EACtDhB,eAAe,EAAEA,eAAgB,EACjC6B,MAAM,EAAEA,MAAO,EACf,YAAUpD,oBAAoB,CAACE,IAAK,EACpCoD,iBAAiB,EAAEA,iBAAkB,EACtC,CACY,CAChB,CAEL,CAAC,CAED;AACF;AACA;AACA;AACA;AACA,KALE,CAAAZ,MAAA,CAmFOmB,0BAA0B,GAAjC,SAAAA,2BAAkCtB,oBAA4B,EAAE,CAC9D,IAAI,CAACxB,QAAQ,CAAC,EAAEwB,oBAAoB,EAApBA,oBAAoB,CAAC,CAAC,CAAC,CACzC,CAAC,QAAAnC,YAAA,GA7L+B0D,cAAK,CAACC,SAAS,GAAAhE,aAAA,CACjCiE,mBAAmB,GAAG,cAAc,EAAAjE,aAAA,CACpCkE,WAAW,GAAG,cAAc,EAAAlE,aAAA,CAmB5Ba,YAAY,GAAiB,EACzC2B,oBAAoB,EAAE,IAAI,EAC1BrB,eAAe,EAAE,IAAI,EACrBK,eAAe,EAAE,IAAI,EACrBM,QAAQ,EAAE,KAAK,EACfK,MAAM,EAAE,KAAK,EACboB,iBAAiB,EAAEY,6BAAS,CAC9B,CAAC,EAAAnE,aAAA,CAkFaoE,KAAK,GAAG,UAAC5B,oBAA6B,EAAK,KAAA6B,qBAAA,CACvD,CAAAA,qBAAA,GAAAjE,mBAAmB,aAAnBiE,qBAAA,CAAqB3C,SAAS,CAAC,CAAC,CAChC,IAAI,OAAOc,oBAAoB,KAAK,QAAQ,EAAE,KAAA8B,qBAAA,CAC5C,CAAAA,qBAAA,GAAAlE,mBAAmB,aAAnBkE,qBAAA,CAAqBR,0BAA0B,CAACtB,oBAAoB,CAAC,CACvE,CACF,CAAC,EAAAxC,aAAA,CAQa6B,IAAI,GAAG,YAAM,KAAA0C,qBAAA,CACzB,CAAAA,qBAAA,GAAAnE,mBAAmB,aAAnBmE,qBAAA,CAAqBtC,OAAO,CAAC,CAAC,CAChC,CAAC,EAAAjC,aAAA,CAQakC,MAAM,GAAG,YAAM,KAAAsC,qBAAA,CAC3B,CAAAA,qBAAA,GAAApE,mBAAmB,aAAnBoE,qBAAA,CAAqBxC,SAAS,CAAC,IAAI,CAAC,CACtC,CAAC,EAAAhC,aAAA,CAQa+B,MAAM,GAAG,YAAM,KAAA0C,qBAAA,CAC3B,CAAAA,qBAAA,GAAArE,mBAAmB,aAAnBqE,qBAAA,CAAqBzC,SAAS,CAAC,KAAK,CAAC,CACvC,CAAC,EAAAhC,aAAA,MAAAD,MAAA","ignoreList":[]}
@@ -122,6 +122,9 @@ export var GlobalLoader = rootNode(_class = (_GlobalLoader = /*#__PURE__*/functi
122
122
  this.setReject(true);
123
123
  }
124
124
  };
125
+ _proto.componentWillUnmount = function componentWillUnmount() {
126
+ currentGlobalLoader = null;
127
+ };
125
128
  _proto.componentDidUpdate = function componentDidUpdate(prevProps) {
126
129
  var _this$getProps2 = this.getProps(),
127
130
  expectedResponseTime = _this$getProps2.expectedResponseTime,
@@ -184,14 +187,19 @@ export var GlobalLoader = rootNode(_class = (_GlobalLoader = /*#__PURE__*/functi
184
187
  active: false,
185
188
  disableAnimations: isTestEnv
186
189
  }, _GlobalLoader.start = function (expectedResponseTime) {
187
- currentGlobalLoader.setActive();
190
+ var _currentGlobalLoader2;
191
+ (_currentGlobalLoader2 = currentGlobalLoader) == null || _currentGlobalLoader2.setActive();
188
192
  if (typeof expectedResponseTime === 'number') {
189
- currentGlobalLoader.updateExpectedResponseTime(expectedResponseTime);
193
+ var _currentGlobalLoader3;
194
+ (_currentGlobalLoader3 = currentGlobalLoader) == null || _currentGlobalLoader3.updateExpectedResponseTime(expectedResponseTime);
190
195
  }
191
196
  }, _GlobalLoader.done = function () {
192
- currentGlobalLoader.setDone();
197
+ var _currentGlobalLoader4;
198
+ (_currentGlobalLoader4 = currentGlobalLoader) == null || _currentGlobalLoader4.setDone();
193
199
  }, _GlobalLoader.reject = function () {
194
- currentGlobalLoader.setReject(true);
200
+ var _currentGlobalLoader5;
201
+ (_currentGlobalLoader5 = currentGlobalLoader) == null || _currentGlobalLoader5.setReject(true);
195
202
  }, _GlobalLoader.accept = function () {
196
- currentGlobalLoader.setReject(false);
203
+ var _currentGlobalLoader6;
204
+ (_currentGlobalLoader6 = currentGlobalLoader) == null || _currentGlobalLoader6.setReject(false);
197
205
  }, _GlobalLoader)) || _class;
@@ -1 +1 @@
1
- {"version":3,"names":["React","debounce","isTestEnv","CommonWrapper","rootNode","createPropsGetter","GlobalLoaderView","GlobalLoaderDataTids","root","currentGlobalLoader","GlobalLoader","_class","_GlobalLoader","_React$Component","props","_this","call","getProps","defaultProps","startTask","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","_inheritsLoose","_proto","prototype","componentDidMount","_currentGlobalLoader","_this$getProps","componentDidUpdate","prevProps","_this$getProps2","render","status","_this$getProps3","disableAnimations","createElement","_extends","rootNodeRef","setRootNode","updateExpectedResponseTime","Component","__KONTUR_REACT_UI__","displayName","start"],"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 { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { GlobalLoaderView, GlobalLoaderViewProps } from './GlobalLoaderView';\n\nexport interface GlobalLoaderProps {\n /**\n * Время(ms) до появления лоадера\n */\n delayBeforeShow?: number;\n /**\n * Время(ms) до исчезновения лоадера\n */\n delayBeforeHide?: number;\n /**\n * Ожидаемое время(ms) ответа сервера\n */\n expectedResponseTime?: number;\n /**\n * Анимация лоадера в виде спиннера\n */\n rejected?: boolean;\n /**\n * Показывать лоадер\n */\n active?: boolean;\n /**\n * Не показывать анимацию\n */\n disableAnimations?: boolean;\n /**\n * Коллбек, вызывающийся после появления лоадера\n */\n onStart?(): void;\n /**\n * Коллбек, вызывающийся после исчезновения лоадера\n */\n onDone?(): void;\n /**\n * Коллбек, вызывающийся после вызова `GlobalLoader.reject()`.\n * Или после установки пропа `rejected = true`\n */\n onReject?(): void;\n /**\n * Коллбек, вызывающийся после вызова `GlobalLoader.accept()`.\n * Или после установки пропа `rejected = false`\n */\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;\n@rootNode\nexport class GlobalLoader extends React.Component<GlobalLoaderProps, GlobalLoaderState> {\n public static __KONTUR_REACT_UI__ = 'GlobalLoader';\n public static displayName = 'GlobalLoader';\n\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 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":"0JAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,QAAQ,MAAM,iBAAiB;;AAEtC,SAASC,SAAS,QAAQ,8BAA8B;AACxD,SAASC,aAAa,QAAQ,8BAA8B;AAC5D,SAASC,QAAQ,QAAsB,oBAAoB;AAC3D,SAASC,iBAAiB,QAAQ,6BAA6B;;AAE/D,SAASC,gBAAgB,QAA+B,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyD5E,OAAO,IAAMC,oBAAoB,GAAG;EAClCC,IAAI,EAAE;AACR,CAAU;;;;;;;;;AASV,IAAIC,mBAAiC;AACrC;AACaC,YAAY,GADxBN,QAAQ,CAAAO,MAAA,IAAAC,aAAA,0BAAAC,gBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+BP,SAAAH,aAAYI,KAAwB,EAAE,KAAAC,KAAA;IACpCA,KAAA,GAAAF,gBAAA,CAAAG,IAAA,OAAMF,KAAK,CAAC,SAACC,KAAA,CA1BPE,QAAQ,GAAGZ,iBAAiB,CAACK,YAAY,CAACQ,YAAY,CAAC,CAAAH,KAAA,CAE9CI,SAAS,GAAGlB,QAAQ,CAAC,YAAM,CAC1Cc,KAAA,CAAKK,QAAQ,CAAC,EAAEC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAChCN,KAAA,CAAKD,KAAK,CAACQ,OAAO,YAAlBP,KAAA,CAAKD,KAAK,CAACQ,OAAO,CAAG,CAAC,CACxB,CAAC,EAAEP,KAAA,CAAKE,QAAQ,CAAC,CAAC,CAACM,eAAe,CAAC,CAAAR,KAAA,CAElBS,QAAQ,GAAGvB,QAAQ,CAAC,YAAM,CACzCc,KAAA,CAAKK,QAAQ,CAAC,EAAEC,OAAO,EAAE,KAAK,EAAEI,0BAA0B,EAAE,KAAK,EAAEC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CACpFX,KAAA,CAAKD,KAAK,CAACa,MAAM,YAAjBZ,KAAA,CAAKD,KAAK,CAACa,MAAM,CAAG,CAAC,CACvB,CAAC,EAAEZ,KAAA,CAAKE,QAAQ,CAAC,CAAC,CAACW,eAAe,CAAC,CAAAb,KAAA,CAElBc,+BAA+B,GAAG5B,QAAQ,CAAC,YAAM,CAChEc,KAAA,CAAKe,SAAS,CAAC,CAAC,CAClB,CAAC,EAAEf,KAAA,CAAKE,QAAQ,CAAC,CAAC,CAACW,eAAe,CAAC,CAAAb,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA4H5Be,SAAS,GAAG,YAAM;MACvBf,KAAA,CAAKI,SAAS,CAACY,MAAM,CAAC,CAAC;MACvB,IAAIhB,KAAA,CAAKiB,KAAK,CAACP,0BAA0B,EAAE;QACzCV,KAAA,CAAKc,+BAA+B,CAAC,CAAC;MACxC,CAAC,MAAM;QACLd,KAAA,CAAKK,QAAQ,CAAC,EAAEC,OAAO,EAAE,KAAK,EAAEY,IAAI,EAAE,KAAK,EAAEC,QAAQ,EAAE,KAAK,EAAEC,MAAM,EAAE,KAAK,EAAET,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QAC7F,IAAIX,KAAA,CAAKE,QAAQ,CAAC,CAAC,CAACiB,QAAQ,EAAE;UAC5BnB,KAAA,CAAKqB,SAAS,CAAC,IAAI,CAAC;QACtB,CAAC,MAAM;UACLrB,KAAA,CAAKS,QAAQ,CAACO,MAAM,CAAC,CAAC;UACtBhB,KAAA,CAAKI,SAAS,CAAC,CAAC;QAClB;MACF;IACF,CAAC,CAAAJ,KAAA;;IAEMsB,OAAO,GAAG,YAAM;MACrB,IAAI,CAACtB,KAAA,CAAKiB,KAAK,CAACN,OAAO,EAAE;QACvB;MACF;MACAX,KAAA,CAAKK,QAAQ,CAAC,EAAEa,IAAI,EAAE,IAAI,EAAER,0BAA0B,EAAE,IAAI,CAAC,CAAC,CAAC;MAC/DV,KAAA,CAAKI,SAAS,CAACY,MAAM,CAAC,CAAC;MACvBhB,KAAA,CAAKc,+BAA+B,CAACE,MAAM,CAAC,CAAC;MAC7ChB,KAAA,CAAKS,QAAQ,CAAC,CAAC;IACjB,CAAC,CAAAT,KAAA;;IAEMqB,SAAS,GAAG,UAACE,MAAe,EAAK;MACtC,IAAI,CAACvB,KAAA,CAAKiB,KAAK,CAACX,OAAO,KAAKN,KAAA,CAAKiB,KAAK,CAACN,OAAO,IAAIX,KAAA,CAAKE,QAAQ,CAAC,CAAC,CAACsB,MAAM,CAAC,EAAE;QACzExB,KAAA,CAAKK,QAAQ,CAAC,EAAEC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;MAClC;MACAN,KAAA,CAAKI,SAAS,CAACY,MAAM,CAAC,CAAC;MACvBhB,KAAA,CAAKS,QAAQ,CAACO,MAAM,CAAC,CAAC;MACtB,IAAIO,MAAM,EAAE;QACVvB,KAAA,CAAKD,KAAK,CAAC0B,QAAQ,YAAnBzB,KAAA,CAAKD,KAAK,CAAC0B,QAAQ,CAAG,CAAC;MACzB,CAAC,MAAM,IAAIzB,KAAA,CAAKiB,KAAK,CAACE,QAAQ,EAAE;QAC9BnB,KAAA,CAAKK,QAAQ,CAAC,EAAEe,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;QAC/BpB,KAAA,CAAKD,KAAK,CAAC2B,QAAQ,YAAnB1B,KAAA,CAAKD,KAAK,CAAC2B,QAAQ,CAAG,CAAC;MACzB;MACA1B,KAAA,CAAKK,QAAQ,CAAC,EAAEc,QAAQ,EAAEI,MAAM,CAAC,CAAC,CAAC;IACrC,CAAC,CAAAvB,KAAA;;;;;;IAMM2B,IAAI,GAAG,YAAM;MAClB3B,KAAA,CAAKS,QAAQ,CAACO,MAAM,CAAC,CAAC;MACtBhB,KAAA,CAAKI,SAAS,CAACY,MAAM,CAAC,CAAC;MACvBhB,KAAA,CAAKc,+BAA+B,CAACE,MAAM,CAAC,CAAC;MAC7ChB,KAAA,CAAKK,QAAQ,CAAC;QACZuB,IAAI,EAAE;MACR,CAAC,CAAC;IACJ,CAAC,CAlKC5B,KAAA,CAAKiB,KAAK,GAAG,EACXN,OAAO,EAAE,KAAK,EACdL,OAAO,EAAE,KAAK,EACdY,IAAI,EAAE,KAAK,EACXC,QAAQ,EAAE,KAAK,EACfC,MAAM,EAAE,KAAK,EACbQ,IAAI,EAAE,KAAK,EACXlB,0BAA0B,EAAE,KAAK,EACjCmB,oBAAoB,EAAE7B,KAAA,CAAKE,QAAQ,CAAC,CAAC,CAAC2B,oBAAoB,CAC5D,CAAC,CAAC,OAAA7B,KAAA,CACJ,CAAC8B,cAAA,CAAAnC,YAAA,EAAAG,gBAAA,MAAAiC,MAAA,GAAApC,YAAA,CAAAqC,SAAA,CAAAD,MAAA,CACDE,iBAAiB,GAAjB,SAAAA,kBAAA,EAAoB,KAAAC,oBAAA,CAClB,CAAAA,oBAAA,GAAAxC,mBAAmB,aAAnBwC,oBAAA,CAAqBP,IAAI,CAAC,CAAC,CAAC,CAC5B;IACAjC,mBAAmB,GAAG,IAAI,CAC1B,IAAAyC,cAAA,GAA6B,IAAI,CAACjC,QAAQ,CAAC,CAAC,CAApCsB,MAAM,GAAAW,cAAA,CAANX,MAAM,CAAEL,QAAQ,GAAAgB,cAAA,CAARhB,QAAQ,CACxB,IAAIK,MAAM,EAAE,CACV,IAAI,CAACT,SAAS,CAAC,CAAC,CAClB,CACA,IAAII,QAAQ,EAAE,CACZ,IAAI,CAACE,SAAS,CAAC,IAAI,CAAC,CACtB,CACF,CAAC,CAAAU,MAAA,CAEDK,kBAAkB,GAAlB,SAAAA,mBAAmBC,SAAsC,EAAE,CACzD,IAAAC,eAAA,GAAmD,IAAI,CAACpC,QAAQ,CAAC,CAAC,CAA1D2B,oBAAoB,GAAAS,eAAA,CAApBT,oBAAoB,CAAEV,QAAQ,GAAAmB,eAAA,CAARnB,QAAQ,CAAEK,MAAM,GAAAc,eAAA,CAANd,MAAM,CAC9C,IAAIK,oBAAoB,KAAKQ,SAAS,CAACR,oBAAoB,EAAE,CAC3D,IAAI,CAACxB,QAAQ,CAAC,EAAEwB,oBAAoB,EAApBA,oBAAoB,CAAC,CAAC,CAAC,CACzC,CACA,IAAIV,QAAQ,KAAKkB,SAAS,CAAClB,QAAQ,EAAE,CACnC,IAAI,CAACE,SAAS,CAACF,QAAQ,CAAC,CAC1B,CACA,IAAIK,MAAM,KAAKa,SAAS,CAACb,MAAM,EAAE,CAC/B,IAAIA,MAAM,EAAE,CACV,IAAI,CAACT,SAAS,CAAC,CAAC,CAClB,CAAC,MAAM,CACL,IAAI,CAACO,OAAO,CAAC,CAAC,CAChB,CACF,CACF,CAAC,CAAAS,MAAA,CAEMQ,MAAM,GAAb,SAAAA,OAAA,EAAgB,CACd,IAAIC,MAAuC,GAAG,UAAU,CAExD,IAAI,IAAI,CAACvB,KAAK,CAACC,IAAI,EAAE,CACnBsB,MAAM,GAAG,SAAS,CACpB,CAAC,MAAM,IAAI,IAAI,CAACvB,KAAK,CAACE,QAAQ,EAAE,CAC9BqB,MAAM,GAAG,OAAO,CAClB,CAAC,MAAM,IAAI,IAAI,CAACvB,KAAK,CAACG,MAAM,EAAE,CAC5BoB,MAAM,GAAG,QAAQ,CACnB,CACA,IAAAC,eAAA,GAA+C,IAAI,CAACvC,QAAQ,CAAC,CAAC,CAAtDW,eAAe,GAAA4B,eAAA,CAAf5B,eAAe,CAAE6B,iBAAiB,GAAAD,eAAA,CAAjBC,iBAAiB,CAC1C,OACE,CAAC,IAAI,CAACzB,KAAK,CAACW,IAAI,IAChB,IAAI,CAACX,KAAK,CAACX,OAAO,iBAChBrB,KAAA,CAAA0D,aAAA,CAACvD,aAAa,EAAAwD,QAAA,GAACC,WAAW,EAAE,IAAI,CAACC,WAAY,IAAK,IAAI,CAAC/C,KAAK,gBAC1Dd,KAAA,CAAA0D,aAAA,CAACpD,gBAAgB,IACfsC,oBAAoB,EAAE,IAAI,CAACZ,KAAK,CAACY,oBAAqB,EACtDhB,eAAe,EAAEA,eAAgB,EACjC2B,MAAM,EAAEA,MAAO,EACf,YAAUhD,oBAAoB,CAACC,IAAK,EACpCiD,iBAAiB,EAAEA,iBAAkB,EACtC,CACY,CAChB,CAEL,CAAC,CAED;AACF;AACA;AACA;AACA;AACA,KALE,CAAAX,MAAA,CAmFOgB,0BAA0B,GAAjC,SAAAA,2BAAkClB,oBAA4B,EAAE,CAC9D,IAAI,CAACxB,QAAQ,CAAC,EAAEwB,oBAAoB,EAApBA,oBAAoB,CAAC,CAAC,CAAC,CACzC,CAAC,QAAAlC,YAAA,GAzL+BV,KAAK,CAAC+D,SAAS,GAAAnD,aAAA,CACjCoD,mBAAmB,GAAG,cAAc,EAAApD,aAAA,CACpCqD,WAAW,GAAG,cAAc,EAAArD,aAAA,CAmB5BM,YAAY,GAAiB,EACzC0B,oBAAoB,EAAE,IAAI,EAC1BrB,eAAe,EAAE,IAAI,EACrBK,eAAe,EAAE,IAAI,EACrBM,QAAQ,EAAE,KAAK,EACfK,MAAM,EAAE,KAAK,EACbkB,iBAAiB,EAAEvD,SAAS,CAC9B,CAAC,EAAAU,aAAA,CA8EasD,KAAK,GAAG,UAACtB,oBAA6B,EAAK,CACvDnC,mBAAmB,CAACqB,SAAS,CAAC,CAAC,CAC/B,IAAI,OAAOc,oBAAoB,KAAK,QAAQ,EAAE,CAC5CnC,mBAAmB,CAACqD,0BAA0B,CAAClB,oBAAoB,CAAC,CACtE,CACF,CAAC,EAAAhC,aAAA,CAQaqB,IAAI,GAAG,YAAM,CACzBxB,mBAAmB,CAAC4B,OAAO,CAAC,CAAC,CAC/B,CAAC,EAAAzB,aAAA,CAQa0B,MAAM,GAAG,YAAM,CAC3B7B,mBAAmB,CAAC2B,SAAS,CAAC,IAAI,CAAC,CACrC,CAAC,EAAAxB,aAAA,CAQauB,MAAM,GAAG,YAAM,CAC3B1B,mBAAmB,CAAC2B,SAAS,CAAC,KAAK,CAAC,CACtC,CAAC,EAAAxB,aAAA,MAAAD,MAAA","ignoreList":[]}
1
+ {"version":3,"names":["React","debounce","isTestEnv","CommonWrapper","rootNode","createPropsGetter","GlobalLoaderView","GlobalLoaderDataTids","root","currentGlobalLoader","GlobalLoader","_class","_GlobalLoader","_React$Component","props","_this","call","getProps","defaultProps","startTask","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","_inheritsLoose","_proto","prototype","componentDidMount","_currentGlobalLoader","_this$getProps","componentWillUnmount","componentDidUpdate","prevProps","_this$getProps2","render","status","_this$getProps3","disableAnimations","createElement","_extends","rootNodeRef","setRootNode","updateExpectedResponseTime","Component","__KONTUR_REACT_UI__","displayName","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 { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { GlobalLoaderView, GlobalLoaderViewProps } from './GlobalLoaderView';\n\nexport interface GlobalLoaderProps {\n /**\n * Время(ms) до появления лоадера\n */\n delayBeforeShow?: number;\n /**\n * Время(ms) до исчезновения лоадера\n */\n delayBeforeHide?: number;\n /**\n * Ожидаемое время(ms) ответа сервера\n */\n expectedResponseTime?: number;\n /**\n * Анимация лоадера в виде спиннера\n */\n rejected?: boolean;\n /**\n * Показывать лоадер\n */\n active?: boolean;\n /**\n * Не показывать анимацию\n */\n disableAnimations?: boolean;\n /**\n * Коллбек, вызывающийся после появления лоадера\n */\n onStart?(): void;\n /**\n * Коллбек, вызывающийся после исчезновения лоадера\n */\n onDone?(): void;\n /**\n * Коллбек, вызывающийся после вызова `GlobalLoader.reject()`.\n * Или после установки пропа `rejected = true`\n */\n onReject?(): void;\n /**\n * Коллбек, вызывающийся после вызова `GlobalLoader.accept()`.\n * Или после установки пропа `rejected = false`\n */\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@rootNode\nexport class GlobalLoader extends React.Component<GlobalLoaderProps, GlobalLoaderState> {\n public static __KONTUR_REACT_UI__ = 'GlobalLoader';\n public static displayName = 'GlobalLoader';\n\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":[]}
@@ -68,6 +68,7 @@ export declare class GlobalLoader extends React.Component<GlobalLoaderProps, Glo
68
68
  static defaultProps: DefaultProps;
69
69
  constructor(props: GlobalLoaderProps);
70
70
  componentDidMount(): void;
71
+ componentWillUnmount(): void;
71
72
  componentDidUpdate(prevProps: Readonly<GlobalLoaderProps>): void;
72
73
  render(): false | React.JSX.Element;
73
74
  /**
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@skbkontur/react-ui",
3
- "version": "5.0.9",
3
+ "version": "5.0.10",
4
4
  "description": "UI Components",
5
5
  "main": "cjs/index.js",
6
6
  "module": "index.js",
7
7
  "sideEffects": false,
8
- "homepage": "https://tech.skbkontur.ru/react-ui/5.0.9/",
8
+ "homepage": "https://tech.skbkontur.ru/react-ui/5.0.10/",
9
9
  "repository": {
10
10
  "type": "git",
11
11
  "url": "git@github.com:skbkontur/retail-ui.git"