@snabcentr/client-core 3.5.1 → 3.5.4

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.
@@ -0,0 +1 @@
1
+ export * from './request-state-status-enum';
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Статусы состояния запроса.
3
+ */
4
+ export declare enum ScRequestStateStatusEnum {
5
+ /**
6
+ * Статус загрузки.
7
+ */
8
+ Loading = "loading",
9
+ /**
10
+ * Статус успешного выполнения запроса.
11
+ */
12
+ Success = "success",
13
+ /**
14
+ * Статус ошибки.
15
+ */
16
+ Error = "error"
17
+ }
package/common/index.d.ts CHANGED
@@ -1,2 +1,3 @@
1
+ export * from './enums';
1
2
  export * from './interfaces';
2
3
  export * from './classes';
@@ -15,3 +15,4 @@ export * from './sc-i-image';
15
15
  export * from './sc-i-catalogable-item';
16
16
  export * from './sc-i-hidden-catalogable-item';
17
17
  export * from './sc-i-primary-catalogable-item';
18
+ export * from './sc-i-request-state';
@@ -0,0 +1,35 @@
1
+ import { OperatorFunction } from 'rxjs';
2
+ import { ScRequestStateStatusEnum } from '../enums';
3
+ /**
4
+ * Состояние выполнения запроса.
5
+ */
6
+ export type ScIRequestState<T> = {
7
+ status: ScRequestStateStatusEnum.Loading;
8
+ } | {
9
+ status: ScRequestStateStatusEnum.Success;
10
+ data: T;
11
+ } | {
12
+ status: ScRequestStateStatusEnum.Error;
13
+ };
14
+ /**
15
+ * Состояние загрузки.
16
+ */
17
+ export declare const ScLoadingRequestState: ScIRequestState<never>;
18
+ /**
19
+ * Состояние успешного выполнения запроса.
20
+ *
21
+ * @param requestData Данные запроса.
22
+ */
23
+ export declare const ScSuccessRequestState: <T>(requestData: T) => ScIRequestState<T>;
24
+ /**
25
+ * Состояние ошибки.
26
+ */
27
+ export declare const ScErrorRequestState: ScIRequestState<never>;
28
+ /**
29
+ * Преобразует поток данных в поток с состояниями запроса.
30
+ */
31
+ export declare const mapToRequestState: <T>() => OperatorFunction<T, ScIRequestState<T>>;
32
+ /**
33
+ * Извлекает данные из потока состояний запроса или возвращает null.
34
+ */
35
+ export declare const mapRequestStateToDataOrNull: <T>() => OperatorFunction<ScIRequestState<T>, T | null>;
@@ -0,0 +1,2 @@
1
+ export * from './request-state-status-enum';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbW1vbi9lbnVtcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9yZXF1ZXN0LXN0YXRlLXN0YXR1cy1lbnVtJztcbiJdfQ==
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Статусы состояния запроса.
3
+ */
4
+ export var ScRequestStateStatusEnum;
5
+ (function (ScRequestStateStatusEnum) {
6
+ /**
7
+ * Статус загрузки.
8
+ */
9
+ ScRequestStateStatusEnum["Loading"] = "loading";
10
+ /**
11
+ * Статус успешного выполнения запроса.
12
+ */
13
+ ScRequestStateStatusEnum["Success"] = "success";
14
+ /**
15
+ * Статус ошибки.
16
+ */
17
+ ScRequestStateStatusEnum["Error"] = "error";
18
+ })(ScRequestStateStatusEnum || (ScRequestStateStatusEnum = {}));
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1zdGF0ZS1zdGF0dXMtZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tbW9uL2VudW1zL3JlcXVlc3Qtc3RhdGUtc3RhdHVzLWVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxNQUFNLENBQU4sSUFBWSx3QkFlWDtBQWZELFdBQVksd0JBQXdCO0lBQ2hDOztPQUVHO0lBQ0gsK0NBQW1CLENBQUE7SUFFbkI7O09BRUc7SUFDSCwrQ0FBbUIsQ0FBQTtJQUVuQjs7T0FFRztJQUNILDJDQUFlLENBQUE7QUFDbkIsQ0FBQyxFQWZXLHdCQUF3QixLQUF4Qix3QkFBd0IsUUFlbkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqINCh0YLQsNGC0YPRgdGLINGB0L7RgdGC0L7Rj9C90LjRjyDQt9Cw0L/RgNC+0YHQsC5cbiAqL1xuZXhwb3J0IGVudW0gU2NSZXF1ZXN0U3RhdGVTdGF0dXNFbnVtIHtcbiAgICAvKipcbiAgICAgKiDQodGC0LDRgtGD0YEg0LfQsNCz0YDRg9C30LrQuC5cbiAgICAgKi9cbiAgICBMb2FkaW5nID0gJ2xvYWRpbmcnLFxuXG4gICAgLyoqXG4gICAgICog0KHRgtCw0YLRg9GBINGD0YHQv9C10YjQvdC+0LPQviDQstGL0L/QvtC70L3QtdC90LjRjyDQt9Cw0L/RgNC+0YHQsC5cbiAgICAgKi9cbiAgICBTdWNjZXNzID0gJ3N1Y2Nlc3MnLFxuXG4gICAgLyoqXG4gICAgICog0KHRgtCw0YLRg9GBINC+0YjQuNCx0LrQuC5cbiAgICAgKi9cbiAgICBFcnJvciA9ICdlcnJvcicsXG59XG4iXX0=
@@ -1,3 +1,4 @@
1
+ export * from './enums';
1
2
  export * from './interfaces';
2
3
  export * from './classes';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbW1vbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLFdBQVcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcyc7XG5leHBvcnQgKiBmcm9tICcuL2NsYXNzZXMnO1xuIl19
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbW1vbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLFdBQVcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZW51bXMnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzJztcbmV4cG9ydCAqIGZyb20gJy4vY2xhc3Nlcyc7XG4iXX0=
@@ -15,4 +15,5 @@ export * from './sc-i-image';
15
15
  export * from './sc-i-catalogable-item';
16
16
  export * from './sc-i-hidden-catalogable-item';
