vc-error-handlers 0.1.98 → 0.2.0
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/esm2022/lib/configuration.mjs +7 -0
- package/{esm2020 → esm2022}/lib/featureFlag/feature-flag.directive.mjs +27 -27
- package/esm2022/lib/featureFlag/feature-flag.module.mjs +20 -0
- package/esm2022/lib/featureFlag/feature-flag.service.mjs +98 -0
- package/{esm2020 → esm2022}/lib/shared/components/chunk-unavailable/chunk-unavailable.component.mjs +35 -35
- package/esm2022/lib/shared/components/component-level-server-error/component-level-server-error.component.mjs +65 -0
- package/{esm2020 → esm2022}/lib/shared/components/error-modal/error-modal.component.mjs +45 -45
- package/esm2022/lib/shared/components/page-not-found/page-not-found.component.mjs +92 -0
- package/esm2022/lib/shared/components/server-error/server-error.component.mjs +83 -0
- package/{esm2020 → esm2022}/lib/shared/components/session-expired/session-expired.component.mjs +35 -35
- package/esm2022/lib/shared/components/unauthorized/unauthorized.component.mjs +103 -0
- package/{esm2020 → esm2022}/lib/shared/constants/api-config.constants.mjs +239 -239
- package/{esm2020 → esm2022}/lib/shared/constants/error-handling.constants.mjs +62 -62
- package/{esm2020 → esm2022}/lib/shared/errorhandler/chunk-error.handler.mjs +18 -18
- package/{esm2020 → esm2022}/lib/shared/errorhandler/sentry-error.handler.mjs +47 -47
- package/{esm2020 → esm2022}/lib/shared/interceptors/http.interceptor.mjs +35 -35
- package/{esm2020 → esm2022}/lib/shared/services/global-error.service.mjs +115 -115
- package/{esm2020 → esm2022}/lib/shared/services/router.service.mjs +19 -19
- package/{esm2020 → esm2022}/lib/shared/services/util.service.mjs +48 -48
- package/{esm2020 → esm2022}/lib/shared/types/global-error.types.mjs +15 -15
- package/{esm2020 → esm2022}/lib/ui-kit/dialog/dialog-config.mjs +2 -2
- package/esm2022/lib/ui-kit/dialog/dialog-injector.mjs +15 -0
- package/{esm2020 → esm2022}/lib/ui-kit/dialog/dialog-ref.mjs +12 -12
- package/{esm2020 → esm2022}/lib/ui-kit/dialog/dialog.component.mjs +85 -85
- package/esm2022/lib/ui-kit/dialog/dialog.module.mjs +21 -0
- package/{esm2020 → esm2022}/lib/ui-kit/dialog/dialog.service.mjs +52 -52
- package/{esm2020 → esm2022}/lib/ui-kit/dialog/insertion.directive.mjs +16 -16
- package/{esm2020 → esm2022}/lib/ui-kit/snack-bar/snack-bar/snack-bar.component.mjs +50 -50
- package/esm2022/lib/ui-kit/snack-bar/snack-bar.module.mjs +18 -0
- package/{esm2020 → esm2022}/lib/ui-kit/snack-bar/snack-bar.service.mjs +32 -32
- package/{esm2020 → esm2022}/lib/vc-error-handlers.component.mjs +85 -85
- package/esm2022/lib/vc-error-handlers.module.mjs +84 -0
- package/{esm2020 → esm2022}/lib/vc-error-handlers.service.mjs +14 -14
- package/{esm2020 → esm2022}/public-api.mjs +16 -16
- package/{esm2020 → esm2022}/vc-error-handlers.mjs +4 -4
- package/{fesm2020 → fesm2022}/vc-error-handlers.mjs +1286 -1359
- package/fesm2022/vc-error-handlers.mjs.map +1 -0
- package/{vc-error-handlers.d.ts → index.d.ts} +5 -5
- package/lib/configuration.d.ts +5 -4
- package/lib/featureFlag/feature-flag.directive.d.ts +13 -13
- package/lib/featureFlag/feature-flag.module.d.ts +8 -8
- package/lib/featureFlag/feature-flag.service.d.ts +21 -19
- package/lib/shared/components/chunk-unavailable/chunk-unavailable.component.d.ts +20 -20
- package/lib/shared/components/component-level-server-error/component-level-server-error.component.d.ts +19 -19
- package/lib/shared/components/error-modal/error-modal.component.d.ts +21 -21
- package/lib/shared/components/page-not-found/page-not-found.component.d.ts +23 -23
- package/lib/shared/components/server-error/server-error.component.d.ts +19 -19
- package/lib/shared/components/session-expired/session-expired.component.d.ts +20 -20
- package/lib/shared/components/unauthorized/unauthorized.component.d.ts +23 -23
- package/lib/shared/constants/api-config.constants.d.ts +20 -20
- package/lib/shared/constants/error-handling.constants.d.ts +62 -62
- package/lib/shared/errorhandler/chunk-error.handler.d.ts +7 -7
- package/lib/shared/errorhandler/sentry-error.handler.d.ts +14 -14
- package/lib/shared/interceptors/http.interceptor.d.ts +13 -13
- package/lib/shared/services/global-error.service.d.ts +31 -31
- package/lib/shared/services/router.service.d.ts +6 -6
- package/lib/shared/services/util.service.d.ts +15 -15
- package/lib/shared/types/global-error.types.d.ts +27 -27
- package/lib/ui-kit/dialog/dialog-config.d.ts +6 -6
- package/lib/ui-kit/dialog/dialog-injector.d.ts +7 -7
- package/lib/ui-kit/dialog/dialog-ref.d.ts +7 -7
- package/lib/ui-kit/dialog/dialog.component.d.ts +33 -33
- package/lib/ui-kit/dialog/dialog.module.d.ts +9 -9
- package/lib/ui-kit/dialog/dialog.service.d.ts +17 -17
- package/lib/ui-kit/dialog/insertion.directive.d.ts +8 -8
- package/lib/ui-kit/snack-bar/snack-bar/snack-bar.component.d.ts +20 -20
- package/lib/ui-kit/snack-bar/snack-bar.module.d.ts +8 -8
- package/lib/ui-kit/snack-bar/snack-bar.service.d.ts +11 -11
- package/lib/vc-error-handlers.component.d.ts +26 -26
- package/lib/vc-error-handlers.module.d.ts +26 -26
- package/lib/vc-error-handlers.service.d.ts +6 -6
- package/package.json +7 -13
- package/public-api.d.ts +13 -13
- package/environments/environment.d.ts +0 -39
- package/esm2020/environments/environment.mjs +0 -75
- package/esm2020/lib/configuration.mjs +0 -6
- package/esm2020/lib/featureFlag/feature-flag.module.mjs +0 -22
- package/esm2020/lib/featureFlag/feature-flag.service.mjs +0 -95
- package/esm2020/lib/shared/components/component-level-server-error/component-level-server-error.component.mjs +0 -64
- package/esm2020/lib/shared/components/page-not-found/page-not-found.component.mjs +0 -91
- package/esm2020/lib/shared/components/server-error/server-error.component.mjs +0 -82
- package/esm2020/lib/shared/components/unauthorized/unauthorized.component.mjs +0 -102
- package/esm2020/lib/ui-kit/dialog/dialog-injector.mjs +0 -15
- package/esm2020/lib/ui-kit/dialog/dialog.module.mjs +0 -21
- package/esm2020/lib/ui-kit/snack-bar/snack-bar.module.mjs +0 -18
- package/esm2020/lib/vc-error-handlers.module.mjs +0 -84
- package/fesm2015/vc-error-handlers.mjs +0 -1679
- package/fesm2015/vc-error-handlers.mjs.map +0 -1
- package/fesm2020/vc-error-handlers.mjs.map +0 -1
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class GlobalErrorHandler {
|
|
4
|
-
handleError(error) {
|
|
5
|
-
const chunkFailedMessage = /Loading chunk [\d]+ failed/;
|
|
6
|
-
if (chunkFailedMessage.test(error.message) &&
|
|
7
|
-
confirm(`A new version is available. Please press "OK" to refresh the page.`)) {
|
|
8
|
-
window.location.reload();
|
|
9
|
-
}
|
|
10
|
-
console.error(error);
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
16
|
-
type: Injectable
|
|
17
|
-
}] });
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class GlobalErrorHandler {
|
|
4
|
+
handleError(error) {
|
|
5
|
+
const chunkFailedMessage = /Loading chunk [\d]+ failed/;
|
|
6
|
+
if (chunkFailedMessage.test(error.message) &&
|
|
7
|
+
confirm(`A new version is available. Please press "OK" to refresh the page.`)) {
|
|
8
|
+
window.location.reload();
|
|
9
|
+
}
|
|
10
|
+
console.error(error);
|
|
11
|
+
}
|
|
12
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GlobalErrorHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
13
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GlobalErrorHandler }); }
|
|
14
|
+
}
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GlobalErrorHandler, decorators: [{
|
|
16
|
+
type: Injectable
|
|
17
|
+
}] });
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2h1bmstZXJyb3IuaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZjLWVycm9yLWhhbmRsZXJzL3NyYy9saWIvc2hhcmVkL2Vycm9yaGFuZGxlci9jaHVuay1lcnJvci5oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUd6RCxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLFdBQVcsQ0FBQyxLQUFVO1FBQ3BCLE1BQU0sa0JBQWtCLEdBQUcsNEJBQTRCLENBQUM7UUFFeEQsSUFDRSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUN0QyxPQUFPLENBQ0wsb0VBQW9FLENBQ3JFLEVBQ0Q7WUFDQSxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQzFCO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QixDQUFDOytHQWJVLGtCQUFrQjttSEFBbEIsa0JBQWtCOzs0RkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXJyb3JIYW5kbGVyLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBHbG9iYWxFcnJvckhhbmRsZXIgaW1wbGVtZW50cyBFcnJvckhhbmRsZXIge1xyXG4gIGhhbmRsZUVycm9yKGVycm9yOiBhbnkpOiB2b2lkIHtcclxuICAgIGNvbnN0IGNodW5rRmFpbGVkTWVzc2FnZSA9IC9Mb2FkaW5nIGNodW5rIFtcXGRdKyBmYWlsZWQvO1xyXG5cclxuICAgIGlmIChcclxuICAgICAgY2h1bmtGYWlsZWRNZXNzYWdlLnRlc3QoZXJyb3IubWVzc2FnZSkgJiZcclxuICAgICAgY29uZmlybShcclxuICAgICAgICBgQSBuZXcgdmVyc2lvbiBpcyBhdmFpbGFibGUuIFBsZWFzZSBwcmVzcyBcIk9LXCIgdG8gcmVmcmVzaCB0aGUgcGFnZS5gXHJcbiAgICAgIClcclxuICAgICkge1xyXG4gICAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XHJcbiAgICB9XHJcbiAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,47 +1,47 @@
|
|
|
1
|
-
import { Injectable, Optional } from '@angular/core';
|
|
2
|
-
import * as Sentry from '@sentry/angular-ivy';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@vcomply/authorizer";
|
|
5
|
-
import * as i2 from "../services/global-error.service";
|
|
6
|
-
import * as i3 from "../../configuration";
|
|
7
|
-
export class SentryErrorHandler {
|
|
8
|
-
constructor(authorizerService, errorService, config) {
|
|
9
|
-
this.authorizerService = authorizerService;
|
|
10
|
-
this.errorService = errorService;
|
|
11
|
-
if (config?.sentryConfig) {
|
|
12
|
-
const SENTRY_CONFIG = config.sentryConfig;
|
|
13
|
-
Sentry.init({
|
|
14
|
-
dsn: SENTRY_CONFIG?.DSN,
|
|
15
|
-
integrations: [
|
|
16
|
-
new Sentry.BrowserTracing({
|
|
17
|
-
tracePropagationTargets: SENTRY_CONFIG.ALLOW_ORIGIN,
|
|
18
|
-
routingInstrumentation: Sentry.routingInstrumentation,
|
|
19
|
-
}),
|
|
20
|
-
],
|
|
21
|
-
tracesSampleRate: SENTRY_CONFIG.TRACES_SAMPLE_RATE,
|
|
22
|
-
replaysSessionSampleRate: SENTRY_CONFIG.REPLAY_SESSION_SAMPLE_RATE,
|
|
23
|
-
replaysOnErrorSampleRate: SENTRY_CONFIG.REPLAY_ON_ERROR_SAMPLE_RATE,
|
|
24
|
-
});
|
|
25
|
-
Sentry.setUser({ userDetails: this.authorizerService.getUser() });
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
handleError(error) {
|
|
29
|
-
const ERROR = error?.originalError || error;
|
|
30
|
-
this.handleChunkError(ERROR);
|
|
31
|
-
Sentry.captureException(ERROR);
|
|
32
|
-
}
|
|
33
|
-
handleChunkError(error) {
|
|
34
|
-
const chunkFailedMessage = /Loading chunk [\d]+ failed/;
|
|
35
|
-
if (chunkFailedMessage.test(error?.message)) {
|
|
36
|
-
window.location.reload();
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
43
|
-
type: Injectable
|
|
44
|
-
}], ctorParameters: function () { return [{ type: i1.AuthorizerService }, { type: i2.GlobalErrorService }, { type: i3.Configurations, decorators: [{
|
|
45
|
-
type: Optional
|
|
46
|
-
}] }]; } });
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Injectable, Optional } from '@angular/core';
|
|
2
|
+
import * as Sentry from '@sentry/angular-ivy';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@vcomply/authorizer";
|
|
5
|
+
import * as i2 from "../services/global-error.service";
|
|
6
|
+
import * as i3 from "../../configuration";
|
|
7
|
+
export class SentryErrorHandler {
|
|
8
|
+
constructor(authorizerService, errorService, config) {
|
|
9
|
+
this.authorizerService = authorizerService;
|
|
10
|
+
this.errorService = errorService;
|
|
11
|
+
if (config?.sentryConfig) {
|
|
12
|
+
const SENTRY_CONFIG = config.sentryConfig;
|
|
13
|
+
Sentry.init({
|
|
14
|
+
dsn: SENTRY_CONFIG?.DSN,
|
|
15
|
+
integrations: [
|
|
16
|
+
new Sentry.BrowserTracing({
|
|
17
|
+
tracePropagationTargets: SENTRY_CONFIG.ALLOW_ORIGIN,
|
|
18
|
+
routingInstrumentation: Sentry.routingInstrumentation,
|
|
19
|
+
}),
|
|
20
|
+
],
|
|
21
|
+
tracesSampleRate: SENTRY_CONFIG.TRACES_SAMPLE_RATE,
|
|
22
|
+
replaysSessionSampleRate: SENTRY_CONFIG.REPLAY_SESSION_SAMPLE_RATE,
|
|
23
|
+
replaysOnErrorSampleRate: SENTRY_CONFIG.REPLAY_ON_ERROR_SAMPLE_RATE,
|
|
24
|
+
});
|
|
25
|
+
Sentry.setUser({ userDetails: this.authorizerService.getUser() });
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
handleError(error) {
|
|
29
|
+
const ERROR = error?.originalError || error;
|
|
30
|
+
this.handleChunkError(ERROR);
|
|
31
|
+
Sentry.captureException(ERROR);
|
|
32
|
+
}
|
|
33
|
+
handleChunkError(error) {
|
|
34
|
+
const chunkFailedMessage = /Loading chunk [\d]+ failed/;
|
|
35
|
+
if (chunkFailedMessage.test(error?.message)) {
|
|
36
|
+
window.location.reload();
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SentryErrorHandler, deps: [{ token: i1.AuthorizerService }, { token: i2.GlobalErrorService }, { token: i3.Configurations, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
40
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SentryErrorHandler }); }
|
|
41
|
+
}
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SentryErrorHandler, decorators: [{
|
|
43
|
+
type: Injectable
|
|
44
|
+
}], ctorParameters: function () { return [{ type: i1.AuthorizerService }, { type: i2.GlobalErrorService }, { type: i3.Configurations, decorators: [{
|
|
45
|
+
type: Optional
|
|
46
|
+
}] }]; } });
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VudHJ5LWVycm9yLmhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92Yy1lcnJvci1oYW5kbGVycy9zcmMvbGliL3NoYXJlZC9lcnJvcmhhbmRsZXIvc2VudHJ5LWVycm9yLmhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sS0FBSyxNQUFNLE1BQU0scUJBQXFCLENBQUM7Ozs7O0FBUzlDLE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsWUFDVSxpQkFBb0MsRUFDcEMsWUFBZ0MsRUFDNUIsTUFBdUI7UUFGM0Isc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxpQkFBWSxHQUFaLFlBQVksQ0FBb0I7UUFHeEMsSUFBSSxNQUFNLEVBQUUsWUFBWSxFQUFFO1lBQ3hCLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUM7WUFDMUMsTUFBTSxDQUFDLElBQUksQ0FBQztnQkFDVixHQUFHLEVBQUUsYUFBYSxFQUFFLEdBQUc7Z0JBQ3ZCLFlBQVksRUFBRTtvQkFDWixJQUFJLE1BQU0sQ0FBQyxjQUFjLENBQUM7d0JBQ3hCLHVCQUF1QixFQUFFLGFBQWEsQ0FBQyxZQUFZO3dCQUNuRCxzQkFBc0IsRUFBRSxNQUFNLENBQUMsc0JBQXNCO3FCQUN0RCxDQUFDO2lCQUNIO2dCQUNELGdCQUFnQixFQUFFLGFBQWEsQ0FBQyxrQkFBa0I7Z0JBQ2xELHdCQUF3QixFQUFFLGFBQWEsQ0FBQywwQkFBMEI7Z0JBQ2xFLHdCQUF3QixFQUFFLGFBQWEsQ0FBQywyQkFBMkI7YUFDcEUsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ25FO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFVO1FBQ3BCLE1BQU0sS0FBSyxHQUFHLEtBQUssRUFBRSxhQUFhLElBQUksS0FBSyxDQUFDO1FBQzVDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixNQUFNLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQVk7UUFDM0IsTUFBTSxrQkFBa0IsR0FBRyw0QkFBNEIsQ0FBQztRQUN4RCxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEVBQUU7WUFDM0MsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUMxQjtJQUNILENBQUM7K0dBbkNVLGtCQUFrQjttSEFBbEIsa0JBQWtCOzs0RkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVOzswQkFLTixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXJyb3JIYW5kbGVyLCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgKiBhcyBTZW50cnkgZnJvbSAnQHNlbnRyeS9hbmd1bGFyLWl2eSc7XHJcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25zIH0gZnJvbSAnLi4vLi4vY29uZmlndXJhdGlvbic7XHJcblxyXG5pbXBvcnQgeyBBdXRob3JpemVyU2VydmljZSB9IGZyb20gJ0B2Y29tcGx5L2F1dGhvcml6ZXInO1xyXG5pbXBvcnQgeyBHbG9iYWxFcnJvclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9nbG9iYWwtZXJyb3Iuc2VydmljZSc7XHJcblxyXG5pbXBvcnQgeyBFcnJvclN0YXR1c0NvZGUgfSBmcm9tICcuLi90eXBlcy9nbG9iYWwtZXJyb3IudHlwZXMnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgU2VudHJ5RXJyb3JIYW5kbGVyIGltcGxlbWVudHMgRXJyb3JIYW5kbGVyIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgYXV0aG9yaXplclNlcnZpY2U6IEF1dGhvcml6ZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBlcnJvclNlcnZpY2U6IEdsb2JhbEVycm9yU2VydmljZSxcclxuICAgIEBPcHRpb25hbCgpIGNvbmZpZz86IENvbmZpZ3VyYXRpb25zXHJcbiAgKSB7XHJcbiAgICBpZiAoY29uZmlnPy5zZW50cnlDb25maWcpIHtcclxuICAgICAgY29uc3QgU0VOVFJZX0NPTkZJRyA9IGNvbmZpZy5zZW50cnlDb25maWc7XHJcbiAgICAgIFNlbnRyeS5pbml0KHtcclxuICAgICAgICBkc246IFNFTlRSWV9DT05GSUc/LkRTTixcclxuICAgICAgICBpbnRlZ3JhdGlvbnM6IFtcclxuICAgICAgICAgIG5ldyBTZW50cnkuQnJvd3NlclRyYWNpbmcoe1xyXG4gICAgICAgICAgICB0cmFjZVByb3BhZ2F0aW9uVGFyZ2V0czogU0VOVFJZX0NPTkZJRy5BTExPV19PUklHSU4sXHJcbiAgICAgICAgICAgIHJvdXRpbmdJbnN0cnVtZW50YXRpb246IFNlbnRyeS5yb3V0aW5nSW5zdHJ1bWVudGF0aW9uLFxyXG4gICAgICAgICAgfSksXHJcbiAgICAgICAgXSxcclxuICAgICAgICB0cmFjZXNTYW1wbGVSYXRlOiBTRU5UUllfQ09ORklHLlRSQUNFU19TQU1QTEVfUkFURSxcclxuICAgICAgICByZXBsYXlzU2Vzc2lvblNhbXBsZVJhdGU6IFNFTlRSWV9DT05GSUcuUkVQTEFZX1NFU1NJT05fU0FNUExFX1JBVEUsXHJcbiAgICAgICAgcmVwbGF5c09uRXJyb3JTYW1wbGVSYXRlOiBTRU5UUllfQ09ORklHLlJFUExBWV9PTl9FUlJPUl9TQU1QTEVfUkFURSxcclxuICAgICAgfSk7XHJcbiAgICAgIFNlbnRyeS5zZXRVc2VyKHsgdXNlckRldGFpbHM6IHRoaXMuYXV0aG9yaXplclNlcnZpY2UuZ2V0VXNlcigpIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlRXJyb3IoZXJyb3I6IGFueSkge1xyXG4gICAgY29uc3QgRVJST1IgPSBlcnJvcj8ub3JpZ2luYWxFcnJvciB8fCBlcnJvcjtcclxuICAgIHRoaXMuaGFuZGxlQ2h1bmtFcnJvcihFUlJPUik7XHJcbiAgICBTZW50cnkuY2FwdHVyZUV4Y2VwdGlvbihFUlJPUik7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVDaHVua0Vycm9yKGVycm9yOiBFcnJvcikge1xyXG4gICAgY29uc3QgY2h1bmtGYWlsZWRNZXNzYWdlID0gL0xvYWRpbmcgY2h1bmsgW1xcZF0rIGZhaWxlZC87XHJcbiAgICBpZiAoY2h1bmtGYWlsZWRNZXNzYWdlLnRlc3QoZXJyb3I/Lm1lc3NhZ2UpKSB7XHJcbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,35 +1,35 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { HttpResponse, } from '@angular/common/http';
|
|
3
|
-
import { throwError } from 'rxjs';
|
|
4
|
-
import { catchError, tap, timeout } from 'rxjs/operators';
|
|
5
|
-
import { API_TIMEOUT_TIME, ERROR_FEATURE_FLAG, } from '../constants/error-handling.constants';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "../services/global-error.service";
|
|
8
|
-
import * as i2 from "../../featureFlag/feature-flag.service";
|
|
9
|
-
export class HttpReqInterceptor {
|
|
10
|
-
constructor(errorService, featureFlagService) {
|
|
11
|
-
this.errorService = errorService;
|
|
12
|
-
this.featureFlagService = featureFlagService;
|
|
13
|
-
}
|
|
14
|
-
intercept(req, next) {
|
|
15
|
-
if (this.featureFlagService.isFeatureEnabled(ERROR_FEATURE_FLAG)) {
|
|
16
|
-
return next.handle(req).pipe(timeout(API_TIMEOUT_TIME), tap((event) => {
|
|
17
|
-
if (event instanceof HttpResponse) {
|
|
18
|
-
this.errorService.handleSoftErrors(event);
|
|
19
|
-
}
|
|
20
|
-
}), catchError((error) => {
|
|
21
|
-
this.errorService.handleError(error, req);
|
|
22
|
-
return throwError(error);
|
|
23
|
-
}));
|
|
24
|
-
}
|
|
25
|
-
else {
|
|
26
|
-
return next.handle(req);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
33
|
-
type: Injectable
|
|
34
|
-
}], ctorParameters: function () { return [{ type: i1.GlobalErrorService }, { type: i2.FeatureFlagService }]; } });
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { HttpResponse, } from '@angular/common/http';
|
|
3
|
+
import { throwError } from 'rxjs';
|
|
4
|
+
import { catchError, tap, timeout } from 'rxjs/operators';
|
|
5
|
+
import { API_TIMEOUT_TIME, ERROR_FEATURE_FLAG, } from '../constants/error-handling.constants';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "../services/global-error.service";
|
|
8
|
+
import * as i2 from "../../featureFlag/feature-flag.service";
|
|
9
|
+
export class HttpReqInterceptor {
|
|
10
|
+
constructor(errorService, featureFlagService) {
|
|
11
|
+
this.errorService = errorService;
|
|
12
|
+
this.featureFlagService = featureFlagService;
|
|
13
|
+
}
|
|
14
|
+
intercept(req, next) {
|
|
15
|
+
if (this.featureFlagService.isFeatureEnabled(ERROR_FEATURE_FLAG)) {
|
|
16
|
+
return next.handle(req).pipe(timeout(API_TIMEOUT_TIME), tap((event) => {
|
|
17
|
+
if (event instanceof HttpResponse) {
|
|
18
|
+
this.errorService.handleSoftErrors(event);
|
|
19
|
+
}
|
|
20
|
+
}), catchError((error) => {
|
|
21
|
+
this.errorService.handleError(error, req);
|
|
22
|
+
return throwError(error);
|
|
23
|
+
}));
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
return next.handle(req);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HttpReqInterceptor, deps: [{ token: i1.GlobalErrorService }, { token: i2.FeatureFlagService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
30
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HttpReqInterceptor }); }
|
|
31
|
+
}
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HttpReqInterceptor, decorators: [{
|
|
33
|
+
type: Injectable
|
|
34
|
+
}], ctorParameters: function () { return [{ type: i1.GlobalErrorService }, { type: i2.FeatureFlagService }]; } });
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZjLWVycm9yLWhhbmRsZXJzL3NyYy9saWIvc2hhcmVkL2ludGVyY2VwdG9ycy9odHRwLmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQU1MLFlBQVksR0FDYixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFLMUQsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixrQkFBa0IsR0FDbkIsTUFBTSx1Q0FBdUMsQ0FBQzs7OztBQUcvQyxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLFlBQ1UsWUFBZ0MsRUFDaEMsa0JBQXNDO1FBRHRDLGlCQUFZLEdBQVosWUFBWSxDQUFvQjtRQUNoQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO0lBQzdDLENBQUM7SUFFSixTQUFTLENBQ1AsR0FBcUIsRUFDckIsSUFBaUI7UUFFakIsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsRUFBRTtZQUNoRSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUMxQixPQUFPLENBQUMsZ0JBQWdCLENBQUMsRUFDekIsR0FBRyxDQUFDLENBQUMsS0FBcUIsRUFBRSxFQUFFO2dCQUM1QixJQUFJLEtBQUssWUFBWSxZQUFZLEVBQUU7b0JBQ2pDLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQzNDO1lBQ0gsQ0FBQyxDQUFDLEVBQ0YsVUFBVSxDQUFDLENBQUMsS0FBd0IsRUFBRSxFQUFFO2dCQUN0QyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQzFDLE9BQU8sVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzNCLENBQUMsQ0FBQyxDQUNILENBQUM7U0FDSDthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQzsrR0ExQlUsa0JBQWtCO21IQUFsQixrQkFBa0I7OzRGQUFsQixrQkFBa0I7a0JBRDlCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgSHR0cFJlcXVlc3QsXHJcbiAgSHR0cEhhbmRsZXIsXHJcbiAgSHR0cEV2ZW50LFxyXG4gIEh0dHBJbnRlcmNlcHRvcixcclxuICBIdHRwRXJyb3JSZXNwb25zZSxcclxuICBIdHRwUmVzcG9uc2UsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIHRhcCwgdGltZW91dCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IEdsb2JhbEVycm9yU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2dsb2JhbC1lcnJvci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRmVhdHVyZUZsYWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZmVhdHVyZUZsYWcvZmVhdHVyZS1mbGFnLnNlcnZpY2UnO1xyXG5cclxuaW1wb3J0IHtcclxuICBBUElfVElNRU9VVF9USU1FLFxyXG4gIEVSUk9SX0ZFQVRVUkVfRkxBRyxcclxufSBmcm9tICcuLi9jb25zdGFudHMvZXJyb3ItaGFuZGxpbmcuY29uc3RhbnRzJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEh0dHBSZXFJbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGVycm9yU2VydmljZTogR2xvYmFsRXJyb3JTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBmZWF0dXJlRmxhZ1NlcnZpY2U6IEZlYXR1cmVGbGFnU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgaW50ZXJjZXB0KFxyXG4gICAgcmVxOiBIdHRwUmVxdWVzdDxhbnk+LFxyXG4gICAgbmV4dDogSHR0cEhhbmRsZXJcclxuICApOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxhbnk+PiB7XHJcbiAgICBpZiAodGhpcy5mZWF0dXJlRmxhZ1NlcnZpY2UuaXNGZWF0dXJlRW5hYmxlZChFUlJPUl9GRUFUVVJFX0ZMQUcpKSB7XHJcbiAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXEpLnBpcGUoXHJcbiAgICAgICAgdGltZW91dChBUElfVElNRU9VVF9USU1FKSxcclxuICAgICAgICB0YXAoKGV2ZW50OiBIdHRwRXZlbnQ8YW55PikgPT4ge1xyXG4gICAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZXJyb3JTZXJ2aWNlLmhhbmRsZVNvZnRFcnJvcnMoZXZlbnQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5lcnJvclNlcnZpY2UuaGFuZGxlRXJyb3IoZXJyb3IsIHJlcSk7XHJcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvcik7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXEpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,115 +1,115 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { Subject } from 'rxjs';
|
|
3
|
-
import { ErrorStatusCode } from '../types/global-error.types';
|
|
4
|
-
import { PAGE_LEVEL_API_CONFIG, COMPONENT_LEVEL_API_CONFIG, } from '../constants/api-config.constants';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "../../ui-kit/snack-bar/snack-bar.service";
|
|
7
|
-
import * as i2 from "./util.service";
|
|
8
|
-
import * as i3 from "@angular/router";
|
|
9
|
-
export class GlobalErrorService {
|
|
10
|
-
constructor(snackBarService, utilService, router) {
|
|
11
|
-
this.snackBarService = snackBarService;
|
|
12
|
-
this.utilService = utilService;
|
|
13
|
-
this.router = router;
|
|
14
|
-
this.globalError$ = new Subject();
|
|
15
|
-
this.localError$ = new Subject();
|
|
16
|
-
this.pageLevelApiConfig = PAGE_LEVEL_API_CONFIG;
|
|
17
|
-
this.componentLevelApiConfig = COMPONENT_LEVEL_API_CONFIG;
|
|
18
|
-
}
|
|
19
|
-
handleSoftErrors(event) {
|
|
20
|
-
const xData = event.headers.get('X-Data');
|
|
21
|
-
if (xData) {
|
|
22
|
-
const parsedData = JSON.parse(xData);
|
|
23
|
-
const statusCode = parsedData.statusCode;
|
|
24
|
-
const statusMessage = parsedData.message;
|
|
25
|
-
if (statusCode && statusCode !== 0) {
|
|
26
|
-
this.snackBarService.show(statusMessage || 'Error occurred', 'error');
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
handleError(error, request) {
|
|
31
|
-
if (this.isUnauthenticated(error) ||
|
|
32
|
-
this.isUnauthorizedAccess(error) ||
|
|
33
|
-
this.isNetworkUnavailable(error)) {
|
|
34
|
-
this.publishGlobalError(error);
|
|
35
|
-
}
|
|
36
|
-
else if (this.isServerError(error)) {
|
|
37
|
-
this.handleServerError(error, request);
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
this.handleSoftErrors(error);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
isServerError(error) {
|
|
44
|
-
const serverErrorCodes = [
|
|
45
|
-
ErrorStatusCode.InternalServerError,
|
|
46
|
-
ErrorStatusCode.ServiceUnavailable,
|
|
47
|
-
ErrorStatusCode.BadGateway,
|
|
48
|
-
ErrorStatusCode.RequestTimeout,
|
|
49
|
-
];
|
|
50
|
-
return serverErrorCodes.includes(error.status);
|
|
51
|
-
}
|
|
52
|
-
isUnauthenticated(error) {
|
|
53
|
-
return error.status === ErrorStatusCode.Unauthenticated;
|
|
54
|
-
}
|
|
55
|
-
isUnauthorizedAccess(error) {
|
|
56
|
-
return error.status === ErrorStatusCode.UnauthorizedAccess;
|
|
57
|
-
}
|
|
58
|
-
isNetworkUnavailable(error) {
|
|
59
|
-
return error.status === ErrorStatusCode.NetworkUnavailable;
|
|
60
|
-
}
|
|
61
|
-
handleServerError(error, request) {
|
|
62
|
-
if (this.isPageLevelError(error, request)) {
|
|
63
|
-
this.publishGlobalError(error);
|
|
64
|
-
}
|
|
65
|
-
else if (this.isComponentLevelError(error, request)) {
|
|
66
|
-
this.publishLocalError(error, request);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
publishGlobalError(error) {
|
|
70
|
-
this.globalError$.next(error);
|
|
71
|
-
}
|
|
72
|
-
publishLocalError(error, request) {
|
|
73
|
-
this.localError$.next({ error, request });
|
|
74
|
-
}
|
|
75
|
-
isPageLevelError(error, request) {
|
|
76
|
-
const requestDetails = {
|
|
77
|
-
method: request.method,
|
|
78
|
-
path: request.url,
|
|
79
|
-
query: this.utilService.extractQueryParams(request.params),
|
|
80
|
-
body: request.body,
|
|
81
|
-
pageCode: this.getPageCode(),
|
|
82
|
-
};
|
|
83
|
-
return this.pageLevelApiConfig.some((apiConfig) => this.isApiConfigMatching(apiConfig, requestDetails));
|
|
84
|
-
}
|
|
85
|
-
isComponentLevelError(error, request) {
|
|
86
|
-
const requestDetails = {
|
|
87
|
-
method: request.method,
|
|
88
|
-
path: request.url,
|
|
89
|
-
query: this.utilService.extractQueryParams(request.params),
|
|
90
|
-
body: request.body,
|
|
91
|
-
};
|
|
92
|
-
return this.componentLevelApiConfig.some((apiConfig) => this.isApiConfigMatching(apiConfig, requestDetails));
|
|
93
|
-
}
|
|
94
|
-
getPageCode() {
|
|
95
|
-
const currentRoute = this.router.routerState.snapshot.root.firstChild;
|
|
96
|
-
return currentRoute?.data?.pageCode;
|
|
97
|
-
}
|
|
98
|
-
isApiConfigMatching(apiConfig, requestDetails) {
|
|
99
|
-
return (this.utilService.isStringEqual(apiConfig.method, requestDetails.method) &&
|
|
100
|
-
this.utilService.isSubstringInString(apiConfig.path, requestDetails.path) &&
|
|
101
|
-
this.utilService.isSubsetOfObject(apiConfig.query, requestDetails.query) &&
|
|
102
|
-
this.utilService.isSubsetOfArray(apiConfig.body, requestDetails.body) &&
|
|
103
|
-
(!apiConfig.pageCodes ||
|
|
104
|
-
this.utilService.isValueInArray(apiConfig.pageCodes, requestDetails.pageCode || '')));
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
110
|
-
type: Injectable,
|
|
111
|
-
args: [{
|
|
112
|
-
providedIn: 'root',
|
|
113
|
-
}]
|
|
114
|
-
}], ctorParameters: function () { return [{ type: i1.SnackBarService }, { type: i2.UtilsService }, { type: i3.Router }]; } });
|
|
115
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLWVycm9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92Yy1lcnJvci1oYW5kbGVycy9zcmMvbGliL3NoYXJlZC9zZXJ2aWNlcy9nbG9iYWwtZXJyb3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFLL0IsT0FBTyxFQUFFLGVBQWUsRUFBa0IsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RSxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLDBCQUEwQixHQUMzQixNQUFNLG1DQUFtQyxDQUFDOzs7OztBQUszQyxNQUFNLE9BQU8sa0JBQWtCO0lBTzdCLFlBQ1UsZUFBZ0MsRUFDaEMsV0FBeUIsRUFDekIsTUFBYztRQUZkLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYztRQUN6QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBVGpCLGlCQUFZLEdBQWlCLElBQUksT0FBTyxFQUFFLENBQUM7UUFDM0MsZ0JBQVcsR0FBaUIsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUV6Qyx1QkFBa0IsR0FBRyxxQkFBcUIsQ0FBQztRQUMzQyw0QkFBdUIsR0FBRywwQkFBMEIsQ0FBQztJQU0xRCxDQUFDO0lBRUcsZ0JBQWdCLENBQUMsS0FBNEM7UUFDbEUsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFMUMsSUFBSSxLQUFLLEVBQUU7WUFDVCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JDLE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUM7WUFDekMsTUFBTSxhQUFhLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQztZQUV6QyxJQUFJLFVBQVUsSUFBSSxVQUFVLEtBQUssQ0FBQyxFQUFFO2dCQUNsQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxhQUFhLElBQUksZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLENBQUM7YUFDdkU7U0FDRjtJQUNILENBQUM7SUFFTSxXQUFXLENBQUMsS0FBd0IsRUFBRSxPQUF5QjtRQUNwRSxJQUNFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUM7WUFDN0IsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQztZQUNoQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLEVBQ2hDO1lBQ0EsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ2hDO2FBQU0sSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3BDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDeEM7YUFBTTtZQUNMLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM5QjtJQUNILENBQUM7SUFFTSxhQUFhLENBQUMsS0FBd0I7UUFDM0MsTUFBTSxnQkFBZ0IsR0FBRztZQUN2QixlQUFlLENBQUMsbUJBQW1CO1lBQ25DLGVBQWUsQ0FBQyxrQkFBa0I7WUFDbEMsZUFBZSxDQUFDLFVBQVU7WUFDMUIsZUFBZSxDQUFDLGNBQWM7U0FDL0IsQ0FBQztRQUVGLE9BQU8sZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRU8saUJBQWlCLENBQUMsS0FBd0I7UUFDaEQsT0FBTyxLQUFLLENBQUMsTUFBTSxLQUFLLGVBQWUsQ0FBQyxlQUFlLENBQUM7SUFDMUQsQ0FBQztJQUVPLG9CQUFvQixDQUFDLEtBQXdCO1FBQ25ELE9BQU8sS0FBSyxDQUFDLE1BQU0sS0FBSyxlQUFlLENBQUMsa0JBQWtCLENBQUM7SUFDN0QsQ0FBQztJQUVPLG9CQUFvQixDQUFDLEtBQXdCO1FBQ25ELE9BQU8sS0FBSyxDQUFDLE1BQU0sS0FBSyxlQUFlLENBQUMsa0JBQWtCLENBQUM7SUFDN0QsQ0FBQztJQUVPLGlCQUFpQixDQUN2QixLQUF3QixFQUN4QixPQUF5QjtRQUV6QixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEVBQUU7WUFDekMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ2hDO2FBQU0sSUFBSSxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxFQUFFO1lBQ3JELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDeEM7SUFDSCxDQUFDO0lBRU8sa0JBQWtCLENBQUMsS0FBd0I7UUFDakQsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVPLGlCQUFpQixDQUN2QixLQUF3QixFQUN4QixPQUF5QjtRQUV6QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFTyxnQkFBZ0IsQ0FDdEIsS0FBd0IsRUFDeEIsT0FBeUI7UUFFekIsTUFBTSxjQUFjLEdBQW1CO1lBQ3JDLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtZQUN0QixJQUFJLEVBQUUsT0FBTyxDQUFDLEdBQUc7WUFDakIsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztZQUMxRCxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7WUFDbEIsUUFBUSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUU7U0FDN0IsQ0FBQztRQUVGLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQ2hELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsY0FBYyxDQUFDLENBQ3BELENBQUM7SUFDSixDQUFDO0lBRU8scUJBQXFCLENBQzNCLEtBQXdCLEVBQ3hCLE9BQXlCO1FBRXpCLE1BQU0sY0FBYyxHQUFtQjtZQUNyQyxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07WUFDdEIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxHQUFHO1lBQ2pCLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7WUFDMUQsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO1NBQ25CLENBQUM7UUFFRixPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUNyRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBUyxFQUFFLGNBQWMsQ0FBQyxDQUNwRCxDQUFDO0lBQ0osQ0FBQztJQUVPLFdBQVc7UUFDakIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDdEUsT0FBTyxZQUFZLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQztJQUN0QyxDQUFDO0lBRU8sbUJBQW1CLENBQ3pCLFNBQWMsRUFDZCxjQUE4QjtRQUU5QixPQUFPLENBQ0wsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsTUFBTSxDQUFDO1lBQ3ZFLElBQUksQ0FBQyxXQUFXLENBQUMsbUJBQW1CLENBQ2xDLFNBQVMsQ0FBQyxJQUFJLEVBQ2QsY0FBYyxDQUFDLElBQUksQ0FDcEI7WUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUMvQixTQUFTLENBQUMsS0FBSyxFQUNmLGNBQWMsQ0FBQyxLQUFLLENBQ3JCO1lBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxjQUFjLENBQUMsSUFBSSxDQUFDO1lBQ3JFLENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUztnQkFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQzdCLFNBQVMsQ0FBQyxTQUFTLEVBQ25CLGNBQWMsQ0FBQyxRQUFRLElBQUksRUFBRSxDQUM5QixDQUFDLENBQ0wsQ0FBQztJQUNKLENBQUM7OytHQWpKVSxrQkFBa0I7bUhBQWxCLGtCQUFrQixjQUZqQixNQUFNOzJGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEh0dHBFcnJvclJlc3BvbnNlLFxyXG4gIEh0dHBSZXF1ZXN0LFxyXG4gIEh0dHBSZXNwb25zZSxcclxufSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgU25hY2tCYXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdWkta2l0L3NuYWNrLWJhci9zbmFjay1iYXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFV0aWxzU2VydmljZSB9IGZyb20gJy4vdXRpbC5zZXJ2aWNlJztcclxuXHJcbmltcG9ydCB7IEVycm9yU3RhdHVzQ29kZSwgUmVxdWVzdERldGFpbHMgfSBmcm9tICcuLi90eXBlcy9nbG9iYWwtZXJyb3IudHlwZXMnO1xyXG5pbXBvcnQge1xyXG4gIFBBR0VfTEVWRUxfQVBJX0NPTkZJRyxcclxuICBDT01QT05FTlRfTEVWRUxfQVBJX0NPTkZJRyxcclxufSBmcm9tICcuLi9jb25zdGFudHMvYXBpLWNvbmZpZy5jb25zdGFudHMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEdsb2JhbEVycm9yU2VydmljZSB7XHJcbiAgcHVibGljIGdsb2JhbEVycm9yJDogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcclxuICBwdWJsaWMgbG9jYWxFcnJvciQ6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gIHByaXZhdGUgcGFnZUxldmVsQXBpQ29uZmlnID0gUEFHRV9MRVZFTF9BUElfQ09ORklHO1xyXG4gIHByaXZhdGUgY29tcG9uZW50TGV2ZWxBcGlDb25maWcgPSBDT01QT05FTlRfTEVWRUxfQVBJX0NPTkZJRztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHNuYWNrQmFyU2VydmljZTogU25hY2tCYXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB1dGlsU2VydmljZTogVXRpbHNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlclxyXG4gICkge31cclxuXHJcbiAgcHVibGljIGhhbmRsZVNvZnRFcnJvcnMoZXZlbnQ6IEh0dHBSZXNwb25zZTxhbnk+IHwgSHR0cEVycm9yUmVzcG9uc2UpIHtcclxuICAgIGNvbnN0IHhEYXRhID0gZXZlbnQuaGVhZGVycy5nZXQoJ1gtRGF0YScpO1xyXG5cclxuICAgIGlmICh4RGF0YSkge1xyXG4gICAgICBjb25zdCBwYXJzZWREYXRhID0gSlNPTi5wYXJzZSh4RGF0YSk7XHJcbiAgICAgIGNvbnN0IHN0YXR1c0NvZGUgPSBwYXJzZWREYXRhLnN0YXR1c0NvZGU7XHJcbiAgICAgIGNvbnN0IHN0YXR1c01lc3NhZ2UgPSBwYXJzZWREYXRhLm1lc3NhZ2U7XHJcblxyXG4gICAgICBpZiAoc3RhdHVzQ29kZSAmJiBzdGF0dXNDb2RlICE9PSAwKSB7XHJcbiAgICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uuc2hvdyhzdGF0dXNNZXNzYWdlIHx8ICdFcnJvciBvY2N1cnJlZCcsICdlcnJvcicpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlRXJyb3IoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlLCByZXF1ZXN0OiBIdHRwUmVxdWVzdDxhbnk+KSB7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuaXNVbmF1dGhlbnRpY2F0ZWQoZXJyb3IpIHx8XHJcbiAgICAgIHRoaXMuaXNVbmF1dGhvcml6ZWRBY2Nlc3MoZXJyb3IpIHx8XHJcbiAgICAgIHRoaXMuaXNOZXR3b3JrVW5hdmFpbGFibGUoZXJyb3IpXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5wdWJsaXNoR2xvYmFsRXJyb3IoZXJyb3IpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmlzU2VydmVyRXJyb3IoZXJyb3IpKSB7XHJcbiAgICAgIHRoaXMuaGFuZGxlU2VydmVyRXJyb3IoZXJyb3IsIHJlcXVlc3QpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5oYW5kbGVTb2Z0RXJyb3JzKGVycm9yKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBpc1NlcnZlckVycm9yKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3Qgc2VydmVyRXJyb3JDb2RlcyA9IFtcclxuICAgICAgRXJyb3JTdGF0dXNDb2RlLkludGVybmFsU2VydmVyRXJyb3IsXHJcbiAgICAgIEVycm9yU3RhdHVzQ29kZS5TZXJ2aWNlVW5hdmFpbGFibGUsXHJcbiAgICAgIEVycm9yU3RhdHVzQ29kZS5CYWRHYXRld2F5LFxyXG4gICAgICBFcnJvclN0YXR1c0NvZGUuUmVxdWVzdFRpbWVvdXQsXHJcbiAgICBdO1xyXG5cclxuICAgIHJldHVybiBzZXJ2ZXJFcnJvckNvZGVzLmluY2x1ZGVzKGVycm9yLnN0YXR1cyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzVW5hdXRoZW50aWNhdGVkKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGVycm9yLnN0YXR1cyA9PT0gRXJyb3JTdGF0dXNDb2RlLlVuYXV0aGVudGljYXRlZDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNVbmF1dGhvcml6ZWRBY2Nlc3MoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gZXJyb3Iuc3RhdHVzID09PSBFcnJvclN0YXR1c0NvZGUuVW5hdXRob3JpemVkQWNjZXNzO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc05ldHdvcmtVbmF2YWlsYWJsZShlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBlcnJvci5zdGF0dXMgPT09IEVycm9yU3RhdHVzQ29kZS5OZXR3b3JrVW5hdmFpbGFibGU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZVNlcnZlckVycm9yKFxyXG4gICAgZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlLFxyXG4gICAgcmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55PlxyXG4gICkge1xyXG4gICAgaWYgKHRoaXMuaXNQYWdlTGV2ZWxFcnJvcihlcnJvciwgcmVxdWVzdCkpIHtcclxuICAgICAgdGhpcy5wdWJsaXNoR2xvYmFsRXJyb3IoZXJyb3IpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmlzQ29tcG9uZW50TGV2ZWxFcnJvcihlcnJvciwgcmVxdWVzdCkpIHtcclxuICAgICAgdGhpcy5wdWJsaXNoTG9jYWxFcnJvcihlcnJvciwgcmVxdWVzdCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHB1Ymxpc2hHbG9iYWxFcnJvcihlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpIHtcclxuICAgIHRoaXMuZ2xvYmFsRXJyb3IkLm5leHQoZXJyb3IpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwdWJsaXNoTG9jYWxFcnJvcihcclxuICAgIGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSxcclxuICAgIHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT5cclxuICApIHtcclxuICAgIHRoaXMubG9jYWxFcnJvciQubmV4dCh7IGVycm9yLCByZXF1ZXN0IH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc1BhZ2VMZXZlbEVycm9yKFxyXG4gICAgZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlLFxyXG4gICAgcmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55PlxyXG4gICk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgcmVxdWVzdERldGFpbHM6IFJlcXVlc3REZXRhaWxzID0ge1xyXG4gICAgICBtZXRob2Q6IHJlcXVlc3QubWV0aG9kLFxyXG4gICAgICBwYXRoOiByZXF1ZXN0LnVybCxcclxuICAgICAgcXVlcnk6IHRoaXMudXRpbFNlcnZpY2UuZXh0cmFjdFF1ZXJ5UGFyYW1zKHJlcXVlc3QucGFyYW1zKSxcclxuICAgICAgYm9keTogcmVxdWVzdC5ib2R5LFxyXG4gICAgICBwYWdlQ29kZTogdGhpcy5nZXRQYWdlQ29kZSgpLFxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5wYWdlTGV2ZWxBcGlDb25maWcuc29tZSgoYXBpQ29uZmlnKSA9PlxyXG4gICAgICB0aGlzLmlzQXBpQ29uZmlnTWF0Y2hpbmcoYXBpQ29uZmlnLCByZXF1ZXN0RGV0YWlscylcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzQ29tcG9uZW50TGV2ZWxFcnJvcihcclxuICAgIGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSxcclxuICAgIHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT5cclxuICApOiBib29sZWFuIHtcclxuICAgIGNvbnN0IHJlcXVlc3REZXRhaWxzOiBSZXF1ZXN0RGV0YWlscyA9IHtcclxuICAgICAgbWV0aG9kOiByZXF1ZXN0Lm1ldGhvZCxcclxuICAgICAgcGF0aDogcmVxdWVzdC51cmwsXHJcbiAgICAgIHF1ZXJ5OiB0aGlzLnV0aWxTZXJ2aWNlLmV4dHJhY3RRdWVyeVBhcmFtcyhyZXF1ZXN0LnBhcmFtcyksXHJcbiAgICAgIGJvZHk6IHJlcXVlc3QuYm9keSxcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuY29tcG9uZW50TGV2ZWxBcGlDb25maWcuc29tZSgoYXBpQ29uZmlnKSA9PlxyXG4gICAgICB0aGlzLmlzQXBpQ29uZmlnTWF0Y2hpbmcoYXBpQ29uZmlnLCByZXF1ZXN0RGV0YWlscylcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFBhZ2VDb2RlKCkge1xyXG4gICAgY29uc3QgY3VycmVudFJvdXRlID0gdGhpcy5yb3V0ZXIucm91dGVyU3RhdGUuc25hcHNob3Qucm9vdC5maXJzdENoaWxkO1xyXG4gICAgcmV0dXJuIGN1cnJlbnRSb3V0ZT8uZGF0YT8ucGFnZUNvZGU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzQXBpQ29uZmlnTWF0Y2hpbmcoXHJcbiAgICBhcGlDb25maWc6IGFueSxcclxuICAgIHJlcXVlc3REZXRhaWxzOiBSZXF1ZXN0RGV0YWlsc1xyXG4gICk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgdGhpcy51dGlsU2VydmljZS5pc1N0cmluZ0VxdWFsKGFwaUNvbmZpZy5tZXRob2QsIHJlcXVlc3REZXRhaWxzLm1ldGhvZCkgJiZcclxuICAgICAgdGhpcy51dGlsU2VydmljZS5pc1N1YnN0cmluZ0luU3RyaW5nKFxyXG4gICAgICAgIGFwaUNvbmZpZy5wYXRoLFxyXG4gICAgICAgIHJlcXVlc3REZXRhaWxzLnBhdGhcclxuICAgICAgKSAmJlxyXG4gICAgICB0aGlzLnV0aWxTZXJ2aWNlLmlzU3Vic2V0T2ZPYmplY3QoXHJcbiAgICAgICAgYXBpQ29uZmlnLnF1ZXJ5LFxyXG4gICAgICAgIHJlcXVlc3REZXRhaWxzLnF1ZXJ5XHJcbiAgICAgICkgJiZcclxuICAgICAgdGhpcy51dGlsU2VydmljZS5pc1N1YnNldE9mQXJyYXkoYXBpQ29uZmlnLmJvZHksIHJlcXVlc3REZXRhaWxzLmJvZHkpICYmXHJcbiAgICAgICghYXBpQ29uZmlnLnBhZ2VDb2RlcyB8fFxyXG4gICAgICAgIHRoaXMudXRpbFNlcnZpY2UuaXNWYWx1ZUluQXJyYXkoXHJcbiAgICAgICAgICBhcGlDb25maWcucGFnZUNvZGVzLFxyXG4gICAgICAgICAgcmVxdWVzdERldGFpbHMucGFnZUNvZGUgfHwgJydcclxuICAgICAgICApKVxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl19
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { Subject } from 'rxjs';
|
|
3
|
+
import { ErrorStatusCode } from '../types/global-error.types';
|
|
4
|
+
import { PAGE_LEVEL_API_CONFIG, COMPONENT_LEVEL_API_CONFIG, } from '../constants/api-config.constants';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "../../ui-kit/snack-bar/snack-bar.service";
|
|
7
|
+
import * as i2 from "./util.service";
|
|
8
|
+
import * as i3 from "@angular/router";
|
|
9
|
+
export class GlobalErrorService {
|
|
10
|
+
constructor(snackBarService, utilService, router) {
|
|
11
|
+
this.snackBarService = snackBarService;
|
|
12
|
+
this.utilService = utilService;
|
|
13
|
+
this.router = router;
|
|
14
|
+
this.globalError$ = new Subject();
|
|
15
|
+
this.localError$ = new Subject();
|
|
16
|
+
this.pageLevelApiConfig = PAGE_LEVEL_API_CONFIG;
|
|
17
|
+
this.componentLevelApiConfig = COMPONENT_LEVEL_API_CONFIG;
|
|
18
|
+
}
|
|
19
|
+
handleSoftErrors(event) {
|
|
20
|
+
const xData = event.headers.get('X-Data');
|
|
21
|
+
if (xData) {
|
|
22
|
+
const parsedData = JSON.parse(xData);
|
|
23
|
+
const statusCode = parsedData.statusCode;
|
|
24
|
+
const statusMessage = parsedData.message;
|
|
25
|
+
if (statusCode && statusCode !== 0) {
|
|
26
|
+
this.snackBarService.show(statusMessage || 'Error occurred', 'error');
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
handleError(error, request) {
|
|
31
|
+
if (this.isUnauthenticated(error) ||
|
|
32
|
+
this.isUnauthorizedAccess(error) ||
|
|
33
|
+
this.isNetworkUnavailable(error)) {
|
|
34
|
+
this.publishGlobalError(error);
|
|
35
|
+
}
|
|
36
|
+
else if (this.isServerError(error)) {
|
|
37
|
+
this.handleServerError(error, request);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
this.handleSoftErrors(error);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
isServerError(error) {
|
|
44
|
+
const serverErrorCodes = [
|
|
45
|
+
ErrorStatusCode.InternalServerError,
|
|
46
|
+
ErrorStatusCode.ServiceUnavailable,
|
|
47
|
+
ErrorStatusCode.BadGateway,
|
|
48
|
+
ErrorStatusCode.RequestTimeout,
|
|
49
|
+
];
|
|
50
|
+
return serverErrorCodes.includes(error.status);
|
|
51
|
+
}
|
|
52
|
+
isUnauthenticated(error) {
|
|
53
|
+
return error.status === ErrorStatusCode.Unauthenticated;
|
|
54
|
+
}
|
|
55
|
+
isUnauthorizedAccess(error) {
|
|
56
|
+
return error.status === ErrorStatusCode.UnauthorizedAccess;
|
|
57
|
+
}
|
|
58
|
+
isNetworkUnavailable(error) {
|
|
59
|
+
return error.status === ErrorStatusCode.NetworkUnavailable;
|
|
60
|
+
}
|
|
61
|
+
handleServerError(error, request) {
|
|
62
|
+
if (this.isPageLevelError(error, request)) {
|
|
63
|
+
this.publishGlobalError(error);
|
|
64
|
+
}
|
|
65
|
+
else if (this.isComponentLevelError(error, request)) {
|
|
66
|
+
this.publishLocalError(error, request);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
publishGlobalError(error) {
|
|
70
|
+
this.globalError$.next(error);
|
|
71
|
+
}
|
|
72
|
+
publishLocalError(error, request) {
|
|
73
|
+
this.localError$.next({ error, request });
|
|
74
|
+
}
|
|
75
|
+
isPageLevelError(error, request) {
|
|
76
|
+
const requestDetails = {
|
|
77
|
+
method: request.method,
|
|
78
|
+
path: request.url,
|
|
79
|
+
query: this.utilService.extractQueryParams(request.params),
|
|
80
|
+
body: request.body,
|
|
81
|
+
pageCode: this.getPageCode(),
|
|
82
|
+
};
|
|
83
|
+
return this.pageLevelApiConfig.some((apiConfig) => this.isApiConfigMatching(apiConfig, requestDetails));
|
|
84
|
+
}
|
|
85
|
+
isComponentLevelError(error, request) {
|
|
86
|
+
const requestDetails = {
|
|
87
|
+
method: request.method,
|
|
88
|
+
path: request.url,
|
|
89
|
+
query: this.utilService.extractQueryParams(request.params),
|
|
90
|
+
body: request.body,
|
|
91
|
+
};
|
|
92
|
+
return this.componentLevelApiConfig.some((apiConfig) => this.isApiConfigMatching(apiConfig, requestDetails));
|
|
93
|
+
}
|
|
94
|
+
getPageCode() {
|
|
95
|
+
const currentRoute = this.router.routerState.snapshot.root.firstChild;
|
|
96
|
+
return currentRoute?.data?.pageCode;
|
|
97
|
+
}
|
|
98
|
+
isApiConfigMatching(apiConfig, requestDetails) {
|
|
99
|
+
return (this.utilService.isStringEqual(apiConfig.method, requestDetails.method) &&
|
|
100
|
+
this.utilService.isSubstringInString(apiConfig.path, requestDetails.path) &&
|
|
101
|
+
this.utilService.isSubsetOfObject(apiConfig.query, requestDetails.query) &&
|
|
102
|
+
this.utilService.isSubsetOfArray(apiConfig.body, requestDetails.body) &&
|
|
103
|
+
(!apiConfig.pageCodes ||
|
|
104
|
+
this.utilService.isValueInArray(apiConfig.pageCodes, requestDetails.pageCode || '')));
|
|
105
|
+
}
|
|
106
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GlobalErrorService, deps: [{ token: i1.SnackBarService }, { token: i2.UtilsService }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
107
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GlobalErrorService, providedIn: 'root' }); }
|
|
108
|
+
}
|
|
109
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GlobalErrorService, decorators: [{
|
|
110
|
+
type: Injectable,
|
|
111
|
+
args: [{
|
|
112
|
+
providedIn: 'root',
|
|
113
|
+
}]
|
|
114
|
+
}], ctorParameters: function () { return [{ type: i1.SnackBarService }, { type: i2.UtilsService }, { type: i3.Router }]; } });
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLWVycm9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92Yy1lcnJvci1oYW5kbGVycy9zcmMvbGliL3NoYXJlZC9zZXJ2aWNlcy9nbG9iYWwtZXJyb3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFLL0IsT0FBTyxFQUFFLGVBQWUsRUFBa0IsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RSxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLDBCQUEwQixHQUMzQixNQUFNLG1DQUFtQyxDQUFDOzs7OztBQUszQyxNQUFNLE9BQU8sa0JBQWtCO0lBTzdCLFlBQ1UsZUFBZ0MsRUFDaEMsV0FBeUIsRUFDekIsTUFBYztRQUZkLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYztRQUN6QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBVGpCLGlCQUFZLEdBQWlCLElBQUksT0FBTyxFQUFFLENBQUM7UUFDM0MsZ0JBQVcsR0FBaUIsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUV6Qyx1QkFBa0IsR0FBRyxxQkFBcUIsQ0FBQztRQUMzQyw0QkFBdUIsR0FBRywwQkFBMEIsQ0FBQztJQU0xRCxDQUFDO0lBRUcsZ0JBQWdCLENBQUMsS0FBNEM7UUFDbEUsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFMUMsSUFBSSxLQUFLLEVBQUU7WUFDVCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JDLE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUM7WUFDekMsTUFBTSxhQUFhLEdBQUcsVUFB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RSxjQUFjLENBQUMsSUFBSSxDQUFDO1lBQ3JFLENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUztnQkFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQzdCLFNBQVMsQ0FBQyxTQUFTLEVBQ25CLGNBQWMsQ0FBQyxRQUFRLElBQUksRUFBRSxDQUM5QixDQUFDLENBQ0wsQ0FBQztJQUNKLENBQUM7K0dBakpVLGtCQUFrQjttSEFBbEIsa0JBQWtCLGNBRmpCLE1BQU07OzRGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEh0dHBFcnJvclJlc3BvbnNlLFxyXG4gIEh0dHBSZXF1ZXN0LFxyXG4gIEh0dHBSZXNwb25zZSxcclxufSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgU25hY2tCYXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdWkta2l0L3NuYWNrLWJhci9zbmFjay1iYXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFV0aWxzU2VydmljZSB9IGZyb20gJy4vdXRpbC5zZXJ2aWNlJztcclxuXHJcbmltcG9ydCB7IEVycm9yU3RhdHVzQ29kZSwgUmVxdWVzdERldGFpbHMgfSBmcm9tICcuLi90eXBlcy9nbG9iYWwtZXJyb3IudHlwZXMnO1xyXG5pbXBvcnQge1xyXG4gIFBBR0VfTEVWRUxfQVBJX0NPTkZJRyxcclxuICBDT01QT05FTlRfTEVWRUxfQVBJX0NPTkZJRyxcclxufSBmcm9tICcuLi9jb25zdGFudHMvYXBpLWNvbmZpZy5jb25zdGFudHMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEdsb2JhbEVycm9yU2VydmljZSB7XHJcbiAgcHVibGljIGdsb2JhbEVycm9yJDogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcclxuICBwdWJsaWMgbG9jYWxFcnJvciQ6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gIHByaXZhdGUgcGFnZUxldmVsQXBpQ29uZmlnID0gUEFHRV9MRVZFTF9BUElfQ09ORklHO1xyXG4gIHByaXZhdGUgY29tcG9uZW50TGV2ZWxBcGlDb25maWcgPSBDT01QT05FTlRfTEVWRUxfQVBJX0NPTkZJRztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHNuYWNrQmFyU2VydmljZTogU25hY2tCYXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB1dGlsU2VydmljZTogVXRpbHNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlclxyXG4gICkge31cclxuXHJcbiAgcHVibGljIGhhbmRsZVNvZnRFcnJvcnMoZXZlbnQ6IEh0dHBSZXNwb25zZTxhbnk+IHwgSHR0cEVycm9yUmVzcG9uc2UpIHtcclxuICAgIGNvbnN0IHhEYXRhID0gZXZlbnQuaGVhZGVycy5nZXQoJ1gtRGF0YScpO1xyXG5cclxuICAgIGlmICh4RGF0YSkge1xyXG4gICAgICBjb25zdCBwYXJzZWREYXRhID0gSlNPTi5wYXJzZSh4RGF0YSk7XHJcbiAgICAgIGNvbnN0IHN0YXR1c0NvZGUgPSBwYXJzZWREYXRhLnN0YXR1c0NvZGU7XHJcbiAgICAgIGNvbnN0IHN0YXR1c01lc3NhZ2UgPSBwYXJzZWREYXRhLm1lc3NhZ2U7XHJcblxyXG4gICAgICBpZiAoc3RhdHVzQ29kZSAmJiBzdGF0dXNDb2RlICE9PSAwKSB7XHJcbiAgICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uuc2hvdyhzdGF0dXNNZXNzYWdlIHx8ICdFcnJvciBvY2N1cnJlZCcsICdlcnJvcicpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlRXJyb3IoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlLCByZXF1ZXN0OiBIdHRwUmVxdWVzdDxhbnk+KSB7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuaXNVbmF1dGhlbnRpY2F0ZWQoZXJyb3IpIHx8XHJcbiAgICAgIHRoaXMuaXNVbmF1dGhvcml6ZWRBY2Nlc3MoZXJyb3IpIHx8XHJcbiAgICAgIHRoaXMuaXNOZXR3b3JrVW5hdmFpbGFibGUoZXJyb3IpXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5wdWJsaXNoR2xvYmFsRXJyb3IoZXJyb3IpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmlzU2VydmVyRXJyb3IoZXJyb3IpKSB7XHJcbiAgICAgIHRoaXMuaGFuZGxlU2VydmVyRXJyb3IoZXJyb3IsIHJlcXVlc3QpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5oYW5kbGVTb2Z0RXJyb3JzKGVycm9yKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBpc1NlcnZlckVycm9yKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3Qgc2VydmVyRXJyb3JDb2RlcyA9IFtcclxuICAgICAgRXJyb3JTdGF0dXNDb2RlLkludGVybmFsU2VydmVyRXJyb3IsXHJcbiAgICAgIEVycm9yU3RhdHVzQ29kZS5TZXJ2aWNlVW5hdmFpbGFibGUsXHJcbiAgICAgIEVycm9yU3RhdHVzQ29kZS5CYWRHYXRld2F5LFxyXG4gICAgICBFcnJvclN0YXR1c0NvZGUuUmVxdWVzdFRpbWVvdXQsXHJcbiAgICBdO1xyXG5cclxuICAgIHJldHVybiBzZXJ2ZXJFcnJvckNvZGVzLmluY2x1ZGVzKGVycm9yLnN0YXR1cyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzVW5hdXRoZW50aWNhdGVkKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGVycm9yLnN0YXR1cyA9PT0gRXJyb3JTdGF0dXNDb2RlLlVuYXV0aGVudGljYXRlZDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNVbmF1dGhvcml6ZWRBY2Nlc3MoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gZXJyb3Iuc3RhdHVzID09PSBFcnJvclN0YXR1c0NvZGUuVW5hdXRob3JpemVkQWNjZXNzO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc05ldHdvcmtVbmF2YWlsYWJsZShlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBlcnJvci5zdGF0dXMgPT09IEVycm9yU3RhdHVzQ29kZS5OZXR3b3JrVW5hdmFpbGFibGU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZVNlcnZlckVycm9yKFxyXG4gICAgZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlLFxyXG4gICAgcmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55PlxyXG4gICkge1xyXG4gICAgaWYgKHRoaXMuaXNQYWdlTGV2ZWxFcnJvcihlcnJvciwgcmVxdWVzdCkpIHtcclxuICAgICAgdGhpcy5wdWJsaXNoR2xvYmFsRXJyb3IoZXJyb3IpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmlzQ29tcG9uZW50TGV2ZWxFcnJvcihlcnJvciwgcmVxdWVzdCkpIHtcclxuICAgICAgdGhpcy5wdWJsaXNoTG9jYWxFcnJvcihlcnJvciwgcmVxdWVzdCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHB1Ymxpc2hHbG9iYWxFcnJvcihlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpIHtcclxuICAgIHRoaXMuZ2xvYmFsRXJyb3IkLm5leHQoZXJyb3IpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwdWJsaXNoTG9jYWxFcnJvcihcclxuICAgIGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSxcclxuICAgIHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT5cclxuICApIHtcclxuICAgIHRoaXMubG9jYWxFcnJvciQubmV4dCh7IGVycm9yLCByZXF1ZXN0IH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc1BhZ2VMZXZlbEVycm9yKFxyXG4gICAgZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlLFxyXG4gICAgcmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55PlxyXG4gICk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgcmVxdWVzdERldGFpbHM6IFJlcXVlc3REZXRhaWxzID0ge1xyXG4gICAgICBtZXRob2Q6IHJlcXVlc3QubWV0aG9kLFxyXG4gICAgICBwYXRoOiByZXF1ZXN0LnVybCxcclxuICAgICAgcXVlcnk6IHRoaXMudXRpbFNlcnZpY2UuZXh0cmFjdFF1ZXJ5UGFyYW1zKHJlcXVlc3QucGFyYW1zKSxcclxuICAgICAgYm9keTogcmVxdWVzdC5ib2R5LFxyXG4gICAgICBwYWdlQ29kZTogdGhpcy5nZXRQYWdlQ29kZSgpLFxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5wYWdlTGV2ZWxBcGlDb25maWcuc29tZSgoYXBpQ29uZmlnKSA9PlxyXG4gICAgICB0aGlzLmlzQXBpQ29uZmlnTWF0Y2hpbmcoYXBpQ29uZmlnLCByZXF1ZXN0RGV0YWlscylcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzQ29tcG9uZW50TGV2ZWxFcnJvcihcclxuICAgIGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSxcclxuICAgIHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT5cclxuICApOiBib29sZWFuIHtcclxuICAgIGNvbnN0IHJlcXVlc3REZXRhaWxzOiBSZXF1ZXN0RGV0YWlscyA9IHtcclxuICAgICAgbWV0aG9kOiByZXF1ZXN0Lm1ldGhvZCxcclxuICAgICAgcGF0aDogcmVxdWVzdC51cmwsXHJcbiAgICAgIHF1ZXJ5OiB0aGlzLnV0aWxTZXJ2aWNlLmV4dHJhY3RRdWVyeVBhcmFtcyhyZXF1ZXN0LnBhcmFtcyksXHJcbiAgICAgIGJvZHk6IHJlcXVlc3QuYm9keSxcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuY29tcG9uZW50TGV2ZWxBcGlDb25maWcuc29tZSgoYXBpQ29uZmlnKSA9PlxyXG4gICAgICB0aGlzLmlzQXBpQ29uZmlnTWF0Y2hpbmcoYXBpQ29uZmlnLCByZXF1ZXN0RGV0YWlscylcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFBhZ2VDb2RlKCkge1xyXG4gICAgY29uc3QgY3VycmVudFJvdXRlID0gdGhpcy5yb3V0ZXIucm91dGVyU3RhdGUuc25hcHNob3Qucm9vdC5maXJzdENoaWxkO1xyXG4gICAgcmV0dXJuIGN1cnJlbnRSb3V0ZT8uZGF0YT8ucGFnZUNvZGU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzQXBpQ29uZmlnTWF0Y2hpbmcoXHJcbiAgICBhcGlDb25maWc6IGFueSxcclxuICAgIHJlcXVlc3REZXRhaWxzOiBSZXF1ZXN0RGV0YWlsc1xyXG4gICk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgdGhpcy51dGlsU2VydmljZS5pc1N0cmluZ0VxdWFsKGFwaUNvbmZpZy5tZXRob2QsIHJlcXVlc3REZXRhaWxzLm1ldGhvZCkgJiZcclxuICAgICAgdGhpcy51dGlsU2VydmljZS5pc1N1YnN0cmluZ0luU3RyaW5nKFxyXG4gICAgICAgIGFwaUNvbmZpZy5wYXRoLFxyXG4gICAgICAgIHJlcXVlc3REZXRhaWxzLnBhdGhcclxuICAgICAgKSAmJlxyXG4gICAgICB0aGlzLnV0aWxTZXJ2aWNlLmlzU3Vic2V0T2ZPYmplY3QoXHJcbiAgICAgICAgYXBpQ29uZmlnLnF1ZXJ5LFxyXG4gICAgICAgIHJlcXVlc3REZXRhaWxzLnF1ZXJ5XHJcbiAgICAgICkgJiZcclxuICAgICAgdGhpcy51dGlsU2VydmljZS5pc1N1YnNldE9mQXJyYXkoYXBpQ29uZmlnLmJvZHksIHJlcXVlc3REZXRhaWxzLmJvZHkpICYmXHJcbiAgICAgICghYXBpQ29uZmlnLnBhZ2VDb2RlcyB8fFxyXG4gICAgICAgIHRoaXMudXRpbFNlcnZpY2UuaXNWYWx1ZUluQXJyYXkoXHJcbiAgICAgICAgICBhcGlDb25maWcucGFnZUNvZGVzLFxyXG4gICAgICAgICAgcmVxdWVzdERldGFpbHMucGFnZUNvZGUgfHwgJydcclxuICAgICAgICApKVxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class RouterService {
|
|
4
|
-
redirectToLogin() {
|
|
5
|
-
window.location.href =
|
|
6
|
-
`https://${window.location.host}/` +
|
|
7
|
-
'signin?redirectURL=' +
|
|
8
|
-
encodeURIComponent(window.location.href);
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
14
|
-
type: Injectable,
|
|
15
|
-
args: [{
|
|
16
|
-
providedIn: 'root',
|
|
17
|
-
}]
|
|
18
|
-
}] });
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class RouterService {
|
|
4
|
+
redirectToLogin() {
|
|
5
|
+
window.location.href =
|
|
6
|
+
`https://${window.location.host}/` +
|
|
7
|
+
'signin?redirectURL=' +
|
|
8
|
+
encodeURIComponent(window.location.href);
|
|
9
|
+
}
|
|
10
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RouterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
11
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RouterService, providedIn: 'root' }); }
|
|
12
|
+
}
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RouterService, decorators: [{
|
|
14
|
+
type: Injectable,
|
|
15
|
+
args: [{
|
|
16
|
+
providedIn: 'root',
|
|
17
|
+
}]
|
|
18
|
+
}] });
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92Yy1lcnJvci1oYW5kbGVycy9zcmMvbGliL3NoYXJlZC9zZXJ2aWNlcy9yb3V0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sYUFBYTtJQUNqQixlQUFlO1FBQ3BCLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSTtZQUNsQixXQUFXLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHO2dCQUNsQyxxQkFBcUI7Z0JBQ3JCLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0MsQ0FBQzsrR0FOVSxhQUFhO21IQUFiLGFBQWEsY0FGWixNQUFNOzs0RkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSb3V0ZXJTZXJ2aWNlIHtcclxuICBwdWJsaWMgcmVkaXJlY3RUb0xvZ2luKCkge1xyXG4gICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPVxyXG4gICAgICBgaHR0cHM6Ly8ke3dpbmRvdy5sb2NhdGlvbi5ob3N0fS9gICtcclxuICAgICAgJ3NpZ25pbj9yZWRpcmVjdFVSTD0nICtcclxuICAgICAgZW5jb2RlVVJJQ29tcG9uZW50KHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcclxuICB9XHJcbn1cclxuIl19
|