@snabcentr/client-core 2.50.0 → 2.52.1
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/dto/sc-product.d.ts +4 -0
- package/catalog/internal/sc-i-product-dto.d.ts +4 -0
- package/catalog/services/sc-catalog.service.d.ts +7 -42
- package/contacts/services/sc-feedback.service.d.ts +4 -0
- package/esm2022/catalog/dto/sc-product.mjs +2 -1
- package/esm2022/catalog/internal/sc-i-product-dto.mjs +1 -1
- package/esm2022/catalog/services/sc-catalog.service.mjs +27 -80
- package/esm2022/contacts/enums/sc-feedback-forms.mjs +31 -2
- package/esm2022/contacts/services/sc-feedback.service.mjs +10 -7
- package/esm2022/guards/sc-id-or-slug.guard.mjs +2 -2
- package/esm2022/utm/services/sc-utm.service.mjs +23 -12
- package/fesm2022/snabcentr-client-core.mjs +566 -574
- package/fesm2022/snabcentr-client-core.mjs.map +1 -1
- package/package.json +1 -1
- package/release_notes.tmp +2 -2
- package/utm/services/sc-utm.service.d.ts +10 -0
|
@@ -1,2 +1,31 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Перечисление, представляющее различные формы обратной связи.
|
|
3
|
+
*/
|
|
4
|
+
export var ScFeedbackForms;
|
|
5
|
+
(function (ScFeedbackForms) {
|
|
6
|
+
/**
|
|
7
|
+
* Пожелания и предложения по улучшению сайта.
|
|
8
|
+
*/
|
|
9
|
+
ScFeedbackForms["suggest"] = "suggest";
|
|
10
|
+
/**
|
|
11
|
+
* Оставить заявку на получение бесплатных образцов.
|
|
12
|
+
*/
|
|
13
|
+
ScFeedbackForms["samples"] = "samples";
|
|
14
|
+
/**
|
|
15
|
+
* Форма обратной связи со страницы контактов.
|
|
16
|
+
*/
|
|
17
|
+
ScFeedbackForms["contacts"] = "contacts";
|
|
18
|
+
/**
|
|
19
|
+
* Форма обратной связи со страницы вакансий.
|
|
20
|
+
*/
|
|
21
|
+
ScFeedbackForms["vacancies"] = "vacancies";
|
|
22
|
+
/**
|
|
23
|
+
* Задать вопрос.
|
|
24
|
+
*/
|
|
25
|
+
ScFeedbackForms["questions"] = "questions";
|
|
26
|
+
/**
|
|
27
|
+
* Заказать изготовление москитной сетки.
|
|
28
|
+
*/
|
|
29
|
+
ScFeedbackForms["mosquitoes"] = "mosquitoes";
|
|
30
|
+
})(ScFeedbackForms || (ScFeedbackForms = {}));
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtZmVlZGJhY2stZm9ybXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbnRhY3RzL2VudW1zL3NjLWZlZWRiYWNrLWZvcm1zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFOLElBQVksZUE4Qlg7QUE5QkQsV0FBWSxlQUFlO0lBQ3ZCOztPQUVHO0lBQ0gsc0NBQW1CLENBQUE7SUFFbkI7O09BRUc7SUFDSCxzQ0FBbUIsQ0FBQTtJQUVuQjs7T0FFRztJQUNILHdDQUFxQixDQUFBO0lBRXJCOztPQUVHO0lBQ0gsMENBQXVCLENBQUE7SUFFdkI7O09BRUc7SUFDSCwwQ0FBdUIsQ0FBQTtJQUV2Qjs7T0FFRztJQUNILDRDQUF5QixDQUFBO0FBQzdCLENBQUMsRUE5QlcsZUFBZSxLQUFmLGVBQWUsUUE4QjFCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiDQn9C10YDQtdGH0LjRgdC70LXQvdC40LUsINC/0YDQtdC00YHRgtCw0LLQu9GP0Y7RidC10LUg0YDQsNC30LvQuNGH0L3Ri9C1INGE0L7RgNC80Ysg0L7QsdGA0LDRgtC90L7QuSDRgdCy0Y/Qt9C4LlxuICovXG5leHBvcnQgZW51bSBTY0ZlZWRiYWNrRm9ybXMge1xuICAgIC8qKlxuICAgICAqINCf0L7QttC10LvQsNC90LjRjyDQuCDQv9GA0LXQtNC70L7QttC10L3QuNGPINC/0L4g0YPQu9GD0YfRiNC10L3QuNGOINGB0LDQudGC0LAuXG4gICAgICovXG4gICAgc3VnZ2VzdCA9ICdzdWdnZXN0JyxcblxuICAgIC8qKlxuICAgICAqINCe0YHRgtCw0LLQuNGC0Ywg0LfQsNGP0LLQutGDINC90LAg0L/QvtC70YPRh9C10L3QuNC1INCx0LXRgdC/0LvQsNGC0L3Ri9GFINC+0LHRgNCw0LfRhtC+0LIuXG4gICAgICovXG4gICAgc2FtcGxlcyA9ICdzYW1wbGVzJyxcblxuICAgIC8qKlxuICAgICAqINCk0L7RgNC80LAg0L7QsdGA0LDRgtC90L7QuSDRgdCy0Y/Qt9C4INGB0L4g0YHRgtGA0LDQvdC40YbRiyDQutC+0L3RgtCw0LrRgtC+0LIuXG4gICAgICovXG4gICAgY29udGFjdHMgPSAnY29udGFjdHMnLFxuXG4gICAgLyoqXG4gICAgICog0KTQvtGA0LzQsCDQvtCx0YDQsNGC0L3QvtC5INGB0LLRj9C30Lgg0YHQviDRgdGC0YDQsNC90LjRhtGLINCy0LDQutCw0L3RgdC40LkuXG4gICAgICovXG4gICAgdmFjYW5jaWVzID0gJ3ZhY2FuY2llcycsXG5cbiAgICAvKipcbiAgICAgKiDQl9Cw0LTQsNGC0Ywg0LLQvtC/0YDQvtGBLlxuICAgICAqL1xuICAgIHF1ZXN0aW9ucyA9ICdxdWVzdGlvbnMnLFxuXG4gICAgLyoqXG4gICAgICog0JfQsNC60LDQt9Cw0YLRjCDQuNC30LPQvtGC0L7QstC70LXQvdC40LUg0LzQvtGB0LrQuNGC0L3QvtC5INGB0LXRgtC60LguXG4gICAgICovXG4gICAgbW9zcXVpdG9lcyA9ICdtb3NxdWl0b2VzJyxcbn1cbiJdfQ==
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { HttpContext } from '@angular/common/http';
|
|
2
|
-
import { Inject, Injectable } from '@angular/core';
|
|
3
|
-
import { shareReplay, tap } from 'rxjs';
|
|
2
|
+
import { Inject, inject, Injectable } from '@angular/core';
|
|
3
|
+
import { first, map, shareReplay, switchMap, tap } from 'rxjs';
|
|
4
4
|
import { SC_AUTH_ADD_HEADER_REQUIRED } from '../../httpInterceptors/tokens/sc-auth-add-header-required';
|
|
5
5
|
import { SC_IS_HEADER_REQUIRED } from '../../httpInterceptors/tokens/sc-is-header-required';
|
|
6
6
|
import { SC_FEEDBACK_API } from '../../tokens/sc-feedback-api';
|
|
7
7
|
import { ScUserMetrikaGoalsEnum } from '../../user-metrika';
|
|
8
|
+
import { ScUTMService } from '../../utm/services/sc-utm.service';
|
|
8
9
|
import * as i0 from "@angular/core";
|
|
9
10
|
import * as i1 from "@angular/common/http";
|
|
10
11
|
import * as i2 from "../../user-metrika";
|
|
@@ -23,6 +24,10 @@ export class ScFeedbackService {
|
|
|
23
24
|
this.http = http;
|
|
24
25
|
this.userMetrikaService = userMetrikaService;
|
|
25
26
|
this.feedbackApi = feedbackApi;
|
|
27
|
+
/**
|
|
28
|
+
* Сервис для работы с UTM-метками.
|
|
29
|
+
*/
|
|
30
|
+
this.utmService = inject(ScUTMService);
|
|
26
31
|
/**
|
|
27
32
|
* Список форм обратной связи.
|
|
28
33
|
*/
|
|
@@ -42,14 +47,12 @@ export class ScFeedbackService {
|
|
|
42
47
|
* @param feedbackMessage Объект сообщения обратной связи.
|
|
43
48
|
*/
|
|
44
49
|
sendFeedback(formSlug, feedbackMessage) {
|
|
45
|
-
return this.http
|
|
46
|
-
.post(`${this.feedbackApi.apiUrl}/feedback/${formSlug}`, feedbackMessage, {
|
|
50
|
+
return this.utmService.getUTM$().pipe(first(), map((utm) => (utm ? { ...feedbackMessage, utm } : feedbackMessage)), switchMap((data) => this.http.post(`${this.feedbackApi.apiUrl}/feedback/${formSlug}`, data, {
|
|
47
51
|
context: new HttpContext().set(SC_AUTH_ADD_HEADER_REQUIRED, false).set(SC_IS_HEADER_REQUIRED, false),
|
|
48
52
|
headers: {
|
|
49
53
|
[this.feedbackApi.authTokenName]: this.feedbackApi.authToken,
|
|
50
54
|
},
|
|
51
|
-
})
|
|
52
|
-
.pipe(tap(() => {
|
|
55
|
+
})), tap(() => {
|
|
53
56
|
this.userMetrikaService.emitUserMetrikaEvent({
|
|
54
57
|
target: ScUserMetrikaGoalsEnum.feedbackSent,
|
|
55
58
|
});
|
|
@@ -67,4 +70,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
67
70
|
type: Inject,
|
|
68
71
|
args: [SC_FEEDBACK_API]
|
|
69
72
|
}] }] });
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtZmVlZGJhY2suc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29udGFjdHMvc2VydmljZXMvc2MtZmVlZGJhY2suc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFjLFdBQVcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRzNFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBRTVGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsc0JBQXNCLEVBQXdCLE1BQU0sb0JBQW9CLENBQUM7QUFDbEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7O0FBSWpFOztHQUVHO0FBSUgsTUFBTSxPQUFPLGlCQUFpQjtJQWtCMUI7Ozs7OztPQU1HO0lBQ0gsWUFDcUIsSUFBZ0IsRUFDaEIsa0JBQXdDLEVBRXhDLFdBQTJCO1FBSDNCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFzQjtRQUV4QyxnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUE1QmhEOztXQUVHO1FBQ2MsZUFBVSxHQUFpQixNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFakU7O1dBRUc7UUFDYSxtQkFBYyxHQUEyRCxJQUFJLENBQUMsSUFBSTthQUM3RixHQUFHLENBQTZDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLGlCQUFpQixFQUFFO1lBQzFGLE9BQU8sRUFBRSxJQUFJLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsRUFBRSxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMscUJBQXFCLEVBQUUsS0FBSyxDQUFDO1lBQ3BHLE9BQU8sRUFBRTtnQkFDTCxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTO2FBQy9EO1NBQ0osQ0FBQzthQUNELElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQWN2QixDQUFDO0lBRUo7Ozs7O09BS0c7SUFDSSxZQUFZLENBQUMsUUFBeUIsRUFBRSxlQUFtQztRQUM5RSxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUNqQyxLQUFLLEVBQUUsRUFDUCxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsZUFBZSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxFQUNuRSxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLGFBQWEsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFO1lBQy9FLE9BQU8sRUFBRSxJQUFJLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsRUFBRSxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMscUJBQXFCLEVBQUUsS0FBSyxDQUFDO1lBQ3BHLE9BQU8sRUFBRTtnQkFDTCxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTO2FBQy9EO1NBQ0osQ0FBQyxDQUNMLEVBQ0QsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNMLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQztnQkFDekMsTUFBTSxFQUFFLHNCQUFzQixDQUFDLFlBQVk7YUFDOUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNOLENBQUM7K0dBeERRLGlCQUFpQixnRkE0QmQsZUFBZTttSEE1QmxCLGlCQUFpQixjQUZkLE1BQU07OzRGQUVULGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQTZCUSxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwQ29udGV4dCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdCwgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmaXJzdCwgbWFwLCBPYnNlcnZhYmxlLCBzaGFyZVJlcGxheSwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2NJRmVlZGJhY2tBUEkgfSBmcm9tICcuLi8uLi9jb25maWcnO1xuaW1wb3J0IHsgU0NfQVVUSF9BRERfSEVBREVSX1JFUVVJUkVEIH0gZnJvbSAnLi4vLi4vaHR0cEludGVyY2VwdG9ycy90b2tlbnMvc2MtYXV0aC1hZGQtaGVhZGVyLXJlcXVpcmVkJztcbmltcG9ydCB7IFNDX0lTX0hFQURFUl9SRVFVSVJFRCB9IGZyb20gJy4uLy4uL2h0dHBJbnRlcmNlcHRvcnMvdG9rZW5zL3NjLWlzLWhlYWRlci1yZXF1aXJlZCc7XG5pbXBvcnQgeyBTY0lSZWZlcmVuY2VzVHlwZXMgfSBmcm9tICcuLi8uLi9yZWZlcmVuY2VzL2R0by9zYy1pLXJlZmVyZW5jZXMtdHlwZXMnO1xuaW1wb3J0IHsgU0NfRkVFREJBQ0tfQVBJIH0gZnJvbSAnLi4vLi4vdG9rZW5zL3NjLWZlZWRiYWNrLWFwaSc7XG5pbXBvcnQgeyBTY1VzZXJNZXRyaWthR29hbHNFbnVtLCBTY1VzZXJNZXRyaWthU2VydmljZSB9IGZyb20gJy4uLy4uL3VzZXItbWV0cmlrYSc7XG5pbXBvcnQgeyBTY1VUTVNlcnZpY2UgfSBmcm9tICcuLi8uLi91dG0vc2VydmljZXMvc2MtdXRtLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2NJRmVlZGJhY2tNZXNzYWdlIH0gZnJvbSAnLi4vZHRvJztcbmltcG9ydCB7IFNjRmVlZGJhY2tGb3JtcyB9IGZyb20gJy4uL2VudW1zL3NjLWZlZWRiYWNrLWZvcm1zJztcblxuLyoqXG4gKiDQodC10YDQstC40YEg0L7QsdGA0LDRgtC90L7QuSDRgdCy0Y/Qt9C4LlxuICovXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTY0ZlZWRiYWNrU2VydmljZSB7XG4gICAgLyoqXG4gICAgICog0KHQtdGA0LLQuNGBINC00LvRjyDRgNCw0LHQvtGC0Ysg0YEgVVRNLdC80LXRgtC60LDQvNC4LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdXRtU2VydmljZTogU2NVVE1TZXJ2aWNlID0gaW5qZWN0KFNjVVRNU2VydmljZSk7XG5cbiAgICAvKipcbiAgICAgKiDQodC/0LjRgdC+0Log0YTQvtGA0Lwg0L7QsdGA0LDRgtC90L7QuSDRgdCy0Y/Qt9C4LlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBmZWVkYmFja0Zvcm1zJDogT2JzZXJ2YWJsZTxBcnJheTxTY0lSZWZlcmVuY2VzVHlwZXM8U2NGZWVkYmFja0Zvcm1zPj4+ID0gdGhpcy5odHRwXG4gICAgICAgIC5nZXQ8QXJyYXk8U2NJUmVmZXJlbmNlc1R5cGVzPFNjRmVlZGJhY2tGb3Jtcz4+PihgJHt0aGlzLmZlZWRiYWNrQXBpLmFwaVVybH0vZmVlZGJhY2svZm9ybXNgLCB7XG4gICAgICAgICAgICBjb250ZXh0OiBuZXcgSHR0cENvbnRleHQoKS5zZXQoU0NfQVVUSF9BRERfSEVBREVSX1JFUVVJUkVELCBmYWxzZSkuc2V0KFNDX0lTX0hFQURFUl9SRVFVSVJFRCwgZmFsc2UpLFxuICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgIFt0aGlzLmZlZWRiYWNrQXBpLmF1dGhUb2tlbk5hbWVdOiB0aGlzLmZlZWRiYWNrQXBpLmF1dGhUb2tlbixcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pXG4gICAgICAgIC5waXBlKHNoYXJlUmVwbGF5KDEpKTtcblxuICAgIC8qKlxuICAgICAqINCY0L3QuNGG0LjQsNC70LjQt9C40YDRg9C10YIg0Y3QutC30LXQvNC/0LvRj9GAINC60LvQsNGB0YHQsCB7QGxpbmsgU2NGZWVkYmFja1NlcnZpY2V9LlxuICAgICAqXG4gICAgICogQHBhcmFtIGh0dHAgSFRUUC3QutC70LjQtdC90YIuXG4gICAgICogQHBhcmFtIHVzZXJNZXRyaWthU2VydmljZSDQodC10YDQstC40YEg0LTQu9GPINGB0LHQvtGA0LAg0LzQtdGC0YDQuNC6INC+INC00LXQudGB0YLQstC40Y/RhSDQv9C+0LvRjNC30L7QstCw0YLQtdC70LXQuS5cbiAgICAgKiBAcGFyYW0gZmVlZGJhY2tBcGkg0JTQsNC90L3Ri9C1INC00LvRjyDQstC30LDQuNC80L7QtNC10LnRgdGC0LLQuNGPINGBIEFQSSDQvtCx0YDQsNGC0L3QvtC5INGB0LLRj9C30LguXG4gICAgICovXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGh0dHA6IEh0dHBDbGllbnQsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdXNlck1ldHJpa2FTZXJ2aWNlOiBTY1VzZXJNZXRyaWthU2VydmljZSxcbiAgICAgICAgQEluamVjdChTQ19GRUVEQkFDS19BUEkpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZmVlZGJhY2tBcGk6IFNjSUZlZWRiYWNrQVBJXG4gICAgKSB7fVxuXG4gICAgLyoqXG4gICAgICog0J7RgtC/0YDQsNCy0LvRj9C10YIg0YHQvtC+0LHRidC10L3QuNC1INC+0LHRgNCw0YLQvdC+0Lkg0YHQstGP0LfQuC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBmb3JtU2x1ZyDQodC40LzQstC+0LvRjNC90L7QtSDQvtCx0L7Qt9C90LDRh9C10L3QuNC1IChzbHVnKSDRhNC+0YDQvNGLLlxuICAgICAqIEBwYXJhbSBmZWVkYmFja01lc3NhZ2Ug0J7QsdGK0LXQutGCINGB0L7QvtCx0YnQtdC90LjRjyDQvtCx0YDQsNGC0L3QvtC5INGB0LLRj9C30LguXG4gICAgICovXG4gICAgcHVibGljIHNlbmRGZWVkYmFjayhmb3JtU2x1ZzogU2NGZWVkYmFja0Zvcm1zLCBmZWVkYmFja01lc3NhZ2U6IFNjSUZlZWRiYWNrTWVzc2FnZSk6IE9ic2VydmFibGU8dW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnV0bVNlcnZpY2UuZ2V0VVRNJCgpLnBpcGUoXG4gICAgICAgICAgICBmaXJzdCgpLFxuICAgICAgICAgICAgbWFwKCh1dG0pID0+ICh1dG0gPyB7IC4uLmZlZWRiYWNrTWVzc2FnZSwgdXRtIH0gOiBmZWVkYmFja01lc3NhZ2UpKSxcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoZGF0YSkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLmh0dHAucG9zdDx1bmRlZmluZWQ+KGAke3RoaXMuZmVlZGJhY2tBcGkuYXBpVXJsfS9mZWVkYmFjay8ke2Zvcm1TbHVnfWAsIGRhdGEsIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dDogbmV3IEh0dHBDb250ZXh0KCkuc2V0KFNDX0FVVEhfQUREX0hFQURFUl9SRVFVSVJFRCwgZmFsc2UpLnNldChTQ19JU19IRUFERVJfUkVRVUlSRUQsIGZhbHNlKSxcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgW3RoaXMuZmVlZGJhY2tBcGkuYXV0aFRva2VuTmFtZV06IHRoaXMuZmVlZGJhY2tBcGkuYXV0aFRva2VuLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVzZXJNZXRyaWthU2VydmljZS5lbWl0VXNlck1ldHJpa2FFdmVudCh7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldDogU2NVc2VyTWV0cmlrYUdvYWxzRW51bS5mZWVkYmFja1NlbnQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -25,11 +25,11 @@ export const ScIdOrSlugGuard = (route) => {
|
|
|
25
25
|
}
|
|
26
26
|
if (productIdOrSlug && /^\d+$/.test(productIdOrSlug) !== (idOrSlug === 'id')) {
|
|
27
27
|
return inject(ScCatalogService)
|
|
28
|
-
.
|
|
28
|
+
.getProductData$(productIdOrSlug)
|
|
29
29
|
.pipe(filter(tuiIsPresent),
|
|
30
30
|
// eslint-disable-next-line security/detect-object-injection
|
|
31
31
|
map((product) => router.createUrlTree(['/catalog', 'product', product[idOrSlug]])));
|
|
32
32
|
}
|
|
33
33
|
return true;
|
|
34
34
|
};
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtaWQtb3Itc2x1Zy5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvZ3VhcmRzL3NjLWlkLW9yLXNsdWcuZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQXlDLE1BQU0sRUFBVyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFFL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV0RDs7OztHQUlHO0FBQ0gsd0RBQXdEO0FBQ3hELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBa0IsQ0FBQyxLQUE2QixFQUEyQyxFQUFFO0lBQ3JILE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxLQUFLLENBQUM7SUFDM0IsTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDMUQsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3hELE1BQU0sUUFBUSxHQUFrQixNQUFNLENBQWdCLHNCQUFzQixDQUFDLENBQUM7SUFDOUUsTUFBTSxNQUFNLEdBQVcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXRDLElBQUksZ0JBQWdCLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDN0UsT0FBTyxNQUFNLENBQUMsZ0JBQWdCLENBQUM7YUFDMUIsa0JBQWtCLENBQUMsZ0JBQWdCLENBQUM7YUFDcEMsSUFBSSxDQUNELE1BQU0sQ0FBQyxZQUFZLENBQUM7UUFDcEIsNERBQTREO1FBQzVELEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQzVFLENBQUM7SUFDVixDQUFDO0lBRUQsSUFBSSxlQUFlLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQzNFLE9BQU8sTUFBTSxDQUFDLGdCQUFnQixDQUFDO2FBQzFCLGVBQWUsQ0FBQyxlQUFlLENBQUM7YUFDaEMsSUFBSSxDQUNELE1BQU0sQ0FBQyxZQUFZLENBQUM7UUFDcEIsNERBQTREO1FBQzVELEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUNyRixDQUFDO0lBQ1YsQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgQ2FuQWN0aXZhdGVGbiwgUm91dGVyLCBVcmxUcmVlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IHR1aUlzUHJlc2VudCB9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2NDYXRhbG9nU2VydmljZSB9IGZyb20gJy4uL2NhdGFsb2cnO1xuaW1wb3J0IHsgU0NfSURfT1JfU0xVR19JTl9ST1VURSB9IGZyb20gJy4uL3Byb3ZpZGVycyc7XG5cbi8qKlxuICog0KHRgtGA0LDQtiDQstGL0L/QvtC70L3Rj9GO0YnQuNC5INC/0YDQvtCy0LXRgNC60YMg0LzQsNGA0YjRgNGD0YLQsCDRgtC+0LLQsNGA0LAg0Lgg0LrQsNGC0LXQs9C+0YDQuNC4LCDQuCDRgNC10LTQuNGA0LXQutGC0LAg0LIg0LfQsNCy0LjRgdC40LzQvtGB0YLQuCDQvtGCINC90LDRgdGC0YDQvtC10Log0L7QutGA0YPQttC10L3QuNGPLlxuICpcbiAqIEBwYXJhbSByb3V0ZSDQodC10YDQstC40YEg0L/RgNC10LTQvtGB0YLQsNCy0LvRj9GO0YnQuNC5INC00L7RgdGC0YPQvyDQuiDQtNCw0L3QvdGL0Lwg0L4g0LzQsNGA0YjRgNGD0YLQtS5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHNvbmFyanMvZnVuY3Rpb24tcmV0dXJuLXR5cGVcbmV4cG9ydCBjb25zdCBTY0lkT3JTbHVnR3VhcmQ6IENhbkFjdGl2YXRlRm4gPSAocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiBPYnNlcnZhYmxlPGJvb2xlYW4gfCBVcmxUcmVlPiB8IGJvb2xlYW4gPT4ge1xuICAgIGNvbnN0IHsgcGFyYW1NYXAgfSA9IHJvdXRlO1xuICAgIGNvbnN0IGNhdGVnb3J5SWRPclNsdWcgPSBwYXJhbU1hcC5nZXQoJ2NhdGVnb3J5SWRPclNsdWcnKTtcbiAgICBjb25zdCBwcm9kdWN0SWRPclNsdWcgPSBwYXJhbU1hcC5nZXQoJ3Byb2R1Y3RJZE9yU2x1ZycpO1xuICAgIGNvbnN0IGlkT3JTbHVnOiAnaWQnIHwgJ3NsdWcnID0gaW5qZWN0PCdpZCcgfCAnc2x1Zyc+KFNDX0lEX09SX1NMVUdfSU5fUk9VVEUpO1xuICAgIGNvbnN0IHJvdXRlcjogUm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG5cbiAgICBpZiAoY2F0ZWdvcnlJZE9yU2x1ZyAmJiAvXlxcZCskLy50ZXN0KGNhdGVnb3J5SWRPclNsdWcpICE9PSAoaWRPclNsdWcgPT09ICdpZCcpKSB7XG4gICAgICAgIHJldHVybiBpbmplY3QoU2NDYXRhbG9nU2VydmljZSlcbiAgICAgICAgICAgIC5nZXRDYXRlZ29yeUNhY2hlZCQoY2F0ZWdvcnlJZE9yU2x1ZylcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcih0dWlJc1ByZXNlbnQpLFxuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWN1cml0eS9kZXRlY3Qtb2JqZWN0LWluamVjdGlvblxuICAgICAgICAgICAgICAgIG1hcCgoY2F0ZWdvcnkpID0+
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtaWQtb3Itc2x1Zy5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvZ3VhcmRzL3NjLWlkLW9yLXNsdWcuZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQXlDLE1BQU0sRUFBVyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFFL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV0RDs7OztHQUlHO0FBQ0gsd0RBQXdEO0FBQ3hELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBa0IsQ0FBQyxLQUE2QixFQUEyQyxFQUFFO0lBQ3JILE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxLQUFLLENBQUM7SUFDM0IsTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDMUQsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3hELE1BQU0sUUFBUSxHQUFrQixNQUFNLENBQWdCLHNCQUFzQixDQUFDLENBQUM7SUFDOUUsTUFBTSxNQUFNLEdBQVcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXRDLElBQUksZ0JBQWdCLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDN0UsT0FBTyxNQUFNLENBQUMsZ0JBQWdCLENBQUM7YUFDMUIsa0JBQWtCLENBQUMsZ0JBQWdCLENBQUM7YUFDcEMsSUFBSSxDQUNELE1BQU0sQ0FBQyxZQUFZLENBQUM7UUFDcEIsNERBQTREO1FBQzVELEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQzVFLENBQUM7SUFDVixDQUFDO0lBRUQsSUFBSSxlQUFlLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQzNFLE9BQU8sTUFBTSxDQUFDLGdCQUFnQixDQUFDO2FBQzFCLGVBQWUsQ0FBQyxlQUFlLENBQUM7YUFDaEMsSUFBSSxDQUNELE1BQU0sQ0FBQyxZQUFZLENBQUM7UUFDcEIsNERBQTREO1FBQzVELEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUNyRixDQUFDO0lBQ1YsQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgQ2FuQWN0aXZhdGVGbiwgUm91dGVyLCBVcmxUcmVlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IHR1aUlzUHJlc2VudCB9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2NDYXRhbG9nU2VydmljZSB9IGZyb20gJy4uL2NhdGFsb2cnO1xuaW1wb3J0IHsgU0NfSURfT1JfU0xVR19JTl9ST1VURSB9IGZyb20gJy4uL3Byb3ZpZGVycyc7XG5cbi8qKlxuICog0KHRgtGA0LDQtiDQstGL0L/QvtC70L3Rj9GO0YnQuNC5INC/0YDQvtCy0LXRgNC60YMg0LzQsNGA0YjRgNGD0YLQsCDRgtC+0LLQsNGA0LAg0Lgg0LrQsNGC0LXQs9C+0YDQuNC4LCDQuCDRgNC10LTQuNGA0LXQutGC0LAg0LIg0LfQsNCy0LjRgdC40LzQvtGB0YLQuCDQvtGCINC90LDRgdGC0YDQvtC10Log0L7QutGA0YPQttC10L3QuNGPLlxuICpcbiAqIEBwYXJhbSByb3V0ZSDQodC10YDQstC40YEg0L/RgNC10LTQvtGB0YLQsNCy0LvRj9GO0YnQuNC5INC00L7RgdGC0YPQvyDQuiDQtNCw0L3QvdGL0Lwg0L4g0LzQsNGA0YjRgNGD0YLQtS5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHNvbmFyanMvZnVuY3Rpb24tcmV0dXJuLXR5cGVcbmV4cG9ydCBjb25zdCBTY0lkT3JTbHVnR3VhcmQ6IENhbkFjdGl2YXRlRm4gPSAocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiBPYnNlcnZhYmxlPGJvb2xlYW4gfCBVcmxUcmVlPiB8IGJvb2xlYW4gPT4ge1xuICAgIGNvbnN0IHsgcGFyYW1NYXAgfSA9IHJvdXRlO1xuICAgIGNvbnN0IGNhdGVnb3J5SWRPclNsdWcgPSBwYXJhbU1hcC5nZXQoJ2NhdGVnb3J5SWRPclNsdWcnKTtcbiAgICBjb25zdCBwcm9kdWN0SWRPclNsdWcgPSBwYXJhbU1hcC5nZXQoJ3Byb2R1Y3RJZE9yU2x1ZycpO1xuICAgIGNvbnN0IGlkT3JTbHVnOiAnaWQnIHwgJ3NsdWcnID0gaW5qZWN0PCdpZCcgfCAnc2x1Zyc+KFNDX0lEX09SX1NMVUdfSU5fUk9VVEUpO1xuICAgIGNvbnN0IHJvdXRlcjogUm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG5cbiAgICBpZiAoY2F0ZWdvcnlJZE9yU2x1ZyAmJiAvXlxcZCskLy50ZXN0KGNhdGVnb3J5SWRPclNsdWcpICE9PSAoaWRPclNsdWcgPT09ICdpZCcpKSB7XG4gICAgICAgIHJldHVybiBpbmplY3QoU2NDYXRhbG9nU2VydmljZSlcbiAgICAgICAgICAgIC5nZXRDYXRlZ29yeUNhY2hlZCQoY2F0ZWdvcnlJZE9yU2x1ZylcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcih0dWlJc1ByZXNlbnQpLFxuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWN1cml0eS9kZXRlY3Qtb2JqZWN0LWluamVjdGlvblxuICAgICAgICAgICAgICAgIG1hcCgoY2F0ZWdvcnkpID0+IHJvdXRlci5jcmVhdGVVcmxUcmVlKFsnL2NhdGFsb2cnLCBjYXRlZ29yeVtpZE9yU2x1Z11dKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHByb2R1Y3RJZE9yU2x1ZyAmJiAvXlxcZCskLy50ZXN0KHByb2R1Y3RJZE9yU2x1ZykgIT09IChpZE9yU2x1ZyA9PT0gJ2lkJykpIHtcbiAgICAgICAgcmV0dXJuIGluamVjdChTY0NhdGFsb2dTZXJ2aWNlKVxuICAgICAgICAgICAgLmdldFByb2R1Y3REYXRhJChwcm9kdWN0SWRPclNsdWcpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBmaWx0ZXIodHVpSXNQcmVzZW50KSxcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VjdXJpdHkvZGV0ZWN0LW9iamVjdC1pbmplY3Rpb25cbiAgICAgICAgICAgICAgICBtYXAoKHByb2R1Y3QpID0+IHJvdXRlci5jcmVhdGVVcmxUcmVlKFsnL2NhdGFsb2cnLCAncHJvZHVjdCcsIHByb2R1Y3RbaWRPclNsdWddXSkpXG4gICAgICAgICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xufTtcbiJdfQ==
|
|
@@ -4,7 +4,7 @@ import { ActivatedRoute, NavigationEnd, Router } from '@angular/router';
|
|
|
4
4
|
import { WA_LOCAL_STORAGE } from '@ng-web-apis/common';
|
|
5
5
|
import { filterByKey, StorageService, toValue, WA_STORAGE_EVENT } from '@ng-web-apis/storage';
|
|
6
6
|
import { isMatch, isString } from 'lodash-es';
|
|
7
|
-
import { combineLatest,
|
|
7
|
+
import { combineLatest, filter, map, startWith, switchMap, tap } from 'rxjs';
|
|
8
8
|
import { ScAuthService } from '../../auth/services/sc-auth.service';
|
|
9
9
|
import { IS_BROWSER } from '../../providers';
|
|
10
10
|
import { SC_CACHE_LIFETIME, SC_URLS } from '../../tokens';
|
|
@@ -78,17 +78,12 @@ export class ScUTMService {
|
|
|
78
78
|
// При получении UTM-метки сохраняем ее в Storage и создаём запрос сохранения метки за клиентом.
|
|
79
79
|
this.authService
|
|
80
80
|
.getAuthChange()
|
|
81
|
-
.pipe(switchMap(() => this.utmParamsFromRoute
|
|
81
|
+
.pipe(switchMap(() => this.utmParamsFromRoute$), tap(() => {
|
|
82
|
+
this.updateTimestamp();
|
|
83
|
+
}), filter((utm) => !this.isExistingUTM(utm)), tap((utm) => {
|
|
82
84
|
this.setUTM(utm);
|
|
83
85
|
}), switchMap((utm) => this.saveUTM$(utm)))
|
|
84
86
|
.subscribe();
|
|
85
|
-
// Удаляем UTM при выходе из аккаунта.
|
|
86
|
-
this.authService
|
|
87
|
-
.getAuthChange()
|
|
88
|
-
.pipe(skip(1), filter((state) => !state))
|
|
89
|
-
.subscribe(() => {
|
|
90
|
-
this.removeUTM();
|
|
91
|
-
});
|
|
92
87
|
}
|
|
93
88
|
/**
|
|
94
89
|
* Возвращает строчное представление параметров UTM из {@link Storage}.
|
|
@@ -108,9 +103,8 @@ export class ScUTMService {
|
|
|
108
103
|
* @param utm Данные о UTM-метке.
|
|
109
104
|
*/
|
|
110
105
|
setUTM(utm) {
|
|
111
|
-
if (this.storage && this.isBrowser) {
|
|
106
|
+
if (this.storage && this.isBrowser && !this.isExistingUTM(utm)) {
|
|
112
107
|
this.storageService.setItem('utm', JSON.stringify(utm));
|
|
113
|
-
this.storageService.setItem('utmTimestamp', JSON.stringify(Date.now()));
|
|
114
108
|
}
|
|
115
109
|
}
|
|
116
110
|
/**
|
|
@@ -139,6 +133,23 @@ export class ScUTMService {
|
|
|
139
133
|
saveUTM$(utm) {
|
|
140
134
|
return this.http.post(`${this.urls.apiUrl}/utm`, utm);
|
|
141
135
|
}
|
|
136
|
+
/**
|
|
137
|
+
* Проверяет, существует ли уже сохраненная UTM-метка.
|
|
138
|
+
*
|
|
139
|
+
* @param utm Данные о UTM-метке.
|
|
140
|
+
*/
|
|
141
|
+
isExistingUTM(utm) {
|
|
142
|
+
const existingUTM = this.getUTMParams();
|
|
143
|
+
return existingUTM ? isMatch(utm, JSON.parse(existingUTM)) : false;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Обновляет timestamp сохранения UTM в {@link Storage}.
|
|
147
|
+
*/
|
|
148
|
+
updateTimestamp() {
|
|
149
|
+
if (this.getUTMParams()) {
|
|
150
|
+
this.storageService.setItem('utmTimestamp', JSON.stringify(Date.now()));
|
|
151
|
+
}
|
|
152
|
+
}
|
|
142
153
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScUTMService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
143
154
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScUTMService, providedIn: 'root' }); }
|
|
144
155
|
}
|
|
@@ -148,4 +159,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
148
159
|
providedIn: 'root',
|
|
149
160
|
}]
|
|
150
161
|
}], ctorParameters: () => [] });
|
|
151
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtdXRtLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3V0bS9zZXJ2aWNlcy9zYy11dG0uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDOUYsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDOUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFjLElBQUksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVySCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFcEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxPQUFPLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBRzFEOztHQUVHO0FBSUgsTUFBTSxPQUFPLFlBQVk7SUF1RnJCOztPQUVHO0lBQ0g7UUF6RkE7O1dBRUc7UUFDYyxTQUFJLEdBQVksTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWpEOztXQUVHO1FBQ2MsU0FBSSxHQUFlLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV2RDs7V0FFRztR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QUMsSUFBSSxDQUFDLE1BQU0sTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7K0dBeEtRLFlBQVk7bUhBQVosWUFBWSxjQUZULE1BQU07OzRGQUVULFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBXQV9MT0NBTF9TVE9SQUdFIH0gZnJvbSAnQG5nLXdlYi1hcGlzL2NvbW1vbic7XG5pbXBvcnQgeyBmaWx0ZXJCeUtleSwgU3RvcmFnZVNlcnZpY2UsIHRvVmFsdWUsIFdBX1NUT1JBR0VfRVZFTlQgfSBmcm9tICdAbmctd2ViLWFwaXMvc3RvcmFnZSc7XG5pbXBvcnQgeyBpc01hdGNoLCBpc1N0cmluZyB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBtYXAsIE9ic2VydmFibGUsIHNraXAsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2NBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL2F1dGgvc2VydmljZXMvc2MtYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IFNjSVVybHMgfSBmcm9tICcuLi8uLi9jb25maWcvc2MtaS11cmxzJztcbmltcG9ydCB7IElTX0JST1dTRVIgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMnO1xuaW1wb3J0IHsgU0NfQ0FDSEVfTElGRVRJTUUsIFNDX1VSTFMgfSBmcm9tICcuLi8uLi90b2tlbnMnO1xuaW1wb3J0IHsgU2NVVE0sIFNjVVRNUGFyYW1zIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5cbi8qKlxuICog0KHQtdGA0LLQuNGBINC00LvRjyDRgNCw0LHQvtGC0Ysg0YEgVVRNLdC80LXRgtC60L7QuSDRgdGC0YDQsNC90LjRhtGLLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTY1VUTVNlcnZpY2Uge1xuICAgIC8qKlxuICAgICAqINCh0L/QuNGB0L7QuiDRgdGB0YvQu9C+0Log0L3QsCDRgNCw0LfQtNC10LvRiyBiYWNrZW5kLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdXJsczogU2NJVXJscyA9IGluamVjdChTQ19VUkxTKTtcblxuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDQtNC70Y8g0LLRi9C/0L7Qu9C90LXQvdC40Y8gSFRUUC3Qt9Cw0L/RgNC+0YHQvtCyLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaHR0cDogSHR0cENsaWVudCA9IGluamVjdChIdHRwQ2xpZW50KTtcblxuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDQsNGD0YLQtdC90YLQuNGE0LjQutCw0YbQuNC4INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtdC5LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgYXV0aFNlcnZpY2U6IFNjQXV0aFNlcnZpY2UgPSBpbmplY3QoU2NBdXRoU2VydmljZSk7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0L/RgNC10LTQvtGB0YLQsNCy0LvRj9GO0YnQuNC5INC00L7RgdGC0YPQvyDQuiDQtNCw0L3QvdGL0Lwg0L4g0LzQsNGA0YjRgNGD0YLQtS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGFjdGl2YXRlZFJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcblxuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDQvNCw0YDRiNGA0YPRgtC40LfQsNGG0LjQuC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuXG4gICAgLyoqXG4gICAgICog0KHQtdGA0LLQuNGBINC00LvRjyDRgNCw0LHQvtGC0Ysg0YEge0BsaW5rIFN0b3JhZ2V9INC4INCy0L3QtdC00YDQtdC90LjRjiDQtdCz0L4g0YfQtdGA0LXQtyBESS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0b3JhZ2VTZXJ2aWNlOiBTdG9yYWdlID0gaW5qZWN0KFN0b3JhZ2VTZXJ2aWNlKTtcblxuICAgIC8qKlxuICAgICAqINCf0YDQuNC30L3QsNC6LCDRh9GC0L4g0YHQutGA0LjQv9GCINCy0YvQv9C+0LvQvdGP0LXRgtGB0Y8g0LIg0LHRgNCw0YPQt9C10YDQtS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGlzQnJvd3NlcjogYm9vbGVhbiA9IGluamVjdChJU19CUk9XU0VSKTtcblxuICAgIC8qKlxuICAgICAqINCl0YDQsNC90LjQu9C40YnQtSB7QGxpbmsgU3RvcmFnZX0uXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdG9yYWdlOiBTdG9yYWdlIHwgbnVsbCA9IGluamVjdChXQV9MT0NBTF9TVE9SQUdFLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gICAgLyoqXG4gICAgICog0JLRgNC10LzRjyDQttC40LfQvdC4IFVUTSDQvNC10YLQutC4IChtcykuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSB1dG1MaWZlVGltZT86IG51bWJlciA9IGluamVjdChTQ19DQUNIRV9MSUZFVElNRSkudXRtO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9IFVUTS3QvNC10YLQutCwINGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSB1dG0kOiBPYnNlcnZhYmxlPFNjVVRNIHwgbnVsbD4gPSBpbmplY3QoV0FfU1RPUkFHRV9FVkVOVCkucGlwZShcbiAgICAgICAgZmlsdGVyQnlLZXkoJ3V0bScpLFxuICAgICAgICB0b1ZhbHVlKCksXG4gICAgICAgIHN0YXJ0V2l0aCh0aGlzLmdldFVUTVBhcmFtcygpKSxcbiAgICAgICAgbWFwKCh1dG1TdHJpbmcpID0+ICh1dG1TdHJpbmcgPT09IG51bGwgPyB1dG1TdHJpbmcgOiAoSlNPTi5wYXJzZSh1dG1TdHJpbmcpIGFzIFNjVVRNKSkpXG4gICAgKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBPYnNlcnZhYmxlfSB0aW1lc3RhbXAg0YHQvtGF0YDQsNC90LXQvdC40Y8gVVRNINCyIHtAbGluayBTdG9yYWdlfS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHV0bVRpbWVzdGFtcCQgPSBpbmplY3QoV0FfU1RPUkFHRV9FVkVOVCkucGlwZShcbiAgICAgICAgZmlsdGVyQnlLZXkoJ3V0bVRpbWVzdGFtcCcpLFxuICAgICAgICB0b1ZhbHVlKCksXG4gICAgICAgIHN0YXJ0V2l0aCh0aGlzLmdldFVUTVRpbWVzdGFtcCgpKSxcbiAgICAgICAgbWFwKCh0aW1lc3RhbXApID0+IChpc1N0cmluZyh0aW1lc3RhbXApID8gTnVtYmVyKHRpbWVzdGFtcCkgOiB0aW1lc3RhbXApKVxuICAgICk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0gVVRNLdC80LXRgtC60Lgg0YHRgtGA0LDQvdC40YbRiyDQuNC3INC/0LDRgNCw0LzQtdGC0YDQvtCyINGA0L7Rg9GC0LjQvdCz0LAuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSB1dG1QYXJhbXNGcm9tUm91dGUkOiBPYnNlcnZhYmxlPFNjVVRNPiA9IHRoaXMucm91dGVyLmV2ZW50cy5waXBlKFxuICAgICAgICBmaWx0ZXIoKGV2ZW50KSA9PiBCb29sZWFuKHRoaXMuc3RvcmFnZSkgJiYgdGhpcy5pc0Jyb3dzZXIgJiYgZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSxcbiAgICAgICAgbWFwKCgpID0+IHRoaXMuYWN0aXZhdGVkUm91dGUpLFxuICAgICAgICBzdGFydFdpdGgodGhpcy5hY3RpdmF0ZWRSb3V0ZSksXG4gICAgICAgIG1hcCgocm91dGUpID0+IHJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zKSxcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtcmV0dXJuXG4gICAgICAgIGZpbHRlcigocGFyYW1zKTogcGFyYW1zIGlzIFNjVVRNUGFyYW1zID0+IHBhcmFtc1sndXRtX3NvdXJjZSddICYmIHBhcmFtc1sndXRtX21lZGl1bSddICYmIHBhcmFtc1sndXRtX2NhbXBhaWduJ10pLFxuICAgICAgICBtYXAoKHBhcmFtcykgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBzb3VyY2U6IHBhcmFtcy51dG1fc291cmNlLFxuICAgICAgICAgICAgICAgIG1lZGl1bTogcGFyYW1zLnV0bV9tZWRpdW0sXG4gICAgICAgICAgICAgICAgY2FtcGFpZ246IHBhcmFtcy51dG1fY2FtcGFpZ24sXG4gICAgICAgICAgICAgICAgY29udGVudDogcGFyYW1zLnV0bV9jb250ZW50LFxuICAgICAgICAgICAgICAgIHRlcm06IHBhcmFtcy51dG1fdGVybSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pXG4gICAgKTtcblxuICAgIC8qKlxuICAgICAqINCY0L3QuNGG0LjQsNC70LjQt9C40YDRg9C10YIg0Y3QutC30LXQvNC/0LvRj9GAINC60LvQsNGB0YHQsCB7QGxpbmsgU2NVVE1TZXJ2aWNlfS5cbiAgICAgKi9cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIC8vINCf0YDQuCDQv9C+0LvRg9GH0LXQvdC40LggVVRNLdC80LXRgtC60Lgg0YHQvtGF0YDQsNC90Y/QtdC8INC10LUg0LIgU3RvcmFnZSDQuCDRgdC+0LfQtNCw0ZHQvCDQt9Cw0L/RgNC+0YEg0YHQvtGF0YDQsNC90LXQvdC40Y8g0LzQtdGC0LrQuCDQt9CwINC60LvQuNC10L3RgtC+0LwuXG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2VcbiAgICAgICAgICAgIC5nZXRBdXRoQ2hhbmdlKClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLnV0bVBhcmFtc0Zyb21Sb3V0ZSQucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgocHJldmlvdXMsIGN1cnJlbnQpID0+IGlzTWF0Y2gocHJldmlvdXMsIGN1cnJlbnQpKSkpLFxuICAgICAgICAgICAgICAgIHRhcCgodXRtKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0VVRNKHV0bSk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKCh1dG0pID0+IHRoaXMuc2F2ZVVUTSQodXRtKSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgICAgICAvLyDQo9C00LDQu9GP0LXQvCBVVE0g0L/RgNC4INCy0YvRhdC+0LTQtSDQuNC3INCw0LrQutCw0YPQvdGC0LAuXG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2VcbiAgICAgICAgICAgIC5nZXRBdXRoQ2hhbmdlKClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHNraXAoMSksXG4gICAgICAgICAgICAgICAgZmlsdGVyKChzdGF0ZSkgPT4gIXN0YXRlKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVVVE0oKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINGB0YLRgNC+0YfQvdC+0LUg0L/RgNC10LTRgdGC0LDQstC70LXQvdC40LUg0L/QsNGA0LDQvNC10YLRgNC+0LIgVVRNINC40Lcge0BsaW5rIFN0b3JhZ2V9LlxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0VVRNUGFyYW1zKCk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICByZXR1cm4gQm9vbGVhbih0aGlzLnN0b3JhZ2UpICYmIHRoaXMuaXNCcm93c2VyID8gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRJdGVtKCd1dG0nKSA6IG51bGw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0YHRgtGA0L7Rh9C90L7QtSDQv9GA0LXQtNGB0YLQsNCy0LvQtdC90LjQtSB0aW1lc3RhbXAg0YHQvtGF0YDQsNC90LXQvdC40Y8gVVRNINC40Lcge0BsaW5rIFN0b3JhZ2V9LlxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0VVRNVGltZXN0YW1wKCk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICByZXR1cm4gQm9vbGVhbih0aGlzLnN0b3JhZ2UpICYmIHRoaXMuaXNCcm93c2VyID8gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRJdGVtKCd1dG1UaW1lc3RhbXAnKSA6IG51bGw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIgVVRNLdC80LXRgtC60YMg0YHRgtGA0LDQvdC40YbRiyDQsiB7QGxpbmsgU3RvcmFnZX0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdXRtINCU0LDQvdC90YvQtSDQviBVVE0t0LzQtdGC0LrQtS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHNldFVUTSh1dG06IFNjVVRNKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnN0b3JhZ2UgJiYgdGhpcy5pc0Jyb3dzZXIpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0SXRlbSgndXRtJywgSlNPTi5zdHJpbmdpZnkodXRtKSk7XG4gICAgICAgICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oJ3V0bVRpbWVzdGFtcCcsIEpTT04uc3RyaW5naWZ5KERhdGUubm93KCkpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0LTQsNC70Y/QtdGCIFVUTS3QvNC10YLQutGDINGB0YLRgNCw0L3QuNGG0Ysg0LjQtyB7QGxpbmsgU3RvcmFnZX0uXG4gICAgICovXG4gICAgcHVibGljIHJlbW92ZVVUTSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc3RvcmFnZSAmJiB0aGlzLmlzQnJvd3Nlcikge1xuICAgICAgICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5yZW1vdmVJdGVtKCd1dG0nKTtcbiAgICAgICAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UucmVtb3ZlSXRlbSgndXRtVGltZXN0YW1wJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LTQsNC90L3Ri9GFINC+IFVUTS3QvNC10YLQutC1LlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRVVE0kKCk6IE9ic2VydmFibGU8U2NVVE0gfCBudWxsPiB7XG4gICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KHtcbiAgICAgICAgICAgIHV0bTogdGhpcy51dG0kLFxuICAgICAgICAgICAgdGltZXN0YW1wOiB0aGlzLnV0bVRpbWVzdGFtcCQsXG4gICAgICAgIH0pLnBpcGUobWFwKCh7IHV0bSwgdGltZXN0YW1wIH0pID0+ICghdGhpcy51dG1MaWZlVGltZSB8fCAodGltZXN0YW1wICYmIHRpbWVzdGFtcCArIHRoaXMudXRtTGlmZVRpbWUgPiBEYXRlLm5vdygpKSA/IHV0bSA6IG51bGwpKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INGB0L7RhdGA0LDQvdC10L3QuNGPIHtAbGluayBTY1VUTX0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdXRtINCU0LDQvdC90YvQtSDQviBVVE0t0LzQtdGC0LrQtS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2F2ZVVUTSQodXRtOiBTY1VUTSk6IE9ic2VydmFibGU8dW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDx1bmRlZmluZWQ+KGAke3RoaXMudXJscy5hcGlVcmx9L3V0bWAsIHV0bSk7XG4gICAgfVxufVxuIl19
|
|
162
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtdXRtLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3V0bS9zZXJ2aWNlcy9zYy11dG0uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDOUYsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDOUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFjLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXpGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUVwRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFHMUQ7O0dBRUc7QUFJSCxNQUFNLE9BQU8sWUFBWTtJQXVGckI7O09BRUc7SUFDSDtRQXpGQTs7V0FFRztRQUNjLFNBQUksR0FBWSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFakQ7O1dBRUc7UUFDYyxTQUFJLEdBQWUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXZEOztXQUVHO1FBQ2MsZ0JBQVcsR0FBa0IsTUFBTSxD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QztJQUVEOztPQUVHO0lBQ0ssZUFBZTtRQUNuQixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDNUUsQ0FBQztJQUNMLENBQUM7K0dBbkxRLFlBQVk7bUhBQVosWUFBWSxjQUZULE1BQU07OzRGQUVULFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBXQV9MT0NBTF9TVE9SQUdFIH0gZnJvbSAnQG5nLXdlYi1hcGlzL2NvbW1vbic7XG5pbXBvcnQgeyBmaWx0ZXJCeUtleSwgU3RvcmFnZVNlcnZpY2UsIHRvVmFsdWUsIFdBX1NUT1JBR0VfRVZFTlQgfSBmcm9tICdAbmctd2ViLWFwaXMvc3RvcmFnZSc7XG5pbXBvcnQgeyBpc01hdGNoLCBpc1N0cmluZyB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBmaWx0ZXIsIG1hcCwgT2JzZXJ2YWJsZSwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTY0F1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYXV0aC9zZXJ2aWNlcy9zYy1hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2NJVXJscyB9IGZyb20gJy4uLy4uL2NvbmZpZy9zYy1pLXVybHMnO1xuaW1wb3J0IHsgSVNfQlJPV1NFUiB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycyc7XG5pbXBvcnQgeyBTQ19DQUNIRV9MSUZFVElNRSwgU0NfVVJMUyB9IGZyb20gJy4uLy4uL3Rva2Vucyc7XG5pbXBvcnQgeyBTY1VUTSwgU2NVVE1QYXJhbXMgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcblxuLyoqXG4gKiDQodC10YDQstC40YEg0LTQu9GPINGA0LDQsdC+0YLRiyDRgSBVVE0t0LzQtdGC0LrQvtC5INGB0YLRgNCw0L3QuNGG0YsuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNjVVRNU2VydmljZSB7XG4gICAgLyoqXG4gICAgICog0KHQv9C40YHQvtC6INGB0YHRi9C70L7QuiDQvdCwINGA0LDQt9C00LXQu9GLIGJhY2tlbmQuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSB1cmxzOiBTY0lVcmxzID0gaW5qZWN0KFNDX1VSTFMpO1xuXG4gICAgLyoqXG4gICAgICog0KHQtdGA0LLQuNGBINC00LvRjyDQstGL0L/QvtC70L3QtdC90LjRjyBIVFRQLdC30LDQv9GA0L7RgdC+0LIuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBodHRwOiBIdHRwQ2xpZW50ID0gaW5qZWN0KEh0dHBDbGllbnQpO1xuXG4gICAgLyoqXG4gICAgICog0KHQtdGA0LLQuNGBINCw0YPRgtC10L3RgtC40YTQuNC60LDRhtC40Lgg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C10LkuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBhdXRoU2VydmljZTogU2NBdXRoU2VydmljZSA9IGluamVjdChTY0F1dGhTZXJ2aWNlKTtcblxuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDQv9GA0LXQtNC+0YHRgtCw0LLQu9GP0Y7RidC40Lkg0LTQvtGB0YLRg9C/INC6INC00LDQvdC90YvQvCDQviDQvNCw0YDRiNGA0YPRgtC1LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgYWN0aXZhdGVkUm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xuXG4gICAgLyoqXG4gICAgICog0KHQtdGA0LLQuNGBINC80LDRgNGI0YDRg9GC0LjQt9Cw0YbQuNC4LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0LTQu9GPINGA0LDQsdC+0YLRiyDRgSB7QGxpbmsgU3RvcmFnZX0g0Lgg0LLQvdC10LTRgNC10L3QuNGOINC10LPQviDRh9C10YDQtdC3IERJLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RvcmFnZVNlcnZpY2U6IFN0b3JhZ2UgPSBpbmplY3QoU3RvcmFnZVNlcnZpY2UpO1xuXG4gICAgLyoqXG4gICAgICog0J/RgNC40LfQvdCw0LosINGH0YLQviDRgdC60YDQuNC/0YIg0LLRi9C/0L7Qu9C90Y/QtdGC0YHRjyDQsiDQsdGA0LDRg9C30LXRgNC1LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaXNCcm93c2VyOiBib29sZWFuID0gaW5qZWN0KElTX0JST1dTRVIpO1xuXG4gICAgLyoqXG4gICAgICog0KXRgNCw0L3QuNC70LjRidC1IHtAbGluayBTdG9yYWdlfS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0b3JhZ2U6IFN0b3JhZ2UgfCBudWxsID0gaW5qZWN0KFdBX0xPQ0FMX1NUT1JBR0UsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgICAvKipcbiAgICAgKiDQktGA0LXQvNGPINC20LjQt9C90LggVVRNINC80LXRgtC60LggKG1zKS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHV0bUxpZmVUaW1lPzogbnVtYmVyID0gaW5qZWN0KFNDX0NBQ0hFX0xJRkVUSU1FKS51dG07XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0gVVRNLdC80LXRgtC60LAg0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHV0bSQ6IE9ic2VydmFibGU8U2NVVE0gfCBudWxsPiA9IGluamVjdChXQV9TVE9SQUdFX0VWRU5UKS5waXBlKFxuICAgICAgICBmaWx0ZXJCeUtleSgndXRtJyksXG4gICAgICAgIHRvVmFsdWUoKSxcbiAgICAgICAgc3RhcnRXaXRoKHRoaXMuZ2V0VVRNUGFyYW1zKCkpLFxuICAgICAgICBtYXAoKHV0bVN0cmluZykgPT4gKHV0bVN0cmluZyA9PT0gbnVsbCA/IHV0bVN0cmluZyA6IChKU09OLnBhcnNlKHV0bVN0cmluZykgYXMgU2NVVE0pKSlcbiAgICApO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9IHRpbWVzdGFtcCDRgdC+0YXRgNCw0L3QtdC90LjRjyBVVE0g0LIge0BsaW5rIFN0b3JhZ2V9LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdXRtVGltZXN0YW1wJCA9IGluamVjdChXQV9TVE9SQUdFX0VWRU5UKS5waXBlKFxuICAgICAgICBmaWx0ZXJCeUtleSgndXRtVGltZXN0YW1wJyksXG4gICAgICAgIHRvVmFsdWUoKSxcbiAgICAgICAgc3RhcnRXaXRoKHRoaXMuZ2V0VVRNVGltZXN0YW1wKCkpLFxuICAgICAgICBtYXAoKHRpbWVzdGFtcCkgPT4gKGlzU3RyaW5nKHRpbWVzdGFtcCkgPyBOdW1iZXIodGltZXN0YW1wKSA6IHRpbWVzdGFtcCkpXG4gICAgKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBPYnNlcnZhYmxlfSBVVE0t0LzQtdGC0LrQuCDRgdGC0YDQsNC90LjRhtGLINC40Lcg0L/QsNGA0LDQvNC10YLRgNC+0LIg0YDQvtGD0YLQuNC90LPQsC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHV0bVBhcmFtc0Zyb21Sb3V0ZSQ6IE9ic2VydmFibGU8U2NVVE0+ID0gdGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUoXG4gICAgICAgIGZpbHRlcigoZXZlbnQpID0+IEJvb2xlYW4odGhpcy5zdG9yYWdlKSAmJiB0aGlzLmlzQnJvd3NlciAmJiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpLFxuICAgICAgICBtYXAoKCkgPT4gdGhpcy5hY3RpdmF0ZWRSb3V0ZSksXG4gICAgICAgIHN0YXJ0V2l0aCh0aGlzLmFjdGl2YXRlZFJvdXRlKSxcbiAgICAgICAgbWFwKChyb3V0ZSkgPT4gcm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMpLFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1yZXR1cm5cbiAgICAgICAgZmlsdGVyKChwYXJhbXMpOiBwYXJhbXMgaXMgU2NVVE1QYXJhbXMgPT4gcGFyYW1zWyd1dG1fc291cmNlJ10gJiYgcGFyYW1zWyd1dG1fbWVkaXVtJ10gJiYgcGFyYW1zWyd1dG1fY2FtcGFpZ24nXSksXG4gICAgICAgIG1hcCgocGFyYW1zKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHNvdXJjZTogcGFyYW1zLnV0bV9zb3VyY2UsXG4gICAgICAgICAgICAgICAgbWVkaXVtOiBwYXJhbXMudXRtX21lZGl1bSxcbiAgICAgICAgICAgICAgICBjYW1wYWlnbjogcGFyYW1zLnV0bV9jYW1wYWlnbixcbiAgICAgICAgICAgICAgICBjb250ZW50OiBwYXJhbXMudXRtX2NvbnRlbnQsXG4gICAgICAgICAgICAgICAgdGVybTogcGFyYW1zLnV0bV90ZXJtLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSlcbiAgICApO1xuXG4gICAgLyoqXG4gICAgICog0JjQvdC40YbQuNCw0LvQuNC30LjRgNGD0LXRgiDRjdC60LfQtdC80L/Qu9GP0YAg0LrQu9Cw0YHRgdCwIHtAbGluayBTY1VUTVNlcnZpY2V9LlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgLy8g0J/RgNC4INC/0L7Qu9GD0YfQtdC90LjQuCBVVE0t0LzQtdGC0LrQuCDRgdC+0YXRgNCw0L3Rj9C10Lwg0LXQtSDQsiBTdG9yYWdlINC4INGB0L7Qt9C00LDRkdC8INC30LDQv9GA0L7RgSDRgdC+0YXRgNCw0L3QtdC90LjRjyDQvNC10YLQutC4INC30LAg0LrQu9C40LXQvdGC0L7QvC5cbiAgICAgICAgdGhpcy5hdXRoU2VydmljZVxuICAgICAgICAgICAgLmdldEF1dGhDaGFuZ2UoKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMudXRtUGFyYW1zRnJvbVJvdXRlJCksXG4gICAgICAgICAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVUaW1lc3RhbXAoKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKHV0bSkgPT4gIXRoaXMuaXNFeGlzdGluZ1VUTSh1dG0pKSxcbiAgICAgICAgICAgICAgICB0YXAoKHV0bSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFVUTSh1dG0pO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgodXRtKSA9PiB0aGlzLnNhdmVVVE0kKHV0bSkpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0YHRgtGA0L7Rh9C90L7QtSDQv9GA0LXQtNGB0YLQsNCy0LvQtdC90LjQtSDQv9Cw0YDQsNC80LXRgtGA0L7QsiBVVE0g0LjQtyB7QGxpbmsgU3RvcmFnZX0uXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRVVE1QYXJhbXMoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiBCb29sZWFuKHRoaXMuc3RvcmFnZSkgJiYgdGhpcy5pc0Jyb3dzZXIgPyB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ3V0bScpIDogbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDRgdGC0YDQvtGH0L3QvtC1INC/0YDQtdC00YHRgtCw0LLQu9C10L3QuNC1IHRpbWVzdGFtcCDRgdC+0YXRgNCw0L3QtdC90LjRjyBVVE0g0LjQtyB7QGxpbmsgU3RvcmFnZX0uXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRVVE1UaW1lc3RhbXAoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiBCb29sZWFuKHRoaXMuc3RvcmFnZSkgJiYgdGhpcy5pc0Jyb3dzZXIgPyB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ3V0bVRpbWVzdGFtcCcpIDogbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiBVVE0t0LzQtdGC0LrRgyDRgdGC0YDQsNC90LjRhtGLINCyIHtAbGluayBTdG9yYWdlfS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB1dG0g0JTQsNC90L3Ri9C1INC+IFVUTS3QvNC10YLQutC1LlxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0VVRNKHV0bTogU2NVVE0pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc3RvcmFnZSAmJiB0aGlzLmlzQnJvd3NlciAmJiAhdGhpcy5pc0V4aXN0aW5nVVRNKHV0bSkpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0SXRlbSgndXRtJywgSlNPTi5zdHJpbmdpZnkodXRtKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9C00LDQu9GP0LXRgiBVVE0t0LzQtdGC0LrRgyDRgdGC0YDQsNC90LjRhtGLINC40Lcge0BsaW5rIFN0b3JhZ2V9LlxuICAgICAqL1xuICAgIHB1YmxpYyByZW1vdmVVVE0oKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnN0b3JhZ2UgJiYgdGhpcy5pc0Jyb3dzZXIpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UucmVtb3ZlSXRlbSgndXRtJyk7XG4gICAgICAgICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnJlbW92ZUl0ZW0oJ3V0bVRpbWVzdGFtcCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INC00LDQvdC90YvRhSDQviBVVE0t0LzQtdGC0LrQtS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0VVRNJCgpOiBPYnNlcnZhYmxlPFNjVVRNIHwgbnVsbD4ge1xuICAgICAgICByZXR1cm4gY29tYmluZUxhdGVzdCh7XG4gICAgICAgICAgICB1dG06IHRoaXMudXRtJCxcbiAgICAgICAgICAgIHRpbWVzdGFtcDogdGhpcy51dG1UaW1lc3RhbXAkLFxuICAgICAgICB9KS5waXBlKG1hcCgoeyB1dG0sIHRpbWVzdGFtcCB9KSA9PiAoIXRoaXMudXRtTGlmZVRpbWUgfHwgKHRpbWVzdGFtcCAmJiB0aW1lc3RhbXAgKyB0aGlzLnV0bUxpZmVUaW1lID4gRGF0ZS5ub3coKSkgPyB1dG0gOiBudWxsKSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDRgdC+0YXRgNCw0L3QtdC90LjRjyB7QGxpbmsgU2NVVE19LlxuICAgICAqXG4gICAgICogQHBhcmFtIHV0bSDQlNCw0L3QvdGL0LUg0L4gVVRNLdC80LXRgtC60LUuXG4gICAgICovXG4gICAgcHVibGljIHNhdmVVVE0kKHV0bTogU2NVVE0pOiBPYnNlcnZhYmxlPHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8dW5kZWZpbmVkPihgJHt0aGlzLnVybHMuYXBpVXJsfS91dG1gLCB1dG0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCf0YDQvtCy0LXRgNGP0LXRgiwg0YHRg9GJ0LXRgdGC0LLRg9C10YIg0LvQuCDRg9C20LUg0YHQvtGF0YDQsNC90LXQvdC90LDRjyBVVE0t0LzQtdGC0LrQsC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB1dG0g0JTQsNC90L3Ri9C1INC+IFVUTS3QvNC10YLQutC1LlxuICAgICAqL1xuICAgIHByaXZhdGUgaXNFeGlzdGluZ1VUTSh1dG06IFNjVVRNKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGV4aXN0aW5nVVRNID0gdGhpcy5nZXRVVE1QYXJhbXMoKTtcbiAgICAgICAgcmV0dXJuIGV4aXN0aW5nVVRNID8gaXNNYXRjaCh1dG0sIEpTT04ucGFyc2UoZXhpc3RpbmdVVE0pIGFzIFNjVVRNKSA6IGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCe0LHQvdC+0LLQu9GP0LXRgiB0aW1lc3RhbXAg0YHQvtGF0YDQsNC90LXQvdC40Y8gVVRNINCyIHtAbGluayBTdG9yYWdlfS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHVwZGF0ZVRpbWVzdGFtcCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZ2V0VVRNUGFyYW1zKCkpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0SXRlbSgndXRtVGltZXN0YW1wJywgSlNPTi5zdHJpbmdpZnkoRGF0ZS5ub3coKSkpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|