17
17
  export * from './sc-i-primary-catalogable-item';
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbW1vbi9pbnRlcmZhY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxjQUFjLENBQUM7QUFFN0IsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLG9CQUFvQixDQUFDO0FBRW5DLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLGtCQUFrQixDQUFDO0FBRWpDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxpQ0FBaUMsQ0FBQztBQUVoRCxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGNBQWMsQ0FBQztBQUU3QixjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxpQ0FBaUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2MtaS1jcmVhdGVkLWF0JztcbmV4cG9ydCAqIGZyb20gJy4vc2MtaS1kZWxldGVkLWF0JztcbmV4cG9ydCAqIGZyb20gJy4vc2MtaS1pZGVudGl0eSc7XG5leHBvcnQgKiBmcm9tICcuL3NjLWktdXBkYXRlZC1hdCc7XG5leHBvcnQgKiBmcm9tICcuL3NjLWktbmFtZWQnO1xuXG5leHBvcnQgKiBmcm9tICcuL3NjLWktdHlwZWQtbnVsbGFibGUtcmFuZ2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zYy1pLWRhdGUtcGVyaW9kJztcblxuZXhwb3J0ICogZnJvbSAnLi9zYy1pLW5hbWVkLWlkZW50aXR5JztcbmV4cG9ydCAqIGZyb20gJy4vc2MtaS1jb2RlZC1pZGVudGl0eSc7XG5leHBvcnQgKiBmcm9tICcuL3NjLWktcmVmZXJlbmNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9zYy1pLXVwZGF0YWJsZS1uYW1lZC1pZGVudGl0eSc7XG5leHBvcnQgKiBmcm9tICcuL3NjLWktZGVsZXRhYmxlLW5hbWVkLWlkZW50aXR5JztcblxuZXhwb3J0ICogZnJvbSAnLi9zYy1pLWZpbGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zYy1pLWltYWdlJztcblxuZXhwb3J0ICogZnJvbSAnLi9zYy1pLWNhdGFsb2dhYmxlLWl0ZW0nO1xuZXhwb3J0ICogZnJvbSAnLi9zYy1pLWhpZGRlbi1jYXRhbG9nYWJsZS1pdGVtJztcbmV4cG9ydCAqIGZyb20gJy4vc2MtaS1wcmltYXJ5LWNhdGFsb2dhYmxlLWl0ZW0nO1xuIl19
18
+ export * from './sc-i-request-state';
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbW1vbi9pbnRlcmZhY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxjQUFjLENBQUM7QUFFN0IsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLG9CQUFvQixDQUFDO0FBRW5DLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLGtCQUFrQixDQUFDO0FBRWpDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxpQ0FBaUMsQ0FBQztBQUVoRCxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGNBQWMsQ0FBQztBQUU3QixjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxpQ0FBaUMsQ0FBQztBQUVoRCxjQUFjLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zYy1pLWNyZWF0ZWQtYXQnO1xuZXhwb3J0ICogZnJvbSAnLi9zYy1pLWRlbGV0ZWQtYXQnO1xuZXhwb3J0ICogZnJvbSAnLi9zYy1pLWlkZW50aXR5JztcbmV4cG9ydCAqIGZyb20gJy4vc2MtaS11cGRhdGVkLWF0JztcbmV4cG9ydCAqIGZyb20gJy4vc2MtaS1uYW1lZCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vc2MtaS10eXBlZC1udWxsYWJsZS1yYW5nZSc7XG5leHBvcnQgKiBmcm9tICcuL3NjLWktZGF0ZS1wZXJpb2QnO1xuXG5leHBvcnQgKiBmcm9tICcuL3NjLWktbmFtZWQtaWRlbnRpdHknO1xuZXhwb3J0ICogZnJvbSAnLi9zYy1pLWNvZGVkLWlkZW50aXR5JztcbmV4cG9ydCAqIGZyb20gJy4vc2MtaS1yZWZlcmVuY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL3NjLWktdXBkYXRhYmxlLW5hbWVkLWlkZW50aXR5JztcbmV4cG9ydCAqIGZyb20gJy4vc2MtaS1kZWxldGFibGUtbmFtZWQtaWRlbnRpdHknO1xuXG5leHBvcnQgKiBmcm9tICcuL3NjLWktZmlsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NjLWktaW1hZ2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL3NjLWktY2F0YWxvZ2FibGUtaXRlbSc7XG5leHBvcnQgKiBmcm9tICcuL3NjLWktaGlkZGVuLWNhdGFsb2dhYmxlLWl0ZW0nO1xuZXhwb3J0ICogZnJvbSAnLi9zYy1pLXByaW1hcnktY2F0YWxvZ2FibGUtaXRlbSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vc2MtaS1yZXF1ZXN0LXN0YXRlJztcbiJdfQ==
@@ -0,0 +1,26 @@
1
+ import { of } from 'rxjs';
2
+ import { catchError, map, startWith } from 'rxjs/operators';
3
+ import { ScRequestStateStatusEnum } from '../enums';
4
+ /**
5
+ * Состояние загрузки.
6
+ */
7
+ export const ScLoadingRequestState = { status: ScRequestStateStatusEnum.Loading };
8
+ /**
9
+ * Состояние успешного выполнения запроса.
10
+ *
11
+ * @param requestData Данные запроса.
12
+ */
13
+ export const ScSuccessRequestState = (requestData) => ({ status: ScRequestStateStatusEnum.Success, data: requestData });
14
+ /**
15
+ * Состояние ошибки.
16
+ */
17
+ export const ScErrorRequestState = { status: ScRequestStateStatusEnum.Error };
18
+ /**
19
+ * Преобразует поток данных в поток с состояниями запроса.
20
+ */
21
+ export const mapToRequestState = () => (source$) => source$.pipe(map((requestData) => ScSuccessRequestState(requestData)), startWith(ScLoadingRequestState), catchError(() => of(ScErrorRequestState)));
22
+ /**
23
+ * Извлекает данные из потока состояний запроса или возвращает null.
24
+ */
25
+ export const mapRequestStateToDataOrNull = () => (source$) => source$.pipe(map((requestState) => (requestState.status === ScRequestStateStatusEnum.Success ? requestState.data : null)));
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtaS1yZXF1ZXN0LXN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9jb21tb24vaW50ZXJmYWNlcy9zYy1pLXJlcXVlc3Qtc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLEVBQUUsRUFBb0IsTUFBTSxNQUFNLENBQUM7QUFDeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBT3BEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQTJCLEVBQUUsTUFBTSxFQUFFLHdCQUF3QixDQUFDLE9BQU8sRUFBRSxDQUFDO0FBRTFHOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxDQUFJLFdBQWMsRUFBc0IsRUFBRSxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsd0JBQXdCLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0FBRWxKOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQTJCLEVBQUUsTUFBTSxFQUFFLHdCQUF3QixDQUFDLEtBQUssRUFBRSxDQUFDO0FBRXRHOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQzFCLEdBQStDLEVBQUUsQ0FDakQsQ0FBQyxPQUFzQixFQUFFLEVBQUUsQ0FDdkIsT0FBTyxDQUFDLElBQUksQ0FDUixHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLHFCQUFxQixDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQ3hELFNBQVMsQ0FBQyxxQkFBMkMsQ0FBQyxFQUN0RCxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLG1CQUF5QyxDQUFDLENBQUMsQ0FDbEUsQ0FBQztBQUVWOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQ3BDLEdBQXNELEVBQUUsQ0FDeEQsQ0FBQyxPQUF1QyxFQUFFLEVBQUUsQ0FDeEMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sS0FBSyx3QkFBd0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBPcGVyYXRvckZ1bmN0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAsIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2NSZXF1ZXN0U3RhdGVTdGF0dXNFbnVtIH0gZnJvbSAnLi4vZW51bXMnO1xuXG4vKipcbiAqINCh0L7RgdGC0L7Rj9C90LjQtSDQstGL0L/QvtC70L3QtdC90LjRjyDQt9Cw0L/RgNC+0YHQsC5cbiAqL1xuZXhwb3J0IHR5cGUgU2NJUmVxdWVzdFN0YXRlPFQ+ID0geyBzdGF0dXM6IFNjUmVxdWVzdFN0YXRlU3RhdHVzRW51bS5Mb2FkaW5nIH0gfCB7IHN0YXR1czogU2NSZXF1ZXN0U3RhdGVTdGF0dXNFbnVtLlN1Y2Nlc3M7IGRhdGE6IFQgfSB8IHsgc3RhdHVzOiBTY1JlcXVlc3RTdGF0ZVN0YXR1c0VudW0uRXJyb3IgfTtcblxuLyoqXG4gKiDQodC+0YHRgtC+0Y/QvdC40LUg0LfQsNCz0YDRg9C30LrQuC5cbiAqL1xuZXhwb3J0IGNvbnN0IFNjTG9hZGluZ1JlcXVlc3RTdGF0ZTogU2NJUmVxdWVzdFN0YXRlPG5ldmVyPiA9IHsgc3RhdHVzOiBTY1JlcXVlc3RTdGF0ZVN0YXR1c0VudW0uTG9hZGluZyB9O1xuXG4vKipcbiAqINCh0L7RgdGC0L7Rj9C90LjQtSDRg9GB0L/QtdGI0L3QvtCz0L4g0LLRi9C/0L7Qu9C90LXQvdC40Y8g0LfQsNC/0YDQvtGB0LAuXG4gKlxuICogQHBhcmFtIHJlcXVlc3REYXRhINCU0LDQvdC90YvQtSDQt9Cw0L/RgNC+0YHQsC5cbiAqL1xuZXhwb3J0IGNvbnN0IFNjU3VjY2Vzc1JlcXVlc3RTdGF0ZSA9IDxUPihyZXF1ZXN0RGF0YTogVCk6IFNjSVJlcXVlc3RTdGF0ZTxUPiA9PiAoeyBzdGF0dXM6IFNjUmVxdWVzdFN0YXRlU3RhdHVzRW51bS5TdWNjZXNzLCBkYXRhOiByZXF1ZXN0RGF0YSB9KTtcblxuLyoqXG4gKiDQodC+0YHRgtC+0Y/QvdC40LUg0L7RiNC40LHQutC4LlxuICovXG5leHBvcnQgY29uc3QgU2NFcnJvclJlcXVlc3RTdGF0ZTogU2NJUmVxdWVzdFN0YXRlPG5ldmVyPiA9IHsgc3RhdHVzOiBTY1JlcXVlc3RTdGF0ZVN0YXR1c0VudW0uRXJyb3IgfTtcblxuLyoqXG4gKiDQn9GA0LXQvtCx0YDQsNC30YPQtdGCINC/0L7RgtC+0Log0LTQsNC90L3Ri9GFINCyINC/0L7RgtC+0Log0YEg0YHQvtGB0YLQvtGP0L3QuNGP0LzQuCDQt9Cw0L/RgNC+0YHQsC5cbiAqL1xuZXhwb3J0IGNvbnN0IG1hcFRvUmVxdWVzdFN0YXRlID1cbiAgICA8VD4oKTogT3BlcmF0b3JGdW5jdGlvbjxULCBTY0lSZXF1ZXN0U3RhdGU8VD4+ID0+XG4gICAgKHNvdXJjZSQ6IE9ic2VydmFibGU8VD4pID0+XG4gICAgICAgIHNvdXJjZSQucGlwZShcbiAgICAgICAgICAgIG1hcCgocmVxdWVzdERhdGEpID0+IFNjU3VjY2Vzc1JlcXVlc3RTdGF0ZShyZXF1ZXN0RGF0YSkpLFxuICAgICAgICAgICAgc3RhcnRXaXRoKFNjTG9hZGluZ1JlcXVlc3RTdGF0ZSBhcyBTY0lSZXF1ZXN0U3RhdGU8VD4pLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZihTY0Vycm9yUmVxdWVzdFN0YXRlIGFzIFNjSVJlcXVlc3RTdGF0ZTxUPikpXG4gICAgICAgICk7XG5cbi8qKlxuICog0JjQt9Cy0LvQtdC60LDQtdGCINC00LDQvdC90YvQtSDQuNC3INC/0L7RgtC+0LrQsCDRgdC+0YHRgtC+0Y/QvdC40Lkg0LfQsNC/0YDQvtGB0LAg0LjQu9C4INCy0L7Qt9Cy0YDQsNGJ0LDQtdGCIG51bGwuXG4gKi9cbmV4cG9ydCBjb25zdCBtYXBSZXF1ZXN0U3RhdGVUb0RhdGFPck51bGwgPVxuICAgIDxUPigpOiBPcGVyYXRvckZ1bmN0aW9uPFNjSVJlcXVlc3RTdGF0ZTxUPiwgVCB8IG51bGw+ID0+XG4gICAgKHNvdXJjZSQ6IE9ic2VydmFibGU8U2NJUmVxdWVzdFN0YXRlPFQ+PikgPT5cbiAgICAgICAgc291cmNlJC5waXBlKG1hcCgocmVxdWVzdFN0YXRlKSA9PiAocmVxdWVzdFN0YXRlLnN0YXR1cyA9PT0gU2NSZXF1ZXN0U3RhdGVTdGF0dXNFbnVtLlN1Y2Nlc3MgPyByZXF1ZXN0U3RhdGUuZGF0YSA6IG51bGwpKSk7XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  import { Inject, Injectable } from '@angular/core';
2
- import { concatMap, first, map, of } from 'rxjs';
2
+ import { concatMap, defaultIfEmpty, map, of, take } from 'rxjs';
3
3
  import { SC_AUTH_AS_CLIENT_OPTIONS } from '../tokens/notification-options';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "../auth";
