@snabcentr/client-core 3.5.2 → 3.5.6
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/catalog/services/sc-catalog-filter.service.d.ts +9 -1
- package/common/enums/index.d.ts +1 -0
- package/common/enums/request-state-status-enum.d.ts +17 -0
- package/common/index.d.ts +1 -0
- package/common/interfaces/index.d.ts +1 -0
- package/common/interfaces/sc-i-request-state.d.ts +35 -0
- package/esm2022/catalog/services/sc-catalog-filter.service.mjs +27 -9
- package/esm2022/common/enums/index.mjs +2 -0
- package/esm2022/common/enums/request-state-status-enum.mjs +19 -0
- package/esm2022/common/index.mjs +2 -1
- package/esm2022/common/interfaces/index.mjs +2 -1
- package/esm2022/common/interfaces/sc-i-request-state.mjs +26 -0
- package/esm2022/guards/sc-auth-as-client.guard.mjs +4 -4
- package/esm2022/helpers/sc-units-helper.mjs +17 -36
- package/fesm2022/snabcentr-client-core.mjs +196 -152
- package/fesm2022/snabcentr-client-core.mjs.map +1 -1
- package/helpers/sc-units-helper.d.ts +10 -20
- package/package.json +1 -1
- package/release_notes.tmp +3 -3
|
@@ -13,13 +13,21 @@ export declare class ScCatalogFilterService {
|
|
|
13
13
|
* HTTP клиент для выполнения запросов.
|
|
14
14
|
*/
|
|
15
15
|
private readonly http;
|
|
16
|
+
/**
|
|
17
|
+
* Время жизни кэша фильтров.
|
|
18
|
+
*/
|
|
19
|
+
private readonly cacheLifeTime;
|
|
20
|
+
/**
|
|
21
|
+
* Кэш фильтров по ключу `categoryIdOrSlug:recursively`.
|
|
22
|
+
*/
|
|
23
|
+
private readonly filterMap;
|
|
16
24
|
/**
|
|
17
25
|
* Возвращает список доступных фильтров продуктов в категории.
|
|
18
26
|
*
|
|
19
27
|
* @param categoryIdOrSlug Идентификатор или slug категории товаров.
|
|
20
28
|
* @param recursively Признак того, что необходимо вернуть фильтры с учетом вложенных категорий.
|
|
21
29
|
*/
|
|
22
|
-
getFilters$(categoryIdOrSlug: string | number, recursively?: boolean): Observable<ScCatalogFilter[]>;
|
|
30
|
+
getFilters$(categoryIdOrSlug: string | number, recursively?: boolean): Observable<ScCatalogFilter[] | null>;
|
|
23
31
|
static ɵfac: i0.ɵɵFactoryDeclaration<ScCatalogFilterService, never>;
|
|
24
32
|
static ɵprov: i0.ɵɵInjectableDeclaration<ScCatalogFilterService>;
|
|
25
33
|
}
|
|
@@ -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
|
@@ -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>;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { HttpClient, HttpParams } from '@angular/common/http';
|
|
2
2
|
import { inject, Injectable } from '@angular/core';
|
|
3
|
-
import { SC_IS_HIDDEN_ERROR_ALERT_HTTP_CONTEXT, SC_URLS } from '../../tokens';
|
|
3
|
+
import { SC_CACHE_LIFETIME, SC_IS_HIDDEN_ERROR_ALERT_HTTP_CONTEXT, SC_URLS } from '../../tokens';
|
|
4
|
+
import { ScCachedItem } from '../classes/sc-cached-item';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
/**
|
|
6
7
|
* Сервис для работы с фильтрами каталога.
|
|
@@ -15,6 +16,14 @@ export class ScCatalogFilterService {
|
|
|
15
16
|
* HTTP клиент для выполнения запросов.
|
|
16
17
|
*/
|
|
17
18
|
this.http = inject(HttpClient);
|
|
19
|
+
/**
|
|
20
|
+
* Время жизни кэша фильтров.
|
|
21
|
+
*/
|
|
22
|
+
this.cacheLifeTime = inject(SC_CACHE_LIFETIME);
|
|
23
|
+
/**
|
|
24
|
+
* Кэш фильтров по ключу `categoryIdOrSlug:recursively`.
|
|
25
|
+
*/
|
|
26
|
+
this.filterMap = new Map();
|
|
18
27
|
}
|
|
19
28
|
/**
|
|
20
29
|
* Возвращает список доступных фильтров продуктов в категории.
|
|
@@ -23,14 +32,23 @@ export class ScCatalogFilterService {
|
|
|
23
32
|
* @param recursively Признак того, что необходимо вернуть фильтры с учетом вложенных категорий.
|
|
24
33
|
*/
|
|
25
34
|
getFilters$(categoryIdOrSlug, recursively) {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
35
|
+
const key = `${categoryIdOrSlug}:${recursively ?? ''}`;
|
|
36
|
+
let cachedItem = this.filterMap.get(key);
|
|
37
|
+
if (!cachedItem) {
|
|
38
|
+
let params = new HttpParams();
|
|
39
|
+
if (recursively !== undefined) {
|
|
40
|
+
params = params.set('recursively', String(recursively));
|
|
41
|
+
}
|
|
42
|
+
cachedItem = new ScCachedItem(this.cacheLifeTime.categoryData, this.http.get(`${this.urls.apiUrl}/catalog/categories/${categoryIdOrSlug}/filters`, {
|
|
43
|
+
params,
|
|
44
|
+
context: SC_IS_HIDDEN_ERROR_ALERT_HTTP_CONTEXT,
|
|
45
|
+
}));
|
|
46
|
+
this.filterMap.set(key, cachedItem);
|
|
47
|
+
}
|
|
48
|
+
if (!cachedItem.cachedDataIsActual()) {
|
|
49
|
+
cachedItem.update();
|
|
29
50
|
}
|
|
30
|
-
return
|
|
31
|
-
params,
|
|
32
|
-
context: SC_IS_HIDDEN_ERROR_ALERT_HTTP_CONTEXT,
|
|
33
|
-
});
|
|
51
|
+
return cachedItem.item$;
|
|
34
52
|
}
|
|
35
53
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScCatalogFilterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
36
54
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScCatalogFilterService, providedIn: 'root' }); }
|
|
@@ -41,4 +59,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
41
59
|
providedIn: 'root',
|
|
42
60
|
}]
|
|
43
61
|
}] });
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtY2F0YWxvZy1maWx0ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY2F0YWxvZy9zZXJ2aWNlcy9zYy1jYXRhbG9nLWZpbHRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDOUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJbkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHFDQUFxQyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNqRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBR3pEOztHQUVHO0FBSUgsTUFBTSxPQUFPLHNCQUFzQjtJQUhuQztRQUlJOztXQUVHO1FBQ2MsU0FBSSxHQUFZLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVqRDs7V0FFRztRQUNjLFNBQUksR0FBZSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFdkQ7O1dBRUc7UUFDYyxrQkFBYSxHQUFxQixNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUU3RTs7V0FFRztRQUNjLGNBQVMsR0FBRyxJQUFJLEdBQUcsRUFBMkMsQ0FBQztLQW9DbkY7SUFsQ0c7Ozs7O09BS0c7SUFDSSxXQUFXLENBQUMsZ0JBQWlDLEVBQUUsV0FBcUI7UUFDdkUsTUFBTSxHQUFHLEdBQUcsR0FBRyxnQkFBZ0IsSUFBSSxXQUFXLElBQUksRUFBRSxFQUFFLENBQUM7UUFDdkQsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFekMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2QsSUFBSSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUU5QixJQUFJLFdBQVcsS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDNUIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQzVELENBQUM7WUFFRCxVQUFVLEdBQUcsSUFBSSxZQUFZLENBQ3pCLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUMvQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBb0IsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sdUJBQXVCLGdCQUFnQixVQUFVLEVBQUU7Z0JBQ25HLE1BQU07Z0JBQ04sT0FBTyxFQUFFLHFDQUFxQzthQUNqRCxDQUFDLENBQ0wsQ0FBQztZQUVGLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUN4QyxDQUFDO1FBRUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLENBQUM7WUFDbkMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3hCLENBQUM7UUFFRCxPQUFPLFVBQVUsQ0FBQyxLQUFLLENBQUM7SUFDNUIsQ0FBQzsrR0F0RFEsc0JBQXNCO21IQUF0QixzQkFBc0IsY0FGbkIsTUFBTTs7NEZBRVQsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2NJQ2FjaGVMaWZldGltZSwgU2NJVXJscyB9IGZyb20gJy4uLy4uL2NvbmZpZyc7XG5pbXBvcnQgeyBTQ19DQUNIRV9MSUZFVElNRSwgU0NfSVNfSElEREVOX0VSUk9SX0FMRVJUX0hUVFBfQ09OVEVYVCwgU0NfVVJMUyB9IGZyb20gJy4uLy4uL3Rva2Vucyc7XG5pbXBvcnQgeyBTY0NhY2hlZEl0ZW0gfSBmcm9tICcuLi9jbGFzc2VzL3NjLWNhY2hlZC1pdGVtJztcbmltcG9ydCB7IFNjQ2F0YWxvZ0ZpbHRlciB9IGZyb20gJy4uL2ludGVyZmFjZXMvc2MtY2F0YWxvZy1maWx0ZXInO1xuXG4vKipcbiAqINCh0LXRgNCy0LjRgSDQtNC70Y8g0YDQsNCx0L7RgtGLINGBINGE0LjQu9GM0YLRgNCw0LzQuCDQutCw0YLQsNC70L7Qs9CwLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTY0NhdGFsb2dGaWx0ZXJTZXJ2aWNlIHtcbiAgICAvKipcbiAgICAgKiBBUEkgVVJMINC00LvRjyDRgNCw0LHQvtGC0Ysg0YEg0LrQsNGC0LDQu9C+0LPQvtC8LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdXJsczogU2NJVXJscyA9IGluamVjdChTQ19VUkxTKTtcblxuICAgIC8qKlxuICAgICAqIEhUVFAg0LrQu9C40LXQvdGCINC00LvRjyDQstGL0L/QvtC70L3QtdC90LjRjyDQt9Cw0L/RgNC+0YHQvtCyLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaHR0cDogSHR0cENsaWVudCA9IGluamVjdChIdHRwQ2xpZW50KTtcblxuICAgIC8qKlxuICAgICAqINCS0YDQtdC80Y8g0LbQuNC30L3QuCDQutGN0YjQsCDRhNC40LvRjNGC0YDQvtCyLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FjaGVMaWZlVGltZTogU2NJQ2FjaGVMaWZldGltZSA9IGluamVjdChTQ19DQUNIRV9MSUZFVElNRSk7XG5cbiAgICAvKipcbiAgICAgKiDQmtGN0Ygg0YTQuNC70YzRgtGA0L7QsiDQv9C+INC60LvRjtGH0YMgYGNhdGVnb3J5SWRPclNsdWc6cmVjdXJzaXZlbHlgLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZmlsdGVyTWFwID0gbmV3IE1hcDxzdHJpbmcsIFNjQ2FjaGVkSXRlbTxTY0NhdGFsb2dGaWx0ZXJbXT4+KCk7XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDRgdC/0LjRgdC+0Log0LTQvtGB0YLRg9C/0L3Ri9GFINGE0LjQu9GM0YLRgNC+0LIg0L/RgNC+0LTRg9C60YLQvtCyINCyINC60LDRgtC10LPQvtGA0LjQuC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjYXRlZ29yeUlkT3JTbHVnINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINC40LvQuCBzbHVnINC60LDRgtC10LPQvtGA0LjQuCDRgtC+0LLQsNGA0L7Qsi5cbiAgICAgKiBAcGFyYW0gcmVjdXJzaXZlbHkg0J/RgNC40LfQvdCw0Log0YLQvtCz0L4sINGH0YLQviDQvdC10L7QsdGF0L7QtNC40LzQviDQstC10YDQvdGD0YLRjCDRhNC40LvRjNGC0YDRiyDRgSDRg9GH0LXRgtC+0Lwg0LLQu9C+0LbQtdC90L3Ri9GFINC60LDRgtC10LPQvtGA0LjQuS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0RmlsdGVycyQoY2F0ZWdvcnlJZE9yU2x1Zzogc3RyaW5nIHwgbnVtYmVyLCByZWN1cnNpdmVseT86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPFNjQ2F0YWxvZ0ZpbHRlcltdIHwgbnVsbD4ge1xuICAgICAgICBjb25zdCBrZXkgPSBgJHtjYXRlZ29yeUlkT3JTbHVnfToke3JlY3Vyc2l2ZWx5ID8/ICcnfWA7XG4gICAgICAgIGxldCBjYWNoZWRJdGVtID0gdGhpcy5maWx0ZXJNYXAuZ2V0KGtleSk7XG5cbiAgICAgICAgaWYgKCFjYWNoZWRJdGVtKSB7XG4gICAgICAgICAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcblxuICAgICAgICAgICAgaWYgKHJlY3Vyc2l2ZWx5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdyZWN1cnNpdmVseScsIFN0cmluZyhyZWN1cnNpdmVseSkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjYWNoZWRJdGVtID0gbmV3IFNjQ2FjaGVkSXRlbTxTY0NhdGFsb2dGaWx0ZXJbXT4oXG4gICAgICAgICAgICAgICAgdGhpcy5jYWNoZUxpZmVUaW1lLmNhdGVnb3J5RGF0YSxcbiAgICAgICAgICAgICAgICB0aGlzLmh0dHAuZ2V0PFNjQ2F0YWxvZ0ZpbHRlcltdPihgJHt0aGlzLnVybHMuYXBpVXJsfS9jYXRhbG9nL2NhdGVnb3JpZXMvJHtjYXRlZ29yeUlkT3JTbHVnfS9maWx0ZXJzYCwge1xuICAgICAgICAgICAgICAgICAgICBwYXJhbXMsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IFNDX0lTX0hJRERFTl9FUlJPUl9BTEVSVF9IVFRQX0NPTlRFWFQsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHRoaXMuZmlsdGVyTWFwLnNldChrZXksIGNhY2hlZEl0ZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFjYWNoZWRJdGVtLmNhY2hlZERhdGFJc0FjdHVhbCgpKSB7XG4gICAgICAgICAgICBjYWNoZWRJdGVtLnVwZGF0ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNhY2hlZEl0ZW0uaXRlbSQ7XG4gICAgfVxufVxuIl19
|
|
@@ -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=
|
package/esm2022/common/index.mjs
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export * from './enums';
|
|
1
2
|
export * from './interfaces';
|
|
2
3
|
export * from './classes';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
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
|
-
|
|
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,
|
|
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(
|
|
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
|
-
})),
|
|
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,
|
|
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,52 +1,33 @@
|
|
|
1
|
-
import { Inject, Injectable } from '@angular/core';
|
|
2
|
-
import { SC_LINEAR_VALUES_TOKEN } from '../tokens';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
1
|
/**
|
|
5
|
-
*
|
|
2
|
+
* Класс-помощник для работы со значениями единиц измерения товара.
|
|
6
3
|
*/
|
|
7
4
|
export class ScUnitsHelper {
|
|
8
5
|
/**
|
|
9
|
-
*
|
|
6
|
+
* Возвращает признак, что указанный товар имеет линейную единицу измерения.
|
|
10
7
|
*
|
|
11
|
-
* @param
|
|
8
|
+
* @param product Данные о товаре для которого нужно проверить линейность его единицы измерения.
|
|
12
9
|
*/
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
static productIsMeasurable(product) {
|
|
11
|
+
return product.unit.isLinear || product.unit.isSquare;
|
|
15
12
|
}
|
|
16
13
|
/**
|
|
17
|
-
* Возвращает
|
|
14
|
+
* Возвращает кратность количества для указанного товара.
|
|
18
15
|
*
|
|
19
|
-
* @param product
|
|
16
|
+
* @param product Данные о товаре для которого необходимо вернуть кратность количества.
|
|
20
17
|
*/
|
|
21
|
-
|
|
22
|
-
return
|
|
18
|
+
static getProductMultiplicity(product) {
|
|
19
|
+
return !product.properties?.ignoreMinCountCheck && product.minCount && !ScUnitsHelper.productIsMeasurable(product) ? product.minCount : 1;
|
|
23
20
|
}
|
|
24
21
|
/**
|
|
25
|
-
* Возвращает кратность
|
|
22
|
+
* Возвращает кратность длины для указанного товара.
|
|
26
23
|
*
|
|
27
|
-
* @param product
|
|
24
|
+
* @param product Данные о товаре для которого необходимо вернуть кратность длины.
|
|
28
25
|
*/
|
|
29
|
-
|
|
30
|
-
|
|
26
|
+
static getProductLengthMultiplicity(product) {
|
|
27
|
+
if (product.properties?.lengthStep) {
|
|
28
|
+
return product.properties.lengthStep;
|
|
29
|
+
}
|
|
30
|
+
return !product.properties?.ignoreMinCountCheck && product.minCount ? product.minCount : 0.01;
|
|
31
31
|
}
|
|
32
|
-
/**
|
|
33
|
-
* Возвращает значение кратности, для проверки кратности количества товара.
|
|
34
|
-
*
|
|
35
|
-
* @param product Товар для которого нужно вернуть значение кратность.
|
|
36
|
-
*/
|
|
37
|
-
productStepForValidator(product) {
|
|
38
|
-
return product.ignoreMinCountCheck ? 1 : this.productMultiplicity(product);
|
|
39
|
-
}
|
|
40
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScUnitsHelper, deps: [{ token: SC_LINEAR_VALUES_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
41
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScUnitsHelper, providedIn: 'root' }); }
|
|
42
32
|
}
|
|
43
|
-
|
|
44
|
-
type: Injectable,
|
|
45
|
-
args: [{
|
|
46
|
-
providedIn: 'root',
|
|
47
|
-
}]
|
|
48
|
-
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
49
|
-
type: Inject,
|
|
50
|
-
args: [SC_LINEAR_VALUES_TOKEN]
|
|
51
|
-
}] }] });
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtdW5pdHMtaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9oZWxwZXJzL3NjLXVuaXRzLWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxXQUFXLENBQUM7O0FBRW5EOztHQUVHO0FBSUgsTUFBTSxPQUFPLGFBQWE7SUFDdEI7Ozs7T0FJRztJQUNILFlBQW1FLFlBQXNCO1FBQXRCLGlCQUFZLEdBQVosWUFBWSxDQUFVO0lBQUcsQ0FBQztJQUU3Rjs7OztPQUlHO0lBQ0ksbUJBQW1CLENBQUMsT0FBa0I7UUFDekMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksbUJBQW1CLENBQUMsT0FBa0I7UUFDekMsT0FBTyxPQUFPLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JHLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksdUJBQXVCLENBQUMsT0FBa0I7UUFDN0MsT0FBTyxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9FLENBQUM7K0dBakNRLGFBQWEsa0JBTUssc0JBQXNCO21IQU54QyxhQUFhLGNBRlYsTUFBTTs7NEZBRVQsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQU91QixNQUFNOzJCQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTY1Byb2R1Y3QgfSBmcm9tICcuLi9jYXRhbG9nL2R0by9zYy1wcm9kdWN0JztcbmltcG9ydCB7IFNDX0xJTkVBUl9WQUxVRVNfVE9LRU4gfSBmcm9tICcuLi90b2tlbnMnO1xuXG4vKipcbiAqINCa0LvQsNGBLdC/0L7QvNC+0YnQvdC40Log0LTQu9GPINGA0LDQsdC+0YLRiyDRgdC+INC30L3QsNGH0LXQvdC40Y/QvNC4INC10LTQuNC90LjRhiDQuNC30LzQtdGA0LXQvdC40Y8g0YLQvtCy0LDRgNCwLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTY1VuaXRzSGVscGVyIHtcbiAgICAvKipcbiAgICAgKiDQmNC90LjRhtC40LjRgNGD0LXRgiDRjdC60LfQtdC80L/Qu9GP0YAg0LrQu9Cw0YHRgdCwIHtAbGluayBTY1VuaXRzSGVscGVyfS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBsaW5lYXJWYWx1ZXMg0JXQtNC40L3QuNGG0Ysg0LjQt9C80LXRgNC10L3QuNGPINC70LjQvdC10LnQvdC+0Lkg0LLQtdC70LjRh9C40L3Riy5cbiAgICAgKi9cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoQEluamVjdChTQ19MSU5FQVJfVkFMVUVTX1RPS0VOKSBwdWJsaWMgcmVhZG9ubHkgbGluZWFyVmFsdWVzOiBzdHJpbmdbXSkge31cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINC/0YDQuNC30L3QsNC6INCy0L7Qt9C80L7QttC90L7RgdGC0Lgg0L/RgNC+0LTQsNC20Lgg0YLQvtCy0LDRgNCwINC90LAg0LzQtdGC0YDQsNC2LlxuICAgICAqXG4gICAgICogQHBhcmFtIHByb2R1Y3Qg0KLQvtCy0LDRgCDQtNC70Y8g0LrQvtGC0L7RgNC+0LPQviDQvdGD0LbQvdC+INC/0YDQvtCy0LXRgNC40YLRjCDQstC+0LfQvNC+0LbQvdC+0YHRgtGMINC/0YDQvtC00LDQttC4INC90LAg0LzQtdGC0YDQsNC2LlxuICAgICAqL1xuICAgIHB1YmxpYyBwcm9kdWN0SXNNZWFzdXJhYmxlKHByb2R1Y3Q6IFNjUHJvZHVjdCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5saW5lYXJWYWx1ZXMuaW5jbHVkZXMocHJvZHVjdC51bml0Lm5hbWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINC60YDQsNGC0L3QvtGB0YLRjCDQutC+0LvQuNGH0LXRgdGC0LLQsCDQtNC70Y8g0YLQvtCy0LDRgNCwLlxuICAgICAqXG4gICAgICogQHBhcmFtIHByb2R1Y3Qg0KLQvtCy0LDRgCDQtNC70Y8g0LrQvtGC0L7RgNC+0LPQviDQvdGD0LbQvdC+INCy0LXRgNC90YPRgtGMINC60YDQsNGC0L3QvtGB0YLRjCDQutC+0LvQuNGH0LXRgdGC0LLQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcHJvZHVjdE11bHRpcGxpY2l0eShwcm9kdWN0OiBTY1Byb2R1Y3QpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gcHJvZHVjdC5taW5Db3VudCAmJiAhdGhpcy5saW5lYXJWYWx1ZXMuaW5jbHVkZXMocHJvZHVjdC51bml0Lm5hbWUpID8gcHJvZHVjdC5taW5Db3VudCA6IDE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0LfQvdCw0YfQtdC90LjQtSDQutGA0LDRgtC90L7RgdGC0LgsINC00LvRjyDQv9GA0L7QstC10YDQutC4INC60YDQsNGC0L3QvtGB0YLQuCDQutC+0LvQuNGH0LXRgdGC0LLQsCDRgtC+0LLQsNGA0LAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcHJvZHVjdCDQotC+0LLQsNGAINC00LvRjyDQutC+0YLQvtGA0L7Qs9C+INC90YPQttC90L4g0LLQtdGA0L3Rg9GC0Ywg0LfQvdCw0YfQtdC90LjQtSDQutGA0LDRgtC90L7RgdGC0YwuXG4gICAgICovXG4gICAgcHVibGljIHByb2R1Y3RTdGVwRm9yVmFsaWRhdG9yKHByb2R1Y3Q6IFNjUHJvZHVjdCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBwcm9kdWN0Lmlnbm9yZU1pbkNvdW50Q2hlY2sgPyAxIDogdGhpcy5wcm9kdWN0TXVsdGlwbGljaXR5KHByb2R1Y3QpO1xuICAgIH1cbn1cbiJdfQ==
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtdW5pdHMtaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9oZWxwZXJzL3NjLXVuaXRzLWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7R0FFRztBQUNILE1BQU0sT0FBTyxhQUFhO0lBQ3RCOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsbUJBQW1CLENBQUMsT0FBa0I7UUFDaEQsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUMxRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxPQUFrQjtRQUNuRCxPQUFPLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxtQkFBbUIsSUFBSSxPQUFPLENBQUMsUUFBUSxJQUFJLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUksQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsNEJBQTRCLENBQUMsT0FBa0I7UUFDekQsSUFBSSxPQUFPLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxDQUFDO1lBQ2pDLE9BQU8sT0FBTyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUM7UUFDekMsQ0FBQztRQUVELE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLG1CQUFtQixJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNsRyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTY1Byb2R1Y3QgfSBmcm9tICcuLi9jYXRhbG9nL2R0by9zYy1wcm9kdWN0JztcblxuLyoqXG4gKiDQmtC70LDRgdGBLdC/0L7QvNC+0YnQvdC40Log0LTQu9GPINGA0LDQsdC+0YLRiyDRgdC+INC30L3QsNGH0LXQvdC40Y/QvNC4INC10LTQuNC90LjRhiDQuNC30LzQtdGA0LXQvdC40Y8g0YLQvtCy0LDRgNCwLlxuICovXG5leHBvcnQgY2xhc3MgU2NVbml0c0hlbHBlciB7XG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0L/RgNC40LfQvdCw0LosINGH0YLQviDRg9C60LDQt9Cw0L3QvdGL0Lkg0YLQvtCy0LDRgCDQuNC80LXQtdGCINC70LjQvdC10LnQvdGD0Y4g0LXQtNC40L3QuNGG0YMg0LjQt9C80LXRgNC10L3QuNGPLlxuICAgICAqXG4gICAgICogQHBhcmFtIHByb2R1Y3Qg0JTQsNC90L3Ri9C1INC+INGC0L7QstCw0YDQtSDQtNC70Y8g0LrQvtGC0L7RgNC+0LPQviDQvdGD0LbQvdC+INC/0YDQvtCy0LXRgNC40YLRjCDQu9C40L3QtdC50L3QvtGB0YLRjCDQtdCz0L4g0LXQtNC40L3QuNGG0Ysg0LjQt9C80LXRgNC10L3QuNGPLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgcHJvZHVjdElzTWVhc3VyYWJsZShwcm9kdWN0OiBTY1Byb2R1Y3QpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHByb2R1Y3QudW5pdC5pc0xpbmVhciB8fCBwcm9kdWN0LnVuaXQuaXNTcXVhcmU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0LrRgNCw0YLQvdC+0YHRgtGMINC60L7Qu9C40YfQtdGB0YLQstCwINC00LvRjyDRg9C60LDQt9Cw0L3QvdC+0LPQviDRgtC+0LLQsNGA0LAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcHJvZHVjdCDQlNCw0L3QvdGL0LUg0L4g0YLQvtCy0LDRgNC1INC00LvRjyDQutC+0YLQvtGA0L7Qs9C+INC90LXQvtCx0YXQvtC00LjQvNC+INCy0LXRgNC90YPRgtGMINC60YDQsNGC0L3QvtGB0YLRjCDQutC+0LvQuNGH0LXRgdGC0LLQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldFByb2R1Y3RNdWx0aXBsaWNpdHkocHJvZHVjdDogU2NQcm9kdWN0KTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuICFwcm9kdWN0LnByb3BlcnRpZXM/Lmlnbm9yZU1pbkNvdW50Q2hlY2sgJiYgcHJvZHVjdC5taW5Db3VudCAmJiAhU2NVbml0c0hlbHBlci5wcm9kdWN0SXNNZWFzdXJhYmxlKHByb2R1Y3QpID8gcHJvZHVjdC5taW5Db3VudCA6IDE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0LrRgNCw0YLQvdC+0YHRgtGMINC00LvQuNC90Ysg0LTQu9GPINGD0LrQsNC30LDQvdC90L7Qs9C+INGC0L7QstCw0YDQsC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwcm9kdWN0INCU0LDQvdC90YvQtSDQviDRgtC+0LLQsNGA0LUg0LTQu9GPINC60L7RgtC+0YDQvtCz0L4g0L3QtdC+0LHRhdC+0LTQuNC80L4g0LLQtdGA0L3Rg9GC0Ywg0LrRgNCw0YLQvdC+0YHRgtGMINC00LvQuNC90YsuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRQcm9kdWN0TGVuZ3RoTXVsdGlwbGljaXR5KHByb2R1Y3Q6IFNjUHJvZHVjdCk6IG51bWJlciB7XG4gICAgICAgIGlmIChwcm9kdWN0LnByb3BlcnRpZXM/Lmxlbmd0aFN0ZXApIHtcbiAgICAgICAgICAgIHJldHVybiBwcm9kdWN0LnByb3BlcnRpZXMubGVuZ3RoU3RlcDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAhcHJvZHVjdC5wcm9wZXJ0aWVzPy5pZ25vcmVNaW5Db3VudENoZWNrICYmIHByb2R1Y3QubWluQ291bnQgPyBwcm9kdWN0Lm1pbkNvdW50IDogMC4wMTtcbiAgICB9XG59XG4iXX0=
|