@@ -29,7 +29,7 @@ export class ScAuthAsClientGuard {
29
29
  canActivate(route) {
30
30
  const expiredAt = new Date();
31
31
  expiredAt.setMinutes(new Date().getMinutes() + this.options.expiredAtMinute);
32
- return this.authService.getAuthChange().pipe(first(),
32
+ return this.authService.getAuthChange().pipe(take(1), defaultIfEmpty(false),
33
33
  // Если пользователь авторизирован, то завершаем сеанс.
34
34
  concatMap((state) => (state ? this.authService.getSignOut$(false) : of(null))),
35
35
  // Обновляем полученные ключи, чтобы они перестали действовать. getRefreshTokenObservable() запишет новые ключи в систему, после чего проложение само запросит нового пользователя.
@@ -42,7 +42,7 @@ export class ScAuthAsClientGuard {
42
42
  token: route.paramMap.get('rtoken') ?? '',
43
43
  expiredAt: expiredAt,
44
44
  },
45
- })), first(), map(() => this.router.createUrlTree(this.options.urlTree)));
45
+ })), take(1), defaultIfEmpty(null), map(() => this.router.createUrlTree(this.options.urlTree)));
46
46
  }
47
47
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScAuthAsClientGuard, deps: [{ token: i1.ScAuthService }, { token: i2.Router }, { token: SC_AUTH_AS_CLIENT_OPTIONS }], target: i0.ɵɵFactoryTarget.Injectable }); }
48
48
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScAuthAsClientGuard }); }
@@ -53,4 +53,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
53
53
  type: Inject,
54
54
  args: [SC_AUTH_AS_CLIENT_OPTIONS]
55
55
  }] }] });
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtYXV0aC1hcy1jbGllbnQuZ3VhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2d1YXJkcy9zYy1hdXRoLWFzLWNsaWVudC5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRzdELE9BQU8sRUFBRSx5QkFBeUIsRUFBeUIsTUFBTSxnQ0FBZ0MsQ0FBQzs7OztBQUVsRzs7R0FFRztBQUVILE1BQU0sT0FBTyxtQkFBbUI7SUFDNUI7Ozs7OztPQU1HO0lBQ0gsWUFDWSxXQUEwQixFQUMxQixNQUFjLEVBRUgsT0FBOEI7UUFIekMsZ0JBQVcsR0FBWCxXQUFXLENBQWU7UUFDMUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUVILFlBQU8sR0FBUCxPQUFPLENBQXVCO0lBQ2xELENBQUM7SUFFSjs7OztPQUlHO0lBQ0gsd0RBQXdEO0lBQ2pELFdBQVcsQ0FBQyxLQUE2QjtRQUM1QyxNQUFNLFNBQVMsR0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ25DLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxVQUFVLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRTdFLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxJQUFJLENBQ3hDLEtBQUssRUFBRTtRQUNQLHVEQUF1RDtRQUN2RCxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDOUUsbUxBQW1MO1FBQ25MLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FDWCxJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDO1lBQzlCLE1BQU0sRUFBRTtnQkFDSixLQUFLLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRTtnQkFDekMsU0FBUyxFQUFFLFNBQVM7YUFDdkI7WUFDRCxPQUFPLEVBQUU7Z0JBQ0wsS0FBSyxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUU7Z0JBQ3pDLFNBQVMsRUFBRSxTQUFTO2FBQ3ZCO1NBQ0osQ0FBQyxDQUNMLEVBQ0QsS0FBSyxFQUFFLEVBQ1AsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FDN0QsQ0FBQztJQUNOLENBQUM7K0dBN0NRLG1CQUFtQixxRUFXaEIseUJBQXlCO21IQVg1QixtQkFBbUI7OzRGQUFuQixtQkFBbUI7a0JBRC9CLFVBQVU7OzBCQVlGLE1BQU07MkJBQUMseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBSb3V0ZXIsIFVybFRyZWUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgY29uY2F0TWFwLCBmaXJzdCwgbWFwLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTY0F1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vYXV0aCc7XG5pbXBvcnQgeyBTQ19BVVRIX0FTX0NMSUVOVF9PUFRJT05TLCBTY0F1dGhBc0NsaWVudE9wdGlvbnMgfSBmcm9tICcuLi90b2tlbnMvbm90aWZpY2F0aW9uLW9wdGlvbnMnO1xuXG4vKipcbiAqINCh0LXRgNCy0LjRgSDQsNGD0YLQtdC90YLQuNGE0LjQutCw0YbQuNC4INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjyDQvdCwINC+0YHQvdC+0LLQtSDQutC70Y7Rh9C10LksINC/0LXRgNC10LTQsNC90L3Ri9GFINCyINC/0LDRgNCw0LzQtdGC0YDQsNGFINC30LDQv9GA0L7RgdCwLlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2NBdXRoQXNDbGllbnRHdWFyZCB7XG4gICAgLyoqXG4gICAgICog0JjQvdC40YbQuNCw0LvQuNC30LjRgNGD0LXRgiDRjdC60LfQtdC80L/Qu9GP0YAg0LrQu9Cw0YHRgdCwIHtAbGluayBBdXRoQXNDbGllbnRHdWFyZH0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYXV0aFNlcnZpY2Ug0KHQtdGA0LLQuNGBINCw0YPRgtC10L3RgtC40YTQuNC60LDRhtC40LguXG4gICAgICogQHBhcmFtIHJvdXRlciDQodC10YDQstC40YEg0LzQsNGA0YjRgNGD0YLQuNC30LDRhtC40LguXG4gICAgICogQHBhcmFtIG9wdGlvbnMg0J/QsNGA0LDQvNC10YLRgNGLINCw0LLRgtC+0YDQuNC30LDRhtC40Lgg0L/QvtC0INC60LvQuNC10L3RgtC+0LwuXG4gICAgICovXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBTY0F1dGhTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgICAgICBASW5qZWN0KFNDX0FVVEhfQVNfQ0xJRU5UX09QVElPTlMpXG4gICAgICAgIHByb3RlY3RlZCByZWFkb25seSBvcHRpb25zOiBTY0F1dGhBc0NsaWVudE9wdGlvbnNcbiAgICApIHt9XG5cbiAgICAvKipcbiAgICAgKiDQoNCw0LfRgNC10YjQsNC10YIv0LfQsNC/0YDQtdGJ0LDQtdGCINC00L7RgdGC0YPQvyDQuiDQvNCw0YDRiNGA0YPRgtGDLlxuICAgICAqXG4gICAgICogQHBhcmFtIHJvdXRlINCU0LDQvdC90YvQtSDQviDRgtC10LrRg9GJ0LXQvCDQvNCw0YDRiNGA0YPRgtC1LlxuICAgICAqL1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBzb25hcmpzL2Z1bmN0aW9uLXJldHVybi10eXBlXG4gICAgcHVibGljIGNhbkFjdGl2YXRlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogT2JzZXJ2YWJsZTxib29sZWFuIHwgVXJsVHJlZT4gfCBQcm9taXNlPGJvb2xlYW4gfCBVcmxUcmVlPiB8IGJvb2xlYW4gfCBVcmxUcmVlIHtcbiAgICAgICAgY29uc3QgZXhwaXJlZEF0OiBEYXRlID0gbmV3IERhdGUoKTtcbiAgICAgICAgZXhwaXJlZEF0LnNldE1pbnV0ZXMobmV3IERhdGUoKS5nZXRNaW51dGVzKCkgKyB0aGlzLm9wdGlvbnMuZXhwaXJlZEF0TWludXRlKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5hdXRoU2VydmljZS5nZXRBdXRoQ2hhbmdlKCkucGlwZShcbiAgICAgICAgICAgIGZpcnN0KCksXG4gICAgICAgICAgICAvLyDQldGB0LvQuCDQv9C+0LvRjNC30L7QstCw0YLQtdC70Ywg0LDQstGC0L7RgNC40LfQuNGA0L7QstCw0L0sINGC0L4g0LfQsNCy0LXRgNGI0LDQtdC8INGB0LXQsNC90YEuXG4gICAgICAgICAgICBjb25jYXRNYXAoKHN0YXRlKSA9PiAoc3RhdGUgPyB0aGlzLmF1dGhTZXJ2aWNlLmdldFNpZ25PdXQkKGZhbHNlKSA6IG9mKG51bGwpKSksXG4gICAgICAgICAgICAvLyDQntCx0L3QvtCy0LvRj9C10Lwg0L/QvtC70YPRh9C10L3QvdGL0LUg0LrQu9GO0YfQuCwg0YfRgtC+0LHRiyDQvtC90Lgg0L/QtdGA0LXRgdGC0LDQu9C4INC00LXQudGB0YLQstC+0LLQsNGC0YwuIGdldFJlZnJlc2hUb2tlbk9ic2VydmFibGUoKSDQt9Cw0L/QuNGI0LXRgiDQvdC+0LLRi9C1INC60LvRjtGH0Lgg0LIg0YHQuNGB0YLQtdC80YMsINC/0L7RgdC70LUg0YfQtdCz0L4g0L/RgNC+0LvQvtC20LXQvdC40LUg0YHQsNC80L4g0LfQsNC/0YDQvtGB0LjRgiDQvdC+0LLQvtCz0L4g0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPLlxuICAgICAgICAgICAgY29uY2F0TWFwKCgpID0+XG4gICAgICAgICAgICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRSZWZyZXNoVG9rZW4kKHtcbiAgICAgICAgICAgICAgICAgICAgYWNjZXNzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b2tlbjogcm91dGUucGFyYW1NYXAuZ2V0KCdhdG9rZW4nKSA/PyAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGlyZWRBdDogZXhwaXJlZEF0LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICByZWZyZXNoOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b2tlbjogcm91dGUucGFyYW1NYXAuZ2V0KCdydG9rZW4nKSA/PyAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGlyZWRBdDogZXhwaXJlZEF0LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgICAgIG1hcCgoKSA9PiB0aGlzLnJvdXRlci5jcmVhdGVVcmxUcmVlKHRoaXMub3B0aW9ucy51cmxUcmVlKSlcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtYXV0aC1hcy1jbGllbnQuZ3VhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2d1YXJkcy9zYy1hdXRoLWFzLWNsaWVudC5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxHQUFHLEVBQWMsRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUc1RSxPQUFPLEVBQUUseUJBQXlCLEVBQXlCLE1BQU0sZ0NBQWdDLENBQUM7Ozs7QUFFbEc7O0dBRUc7QUFFSCxNQUFNLE9BQU8sbUJBQW1CO0lBQzVCOzs7Ozs7T0FNRztJQUNILFlBQ1ksV0FBMEIsRUFDMUIsTUFBYyxFQUVILE9BQThCO1FBSHpDLGdCQUFXLEdBQVgsV0FBVyxDQUFlO1FBQzFCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFFSCxZQUFPLEdBQVAsT0FBTyxDQUF1QjtJQUNsRCxDQUFDO0lBRUo7Ozs7T0FJRztJQUNILHdEQUF3RDtJQUNqRCxXQUFXLENBQUMsS0FBNkI7UUFDNUMsTUFBTSxTQUFTLEdBQVMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNuQyxTQUFTLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUU3RSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLENBQUMsSUFBSSxDQUN4QyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsY0FBYyxDQUFDLEtBQUssQ0FBQztRQUNyQix1REFBdUQ7UUFDdkQsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzlFLG1MQUFtTDtRQUNuTCxTQUFTLENBQUMsR0FBRyxFQUFFLENBQ1gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQztZQUM5QixNQUFNLEVBQUU7Z0JBQ0osS0FBSyxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUU7Z0JBQ3pDLFNBQVMsRUFBRSxTQUFTO2FBQ3ZCO1lBQ0QsT0FBTyxFQUFFO2dCQUNMLEtBQUssRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFO2dCQUN6QyxTQUFTLEVBQUUsU0FBUzthQUN2QjtTQUNKLENBQUMsQ0FDTCxFQUNELElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQ3BCLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQzdELENBQUM7SUFDTixDQUFDOytHQS9DUSxtQkFBbUIscUVBV2hCLHlCQUF5QjttSEFYNUIsbUJBQW1COzs0RkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVOzswQkFZRixNQUFNOzJCQUFDLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgUm91dGVyLCBVcmxUcmVlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGNvbmNhdE1hcCwgZGVmYXVsdElmRW1wdHksIG1hcCwgT2JzZXJ2YWJsZSwgb2YsIHRha2UgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2NBdXRoU2VydmljZSB9IGZyb20gJy4uL2F1dGgnO1xuaW1wb3J0IHsgU0NfQVVUSF9BU19DTElFTlRfT1BUSU9OUywgU2NBdXRoQXNDbGllbnRPcHRpb25zIH0gZnJvbSAnLi4vdG9rZW5zL25vdGlmaWNhdGlvbi1vcHRpb25zJztcblxuLyoqXG4gKiDQodC10YDQstC40YEg0LDRg9GC0LXQvdGC0LjRhNC40LrQsNGG0LjQuCDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8g0L3QsCDQvtGB0L3QvtCy0LUg0LrQu9GO0YfQtdC5LCDQv9C10YDQtdC00LDQvdC90YvRhSDQsiDQv9Cw0YDQsNC80LXRgtGA0LDRhSDQt9Cw0L/RgNC+0YHQsC5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNjQXV0aEFzQ2xpZW50R3VhcmQge1xuICAgIC8qKlxuICAgICAqINCY0L3QuNGG0LjQsNC70LjQt9C40YDRg9C10YIg0Y3QutC30LXQvNC/0LvRj9GAINC60LvQsNGB0YHQsCB7QGxpbmsgQXV0aEFzQ2xpZW50R3VhcmR9LlxuICAgICAqXG4gICAgICogQHBhcmFtIGF1dGhTZXJ2aWNlINCh0LXRgNCy0LjRgSDQsNGD0YLQtdC90YLQuNGE0LjQutCw0YbQuNC4LlxuICAgICAqIEBwYXJhbSByb3V0ZXIg0KHQtdGA0LLQuNGBINC80LDRgNGI0YDRg9GC0LjQt9Cw0YbQuNC4LlxuICAgICAqIEBwYXJhbSBvcHRpb25zINCf0LDRgNCw0LzQtdGC0YDRiyDQsNCy0YLQvtGA0LjQt9Cw0YbQuNC4INC/0L7QtCDQutC70LjQtdC90YLQvtC8LlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBhdXRoU2VydmljZTogU2NBdXRoU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgQEluamVjdChTQ19BVVRIX0FTX0NMSUVOVF9PUFRJT05TKVxuICAgICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgb3B0aW9uczogU2NBdXRoQXNDbGllbnRPcHRpb25zXG4gICAgKSB7fVxuXG4gICAgLyoqXG4gICAgICog0KDQsNC30YDQtdGI0LDQtdGCL9C30LDQv9GA0LXRidCw0LXRgiDQtNC+0YHRgtGD0L8g0Log0LzQsNGA0YjRgNGD0YLRgy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSByb3V0ZSDQlNCw0L3QvdGL0LUg0L4g0YLQtdC60YPRidC10Lwg0LzQsNGA0YjRgNGD0YLQtS5cbiAgICAgKi9cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc29uYXJqcy9mdW5jdGlvbi1yZXR1cm4tdHlwZVxuICAgIHB1YmxpYyBjYW5BY3RpdmF0ZShyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCk6IE9ic2VydmFibGU8Ym9vbGVhbiB8IFVybFRyZWU+IHwgUHJvbWlzZTxib29sZWFuIHwgVXJsVHJlZT4gfCBib29sZWFuIHwgVXJsVHJlZSB7XG4gICAgICAgIGNvbnN0IGV4cGlyZWRBdDogRGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgICAgIGV4cGlyZWRBdC5zZXRNaW51dGVzKG5ldyBEYXRlKCkuZ2V0TWludXRlcygpICsgdGhpcy5vcHRpb25zLmV4cGlyZWRBdE1pbnV0ZSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aENoYW5nZSgpLnBpcGUoXG4gICAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgICAgZGVmYXVsdElmRW1wdHkoZmFsc2UpLFxuICAgICAgICAgICAgLy8g0JXRgdC70Lgg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GMINCw0LLRgtC+0YDQuNC30LjRgNC+0LLQsNC9LCDRgtC+INC30LDQstC10YDRiNCw0LXQvCDRgdC10LDQvdGBLlxuICAgICAgICAgICAgY29uY2F0TWFwKChzdGF0ZSkgPT4gKHN0YXRlID8gdGhpcy5hdXRoU2VydmljZS5nZXRTaWduT3V0JChmYWxzZSkgOiBvZihudWxsKSkpLFxuICAgICAgICAgICAgLy8g0J7QsdC90L7QstC70Y/QtdC8INC/0L7Qu9GD0YfQtdC90L3Ri9C1INC60LvRjtGH0LgsINGH0YLQvtCx0Ysg0L7QvdC4INC/0LXRgNC10YHRgtCw0LvQuCDQtNC10LnRgdGC0LLQvtCy0LDRgtGMLiBnZXRSZWZyZXNoVG9rZW5PYnNlcnZhYmxlKCkg0LfQsNC/0LjRiNC10YIg0L3QvtCy0YvQtSDQutC70Y7Rh9C4INCyINGB0LjRgdGC0LXQvNGDLCDQv9C+0YHQu9C1INGH0LXQs9C+INC/0YDQvtC70L7QttC10L3QuNC1INGB0LDQvNC+INC30LDQv9GA0L7RgdC40YIg0L3QvtCy0L7Qs9C+INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjy5cbiAgICAgICAgICAgIGNvbmNhdE1hcCgoKSA9PlxuICAgICAgICAgICAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0UmVmcmVzaFRva2VuJCh7XG4gICAgICAgICAgICAgICAgICAgIGFjY2Vzczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW46IHJvdXRlLnBhcmFtTWFwLmdldCgnYXRva2VuJykgPz8gJycsXG4gICAgICAgICAgICAgICAgICAgICAgICBleHBpcmVkQXQ6IGV4cGlyZWRBdCxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgcmVmcmVzaDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW46IHJvdXRlLnBhcmFtTWFwLmdldCgncnRva2VuJykgPz8gJycsXG4gICAgICAgICAgICAgICAgICAgICAgICBleHBpcmVkQXQ6IGV4cGlyZWRBdCxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgICBkZWZhdWx0SWZFbXB0eShudWxsKSxcbiAgICAgICAgICAgIG1hcCgoKSA9PiB0aGlzLnJvdXRlci5jcmVhdGVVcmxUcmVlKHRoaXMub3B0aW9ucy51cmxUcmVlKSlcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
@@ -1,8 +1,7 @@
1
1
  import { InjectionToken } from '@angular/core';
2
2
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
3
- import { ActivatedRoute } from '@angular/router';
4
- import { tuiIsPresent } from '@taiga-ui/cdk';
5
- import { filter, map, shareReplay, switchMap } from 'rxjs';
3
+ import { ActivatedRoute, NavigationEnd, Router } from '@angular/router';
4
+ import { filter, of, shareReplay, startWith, switchMap } from 'rxjs';
6
5
  import { ScCatalogService } from '../catalog/services/sc-catalog.service';
7
6
  import { scGetCurrentRoute } from '../helpers';
8
7
  /**
@@ -12,11 +11,18 @@ export const SC_CATEGORY_INFO = new InjectionToken('A stream with current catego
12
11
  /**
13
12
  * Фабрика создания потока данных о категории.
14
13
  *
14
+ * @param router Сервис для работы с маршрутом.
15
15
  * @param route Маршрут.
16
16
  * @param catalogService Сервис для работы с каталогом.
17
17
  */
18
- function categoryFactory(route, catalogService) {
19
- return scGetCurrentRoute(route).paramMap.pipe(map((parameters) => parameters.get('categoryIdOrSlug')), filter(tuiIsPresent), switchMap((categoryId) => catalogService.getCategoryCached$(categoryId).pipe(shareReplay())), takeUntilDestroyed());
18
+ function categoryFactory(router, route, catalogService) {
19
+ return router.events.pipe(filter((event) => event instanceof NavigationEnd)).pipe(startWith(null), switchMap(() => {
20
+ const categoryIdOrSlug = scGetCurrentRoute(route).snapshot.paramMap.get('categoryIdOrSlug');
21
+ if (categoryIdOrSlug) {
22
+ return catalogService.getCategoryCached$(categoryIdOrSlug);
23
+ }
24
+ return of(null);
25
+ }), shareReplay({ bufferSize: 1, refCount: true }), takeUntilDestroyed());
20
26
  }
21
27
  /**
22
28
  * Провайдеры потока данных о категории.
@@ -24,8 +30,8 @@ function categoryFactory(route, catalogService) {
24
30
  export const CATEGORY_PROVIDERS = [
25
31
  {
26
32
  provide: SC_CATEGORY_INFO,
27
- deps: [ActivatedRoute, ScCatalogService],
33
+ deps: [Router, ActivatedRoute, ScCatalogService],
28
34
  useFactory: categoryFactory,
29
35
  },
30
36
  ];
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtY2F0ZWdvcnkucHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9wcm92aWRlcnMvc2MtY2F0ZWdvcnkucHJvdmlkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQWMsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUd2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFL0M7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLGNBQWMsQ0FBZ0MsNENBQTRDLENBQUMsQ0FBQztBQUVoSTs7Ozs7R0FLRztBQUNILFNBQVMsZUFBZSxDQUFDLEtBQXFCLEVBQUUsY0FBZ0M7SUFDNUUsT0FBTyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUN6QyxHQUFHLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxFQUN2RCxNQUFNLENBQUMsWUFBWSxDQUFDLEVBQ3BCLFNBQVMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLEVBQzVGLGtCQUFrQixFQUFFLENBQ3ZCLENBQUM7QUFDTixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBZTtJQUMxQztRQUNJLE9BQU8sRUFBRSxnQkFBZ0I7UUFDekIsSUFBSSxFQUFFLENBQUMsY0FBYyxFQUFFLGdCQUFnQixDQUFDO1FBQ3hDLFVBQVUsRUFBRSxlQUFlO0tBQzlCO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuLCBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgdHVpSXNQcmVzZW50IH0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCwgT2JzZXJ2YWJsZSwgc2hhcmVSZXBsYXksIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTY0NhdGVnb3J5IH0gZnJvbSAnLi4vY2F0YWxvZy9kdG8vc2MtY2F0ZWdvcnknO1xuaW1wb3J0IHsgU2NDYXRhbG9nU2VydmljZSB9IGZyb20gJy4uL2NhdGFsb2cvc2VydmljZXMvc2MtY2F0YWxvZy5zZXJ2aWNlJztcbmltcG9ydCB7IHNjR2V0Q3VycmVudFJvdXRlIH0gZnJvbSAnLi4vaGVscGVycyc7XG5cbi8qKlxuICog0KLQvtC60LXQvSDQv9C+0YLQvtC60LAg0LTQsNC90L3Ri9GFINC+INC60LDRgtC10LPQvtGA0LjQuC5cbiAqL1xuZXhwb3J0IGNvbnN0IFNDX0NBVEVHT1JZX0lORk8gPSBuZXcgSW5qZWN0aW9uVG9rZW48T2JzZXJ2YWJsZTxTY0NhdGVnb3J5IHwgbnVsbD4+KCdBIHN0cmVhbSB3aXRoIGN1cnJlbnQgY2F0ZWdvcnkgaW5mb3JtYXRpb24nKTtcblxuLyoqXG4gKiDQpNCw0LHRgNC40LrQsCDRgdC+0LfQtNCw0L3QuNGPINC/0L7RgtC+0LrQsCDQtNCw0L3QvdGL0YUg0L4g0LrQsNGC0LXQs9C+0YDQuNC4LlxuICpcbiAqIEBwYXJhbSByb3V0ZSDQnNCw0YDRiNGA0YPRgi5cbiAqIEBwYXJhbSBjYXRhbG9nU2VydmljZSDQodC10YDQstC40YEg0LTQu9GPINGA0LDQsdC+0YLRiyDRgSDQutCw0YLQsNC70L7Qs9C+0LwuXG4gKi9cbmZ1bmN0aW9uIGNhdGVnb3J5RmFjdG9yeShyb3V0ZTogQWN0aXZhdGVkUm91dGUsIGNhdGFsb2dTZXJ2aWNlOiBTY0NhdGFsb2dTZXJ2aWNlKTogT2JzZXJ2YWJsZTxTY0NhdGVnb3J5IHwgbnVsbD4ge1xuICAgIHJldHVybiBzY0dldEN1cnJlbnRSb3V0ZShyb3V0ZSkucGFyYW1NYXAucGlwZShcbiAgICAgICAgbWFwKChwYXJhbWV0ZXJzKSA9PiBwYXJhbWV0ZXJzLmdldCgnY2F0ZWdvcnlJZE9yU2x1ZycpKSxcbiAgICAgICAgZmlsdGVyKHR1aUlzUHJlc2VudCksXG4gICAgICAgIHN3aXRjaE1hcCgoY2F0ZWdvcnlJZCkgPT4gY2F0YWxvZ1NlcnZpY2UuZ2V0Q2F0ZWdvcnlDYWNoZWQkKGNhdGVnb3J5SWQpLnBpcGUoc2hhcmVSZXBsYXkoKSkpLFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQoKVxuICAgICk7XG59XG5cbi8qKlxuICog0J/RgNC+0LLQsNC50LTQtdGA0Ysg0L/QvtGC0L7QutCwINC00LDQvdC90YvRhSDQviDQutCw0YLQtdCz0L7RgNC40LguXG4gKi9cbmV4cG9ydCBjb25zdCBDQVRFR09SWV9QUk9WSURFUlM6IFByb3ZpZGVyW10gPSBbXG4gICAge1xuICAgICAgICBwcm92aWRlOiBTQ19DQVRFR09SWV9JTkZPLFxuICAgICAgICBkZXBzOiBbQWN0aXZhdGVkUm91dGUsIFNjQ2F0YWxvZ1NlcnZpY2VdLFxuICAgICAgICB1c2VGYWN0b3J5OiBjYXRlZ29yeUZhY3RvcnksXG4gICAgfSxcbl07XG4iXX0=
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtY2F0ZWdvcnkucHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9wcm92aWRlcnMvc2MtY2F0ZWdvcnkucHJvdmlkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEUsT0FBTyxFQUFFLE1BQU0sRUFBYyxFQUFFLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHakYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRS9DOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxjQUFjLENBQWdDLDRDQUE0QyxDQUFDLENBQUM7QUFFaEk7Ozs7OztHQU1HO0FBQ0gsU0FBUyxlQUFlLENBQUMsTUFBYyxFQUFFLEtBQXFCLEVBQUUsY0FBZ0M7SUFDNUYsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssWUFBWSxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDN0UsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUNmLFNBQVMsQ0FBQyxHQUFHLEVBQUU7UUFDWCxNQUFNLGdCQUFnQixHQUFHLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFFNUYsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1lBQ25CLE9BQU8sY0FBYyxDQUFDLGtCQUFrQixDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDL0QsQ0FBQztRQUVELE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BCLENBQUMsQ0FBQyxFQUNGLFdBQVcsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQzlDLGtCQUFrQixFQUFFLENBQ3ZCLENBQUM7QUFDTixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBZTtJQUMxQztRQUNJLE9BQU8sRUFBRSxnQkFBZ0I7UUFDekIsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFLGNBQWMsRUFBRSxnQkFBZ0IsQ0FBQztRQUNoRCxVQUFVLEVBQUUsZUFBZTtLQUM5QjtDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiwgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgZmlsdGVyLCBPYnNlcnZhYmxlLCBvZiwgc2hhcmVSZXBsYXksIHN0YXJ0V2l0aCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNjQ2F0ZWdvcnkgfSBmcm9tICcuLi9jYXRhbG9nL2R0by9zYy1jYXRlZ29yeSc7XG5pbXBvcnQgeyBTY0NhdGFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vY2F0YWxvZy9zZXJ2aWNlcy9zYy1jYXRhbG9nLnNlcnZpY2UnO1xuaW1wb3J0IHsgc2NHZXRDdXJyZW50Um91dGUgfSBmcm9tICcuLi9oZWxwZXJzJztcblxuLyoqXG4gKiDQotC+0LrQtdC9INC/0L7RgtC+0LrQsCDQtNCw0L3QvdGL0YUg0L4g0LrQsNGC0LXQs9C+0YDQuNC4LlxuICovXG5leHBvcnQgY29uc3QgU0NfQ0FURUdPUllfSU5GTyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxPYnNlcnZhYmxlPFNjQ2F0ZWdvcnkgfCBudWxsPj4oJ0Egc3RyZWFtIHdpdGggY3VycmVudCBjYXRlZ29yeSBpbmZvcm1hdGlvbicpO1xuXG4vKipcbiAqINCk0LDQsdGA0LjQutCwINGB0L7Qt9C00LDQvdC40Y8g0L/QvtGC0L7QutCwINC00LDQvdC90YvRhSDQviDQutCw0YLQtdCz0L7RgNC40LguXG4gKlxuICogQHBhcmFtIHJvdXRlciDQodC10YDQstC40YEg0LTQu9GPINGA0LDQsdC+0YLRiyDRgSDQvNCw0YDRiNGA0YPRgtC+0LwuXG4gKiBAcGFyYW0gcm91dGUg0JzQsNGA0YjRgNGD0YIuXG4gKiBAcGFyYW0gY2F0YWxvZ1NlcnZpY2Ug0KHQtdGA0LLQuNGBINC00LvRjyDRgNCw0LHQvtGC0Ysg0YEg0LrQsNGC0LDQu9C+0LPQvtC8LlxuICovXG5mdW5jdGlvbiBjYXRlZ29yeUZhY3Rvcnkocm91dGVyOiBSb3V0ZXIsIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSwgY2F0YWxvZ1NlcnZpY2U6IFNjQ2F0YWxvZ1NlcnZpY2UpOiBPYnNlcnZhYmxlPFNjQ2F0ZWdvcnkgfCBudWxsPiB7XG4gICAgcmV0dXJuIHJvdXRlci5ldmVudHMucGlwZShmaWx0ZXIoKGV2ZW50KSA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpKS5waXBlKFxuICAgICAgICBzdGFydFdpdGgobnVsbCksXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjYXRlZ29yeUlkT3JTbHVnID0gc2NHZXRDdXJyZW50Um91dGUocm91dGUpLnNuYXBzaG90LnBhcmFtTWFwLmdldCgnY2F0ZWdvcnlJZE9yU2x1ZycpO1xuXG4gICAgICAgICAgICBpZiAoY2F0ZWdvcnlJZE9yU2x1Zykge1xuICAgICAgICAgICAgICAgIHJldHVybiBjYXRhbG9nU2VydmljZS5nZXRDYXRlZ29yeUNhY2hlZCQoY2F0ZWdvcnlJZE9yU2x1Zyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgICAgfSksXG4gICAgICAgIHNoYXJlUmVwbGF5KHsgYnVmZmVyU2l6ZTogMSwgcmVmQ291bnQ6IHRydWUgfSksXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCgpXG4gICAgKTtcbn1cblxuLyoqXG4gKiDQn9GA0L7QstCw0LnQtNC10YDRiyDQv9C+0YLQvtC60LAg0LTQsNC90L3Ri9GFINC+INC60LDRgtC10LPQvtGA0LjQuC5cbiAqL1xuZXhwb3J0IGNvbnN0IENBVEVHT1JZX1BST1ZJREVSUzogUHJvdmlkZXJbXSA9IFtcbiAgICB7XG4gICAgICAgIHByb3ZpZGU6IFNDX0NBVEVHT1JZX0lORk8sXG4gICAgICAgIGRlcHM6IFtSb3V0ZXIsIEFjdGl2YXRlZFJvdXRlLCBTY0NhdGFsb2dTZXJ2aWNlXSxcbiAgICAgICAgdXNlRmFjdG9yeTogY2F0ZWdvcnlGYWN0b3J5LFxuICAgIH0sXG5dO1xuIl19