vc-error-handlers 9.0.0 → 9.0.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.
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
|
-
import { Component, Directive, ErrorHandler, EventEmitter, HostListener, Injectable, InjectionToken, Input, NgModule, Optional, Output, ViewChild, createComponent } from "@angular/core";
|
|
2
|
+
import { APP_INITIALIZER, ChangeDetectionStrategy, Component, Directive, ErrorHandler, EventEmitter, HostListener, Injectable, InjectionToken, Input, NgModule, Optional, Output, ViewChild, createComponent } from "@angular/core";
|
|
3
3
|
import * as i1 from "@angular/common/http";
|
|
4
4
|
import { HTTP_INTERCEPTORS, HttpResponse } from "@angular/common/http";
|
|
5
5
|
import { Subject, throwError } from "rxjs";
|
|
6
|
-
import * as i3 from "@angular/router";
|
|
7
|
-
import { NavigationEnd, NavigationError, NavigationStart } from "@angular/router";
|
|
6
|
+
import * as i3$1 from "@angular/router";
|
|
7
|
+
import { NavigationEnd, NavigationError, NavigationStart, Router } from "@angular/router";
|
|
8
8
|
import { catchError, retry, tap, timeout } from "rxjs/operators";
|
|
9
|
-
import * as i2
|
|
10
|
-
import * as
|
|
9
|
+
import * as i2 from "@vcomply/authorizer";
|
|
10
|
+
import * as i3 from "@angular/common";
|
|
11
11
|
import { CommonModule, NgOptimizedImage } from "@angular/common";
|
|
12
|
-
import * as Sentry from "@sentry/angular
|
|
12
|
+
import * as Sentry from "@sentry/angular";
|
|
13
13
|
var VcErrorHandlersService = class VcErrorHandlersService {
|
|
14
14
|
constructor() {}
|
|
15
15
|
static {
|
|
@@ -1262,7 +1262,7 @@ var GlobalErrorService = class GlobalErrorService {
|
|
|
1262
1262
|
deps: [
|
|
1263
1263
|
{ token: SnackBarService },
|
|
1264
1264
|
{ token: UtilsService },
|
|
1265
|
-
{ token: i3.Router }
|
|
1265
|
+
{ token: i3$1.Router }
|
|
1266
1266
|
],
|
|
1267
1267
|
target: i0.ɵɵFactoryTarget.Injectable
|
|
1268
1268
|
});
|
|
@@ -1289,7 +1289,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
1289
1289
|
ctorParameters: () => [
|
|
1290
1290
|
{ type: SnackBarService },
|
|
1291
1291
|
{ type: UtilsService },
|
|
1292
|
-
{ type: i3.Router }
|
|
1292
|
+
{ type: i3$1.Router }
|
|
1293
1293
|
]
|
|
1294
1294
|
});
|
|
1295
1295
|
const BASE_URL = "https://cdn.v-comply.com";
|
|
@@ -1499,7 +1499,7 @@ var FeatureFlagService = class FeatureFlagService {
|
|
|
1499
1499
|
type: FeatureFlagService,
|
|
1500
1500
|
deps: [
|
|
1501
1501
|
{ token: i1.HttpClient },
|
|
1502
|
-
{ token: i2
|
|
1502
|
+
{ token: i2.AuthorizerService },
|
|
1503
1503
|
{
|
|
1504
1504
|
token: Configurations,
|
|
1505
1505
|
optional: true
|
|
@@ -1529,7 +1529,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
1529
1529
|
}],
|
|
1530
1530
|
ctorParameters: () => [
|
|
1531
1531
|
{ type: i1.HttpClient },
|
|
1532
|
-
{ type: i2
|
|
1532
|
+
{ type: i2.AuthorizerService },
|
|
1533
1533
|
{
|
|
1534
1534
|
type: Configurations,
|
|
1535
1535
|
decorators: [{ type: Optional }]
|
|
@@ -1586,24 +1586,15 @@ var SnackBarComponent = class SnackBarComponent {
|
|
|
1586
1586
|
}
|
|
1587
1587
|
static {
|
|
1588
1588
|
this.ɵcmp = i0.ɵɵngDeclareComponent({
|
|
1589
|
-
minVersion: "
|
|
1589
|
+
minVersion: "17.0.0",
|
|
1590
1590
|
version: "22.2.3",
|
|
1591
1591
|
type: SnackBarComponent,
|
|
1592
1592
|
isStandalone: false,
|
|
1593
1593
|
selector: "app-snack-bar",
|
|
1594
1594
|
ngImport: i0,
|
|
1595
|
-
template: "<div class=\"workflow-snackbar\"
|
|
1595
|
+
template: "@if (show) {\n<div class=\"workflow-snackbar\">\r\n <div class=\"workflow-snackbar-inner\">\r\n <div class=\"workflow-snackbarText\">\r\n <!--  -->\r\n <i class=\"icons\" [class]=\"type\" [innerHTML]=\"icon\"></i> <span [innerHTML]=\"message\">{{ message }}</span>\r\n </div>\r\n <button (click)=\"close()\">[ <span>Close</span> ]</button>\r\n </div>\r\n </div>\n}",
|
|
1596
1596
|
styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";::ng-deep .workflow-snackbar{position:fixed;top:20px;left:0;right:0;display:flex;align-items:center;justify-content:center;z-index:2147483647!important;pointer-events:none;-webkit-animation:slide-top .3s cubic-bezier(.25,.46,.45,.94) both;animation:slide-top .3s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .workflow-snackbar.white{background-color:#fff;color:#000;z-index:20}::ng-deep .workflow-snackbar.white button{color:#f6882f;font-size:11px;font-weight:400;pointer-events:all}::ng-deep .workflow-snackbar .workflow-snackbar-inner{display:flex;max-width:500px;min-width:450px;align-items:center;justify-content:space-between;padding:10px;background:#fff;border-radius:3px;box-shadow:0 0 10px #0003;min-height:55px;pointer-events:auto}::ng-deep .workflow-snackbar .workflow-snackbar-inner .workflow-snackbarText{color:#161b2f;font-size:13px;display:flex;align-items:center;width:calc(100% - 70px)}::ng-deep .workflow-snackbar .workflow-snackbar-inner .workflow-snackbarText i{background:#f1f1f1;color:#d93b41;border-radius:50px;font-size:16px;width:30px;height:30px;text-align:center;line-height:28px;margin-right:10px;min-width:30px}::ng-deep .workflow-snackbar .workflow-snackbar-inner .workflow-snackbarText i.success{color:#34aa44}::ng-deep .workflow-snackbar .workflow-snackbar-inner .workflow-snackbarText i.warning{color:#f0b819}::ng-deep .workflow-snackbar .workflow-snackbar-inner .workflow-snackbarText i.info{color:#1e5dd3}::ng-deep .workflow-snackbar .workflow-snackbar-inner .workflow-snackbarText i.alert{color:#d93b41}::ng-deep .workflow-snackbar .workflow-snackbar-inner .workflow-snackbarText i.error{color:#d93b41}::ng-deep .workflow-snackbar .workflow-snackbar-inner button{background:transparent;border:none;font-size:11px;padding:0;position:relative;color:#747576;width:65px;text-align:right;cursor:pointer;text-transform:uppercase}::ng-deep .workflow-snackbar .workflow-snackbar-inner button span{color:#1e5dd3;font-weight:500}::ng-deep .workflow-snackbar .workflow-snackbar-inner button:focus{outline:none}@keyframes slide-top{0%{-webkit-transform:translateY(-100%);transform:translateY(-100%);opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}}\n"],
|
|
1597
|
-
|
|
1598
|
-
kind: "directive",
|
|
1599
|
-
type: i2.NgIf,
|
|
1600
|
-
selector: "[ngIf]",
|
|
1601
|
-
inputs: [
|
|
1602
|
-
"ngIf",
|
|
1603
|
-
"ngIfThen",
|
|
1604
|
-
"ngIfElse"
|
|
1605
|
-
]
|
|
1606
|
-
}]
|
|
1597
|
+
changeDetection: i0.ChangeDetectionStrategy.Eager
|
|
1607
1598
|
});
|
|
1608
1599
|
}
|
|
1609
1600
|
};
|
|
@@ -1617,7 +1608,8 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
1617
1608
|
args: [{
|
|
1618
1609
|
standalone: false,
|
|
1619
1610
|
selector: "app-snack-bar",
|
|
1620
|
-
|
|
1611
|
+
changeDetection: ChangeDetectionStrategy.Eager,
|
|
1612
|
+
template: "@if (show) {\n<div class=\"workflow-snackbar\">\r\n <div class=\"workflow-snackbar-inner\">\r\n <div class=\"workflow-snackbarText\">\r\n <!--  -->\r\n <i class=\"icons\" [class]=\"type\" [innerHTML]=\"icon\"></i> <span [innerHTML]=\"message\">{{ message }}</span>\r\n </div>\r\n <button (click)=\"close()\">[ <span>Close</span> ]</button>\r\n </div>\r\n </div>\n}",
|
|
1621
1613
|
styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";::ng-deep .workflow-snackbar{position:fixed;top:20px;left:0;right:0;display:flex;align-items:center;justify-content:center;z-index:2147483647!important;pointer-events:none;-webkit-animation:slide-top .3s cubic-bezier(.25,.46,.45,.94) both;animation:slide-top .3s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .workflow-snackbar.white{background-color:#fff;color:#000;z-index:20}::ng-deep .workflow-snackbar.white button{color:#f6882f;font-size:11px;font-weight:400;pointer-events:all}::ng-deep .workflow-snackbar .workflow-snackbar-inner{display:flex;max-width:500px;min-width:450px;align-items:center;justify-content:space-between;padding:10px;background:#fff;border-radius:3px;box-shadow:0 0 10px #0003;min-height:55px;pointer-events:auto}::ng-deep .workflow-snackbar .workflow-snackbar-inner .workflow-snackbarText{color:#161b2f;font-size:13px;display:flex;align-items:center;width:calc(100% - 70px)}::ng-deep .workflow-snackbar .workflow-snackbar-inner .workflow-snackbarText i{background:#f1f1f1;color:#d93b41;border-radius:50px;font-size:16px;width:30px;height:30px;text-align:center;line-height:28px;margin-right:10px;min-width:30px}::ng-deep .workflow-snackbar .workflow-snackbar-inner .workflow-snackbarText i.success{color:#34aa44}::ng-deep .workflow-snackbar .workflow-snackbar-inner .workflow-snackbarText i.warning{color:#f0b819}::ng-deep .workflow-snackbar .workflow-snackbar-inner .workflow-snackbarText i.info{color:#1e5dd3}::ng-deep .workflow-snackbar .workflow-snackbar-inner .workflow-snackbarText i.alert{color:#d93b41}::ng-deep .workflow-snackbar .workflow-snackbar-inner .workflow-snackbarText i.error{color:#d93b41}::ng-deep .workflow-snackbar .workflow-snackbar-inner button{background:transparent;border:none;font-size:11px;padding:0;position:relative;color:#747576;width:65px;text-align:right;cursor:pointer;text-transform:uppercase}::ng-deep .workflow-snackbar .workflow-snackbar-inner button span{color:#1e5dd3;font-weight:500}::ng-deep .workflow-snackbar .workflow-snackbar-inner button:focus{outline:none}@keyframes slide-top{0%{-webkit-transform:translateY(-100%);transform:translateY(-100%);opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}}\n"]
|
|
1622
1614
|
}]
|
|
1623
1615
|
}],
|
|
@@ -1826,7 +1818,7 @@ var UnauthorizedComponent = class UnauthorizedComponent {
|
|
|
1826
1818
|
version: "22.2.3",
|
|
1827
1819
|
ngImport: i0,
|
|
1828
1820
|
type: UnauthorizedComponent,
|
|
1829
|
-
deps: [{ token: i3.ActivatedRoute }, { token: RouterService }],
|
|
1821
|
+
deps: [{ token: i3$1.ActivatedRoute }, { token: RouterService }],
|
|
1830
1822
|
target: i0.ɵɵFactoryTarget.Component
|
|
1831
1823
|
});
|
|
1832
1824
|
}
|
|
@@ -1894,7 +1886,7 @@ var UnauthorizedComponent = class UnauthorizedComponent {
|
|
|
1894
1886
|
styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";.errorPage{background:#161b2f;position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:9999}.errorPage-top{width:100%;height:3rem;display:flex;align-items:center;padding-left:.75rem;cursor:pointer}.errorPage-container{background:#f2f2f5;border-radius:.75rem;border:1px solid #e3e3e9;box-shadow:0 4px 8px #1d5dd31a;height:calc(100vh - 3.75rem);display:flex;align-items:center;justify-content:center;padding:0 4rem;margin:0 .75rem;position:relative}.errorPage-inner{display:flex;align-items:center}.errorPage-inner-image{width:16rem}.errorPage-inner-right{margin-left:2rem;width:calc(100% - 18rem)}.errorPage-inner-right .errorPage-heading{-webkit-text-fill-color:#e3e3e9;-webkit-text-stroke-color:#a9aab6;-webkit-text-stroke-width:1px;color:#e3e3e9;font-size:78px;font-weight:700;line-height:110px;margin-bottom:1.5rem}.errorPage-inner-right .errorPage-text{color:#141724;font-size:19px;font-weight:500;line-height:1.75rem;margin-bottom:.5rem}.errorPage-inner-right .errorPage-details{color:#565a6f;font-size:13px;line-height:20px;margin-bottom:1.75rem}.errorPage-inner-right .errorPage-btn{background:#1e5dd3;border-radius:.25rem;border:none;color:#fff;display:inline-flex;align-items:center;font-size:11px;font-weight:500;line-height:2rem;padding:0 1rem}.errorPage-inner-right .errorPage-btn i{font-size:14px;margin-left:.25rem}.errorPage-copyright{font-size:11px;color:#787a8c;font-weight:500;position:absolute;bottom:8px;right:16px;line-height:16px}\n"],
|
|
1895
1887
|
dependencies: [{
|
|
1896
1888
|
kind: "directive",
|
|
1897
|
-
type:
|
|
1889
|
+
type: i3.NgOptimizedImage,
|
|
1898
1890
|
selector: "img[ngSrc]",
|
|
1899
1891
|
inputs: [
|
|
1900
1892
|
"ngSrc",
|
|
@@ -1925,7 +1917,8 @@ var UnauthorizedComponent = class UnauthorizedComponent {
|
|
|
1925
1917
|
"showTooltip",
|
|
1926
1918
|
"animate"
|
|
1927
1919
|
]
|
|
1928
|
-
}]
|
|
1920
|
+
}],
|
|
1921
|
+
changeDetection: i0.ChangeDetectionStrategy.Eager
|
|
1929
1922
|
});
|
|
1930
1923
|
}
|
|
1931
1924
|
};
|
|
@@ -1991,10 +1984,11 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
1991
1984
|
</div>
|
|
1992
1985
|
</div>
|
|
1993
1986
|
`,
|
|
1987
|
+
changeDetection: ChangeDetectionStrategy.Eager,
|
|
1994
1988
|
styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";.errorPage{background:#161b2f;position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:9999}.errorPage-top{width:100%;height:3rem;display:flex;align-items:center;padding-left:.75rem;cursor:pointer}.errorPage-container{background:#f2f2f5;border-radius:.75rem;border:1px solid #e3e3e9;box-shadow:0 4px 8px #1d5dd31a;height:calc(100vh - 3.75rem);display:flex;align-items:center;justify-content:center;padding:0 4rem;margin:0 .75rem;position:relative}.errorPage-inner{display:flex;align-items:center}.errorPage-inner-image{width:16rem}.errorPage-inner-right{margin-left:2rem;width:calc(100% - 18rem)}.errorPage-inner-right .errorPage-heading{-webkit-text-fill-color:#e3e3e9;-webkit-text-stroke-color:#a9aab6;-webkit-text-stroke-width:1px;color:#e3e3e9;font-size:78px;font-weight:700;line-height:110px;margin-bottom:1.5rem}.errorPage-inner-right .errorPage-text{color:#141724;font-size:19px;font-weight:500;line-height:1.75rem;margin-bottom:.5rem}.errorPage-inner-right .errorPage-details{color:#565a6f;font-size:13px;line-height:20px;margin-bottom:1.75rem}.errorPage-inner-right .errorPage-btn{background:#1e5dd3;border-radius:.25rem;border:none;color:#fff;display:inline-flex;align-items:center;font-size:11px;font-weight:500;line-height:2rem;padding:0 1rem}.errorPage-inner-right .errorPage-btn i{font-size:14px;margin-left:.25rem}.errorPage-copyright{font-size:11px;color:#787a8c;font-weight:500;position:absolute;bottom:8px;right:16px;line-height:16px}\n"]
|
|
1995
1989
|
}]
|
|
1996
1990
|
}],
|
|
1997
|
-
ctorParameters: () => [{ type: i3.ActivatedRoute }, { type: RouterService }]
|
|
1991
|
+
ctorParameters: () => [{ type: i3$1.ActivatedRoute }, { type: RouterService }]
|
|
1998
1992
|
});
|
|
1999
1993
|
var DialogConfig = class {};
|
|
2000
1994
|
var ErrorModalComponent = class ErrorModalComponent {
|
|
@@ -2030,7 +2024,7 @@ var ErrorModalComponent = class ErrorModalComponent {
|
|
|
2030
2024
|
ngImport: i0,
|
|
2031
2025
|
type: ErrorModalComponent,
|
|
2032
2026
|
deps: [
|
|
2033
|
-
{ token: i2
|
|
2027
|
+
{ token: i2.AuthorizerService },
|
|
2034
2028
|
{ token: DialogConfig },
|
|
2035
2029
|
{ token: RouterService }
|
|
2036
2030
|
],
|
|
@@ -2058,7 +2052,8 @@ var ErrorModalComponent = class ErrorModalComponent {
|
|
|
2058
2052
|
</div>
|
|
2059
2053
|
</div>`,
|
|
2060
2054
|
isInline: true,
|
|
2061
|
-
styles: [".error-dialog-box{background:#fff;border-radius:.75rem;box-shadow:0 1px 10px #0003;width:27rem}.error-dialog-box-top{color:#000;font-size:16px;font-weight:500;border-radius:.75rem .75rem 0 0;display:flex;align-items:center;height:3.375rem;padding:0 1rem;margin-bottom:1rem}.error-dialog-box-mid{color:#565a6f;font-size:13px;min-height:5.5rem;padding:0 1rem}.error-dialog-box-bottom{display:flex;justify-content:end;padding:1rem}.error-dialog-box-bottom button.logIn-btn{background:#1e5dd3;border-radius:.125rem;border:none;color:#fff;cursor:pointer;font-size:11px;height:2rem;padding:.5rem .75rem}\n"]
|
|
2055
|
+
styles: [".error-dialog-box{background:#fff;border-radius:.75rem;box-shadow:0 1px 10px #0003;width:27rem}.error-dialog-box-top{color:#000;font-size:16px;font-weight:500;border-radius:.75rem .75rem 0 0;display:flex;align-items:center;height:3.375rem;padding:0 1rem;margin-bottom:1rem}.error-dialog-box-mid{color:#565a6f;font-size:13px;min-height:5.5rem;padding:0 1rem}.error-dialog-box-bottom{display:flex;justify-content:end;padding:1rem}.error-dialog-box-bottom button.logIn-btn{background:#1e5dd3;border-radius:.125rem;border:none;color:#fff;cursor:pointer;font-size:11px;height:2rem;padding:.5rem .75rem}\n"],
|
|
2056
|
+
changeDetection: i0.ChangeDetectionStrategy.Eager
|
|
2062
2057
|
});
|
|
2063
2058
|
}
|
|
2064
2059
|
};
|
|
@@ -2083,11 +2078,12 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
2083
2078
|
</button>
|
|
2084
2079
|
</div>
|
|
2085
2080
|
</div>`,
|
|
2081
|
+
changeDetection: ChangeDetectionStrategy.Eager,
|
|
2086
2082
|
styles: [".error-dialog-box{background:#fff;border-radius:.75rem;box-shadow:0 1px 10px #0003;width:27rem}.error-dialog-box-top{color:#000;font-size:16px;font-weight:500;border-radius:.75rem .75rem 0 0;display:flex;align-items:center;height:3.375rem;padding:0 1rem;margin-bottom:1rem}.error-dialog-box-mid{color:#565a6f;font-size:13px;min-height:5.5rem;padding:0 1rem}.error-dialog-box-bottom{display:flex;justify-content:end;padding:1rem}.error-dialog-box-bottom button.logIn-btn{background:#1e5dd3;border-radius:.125rem;border:none;color:#fff;cursor:pointer;font-size:11px;height:2rem;padding:.5rem .75rem}\n"]
|
|
2087
2083
|
}]
|
|
2088
2084
|
}],
|
|
2089
2085
|
ctorParameters: () => [
|
|
2090
|
-
{ type: i2
|
|
2086
|
+
{ type: i2.AuthorizerService },
|
|
2091
2087
|
{ type: DialogConfig },
|
|
2092
2088
|
{ type: RouterService }
|
|
2093
2089
|
],
|
|
@@ -2198,7 +2194,7 @@ var DialogComponent = class DialogComponent {
|
|
|
2198
2194
|
{ token: i0.ChangeDetectorRef },
|
|
2199
2195
|
{ token: DialogRef },
|
|
2200
2196
|
{ token: DialogConfig },
|
|
2201
|
-
{ token: i3.Router }
|
|
2197
|
+
{ token: i3$1.Router }
|
|
2202
2198
|
],
|
|
2203
2199
|
target: i0.ɵɵFactoryTarget.Component
|
|
2204
2200
|
});
|
|
@@ -2218,18 +2214,14 @@ var DialogComponent = class DialogComponent {
|
|
|
2218
2214
|
static: true
|
|
2219
2215
|
}],
|
|
2220
2216
|
ngImport: i0,
|
|
2221
|
-
template: "<div\r\n class=\"overlay\"\r\n (click)=\"onOverlayClicked($event)\"\r\n [
|
|
2217
|
+
template: "<div\r\n class=\"overlay\"\r\n (click)=\"onOverlayClicked($event)\"\r\n [class.top]=\"position === 'TOP'\"\r\n [class.right]=\"position === 'RIGHT'\"\r\n [class.bottom]=\"position === 'BOTTOM'\"\r\n [class.left]=\"position === 'LEFT'\"\r\n [class.center]=\"position === 'CENTER'\"\r\n [class.black]=\"background === 'black'\"\r\n [class.whiteBlur]=\"background === 'whiteBlur'\"\r\n [class.pointer-none]=\"pointer === 'none'\"\r\n>\r\n <div\r\n class=\"dialog\"\r\n [class.animate]=\"animation\"\r\n (click)=\"onDialogClicked($event)\"\r\n [class.top]=\"position === 'TOP'\"\r\n [class.right]=\"position === 'RIGHT'\"\r\n [class.bottom]=\"position === 'BOTTOM'\"\r\n [class.left]=\"position === 'LEFT'\"\r\n [class.center]=\"position === 'CENTER'\"\r\n >\r\n <ng-template appInsertion></ng-template>\r\n </div>\r\n</div>\r\n",
|
|
2222
2218
|
styles: [".overlay{display:flex;position:fixed;inset:0;align-items:center;justify-content:center;z-index:2147483009!important}.overlay.low{z-index:1}.overlay.black{background:#161b2fcc}.overlay.whiteBlur{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.overlay.top{align-items:flex-start}.overlay.right{justify-content:flex-end}.overlay.bottom{align-items:flex-end}.overlay.left{justify-content:flex-start}.dialog{position:relative}.dialog.animate.top{-webkit-animation:animate-top .2s cubic-bezier(.25,.46,.45,.94) both;animation:animate-top .2s cubic-bezier(.25,.46,.45,.94) both}@-webkit-keyframes animate-top{0%{-webkit-transform:translateY(-100px);transform:translateY(-100px)}to{-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes animate-top{0%{-webkit-transform:translateY(-100px);transform:translateY(-100px)}to{-webkit-transform:translateY(0);transform:translateY(0)}}.dialog.animate.right{-webkit-animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both;animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both}@-webkit-keyframes animate-right{0%{-webkit-transform:translateX(100%);transform:translate(100%)}to{-webkit-transform:translateX(0);transform:translate(0)}}@keyframes animate-right{0%{-webkit-transform:translateX(100%);transform:translate(100%)}to{-webkit-transform:translateX(0);transform:translate(0)}}.pointer-none{pointer-events:none}\n"],
|
|
2223
2219
|
dependencies: [{
|
|
2224
|
-
kind: "directive",
|
|
2225
|
-
type: i2.NgClass,
|
|
2226
|
-
selector: "[ngClass]",
|
|
2227
|
-
inputs: ["class", "ngClass"]
|
|
2228
|
-
}, {
|
|
2229
2220
|
kind: "directive",
|
|
2230
2221
|
type: InsertionDirective,
|
|
2231
2222
|
selector: "[appInsertion]"
|
|
2232
|
-
}]
|
|
2223
|
+
}],
|
|
2224
|
+
changeDetection: i0.ChangeDetectionStrategy.Eager
|
|
2233
2225
|
});
|
|
2234
2226
|
}
|
|
2235
2227
|
};
|
|
@@ -2243,7 +2235,8 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
2243
2235
|
args: [{
|
|
2244
2236
|
standalone: false,
|
|
2245
2237
|
selector: "app-dialog",
|
|
2246
|
-
|
|
2238
|
+
changeDetection: ChangeDetectionStrategy.Eager,
|
|
2239
|
+
template: "<div\r\n class=\"overlay\"\r\n (click)=\"onOverlayClicked($event)\"\r\n [class.top]=\"position === 'TOP'\"\r\n [class.right]=\"position === 'RIGHT'\"\r\n [class.bottom]=\"position === 'BOTTOM'\"\r\n [class.left]=\"position === 'LEFT'\"\r\n [class.center]=\"position === 'CENTER'\"\r\n [class.black]=\"background === 'black'\"\r\n [class.whiteBlur]=\"background === 'whiteBlur'\"\r\n [class.pointer-none]=\"pointer === 'none'\"\r\n>\r\n <div\r\n class=\"dialog\"\r\n [class.animate]=\"animation\"\r\n (click)=\"onDialogClicked($event)\"\r\n [class.top]=\"position === 'TOP'\"\r\n [class.right]=\"position === 'RIGHT'\"\r\n [class.bottom]=\"position === 'BOTTOM'\"\r\n [class.left]=\"position === 'LEFT'\"\r\n [class.center]=\"position === 'CENTER'\"\r\n >\r\n <ng-template appInsertion></ng-template>\r\n </div>\r\n</div>\r\n",
|
|
2247
2240
|
styles: [".overlay{display:flex;position:fixed;inset:0;align-items:center;justify-content:center;z-index:2147483009!important}.overlay.low{z-index:1}.overlay.black{background:#161b2fcc}.overlay.whiteBlur{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.overlay.top{align-items:flex-start}.overlay.right{justify-content:flex-end}.overlay.bottom{align-items:flex-end}.overlay.left{justify-content:flex-start}.dialog{position:relative}.dialog.animate.top{-webkit-animation:animate-top .2s cubic-bezier(.25,.46,.45,.94) both;animation:animate-top .2s cubic-bezier(.25,.46,.45,.94) both}@-webkit-keyframes animate-top{0%{-webkit-transform:translateY(-100px);transform:translateY(-100px)}to{-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes animate-top{0%{-webkit-transform:translateY(-100px);transform:translateY(-100px)}to{-webkit-transform:translateY(0);transform:translateY(0)}}.dialog.animate.right{-webkit-animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both;animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both}@-webkit-keyframes animate-right{0%{-webkit-transform:translateX(100%);transform:translate(100%)}to{-webkit-transform:translateX(0);transform:translate(0)}}@keyframes animate-right{0%{-webkit-transform:translateX(100%);transform:translate(100%)}to{-webkit-transform:translateX(0);transform:translate(0)}}.pointer-none{pointer-events:none}\n"]
|
|
2248
2241
|
}]
|
|
2249
2242
|
}],
|
|
@@ -2251,7 +2244,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
2251
2244
|
{ type: i0.ChangeDetectorRef },
|
|
2252
2245
|
{ type: DialogRef },
|
|
2253
2246
|
{ type: DialogConfig },
|
|
2254
|
-
{ type: i3.Router }
|
|
2247
|
+
{ type: i3$1.Router }
|
|
2255
2248
|
],
|
|
2256
2249
|
propDecorators: { insertionPoint: [{
|
|
2257
2250
|
type: ViewChild,
|
|
@@ -2431,7 +2424,8 @@ var SessionExpiredComponent = class SessionExpiredComponent {
|
|
|
2431
2424
|
selector: "lib-vc-error-session-expired",
|
|
2432
2425
|
ngImport: i0,
|
|
2433
2426
|
template: ``,
|
|
2434
|
-
isInline: true
|
|
2427
|
+
isInline: true,
|
|
2428
|
+
changeDetection: i0.ChangeDetectionStrategy.Eager
|
|
2435
2429
|
});
|
|
2436
2430
|
}
|
|
2437
2431
|
};
|
|
@@ -2445,6 +2439,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
2445
2439
|
args: [{
|
|
2446
2440
|
standalone: false,
|
|
2447
2441
|
selector: "lib-vc-error-session-expired",
|
|
2442
|
+
changeDetection: ChangeDetectionStrategy.Eager,
|
|
2448
2443
|
template: ``
|
|
2449
2444
|
}]
|
|
2450
2445
|
}],
|
|
@@ -2488,7 +2483,8 @@ var ChunkUnavailableComponent = class ChunkUnavailableComponent {
|
|
|
2488
2483
|
selector: "lib-vc-error-chunk-unavailable",
|
|
2489
2484
|
ngImport: i0,
|
|
2490
2485
|
template: ``,
|
|
2491
|
-
isInline: true
|
|
2486
|
+
isInline: true,
|
|
2487
|
+
changeDetection: i0.ChangeDetectionStrategy.Eager
|
|
2492
2488
|
});
|
|
2493
2489
|
}
|
|
2494
2490
|
};
|
|
@@ -2502,6 +2498,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
2502
2498
|
args: [{
|
|
2503
2499
|
standalone: false,
|
|
2504
2500
|
selector: "lib-vc-error-chunk-unavailable",
|
|
2501
|
+
changeDetection: ChangeDetectionStrategy.Eager,
|
|
2505
2502
|
template: ``
|
|
2506
2503
|
}]
|
|
2507
2504
|
}],
|
|
@@ -2570,7 +2567,7 @@ var ServerErrorComponent = class ServerErrorComponent {
|
|
|
2570
2567
|
styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";.errorPage{background:#161b2f;position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:9999}.errorPage-top{width:100%;height:3rem;display:flex;align-items:center;padding-left:.75rem;cursor:pointer}.errorPage-container{background:#f2f2f5;border-radius:.75rem;border:1px solid #e3e3e9;box-shadow:0 4px 8px #1d5dd31a;height:calc(100vh - 3.75rem);display:flex;align-items:center;justify-content:center;padding:0 4rem;margin:0 .75rem;position:relative}.errorPage-inner{display:flex;align-items:center}.errorPage-inner-image{width:16rem}.errorPage-inner-right{margin-left:2rem;width:calc(100% - 18rem)}.errorPage-inner-right .errorPage-heading{-webkit-text-fill-color:#e3e3e9;-webkit-text-stroke-color:#a9aab6;-webkit-text-stroke-width:1px;color:#e3e3e9;font-size:78px;font-weight:700;line-height:110px;margin-bottom:1.5rem}.errorPage-inner-right .errorPage-text{color:#141724;font-size:19px;font-weight:500;line-height:1.75rem;margin-bottom:.5rem}.errorPage-inner-right .errorPage-details{color:#565a6f;font-size:13px;line-height:20px;margin-bottom:1.75rem}.errorPage-inner-right .errorPage-btn{background:#1e5dd3;border-radius:.25rem;border:none;color:#fff;display:inline-flex;align-items:center;font-size:11px;font-weight:500;line-height:2rem;padding:0 1rem}.errorPage-inner-right .errorPage-btn i{font-size:14px;margin-left:.25rem}.errorPage-copyright{font-size:11px;color:#787a8c;font-weight:500;position:absolute;bottom:8px;right:16px;line-height:16px}\n"],
|
|
2571
2568
|
dependencies: [{
|
|
2572
2569
|
kind: "directive",
|
|
2573
|
-
type:
|
|
2570
|
+
type: i3.NgOptimizedImage,
|
|
2574
2571
|
selector: "img[ngSrc]",
|
|
2575
2572
|
inputs: [
|
|
2576
2573
|
"ngSrc",
|
|
@@ -2589,7 +2586,8 @@ var ServerErrorComponent = class ServerErrorComponent {
|
|
|
2589
2586
|
"src",
|
|
2590
2587
|
"srcset"
|
|
2591
2588
|
]
|
|
2592
|
-
}]
|
|
2589
|
+
}],
|
|
2590
|
+
changeDetection: i0.ChangeDetectionStrategy.Eager
|
|
2593
2591
|
});
|
|
2594
2592
|
}
|
|
2595
2593
|
};
|
|
@@ -2635,6 +2633,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
2635
2633
|
</div>
|
|
2636
2634
|
</div>
|
|
2637
2635
|
`,
|
|
2636
|
+
changeDetection: ChangeDetectionStrategy.Eager,
|
|
2638
2637
|
styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";.errorPage{background:#161b2f;position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:9999}.errorPage-top{width:100%;height:3rem;display:flex;align-items:center;padding-left:.75rem;cursor:pointer}.errorPage-container{background:#f2f2f5;border-radius:.75rem;border:1px solid #e3e3e9;box-shadow:0 4px 8px #1d5dd31a;height:calc(100vh - 3.75rem);display:flex;align-items:center;justify-content:center;padding:0 4rem;margin:0 .75rem;position:relative}.errorPage-inner{display:flex;align-items:center}.errorPage-inner-image{width:16rem}.errorPage-inner-right{margin-left:2rem;width:calc(100% - 18rem)}.errorPage-inner-right .errorPage-heading{-webkit-text-fill-color:#e3e3e9;-webkit-text-stroke-color:#a9aab6;-webkit-text-stroke-width:1px;color:#e3e3e9;font-size:78px;font-weight:700;line-height:110px;margin-bottom:1.5rem}.errorPage-inner-right .errorPage-text{color:#141724;font-size:19px;font-weight:500;line-height:1.75rem;margin-bottom:.5rem}.errorPage-inner-right .errorPage-details{color:#565a6f;font-size:13px;line-height:20px;margin-bottom:1.75rem}.errorPage-inner-right .errorPage-btn{background:#1e5dd3;border-radius:.25rem;border:none;color:#fff;display:inline-flex;align-items:center;font-size:11px;font-weight:500;line-height:2rem;padding:0 1rem}.errorPage-inner-right .errorPage-btn i{font-size:14px;margin-left:.25rem}.errorPage-copyright{font-size:11px;color:#787a8c;font-weight:500;position:absolute;bottom:8px;right:16px;line-height:16px}\n"]
|
|
2639
2638
|
}]
|
|
2640
2639
|
}]
|
|
@@ -2713,7 +2712,7 @@ var VcErrorHandlersComponent = class VcErrorHandlersComponent {
|
|
|
2713
2712
|
}
|
|
2714
2713
|
static {
|
|
2715
2714
|
this.ɵcmp = i0.ɵɵngDeclareComponent({
|
|
2716
|
-
minVersion: "
|
|
2715
|
+
minVersion: "17.0.0",
|
|
2717
2716
|
version: "22.2.3",
|
|
2718
2717
|
type: VcErrorHandlersComponent,
|
|
2719
2718
|
isStandalone: false,
|
|
@@ -2725,28 +2724,26 @@ var VcErrorHandlersComponent = class VcErrorHandlersComponent {
|
|
|
2725
2724
|
ngImport: i0,
|
|
2726
2725
|
template: `
|
|
2727
2726
|
<app-snack-bar></app-snack-bar>
|
|
2728
|
-
|
|
2729
|
-
|
|
2727
|
+
@if (sessionExpired) {
|
|
2728
|
+
<lib-vc-error-session-expired
|
|
2729
|
+
|
|
2730
2730
|
></lib-vc-error-session-expired>
|
|
2731
|
+
}
|
|
2731
2732
|
|
|
2732
|
-
|
|
2733
|
-
|
|
2734
|
-
|
|
2733
|
+
@if (unauthorized) {
|
|
2734
|
+
<lib-vc-error-unauthorized></lib-vc-error-unauthorized>
|
|
2735
|
+
}
|
|
2736
|
+
@if (chunkUnavailable) {
|
|
2737
|
+
<lib-vc-error-chunk-unavailable
|
|
2738
|
+
|
|
2735
2739
|
></lib-vc-error-chunk-unavailable>
|
|
2736
|
-
|
|
2740
|
+
}
|
|
2741
|
+
@if (serverError) {
|
|
2742
|
+
<lib-vc-error-server-error></lib-vc-error-server-error>
|
|
2743
|
+
}
|
|
2737
2744
|
`,
|
|
2738
2745
|
isInline: true,
|
|
2739
2746
|
dependencies: [
|
|
2740
|
-
{
|
|
2741
|
-
kind: "directive",
|
|
2742
|
-
type: i2.NgIf,
|
|
2743
|
-
selector: "[ngIf]",
|
|
2744
|
-
inputs: [
|
|
2745
|
-
"ngIf",
|
|
2746
|
-
"ngIfThen",
|
|
2747
|
-
"ngIfElse"
|
|
2748
|
-
]
|
|
2749
|
-
},
|
|
2750
2747
|
{
|
|
2751
2748
|
kind: "component",
|
|
2752
2749
|
type: SnackBarComponent,
|
|
@@ -2772,7 +2769,8 @@ var VcErrorHandlersComponent = class VcErrorHandlersComponent {
|
|
|
2772
2769
|
type: ServerErrorComponent,
|
|
2773
2770
|
selector: "lib-vc-error-server-error"
|
|
2774
2771
|
}
|
|
2775
|
-
]
|
|
2772
|
+
],
|
|
2773
|
+
changeDetection: i0.ChangeDetectionStrategy.Eager
|
|
2776
2774
|
});
|
|
2777
2775
|
}
|
|
2778
2776
|
};
|
|
@@ -2786,17 +2784,26 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
2786
2784
|
args: [{
|
|
2787
2785
|
standalone: false,
|
|
2788
2786
|
selector: "lib-vc-error-handlers",
|
|
2787
|
+
changeDetection: ChangeDetectionStrategy.Eager,
|
|
2789
2788
|
template: `
|
|
2790
2789
|
<app-snack-bar></app-snack-bar>
|
|
2791
|
-
|
|
2792
|
-
|
|
2790
|
+
@if (sessionExpired) {
|
|
2791
|
+
<lib-vc-error-session-expired
|
|
2792
|
+
|
|
2793
2793
|
></lib-vc-error-session-expired>
|
|
2794
|
+
}
|
|
2794
2795
|
|
|
2795
|
-
|
|
2796
|
-
|
|
2797
|
-
|
|
2796
|
+
@if (unauthorized) {
|
|
2797
|
+
<lib-vc-error-unauthorized></lib-vc-error-unauthorized>
|
|
2798
|
+
}
|
|
2799
|
+
@if (chunkUnavailable) {
|
|
2800
|
+
<lib-vc-error-chunk-unavailable
|
|
2801
|
+
|
|
2798
2802
|
></lib-vc-error-chunk-unavailable>
|
|
2799
|
-
|
|
2803
|
+
}
|
|
2804
|
+
@if (serverError) {
|
|
2805
|
+
<lib-vc-error-server-error></lib-vc-error-server-error>
|
|
2806
|
+
}
|
|
2800
2807
|
`
|
|
2801
2808
|
}]
|
|
2802
2809
|
}],
|
|
@@ -2831,7 +2838,7 @@ var PageNotFoundComponent = class PageNotFoundComponent {
|
|
|
2831
2838
|
version: "22.2.3",
|
|
2832
2839
|
ngImport: i0,
|
|
2833
2840
|
type: PageNotFoundComponent,
|
|
2834
|
-
deps: [{ token: i3.ActivatedRoute }, { token: RouterService }],
|
|
2841
|
+
deps: [{ token: i3$1.ActivatedRoute }, { token: RouterService }],
|
|
2835
2842
|
target: i0.ɵɵFactoryTarget.Component
|
|
2836
2843
|
});
|
|
2837
2844
|
}
|
|
@@ -2893,7 +2900,7 @@ var PageNotFoundComponent = class PageNotFoundComponent {
|
|
|
2893
2900
|
styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";.errorPage{background:#161b2f;position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:9999}.errorPage-top{width:100%;height:3rem;display:flex;align-items:center;padding-left:.75rem;cursor:pointer}.errorPage-container{background:#f2f2f5;border-radius:.75rem;border:1px solid #e3e3e9;box-shadow:0 4px 8px #1d5dd31a;height:calc(100vh - 3.75rem);display:flex;align-items:center;justify-content:center;padding:0 4rem;margin:0 .75rem;position:relative}.errorPage-inner{display:flex;align-items:center}.errorPage-inner-image{width:16rem}.errorPage-inner-right{margin-left:2rem;width:calc(100% - 18rem)}.errorPage-inner-right .errorPage-heading{-webkit-text-fill-color:#e3e3e9;-webkit-text-stroke-color:#a9aab6;-webkit-text-stroke-width:1px;color:#e3e3e9;font-size:78px;font-weight:700;line-height:110px;margin-bottom:1.5rem}.errorPage-inner-right .errorPage-text{color:#141724;font-size:19px;font-weight:500;line-height:1.75rem;margin-bottom:.5rem}.errorPage-inner-right .errorPage-details{color:#565a6f;font-size:13px;line-height:20px;margin-bottom:1.75rem}.errorPage-inner-right .errorPage-btn{background:#1e5dd3;border-radius:.25rem;border:none;color:#fff;display:inline-flex;align-items:center;font-size:11px;font-weight:500;line-height:2rem;padding:0 1rem}.errorPage-inner-right .errorPage-btn i{font-size:14px;margin-left:.25rem}.errorPage-copyright{font-size:11px;color:#787a8c;font-weight:500;position:absolute;bottom:8px;right:16px;line-height:16px}\n"],
|
|
2894
2901
|
dependencies: [{
|
|
2895
2902
|
kind: "directive",
|
|
2896
|
-
type:
|
|
2903
|
+
type: i3.NgOptimizedImage,
|
|
2897
2904
|
selector: "img[ngSrc]",
|
|
2898
2905
|
inputs: [
|
|
2899
2906
|
"ngSrc",
|
|
@@ -2924,7 +2931,8 @@ var PageNotFoundComponent = class PageNotFoundComponent {
|
|
|
2924
2931
|
"showTooltip",
|
|
2925
2932
|
"animate"
|
|
2926
2933
|
]
|
|
2927
|
-
}]
|
|
2934
|
+
}],
|
|
2935
|
+
changeDetection: i0.ChangeDetectionStrategy.Eager
|
|
2928
2936
|
});
|
|
2929
2937
|
}
|
|
2930
2938
|
};
|
|
@@ -2984,10 +2992,11 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
2984
2992
|
</div>
|
|
2985
2993
|
</div>
|
|
2986
2994
|
`,
|
|
2995
|
+
changeDetection: ChangeDetectionStrategy.Eager,
|
|
2987
2996
|
styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";.errorPage{background:#161b2f;position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:9999}.errorPage-top{width:100%;height:3rem;display:flex;align-items:center;padding-left:.75rem;cursor:pointer}.errorPage-container{background:#f2f2f5;border-radius:.75rem;border:1px solid #e3e3e9;box-shadow:0 4px 8px #1d5dd31a;height:calc(100vh - 3.75rem);display:flex;align-items:center;justify-content:center;padding:0 4rem;margin:0 .75rem;position:relative}.errorPage-inner{display:flex;align-items:center}.errorPage-inner-image{width:16rem}.errorPage-inner-right{margin-left:2rem;width:calc(100% - 18rem)}.errorPage-inner-right .errorPage-heading{-webkit-text-fill-color:#e3e3e9;-webkit-text-stroke-color:#a9aab6;-webkit-text-stroke-width:1px;color:#e3e3e9;font-size:78px;font-weight:700;line-height:110px;margin-bottom:1.5rem}.errorPage-inner-right .errorPage-text{color:#141724;font-size:19px;font-weight:500;line-height:1.75rem;margin-bottom:.5rem}.errorPage-inner-right .errorPage-details{color:#565a6f;font-size:13px;line-height:20px;margin-bottom:1.75rem}.errorPage-inner-right .errorPage-btn{background:#1e5dd3;border-radius:.25rem;border:none;color:#fff;display:inline-flex;align-items:center;font-size:11px;font-weight:500;line-height:2rem;padding:0 1rem}.errorPage-inner-right .errorPage-btn i{font-size:14px;margin-left:.25rem}.errorPage-copyright{font-size:11px;color:#787a8c;font-weight:500;position:absolute;bottom:8px;right:16px;line-height:16px}\n"]
|
|
2988
2997
|
}]
|
|
2989
2998
|
}],
|
|
2990
|
-
ctorParameters: () => [{ type: i3.ActivatedRoute }, { type: RouterService }]
|
|
2999
|
+
ctorParameters: () => [{ type: i3$1.ActivatedRoute }, { type: RouterService }]
|
|
2991
3000
|
});
|
|
2992
3001
|
var ComponentLevelServerErrorComponent = class ComponentLevelServerErrorComponent {
|
|
2993
3002
|
constructor() {
|
|
@@ -3041,7 +3050,7 @@ var ComponentLevelServerErrorComponent = class ComponentLevelServerErrorComponen
|
|
|
3041
3050
|
styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";.serverError{background:#fff;display:flex;align-items:center;justify-content:center;border-radius:2px;width:100%;height:100%}.serverError-inner{text-align:center}.serverError-inner-image{width:16rem;margin:0 auto}.serverError-inner-bottom{margin-top:1rem}.serverError-inner-bottom .serverError-heading{-webkit-text-fill-color:#e3e3e9;-webkit-text-stroke-color:#a9aab6;-webkit-text-stroke-width:1px;color:#e3e3e9;font-size:40px;font-weight:700;line-height:56px;margin-bottom:1.5rem}.serverError-inner-bottom .serverError-text{color:#141724;font-size:19px;font-weight:500;line-height:1.75rem;margin-bottom:.5rem}.serverError-inner-bottom .serverError-details{color:#565a6f;font-size:13px;line-height:20px;margin-bottom:2rem}.serverError-inner-bottom .serverError-btn{background:#1e5dd3;border-radius:.25rem;border:none;color:#fff;display:inline-flex;align-items:center;font-size:11px;font-weight:500;line-height:2rem;padding:0 1rem}.serverError-inner-bottom .serverError-btn i{font-size:12px;margin-left:8px}\n"],
|
|
3042
3051
|
dependencies: [{
|
|
3043
3052
|
kind: "directive",
|
|
3044
|
-
type:
|
|
3053
|
+
type: i3.NgOptimizedImage,
|
|
3045
3054
|
selector: "img[ngSrc]",
|
|
3046
3055
|
inputs: [
|
|
3047
3056
|
"ngSrc",
|
|
@@ -3060,7 +3069,8 @@ var ComponentLevelServerErrorComponent = class ComponentLevelServerErrorComponen
|
|
|
3060
3069
|
"src",
|
|
3061
3070
|
"srcset"
|
|
3062
3071
|
]
|
|
3063
|
-
}]
|
|
3072
|
+
}],
|
|
3073
|
+
changeDetection: i0.ChangeDetectionStrategy.Eager
|
|
3064
3074
|
});
|
|
3065
3075
|
}
|
|
3066
3076
|
};
|
|
@@ -3097,6 +3107,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
3097
3107
|
</div>
|
|
3098
3108
|
</div>
|
|
3099
3109
|
`,
|
|
3110
|
+
changeDetection: ChangeDetectionStrategy.Eager,
|
|
3100
3111
|
styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";.serverError{background:#fff;display:flex;align-items:center;justify-content:center;border-radius:2px;width:100%;height:100%}.serverError-inner{text-align:center}.serverError-inner-image{width:16rem;margin:0 auto}.serverError-inner-bottom{margin-top:1rem}.serverError-inner-bottom .serverError-heading{-webkit-text-fill-color:#e3e3e9;-webkit-text-stroke-color:#a9aab6;-webkit-text-stroke-width:1px;color:#e3e3e9;font-size:40px;font-weight:700;line-height:56px;margin-bottom:1.5rem}.serverError-inner-bottom .serverError-text{color:#141724;font-size:19px;font-weight:500;line-height:1.75rem;margin-bottom:.5rem}.serverError-inner-bottom .serverError-details{color:#565a6f;font-size:13px;line-height:20px;margin-bottom:2rem}.serverError-inner-bottom .serverError-btn{background:#1e5dd3;border-radius:.25rem;border:none;color:#fff;display:inline-flex;align-items:center;font-size:11px;font-weight:500;line-height:2rem;padding:0 1rem}.serverError-inner-bottom .serverError-btn i{font-size:12px;margin-left:8px}\n"]
|
|
3101
3112
|
}]
|
|
3102
3113
|
}],
|
|
@@ -3302,11 +3313,9 @@ var SentryErrorHandler = class SentryErrorHandler {
|
|
|
3302
3313
|
const SENTRY_CONFIG = config.sentryConfig;
|
|
3303
3314
|
Sentry.init({
|
|
3304
3315
|
dsn: SENTRY_CONFIG?.DSN,
|
|
3305
|
-
integrations: [
|
|
3306
|
-
tracePropagationTargets: SENTRY_CONFIG.ALLOW_ORIGIN,
|
|
3307
|
-
routingInstrumentation: Sentry.routingInstrumentation
|
|
3308
|
-
})],
|
|
3316
|
+
integrations: [Sentry.browserTracingIntegration(), Sentry.replayIntegration()],
|
|
3309
3317
|
tracesSampleRate: SENTRY_CONFIG.TRACES_SAMPLE_RATE,
|
|
3318
|
+
tracePropagationTargets: SENTRY_CONFIG.ALLOW_ORIGIN,
|
|
3310
3319
|
replaysSessionSampleRate: SENTRY_CONFIG.REPLAY_SESSION_SAMPLE_RATE,
|
|
3311
3320
|
replaysOnErrorSampleRate: SENTRY_CONFIG.REPLAY_ON_ERROR_SAMPLE_RATE
|
|
3312
3321
|
});
|
|
@@ -3328,7 +3337,7 @@ var SentryErrorHandler = class SentryErrorHandler {
|
|
|
3328
3337
|
ngImport: i0,
|
|
3329
3338
|
type: SentryErrorHandler,
|
|
3330
3339
|
deps: [
|
|
3331
|
-
{ token: i2
|
|
3340
|
+
{ token: i2.AuthorizerService },
|
|
3332
3341
|
{ token: GlobalErrorService },
|
|
3333
3342
|
{
|
|
3334
3343
|
token: Configurations,
|
|
@@ -3354,7 +3363,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
3354
3363
|
type: SentryErrorHandler,
|
|
3355
3364
|
decorators: [{ type: Injectable }],
|
|
3356
3365
|
ctorParameters: () => [
|
|
3357
|
-
{ type: i2
|
|
3366
|
+
{ type: i2.AuthorizerService },
|
|
3358
3367
|
{ type: GlobalErrorService },
|
|
3359
3368
|
{
|
|
3360
3369
|
type: Configurations,
|
|
@@ -3415,6 +3424,15 @@ var VcErrorHandlersModule = class VcErrorHandlersModule {
|
|
|
3415
3424
|
provide: ErrorHandler,
|
|
3416
3425
|
useClass: SentryErrorHandler
|
|
3417
3426
|
}];
|
|
3427
|
+
if (environmentConfig.sentryConfig) providers.push({
|
|
3428
|
+
provide: Sentry.TraceService,
|
|
3429
|
+
deps: [Router]
|
|
3430
|
+
}, {
|
|
3431
|
+
provide: APP_INITIALIZER,
|
|
3432
|
+
useFactory: () => () => {},
|
|
3433
|
+
deps: [Sentry.TraceService],
|
|
3434
|
+
multi: true
|
|
3435
|
+
});
|
|
3418
3436
|
if (environmentConfig.isErrorInterceptorEnabled) providers.push({
|
|
3419
3437
|
provide: HTTP_INTERCEPTORS,
|
|
3420
3438
|
useClass: HttpReqInterceptor,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vc-error-handlers.mjs","names":[],"sources":["../../../projects/vc-error-handlers/src/lib/vc-error-handlers.service.ts","../../../projects/vc-error-handlers/src/lib/shared/types/global-error.types.ts","../../../projects/vc-error-handlers/src/lib/shared/constants/api-config.constants.ts","../../../projects/vc-error-handlers/src/lib/shared/constants/exclude-api-config.constants.ts","../../../projects/vc-error-handlers/src/lib/ui-kit/snack-bar/snack-bar.service.ts","../../../projects/vc-error-handlers/src/lib/shared/services/util.service.ts","../../../projects/vc-error-handlers/src/lib/shared/services/global-error.service.ts","../../../projects/vc-error-handlers/src/lib/shared/constants/assets.constants.ts","../../../projects/vc-error-handlers/src/lib/shared/constants/error-handling.constants.ts","../../../projects/vc-error-handlers/src/lib/shared/services/router.service.ts","../../../projects/vc-error-handlers/src/lib/configuration.ts","../../../projects/vc-error-handlers/src/lib/featureFlag/feature-flag.service.ts","../../../projects/vc-error-handlers/src/lib/ui-kit/snack-bar/snack-bar/snack-bar.component.ts","../../../projects/vc-error-handlers/src/lib/ui-kit/snack-bar/snack-bar/snack-bar.component.html","../../../projects/vc-error-handlers/src/lib/ui-kit/tooltip/tooltip.directive.ts","../../../projects/vc-error-handlers/src/lib/shared/components/unauthorized/unauthorized.component.ts","../../../projects/vc-error-handlers/src/lib/ui-kit/dialog/dialog-config.ts","../../../projects/vc-error-handlers/src/lib/shared/components/error-modal/error-modal.component.ts","../../../projects/vc-error-handlers/src/lib/ui-kit/dialog/insertion.directive.ts","../../../projects/vc-error-handlers/src/lib/ui-kit/dialog/dialog-ref.ts","../../../projects/vc-error-handlers/src/lib/ui-kit/dialog/dialog.component.ts","../../../projects/vc-error-handlers/src/lib/ui-kit/dialog/dialog.component.html","../../../projects/vc-error-handlers/src/lib/ui-kit/dialog/dialog.module.ts","../../../projects/vc-error-handlers/src/lib/ui-kit/dialog/dialog-injector.ts","../../../projects/vc-error-handlers/src/lib/ui-kit/dialog/dialog.service.ts","../../../projects/vc-error-handlers/src/lib/shared/components/session-expired/session-expired.component.ts","../../../projects/vc-error-handlers/src/lib/shared/components/chunk-unavailable/chunk-unavailable.component.ts","../../../projects/vc-error-handlers/src/lib/shared/components/server-error/server-error.component.ts","../../../projects/vc-error-handlers/src/lib/vc-error-handlers.component.ts","../../../projects/vc-error-handlers/src/lib/shared/components/page-not-found/page-not-found.component.ts","../../../projects/vc-error-handlers/src/lib/shared/components/component-level-server-error/component-level-server-error.component.ts","../../../projects/vc-error-handlers/src/lib/featureFlag/feature-flag.directive.ts","../../../projects/vc-error-handlers/src/lib/featureFlag/feature-flag.module.ts","../../../projects/vc-error-handlers/src/lib/ui-kit/snack-bar/snack-bar.module.ts","../../../projects/vc-error-handlers/src/lib/ui-kit/tooltip/tooltip.module.ts","../../../projects/vc-error-handlers/src/lib/shared/errorhandler/sentry-error.handler.ts","../../../projects/vc-error-handlers/src/lib/shared/interceptors/http.interceptor.ts","../../../projects/vc-error-handlers/src/lib/vc-error-handlers.module.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class VcErrorHandlersService {\r\n\r\n constructor() { }\r\n}\r\n","import { MODAL_ERROR_TYPES } from '../constants/error-handling.constants';\r\n\r\nexport interface DialogData {\r\n heading: string;\r\n description: string;\r\n buttonText: string;\r\n}\r\n\r\nexport interface RequestDetails {\r\n method: string;\r\n path: string;\r\n query: { [key: string]: any };\r\n body: any;\r\n pageCode?: string;\r\n}\r\n\r\nexport enum ErrorStatusCode {\r\n URLNotFound = 404,\r\n UnauthorizedAccess = 403,\r\n Unauthenticated = 401,\r\n\r\n // Server-side errors\r\n InternalServerError = 500,\r\n ServiceUnavailable = 503,\r\n BadGateway = 502,\r\n RequestTimeout = 504,\r\n\r\n // Network unavailability/offline case\r\n NetworkUnavailable = 0,\r\n\r\n // Application-specific errors\r\n JSChunkUnavailable = 600,\r\n}\r\n\r\nexport type ModalErrorType = keyof typeof MODAL_ERROR_TYPES;\r\n","export const PAGE_LEVEL_API_CONFIG = [\r\n {\r\n method: 'GET',\r\n path: 'compliance/?mode=reports/getReportDetailsByDuedateId',\r\n query: null,\r\n body: null,\r\n pageCodes: ['SAP'],\r\n },\r\n {\r\n method: 'GET',\r\n path: 'compliance/?mode=reports/reportDetailsById',\r\n query: null,\r\n body: null,\r\n pageCodes: ['SAP'],\r\n },\r\n \r\n];\r\n\r\nexport const COMPONENT_LEVEL_API_CONFIG = [\r\n {\r\n method: 'GET',\r\n path: '/organization/?mode=organisationUsersList',\r\n query: { type: 'active' },\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/organization/?mode=organisationUsersList',\r\n query: { type: 'power_users' },\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/organization/?mode=organisationUsersList',\r\n query: { type: 'light_users' },\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/organization/?mode=organisationUsersList',\r\n query: { type: 'inactive' },\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/organization/?mode=organisationUsersList',\r\n query: { type: 'power_users_small' },\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/Global-Dashboard/ManageDashboards',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/Global-Dashboard/MyDashboard',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'grc_object/?mode=grc/getGRCList&state=1&grcType=0',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'grc_object/?mode=grc/getGRCList&state=1&grcType=1',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'grc_object/?mode=grc/getGRCList&state=1&grcType=2',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'grc_object/?mode=grc/getGRCList&state=1&grcType=3',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/compliance/?mode=responsibilityCenterTree',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/organization/?mode=rcholidaylist',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/organization/?mode=roles/getRoles',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/organization/?mode=groupsList',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: '/compliance_post/?mode=rcProfile',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: '/organization_post/?mode=userProfile',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/organization/?mode=roles/roleById',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/organization/?mode=groupDetails',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: '/compliance_post?mode=report/list',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/organization/?mode=memberholidaylist',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/grc_object/?mode=activity/activityLogList',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/grc_object/?mode=activity/viewList',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/program/categoriesList?owner_list=1',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: '/risk/?mode=category/list',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'memberDetailsbyIds',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/organization?mode=signatureDetails',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/program/responsibilityList',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/program/getLinkedPolicies',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'risk/list',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/program/assignee',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/program/evidence/getEvidences/b-cycle-header',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/program/activity-logs',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/program/activity-logs-views',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: '/Assessment/?mode=category/list',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: '/Assessment/?mode=assessment/list',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/Assessment/?mode=assessment/fetchQuestionsByAssessmentId',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: '/Assessment/?mode=assessment/responseSummary',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/Assessment/?mode=assessment/individualResponse',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/Assessment/?mode=assessment/logs',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/program/subCategories',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: '/Assessment/?mode=assessment/getAssessmentById',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/to_do_responsibilities/responsibilities/my/dueToday',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/to_do_responsibilities/responsibilities/reviewing/dueToday',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/to_do_responsibilities/responsibilities/managing/dueToday',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/to_do_responsibilities/responsibilities/my/overdue',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/to_do_responsibilities/responsibilities/reviewing/overdue',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/to_do_responsibilities/responsibilities/managing/overdue',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/to_do_responsibilities/responsibilities/my/upcoming',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/to_do_responsibilities/responsibilities/reviewing/upcoming',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/to_do_responsibilities/responsibilities/managing/upcoming',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'risk/ListingReportedRisks',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'risk/myAssessments&type',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'workshop/list',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'risk/DueDateList',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'risk/RiskDetailsById',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'score/assessment',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'score/treatment',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'score/treatmentPlan',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'category/list&returnType',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'risk/list&return_list',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'risk/GetDiscussionById',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'workroom/getFilesAndFoldersList',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'responsibilityCenter/rcList',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'program/overview?owner_list=1',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'calendarDashboardReports',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'compliance_post/?mode=myResponsibility',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'compliance_post/?mode=auditList',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'compliance_post/?mode=oversightResponsibility/list',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'complianceReport/getTrendReport',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'workroomUpdates',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'recentActivities_new',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'program/subCategories',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/program/responsibilityList/',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: '/policy_post/?mode=dashboard/statusOverview',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/policy/?mode=category/listForPortal&type=dashboard',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/policy/?mode=announcements/listAll',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/policy/?mode=announcements/list',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: '/policy_post/?mode=dashboard/overdue/attestation',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: '/policy_post/?mode=dashboard/overdue/review',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/policy/?mode=dashboard/calendar&date',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'policy/?mode=dashboard/dueForAttestation/dueToday',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/policy/?mode=dashboard/dueForAttestation/overdue',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'policy/?mode=dashboard/dueForAttestation/upcoming',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'policy/?mode=dashboard/dueForAttestation/all',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'Assurance/Issue/Category/CatList',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'Assurance/Issue/MyIssues/',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'Assurance/Issue/Overview/',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'Assurance/Issue/Overseeing/',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'Assurance/Issue/Workroom/',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'Assurance/Issue/GetIssueDueDates/',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/Assurance/Workroom/Issue/FilesAndFolders/',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'Assurance/Workroom/Issue/ActivitiesViewLog/',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/Assurance/ActivityLog/IssueLog/',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'Assurance/Workroom/Issue/IssueDuedateListForTimeline',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'Assurance/Issue/ListByCategoryIdRC/',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'Assurance/Issue/Category/IssueCategoryOverview_RC/',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'Assurance/Issue/DashboardCalendar',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/Assurance/Issue/Priority',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'Assurance/Issue/ByAssessments',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'Assurance/Issue/ByReportId',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'risk_dashboard/heatmap',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'risk_dashboard/risk_category_overview',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'risk_dashboard/risk_score_by_rc',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'risk_dashboard/scorebycategory',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'risk_dashboard/list',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'dashboard/missedResponsibilities',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: '/responsibilities_post?mode=responsibilities_overseeing',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'responsibilities_in_trash',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'userReportsList',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'reviewerReportsList',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'riskAnalysis',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'responsibilitiesByUserId',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'responsibilitiesByReviewerId',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'responsibilityByRisk',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'responsibilityByRCId',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'compliance_post/?mode=complianceDueDate',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'compliance_post/?mode=workroomComment/getWorkroomActivities',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'compliance_post/?mode=fetchActivityLog',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'compliance_post/?mode=ListActivityView',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'reviewer/ReviewerDuedateList',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'compliance_post/?mode=complianceReport/dependentOfReportTree',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'manage_responsibilities',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'my_responsibilities',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'review_responsibilities',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'responsibilities_overseeing',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'responsibilities_in_queue',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'compliance/?mode=workroomComment/getWorkroomActivities',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'compliance/?mode=reports/responseByAssessmentAndDueDateId',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'Assessment/?mode=assessment/allAuditee',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'policy/?mode=attachment/getAttachmentsByCategory',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'policy/?mode=category/categoryByRoles&type=all',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'policy/?mode=policy/portalList',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'policy/?mode=comment/list',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: '/policy_post/?mode=folder/documents',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'policy/?mode=policy/audittraillist',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'library/?mode=version/list',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'Assessment?mode=assessment/getAssessmentById',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'policy/?mode=policy/allEmpoyeesWithDueDates',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'policy/?mode=policy/allDuedatesWithEmployee',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'policy/?mode=policy/list',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'fetchContent',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'policy/?mode=default/getDefaultCategories',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'policy_post/?mode=templates/list',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'policy/?mode=category/userCreated',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'policy/?mode=templates/detailsById',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'fetchTemplateContent',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'policy_post/?mode=approvalworkflow/fetchall',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'policy/?mode=policy/reviewerPolicies',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'policy/?mode=policy/reviewPendingByOthers',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'calendar_post?mode=manage_responsibilities',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'calendar_post?mode=entrusted_by_me&date',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'calendar_post?mode=my_responsibilities',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'calendar_post?mode=responsibilities_reviewing',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'calendar_post?mode=responsibilities_overseeing',\r\n query: null,\r\n body: null,\r\n },\r\n];\r\n","export const EXCLUDE_API_CONFIG = [\r\n {\r\n method: 'GET',\r\n path: 'organization/?mode=groupsList',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'policy/?mode=policy/audittraillist',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'policy/?mode=policy/list',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'grc_object/?mode=grc/getGRCList',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'policy_post/?mode=approvalworkflow/fetchall',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'policy_post/?mode=announcements/delete',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'PUT',\r\n path: 'policy_put/?mode=policy/update',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n \r\n method: 'POST',\r\n path: 'fileupload/?destination=uploads',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: '/ImportDocument',\r\n query: null,\r\n body: null,\r\n },\r\n\r\n];\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SnackBarService {\r\n public snackbarSubject = new Subject <any>();\r\n public snackbarState = this.snackbarSubject.asObservable();\r\n constructor() {}\r\n\r\n show(message: string, type?:'success'|'warning'|'info'|'alert'|'error') {\r\n this.snackbarSubject.next({\r\n show: true,\r\n message,\r\n icon:type,\r\n });\r\n }\r\n\r\n hide(){\r\n this.snackbarSubject.next({\r\n show: false,\r\n message: '',\r\n icon: '',\r\n });\r\n }\r\n}\r\n","import { HttpParams } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class UtilsService {\r\n private isJsonSubset(parentJson: any, subsetJson: any): boolean {\r\n for (let key in subsetJson) {\r\n if (\r\n !parentJson.hasOwnProperty(key) ||\r\n parentJson[key] !== subsetJson[key]\r\n ) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n public extractQueryParams(params: HttpParams): { [key: string]: any } {\r\n const query: { [key: string]: any } = {};\r\n params.keys().forEach((key) => {\r\n query[key] = params.get(key);\r\n });\r\n return query;\r\n }\r\n\r\n public isStringEqual(apiMethod: string, requestMethod: string): boolean {\r\n return apiMethod === requestMethod;\r\n }\r\n\r\n public isSubstringInString(apiPath: string, requestPath: string): boolean {\r\n return requestPath.includes(apiPath);\r\n }\r\n\r\n public isSubsetOfObject(apiQuery: any, requestQuery: any): boolean {\r\n if (!apiQuery) return true;\r\n return this.isJsonSubset(requestQuery, apiQuery);\r\n }\r\n\r\n public isSubsetOfArray(apiBody: any, requestBody: any): boolean {\r\n if (!apiBody) return true;\r\n return this.isJsonSubset(apiBody, requestBody);\r\n }\r\n\r\n public isValueInArray(apiPageCodes: string[], pageCode: string): boolean {\r\n return apiPageCodes.includes(pageCode);\r\n }\r\n}\r\n","import {\r\n HttpErrorResponse,\r\n HttpRequest,\r\n HttpResponse,\r\n} from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Subject } from 'rxjs';\r\n\r\nimport { SnackBarService } from '../../ui-kit/snack-bar/snack-bar.service';\r\nimport { UtilsService } from './util.service';\r\n\r\nimport { ErrorStatusCode, RequestDetails } from '../types/global-error.types';\r\nimport {\r\n PAGE_LEVEL_API_CONFIG,\r\n COMPONENT_LEVEL_API_CONFIG,\r\n} from '../constants/api-config.constants';\r\n\r\nimport { EXCLUDE_API_CONFIG } from '../constants/exclude-api-config.constants';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class GlobalErrorService {\r\n public globalError$: Subject<any> = new Subject();\r\n public localError$: Subject<any> = new Subject();\r\n\r\n private pageLevelApiConfig = PAGE_LEVEL_API_CONFIG;\r\n private componentLevelApiConfig = COMPONENT_LEVEL_API_CONFIG;\r\n private excludeApiConfig = EXCLUDE_API_CONFIG;\r\n\r\n constructor(\r\n private snackBarService: SnackBarService,\r\n private utilService: UtilsService,\r\n private router: Router\r\n ) {}\r\n\r\n public handleSoftErrors(event: HttpResponse<any> | HttpErrorResponse) {\r\n if (!(event instanceof HttpResponse)) {\r\n return;\r\n }\r\n\r\n const responseBody = event?.body;\r\n const success = responseBody?.success;\r\n const message = responseBody?.message;\r\n const statusCode = event?.status;\r\n \r\n if (success === false && statusCode && statusCode !== 0) {\r\n this.snackBarService.show(message || 'Error occurred', 'alert');\r\n }\r\n }\r\n\r\n public handleError(error: HttpErrorResponse, request: HttpRequest<any>) {\r\n if (\r\n this.isUnauthenticated(error) ||\r\n this.isUnauthorizedAccess(error) ||\r\n this.isNetworkUnavailable(error)\r\n ) {\r\n this.publishGlobalError(error);\r\n } else if (this.isServerError(error)) {\r\n this.handleServerError(error, request);\r\n } else {\r\n this.handleSoftErrors(error);\r\n }\r\n }\r\n\r\n public isServerError(error: HttpErrorResponse): boolean {\r\n const serverErrorCodes = [\r\n ErrorStatusCode.InternalServerError,\r\n ErrorStatusCode.ServiceUnavailable,\r\n ErrorStatusCode.BadGateway,\r\n ErrorStatusCode.RequestTimeout,\r\n ];\r\n\r\n return serverErrorCodes.includes(error.status);\r\n }\r\n\r\n public isExcludeErrorHandling(request: HttpRequest<any>): boolean {\r\n const requestDetails: RequestDetails = {\r\n method: request.method,\r\n path: request.url,\r\n query: this.utilService.extractQueryParams(request.params),\r\n body: request.body,\r\n };\r\n\r\n return this.excludeApiConfig.some((apiConfig) =>\r\n this.isApiConfigMatching(apiConfig, requestDetails)\r\n );\r\n }\r\n\r\n private isUnauthenticated(error: HttpErrorResponse): boolean {\r\n return error.status === ErrorStatusCode.Unauthenticated;\r\n }\r\n\r\n private isUnauthorizedAccess(error: HttpErrorResponse): boolean {\r\n return error.status === ErrorStatusCode.UnauthorizedAccess;\r\n }\r\n\r\n private isNetworkUnavailable(error: HttpErrorResponse): boolean {\r\n return error.status === ErrorStatusCode.NetworkUnavailable;\r\n }\r\n\r\n private handleServerError(\r\n error: HttpErrorResponse,\r\n request: HttpRequest<any>\r\n ) {\r\n if (this.isPageLevelError(error, request)) {\r\n this.publishGlobalError(error);\r\n } else if (this.isComponentLevelError(error, request)) {\r\n this.publishLocalError(error, request);\r\n }\r\n }\r\n\r\n private publishGlobalError(error: HttpErrorResponse) {\r\n this.globalError$.next(error);\r\n }\r\n\r\n private publishLocalError(\r\n error: HttpErrorResponse,\r\n request: HttpRequest<any>\r\n ) {\r\n this.localError$.next({ error, request });\r\n }\r\n\r\n private isPageLevelError(\r\n error: HttpErrorResponse,\r\n request: HttpRequest<any>\r\n ): boolean {\r\n const requestDetails: RequestDetails = {\r\n method: request.method,\r\n path: request.url,\r\n query: this.utilService.extractQueryParams(request.params),\r\n body: request.body,\r\n pageCode: this.getPageCode(),\r\n };\r\n\r\n return this.pageLevelApiConfig.some((apiConfig) =>\r\n this.isApiConfigMatching(apiConfig, requestDetails)\r\n );\r\n }\r\n\r\n private isComponentLevelError(\r\n error: HttpErrorResponse,\r\n request: HttpRequest<any>\r\n ): boolean {\r\n const requestDetails: RequestDetails = {\r\n method: request.method,\r\n path: request.url,\r\n query: this.utilService.extractQueryParams(request.params),\r\n body: request.body,\r\n };\r\n\r\n return this.componentLevelApiConfig.some((apiConfig) =>\r\n this.isApiConfigMatching(apiConfig, requestDetails)\r\n );\r\n }\r\n\r\n private getPageCode() {\r\n const currentRoute = this.router.routerState.snapshot.root.firstChild;\r\n return currentRoute?.data['page_path'];\r\n }\r\n\r\n private isApiConfigMatching(\r\n apiConfig: any,\r\n requestDetails: RequestDetails\r\n ): boolean {\r\n return (\r\n this.utilService.isStringEqual(apiConfig.method, requestDetails.method) &&\r\n this.utilService.isSubstringInString(\r\n apiConfig.path,\r\n requestDetails.path\r\n ) &&\r\n this.utilService.isSubsetOfObject(\r\n apiConfig.query,\r\n requestDetails.query\r\n ) &&\r\n this.utilService.isSubsetOfArray(apiConfig.body, requestDetails.body) &&\r\n (!apiConfig.pageCodes ||\r\n this.utilService.isValueInArray(\r\n apiConfig.pageCodes,\r\n requestDetails.pageCode || ''\r\n ))\r\n );\r\n }\r\n}\r\n","const BASE_URL = 'https://cdn.v-comply.com';\r\n\r\nexport const ASSETS = {\r\n VCOMPLY_LOGO: `${BASE_URL}/logo/prod/v-logo.svg`,\r\n ERROR_IMAGE: `${BASE_URL}/application/images/Error-page-illustration.svg`,\r\n COMPONENT_ERROR_IMAGE: `${BASE_URL}/application/images/sad-emoji-icon.svg`,\r\n};\r\n","import { ASSETS } from './assets.constants';\r\n\r\nexport const VCOMPLY_LOGO_URL = ASSETS.VCOMPLY_LOGO;\r\nexport const API_TIMEOUT_TIME = 1000 * 15;\r\nexport const ORGANISATION_NAME = 'VCOMPLY TECHNOLOGIES, INC.';\r\nexport const ERROR_FEATURE_FLAG = 'ff_error_handling';\r\n\r\nexport const ERROR_CONFIG = {\r\n PAGE_NOT_FOUND: {\r\n imageUrl: ASSETS.ERROR_IMAGE,\r\n title: 'Oops!',\r\n description: \"The page you're looking for doesn't exist.\",\r\n details: 'Please check the URL or return to the homepage.',\r\n buttonText: 'GO TO DASHBOARD',\r\n },\r\n\r\n UNAUTHORIZED: {\r\n imageUrl: ASSETS.ERROR_IMAGE,\r\n title: 'Oops!',\r\n description: \"You don't have permission to access this page.\",\r\n details: 'If you believe this is an error, please contact',\r\n email: 'help@v-comply.com',\r\n support: 'for support',\r\n buttonText: 'Go To Dashboard',\r\n mail: 'mailto:help@v-comply.com',\r\n },\r\n\r\n SESSION_EXPIRED: {\r\n heading: 'Session Expired!',\r\n description:\r\n 'Your session has expired. Please log in again to continue using the app.',\r\n buttonText: 'LOGIN',\r\n },\r\n\r\n CHUNK_UNAVAILABLE: {\r\n heading: 'Oops!',\r\n description:\r\n 'Something went wrong. Please refresh the page or try again later.',\r\n buttonText: 'REFRESH',\r\n },\r\n\r\n SERVER_ERROR: {\r\n imageUrl: ASSETS.ERROR_IMAGE,\r\n title: 'Oops!',\r\n description: 'We are unable to load the data.',\r\n details: 'Please refresh this page or try again later.',\r\n buttonText: 'REFRESH',\r\n snackBarMessage: `Oops! Something went wrong. Please try again later.`,\r\n },\r\n\r\n COMPONENT_LEVEL_SERVER_ERROR: {\r\n imageUrl: ASSETS.COMPONENT_ERROR_IMAGE,\r\n title: 'Oops!',\r\n description: 'We are unable to load the data.',\r\n details: 'Please refresh this section or try again later.',\r\n buttonText: 'RETRY',\r\n },\r\n\r\n NETWORK_UNAVAILABLE: {\r\n offlineMessage:\r\n \"You're currently offline. Please check your internet connection and try again.\",\r\n },\r\n};\r\n\r\nexport const REDIRECTION_URL = {\r\n COMPLIANCE_DASHBOARD: '/global-dashboard/compliance_dashboard',\r\n RISK_DASHBOARD: '/global-dashboard/risk_dashboard?module=risk',\r\n POLICY_DASHBOARD: '/global-dashboard/policy_dashboard?module=policy',\r\n ISSUE_DASHBOARD: '/global-dashboard/issue_dashboard?module=issue',\r\n CASEOPS_DASHBOARD: '/global-dashboard/case_dashboard?module=caseops',\r\n DEFAULT: '/global-dashboard',\r\n};\r\n\r\nexport const MODULE_NAMES = {\r\n RISK: 'risk',\r\n POLICY: 'policy',\r\n ISSUE: 'issue',\r\n CASEOPS: 'caseops',\r\n};\r\n\r\nexport const MODAL_ERROR_TYPES = {\r\n CHUNK_NOT_FOUND: 'chunk_not_found',\r\n SESSION_EXPIRED: 'session_expired',\r\n};\r\n\r\nexport const ALT_IMAGE_TEXT = {\r\n ERROR_IMAGE: 'Error Image',\r\n VCOMPLY_LOGO: 'VComply',\r\n};\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport {\r\n MODULE_NAMES,\r\n REDIRECTION_URL,\r\n} from '../constants/error-handling.constants';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class RouterService {\r\n public baseUrl: string = '';\r\n\r\n constructor() {\r\n this.setBaseUrl();\r\n }\r\n\r\n private setBaseUrl() {\r\n this.baseUrl = window.location.origin;\r\n }\r\n\r\n public redirectToLogin() {\r\n window.location.href =\r\n `https://${window.location.host}/` +\r\n 'signin?redirectURL=' +\r\n encodeURIComponent(window.location.href);\r\n }\r\n\r\n public redirectToHome(module_name: string) {\r\n let targetPath = REDIRECTION_URL.COMPLIANCE_DASHBOARD;\r\n\r\n switch (module_name) {\r\n case MODULE_NAMES.RISK:\r\n targetPath = REDIRECTION_URL.RISK_DASHBOARD;\r\n break;\r\n case MODULE_NAMES.POLICY:\r\n targetPath = REDIRECTION_URL.POLICY_DASHBOARD;\r\n break;\r\n case MODULE_NAMES.ISSUE:\r\n targetPath = REDIRECTION_URL.ISSUE_DASHBOARD;\r\n break;\r\n case MODULE_NAMES.CASEOPS:\r\n targetPath = REDIRECTION_URL.CASEOPS_DASHBOARD;\r\n break;\r\n default:\r\n targetPath = REDIRECTION_URL.COMPLIANCE_DASHBOARD;\r\n break;\r\n }\r\n\r\n window.location.replace(targetPath);\r\n }\r\n}\r\n","export class Configurations {\r\n public sentryConfig: any;\r\n public envConfig: any;\r\n public isErrorInterceptorEnabled?: boolean; \r\n\r\n constructor() {\r\n this.sentryConfig = {};\r\n this.envConfig = {};\r\n this.isErrorInterceptorEnabled = false;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable, Optional } from '@angular/core';\r\nimport { retry } from 'rxjs/operators';\r\nimport { AuthorizerService } from '@vcomply/authorizer';\r\nimport { Subscription } from 'rxjs';\r\nimport { Configurations } from '../configuration';\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class FeatureFlagService {\r\n environment!: any;\r\n flagFetchError = false;\r\n featuresMap: any = {};\r\n AWSFlags: any = {};\r\n flagSubscription!: Subscription;\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private authorizer: AuthorizerService,\r\n @Optional() config?: Configurations\r\n ) {\r\n this.environment = config?.envConfig;\r\n }\r\n\r\n fetchFlags() {\r\n return this.http.get(this.environment.baseUrl + 'features').pipe(retry(2));\r\n }\r\n\r\n loadConfig() {\r\n if (this.flagSubscription) {\r\n this.flagSubscription.unsubscribe();\r\n }\r\n return new Promise((resolve, reject) => {\r\n this.flagSubscription = this.fetchFlags().subscribe({\r\n next: (res: any) => {\r\n try {\r\n resolve(true);\r\n this.flagFetchError = false;\r\n this.AWSFlags = res;\r\n this.buildFeatureFlags(this.authorizer.getOrganizationId());\r\n } catch (error) {\r\n reject(error);\r\n }\r\n },\r\n error: (err: any) => {\r\n reject(\r\n new Error(\r\n err?.message || 'An error occurred while fetching feature flags'\r\n )\r\n );\r\n this.flagFetchError = true;\r\n console.error('An error occurred while fetching feature flags', err);\r\n },\r\n });\r\n });\r\n }\r\n\r\n buildFeatureFlags(orgId: any) {\r\n orgId = orgId?.toString();\r\n const enabledFeatures: any = {};\r\n Object.keys(this.AWSFlags).forEach((flag: string) => {\r\n const flagObj = this.AWSFlags[flag];\r\n enabledFeatures[flag] = false;\r\n if (flagObj) {\r\n if (flagObj?.enabled && !flagObj.hasOwnProperty('enabledOrgIds')) {\r\n enabledFeatures[flag] = true;\r\n } else if (\r\n flagObj?.enabled &&\r\n flagObj.hasOwnProperty('enabledOrgIds') &&\r\n flagObj?.enabledOrgIds?.length > 0\r\n ) {\r\n if (flagObj?.enabledOrgIds?.includes(orgId)) {\r\n enabledFeatures[flag] = true;\r\n } else {\r\n enabledFeatures[flag] = false;\r\n }\r\n } else {\r\n if (flagObj?.enabled) {\r\n enabledFeatures[flag] = true;\r\n } else {\r\n enabledFeatures[flag] = false;\r\n }\r\n }\r\n } else {\r\n enabledFeatures[flag] = true;\r\n }\r\n });\r\n this.featuresMap = enabledFeatures;\r\n }\r\n\r\n isFeatureEnabled(featureFlag: string) {\r\n if (this.featuresMap.hasOwnProperty(featureFlag)) {\r\n return this.featuresMap[featureFlag];\r\n } else {\r\n return true;\r\n }\r\n }\r\n}\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { SnackBarService } from '../snack-bar.service';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'app-snack-bar',\r\n templateUrl: './snack-bar.component.html',\r\n styleUrls: ['./snack-bar.component.less'],\r\n})\r\nexport class SnackBarComponent implements OnInit, OnDestroy {\r\n show = false;\r\n message = '--';\r\n icon = '';\r\n type = 'alert';\r\n icons: any = {\r\n success: '',\r\n warning: '',\r\n info: '',\r\n alert: '',\r\n error: '',\r\n };\r\n snackbarSubscription!: Subscription;\r\n constructor(private snackbarService: SnackBarService) {}\r\n\r\n ngOnInit(): void {\r\n this.snackbarSubscription = this.snackbarService.snackbarState.subscribe(\r\n (state) => {\r\n if (state.icon && Object.keys(this.icons).includes(state?.icon)) {\r\n this.icon = this.icons[state.icon];\r\n this.type = state?.icon;\r\n }\r\n this.message = state.message;\r\n this.show = state.show;\r\n }\r\n );\r\n }\r\n\r\n setAutoClose() {\r\n setTimeout(() => {\r\n this.show = false;\r\n this.close();\r\n }, 3000);\r\n }\r\n close() {\r\n this.show = false;\r\n this.snackbarService.hide();\r\n }\r\n ngOnDestroy() {\r\n this.snackbarSubscription.unsubscribe();\r\n }\r\n}\r\n","<div class=\"workflow-snackbar\" *ngIf=\"show\">\r\n <div class=\"workflow-snackbar-inner\">\r\n <div class=\"workflow-snackbarText\">\r\n <!--  -->\r\n <i class=\"icons\" [class]=\"type\" [innerHTML]=\"icon\"></i> <span [innerHTML]=\"message\">{{ message }}</span>\r\n </div>\r\n <button (click)=\"close()\">[ <span>Close</span> ]</button>\r\n </div>\r\n </div>","import {\r\n Directive,\r\n Input,\r\n ElementRef,\r\n HostListener,\r\n Renderer2,\r\n OnInit, \r\n} from '@angular/core';\r\n\r\n@Directive({\r\n standalone: false,\r\n selector: '[arTooltip]',\r\n})\r\nexport class ToolTipDirective implements OnInit {\r\n @Input('arTooltip') tooltipTitle!: string;\r\n @Input() placement!: string;\r\n @Input() type: any;\r\n @Input() tooltipMandatory!: boolean;\r\n @Input() showTooltip = true;\r\n @Input() animate!: boolean;\r\n tooltip!: HTMLElement;\r\n offset = 8;\r\n\r\n constructor(private el: ElementRef, private renderer: Renderer2) {}\r\n ngOnInit() {}\r\n @HostListener('mouseenter') onMouseEnter() {\r\n this.hide();\r\n this.show();\r\n }\r\n @HostListener('mouseover') onMouseOver() {\r\n this.hide();\r\n this.show();\r\n }\r\n\r\n @HostListener('mouseleave') onMouseLeave() {\r\n this.hide();\r\n }\r\n @HostListener('mouseout') onMouseOut() {\r\n this.hide();\r\n }\r\n @HostListener('click') onClick() {\r\n this.hide();\r\n }\r\n show() {\r\n if (!this.showTooltip) {\r\n return;\r\n }\r\n this.create();\r\n const element = this.el.nativeElement;\r\n if (this.tooltipMandatory === true) {\r\n this.setPosition();\r\n this.renderer.addClass(this.tooltip, 'fl-tooltip-show');\r\n } else {\r\n if (\r\n element.scrollWidth * element.scrollHeight >\r\n element.offsetWidth * element.offsetHeight\r\n ) {\r\n this.setPosition();\r\n this.renderer.addClass(this.tooltip, 'fl-tooltip-show');\r\n }\r\n }\r\n }\r\n\r\n hide() {\r\n if (document.body.contains(this.tooltip)) {\r\n if (this.renderer) {\r\n this.renderer.removeChild(\r\n document.body,\r\n document.getElementById('tooltip')\r\n );\r\n }\r\n }\r\n }\r\n\r\n create() {\r\n this.tooltip = this.renderer.createElement('span');\r\n this.tooltip.setAttribute('id', 'tooltip');\r\n this.tooltip.innerHTML = this.tooltipTitle;\r\n this.renderer.appendChild(document.body, this.tooltip);\r\n this.renderer.addClass(this.tooltip, 'fl-tooltip');\r\n this.renderer.addClass(this.tooltip, `fl-tooltip-${this.placement}`);\r\n this.renderer.addClass(this.tooltip, `${this.type}`);\r\n if (this.animate) {\r\n this.renderer.addClass(this.tooltip, `animate-${this.placement}`);\r\n }\r\n }\r\n\r\n setPosition() {\r\n const hostPos = this.el.nativeElement.getBoundingClientRect();\r\n const tooltipPos = this.tooltip.getBoundingClientRect();\r\n const scrollPos =\r\n window.pageYOffset ||\r\n document.documentElement.scrollTop ||\r\n document.body.scrollTop ||\r\n 0;\r\n const w = window.innerWidth;\r\n const h = window.innerHeight;\r\n let top;\r\n let left;\r\n if (this.placement === 'top') {\r\n top = hostPos.top - tooltipPos.height - this.offset;\r\n left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\r\n }\r\n\r\n if (this.placement === 'bottom') {\r\n if (hostPos.top + tooltipPos.height > h) {\r\n top = hostPos.top - tooltipPos.height;\r\n left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\r\n this.renderer.removeClass(this.tooltip, `fl-tooltip-bottom`);\r\n this.renderer.addClass(this.tooltip, `fl-tooltip-top`);\r\n } else {\r\n top = hostPos.bottom + this.offset;\r\n left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\r\n }\r\n }\r\n\r\n if (this.placement === 'left') {\r\n top = hostPos.top + (hostPos.height - tooltipPos.height) / 2;\r\n left = hostPos.left - tooltipPos.width - this.offset;\r\n }\r\n\r\n if (this.placement === 'right') {\r\n top = hostPos.top + (hostPos.height - tooltipPos.height) / 2;\r\n left = hostPos.right + this.offset;\r\n }\r\n if (this.placement === 'bottom-right') {\r\n top = hostPos.bottom + this.offset;\r\n left = hostPos.left - (tooltipPos.width - 28);\r\n }\r\n if (this.placement === 'bottom-left') {\r\n if (hostPos.top + tooltipPos.height > h - 30) {\r\n top = hostPos.top - tooltipPos.height;\r\n left = hostPos.left;\r\n this.renderer.removeClass(this.tooltip, `fl-tooltip-bottom-left`);\r\n this.renderer.addClass(this.tooltip, `fl-tooltip-top-left`);\r\n } else {\r\n top = hostPos.bottom + this.offset;\r\n left = hostPos.left;\r\n }\r\n }\r\n this.renderer.setStyle(this.tooltip, 'top', `${top + scrollPos}px`);\r\n this.renderer.setStyle(this.tooltip, 'left', `${left}px`);\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\nimport {\r\n ERROR_CONFIG,\r\n VCOMPLY_LOGO_URL,\r\n ORGANISATION_NAME,\r\n ALT_IMAGE_TEXT,\r\n REDIRECTION_URL,\r\n} from '../../constants/error-handling.constants';\r\n\r\nimport { RouterService } from '../../services/router.service';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'lib-vc-error-unauthorized',\r\n template: `\r\n <div class=\"errorPage\">\r\n <div class=\"errorPage-top\" (click)=\"redirectToDashboard()\">\r\n <a\r\n class=\"product-logo vx-d-flex vx-align-center vx-justify-center vx-mr-3\"\r\n [arTooltip]=\"errorConfig.buttonText\"\r\n placement=\"right\"\r\n type=\"white\"\r\n delay=\"0\"\r\n [tooltipMandatory]=\"true\"\r\n [animate]=\"true\"\r\n [href]=\"defaultURL\"\r\n >\r\n <img\r\n [ngSrc]=\"VcomplyLogo\"\r\n [alt]=\"altImageText.VCOMPLY_LOGO\"\r\n width=\"24\"\r\n height=\"24\"\r\n />\r\n </a>\r\n </div>\r\n <div class=\"errorPage-container\">\r\n <div class=\"errorPage-inner\">\r\n <div class=\"errorPage-inner-image\">\r\n <img\r\n [ngSrc]=\"errorConfig.imageUrl\"\r\n [alt]=\"altImageText.ERROR_IMAGE\"\r\n width=\"246\"\r\n height=\"178\"\r\n />\r\n </div>\r\n <div class=\"errorPage-inner-right\">\r\n <div class=\"errorPage-heading\">{{ errorConfig.title }}</div>\r\n <div class=\"errorPage-text\">{{ errorConfig.description }}</div>\r\n <div class=\"errorPage-details\">\r\n {{ errorConfig.details }}\r\n <a [href]=\"'mailto:' + errorConfig.email\">{{\r\n errorConfig.email\r\n }}</a>\r\n {{ errorConfig.support }}.\r\n </div>\r\n <button class=\"errorPage-btn\" (click)=\"redirectToDashboard()\">\r\n {{ errorConfig.buttonText }} <i class=\"icons\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"errorPage-copyright\">\r\n © {{ currentYear }}, {{ organisationName }}\r\n </div>\r\n </div>\r\n </div>\r\n `,\r\n styleUrls: ['../common-error-page.component.less'],\r\n})\r\nexport class UnauthorizedComponent {\r\n constructor(\r\n private route: ActivatedRoute,\r\n private routerService: RouterService\r\n ) {}\r\n\r\n currentYear = new Date().getFullYear();\r\n errorConfig = ERROR_CONFIG.UNAUTHORIZED;\r\n VcomplyLogo = VCOMPLY_LOGO_URL;\r\n altImageText = ALT_IMAGE_TEXT;\r\n organisationName = ORGANISATION_NAME;\r\n defaultURL = this.routerService.baseUrl + REDIRECTION_URL.DEFAULT;\r\n\r\n public redirectToDashboard() {\r\n const module_name = this.route.snapshot.data['page_path'];\r\n this.routerService.redirectToHome(module_name);\r\n }\r\n}\r\n","export class DialogConfig<D = any> {\r\n data?: D;\r\n position?: any;\r\n background?: any;\r\n pointer?: any;\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\nimport { DialogConfig } from '../../../ui-kit/dialog/dialog-config';\r\n\r\nimport { AuthorizerService } from '@vcomply/authorizer';\r\nimport { RouterService } from '../../services/router.service';\r\n\r\nimport { DialogData, ModalErrorType } from '../../types/global-error.types';\r\nimport { MODAL_ERROR_TYPES } from '../../constants/error-handling.constants';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'lib-vc-error-modal',\r\n template: ` <div class=\"error-dialog-box\">\r\n <div class=\"error-dialog-box-top\">{{ data.heading }}</div>\r\n <div class=\"error-dialog-box-mid\">\r\n {{ data.description }}\r\n </div>\r\n <div class=\"error-dialog-box-bottom\">\r\n <button (click)=\"onContinueAction()\" class=\"logIn-btn\">\r\n {{ data.buttonText }}\r\n </button>\r\n </div>\r\n </div>`,\r\n styleUrls: ['./error-modal.component.less'],\r\n})\r\nexport class ErrorModalComponent {\r\n errorTypes = MODAL_ERROR_TYPES;\r\n\r\n @Input() errorType: ModalErrorType | undefined;\r\n\r\n data: DialogData = {\r\n heading: 'Message',\r\n description: 'Description',\r\n buttonText: 'Click Action',\r\n };\r\n\r\n constructor(\r\n private authService: AuthorizerService,\r\n private dialogConfig: DialogConfig,\r\n private routerService: RouterService\r\n ) {\r\n this.setDataConfig();\r\n }\r\n\r\n private setDataConfig() {\r\n this.data = this.dialogConfig.data?.errorConfig;\r\n this.errorType = this.dialogConfig.data?.errorType;\r\n }\r\n\r\n public onContinueAction() {\r\n switch (this.errorType) {\r\n case this.errorTypes.SESSION_EXPIRED:\r\n this.authService.logout();\r\n this.routerService.redirectToLogin();\r\n break;\r\n\r\n case this.errorTypes.CHUNK_NOT_FOUND:\r\n window.location.reload();\r\n break;\r\n }\r\n }\r\n}\r\n","import { Directive, ViewContainerRef } from '@angular/core';\r\n\r\n@Directive({\r\n standalone: false,\r\n selector: '[appInsertion]',\r\n})\r\nexport class InsertionDirective {\r\n constructor(public viewContainerRef: ViewContainerRef) {}\r\n}\r\n","import { Observable, Subject } from 'rxjs';\r\n\r\nexport class DialogRef {\r\n private readonly afterDialogClosed = new Subject<any>();\r\n afterClosed: Observable<any> = this.afterDialogClosed.asObservable();\r\n constructor() {}\r\n\r\n close(result?: any) {\r\n // debugger\r\n this.afterDialogClosed.next(result);\r\n document.body.style.overflow = 'auto';\r\n }\r\n}\r\n","import { Component, Type, ViewChild, OnDestroy, ComponentRef, AfterViewInit, ChangeDetectorRef, OnInit } from '@angular/core';\r\nimport { InsertionDirective } from './insertion.directive';\r\nimport { Subject } from 'rxjs';\r\nimport { DialogRef } from './dialog-ref';\r\nimport { DialogConfig } from './dialog-config';\r\nimport { NavigationEnd, NavigationError, NavigationStart, Router, ROUTER_CONFIGURATION } from '@angular/router';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'app-dialog',\r\n templateUrl: './dialog.component.html',\r\n styleUrls: ['./dialog.component.css'],\r\n})\r\nexport class DialogComponent implements AfterViewInit, OnDestroy, OnInit {\r\n componentRef!: ComponentRef<any>;\r\n position: any;\r\n background: any;\r\n pointer: any;\r\n @ViewChild(InsertionDirective, { static: true })\r\n insertionPoint!: InsertionDirective;\r\n animation = true;\r\n\r\n private readonly onDialogClose = new Subject<any>();\r\n public onClose = this.onDialogClose.asObservable();\r\n\r\n childComponentType!: Type<any>;\r\n\r\n constructor(\r\n private cd: ChangeDetectorRef,\r\n private dialogRef: DialogRef,\r\n public config: DialogConfig,\r\n private router: Router\r\n ) {\r\n // this.componentRef = this.componentRef;\r\n // this.animate = this.animate;\r\n // this.insertionPoint = this.insertionPoint;\r\n // this.childComponentType = this.childComponentType;\r\n }\r\n ngOnInit() {\r\n this.position = this.config.position;\r\n this.background = this.config.background;\r\n document.body.style.overflow = 'hidden';\r\n setTimeout(() => {\r\n this.animation = false;\r\n }, 200);\r\n this.routeAction();\r\n }\r\n\r\n routeAction() {\r\n this.router.events.subscribe((event: any) => {\r\n if (event instanceof NavigationStart) {\r\n // Show loading indicator\r\n }\r\n if (event instanceof NavigationEnd) {\r\n // Hide loading indicator\r\n this.dialogRef.close();\r\n }\r\n if (event instanceof NavigationError) {\r\n // Hide loading indicator\r\n // Present error to user\r\n }\r\n });\r\n }\r\n ngAfterViewInit() {\r\n this.loadChildComponent(this.childComponentType);\r\n this.cd.detectChanges();\r\n }\r\n\r\n onOverlayClicked(evt: MouseEvent) {\r\n // this.dialogRef.close();\r\n }\r\n\r\n onDialogClicked(evt: MouseEvent) {\r\n evt.stopPropagation();\r\n }\r\n\r\n loadChildComponent(componentType: Type<any>) {\r\n const viewContainerRef = this.insertionPoint.viewContainerRef;\r\n viewContainerRef.clear();\r\n\r\n this.componentRef = viewContainerRef.createComponent(componentType);\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.componentRef) {\r\n this.componentRef.destroy();\r\n }\r\n }\r\n\r\n close(data?: any) {\r\n this.onDialogClose.next(data);\r\n document.body.style.overflow = 'auto';\r\n }\r\n}\r\n","<div\r\n class=\"overlay\"\r\n (click)=\"onOverlayClicked($event)\"\r\n [ngClass]=\"{\r\n top: position === 'TOP',\r\n right: position === 'RIGHT',\r\n bottom: position === 'BOTTOM',\r\n left: position === 'LEFT',\r\n center: position === 'CENTER',\r\n black: background === 'black',\r\n whiteBlur: background === 'whiteBlur'\r\n }\" [class.pointer-none]=\"pointer === 'none'\"\r\n>\r\n <div\r\n class=\"dialog\"\r\n [class.animate]=\"animation\"\r\n (click)=\"onDialogClicked($event)\"\r\n [ngClass]=\"{\r\n top: position === 'TOP',\r\n right: position === 'RIGHT',\r\n bottom: position === 'BOTTOM',\r\n left: position === 'LEFT',\r\n center: position === 'CENTER'\r\n }\"\r\n >\r\n <ng-template appInsertion></ng-template>\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DialogComponent } from './dialog.component';\r\nimport { InsertionDirective } from './insertion.directive';\r\nimport { DialogRef } from './dialog-ref';\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [DialogComponent, InsertionDirective],\r\n providers: [DialogRef],\r\n exports:[DialogComponent]\r\n})\r\nexport class DialogModule {}\r\n","import { Injector, Type, InjectionToken } from '@angular/core';\r\n\r\nexport class DialogInjector implements Injector {\r\n constructor(private parentDialogInjector: Injector, private dialogAdditionalTokens: WeakMap<any, any>) {}\r\n\r\n get<T>(token: Type<T> | InjectionToken<T>, notFoundValue?: T): T;\r\n // get(token: any, notFoundValue?: any){return; }\r\n get(token: any, notFoundValue?: any) {\r\n const value = this.dialogAdditionalTokens.get(token);\r\n if (value) {\r\n return value;\r\n }\r\n return this.parentDialogInjector.get<any>(token, notFoundValue);\r\n }\r\n}\r\n","import { Injectable, ApplicationRef, createComponent, EnvironmentInjector, Injector, Type, EmbeddedViewRef, ComponentRef } from '@angular/core';\r\nimport { DialogModule } from './dialog.module';\r\nimport { DialogComponent } from './dialog.component';\r\nimport { DialogInjector } from './dialog-injector';\r\nimport { DialogConfig } from './dialog-config';\r\nimport { DialogRef } from './dialog-ref';\r\n\r\n@Injectable({\r\n providedIn: DialogModule,\r\n})\r\nexport class DialogService {\r\n dialogComponentRef!: ComponentRef<DialogComponent>;\r\n\r\n constructor(\r\n private appRef: ApplicationRef,\r\n private injector: Injector,\r\n private environmentInjector: EnvironmentInjector\r\n ) {}\r\n\r\n public open(componentType: Type<any>, config: DialogConfig) {\r\n const dialogRef = this.appendDialogComponentToBody(config);\r\n\r\n this.dialogComponentRef.instance.childComponentType = componentType;\r\n\r\n return dialogRef;\r\n }\r\n\r\n private appendDialogComponentToBody(config: DialogConfig) {\r\n const map = new WeakMap();\r\n map.set(DialogConfig, config);\r\n\r\n const dialogRef = new DialogRef();\r\n map.set(DialogRef, dialogRef);\r\n\r\n const sub = dialogRef.afterClosed.subscribe(() => {\r\n this.removeDialogComponentFromBody();\r\n sub.unsubscribe();\r\n });\r\n\r\n const componentRef = createComponent(DialogComponent, {\r\n environmentInjector: this.environmentInjector,\r\n elementInjector: new DialogInjector(this.injector, map),\r\n });\r\n\r\n this.appRef.attachView(componentRef.hostView);\r\n\r\n const domElem = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\r\n document.body.appendChild(domElem);\r\n\r\n this.dialogComponentRef = componentRef;\r\n\r\n this.dialogComponentRef.instance.onClose.subscribe(() => {\r\n this.removeDialogComponentFromBody();\r\n });\r\n\r\n return dialogRef;\r\n }\r\n\r\n private removeDialogComponentFromBody() {\r\n this.appRef.detachView(this.dialogComponentRef.hostView);\r\n this.dialogComponentRef.destroy();\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\nimport { ErrorModalComponent } from '../error-modal/error-modal.component';\r\n\r\nimport { DialogService } from '../../../ui-kit/dialog/dialog.service';\r\n\r\nimport { ERROR_CONFIG, MODAL_ERROR_TYPES } from '../../constants/error-handling.constants';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'lib-vc-error-session-expired',\r\n template: ``,\r\n})\r\nexport class SessionExpiredComponent implements OnInit {\r\n errorConfig = ERROR_CONFIG.SESSION_EXPIRED;\r\n errorTypes = MODAL_ERROR_TYPES;\r\n\r\n constructor(\r\n private dialogService: DialogService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.openSessionExpiredModal();\r\n }\r\n\r\n private openSessionExpiredModal() {\r\n this.dialogService.open(ErrorModalComponent, {\r\n data: {\r\n errorType: this.errorTypes.SESSION_EXPIRED,\r\n errorConfig: this.errorConfig,\r\n },\r\n position: 'center',\r\n background: 'whiteBlur',\r\n });\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\nimport { ErrorModalComponent } from '../error-modal/error-modal.component';\r\n\r\nimport { DialogService } from '../../../ui-kit/dialog/dialog.service';\r\n\r\nimport {\r\n ERROR_CONFIG,\r\n MODAL_ERROR_TYPES,\r\n} from '../../constants/error-handling.constants';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'lib-vc-error-chunk-unavailable',\r\n template: ``,\r\n})\r\nexport class ChunkUnavailableComponent implements OnInit {\r\n errorConfig = ERROR_CONFIG.CHUNK_UNAVAILABLE;\r\n errorType = MODAL_ERROR_TYPES;\r\n\r\n constructor(private dialogService: DialogService) {}\r\n\r\n ngOnInit() {\r\n this.openSessionExpiredModal();\r\n }\r\n\r\n private openSessionExpiredModal() {\r\n this.dialogService.open(ErrorModalComponent, {\r\n data: {\r\n errorType: this.errorType.CHUNK_NOT_FOUND,\r\n errorConfig: this.errorConfig,\r\n },\r\n position: 'center',\r\n background: 'whiteBlur',\r\n });\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\nimport {\r\n ERROR_CONFIG,\r\n VCOMPLY_LOGO_URL,\r\n ALT_IMAGE_TEXT,\r\n} from '../../constants/error-handling.constants';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'lib-vc-error-server-error',\r\n template: `\r\n <div class=\"errorPage\">\r\n <div class=\"errorPage-top\">\r\n <img\r\n [ngSrc]=\"VcomplyLogo\"\r\n [alt]=\"altImageText.VCOMPLY_LOGO\"\r\n width=\"24\"\r\n height=\"24\"\r\n />\r\n </div>\r\n <div class=\"errorPage-container\">\r\n <div class=\"errorPage-inner\">\r\n <div class=\"errorPage-inner-image\">\r\n <img\r\n [ngSrc]=\"errorConfig.imageUrl\"\r\n [alt]=\"altImageText.ERROR_IMAGE\"\r\n width=\"246\"\r\n height=\"178\"\r\n />\r\n </div>\r\n <div class=\"errorPage-inner-right\">\r\n <div class=\"errorPage-heading\">{{ errorConfig.title }}</div>\r\n <div class=\"errorPage-text\">{{ errorConfig.description }}</div>\r\n <div class=\"errorPage-details\">{{ errorConfig.details }}</div>\r\n <button class=\"errorPage-btn\" (click)=\"refreshPage()\">\r\n {{ errorConfig.buttonText }} <i class=\"icons\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n `,\r\n styleUrls: ['../common-error-page.component.less'],\r\n})\r\nexport class ServerErrorComponent {\r\n errorConfig = ERROR_CONFIG.SERVER_ERROR;\r\n VcomplyLogo = VCOMPLY_LOGO_URL;\r\n altImageText = ALT_IMAGE_TEXT;\r\n\r\n public refreshPage() {\r\n window.location.reload();\r\n }\r\n}\r\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\n\r\nimport { GlobalErrorService } from './shared/services/global-error.service';\r\nimport { SnackBarService } from './ui-kit/snack-bar/snack-bar.service';\r\n\r\nimport { ErrorStatusCode } from './shared/types/global-error.types';\r\nimport { ERROR_CONFIG } from './shared/constants/error-handling.constants';\r\nimport { FeatureFlagService } from './featureFlag/feature-flag.service';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'lib-vc-error-handlers',\r\n template: `\r\n <app-snack-bar></app-snack-bar>\r\n <lib-vc-error-session-expired\r\n *ngIf=\"sessionExpired\"\r\n ></lib-vc-error-session-expired>\r\n\r\n <lib-vc-error-unauthorized *ngIf=\"unauthorized\"></lib-vc-error-unauthorized>\r\n <lib-vc-error-chunk-unavailable\r\n *ngIf=\"chunkUnavailable\"\r\n ></lib-vc-error-chunk-unavailable>\r\n <lib-vc-error-server-error *ngIf=\"serverError\"></lib-vc-error-server-error>\r\n `,\r\n})\r\nexport class VcErrorHandlersComponent implements OnInit, OnDestroy {\r\n private errorConfig = ERROR_CONFIG.NETWORK_UNAVAILABLE;\r\n\r\n unauthorized: boolean = false;\r\n sessionExpired: boolean = false;\r\n chunkUnavailable: boolean = false;\r\n serverError: boolean = false;\r\n isOnline: boolean = navigator.onLine;\r\n\r\n @Input() disableSnackBar: boolean = false;\r\n @Input() feature!: FeatureFlagService;\r\n\r\n constructor(\r\n private errorService: GlobalErrorService,\r\n private snackBarService: SnackBarService,\r\n private featureFlagService: FeatureFlagService\r\n ) {\r\n this.subscribeGlobalError();\r\n }\r\n\r\n ngOnInit() {\r\n this.subscribeNetworkDetection();\r\n this.featureFlagService.featuresMap = this.feature.featuresMap;\r\n }\r\n\r\n ngOnDestroy() {\r\n window.removeEventListener('online', this.onNetworkOnline);\r\n window.removeEventListener('offline', this.onNetworkOffline);\r\n }\r\n\r\n private subscribeGlobalError() {\r\n this.errorService.globalError$.subscribe((error: HttpErrorResponse) => {\r\n this.handleError(error);\r\n });\r\n }\r\n\r\n private handleError(error: HttpErrorResponse) {\r\n const errorHandlers: { [key: number]: () => void } = {\r\n [ErrorStatusCode.Unauthenticated]: () => (this.sessionExpired = true),\r\n [ErrorStatusCode.UnauthorizedAccess]: () => (this.unauthorized = true),\r\n [ErrorStatusCode.JSChunkUnavailable]: () =>\r\n (this.chunkUnavailable = true),\r\n [ErrorStatusCode.NetworkUnavailable]: () => this.handleNetworkError(),\r\n };\r\n\r\n if (errorHandlers[error.status]) {\r\n errorHandlers[error.status]();\r\n } else if (this.errorService.isServerError(error)) {\r\n this.serverError = true;\r\n }\r\n }\r\n\r\n private subscribeNetworkDetection() {\r\n window.addEventListener('online', this.onNetworkOnline);\r\n window.addEventListener('offline', this.onNetworkOffline);\r\n }\r\n\r\n private onNetworkOnline = () => {\r\n this.isOnline = true;\r\n this.hideSnackBar();\r\n };\r\n\r\n private onNetworkOffline = () => {\r\n this.isOnline = false;\r\n if (!this.disableSnackBar) {\r\n this.showOfflineSnackBar();\r\n }\r\n };\r\n\r\n private handleNetworkError() {\r\n if (!this.isOnline && !this.disableSnackBar) {\r\n this.showOfflineSnackBar();\r\n }\r\n }\r\n\r\n private showOfflineSnackBar() {\r\n this.snackBarService.show(this.errorConfig.offlineMessage, 'error');\r\n }\r\n\r\n private hideSnackBar() {\r\n this.snackBarService.hide();\r\n }\r\n}\r\n","import { Component, Optional } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\nimport {\r\n ERROR_CONFIG,\r\n VCOMPLY_LOGO_URL,\r\n ORGANISATION_NAME,\r\n ALT_IMAGE_TEXT,\r\n REDIRECTION_URL,\r\n} from '../../constants/error-handling.constants';\r\n\r\nimport { RouterService } from '../../services/router.service';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'lib-vc-error-page-not-found',\r\n template: `\r\n <div class=\"errorPage\">\r\n <div class=\"errorPage-top\" (click)=\"redirectToDashboard()\">\r\n <a\r\n class=\"product-logo vx-d-flex vx-align-center vx-justify-center vx-mr-3\"\r\n [arTooltip]=\"errorConfig.buttonText\"\r\n placement=\"right\"\r\n type=\"white\"\r\n delay=\"0\"\r\n [tooltipMandatory]=\"true\"\r\n [animate]=\"true\"\r\n [href]=\"defaultURL\"\r\n >\r\n <img\r\n [ngSrc]=\"VcomplyLogo\"\r\n [alt]=\"altImageText.VCOMPLY_LOGO\"\r\n width=\"24\"\r\n height=\"24\"\r\n />\r\n </a>\r\n </div>\r\n <div class=\"errorPage-container\">\r\n <div class=\"errorPage-inner\">\r\n <div class=\"errorPage-inner-image\">\r\n <img\r\n [ngSrc]=\"errorConfig.imageUrl\"\r\n [alt]=\"altImageText.ERROR_IMAGE\"\r\n width=\"246\"\r\n height=\"178\"\r\n />\r\n </div>\r\n <div class=\"errorPage-inner-right\">\r\n <div class=\"errorPage-heading\">{{ errorConfig.title }}</div>\r\n <div class=\"errorPage-text\">{{ errorConfig.description }}</div>\r\n <div class=\"errorPage-details\">{{ errorConfig.details }}</div>\r\n <button class=\"errorPage-btn\" (click)=\"redirectToDashboard()\">\r\n {{ errorConfig.buttonText }} <i class=\"icons\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"errorPage-copyright\">\r\n © {{ currentYear }}, {{ organisationName }}\r\n </div>\r\n </div>\r\n </div>\r\n `,\r\n styleUrls: ['../common-error-page.component.less'],\r\n})\r\nexport class PageNotFoundComponent {\r\n errorConfig = ERROR_CONFIG.PAGE_NOT_FOUND;\r\n VcomplyLogo = VCOMPLY_LOGO_URL;\r\n altImageText = ALT_IMAGE_TEXT;\r\n currentYear = new Date().getFullYear();\r\n organisationName = ORGANISATION_NAME;\r\n defaultURL = this.routerService.baseUrl + REDIRECTION_URL.DEFAULT;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private routerService: RouterService\r\n ) {}\r\n\r\n public redirectToDashboard() {\r\n const module_name = this.route.snapshot.data['page_path'];\r\n this.routerService.redirectToHome(module_name);\r\n }\r\n}\r\n","import { Component, EventEmitter, Output } from '@angular/core';\r\n\r\nimport {\r\n ERROR_CONFIG,\r\n ALT_IMAGE_TEXT,\r\n} from '../../constants/error-handling.constants';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'lib-vc-error-component-server-error',\r\n template: `\r\n <div class=\"serverError\">\r\n <div class=\"serverError-inner\">\r\n <div class=\"serverError-inner-image\">\r\n <img\r\n [ngSrc]=\"errorConfig.imageUrl\"\r\n [alt]=\"altImageText.ERROR_IMAGE\"\r\n width=\"106\"\r\n height=\"76\"\r\n />\r\n </div>\r\n <div class=\"serverError-inner-bottom\">\r\n <div class=\"serverError-heading\">{{ errorConfig.title }}</div>\r\n <div class=\"serverError-text\">{{ errorConfig.description }}</div>\r\n <div class=\"serverError-details\">{{ errorConfig.details }}</div>\r\n <button class=\"serverError-btn\" (click)=\"onClick.emit(true)\">\r\n {{ errorConfig.buttonText }}\r\n <i class=\"icons\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n `,\r\n styleUrls: ['./component-level-server-error.component.less'],\r\n})\r\nexport class ComponentLevelServerErrorComponent {\r\n errorConfig = ERROR_CONFIG.COMPONENT_LEVEL_SERVER_ERROR;\r\n altImageText = ALT_IMAGE_TEXT;\r\n\r\n @Output() onClick = new EventEmitter<boolean>();\r\n}\r\n","import {\r\n Directive,\r\n Input,\r\n OnInit,\r\n TemplateRef,\r\n ViewContainerRef\r\n} from \"@angular/core\";\r\nimport { FeatureFlagService } from \"./feature-flag.service\";\r\n\r\n\r\n@Directive({\r\n standalone: false,\r\n selector: \"[featureFlag]\"\r\n})\r\nexport class FeatureFlagDirective implements OnInit {\r\n @Input() featureFlag!: string;\r\n constructor(\r\n private tpl: TemplateRef<any>,\r\n private vcr: ViewContainerRef,\r\n private featureFlagService: FeatureFlagService\r\n ) {}\r\n\r\n ngOnInit() {\r\n const isEnabled = this.featureFlagService.isFeatureEnabled(this.featureFlag);\r\n if (isEnabled) {\r\n this.vcr.createEmbeddedView(this.tpl);\r\n }\r\n }\r\n}","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FeatureFlagDirective } from './feature-flag.directive';\r\n\r\n@NgModule({\r\n declarations: [FeatureFlagDirective],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports:[FeatureFlagDirective]\r\n})\r\nexport class FeatureFlagModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SnackBarComponent } from './snack-bar/snack-bar.component';\r\n\r\n@NgModule({\r\n declarations: [SnackBarComponent],\r\n imports: [CommonModule],\r\n exports: [SnackBarComponent],\r\n})\r\nexport class SnackBarModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ToolTipDirective } from './tooltip.directive';\r\n\r\n@NgModule({\r\n declarations: [ToolTipDirective],\r\n imports: [CommonModule],\r\n exports: [ToolTipDirective],\r\n})\r\nexport class TooltipModule {}\r\n","import { ErrorHandler, Injectable, Optional } from '@angular/core';\r\nimport * as Sentry from '@sentry/angular-ivy';\r\nimport { Configurations } from '../../configuration';\r\n\r\nimport { AuthorizerService } from '@vcomply/authorizer';\r\nimport { GlobalErrorService } from '../services/global-error.service';\r\n\r\nimport { ErrorStatusCode } from '../types/global-error.types';\r\n\r\n@Injectable()\r\nexport class SentryErrorHandler implements ErrorHandler {\r\n constructor(\r\n private authorizerService: AuthorizerService,\r\n private errorService: GlobalErrorService,\r\n @Optional() config?: Configurations\r\n ) {\r\n if (config?.sentryConfig) {\r\n const SENTRY_CONFIG = config.sentryConfig;\r\n Sentry.init({\r\n dsn: SENTRY_CONFIG?.DSN,\r\n integrations: [\r\n new Sentry.BrowserTracing({\r\n tracePropagationTargets: SENTRY_CONFIG.ALLOW_ORIGIN,\r\n routingInstrumentation: Sentry.routingInstrumentation,\r\n }),\r\n ],\r\n tracesSampleRate: SENTRY_CONFIG.TRACES_SAMPLE_RATE,\r\n replaysSessionSampleRate: SENTRY_CONFIG.REPLAY_SESSION_SAMPLE_RATE,\r\n replaysOnErrorSampleRate: SENTRY_CONFIG.REPLAY_ON_ERROR_SAMPLE_RATE,\r\n });\r\n Sentry.setUser({ userDetails: this.authorizerService.getUser() });\r\n }\r\n }\r\n\r\n handleError(error: any) {\r\n const ERROR = error?.originalError || error;\r\n this.handleChunkError(ERROR);\r\n Sentry.captureException(ERROR);\r\n }\r\n\r\n handleChunkError(error: Error) {\r\n const chunkFailedMessage = /Loading chunk [\\d]+ failed/;\r\n if (chunkFailedMessage.test(error?.message)) {\r\n window.location.reload();\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n HttpRequest,\r\n HttpHandler,\r\n HttpEvent,\r\n HttpInterceptor,\r\n HttpErrorResponse,\r\n HttpResponse,\r\n} from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError, tap, timeout } from 'rxjs/operators';\r\n\r\nimport { GlobalErrorService } from '../services/global-error.service';\r\n\r\nimport { API_TIMEOUT_TIME } from '../constants/error-handling.constants';\r\n\r\n@Injectable()\r\nexport class HttpReqInterceptor implements HttpInterceptor {\r\n constructor(private errorService: GlobalErrorService) {}\r\n\r\n intercept(\r\n req: HttpRequest<any>,\r\n next: HttpHandler\r\n ): Observable<HttpEvent<any>> {\r\n if (this.errorService.isExcludeErrorHandling(req)) {\r\n return next.handle(req);\r\n }\r\n return next.handle(req).pipe(\r\n timeout(API_TIMEOUT_TIME),\r\n tap((event: HttpEvent<any>) => {\r\n if (event instanceof HttpResponse) {\r\n this.errorService.handleSoftErrors(event);\r\n }\r\n }),\r\n catchError((error: HttpErrorResponse) => {\r\n this.errorService.handleError(error, req);\r\n return throwError(error);\r\n })\r\n );\r\n }\r\n}\r\n","import {\r\n ErrorHandler,\r\n InjectionToken,\r\n ModuleWithProviders,\r\n NgModule,\r\n} from '@angular/core';\r\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { CommonModule, NgOptimizedImage } from '@angular/common';\r\n\r\nimport { PageNotFoundComponent } from './shared/components/page-not-found/page-not-found.component';\r\nimport { VcErrorHandlersComponent } from './vc-error-handlers.component';\r\n\r\nimport { DialogModule } from './ui-kit/dialog/dialog.module';\r\nimport { FeatureFlagModule } from './featureFlag/feature-flag.module';\r\nimport { SnackBarModule } from './ui-kit/snack-bar/snack-bar.module';\r\nimport { TooltipModule } from './ui-kit/tooltip/tooltip.module';\r\n\r\nimport { FeatureFlagService } from './featureFlag/feature-flag.service';\r\n\r\nimport { BrowserOptions } from '@sentry/browser';\r\nimport { SentryErrorHandler } from './shared/errorhandler/sentry-error.handler';\r\nimport { Configurations } from './configuration';\r\nimport { UnauthorizedComponent } from './shared/components/unauthorized/unauthorized.component';\r\nimport { SessionExpiredComponent } from './shared/components/session-expired/session-expired.component';\r\nimport { ChunkUnavailableComponent } from './shared/components/chunk-unavailable/chunk-unavailable.component';\r\nimport { ServerErrorComponent } from './shared/components/server-error/server-error.component';\r\n\r\nimport { HttpReqInterceptor } from './shared/interceptors/http.interceptor';\r\nimport { ErrorModalComponent } from './shared/components/error-modal/error-modal.component';\r\nimport { ComponentLevelServerErrorComponent } from './shared/components/component-level-server-error/component-level-server-error.component';\r\n\r\nexport const FOR_ROOT_SENTRY_OPTIONS_TOKEN = new InjectionToken<BrowserOptions>(\r\n 'forRoot() SentryErrorHandler options'\r\n);\r\n\r\n@NgModule({\r\n declarations: [\r\n VcErrorHandlersComponent,\r\n PageNotFoundComponent,\r\n UnauthorizedComponent,\r\n SessionExpiredComponent,\r\n ChunkUnavailableComponent,\r\n ServerErrorComponent,\r\n ErrorModalComponent,\r\n ComponentLevelServerErrorComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n DialogModule,\r\n FeatureFlagModule,\r\n NgOptimizedImage,\r\n SnackBarModule,\r\n TooltipModule,\r\n ],\r\n exports: [\r\n VcErrorHandlersComponent,\r\n PageNotFoundComponent,\r\n UnauthorizedComponent,\r\n SessionExpiredComponent,\r\n ChunkUnavailableComponent,\r\n ServerErrorComponent,\r\n ErrorModalComponent,\r\n ComponentLevelServerErrorComponent,\r\n ],\r\n bootstrap: [VcErrorHandlersComponent],\r\n})\r\nexport class VcErrorHandlersModule {\r\n constructor(private loadConfig: FeatureFlagService) {\r\n // this.loadConfig.loadConfig();\r\n }\r\n\r\n public static forRoot(\r\n environmentConfig: Configurations\r\n ): ModuleWithProviders<VcErrorHandlersModule> {\r\n const providers: any[] = [\r\n { provide: Configurations, useValue: environmentConfig },\r\n { provide: ErrorHandler, useClass: SentryErrorHandler },\r\n ];\r\n\r\n if (environmentConfig.isErrorInterceptorEnabled) {\r\n providers.push({\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: HttpReqInterceptor,\r\n multi: true,\r\n });\r\n }\r\n\r\n return {\r\n ngModule: VcErrorHandlersModule,\r\n providers: providers,\r\n };\r\n }\r\n}\r\n"],"mappings":";;;;;;;;;;;;AAKA,IAAa,yBAAb,MAAa,uBAAsB;CAEjC,cAAA,CAAgB;CAFL;EAAA,KAAA,OAAA,GAAA,mBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAsB,MAAA,CAAA;GAAA,QAAA,GAAA,gBAAA;EAAA,CAAA;CAAA;CAAtB;EAAA,KAAA,QAAA,GAAA,sBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAsB,YAFrB;EAAM,CAAA;CAAA;;AAEP,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAsB,YAAA,CAAA;EAHlC,MAAA;EAAW,MAAA,CAAA,EACV,YAAY,OACb,CAAA;;;;ACYD,IAAY;CAAZ,SAAY,iBAAe;CACzB,gBAAA,gBAAA,iBAAA,OAAA;CACA,gBAAA,gBAAA,wBAAA,OAAA;CACA,gBAAA,gBAAA,qBAAA,OAAA;CAGA,gBAAA,gBAAA,yBAAA,OAAA;CACA,gBAAA,gBAAA,wBAAA,OAAA;CACA,gBAAA,gBAAA,gBAAA,OAAA;CACA,gBAAA,gBAAA,oBAAA,OAAA;CAGA,gBAAA,gBAAA,wBAAA,KAAA;CAGA,gBAAA,gBAAA,wBAAA,OAAA;AACF,EAAA,CAhBY,oBAAA,kBAAe,CAAA,EAAA;AChB3B,MAAa,wBAAwB,CACnC;CACE,QAAQ;CACR,MAAM;CACN,OAAO;CACP,MAAM;CACN,WAAW,CAAC,KAAK;AAClB,GACD;CACE,QAAQ;CACR,MAAM;CACN,OAAO;CACP,MAAM;CACN,WAAW,CAAC,KAAK;AAClB,CAEF;AAED,MAAa,6BAA6B;CACxC;EACE,QAAQ;EACR,MAAM;EACN,OAAO,EAAE,MAAM,SAAQ;EACvB,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO,EAAE,MAAM,cAAa;EAC5B,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO,EAAE,MAAM,cAAa;EAC5B,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO,EAAE,MAAM,WAAU;EACzB,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO,EAAE,MAAM,oBAAmB;EAClC,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;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"}
|
|
1
|
+
{"version":3,"file":"vc-error-handlers.mjs","names":[],"sources":["../../../projects/vc-error-handlers/src/lib/vc-error-handlers.service.ts","../../../projects/vc-error-handlers/src/lib/shared/types/global-error.types.ts","../../../projects/vc-error-handlers/src/lib/shared/constants/api-config.constants.ts","../../../projects/vc-error-handlers/src/lib/shared/constants/exclude-api-config.constants.ts","../../../projects/vc-error-handlers/src/lib/ui-kit/snack-bar/snack-bar.service.ts","../../../projects/vc-error-handlers/src/lib/shared/services/util.service.ts","../../../projects/vc-error-handlers/src/lib/shared/services/global-error.service.ts","../../../projects/vc-error-handlers/src/lib/shared/constants/assets.constants.ts","../../../projects/vc-error-handlers/src/lib/shared/constants/error-handling.constants.ts","../../../projects/vc-error-handlers/src/lib/shared/services/router.service.ts","../../../projects/vc-error-handlers/src/lib/configuration.ts","../../../projects/vc-error-handlers/src/lib/featureFlag/feature-flag.service.ts","../../../projects/vc-error-handlers/src/lib/ui-kit/snack-bar/snack-bar/snack-bar.component.ts","../../../projects/vc-error-handlers/src/lib/ui-kit/snack-bar/snack-bar/snack-bar.component.html","../../../projects/vc-error-handlers/src/lib/ui-kit/tooltip/tooltip.directive.ts","../../../projects/vc-error-handlers/src/lib/shared/components/unauthorized/unauthorized.component.ts","../../../projects/vc-error-handlers/src/lib/ui-kit/dialog/dialog-config.ts","../../../projects/vc-error-handlers/src/lib/shared/components/error-modal/error-modal.component.ts","../../../projects/vc-error-handlers/src/lib/ui-kit/dialog/insertion.directive.ts","../../../projects/vc-error-handlers/src/lib/ui-kit/dialog/dialog-ref.ts","../../../projects/vc-error-handlers/src/lib/ui-kit/dialog/dialog.component.ts","../../../projects/vc-error-handlers/src/lib/ui-kit/dialog/dialog.component.html","../../../projects/vc-error-handlers/src/lib/ui-kit/dialog/dialog.module.ts","../../../projects/vc-error-handlers/src/lib/ui-kit/dialog/dialog-injector.ts","../../../projects/vc-error-handlers/src/lib/ui-kit/dialog/dialog.service.ts","../../../projects/vc-error-handlers/src/lib/shared/components/session-expired/session-expired.component.ts","../../../projects/vc-error-handlers/src/lib/shared/components/chunk-unavailable/chunk-unavailable.component.ts","../../../projects/vc-error-handlers/src/lib/shared/components/server-error/server-error.component.ts","../../../projects/vc-error-handlers/src/lib/vc-error-handlers.component.ts","../../../projects/vc-error-handlers/src/lib/shared/components/page-not-found/page-not-found.component.ts","../../../projects/vc-error-handlers/src/lib/shared/components/component-level-server-error/component-level-server-error.component.ts","../../../projects/vc-error-handlers/src/lib/featureFlag/feature-flag.directive.ts","../../../projects/vc-error-handlers/src/lib/featureFlag/feature-flag.module.ts","../../../projects/vc-error-handlers/src/lib/ui-kit/snack-bar/snack-bar.module.ts","../../../projects/vc-error-handlers/src/lib/ui-kit/tooltip/tooltip.module.ts","../../../projects/vc-error-handlers/src/lib/shared/errorhandler/sentry-error.handler.ts","../../../projects/vc-error-handlers/src/lib/shared/interceptors/http.interceptor.ts","../../../projects/vc-error-handlers/src/lib/vc-error-handlers.module.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class VcErrorHandlersService {\r\n\r\n constructor() { }\r\n}\r\n","import { MODAL_ERROR_TYPES } from '../constants/error-handling.constants';\r\n\r\nexport interface DialogData {\r\n heading: string;\r\n description: string;\r\n buttonText: string;\r\n}\r\n\r\nexport interface RequestDetails {\r\n method: string;\r\n path: string;\r\n query: { [key: string]: any };\r\n body: any;\r\n pageCode?: string;\r\n}\r\n\r\nexport enum ErrorStatusCode {\r\n URLNotFound = 404,\r\n UnauthorizedAccess = 403,\r\n Unauthenticated = 401,\r\n\r\n // Server-side errors\r\n InternalServerError = 500,\r\n ServiceUnavailable = 503,\r\n BadGateway = 502,\r\n RequestTimeout = 504,\r\n\r\n // Network unavailability/offline case\r\n NetworkUnavailable = 0,\r\n\r\n // Application-specific errors\r\n JSChunkUnavailable = 600,\r\n}\r\n\r\nexport type ModalErrorType = keyof typeof MODAL_ERROR_TYPES;\r\n","export const PAGE_LEVEL_API_CONFIG = [\r\n {\r\n method: 'GET',\r\n path: 'compliance/?mode=reports/getReportDetailsByDuedateId',\r\n query: null,\r\n body: null,\r\n pageCodes: ['SAP'],\r\n },\r\n {\r\n method: 'GET',\r\n path: 'compliance/?mode=reports/reportDetailsById',\r\n query: null,\r\n body: null,\r\n pageCodes: ['SAP'],\r\n },\r\n \r\n];\r\n\r\nexport const COMPONENT_LEVEL_API_CONFIG = [\r\n {\r\n method: 'GET',\r\n path: '/organization/?mode=organisationUsersList',\r\n query: { type: 'active' },\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/organization/?mode=organisationUsersList',\r\n query: { type: 'power_users' },\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/organization/?mode=organisationUsersList',\r\n query: { type: 'light_users' },\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/organization/?mode=organisationUsersList',\r\n query: { type: 'inactive' },\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/organization/?mode=organisationUsersList',\r\n query: { type: 'power_users_small' },\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/Global-Dashboard/ManageDashboards',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/Global-Dashboard/MyDashboard',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'grc_object/?mode=grc/getGRCList&state=1&grcType=0',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'grc_object/?mode=grc/getGRCList&state=1&grcType=1',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'grc_object/?mode=grc/getGRCList&state=1&grcType=2',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'grc_object/?mode=grc/getGRCList&state=1&grcType=3',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/compliance/?mode=responsibilityCenterTree',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/organization/?mode=rcholidaylist',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/organization/?mode=roles/getRoles',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/organization/?mode=groupsList',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: '/compliance_post/?mode=rcProfile',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: '/organization_post/?mode=userProfile',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/organization/?mode=roles/roleById',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/organization/?mode=groupDetails',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: '/compliance_post?mode=report/list',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/organization/?mode=memberholidaylist',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/grc_object/?mode=activity/activityLogList',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/grc_object/?mode=activity/viewList',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/program/categoriesList?owner_list=1',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: '/risk/?mode=category/list',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'memberDetailsbyIds',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/organization?mode=signatureDetails',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/program/responsibilityList',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/program/getLinkedPolicies',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'risk/list',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/program/assignee',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/program/evidence/getEvidences/b-cycle-header',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/program/activity-logs',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/program/activity-logs-views',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: '/Assessment/?mode=category/list',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: '/Assessment/?mode=assessment/list',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/Assessment/?mode=assessment/fetchQuestionsByAssessmentId',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: '/Assessment/?mode=assessment/responseSummary',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/Assessment/?mode=assessment/individualResponse',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/Assessment/?mode=assessment/logs',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/program/subCategories',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: '/Assessment/?mode=assessment/getAssessmentById',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/to_do_responsibilities/responsibilities/my/dueToday',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/to_do_responsibilities/responsibilities/reviewing/dueToday',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/to_do_responsibilities/responsibilities/managing/dueToday',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/to_do_responsibilities/responsibilities/my/overdue',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/to_do_responsibilities/responsibilities/reviewing/overdue',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/to_do_responsibilities/responsibilities/managing/overdue',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/to_do_responsibilities/responsibilities/my/upcoming',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/to_do_responsibilities/responsibilities/reviewing/upcoming',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/to_do_responsibilities/responsibilities/managing/upcoming',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'risk/ListingReportedRisks',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'risk/myAssessments&type',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'workshop/list',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'risk/DueDateList',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'risk/RiskDetailsById',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'score/assessment',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'score/treatment',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'score/treatmentPlan',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'category/list&returnType',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'risk/list&return_list',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'risk/GetDiscussionById',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'workroom/getFilesAndFoldersList',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'responsibilityCenter/rcList',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'program/overview?owner_list=1',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'calendarDashboardReports',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'compliance_post/?mode=myResponsibility',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'compliance_post/?mode=auditList',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'compliance_post/?mode=oversightResponsibility/list',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'complianceReport/getTrendReport',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'workroomUpdates',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'recentActivities_new',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'program/subCategories',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/program/responsibilityList/',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: '/policy_post/?mode=dashboard/statusOverview',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/policy/?mode=category/listForPortal&type=dashboard',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/policy/?mode=announcements/listAll',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/policy/?mode=announcements/list',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: '/policy_post/?mode=dashboard/overdue/attestation',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: '/policy_post/?mode=dashboard/overdue/review',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/policy/?mode=dashboard/calendar&date',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'policy/?mode=dashboard/dueForAttestation/dueToday',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/policy/?mode=dashboard/dueForAttestation/overdue',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'policy/?mode=dashboard/dueForAttestation/upcoming',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'policy/?mode=dashboard/dueForAttestation/all',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'Assurance/Issue/Category/CatList',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'Assurance/Issue/MyIssues/',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'Assurance/Issue/Overview/',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'Assurance/Issue/Overseeing/',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'Assurance/Issue/Workroom/',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'Assurance/Issue/GetIssueDueDates/',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/Assurance/Workroom/Issue/FilesAndFolders/',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'Assurance/Workroom/Issue/ActivitiesViewLog/',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/Assurance/ActivityLog/IssueLog/',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'Assurance/Workroom/Issue/IssueDuedateListForTimeline',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'Assurance/Issue/ListByCategoryIdRC/',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'Assurance/Issue/Category/IssueCategoryOverview_RC/',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'Assurance/Issue/DashboardCalendar',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: '/Assurance/Issue/Priority',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'Assurance/Issue/ByAssessments',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'Assurance/Issue/ByReportId',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'risk_dashboard/heatmap',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'risk_dashboard/risk_category_overview',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'risk_dashboard/risk_score_by_rc',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'risk_dashboard/scorebycategory',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'risk_dashboard/list',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'dashboard/missedResponsibilities',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: '/responsibilities_post?mode=responsibilities_overseeing',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'responsibilities_in_trash',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'userReportsList',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'reviewerReportsList',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'riskAnalysis',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'responsibilitiesByUserId',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'responsibilitiesByReviewerId',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'responsibilityByRisk',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'responsibilityByRCId',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'compliance_post/?mode=complianceDueDate',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'compliance_post/?mode=workroomComment/getWorkroomActivities',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'compliance_post/?mode=fetchActivityLog',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'compliance_post/?mode=ListActivityView',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'reviewer/ReviewerDuedateList',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'compliance_post/?mode=complianceReport/dependentOfReportTree',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'manage_responsibilities',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'my_responsibilities',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'review_responsibilities',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'responsibilities_overseeing',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'responsibilities_in_queue',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'compliance/?mode=workroomComment/getWorkroomActivities',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'compliance/?mode=reports/responseByAssessmentAndDueDateId',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'Assessment/?mode=assessment/allAuditee',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'policy/?mode=attachment/getAttachmentsByCategory',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'policy/?mode=category/categoryByRoles&type=all',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'policy/?mode=policy/portalList',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'policy/?mode=comment/list',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: '/policy_post/?mode=folder/documents',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'policy/?mode=policy/audittraillist',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'library/?mode=version/list',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'Assessment?mode=assessment/getAssessmentById',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'policy/?mode=policy/allEmpoyeesWithDueDates',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'policy/?mode=policy/allDuedatesWithEmployee',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'policy/?mode=policy/list',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'fetchContent',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'policy/?mode=default/getDefaultCategories',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'policy_post/?mode=templates/list',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'policy/?mode=category/userCreated',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'policy/?mode=templates/detailsById',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'fetchTemplateContent',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'policy_post/?mode=approvalworkflow/fetchall',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'policy/?mode=policy/reviewerPolicies',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'policy/?mode=policy/reviewPendingByOthers',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'calendar_post?mode=manage_responsibilities',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'calendar_post?mode=entrusted_by_me&date',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'calendar_post?mode=my_responsibilities',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'calendar_post?mode=responsibilities_reviewing',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'calendar_post?mode=responsibilities_overseeing',\r\n query: null,\r\n body: null,\r\n },\r\n];\r\n","export const EXCLUDE_API_CONFIG = [\r\n {\r\n method: 'GET',\r\n path: 'organization/?mode=groupsList',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'policy/?mode=policy/audittraillist',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'policy/?mode=policy/list',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'GET',\r\n path: 'grc_object/?mode=grc/getGRCList',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'policy_post/?mode=approvalworkflow/fetchall',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: 'policy_post/?mode=announcements/delete',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'PUT',\r\n path: 'policy_put/?mode=policy/update',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n \r\n method: 'POST',\r\n path: 'fileupload/?destination=uploads',\r\n query: null,\r\n body: null,\r\n },\r\n {\r\n method: 'POST',\r\n path: '/ImportDocument',\r\n query: null,\r\n body: null,\r\n },\r\n\r\n];\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SnackBarService {\r\n public snackbarSubject = new Subject <any>();\r\n public snackbarState = this.snackbarSubject.asObservable();\r\n constructor() {}\r\n\r\n show(message: string, type?:'success'|'warning'|'info'|'alert'|'error') {\r\n this.snackbarSubject.next({\r\n show: true,\r\n message,\r\n icon:type,\r\n });\r\n }\r\n\r\n hide(){\r\n this.snackbarSubject.next({\r\n show: false,\r\n message: '',\r\n icon: '',\r\n });\r\n }\r\n}\r\n","import { HttpParams } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class UtilsService {\r\n private isJsonSubset(parentJson: any, subsetJson: any): boolean {\r\n for (let key in subsetJson) {\r\n if (\r\n !parentJson.hasOwnProperty(key) ||\r\n parentJson[key] !== subsetJson[key]\r\n ) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n public extractQueryParams(params: HttpParams): { [key: string]: any } {\r\n const query: { [key: string]: any } = {};\r\n params.keys().forEach((key) => {\r\n query[key] = params.get(key);\r\n });\r\n return query;\r\n }\r\n\r\n public isStringEqual(apiMethod: string, requestMethod: string): boolean {\r\n return apiMethod === requestMethod;\r\n }\r\n\r\n public isSubstringInString(apiPath: string, requestPath: string): boolean {\r\n return requestPath.includes(apiPath);\r\n }\r\n\r\n public isSubsetOfObject(apiQuery: any, requestQuery: any): boolean {\r\n if (!apiQuery) return true;\r\n return this.isJsonSubset(requestQuery, apiQuery);\r\n }\r\n\r\n public isSubsetOfArray(apiBody: any, requestBody: any): boolean {\r\n if (!apiBody) return true;\r\n return this.isJsonSubset(apiBody, requestBody);\r\n }\r\n\r\n public isValueInArray(apiPageCodes: string[], pageCode: string): boolean {\r\n return apiPageCodes.includes(pageCode);\r\n }\r\n}\r\n","import {\r\n HttpErrorResponse,\r\n HttpRequest,\r\n HttpResponse,\r\n} from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Subject } from 'rxjs';\r\n\r\nimport { SnackBarService } from '../../ui-kit/snack-bar/snack-bar.service';\r\nimport { UtilsService } from './util.service';\r\n\r\nimport { ErrorStatusCode, RequestDetails } from '../types/global-error.types';\r\nimport {\r\n PAGE_LEVEL_API_CONFIG,\r\n COMPONENT_LEVEL_API_CONFIG,\r\n} from '../constants/api-config.constants';\r\n\r\nimport { EXCLUDE_API_CONFIG } from '../constants/exclude-api-config.constants';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class GlobalErrorService {\r\n public globalError$: Subject<any> = new Subject();\r\n public localError$: Subject<any> = new Subject();\r\n\r\n private pageLevelApiConfig = PAGE_LEVEL_API_CONFIG;\r\n private componentLevelApiConfig = COMPONENT_LEVEL_API_CONFIG;\r\n private excludeApiConfig = EXCLUDE_API_CONFIG;\r\n\r\n constructor(\r\n private snackBarService: SnackBarService,\r\n private utilService: UtilsService,\r\n private router: Router\r\n ) {}\r\n\r\n public handleSoftErrors(event: HttpResponse<any> | HttpErrorResponse) {\r\n if (!(event instanceof HttpResponse)) {\r\n return;\r\n }\r\n\r\n const responseBody = event?.body;\r\n const success = responseBody?.success;\r\n const message = responseBody?.message;\r\n const statusCode = event?.status;\r\n \r\n if (success === false && statusCode && statusCode !== 0) {\r\n this.snackBarService.show(message || 'Error occurred', 'alert');\r\n }\r\n }\r\n\r\n public handleError(error: HttpErrorResponse, request: HttpRequest<any>) {\r\n if (\r\n this.isUnauthenticated(error) ||\r\n this.isUnauthorizedAccess(error) ||\r\n this.isNetworkUnavailable(error)\r\n ) {\r\n this.publishGlobalError(error);\r\n } else if (this.isServerError(error)) {\r\n this.handleServerError(error, request);\r\n } else {\r\n this.handleSoftErrors(error);\r\n }\r\n }\r\n\r\n public isServerError(error: HttpErrorResponse): boolean {\r\n const serverErrorCodes = [\r\n ErrorStatusCode.InternalServerError,\r\n ErrorStatusCode.ServiceUnavailable,\r\n ErrorStatusCode.BadGateway,\r\n ErrorStatusCode.RequestTimeout,\r\n ];\r\n\r\n return serverErrorCodes.includes(error.status);\r\n }\r\n\r\n public isExcludeErrorHandling(request: HttpRequest<any>): boolean {\r\n const requestDetails: RequestDetails = {\r\n method: request.method,\r\n path: request.url,\r\n query: this.utilService.extractQueryParams(request.params),\r\n body: request.body,\r\n };\r\n\r\n return this.excludeApiConfig.some((apiConfig) =>\r\n this.isApiConfigMatching(apiConfig, requestDetails)\r\n );\r\n }\r\n\r\n private isUnauthenticated(error: HttpErrorResponse): boolean {\r\n return error.status === ErrorStatusCode.Unauthenticated;\r\n }\r\n\r\n private isUnauthorizedAccess(error: HttpErrorResponse): boolean {\r\n return error.status === ErrorStatusCode.UnauthorizedAccess;\r\n }\r\n\r\n private isNetworkUnavailable(error: HttpErrorResponse): boolean {\r\n return error.status === ErrorStatusCode.NetworkUnavailable;\r\n }\r\n\r\n private handleServerError(\r\n error: HttpErrorResponse,\r\n request: HttpRequest<any>\r\n ) {\r\n if (this.isPageLevelError(error, request)) {\r\n this.publishGlobalError(error);\r\n } else if (this.isComponentLevelError(error, request)) {\r\n this.publishLocalError(error, request);\r\n }\r\n }\r\n\r\n private publishGlobalError(error: HttpErrorResponse) {\r\n this.globalError$.next(error);\r\n }\r\n\r\n private publishLocalError(\r\n error: HttpErrorResponse,\r\n request: HttpRequest<any>\r\n ) {\r\n this.localError$.next({ error, request });\r\n }\r\n\r\n private isPageLevelError(\r\n error: HttpErrorResponse,\r\n request: HttpRequest<any>\r\n ): boolean {\r\n const requestDetails: RequestDetails = {\r\n method: request.method,\r\n path: request.url,\r\n query: this.utilService.extractQueryParams(request.params),\r\n body: request.body,\r\n pageCode: this.getPageCode(),\r\n };\r\n\r\n return this.pageLevelApiConfig.some((apiConfig) =>\r\n this.isApiConfigMatching(apiConfig, requestDetails)\r\n );\r\n }\r\n\r\n private isComponentLevelError(\r\n error: HttpErrorResponse,\r\n request: HttpRequest<any>\r\n ): boolean {\r\n const requestDetails: RequestDetails = {\r\n method: request.method,\r\n path: request.url,\r\n query: this.utilService.extractQueryParams(request.params),\r\n body: request.body,\r\n };\r\n\r\n return this.componentLevelApiConfig.some((apiConfig) =>\r\n this.isApiConfigMatching(apiConfig, requestDetails)\r\n );\r\n }\r\n\r\n private getPageCode() {\r\n const currentRoute = this.router.routerState.snapshot.root.firstChild;\r\n return currentRoute?.data['page_path'];\r\n }\r\n\r\n private isApiConfigMatching(\r\n apiConfig: any,\r\n requestDetails: RequestDetails\r\n ): boolean {\r\n return (\r\n this.utilService.isStringEqual(apiConfig.method, requestDetails.method) &&\r\n this.utilService.isSubstringInString(\r\n apiConfig.path,\r\n requestDetails.path\r\n ) &&\r\n this.utilService.isSubsetOfObject(\r\n apiConfig.query,\r\n requestDetails.query\r\n ) &&\r\n this.utilService.isSubsetOfArray(apiConfig.body, requestDetails.body) &&\r\n (!apiConfig.pageCodes ||\r\n this.utilService.isValueInArray(\r\n apiConfig.pageCodes,\r\n requestDetails.pageCode || ''\r\n ))\r\n );\r\n }\r\n}\r\n","const BASE_URL = 'https://cdn.v-comply.com';\r\n\r\nexport const ASSETS = {\r\n VCOMPLY_LOGO: `${BASE_URL}/logo/prod/v-logo.svg`,\r\n ERROR_IMAGE: `${BASE_URL}/application/images/Error-page-illustration.svg`,\r\n COMPONENT_ERROR_IMAGE: `${BASE_URL}/application/images/sad-emoji-icon.svg`,\r\n};\r\n","import { ASSETS } from './assets.constants';\r\n\r\nexport const VCOMPLY_LOGO_URL = ASSETS.VCOMPLY_LOGO;\r\nexport const API_TIMEOUT_TIME = 1000 * 15;\r\nexport const ORGANISATION_NAME = 'VCOMPLY TECHNOLOGIES, INC.';\r\nexport const ERROR_FEATURE_FLAG = 'ff_error_handling';\r\n\r\nexport const ERROR_CONFIG = {\r\n PAGE_NOT_FOUND: {\r\n imageUrl: ASSETS.ERROR_IMAGE,\r\n title: 'Oops!',\r\n description: \"The page you're looking for doesn't exist.\",\r\n details: 'Please check the URL or return to the homepage.',\r\n buttonText: 'GO TO DASHBOARD',\r\n },\r\n\r\n UNAUTHORIZED: {\r\n imageUrl: ASSETS.ERROR_IMAGE,\r\n title: 'Oops!',\r\n description: \"You don't have permission to access this page.\",\r\n details: 'If you believe this is an error, please contact',\r\n email: 'help@v-comply.com',\r\n support: 'for support',\r\n buttonText: 'Go To Dashboard',\r\n mail: 'mailto:help@v-comply.com',\r\n },\r\n\r\n SESSION_EXPIRED: {\r\n heading: 'Session Expired!',\r\n description:\r\n 'Your session has expired. Please log in again to continue using the app.',\r\n buttonText: 'LOGIN',\r\n },\r\n\r\n CHUNK_UNAVAILABLE: {\r\n heading: 'Oops!',\r\n description:\r\n 'Something went wrong. Please refresh the page or try again later.',\r\n buttonText: 'REFRESH',\r\n },\r\n\r\n SERVER_ERROR: {\r\n imageUrl: ASSETS.ERROR_IMAGE,\r\n title: 'Oops!',\r\n description: 'We are unable to load the data.',\r\n details: 'Please refresh this page or try again later.',\r\n buttonText: 'REFRESH',\r\n snackBarMessage: `Oops! Something went wrong. Please try again later.`,\r\n },\r\n\r\n COMPONENT_LEVEL_SERVER_ERROR: {\r\n imageUrl: ASSETS.COMPONENT_ERROR_IMAGE,\r\n title: 'Oops!',\r\n description: 'We are unable to load the data.',\r\n details: 'Please refresh this section or try again later.',\r\n buttonText: 'RETRY',\r\n },\r\n\r\n NETWORK_UNAVAILABLE: {\r\n offlineMessage:\r\n \"You're currently offline. Please check your internet connection and try again.\",\r\n },\r\n};\r\n\r\nexport const REDIRECTION_URL = {\r\n COMPLIANCE_DASHBOARD: '/global-dashboard/compliance_dashboard',\r\n RISK_DASHBOARD: '/global-dashboard/risk_dashboard?module=risk',\r\n POLICY_DASHBOARD: '/global-dashboard/policy_dashboard?module=policy',\r\n ISSUE_DASHBOARD: '/global-dashboard/issue_dashboard?module=issue',\r\n CASEOPS_DASHBOARD: '/global-dashboard/case_dashboard?module=caseops',\r\n DEFAULT: '/global-dashboard',\r\n};\r\n\r\nexport const MODULE_NAMES = {\r\n RISK: 'risk',\r\n POLICY: 'policy',\r\n ISSUE: 'issue',\r\n CASEOPS: 'caseops',\r\n};\r\n\r\nexport const MODAL_ERROR_TYPES = {\r\n CHUNK_NOT_FOUND: 'chunk_not_found',\r\n SESSION_EXPIRED: 'session_expired',\r\n};\r\n\r\nexport const ALT_IMAGE_TEXT = {\r\n ERROR_IMAGE: 'Error Image',\r\n VCOMPLY_LOGO: 'VComply',\r\n};\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport {\r\n MODULE_NAMES,\r\n REDIRECTION_URL,\r\n} from '../constants/error-handling.constants';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class RouterService {\r\n public baseUrl: string = '';\r\n\r\n constructor() {\r\n this.setBaseUrl();\r\n }\r\n\r\n private setBaseUrl() {\r\n this.baseUrl = window.location.origin;\r\n }\r\n\r\n public redirectToLogin() {\r\n window.location.href =\r\n `https://${window.location.host}/` +\r\n 'signin?redirectURL=' +\r\n encodeURIComponent(window.location.href);\r\n }\r\n\r\n public redirectToHome(module_name: string) {\r\n let targetPath = REDIRECTION_URL.COMPLIANCE_DASHBOARD;\r\n\r\n switch (module_name) {\r\n case MODULE_NAMES.RISK:\r\n targetPath = REDIRECTION_URL.RISK_DASHBOARD;\r\n break;\r\n case MODULE_NAMES.POLICY:\r\n targetPath = REDIRECTION_URL.POLICY_DASHBOARD;\r\n break;\r\n case MODULE_NAMES.ISSUE:\r\n targetPath = REDIRECTION_URL.ISSUE_DASHBOARD;\r\n break;\r\n case MODULE_NAMES.CASEOPS:\r\n targetPath = REDIRECTION_URL.CASEOPS_DASHBOARD;\r\n break;\r\n default:\r\n targetPath = REDIRECTION_URL.COMPLIANCE_DASHBOARD;\r\n break;\r\n }\r\n\r\n window.location.replace(targetPath);\r\n }\r\n}\r\n","export class Configurations {\r\n public sentryConfig: any;\r\n public envConfig: any;\r\n public isErrorInterceptorEnabled?: boolean; \r\n\r\n constructor() {\r\n this.sentryConfig = {};\r\n this.envConfig = {};\r\n this.isErrorInterceptorEnabled = false;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable, Optional } from '@angular/core';\r\nimport { retry } from 'rxjs/operators';\r\nimport { AuthorizerService } from '@vcomply/authorizer';\r\nimport { Subscription } from 'rxjs';\r\nimport { Configurations } from '../configuration';\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class FeatureFlagService {\r\n environment!: any;\r\n flagFetchError = false;\r\n featuresMap: any = {};\r\n AWSFlags: any = {};\r\n flagSubscription!: Subscription;\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private authorizer: AuthorizerService,\r\n @Optional() config?: Configurations\r\n ) {\r\n this.environment = config?.envConfig;\r\n }\r\n\r\n fetchFlags() {\r\n return this.http.get(this.environment.baseUrl + 'features').pipe(retry(2));\r\n }\r\n\r\n loadConfig() {\r\n if (this.flagSubscription) {\r\n this.flagSubscription.unsubscribe();\r\n }\r\n return new Promise((resolve, reject) => {\r\n this.flagSubscription = this.fetchFlags().subscribe({\r\n next: (res: any) => {\r\n try {\r\n resolve(true);\r\n this.flagFetchError = false;\r\n this.AWSFlags = res;\r\n this.buildFeatureFlags(this.authorizer.getOrganizationId());\r\n } catch (error) {\r\n reject(error);\r\n }\r\n },\r\n error: (err: any) => {\r\n reject(\r\n new Error(\r\n err?.message || 'An error occurred while fetching feature flags'\r\n )\r\n );\r\n this.flagFetchError = true;\r\n console.error('An error occurred while fetching feature flags', err);\r\n },\r\n });\r\n });\r\n }\r\n\r\n buildFeatureFlags(orgId: any) {\r\n orgId = orgId?.toString();\r\n const enabledFeatures: any = {};\r\n Object.keys(this.AWSFlags).forEach((flag: string) => {\r\n const flagObj = this.AWSFlags[flag];\r\n enabledFeatures[flag] = false;\r\n if (flagObj) {\r\n if (flagObj?.enabled && !flagObj.hasOwnProperty('enabledOrgIds')) {\r\n enabledFeatures[flag] = true;\r\n } else if (\r\n flagObj?.enabled &&\r\n flagObj.hasOwnProperty('enabledOrgIds') &&\r\n flagObj?.enabledOrgIds?.length > 0\r\n ) {\r\n if (flagObj?.enabledOrgIds?.includes(orgId)) {\r\n enabledFeatures[flag] = true;\r\n } else {\r\n enabledFeatures[flag] = false;\r\n }\r\n } else {\r\n if (flagObj?.enabled) {\r\n enabledFeatures[flag] = true;\r\n } else {\r\n enabledFeatures[flag] = false;\r\n }\r\n }\r\n } else {\r\n enabledFeatures[flag] = true;\r\n }\r\n });\r\n this.featuresMap = enabledFeatures;\r\n }\r\n\r\n isFeatureEnabled(featureFlag: string) {\r\n if (this.featuresMap.hasOwnProperty(featureFlag)) {\r\n return this.featuresMap[featureFlag];\r\n } else {\r\n return true;\r\n }\r\n }\r\n}\r\n","import { Component, OnDestroy, OnInit, ChangeDetectionStrategy } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { SnackBarService } from '../snack-bar.service';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'app-snack-bar',\r\n templateUrl: './snack-bar.component.html',\r\n changeDetection: ChangeDetectionStrategy.Eager,\n styleUrls: ['./snack-bar.component.less'],\r\n})\r\nexport class SnackBarComponent implements OnInit, OnDestroy {\r\n show = false;\r\n message = '--';\r\n icon = '';\r\n type = 'alert';\r\n icons: any = {\r\n success: '',\r\n warning: '',\r\n info: '',\r\n alert: '',\r\n error: '',\r\n };\r\n snackbarSubscription!: Subscription;\r\n constructor(private snackbarService: SnackBarService) {}\r\n\r\n ngOnInit(): void {\r\n this.snackbarSubscription = this.snackbarService.snackbarState.subscribe(\r\n (state) => {\r\n if (state.icon && Object.keys(this.icons).includes(state?.icon)) {\r\n this.icon = this.icons[state.icon];\r\n this.type = state?.icon;\r\n }\r\n this.message = state.message;\r\n this.show = state.show;\r\n }\r\n );\r\n }\r\n\r\n setAutoClose() {\r\n setTimeout(() => {\r\n this.show = false;\r\n this.close();\r\n }, 3000);\r\n }\r\n close() {\r\n this.show = false;\r\n this.snackbarService.hide();\r\n }\r\n ngOnDestroy() {\r\n this.snackbarSubscription.unsubscribe();\r\n }\r\n}\r\n","@if (show) {\n<div class=\"workflow-snackbar\">\r\n <div class=\"workflow-snackbar-inner\">\r\n <div class=\"workflow-snackbarText\">\r\n <!--  -->\r\n <i class=\"icons\" [class]=\"type\" [innerHTML]=\"icon\"></i> <span [innerHTML]=\"message\">{{ message }}</span>\r\n </div>\r\n <button (click)=\"close()\">[ <span>Close</span> ]</button>\r\n </div>\r\n </div>\n}","import {\r\n Directive,\r\n Input,\r\n ElementRef,\r\n HostListener,\r\n Renderer2,\r\n OnInit, \r\n} from '@angular/core';\r\n\r\n@Directive({\r\n standalone: false,\r\n selector: '[arTooltip]',\r\n})\r\nexport class ToolTipDirective implements OnInit {\r\n @Input('arTooltip') tooltipTitle!: string;\r\n @Input() placement!: string;\r\n @Input() type: any;\r\n @Input() tooltipMandatory!: boolean;\r\n @Input() showTooltip = true;\r\n @Input() animate!: boolean;\r\n tooltip!: HTMLElement;\r\n offset = 8;\r\n\r\n constructor(private el: ElementRef, private renderer: Renderer2) {}\r\n ngOnInit() {}\r\n @HostListener('mouseenter') onMouseEnter() {\r\n this.hide();\r\n this.show();\r\n }\r\n @HostListener('mouseover') onMouseOver() {\r\n this.hide();\r\n this.show();\r\n }\r\n\r\n @HostListener('mouseleave') onMouseLeave() {\r\n this.hide();\r\n }\r\n @HostListener('mouseout') onMouseOut() {\r\n this.hide();\r\n }\r\n @HostListener('click') onClick() {\r\n this.hide();\r\n }\r\n show() {\r\n if (!this.showTooltip) {\r\n return;\r\n }\r\n this.create();\r\n const element = this.el.nativeElement;\r\n if (this.tooltipMandatory === true) {\r\n this.setPosition();\r\n this.renderer.addClass(this.tooltip, 'fl-tooltip-show');\r\n } else {\r\n if (\r\n element.scrollWidth * element.scrollHeight >\r\n element.offsetWidth * element.offsetHeight\r\n ) {\r\n this.setPosition();\r\n this.renderer.addClass(this.tooltip, 'fl-tooltip-show');\r\n }\r\n }\r\n }\r\n\r\n hide() {\r\n if (document.body.contains(this.tooltip)) {\r\n if (this.renderer) {\r\n this.renderer.removeChild(\r\n document.body,\r\n document.getElementById('tooltip')\r\n );\r\n }\r\n }\r\n }\r\n\r\n create() {\r\n this.tooltip = this.renderer.createElement('span');\r\n this.tooltip.setAttribute('id', 'tooltip');\r\n this.tooltip.innerHTML = this.tooltipTitle;\r\n this.renderer.appendChild(document.body, this.tooltip);\r\n this.renderer.addClass(this.tooltip, 'fl-tooltip');\r\n this.renderer.addClass(this.tooltip, `fl-tooltip-${this.placement}`);\r\n this.renderer.addClass(this.tooltip, `${this.type}`);\r\n if (this.animate) {\r\n this.renderer.addClass(this.tooltip, `animate-${this.placement}`);\r\n }\r\n }\r\n\r\n setPosition() {\r\n const hostPos = this.el.nativeElement.getBoundingClientRect();\r\n const tooltipPos = this.tooltip.getBoundingClientRect();\r\n const scrollPos =\r\n window.pageYOffset ||\r\n document.documentElement.scrollTop ||\r\n document.body.scrollTop ||\r\n 0;\r\n const w = window.innerWidth;\r\n const h = window.innerHeight;\r\n let top;\r\n let left;\r\n if (this.placement === 'top') {\r\n top = hostPos.top - tooltipPos.height - this.offset;\r\n left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\r\n }\r\n\r\n if (this.placement === 'bottom') {\r\n if (hostPos.top + tooltipPos.height > h) {\r\n top = hostPos.top - tooltipPos.height;\r\n left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\r\n this.renderer.removeClass(this.tooltip, `fl-tooltip-bottom`);\r\n this.renderer.addClass(this.tooltip, `fl-tooltip-top`);\r\n } else {\r\n top = hostPos.bottom + this.offset;\r\n left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\r\n }\r\n }\r\n\r\n if (this.placement === 'left') {\r\n top = hostPos.top + (hostPos.height - tooltipPos.height) / 2;\r\n left = hostPos.left - tooltipPos.width - this.offset;\r\n }\r\n\r\n if (this.placement === 'right') {\r\n top = hostPos.top + (hostPos.height - tooltipPos.height) / 2;\r\n left = hostPos.right + this.offset;\r\n }\r\n if (this.placement === 'bottom-right') {\r\n top = hostPos.bottom + this.offset;\r\n left = hostPos.left - (tooltipPos.width - 28);\r\n }\r\n if (this.placement === 'bottom-left') {\r\n if (hostPos.top + tooltipPos.height > h - 30) {\r\n top = hostPos.top - tooltipPos.height;\r\n left = hostPos.left;\r\n this.renderer.removeClass(this.tooltip, `fl-tooltip-bottom-left`);\r\n this.renderer.addClass(this.tooltip, `fl-tooltip-top-left`);\r\n } else {\r\n top = hostPos.bottom + this.offset;\r\n left = hostPos.left;\r\n }\r\n }\r\n this.renderer.setStyle(this.tooltip, 'top', `${top + scrollPos}px`);\r\n this.renderer.setStyle(this.tooltip, 'left', `${left}px`);\r\n }\r\n}\r\n","import { Component, ChangeDetectionStrategy } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\nimport {\r\n ERROR_CONFIG,\r\n VCOMPLY_LOGO_URL,\r\n ORGANISATION_NAME,\r\n ALT_IMAGE_TEXT,\r\n REDIRECTION_URL,\r\n} from '../../constants/error-handling.constants';\r\n\r\nimport { RouterService } from '../../services/router.service';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'lib-vc-error-unauthorized',\r\n template: `\r\n <div class=\"errorPage\">\r\n <div class=\"errorPage-top\" (click)=\"redirectToDashboard()\">\r\n <a\r\n class=\"product-logo vx-d-flex vx-align-center vx-justify-center vx-mr-3\"\r\n [arTooltip]=\"errorConfig.buttonText\"\r\n placement=\"right\"\r\n type=\"white\"\r\n delay=\"0\"\r\n [tooltipMandatory]=\"true\"\r\n [animate]=\"true\"\r\n [href]=\"defaultURL\"\r\n >\r\n <img\r\n [ngSrc]=\"VcomplyLogo\"\r\n [alt]=\"altImageText.VCOMPLY_LOGO\"\r\n width=\"24\"\r\n height=\"24\"\r\n />\r\n </a>\r\n </div>\r\n <div class=\"errorPage-container\">\r\n <div class=\"errorPage-inner\">\r\n <div class=\"errorPage-inner-image\">\r\n <img\r\n [ngSrc]=\"errorConfig.imageUrl\"\r\n [alt]=\"altImageText.ERROR_IMAGE\"\r\n width=\"246\"\r\n height=\"178\"\r\n />\r\n </div>\r\n <div class=\"errorPage-inner-right\">\r\n <div class=\"errorPage-heading\">{{ errorConfig.title }}</div>\r\n <div class=\"errorPage-text\">{{ errorConfig.description }}</div>\r\n <div class=\"errorPage-details\">\r\n {{ errorConfig.details }}\r\n <a [href]=\"'mailto:' + errorConfig.email\">{{\r\n errorConfig.email\r\n }}</a>\r\n {{ errorConfig.support }}.\r\n </div>\r\n <button class=\"errorPage-btn\" (click)=\"redirectToDashboard()\">\r\n {{ errorConfig.buttonText }} <i class=\"icons\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"errorPage-copyright\">\r\n © {{ currentYear }}, {{ organisationName }}\r\n </div>\r\n </div>\r\n </div>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.Eager,\n styleUrls: ['../common-error-page.component.less'],\r\n})\r\nexport class UnauthorizedComponent {\r\n constructor(\r\n private route: ActivatedRoute,\r\n private routerService: RouterService\r\n ) {}\r\n\r\n currentYear = new Date().getFullYear();\r\n errorConfig = ERROR_CONFIG.UNAUTHORIZED;\r\n VcomplyLogo = VCOMPLY_LOGO_URL;\r\n altImageText = ALT_IMAGE_TEXT;\r\n organisationName = ORGANISATION_NAME;\r\n defaultURL = this.routerService.baseUrl + REDIRECTION_URL.DEFAULT;\r\n\r\n public redirectToDashboard() {\r\n const module_name = this.route.snapshot.data['page_path'];\r\n this.routerService.redirectToHome(module_name);\r\n }\r\n}\r\n","export class DialogConfig<D = any> {\r\n data?: D;\r\n position?: any;\r\n background?: any;\r\n pointer?: any;\r\n}\r\n","import { Component, Input, OnInit, ChangeDetectionStrategy } from '@angular/core';\r\n\r\nimport { DialogConfig } from '../../../ui-kit/dialog/dialog-config';\r\n\r\nimport { AuthorizerService } from '@vcomply/authorizer';\r\nimport { RouterService } from '../../services/router.service';\r\n\r\nimport { DialogData, ModalErrorType } from '../../types/global-error.types';\r\nimport { MODAL_ERROR_TYPES } from '../../constants/error-handling.constants';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'lib-vc-error-modal',\r\n template: ` <div class=\"error-dialog-box\">\r\n <div class=\"error-dialog-box-top\">{{ data.heading }}</div>\r\n <div class=\"error-dialog-box-mid\">\r\n {{ data.description }}\r\n </div>\r\n <div class=\"error-dialog-box-bottom\">\r\n <button (click)=\"onContinueAction()\" class=\"logIn-btn\">\r\n {{ data.buttonText }}\r\n </button>\r\n </div>\r\n </div>`,\r\n changeDetection: ChangeDetectionStrategy.Eager,\n styleUrls: ['./error-modal.component.less'],\r\n})\r\nexport class ErrorModalComponent {\r\n errorTypes = MODAL_ERROR_TYPES;\r\n\r\n @Input() errorType: ModalErrorType | undefined;\r\n\r\n data: DialogData = {\r\n heading: 'Message',\r\n description: 'Description',\r\n buttonText: 'Click Action',\r\n };\r\n\r\n constructor(\r\n private authService: AuthorizerService,\r\n private dialogConfig: DialogConfig,\r\n private routerService: RouterService\r\n ) {\r\n this.setDataConfig();\r\n }\r\n\r\n private setDataConfig() {\r\n this.data = this.dialogConfig.data?.errorConfig;\r\n this.errorType = this.dialogConfig.data?.errorType;\r\n }\r\n\r\n public onContinueAction() {\r\n switch (this.errorType) {\r\n case this.errorTypes.SESSION_EXPIRED:\r\n this.authService.logout();\r\n this.routerService.redirectToLogin();\r\n break;\r\n\r\n case this.errorTypes.CHUNK_NOT_FOUND:\r\n window.location.reload();\r\n break;\r\n }\r\n }\r\n}\r\n","import { Directive, ViewContainerRef } from '@angular/core';\r\n\r\n@Directive({\r\n standalone: false,\r\n selector: '[appInsertion]',\r\n})\r\nexport class InsertionDirective {\r\n constructor(public viewContainerRef: ViewContainerRef) {}\r\n}\r\n","import { Observable, Subject } from 'rxjs';\r\n\r\nexport class DialogRef {\r\n private readonly afterDialogClosed = new Subject<any>();\r\n afterClosed: Observable<any> = this.afterDialogClosed.asObservable();\r\n constructor() {}\r\n\r\n close(result?: any) {\r\n // debugger\r\n this.afterDialogClosed.next(result);\r\n document.body.style.overflow = 'auto';\r\n }\r\n}\r\n","import { Component, Type, ViewChild, OnDestroy, ComponentRef, AfterViewInit, ChangeDetectorRef, OnInit, ChangeDetectionStrategy } from '@angular/core';\r\nimport { InsertionDirective } from './insertion.directive';\r\nimport { Subject } from 'rxjs';\r\nimport { DialogRef } from './dialog-ref';\r\nimport { DialogConfig } from './dialog-config';\r\nimport { NavigationEnd, NavigationError, NavigationStart, Router, ROUTER_CONFIGURATION } from '@angular/router';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'app-dialog',\r\n templateUrl: './dialog.component.html',\r\n changeDetection: ChangeDetectionStrategy.Eager,\n styleUrls: ['./dialog.component.css'],\r\n})\r\nexport class DialogComponent implements AfterViewInit, OnDestroy, OnInit {\r\n componentRef!: ComponentRef<any>;\r\n position: any;\r\n background: any;\r\n pointer: any;\r\n @ViewChild(InsertionDirective, { static: true })\r\n insertionPoint!: InsertionDirective;\r\n animation = true;\r\n\r\n private readonly onDialogClose = new Subject<any>();\r\n public onClose = this.onDialogClose.asObservable();\r\n\r\n childComponentType!: Type<any>;\r\n\r\n constructor(\r\n private cd: ChangeDetectorRef,\r\n private dialogRef: DialogRef,\r\n public config: DialogConfig,\r\n private router: Router\r\n ) {\r\n // this.componentRef = this.componentRef;\r\n // this.animate = this.animate;\r\n // this.insertionPoint = this.insertionPoint;\r\n // this.childComponentType = this.childComponentType;\r\n }\r\n ngOnInit() {\r\n this.position = this.config.position;\r\n this.background = this.config.background;\r\n document.body.style.overflow = 'hidden';\r\n setTimeout(() => {\r\n this.animation = false;\r\n }, 200);\r\n this.routeAction();\r\n }\r\n\r\n routeAction() {\r\n this.router.events.subscribe((event: any) => {\r\n if (event instanceof NavigationStart) {\r\n // Show loading indicator\r\n }\r\n if (event instanceof NavigationEnd) {\r\n // Hide loading indicator\r\n this.dialogRef.close();\r\n }\r\n if (event instanceof NavigationError) {\r\n // Hide loading indicator\r\n // Present error to user\r\n }\r\n });\r\n }\r\n ngAfterViewInit() {\r\n this.loadChildComponent(this.childComponentType);\r\n this.cd.detectChanges();\r\n }\r\n\r\n onOverlayClicked(evt: MouseEvent) {\r\n // this.dialogRef.close();\r\n }\r\n\r\n onDialogClicked(evt: MouseEvent) {\r\n evt.stopPropagation();\r\n }\r\n\r\n loadChildComponent(componentType: Type<any>) {\r\n const viewContainerRef = this.insertionPoint.viewContainerRef;\r\n viewContainerRef.clear();\r\n\r\n this.componentRef = viewContainerRef.createComponent(componentType);\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.componentRef) {\r\n this.componentRef.destroy();\r\n }\r\n }\r\n\r\n close(data?: any) {\r\n this.onDialogClose.next(data);\r\n document.body.style.overflow = 'auto';\r\n }\r\n}\r\n","<div\r\n class=\"overlay\"\r\n (click)=\"onOverlayClicked($event)\"\r\n [class.top]=\"position === 'TOP'\"\r\n [class.right]=\"position === 'RIGHT'\"\r\n [class.bottom]=\"position === 'BOTTOM'\"\r\n [class.left]=\"position === 'LEFT'\"\r\n [class.center]=\"position === 'CENTER'\"\r\n [class.black]=\"background === 'black'\"\r\n [class.whiteBlur]=\"background === 'whiteBlur'\"\r\n [class.pointer-none]=\"pointer === 'none'\"\r\n>\r\n <div\r\n class=\"dialog\"\r\n [class.animate]=\"animation\"\r\n (click)=\"onDialogClicked($event)\"\r\n [class.top]=\"position === 'TOP'\"\r\n [class.right]=\"position === 'RIGHT'\"\r\n [class.bottom]=\"position === 'BOTTOM'\"\r\n [class.left]=\"position === 'LEFT'\"\r\n [class.center]=\"position === 'CENTER'\"\r\n >\r\n <ng-template appInsertion></ng-template>\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DialogComponent } from './dialog.component';\r\nimport { InsertionDirective } from './insertion.directive';\r\nimport { DialogRef } from './dialog-ref';\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [DialogComponent, InsertionDirective],\r\n providers: [DialogRef],\r\n exports:[DialogComponent]\r\n})\r\nexport class DialogModule {}\r\n","import { Injector, Type, InjectionToken } from '@angular/core';\r\n\r\nexport class DialogInjector implements Injector {\r\n constructor(private parentDialogInjector: Injector, private dialogAdditionalTokens: WeakMap<any, any>) {}\r\n\r\n get<T>(token: Type<T> | InjectionToken<T>, notFoundValue?: T): T;\r\n // get(token: any, notFoundValue?: any){return; }\r\n get(token: any, notFoundValue?: any) {\r\n const value = this.dialogAdditionalTokens.get(token);\r\n if (value) {\r\n return value;\r\n }\r\n return this.parentDialogInjector.get<any>(token, notFoundValue);\r\n }\r\n}\r\n","import { Injectable, ApplicationRef, createComponent, EnvironmentInjector, Injector, Type, EmbeddedViewRef, ComponentRef } from '@angular/core';\r\nimport { DialogModule } from './dialog.module';\r\nimport { DialogComponent } from './dialog.component';\r\nimport { DialogInjector } from './dialog-injector';\r\nimport { DialogConfig } from './dialog-config';\r\nimport { DialogRef } from './dialog-ref';\r\n\r\n@Injectable({\r\n providedIn: DialogModule,\r\n})\r\nexport class DialogService {\r\n dialogComponentRef!: ComponentRef<DialogComponent>;\r\n\r\n constructor(\r\n private appRef: ApplicationRef,\r\n private injector: Injector,\r\n private environmentInjector: EnvironmentInjector\r\n ) {}\r\n\r\n public open(componentType: Type<any>, config: DialogConfig) {\r\n const dialogRef = this.appendDialogComponentToBody(config);\r\n\r\n this.dialogComponentRef.instance.childComponentType = componentType;\r\n\r\n return dialogRef;\r\n }\r\n\r\n private appendDialogComponentToBody(config: DialogConfig) {\r\n const map = new WeakMap();\r\n map.set(DialogConfig, config);\r\n\r\n const dialogRef = new DialogRef();\r\n map.set(DialogRef, dialogRef);\r\n\r\n const sub = dialogRef.afterClosed.subscribe(() => {\r\n this.removeDialogComponentFromBody();\r\n sub.unsubscribe();\r\n });\r\n\r\n const componentRef = createComponent(DialogComponent, {\r\n environmentInjector: this.environmentInjector,\r\n elementInjector: new DialogInjector(this.injector, map),\r\n });\r\n\r\n this.appRef.attachView(componentRef.hostView);\r\n\r\n const domElem = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\r\n document.body.appendChild(domElem);\r\n\r\n this.dialogComponentRef = componentRef;\r\n\r\n this.dialogComponentRef.instance.onClose.subscribe(() => {\r\n this.removeDialogComponentFromBody();\r\n });\r\n\r\n return dialogRef;\r\n }\r\n\r\n private removeDialogComponentFromBody() {\r\n this.appRef.detachView(this.dialogComponentRef.hostView);\r\n this.dialogComponentRef.destroy();\r\n }\r\n}\r\n","import { Component, OnInit, ChangeDetectionStrategy } from '@angular/core';\r\n\r\nimport { ErrorModalComponent } from '../error-modal/error-modal.component';\r\n\r\nimport { DialogService } from '../../../ui-kit/dialog/dialog.service';\r\n\r\nimport { ERROR_CONFIG, MODAL_ERROR_TYPES } from '../../constants/error-handling.constants';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'lib-vc-error-session-expired',\r\n changeDetection: ChangeDetectionStrategy.Eager,\n template: ``,\r\n})\r\nexport class SessionExpiredComponent implements OnInit {\r\n errorConfig = ERROR_CONFIG.SESSION_EXPIRED;\r\n errorTypes = MODAL_ERROR_TYPES;\r\n\r\n constructor(\r\n private dialogService: DialogService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.openSessionExpiredModal();\r\n }\r\n\r\n private openSessionExpiredModal() {\r\n this.dialogService.open(ErrorModalComponent, {\r\n data: {\r\n errorType: this.errorTypes.SESSION_EXPIRED,\r\n errorConfig: this.errorConfig,\r\n },\r\n position: 'center',\r\n background: 'whiteBlur',\r\n });\r\n }\r\n}\r\n","import { Component, OnInit, ChangeDetectionStrategy } from '@angular/core';\r\n\r\nimport { ErrorModalComponent } from '../error-modal/error-modal.component';\r\n\r\nimport { DialogService } from '../../../ui-kit/dialog/dialog.service';\r\n\r\nimport {\r\n ERROR_CONFIG,\r\n MODAL_ERROR_TYPES,\r\n} from '../../constants/error-handling.constants';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'lib-vc-error-chunk-unavailable',\r\n changeDetection: ChangeDetectionStrategy.Eager,\n template: ``,\r\n})\r\nexport class ChunkUnavailableComponent implements OnInit {\r\n errorConfig = ERROR_CONFIG.CHUNK_UNAVAILABLE;\r\n errorType = MODAL_ERROR_TYPES;\r\n\r\n constructor(private dialogService: DialogService) {}\r\n\r\n ngOnInit() {\r\n this.openSessionExpiredModal();\r\n }\r\n\r\n private openSessionExpiredModal() {\r\n this.dialogService.open(ErrorModalComponent, {\r\n data: {\r\n errorType: this.errorType.CHUNK_NOT_FOUND,\r\n errorConfig: this.errorConfig,\r\n },\r\n position: 'center',\r\n background: 'whiteBlur',\r\n });\r\n }\r\n}\r\n","import { Component, ChangeDetectionStrategy } from '@angular/core';\r\n\r\nimport {\r\n ERROR_CONFIG,\r\n VCOMPLY_LOGO_URL,\r\n ALT_IMAGE_TEXT,\r\n} from '../../constants/error-handling.constants';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'lib-vc-error-server-error',\r\n template: `\r\n <div class=\"errorPage\">\r\n <div class=\"errorPage-top\">\r\n <img\r\n [ngSrc]=\"VcomplyLogo\"\r\n [alt]=\"altImageText.VCOMPLY_LOGO\"\r\n width=\"24\"\r\n height=\"24\"\r\n />\r\n </div>\r\n <div class=\"errorPage-container\">\r\n <div class=\"errorPage-inner\">\r\n <div class=\"errorPage-inner-image\">\r\n <img\r\n [ngSrc]=\"errorConfig.imageUrl\"\r\n [alt]=\"altImageText.ERROR_IMAGE\"\r\n width=\"246\"\r\n height=\"178\"\r\n />\r\n </div>\r\n <div class=\"errorPage-inner-right\">\r\n <div class=\"errorPage-heading\">{{ errorConfig.title }}</div>\r\n <div class=\"errorPage-text\">{{ errorConfig.description }}</div>\r\n <div class=\"errorPage-details\">{{ errorConfig.details }}</div>\r\n <button class=\"errorPage-btn\" (click)=\"refreshPage()\">\r\n {{ errorConfig.buttonText }} <i class=\"icons\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.Eager,\n styleUrls: ['../common-error-page.component.less'],\r\n})\r\nexport class ServerErrorComponent {\r\n errorConfig = ERROR_CONFIG.SERVER_ERROR;\r\n VcomplyLogo = VCOMPLY_LOGO_URL;\r\n altImageText = ALT_IMAGE_TEXT;\r\n\r\n public refreshPage() {\r\n window.location.reload();\r\n }\r\n}\r\n","import { Component, Input, OnDestroy, OnInit, ChangeDetectionStrategy } from '@angular/core';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\n\r\nimport { GlobalErrorService } from './shared/services/global-error.service';\r\nimport { SnackBarService } from './ui-kit/snack-bar/snack-bar.service';\r\n\r\nimport { ErrorStatusCode } from './shared/types/global-error.types';\r\nimport { ERROR_CONFIG } from './shared/constants/error-handling.constants';\r\nimport { FeatureFlagService } from './featureFlag/feature-flag.service';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'lib-vc-error-handlers',\r\n changeDetection: ChangeDetectionStrategy.Eager,\n template: `\r\n <app-snack-bar></app-snack-bar>\r\n @if (sessionExpired) {\n<lib-vc-error-session-expired\r\n \r\n ></lib-vc-error-session-expired>\n}\r\n\r\n @if (unauthorized) {\n<lib-vc-error-unauthorized></lib-vc-error-unauthorized>\n}\r\n @if (chunkUnavailable) {\n<lib-vc-error-chunk-unavailable\r\n \r\n ></lib-vc-error-chunk-unavailable>\n}\r\n @if (serverError) {\n<lib-vc-error-server-error></lib-vc-error-server-error>\n}\r\n `,\r\n})\r\nexport class VcErrorHandlersComponent implements OnInit, OnDestroy {\r\n private errorConfig = ERROR_CONFIG.NETWORK_UNAVAILABLE;\r\n\r\n unauthorized: boolean = false;\r\n sessionExpired: boolean = false;\r\n chunkUnavailable: boolean = false;\r\n serverError: boolean = false;\r\n isOnline: boolean = navigator.onLine;\r\n\r\n @Input() disableSnackBar: boolean = false;\r\n @Input() feature!: FeatureFlagService;\r\n\r\n constructor(\r\n private errorService: GlobalErrorService,\r\n private snackBarService: SnackBarService,\r\n private featureFlagService: FeatureFlagService\r\n ) {\r\n this.subscribeGlobalError();\r\n }\r\n\r\n ngOnInit() {\r\n this.subscribeNetworkDetection();\r\n this.featureFlagService.featuresMap = this.feature.featuresMap;\r\n }\r\n\r\n ngOnDestroy() {\r\n window.removeEventListener('online', this.onNetworkOnline);\r\n window.removeEventListener('offline', this.onNetworkOffline);\r\n }\r\n\r\n private subscribeGlobalError() {\r\n this.errorService.globalError$.subscribe((error: HttpErrorResponse) => {\r\n this.handleError(error);\r\n });\r\n }\r\n\r\n private handleError(error: HttpErrorResponse) {\r\n const errorHandlers: { [key: number]: () => void } = {\r\n [ErrorStatusCode.Unauthenticated]: () => (this.sessionExpired = true),\r\n [ErrorStatusCode.UnauthorizedAccess]: () => (this.unauthorized = true),\r\n [ErrorStatusCode.JSChunkUnavailable]: () =>\r\n (this.chunkUnavailable = true),\r\n [ErrorStatusCode.NetworkUnavailable]: () => this.handleNetworkError(),\r\n };\r\n\r\n if (errorHandlers[error.status]) {\r\n errorHandlers[error.status]();\r\n } else if (this.errorService.isServerError(error)) {\r\n this.serverError = true;\r\n }\r\n }\r\n\r\n private subscribeNetworkDetection() {\r\n window.addEventListener('online', this.onNetworkOnline);\r\n window.addEventListener('offline', this.onNetworkOffline);\r\n }\r\n\r\n private onNetworkOnline = () => {\r\n this.isOnline = true;\r\n this.hideSnackBar();\r\n };\r\n\r\n private onNetworkOffline = () => {\r\n this.isOnline = false;\r\n if (!this.disableSnackBar) {\r\n this.showOfflineSnackBar();\r\n }\r\n };\r\n\r\n private handleNetworkError() {\r\n if (!this.isOnline && !this.disableSnackBar) {\r\n this.showOfflineSnackBar();\r\n }\r\n }\r\n\r\n private showOfflineSnackBar() {\r\n this.snackBarService.show(this.errorConfig.offlineMessage, 'error');\r\n }\r\n\r\n private hideSnackBar() {\r\n this.snackBarService.hide();\r\n }\r\n}\r\n","import { Component, Optional, ChangeDetectionStrategy } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\nimport {\r\n ERROR_CONFIG,\r\n VCOMPLY_LOGO_URL,\r\n ORGANISATION_NAME,\r\n ALT_IMAGE_TEXT,\r\n REDIRECTION_URL,\r\n} from '../../constants/error-handling.constants';\r\n\r\nimport { RouterService } from '../../services/router.service';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'lib-vc-error-page-not-found',\r\n template: `\r\n <div class=\"errorPage\">\r\n <div class=\"errorPage-top\" (click)=\"redirectToDashboard()\">\r\n <a\r\n class=\"product-logo vx-d-flex vx-align-center vx-justify-center vx-mr-3\"\r\n [arTooltip]=\"errorConfig.buttonText\"\r\n placement=\"right\"\r\n type=\"white\"\r\n delay=\"0\"\r\n [tooltipMandatory]=\"true\"\r\n [animate]=\"true\"\r\n [href]=\"defaultURL\"\r\n >\r\n <img\r\n [ngSrc]=\"VcomplyLogo\"\r\n [alt]=\"altImageText.VCOMPLY_LOGO\"\r\n width=\"24\"\r\n height=\"24\"\r\n />\r\n </a>\r\n </div>\r\n <div class=\"errorPage-container\">\r\n <div class=\"errorPage-inner\">\r\n <div class=\"errorPage-inner-image\">\r\n <img\r\n [ngSrc]=\"errorConfig.imageUrl\"\r\n [alt]=\"altImageText.ERROR_IMAGE\"\r\n width=\"246\"\r\n height=\"178\"\r\n />\r\n </div>\r\n <div class=\"errorPage-inner-right\">\r\n <div class=\"errorPage-heading\">{{ errorConfig.title }}</div>\r\n <div class=\"errorPage-text\">{{ errorConfig.description }}</div>\r\n <div class=\"errorPage-details\">{{ errorConfig.details }}</div>\r\n <button class=\"errorPage-btn\" (click)=\"redirectToDashboard()\">\r\n {{ errorConfig.buttonText }} <i class=\"icons\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"errorPage-copyright\">\r\n © {{ currentYear }}, {{ organisationName }}\r\n </div>\r\n </div>\r\n </div>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.Eager,\n styleUrls: ['../common-error-page.component.less'],\r\n})\r\nexport class PageNotFoundComponent {\r\n errorConfig = ERROR_CONFIG.PAGE_NOT_FOUND;\r\n VcomplyLogo = VCOMPLY_LOGO_URL;\r\n altImageText = ALT_IMAGE_TEXT;\r\n currentYear = new Date().getFullYear();\r\n organisationName = ORGANISATION_NAME;\r\n defaultURL = this.routerService.baseUrl + REDIRECTION_URL.DEFAULT;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private routerService: RouterService\r\n ) {}\r\n\r\n public redirectToDashboard() {\r\n const module_name = this.route.snapshot.data['page_path'];\r\n this.routerService.redirectToHome(module_name);\r\n }\r\n}\r\n","import { Component, EventEmitter, Output, ChangeDetectionStrategy } from '@angular/core';\r\n\r\nimport {\r\n ERROR_CONFIG,\r\n ALT_IMAGE_TEXT,\r\n} from '../../constants/error-handling.constants';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'lib-vc-error-component-server-error',\r\n template: `\r\n <div class=\"serverError\">\r\n <div class=\"serverError-inner\">\r\n <div class=\"serverError-inner-image\">\r\n <img\r\n [ngSrc]=\"errorConfig.imageUrl\"\r\n [alt]=\"altImageText.ERROR_IMAGE\"\r\n width=\"106\"\r\n height=\"76\"\r\n />\r\n </div>\r\n <div class=\"serverError-inner-bottom\">\r\n <div class=\"serverError-heading\">{{ errorConfig.title }}</div>\r\n <div class=\"serverError-text\">{{ errorConfig.description }}</div>\r\n <div class=\"serverError-details\">{{ errorConfig.details }}</div>\r\n <button class=\"serverError-btn\" (click)=\"onClick.emit(true)\">\r\n {{ errorConfig.buttonText }}\r\n <i class=\"icons\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.Eager,\n styleUrls: ['./component-level-server-error.component.less'],\r\n})\r\nexport class ComponentLevelServerErrorComponent {\r\n errorConfig = ERROR_CONFIG.COMPONENT_LEVEL_SERVER_ERROR;\r\n altImageText = ALT_IMAGE_TEXT;\r\n\r\n @Output() onClick = new EventEmitter<boolean>();\r\n}\r\n","import {\r\n Directive,\r\n Input,\r\n OnInit,\r\n TemplateRef,\r\n ViewContainerRef\r\n} from \"@angular/core\";\r\nimport { FeatureFlagService } from \"./feature-flag.service\";\r\n\r\n\r\n@Directive({\r\n standalone: false,\r\n selector: \"[featureFlag]\"\r\n})\r\nexport class FeatureFlagDirective implements OnInit {\r\n @Input() featureFlag!: string;\r\n constructor(\r\n private tpl: TemplateRef<any>,\r\n private vcr: ViewContainerRef,\r\n private featureFlagService: FeatureFlagService\r\n ) {}\r\n\r\n ngOnInit() {\r\n const isEnabled = this.featureFlagService.isFeatureEnabled(this.featureFlag);\r\n if (isEnabled) {\r\n this.vcr.createEmbeddedView(this.tpl);\r\n }\r\n }\r\n}","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FeatureFlagDirective } from './feature-flag.directive';\r\n\r\n@NgModule({\r\n declarations: [FeatureFlagDirective],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports:[FeatureFlagDirective]\r\n})\r\nexport class FeatureFlagModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SnackBarComponent } from './snack-bar/snack-bar.component';\r\n\r\n@NgModule({\r\n declarations: [SnackBarComponent],\r\n imports: [CommonModule],\r\n exports: [SnackBarComponent],\r\n})\r\nexport class SnackBarModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ToolTipDirective } from './tooltip.directive';\r\n\r\n@NgModule({\r\n declarations: [ToolTipDirective],\r\n imports: [CommonModule],\r\n exports: [ToolTipDirective],\r\n})\r\nexport class TooltipModule {}\r\n","import { ErrorHandler, Injectable, Optional } from '@angular/core';\r\nimport * as Sentry from '@sentry/angular';\r\nimport { Configurations } from '../../configuration';\r\n\r\nimport { AuthorizerService } from '@vcomply/authorizer';\r\nimport { GlobalErrorService } from '../services/global-error.service';\r\n\r\nimport { ErrorStatusCode } from '../types/global-error.types';\r\n\r\n@Injectable()\r\nexport class SentryErrorHandler implements ErrorHandler {\r\n constructor(\r\n private authorizerService: AuthorizerService,\r\n private errorService: GlobalErrorService,\r\n @Optional() config?: Configurations\r\n ) {\r\n if (config?.sentryConfig) {\r\n const SENTRY_CONFIG = config.sentryConfig;\r\n Sentry.init({\r\n dsn: SENTRY_CONFIG?.DSN,\r\n integrations: [\r\n Sentry.browserTracingIntegration(),\r\n Sentry.replayIntegration(),\r\n ],\r\n tracesSampleRate: SENTRY_CONFIG.TRACES_SAMPLE_RATE,\r\n tracePropagationTargets: SENTRY_CONFIG.ALLOW_ORIGIN,\r\n replaysSessionSampleRate: SENTRY_CONFIG.REPLAY_SESSION_SAMPLE_RATE,\r\n replaysOnErrorSampleRate: SENTRY_CONFIG.REPLAY_ON_ERROR_SAMPLE_RATE,\r\n });\r\n Sentry.setUser({ userDetails: this.authorizerService.getUser() });\r\n }\r\n }\r\n\r\n handleError(error: any) {\r\n const ERROR = error?.originalError || error;\r\n this.handleChunkError(ERROR);\r\n Sentry.captureException(ERROR);\r\n }\r\n\r\n handleChunkError(error: Error) {\r\n const chunkFailedMessage = /Loading chunk [\\d]+ failed/;\r\n if (chunkFailedMessage.test(error?.message)) {\r\n window.location.reload();\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n HttpRequest,\r\n HttpHandler,\r\n HttpEvent,\r\n HttpInterceptor,\r\n HttpErrorResponse,\r\n HttpResponse,\r\n} from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError, tap, timeout } from 'rxjs/operators';\r\n\r\nimport { GlobalErrorService } from '../services/global-error.service';\r\n\r\nimport { API_TIMEOUT_TIME } from '../constants/error-handling.constants';\r\n\r\n@Injectable()\r\nexport class HttpReqInterceptor implements HttpInterceptor {\r\n constructor(private errorService: GlobalErrorService) {}\r\n\r\n intercept(\r\n req: HttpRequest<any>,\r\n next: HttpHandler\r\n ): Observable<HttpEvent<any>> {\r\n if (this.errorService.isExcludeErrorHandling(req)) {\r\n return next.handle(req);\r\n }\r\n return next.handle(req).pipe(\r\n timeout(API_TIMEOUT_TIME),\r\n tap((event: HttpEvent<any>) => {\r\n if (event instanceof HttpResponse) {\r\n this.errorService.handleSoftErrors(event);\r\n }\r\n }),\r\n catchError((error: HttpErrorResponse) => {\r\n this.errorService.handleError(error, req);\r\n return throwError(error);\r\n })\r\n );\r\n }\r\n}\r\n","import {\r\n APP_INITIALIZER,\r\n ErrorHandler,\r\n InjectionToken,\r\n ModuleWithProviders,\r\n NgModule,\r\n} from '@angular/core';\r\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { CommonModule, NgOptimizedImage } from '@angular/common';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { PageNotFoundComponent } from './shared/components/page-not-found/page-not-found.component';\r\nimport { VcErrorHandlersComponent } from './vc-error-handlers.component';\r\n\r\nimport { DialogModule } from './ui-kit/dialog/dialog.module';\r\nimport { FeatureFlagModule } from './featureFlag/feature-flag.module';\r\nimport { SnackBarModule } from './ui-kit/snack-bar/snack-bar.module';\r\nimport { TooltipModule } from './ui-kit/tooltip/tooltip.module';\r\n\r\nimport { FeatureFlagService } from './featureFlag/feature-flag.service';\r\n\r\nimport * as Sentry from '@sentry/angular';\r\nimport { SentryErrorHandler } from './shared/errorhandler/sentry-error.handler';\r\nimport { Configurations } from './configuration';\r\nimport { UnauthorizedComponent } from './shared/components/unauthorized/unauthorized.component';\r\nimport { SessionExpiredComponent } from './shared/components/session-expired/session-expired.component';\r\nimport { ChunkUnavailableComponent } from './shared/components/chunk-unavailable/chunk-unavailable.component';\r\nimport { ServerErrorComponent } from './shared/components/server-error/server-error.component';\r\n\r\nimport { HttpReqInterceptor } from './shared/interceptors/http.interceptor';\r\nimport { ErrorModalComponent } from './shared/components/error-modal/error-modal.component';\r\nimport { ComponentLevelServerErrorComponent } from './shared/components/component-level-server-error/component-level-server-error.component';\r\n\r\nexport const FOR_ROOT_SENTRY_OPTIONS_TOKEN = new InjectionToken<Sentry.BrowserOptions>(\r\n 'forRoot() SentryErrorHandler options'\r\n);\r\n\r\n@NgModule({\r\n declarations: [\r\n VcErrorHandlersComponent,\r\n PageNotFoundComponent,\r\n UnauthorizedComponent,\r\n SessionExpiredComponent,\r\n ChunkUnavailableComponent,\r\n ServerErrorComponent,\r\n ErrorModalComponent,\r\n ComponentLevelServerErrorComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n DialogModule,\r\n FeatureFlagModule,\r\n NgOptimizedImage,\r\n SnackBarModule,\r\n TooltipModule,\r\n ],\r\n exports: [\r\n VcErrorHandlersComponent,\r\n PageNotFoundComponent,\r\n UnauthorizedComponent,\r\n SessionExpiredComponent,\r\n ChunkUnavailableComponent,\r\n ServerErrorComponent,\r\n ErrorModalComponent,\r\n ComponentLevelServerErrorComponent,\r\n ],\r\n bootstrap: [VcErrorHandlersComponent],\r\n})\r\nexport class VcErrorHandlersModule {\r\n constructor(private loadConfig: FeatureFlagService) {\r\n // this.loadConfig.loadConfig();\r\n }\r\n\r\n public static forRoot(\r\n environmentConfig: Configurations\r\n ): ModuleWithProviders<VcErrorHandlersModule> {\r\n const providers: any[] = [\r\n { provide: Configurations, useValue: environmentConfig },\r\n { provide: ErrorHandler, useClass: SentryErrorHandler },\r\n ];\r\n\r\n if (environmentConfig.sentryConfig) {\r\n providers.push(\r\n {\r\n provide: Sentry.TraceService,\r\n deps: [Router],\r\n },\r\n {\r\n provide: APP_INITIALIZER,\r\n useFactory: () => () => {},\r\n deps: [Sentry.TraceService],\r\n multi: true,\r\n }\r\n );\r\n }\r\n\r\n if (environmentConfig.isErrorInterceptorEnabled) {\r\n providers.push({\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: HttpReqInterceptor,\r\n multi: true,\r\n });\r\n }\r\n\r\n return {\r\n ngModule: VcErrorHandlersModule,\r\n providers: providers,\r\n };\r\n }\r\n}\r\n"],"mappings":";;;;;;;;;;;;AAKA,IAAa,yBAAb,MAAa,uBAAsB;CAEjC,cAAA,CAAgB;CAFL;EAAA,KAAA,OAAA,GAAA,mBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAsB,MAAA,CAAA;GAAA,QAAA,GAAA,gBAAA;EAAA,CAAA;CAAA;CAAtB;EAAA,KAAA,QAAA,GAAA,sBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAsB,YAFrB;EAAM,CAAA;CAAA;;AAEP,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAsB,YAAA,CAAA;EAHlC,MAAA;EAAW,MAAA,CAAA,EACV,YAAY,OACb,CAAA;;;;ACYD,IAAY;CAAZ,SAAY,iBAAe;CACzB,gBAAA,gBAAA,iBAAA,OAAA;CACA,gBAAA,gBAAA,wBAAA,OAAA;CACA,gBAAA,gBAAA,qBAAA,OAAA;CAGA,gBAAA,gBAAA,yBAAA,OAAA;CACA,gBAAA,gBAAA,wBAAA,OAAA;CACA,gBAAA,gBAAA,gBAAA,OAAA;CACA,gBAAA,gBAAA,oBAAA,OAAA;CAGA,gBAAA,gBAAA,wBAAA,KAAA;CAGA,gBAAA,gBAAA,wBAAA,OAAA;AACF,EAAA,CAhBY,oBAAA,kBAAe,CAAA,EAAA;AChB3B,MAAa,wBAAwB,CACnC;CACE,QAAQ;CACR,MAAM;CACN,OAAO;CACP,MAAM;CACN,WAAW,CAAC,KAAK;AAClB,GACD;CACE,QAAQ;CACR,MAAM;CACN,OAAO;CACP,MAAM;CACN,WAAW,CAAC,KAAK;AAClB,CAEF;AAED,MAAa,6BAA6B;CACxC;EACE,QAAQ;EACR,MAAM;EACN,OAAO,EAAE,MAAM,SAAQ;EACvB,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO,EAAE,MAAM,cAAa;EAC5B,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO,EAAE,MAAM,cAAa;EAC5B,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO,EAAE,MAAM,WAAU;EACzB,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO,EAAE,MAAM,oBAAmB;EAClC,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;AACF;ACr7BD,MAAa,qBAAqB;CAChC;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;CACD;EAEI,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACT;CACD;EACE,QAAQ;EACR,MAAM;EACN,OAAO;EACP,MAAM;CACP;AAEF;ACnDD,IAAa,kBAAb,MAAa,gBAAe;CAG1B,cAAA;EAFO,KAAA,kBAAkB,IAAI,QAAO;EAC7B,KAAA,gBAAgB,KAAK,gBAAgB,aAAY;CACzC;CAEf,KAAK,SAAiB,MAAgD;EACpE,KAAK,gBAAgB,KAAK;GACxB,MAAM;GACN;GACA,MAAK;EACN,CAAA;CACH;CAEA,OAAI;EACF,KAAK,gBAAgB,KAAK;GACxB,MAAM;GACN,SAAS;GACT,MAAM;EACP,CAAA;CACH;CAnBW;EAAA,KAAA,OAAA,GAAA,mBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAe,MAAA,CAAA;GAAA,QAAA,GAAA,gBAAA;EAAA,CAAA;CAAA;CAAf;EAAA,KAAA,QAAA,GAAA,sBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAe,YAFd;EAAM,CAAA;CAAA;;AAEP,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAe,YAAA,CAAA;EAH3B,MAAA;EAAW,MAAA,CAAA,EACV,YAAY,OACb,CAAA;;;;ACCD,IAAa,eAAb,MAAa,aAAY;CACf,aAAa,YAAiB,YAAe;EACnD,KAAK,IAAI,OAAO,YACd,IACE,CAAC,WAAW,eAAe,GAAG,KAC9B,WAAW,SAAS,WAAW,MAE/B,OAAO;EAGX,OAAO;CACT;CAEO,mBAAmB,QAAkB;EAC1C,MAAM,QAAgC,CAAA;EACtC,OAAO,KAAI,CAAE,CAAC,SAAS,QAAO;GAC5B,MAAM,OAAO,OAAO,IAAI,GAAG;EAC7B,CAAC;EACD,OAAO;CACT;CAEO,cAAc,WAAmB,eAAqB;EAC3D,OAAO,cAAc;CACvB;CAEO,oBAAoB,SAAiB,aAAmB;EAC7D,OAAO,YAAY,SAAS,OAAO;CACrC;CAEO,iBAAiB,UAAe,cAAiB;EACtD,IAAI,CAAC,UAAU,OAAO;EACtB,OAAO,KAAK,aAAa,cAAc,QAAQ;CACjD;CAEO,gBAAgB,SAAc,aAAgB;EACnD,IAAI,CAAC,SAAS,OAAO;EACrB,OAAO,KAAK,aAAa,SAAS,WAAW;CAC/C;CAEO,eAAe,cAAwB,UAAgB;EAC5D,OAAO,aAAa,SAAS,QAAQ;CACvC;CAzCW;EAAA,KAAA,OAAA,GAAA,mBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAY,MAAA,CAAA;GAAA,QAAA,GAAA,gBAAA;EAAA,CAAA;CAAA;CAAZ;EAAA,KAAA,QAAA,GAAA,sBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAY,YAFX;EAAM,CAAA;CAAA;;AAEP,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAY,YAAA,CAAA;EAHxB,MAAA;EAAW,MAAA,CAAA,EACV,YAAY,OACb,CAAA;;;ACkBD,IAAa,qBAAb,MAAa,mBAAkB;CAQ7B,YACU,iBACA,aACA,QAAc;EAFd,KAAA,kBAAA;EACA,KAAA,cAAA;EACA,KAAA,SAAA;EAVH,KAAA,eAA6B,IAAI,QAAO;EACxC,KAAA,cAA4B,IAAI,QAAO;EAEtC,KAAA,qBAAqB;EACrB,KAAA,0BAA0B;EAC1B,KAAA,mBAAmB;CAMxB;CAEI,iBAAiB,OAA4C;EAClE,IAAI,EAAE,iBAAiB,eACrB;EAGF,MAAM,eAAe,OAAO;EAC5B,MAAM,UAAU,cAAc;EAC9B,MAAM,UAAU,cAAc;EAC9B,MAAM,aAAa,OAAO;EAE1B,IAAI,YAAY,SAAS,cAAc,eAAe,GACpD,KAAK,gBAAgB,KAAK,WAAW,kBAAkB,OAAO;CAElE;CAEO,YAAY,OAA0B,SAAyB;EACpE,IACE,KAAK,kBAAkB,KAAK,KAC5B,KAAK,qBAAqB,KAAK,KAC/B,KAAK,qBAAqB,KAAK,GAE/B,KAAK,mBAAmB,KAAK;OACxB,IAAI,KAAK,cAAc,KAAK,GACjC,KAAK,kBAAkB,OAAO,OAAO;OAErC,KAAK,iBAAiB,KAAK;CAE/B;CAEO,cAAc,OAAwB;EAQ3C,OAAO;GANL,gBAAgB;GAChB,gBAAgB;GAChB,gBAAgB;GAChB,gBAAgB;EAGX,CAAA,CAAiB,SAAS,MAAM,MAAM;CAC/C;CAEO,uBAAuB,SAAyB;EACrD,MAAM,iBAAiC;GACrC,QAAQ,QAAQ;GAChB,MAAM,QAAQ;GACd,OAAO,KAAK,YAAY,mBAAmB,QAAQ,MAAM;GACzD,MAAM,QAAQ;EACf;EAED,OAAO,KAAK,iBAAiB,MAAM,cACjC,KAAK,oBAAoB,WAAW,cAAc,CAAC;CAEvD;CAEQ,kBAAkB,OAAwB;EAChD,OAAO,MAAM,WAAW,gBAAgB;CAC1C;CAEQ,qBAAqB,OAAwB;EACnD,OAAO,MAAM,WAAW,gBAAgB;CAC1C;CAEQ,qBAAqB,OAAwB;EACnD,OAAO,MAAM,WAAW,gBAAgB;CAC1C;CAEQ,kBACN,OACA,SAAyB;EAEzB,IAAI,KAAK,iBAAiB,OAAO,OAAO,GACtC,KAAK,mBAAmB,KAAK;OACxB,IAAI,KAAK,sBAAsB,OAAO,OAAO,GAClD,KAAK,kBAAkB,OAAO,OAAO;CAEzC;CAEQ,mBAAmB,OAAwB;EACjD,KAAK,aAAa,KAAK,KAAK;CAC9B;CAEQ,kBACN,OACA,SAAyB;EAEzB,KAAK,YAAY,KAAK;GAAE;GAAO;EAAO,CAAE;CAC1C;CAEQ,iBACN,OACA,SAAyB;EAEzB,MAAM,iBAAiC;GACrC,QAAQ,QAAQ;GAChB,MAAM,QAAQ;GACd,OAAO,KAAK,YAAY,mBAAmB,QAAQ,MAAM;GACzD,MAAM,QAAQ;GACd,UAAU,KAAK,YAAW;EAC3B;EAED,OAAO,KAAK,mBAAmB,MAAM,cACnC,KAAK,oBAAoB,WAAW,cAAc,CAAC;CAEvD;CAEQ,sBACN,OACA,SAAyB;EAEzB,MAAM,iBAAiC;GACrC,QAAQ,QAAQ;GAChB,MAAM,QAAQ;GACd,OAAO,KAAK,YAAY,mBAAmB,QAAQ,MAAM;GACzD,MAAM,QAAQ;EACf;EAED,OAAO,KAAK,wBAAwB,MAAM,cACxC,KAAK,oBAAoB,WAAW,cAAc,CAAC;CAEvD;CAEQ,cAAW;EAEjB,OADqB,KAAK,OAAO,YAAY,SAAS,KAAK,YACtC,KAAK;CAC5B;CAEQ,oBACN,WACA,gBAA8B;EAE9B,OACE,KAAK,YAAY,cAAc,UAAU,QAAQ,eAAe,MAAM,KACtE,KAAK,YAAY,oBACf,UAAU,MACV,eAAe,IAAI,KAErB,KAAK,YAAY,iBACf,UAAU,OACV,eAAe,KAAK,KAEtB,KAAK,YAAY,gBAAgB,UAAU,MAAM,eAAe,IAAI,MACnE,CAAC,UAAU,aACV,KAAK,YAAY,eACf,UAAU,WACV,eAAe,YAAY,EAAE;CAGrC;CAhKW;EAAA,KAAA,OAAA,GAAA,mBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAkB,MAAA;IAAA,EAAA,OAAA,gBAAA;IAAA,EAAA,OAAA,aAAA;IAAA,EAAA,OAAA,KAAA,OAAA;GAAA;GAAA,QAAA,GAAA,gBAAA;EAAA,CAAA;CAAA;CAAlB;EAAA,KAAA,QAAA,GAAA,sBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAkB,YAFjB;EAAM,CAAA;CAAA;;AAEP,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAkB,YAAA,CAAA;EAH9B,MAAA;EAAW,MAAA,CAAA,EACV,YAAY,OACb,CAAA;;;;;;;;ACtBD,MAAM,WAAW;AAEjB,MAAa,SAAS;CACpB,cAAc,GAAG,SAAQ;CACzB,aAAa,GAAG,SAAQ;CACxB,uBAAuB,GAAG,SAAQ;AACnC;ACJD,MAAa,mBAAmB,OAAO;AACvC,MAAa,mBAAmB;AAChC,MAAa,oBAAoB;AAGjC,MAAa,eAAe;CAC1B,gBAAgB;EACd,UAAU,OAAO;EACjB,OAAO;EACP,aAAa;EACb,SAAS;EACT,YAAY;CACb;CAED,cAAc;EACZ,UAAU,OAAO;EACjB,OAAO;EACP,aAAa;EACb,SAAS;EACT,OAAO;EACP,SAAS;EACT,YAAY;EACZ,MAAM;CACP;CAED,iBAAiB;EACf,SAAS;EACT,aACE;EACF,YAAY;CACb;CAED,mBAAmB;EACjB,SAAS;EACT,aACE;EACF,YAAY;CACb;CAED,cAAc;EACZ,UAAU,OAAO;EACjB,OAAO;EACP,aAAa;EACb,SAAS;EACT,YAAY;EACZ,iBAAiB;CAClB;CAED,8BAA8B;EAC5B,UAAU,OAAO;EACjB,OAAO;EACP,aAAa;EACb,SAAS;EACT,YAAY;CACb;CAED,qBAAqB,EACnB,gBACE,iFACH;AACF;AAED,MAAa,kBAAkB;CAC7B,sBAAsB;CACtB,gBAAgB;CAChB,kBAAkB;CAClB,iBAAiB;CACjB,mBAAmB;CACnB,SAAS;AACV;AAED,MAAa,eAAe;CAC1B,MAAM;CACN,QAAQ;CACR,OAAO;CACP,SAAS;AACV;AAED,MAAa,oBAAoB;CAC/B,iBAAiB;CACjB,iBAAiB;AAClB;AAED,MAAa,iBAAiB;CAC5B,aAAa;CACb,cAAc;AACf;AC9ED,IAAa,gBAAb,MAAa,cAAa;CAGxB,cAAA;EAFO,KAAA,UAAkB;EAGvB,KAAK,WAAU;CACjB;CAEQ,aAAU;EAChB,KAAK,UAAU,OAAO,SAAS;CACjC;CAEO,kBAAe;EACpB,OAAO,SAAS,OACd,WAAW,OAAO,SAAS,KAAI,wBAE/B,mBAAmB,OAAO,SAAS,IAAI;CAC3C;CAEO,eAAe,aAAmB;EACvC,IAAI,aAAa,gBAAgB;EAEjC,QAAQ,aAAR;GACE,KAAK,aAAa;IAChB,aAAa,gBAAgB;IAC7B;GACF,KAAK,aAAa;IAChB,aAAa,gBAAgB;IAC7B;GACF,KAAK,aAAa;IAChB,aAAa,gBAAgB;IAC7B;GACF,KAAK,aAAa;IAChB,aAAa,gBAAgB;IAC7B;GACF,SACE,aAAa,gBAAgB;EAEjC;EAEA,OAAO,SAAS,QAAQ,UAAU;CACpC;CAxCW;EAAA,KAAA,OAAA,GAAA,mBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAa,MAAA,CAAA;GAAA,QAAA,GAAA,gBAAA;EAAA,CAAA;CAAA;CAAb;EAAA,KAAA,QAAA,GAAA,sBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAa,YAFZ;EAAM,CAAA;CAAA;;AAEP,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAa,YAAA,CAAA;EAHzB,MAAA;EAAW,MAAA,CAAA,EACV,YAAY,OACb,CAAA;;;;ACTD,IAAa,iBAAb,MAA2B;CAKzB,cAAA;EACE,KAAK,eAAe,CAAA;EACpB,KAAK,YAAY,CAAA;EACjB,KAAK,4BAA4B;CACnC;AACD;ACDD,IAAa,qBAAb,MAAa,mBAAkB;CAO7B,YACU,MACA,YACI,QAAuB;EAF3B,KAAA,OAAA;EACA,KAAA,aAAA;EAPV,KAAA,iBAAiB;EACjB,KAAA,cAAmB,CAAA;EACnB,KAAA,WAAgB,CAAA;EAQd,KAAK,cAAc,QAAQ;CAC7B;CAEA,aAAU;EACR,OAAO,KAAK,KAAK,IAAI,KAAK,YAAY,UAAU,UAAU,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC;CAC3E;CAEA,aAAU;EACR,IAAI,KAAK,kBACP,KAAK,iBAAiB,YAAW;EAEnC,OAAO,IAAI,SAAS,SAAS,WAAU;GACrC,KAAK,mBAAmB,KAAK,WAAU,CAAE,CAAC,UAAU;IAClD,OAAO,QAAY;KACjB,IAAI;MACF,QAAQ,IAAI;MACZ,KAAK,iBAAiB;MACtB,KAAK,WAAW;MAChB,KAAK,kBAAkB,KAAK,WAAW,kBAAiB,CAAE;KAC5D,SAAS,OAAO;MACd,OAAO,KAAK;KACd;IACF;IACA,QAAQ,QAAY;KAClB,OACE,IAAI,MACF,KAAK,WAAW,gDAAgD,CACjE;KAEH,KAAK,iBAAiB;KACtB,QAAQ,MAAM,kDAAkD,GAAG;IACrE;GACD,CAAA;EACH,CAAC;CACH;CAEA,kBAAkB,OAAU;EAC1B,QAAQ,OAAO,SAAQ;EACvB,MAAM,kBAAuB,CAAA;EAC7B,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,SAAS,SAAgB;GAClD,MAAM,UAAU,KAAK,SAAS;GAC9B,gBAAgB,QAAQ;GACxB,IAAI,SAAS;IACX,IAAI,SAAS,WAAW,CAAC,QAAQ,eAAe,eAAe,GAC7D,gBAAgB,QAAQ;SACnB,IACL,SAAS,WACT,QAAQ,eAAe,eAAe,KACtC,SAAS,eAAe,SAAS,GACjC;KACA,IAAI,SAAS,eAAe,SAAS,KAAK,GACxC,gBAAgB,QAAQ;UAExB,gBAAgB,QAAQ;IAE5B,OACE,IAAI,SAAS,SACX,gBAAgB,QAAQ;SAExB,gBAAgB,QAAQ;GAG9B,OACE,gBAAgB,QAAQ;EAE5B,CAAC;EACD,KAAK,cAAc;CACrB;CAEA,iBAAiB,aAAmB;EAClC,IAAI,KAAK,YAAY,eAAe,WAAW,GAC7C,OAAO,KAAK,YAAY;OAExB,OAAO;CAEX;CAvFW;EAAA,KAAA,OAAA,GAAA,mBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAkB,MAAA;IAAA,EAAA,OAAA,GAAA,WAAA;IAAA,EAAA,OAAA,GAAA,kBAAA;IAAA;KAAA,OAAA;KAAA,UAAA;IAAA;GAAA;GAAA,QAAA,GAAA,gBAAA;EAAA,CAAA;CAAA;CAAlB;EAAA,KAAA,QAAA,GAAA,sBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAkB,YAFjB;EAAM,CAAA;CAAA;;AAEP,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAkB,YAAA,CAAA;EAH9B,MAAA;EAAW,MAAA,CAAA,EACV,YAAY,OACb,CAAA;;;;;;;GAWI,YAAA,CAAA,EAAA,MAAA,SAAA,CAAA;;;;ACRL,IAAa,oBAAb,MAAa,kBAAiB;CAa5B,YAAoB,iBAAgC;EAAhC,KAAA,kBAAA;EAZpB,KAAA,OAAO;EACP,KAAA,UAAU;EACV,KAAA,OAAO;EACP,KAAA,OAAO;EACP,KAAA,QAAa;GACX,SAAS;GACT,SAAS;GACT,MAAM;GACN,OAAO;GACP,OAAO;EACR;CAEsD;CAEvD,WAAQ;EACN,KAAK,uBAAuB,KAAK,gBAAgB,cAAc,WAC5D,UAAS;GACR,IAAI,MAAM,QAAQ,OAAO,KAAK,KAAK,KAAK,CAAC,CAAC,SAAS,OAAO,IAAI,GAAG;IAC/D,KAAK,OAAO,KAAK,MAAM,MAAM;IAC7B,KAAK,OAAO,OAAO;GACrB;GACA,KAAK,UAAU,MAAM;GACrB,KAAK,OAAO,MAAM;EACpB,CAAC;CAEL;CAEA,eAAY;EACV,iBAAgB;GACd,KAAK,OAAO;GACZ,KAAK,MAAK;EACZ,GAAG,GAAI;CACT;CACA,QAAK;EACH,KAAK,OAAO;EACZ,KAAK,gBAAgB,KAAI;CAC3B;CACA,cAAW;EACT,KAAK,qBAAqB,YAAW;CACvC;CAxCW;EAAA,KAAA,OAAA,GAAA,mBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAiB,MAAA,CAAA,EAAA,OAAA,gBAAA,CAAA;GAAA,QAAA,GAAA,gBAAA;EAAA,CAAA;CAAA;CAAjB;EAAA,KAAA,OAAA,GAAA,qBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,MAAA;GAAiB,cAAA;GAAA,UAAA;GAAA,UAAA;GAAA,UCX9B;GAUC,QAAA,CAAA,ouEAAA;GAAA,iBAAA,GAAA,wBAAA;EAAA,CAAA;CAAA;;ADCY,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAiB,YAAA,CAAA;EAP7B,MAAA;EACa,MAAA,CAAA;GAAA,YAAA;GAAK,UACP;GAAe,iBAER,wBAAwB;GAAK,UAAA;GAAA,QAAA,CAAA,ouEAAA;EAAA,CAAA;;;;AEKhD,IAAa,mBAAb,MAAa,iBAAgB;CAU3B,YAAoB,IAAwB,UAAmB;EAA3C,KAAA,KAAA;EAAwB,KAAA,WAAA;EALnC,KAAA,cAAc;EAGvB,KAAA,SAAS;CAEyD;CAClE,WAAQ,CAAI;CACgB,eAAY;EACtC,KAAK,KAAI;EACT,KAAK,KAAI;CACX;CAC2B,cAAW;EACpC,KAAK,KAAI;EACT,KAAK,KAAI;CACX;CAE4B,eAAY;EACtC,KAAK,KAAI;CACX;CAC0B,aAAU;EAClC,KAAK,KAAI;CACX;CACuB,UAAO;EAC5B,KAAK,KAAI;CACX;CACA,OAAI;EACF,IAAI,CAAC,KAAK,aACR;EAEF,KAAK,OAAM;EACX,MAAM,UAAU,KAAK,GAAG;EACxB,IAAI,KAAK,qBAAqB,MAAM;GAClC,KAAK,YAAW;GAChB,KAAK,SAAS,SAAS,KAAK,SAAS,iBAAiB;EACxD,OACE,IACE,QAAQ,cAAc,QAAQ,eAC9B,QAAQ,cAAc,QAAQ,cAC9B;GACA,KAAK,YAAW;GAChB,KAAK,SAAS,SAAS,KAAK,SAAS,iBAAiB;EACxD;CAEJ;CAEA,OAAI;EACF,IAAI,SAAS,KAAK,SAAS,KAAK,OAAO,GACrC;OAAI,KAAK,UACP,KAAK,SAAS,YACZ,SAAS,MACT,SAAS,eAAe,SAAS,CAAC;EAEtC;CAEJ;CAEA,SAAM;EACJ,KAAK,UAAU,KAAK,SAAS,cAAc,MAAM;EACjD,KAAK,QAAQ,aAAa,MAAM,SAAS;EACzC,KAAK,QAAQ,YAAY,KAAK;EAC9B,KAAK,SAAS,YAAY,SAAS,MAAM,KAAK,OAAO;EACrD,KAAK,SAAS,SAAS,KAAK,SAAS,YAAY;EACjD,KAAK,SAAS,SAAS,KAAK,SAAS,cAAc,KAAK,WAAW;EACnE,KAAK,SAAS,SAAS,KAAK,SAAS,GAAG,KAAK,MAAM;EACnD,IAAI,KAAK,SACP,KAAK,SAAS,SAAS,KAAK,SAAS,WAAW,KAAK,WAAW;CAEpE;CAEA,cAAW;EACT,MAAM,UAAU,KAAK,GAAG,cAAc,sBAAqB;EAC3D,MAAM,aAAa,KAAK,QAAQ,sBAAqB;EACrD,MAAM,YACJ,OAAO,eACP,SAAS,gBAAgB,aACzB,SAAS,KAAK,aACd;EACQ,OAAO;EACjB,MAAM,IAAI,OAAO;EACjB,IAAI;EACJ,IAAI;EACJ,IAAI,KAAK,cAAc,OAAO;GAC5B,MAAM,QAAQ,MAAM,WAAW,SAAS,KAAK;GAC7C,OAAO,QAAQ,QAAQ,QAAQ,QAAQ,WAAW,SAAS;EAC7D;EAEA,IAAI,KAAK,cAAc,UAAU;GAC/B,IAAI,QAAQ,MAAM,WAAW,SAAS,GAAG;IACvC,MAAM,QAAQ,MAAM,WAAW;IAC/B,OAAO,QAAQ,QAAQ,QAAQ,QAAQ,WAAW,SAAS;IAC3D,KAAK,SAAS,YAAY,KAAK,SAAS,mBAAmB;IAC3D,KAAK,SAAS,SAAS,KAAK,SAAS,gBAAgB;GACvD,OAAO;IACL,MAAM,QAAQ,SAAS,KAAK;IAC5B,OAAO,QAAQ,QAAQ,QAAQ,QAAQ,WAAW,SAAS;GAC7D;EACF;EAEA,IAAI,KAAK,cAAc,QAAQ;GAC7B,MAAM,QAAQ,OAAO,QAAQ,SAAS,WAAW,UAAU;GAC3D,OAAO,QAAQ,OAAO,WAAW,QAAQ,KAAK;EAChD;EAEA,IAAI,KAAK,cAAc,SAAS;GAC9B,MAAM,QAAQ,OAAO,QAAQ,SAAS,WAAW,UAAU;GAC3D,OAAO,QAAQ,QAAQ,KAAK;EAC9B;EACA,IAAI,KAAK,cAAc,gBAAgB;GACrC,MAAM,QAAQ,SAAS,KAAK;GAC5B,OAAO,QAAQ,QAAQ,WAAW,QAAQ;EAC5C;EACA,IAAI,KAAK,cAAc,eAAe;GACpC,IAAI,QAAQ,MAAM,WAAW,SAAS,IAAI,IAAI;IAC5C,MAAM,QAAQ,MAAM,WAAW;IAC/B,OAAO,QAAQ;IACf,KAAK,SAAS,YAAY,KAAK,SAAS,wBAAwB;IAChE,KAAK,SAAS,SAAS,KAAK,SAAS,qBAAqB;GAC5D,OAAO;IACL,MAAM,QAAQ,SAAS,KAAK;IAC5B,OAAO,QAAQ;GACjB;EACF;EACA,KAAK,SAAS,SAAS,KAAK,SAAS,OAAO,GAAG,MAAM,UAAS,GAAI;EAClE,KAAK,SAAS,SAAS,KAAK,SAAS,QAAQ,GAAG,KAAI,GAAI;CAC1D;CAjIW;EAAA,KAAA,OAAA,GAAA,mBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAgB,MAAA,CAAA,EAAA,OAAA,GAAA,WAAA,GAAA,EAAA,OAAA,GAAA,UAAA,CAAA;GAAA,QAAA,GAAA,gBAAA;EAAA,CAAA;CAAA;CAAhB;EAAA,KAAA,OAAA,GAAA,qBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,MAAA;GAAgB,cAAA;GAAA,UAAA;GAAA,QAAA;IAAA,cAAA,CAAA,aAAA,cAAA;IAAA,WAAA;IAAA,MAAA;IAAA,kBAAA;IAAA,aAAA;IAAA,SAAA;GAAA;GAAA,MAAA,EAAA,WAAA;IAAA,cAAA;IAAA,aAAA;IAAA,cAAA;IAAA,YAAA;IAAA,SAAA;GAAA,EAAA;GAAA,UAAA;EAAA,CAAA;CAAA;;AAAhB,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAgB,YAAA,CAAA;EAJ5B,MAAA;EAAU,MAAA,CAAA;GACT,YAAY;GACZ,UAAU;EACX,CAAA;;;;;GAEE,MAAA;GAAM,MAAA,CAAA,WAAW;;EACjB,WAAA,CAAA,EAAA,MAAA,MAAA,CAAA;EACA,MAAA,CAAA,EAAA,MAAA,MAAA,CAAA;EACA,kBAAA,CAAA,EAAA,MAAA,MAAA,CAAA;EACA,aAAA,CAAA,EAAA,MAAA,MAAA,CAAA;EACA,SAAA,CAAA,EAAA,MAAA,MAAA,CAAA;;GAMA,MAAA;GAAa,MAAA,CAAA,YAAY;;;GAIzB,MAAA;GAAa,MAAA,CAAA,WAAW;;;GAKxB,MAAA;GAAa,MAAA,CAAA,YAAY;;;GAGzB,MAAA;GAAa,MAAA,CAAA,UAAU;;;GAGvB,MAAA;GAAa,MAAA,CAAA,OAAO;;;;AC+BvB,IAAa,wBAAb,MAAa,sBAAqB;CAChC,YACU,OACA,eAA4B;EAD5B,KAAA,QAAA;EACA,KAAA,gBAAA;EAGV,KAAA,+BAAc,IAAI,KAAI,EAAE,CAAC,YAAW;EACpC,KAAA,cAAc,aAAa;EAC3B,KAAA,cAAc;EACd,KAAA,eAAe;EACf,KAAA,mBAAmB;EACnB,KAAA,aAAa,KAAK,cAAc,UAAU,gBAAgB;CAPvD;CASI,sBAAmB;EACxB,MAAM,cAAc,KAAK,MAAM,SAAS,KAAK;EAC7C,KAAK,cAAc,eAAe,WAAW;CAC/C;CAhBW;EAAA,KAAA,OAAA,GAAA,mBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAqB,MAAA,CAAA,EAAA,OAAA,KAAA,eAAA,GAAA,EAAA,OAAA,cAAA,CAAA;GAAA,QAAA,GAAA,gBAAA;EAAA,CAAA;CAAA;CAArB;EAAA,KAAA,OAAA,GAAA,qBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,MAAA;GAAqB,cAAA;GAAA,UAAA;GAAA,UAAA;GAAA,UAvDtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDT,UAAA;GAAA,QAAA,CAAA,0/CAAA;GAAA,cAAA,CAAA;IAAA,MAAA;IAAA,MAAA,GAAA;IAAA,UAAA;IAAA,QAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;IAAA;GAAA,GAAA;IAAA,MAAA;IAAA,MAAA;IAAA,UAAA;IAAA,QAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;IAAA;GAAA,CAAA;GAAA,iBAAA,GAAA,wBAAA;EAAA,CAAA;CAAA;;AAIU,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAqB,YAAA,CAAA;EA1DjC,MAAA;EACa,MAAA,CAAA;GAAA,YAAA;GAAK,UACP;GAA2B,UAC3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDT,iBACgB,wBAAwB;GAAK,QAAA,CAAA,0/CAAA;EAAA,CAAA;;;;ACpEhD,IAAa,eAAb,MAAyB,CAKxB;ACsBD,IAAa,sBAAb,MAAa,oBAAmB;CAW9B,YACU,aACA,cACA,eAA4B;EAF5B,KAAA,cAAA;EACA,KAAA,eAAA;EACA,KAAA,gBAAA;EAbV,KAAA,aAAa;EAIb,KAAA,OAAmB;GACjB,SAAS;GACT,aAAa;GACb,YAAY;EACb;EAOC,KAAK,cAAa;CACpB;CAEQ,gBAAa;EACnB,KAAK,OAAO,KAAK,aAAa,MAAM;EACpC,KAAK,YAAY,KAAK,aAAa,MAAM;CAC3C;CAEO,mBAAgB;EACrB,QAAQ,KAAK,WAAb;GACE,KAAK,KAAK,WAAW;IACnB,KAAK,YAAY,OAAM;IACvB,KAAK,cAAc,gBAAe;IAClC;GAEF,KAAK,KAAK,WAAW,iBACnB,OAAO,SAAS,OAAM;EAE1B;CACF;CAnCW;EAAA,KAAA,OAAA,GAAA,mBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAmB,MAAA;IAAA,EAAA,OAAA,GAAA,kBAAA;IAAA,EAAA,OAAA,aAAA;IAAA,EAAA,OAAA,cAAA;GAAA;GAAA,QAAA,GAAA,gBAAA;EAAA,CAAA;CAAA;CAAnB;EAAA,KAAA,OAAA,GAAA,qBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,MAAA;GAAmB,cAAA;GAAA,UAAA;GAAA,QAAA,EAAA,WAAA,YAAA;GAAA,UAAA;GAAA,UAdpB;;;;;;;;;;;GAUH,UAAA;GAAA,QAAA,CAAA,ylBAAA;GAAA,iBAAA,GAAA,wBAAA;EAAA,CAAA;CAAA;;AAII,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAmB,YAAA,CAAA;EAjB/B,MAAA;EACa,MAAA,CAAA;GAAA,YAAA;GAAK,UACP;GAAoB,UACpB;;;;;;;;;;;GAUH,iBACU,wBAAwB;GAAK,QAAA,CAAA,ylBAAA;EAAA,CAAA;;;;;;;CAM7C,gBAAA,EAAA,WAAA,CAAA,EAAA,MAAA,MAAA,CAAA,EAAA;;ACxBH,IAAa,qBAAb,MAAa,mBAAkB;CAC7B,YAAmB,kBAAkC;EAAlC,KAAA,mBAAA;CAAqC;CAD7C;EAAA,KAAA,OAAA,GAAA,mBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAkB,MAAA,CAAA,EAAA,OAAA,GAAA,iBAAA,CAAA;GAAA,QAAA,GAAA,gBAAA;EAAA,CAAA;CAAA;CAAlB;EAAA,KAAA,OAAA,GAAA,qBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,MAAA;GAAkB,cAAA;GAAA,UAAA;GAAA,UAAA;EAAA,CAAA;CAAA;;AAAlB,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAkB,YAAA,CAAA;EAJ9B,MAAA;EAAU,MAAA,CAAA;GACT,YAAY;GACZ,UAAU;EACX,CAAA;;;;ACHD,IAAa,YAAb,MAAsB;CAGpB,cAAA;EAFiB,KAAA,oBAAoB,IAAI,QAAO;EAChD,KAAA,cAA+B,KAAK,kBAAkB,aAAY;CACnD;CAEf,MAAM,QAAY;EAEhB,KAAK,kBAAkB,KAAK,MAAM;EAClC,SAAS,KAAK,MAAM,WAAW;CACjC;AACD;ACED,IAAa,kBAAb,MAAa,gBAAe;CAc1B,YACU,IACA,WACD,QACC,QAAc;EAHd,KAAA,KAAA;EACA,KAAA,YAAA;EACD,KAAA,SAAA;EACC,KAAA,SAAA;EAXV,KAAA,YAAY;EAEK,KAAA,gBAAgB,IAAI,QAAO;EACrC,KAAA,UAAU,KAAK,cAAc,aAAY;CAchD;CACA,WAAQ;EACN,KAAK,WAAW,KAAK,OAAO;EAC5B,KAAK,aAAa,KAAK,OAAO;EAC9B,SAAS,KAAK,MAAM,WAAW;EAC/B,iBAAgB;GACd,KAAK,YAAY;EACnB,GAAG,GAAG;EACN,KAAK,YAAW;CAClB;CAEA,cAAW;EACT,KAAK,OAAO,OAAO,WAAW,UAAc;GAC1C,IAAI,iBAAiB,iBAAiB,CAEtC;GACA,IAAI,iBAAiB,eAEnB,KAAK,UAAU,MAAK;GAEtB,IAAI,iBAAiB,iBAAiB,CAGtC;EACF,CAAC;CACH;CACA,kBAAe;EACb,KAAK,mBAAmB,KAAK,kBAAkB;EAC/C,KAAK,GAAG,cAAa;CACvB;CAEA,iBAAiB,KAAe,CAEhC;CAEA,gBAAgB,KAAe;EAC7B,IAAI,gBAAe;CACrB;CAEA,mBAAmB,eAAwB;EACzC,MAAM,mBAAmB,KAAK,eAAe;EAC7C,iBAAiB,MAAK;EAEtB,KAAK,eAAe,iBAAiB,gBAAgB,aAAa;CACpE;CAEA,cAAW;EACT,IAAI,KAAK,cACP,KAAK,aAAa,QAAO;CAE7B;CAEA,MAAM,MAAU;EACd,KAAK,cAAc,KAAK,IAAI;EAC5B,SAAS,KAAK,MAAM,WAAW;CACjC;CA/EW;EAAA,KAAA,OAAA,GAAA,mBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAe,MAAA;IAAA,EAAA,OAAA,GAAA,kBAAA;IAAA,EAAA,OAAA,UAAA;IAAA,EAAA,OAAA,aAAA;IAAA,EAAA,OAAA,KAAA,OAAA;GAAA;GAAA,QAAA,GAAA,gBAAA;EAAA,CAAA;CAAA;CAAf;EAAA,KAAA,OAAA,GAAA,qBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,MAAA;GAAe,cAAA;GAAA,UAAA;GAAA,aAAA,CAAA;IAAA,cAAA;IAAA,OAAA;IAAA,WAKf;IAAkB,aAAA;IAAA,QAAA;GAAA,CAAA;GAAA,UAAA;GAAA,UCnB/B;GAyBA,QAAA,CAAA,k3CAAA;GAAA,cAAA,CAAA;IAAA,MAAA;IAAA,MAAA;IAAA,UAAA;GAAA,CAAA;GAAA,iBAAA,GAAA,wBAAA;EAAA,CAAA;CAAA;;ADXa,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAe,YAAA,CAAA;EAP3B,MAAA;EACa,MAAA,CAAA;GAAA,YAAA;GAAK,UACP;GAAY,iBAEL,wBAAwB;GAAK,UAAA;GAAA,QAAA,CAAA,k3CAAA;EAAA,CAAA;;;;;;;;;EAQ7C,MAAA;EAAU,MAAA,CAAA,oBAAoB,EAAE,QAAQ,KAAI,CAAE;;;AERjD,IAAa,eAAb,MAAa,aAAY;CAAZ;EAAA,KAAA,OAAA,GAAA,mBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAY,MAAA,CAAA;GAAA,QAAA,GAAA,gBAAA;EAAA,CAAA;CAAA;CAAZ;EAAA,KAAA,OAAA,GAAA,oBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAY,cAAA,CAJR,iBAAiB,kBAAkB;GAAA,SAAA,CADxC,YAAY;GAAA,SAAA,CAGb,eAAe;EAAA,CAAA;CAAA;CAEb;EAAA,KAAA,OAAA,GAAA,oBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAY,WAHZ,CAAC,SAAS;GAAC,SAAA,CAFZ,YAAY;EAAA,CAAA;CAAA;;AAKX,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAY,YAAA,CAAA;EANxB,MAAA;EAAS,MAAA,CAAA;GACR,SAAS,CAAC,YAAY;GACtB,cAAc,CAAC,iBAAiB,kBAAkB;GAClD,WAAW,CAAC,SAAS;GACrB,SAAQ,CAAC,eAAe;EACzB,CAAA;;;ACRD,IAAa,iBAAb,MAA2B;CACzB,YAAoB,sBAAwC,wBAAyC;EAAjF,KAAA,uBAAA;EAAwC,KAAA,yBAAA;CAA4C;CAIxG,IAAI,OAAY,eAAmB;EACjC,MAAM,QAAQ,KAAK,uBAAuB,IAAI,KAAK;EACnD,IAAI,OACF,OAAO;EAET,OAAO,KAAK,qBAAqB,IAAS,OAAO,aAAa;CAChE;AACD;ACJD,IAAa,gBAAb,MAAa,cAAa;CAGxB,YACU,QACA,UACA,qBAAwC;EAFxC,KAAA,SAAA;EACA,KAAA,WAAA;EACA,KAAA,sBAAA;CACP;CAEI,KAAK,eAA0B,QAAoB;EACxD,MAAM,YAAY,KAAK,4BAA4B,MAAM;EAEzD,KAAK,mBAAmB,SAAS,qBAAqB;EAEtD,OAAO;CACT;CAEQ,4BAA4B,QAAoB;EACtD,MAAM,sBAAM,IAAI,QAAO;EACvB,IAAI,IAAI,cAAc,MAAM;EAE5B,MAAM,YAAY,IAAI,UAAS;EAC/B,IAAI,IAAI,WAAW,SAAS;EAE5B,MAAM,MAAM,UAAU,YAAY,gBAAe;GAC/C,KAAK,8BAA6B;GAClC,IAAI,YAAW;EACjB,CAAC;EAED,MAAM,eAAe,gBAAgB,iBAAiB;GACpD,qBAAqB,KAAK;GAC1B,iBAAiB,IAAI,eAAe,KAAK,UAAU,GAAG;EACvD,CAAA;EAED,KAAK,OAAO,WAAW,aAAa,QAAQ;EAE5C,MAAM,UAAW,aAAa,SAAkC,UAAU;EAC1E,SAAS,KAAK,YAAY,OAAO;EAEjC,KAAK,qBAAqB;EAE1B,KAAK,mBAAmB,SAAS,QAAQ,gBAAe;GACtD,KAAK,8BAA6B;EACpC,CAAC;EAED,OAAO;CACT;CAEQ,gCAA6B;EACnC,KAAK,OAAO,WAAW,KAAK,mBAAmB,QAAQ;EACvD,KAAK,mBAAmB,QAAO;CACjC;CAnDW;EAAA,KAAA,OAAA,GAAA,mBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAa,MAAA;IAAA,EAAA,OAAA,GAAA,eAAA;IAAA,EAAA,OAAA,GAAA,SAAA;IAAA,EAAA,OAAA,GAAA,oBAAA;GAAA;GAAA,QAAA,GAAA,gBAAA;EAAA,CAAA;CAAA;CAAb;EAAA,KAAA,QAAA,GAAA,sBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAa,YAFZ;EAAY,CAAA;CAAA;;AAEb,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAa,YAAA,CAAA;EAHzB,MAAA;EAAW,MAAA,CAAA,EACV,YAAY,aACb,CAAA;;;;;;;;ACKD,IAAa,0BAAb,MAAa,wBAAuB;CAIlC,YACU,eAA4B;EAA5B,KAAA,gBAAA;EAJV,KAAA,cAAc,aAAa;EAC3B,KAAA,aAAa;CAIV;CAEH,WAAQ;EACN,KAAK,wBAAuB;CAC9B;CAEQ,0BAAuB;EAC7B,KAAK,cAAc,KAAK,qBAAqB;GAC3C,MAAM;IACJ,WAAW,KAAK,WAAW;IAC3B,aAAa,KAAK;GACnB;GACD,UAAU;GACV,YAAY;EACb,CAAA;CACH;CArBW;EAAA,KAAA,OAAA,GAAA,mBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAuB,MAAA,CAAA,EAAA,OAAA,cAAA,CAAA;GAAA,QAAA,GAAA,gBAAA;EAAA,CAAA;CAAA;CAAvB;EAAA,KAAA,OAAA,GAAA,qBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,MAAA;GAAuB,cAAA;GAAA,UAAA;GAAA,UAAA;GAAA,UAFxB;GAAE,UAAA;GAAA,iBAAA,GAAA,wBAAA;EAAA,CAAA;CAAA;;AAED,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAuB,YAAA,CAAA;EANnC,MAAA;EAAU,MAAA,CAAA;GACT,YAAY;GACZ,UAAU;GACV,iBAAiB,wBAAwB;GACzC,UAAU;EACX,CAAA;;;;ACID,IAAa,4BAAb,MAAa,0BAAyB;CAIpC,YAAoB,eAA4B;EAA5B,KAAA,gBAAA;EAHpB,KAAA,cAAc,aAAa;EAC3B,KAAA,YAAY;CAEuC;CAEnD,WAAQ;EACN,KAAK,wBAAuB;CAC9B;CAEQ,0BAAuB;EAC7B,KAAK,cAAc,KAAK,qBAAqB;GAC3C,MAAM;IACJ,WAAW,KAAK,UAAU;IAC1B,aAAa,KAAK;GACnB;GACD,UAAU;GACV,YAAY;EACb,CAAA;CACH;CAnBW;EAAA,KAAA,OAAA,GAAA,mBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAyB,MAAA,CAAA,EAAA,OAAA,cAAA,CAAA;GAAA,QAAA,GAAA,gBAAA;EAAA,CAAA;CAAA;CAAzB;EAAA,KAAA,OAAA,GAAA,qBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,MAAA;GAAyB,cAAA;GAAA,UAAA;GAAA,UAAA;GAAA,UAF1B;GAAE,UAAA;GAAA,iBAAA,GAAA,wBAAA;EAAA,CAAA;CAAA;;AAED,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAyB,YAAA,CAAA;EANrC,MAAA;EAAU,MAAA,CAAA;GACT,YAAY;GACZ,UAAU;GACV,iBAAiB,wBAAwB;GACzC,UAAU;EACX,CAAA;;;;AC8BD,IAAa,uBAAb,MAAa,qBAAoB;CAtCjC,cAAA;EAuCE,KAAA,cAAc,aAAa;EAC3B,KAAA,cAAc;EACd,KAAA,eAAe;CAKhB;CAHQ,cAAW;EAChB,OAAO,SAAS,OAAM;CACxB;CAPW;EAAA,KAAA,OAAA,GAAA,mBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAoB,MAAA,CAAA;GAAA,QAAA,GAAA,gBAAA;EAAA,CAAA;CAAA;CAApB;EAAA,KAAA,OAAA,GAAA,qBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,MAAA;GAAoB,cAAA;GAAA,UAAA;GAAA,UAAA;GAAA,UAnCrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BT,UAAA;GAAA,QAAA,CAAA,0/CAAA;GAAA,cAAA,CAAA;IAAA,MAAA;IAAA,MAAA,GAAA;IAAA,UAAA;IAAA,QAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;IAAA;GAAA,CAAA;GAAA,iBAAA,GAAA,wBAAA;EAAA,CAAA;CAAA;;AAIU,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAoB,YAAA,CAAA;EAtChC,MAAA;EACa,MAAA,CAAA;GAAA,YAAA;GAAK,UACP;GAA2B,UAC3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BT,iBACgB,wBAAwB;GAAK,QAAA,CAAA,0/CAAA;EAAA,CAAA;;;ACRhD,IAAa,2BAAb,MAAa,yBAAwB;CAYnC,YACU,cACA,iBACA,oBAAsC;EAFtC,KAAA,eAAA;EACA,KAAA,kBAAA;EACA,KAAA,qBAAA;EAdF,KAAA,cAAc,aAAa;EAEnC,KAAA,eAAwB;EACxB,KAAA,iBAA0B;EAC1B,KAAA,mBAA4B;EAC5B,KAAA,cAAuB;EACvB,KAAA,WAAoB,UAAU;EAErB,KAAA,kBAA2B;EAgD5B,KAAA,wBAAuB;GAC7B,KAAK,WAAW;GAChB,KAAK,aAAY;EACnB;EAEQ,KAAA,yBAAwB;GAC9B,KAAK,WAAW;GAChB,IAAI,CAAC,KAAK,iBACR,KAAK,oBAAmB;EAE5B;EAlDE,KAAK,qBAAoB;CAC3B;CAEA,WAAQ;EACN,KAAK,0BAAyB;EAC9B,KAAK,mBAAmB,cAAc,KAAK,QAAQ;CACrD;CAEA,cAAW;EACT,OAAO,oBAAoB,UAAU,KAAK,eAAe;EACzD,OAAO,oBAAoB,WAAW,KAAK,gBAAgB;CAC7D;CAEQ,uBAAoB;EAC1B,KAAK,aAAa,aAAa,WAAW,UAA4B;GACpE,KAAK,YAAY,KAAK;EACxB,CAAC;CACH;CAEQ,YAAY,OAAwB;EAC1C,MAAM,gBAA+C;IAClD,gBAAgB,wBAAyB,KAAK,iBAAiB;IAC/D,gBAAgB,2BAA4B,KAAK,eAAe;IAChE,gBAAgB,2BACd,KAAK,mBAAmB;IAC1B,gBAAgB,2BAA2B,KAAK,mBAAkB;EACpE;EAED,IAAI,cAAc,MAAM,SACtB,cAAc,MAAM,OAAO,CAAA;OACtB,IAAI,KAAK,aAAa,cAAc,KAAK,GAC9C,KAAK,cAAc;CAEvB;CAEQ,4BAAyB;EAC/B,OAAO,iBAAiB,UAAU,KAAK,eAAe;EACtD,OAAO,iBAAiB,WAAW,KAAK,gBAAgB;CAC1D;CAcQ,qBAAkB;EACxB,IAAI,CAAC,KAAK,YAAY,CAAC,KAAK,iBAC1B,KAAK,oBAAmB;CAE5B;CAEQ,sBAAmB;EACzB,KAAK,gBAAgB,KAAK,KAAK,YAAY,gBAAgB,OAAO;CACpE;CAEQ,eAAY;EAClB,KAAK,gBAAgB,KAAI;CAC3B;CAjFW;EAAA,KAAA,OAAA,GAAA,mBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAwB,MAAA;IAAA,EAAA,OAAA,mBAAA;IAAA,EAAA,OAAA,gBAAA;IAAA,EAAA,OAAA,mBAAA;GAAA;GAAA,QAAA,GAAA,gBAAA;EAAA,CAAA;CAAA;CAAxB;EAAA,KAAA,OAAA,GAAA,qBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,MAAA;GAAwB,cAAA;GAAA,UAAA;GAAA,QAAA;IAAA,iBAAA;IAAA,SAAA;GAAA;GAAA,UAAA;GAAA,UArBzB;;;;;;;;;;;;;;;;;;;;GAmBT,UAAA;GAAA,cAAA;IAAA;KAAA,MAAA;KAAA,MAAA;KAAA,UAAA;IAAA;IAAA;KAAA,MAAA;KAAA,MAAA;KAAA,UAAA;IAAA;IAAA;KAAA,MAAA;KAAA,MAAA;KAAA,UAAA;IAAA;IAAA;KAAA,MAAA;KAAA,MAAA;KAAA,UAAA;IAAA;IAAA;KAAA,MAAA;KAAA,MAAA;KAAA,UAAA;IAAA;GAAA;GAAA,iBAAA,GAAA,wBAAA;EAAA,CAAA;CAAA;;AAEU,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAwB,YAAA,CAAA;EAzBpC,MAAA;EAAU,MAAA,CAAA;GACT,YAAY;GACZ,UAAU;GACV,iBAAiB,wBAAwB;GACzC,UAAU;;;;;;;;;;;;;;;;;;;;EAoBX,CAAA;;;;;;;;EAUE,iBAAA,CAAA,EAAA,MAAA,MAAA,CAAA;EACA,SAAA,CAAA,EAAA,MAAA,MAAA,CAAA;;;ACoBH,IAAa,wBAAb,MAAa,sBAAqB;CAQhC,YACU,OACA,eAA4B;EAD5B,KAAA,QAAA;EACA,KAAA,gBAAA;EATV,KAAA,cAAc,aAAa;EAC3B,KAAA,cAAc;EACd,KAAA,eAAe;EACf,KAAA,+BAAc,IAAI,KAAI,EAAE,CAAC,YAAW;EACpC,KAAA,mBAAmB;EACnB,KAAA,aAAa,KAAK,cAAc,UAAU,gBAAgB;CAKvD;CAEI,sBAAmB;EACxB,MAAM,cAAc,KAAK,MAAM,SAAS,KAAK;EAC7C,KAAK,cAAc,eAAe,WAAW;CAC/C;CAhBW;EAAA,KAAA,OAAA,GAAA,mBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAqB,MAAA,CAAA,EAAA,OAAA,KAAA,eAAA,GAAA,EAAA,OAAA,cAAA,CAAA;GAAA,QAAA,GAAA,gBAAA;EAAA,CAAA;CAAA;CAArB;EAAA,KAAA,OAAA,GAAA,qBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,MAAA;GAAqB,cAAA;GAAA,UAAA;GAAA,UAAA;GAAA,UAjDtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CT,UAAA;GAAA,QAAA,CAAA,0/CAAA;GAAA,cAAA,CAAA;IAAA,MAAA;IAAA,MAAA,GAAA;IAAA,UAAA;IAAA,QAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;IAAA;GAAA,GAAA;IAAA,MAAA;IAAA,MAAA;IAAA,UAAA;IAAA,QAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;IAAA;GAAA,CAAA;GAAA,iBAAA,GAAA,wBAAA;EAAA,CAAA;CAAA;;AAIU,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAqB,YAAA,CAAA;EApDjC,MAAA;EACa,MAAA,CAAA;GAAA,YAAA;GAAK,UACP;GAA6B,UAC7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CT,iBACgB,wBAAwB;GAAK,QAAA,CAAA,0/CAAA;EAAA,CAAA;;;;AC1BhD,IAAa,qCAAb,MAAa,mCAAkC;CA7B/C,cAAA;EA8BE,KAAA,cAAc,aAAa;EAC3B,KAAA,eAAe;EAEL,KAAA,UAAU,IAAI,aAAY;CACrC;CALY;EAAA,KAAA,OAAA,GAAA,mBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAkC,MAAA,CAAA;GAAA,QAAA,GAAA,gBAAA;EAAA,CAAA;CAAA;CAAlC;EAAA,KAAA,OAAA,GAAA,qBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,MAAA;GAAkC,cAAA;GAAA,UAAA;GAAA,SAAA,EAAA,SAAA,UAAA;GAAA,UAAA;GAAA,UA1BnC;;;;;;;;;;;;;;;;;;;;;;;GAsBT,UAAA;GAAA,QAAA,CAAA,wjCAAA;GAAA,cAAA,CAAA;IAAA,MAAA;IAAA,MAAA,GAAA;IAAA,UAAA;IAAA,QAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;IAAA;GAAA,CAAA;GAAA,iBAAA,GAAA,wBAAA;EAAA,CAAA;CAAA;;AAIU,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAkC,YAAA,CAAA;EA7B9C,MAAA;EACa,MAAA,CAAA;GAAA,YAAA;GAAK,UACP;GAAqC,UACrC;;;;;;;;;;;;;;;;;;;;;;;GAsBT,iBACgB,wBAAwB;GAAK,QAAA,CAAA,wjCAAA;EAAA,CAAA;;CAO7C,gBAAA,EAAA,SAAA,CAAA,EAAA,MAAA,OAAA,CAAA,EAAA;;AC1BH,IAAa,uBAAb,MAAa,qBAAoB;CAE/B,YACU,KACA,KACA,oBAAsC;EAFtC,KAAA,MAAA;EACA,KAAA,MAAA;EACA,KAAA,qBAAA;CACP;CAEH,WAAQ;EAEN,IADkB,KAAK,mBAAmB,iBAAiB,KAAK,WAC5D,GACF,KAAK,IAAI,mBAAmB,KAAK,GAAG;CAExC;CAbW;EAAA,KAAA,OAAA,GAAA,mBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAoB,MAAA;IAAA,EAAA,OAAA,GAAA,YAAA;IAAA,EAAA,OAAA,GAAA,iBAAA;IAAA,EAAA,OAAA,mBAAA;GAAA;GAAA,QAAA,GAAA,gBAAA;EAAA,CAAA;CAAA;CAApB;EAAA,KAAA,OAAA,GAAA,qBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,MAAA;GAAoB,cAAA;GAAA,UAAA;GAAA,QAAA,EAAA,aAAA,cAAA;GAAA,UAAA;EAAA,CAAA;CAAA;;AAApB,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAoB,YAAA,CAAA;EAJhC,MAAA;EAAU,MAAA,CAAA;GACT,YAAY;GACZ,UAAU;EACX,CAAA;;;;;;;CAEE,gBAAA,EAAA,aAAA,CAAA,EAAA,MAAA,MAAA,CAAA,EAAA;;ACJH,IAAa,oBAAb,MAAa,kBAAiB;CAAjB;EAAA,KAAA,OAAA,GAAA,mBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAiB,MAAA,CAAA;GAAA,QAAA,GAAA,gBAAA;EAAA,CAAA;CAAA;CAAjB;EAAA,KAAA,OAAA,GAAA,oBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAiB,cAAA,CANb,oBAAoB;GAAA,SAAA,CAEjC,YAAY;GAAA,SAAA,CAEL,oBAAoB;EAAA,CAAA;CAAA;CAElB;EAAA,KAAA,OAAA,GAAA,oBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAiB,SAAA,CAJ1B,YAAY;EAAA,CAAA;CAAA;;AAIH,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAiB,YAAA,CAAA;EAP7B,MAAA;EAAS,MAAA,CAAA;GACR,cAAc,CAAC,oBAAoB;GACnC,SAAS,CACP,YACD;GACD,SAAQ,CAAC,oBAAoB;EAC9B,CAAA;;;ACDD,IAAa,iBAAb,MAAa,eAAc;CAAd;EAAA,KAAA,OAAA,GAAA,mBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAc,MAAA,CAAA;GAAA,QAAA,GAAA,gBAAA;EAAA,CAAA;CAAA;CAAd;EAAA,KAAA,OAAA,GAAA,oBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAc,cAAA,CAJV,iBAAiB;GAAA,SAAA,CACtB,YAAY;GAAA,SAAA,CACZ,iBAAiB;EAAA,CAAA;CAAA;CAEhB;EAAA,KAAA,OAAA,GAAA,oBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAc,SAAA,CAHf,YAAY;EAAA,CAAA;CAAA;;AAGX,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAc,YAAA,CAAA;EAL1B,MAAA;EAAS,MAAA,CAAA;GACR,cAAc,CAAC,iBAAiB;GAChC,SAAS,CAAC,YAAY;GACtB,SAAS,CAAC,iBAAiB;EAC5B,CAAA;;;ACCD,IAAa,gBAAb,MAAa,cAAa;CAAb;EAAA,KAAA,OAAA,GAAA,mBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAa,MAAA,CAAA;GAAA,QAAA,GAAA,gBAAA;EAAA,CAAA;CAAA;CAAb;EAAA,KAAA,OAAA,GAAA,oBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAa,cAAA,CAJT,gBAAgB;GAAA,SAAA,CACrB,YAAY;GAAA,SAAA,CACZ,gBAAgB;EAAA,CAAA;CAAA;CAEf;EAAA,KAAA,OAAA,GAAA,oBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAa,SAAA,CAHd,YAAY;EAAA,CAAA;CAAA;;AAGX,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAa,YAAA,CAAA;EALzB,MAAA;EAAS,MAAA,CAAA;GACR,cAAc,CAAC,gBAAgB;GAC/B,SAAS,CAAC,YAAY;GACtB,SAAS,CAAC,gBAAgB;EAC3B,CAAA;;;ACED,IAAa,qBAAb,MAAa,mBAAkB;CAC7B,YACU,mBACA,cACI,QAAuB;EAF3B,KAAA,oBAAA;EACA,KAAA,eAAA;EAGR,IAAI,QAAQ,cAAc;GACxB,MAAM,gBAAgB,OAAO;GAC7B,OAAO,KAAK;IACV,KAAK,eAAe;IACpB,cAAc,CACZ,OAAO,0BAAyB,GAChC,OAAO,kBAAiB,CACzB;IACD,kBAAkB,cAAc;IAChC,yBAAyB,cAAc;IACvC,0BAA0B,cAAc;IACxC,0BAA0B,cAAc;GACzC,CAAA;GACD,OAAO,QAAQ,EAAE,aAAa,KAAK,kBAAkB,QAAO,EAAE,CAAE;EAClE;CACF;CAEA,YAAY,OAAU;EACpB,MAAM,QAAQ,OAAO,iBAAiB;EACtC,KAAK,iBAAiB,KAAK;EAC3B,OAAO,iBAAiB,KAAK;CAC/B;CAEA,iBAAiB,OAAY;EAE3B,IAAI,6BAAmB,KAAK,OAAO,OAAO,GACxC,OAAO,SAAS,OAAM;CAE1B;CAlCW;EAAA,KAAA,OAAA,GAAA,mBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAkB,MAAA;IAAA,EAAA,OAAA,GAAA,kBAAA;IAAA,EAAA,OAAA,mBAAA;IAAA;KAAA,OAAA;KAAA,UAAA;IAAA;GAAA;GAAA,QAAA,GAAA,gBAAA;EAAA,CAAA;CAAA;CAAlB;EAAA,KAAA,QAAA,GAAA,sBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;EAAkB,CAAA;CAAA;;AAAlB,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAkB,YAAA,CAAA,EAD9B,MAAA,WAAA,CAAA;;;;;;GAKI,YAAA,CAAA,EAAA,MAAA,SAAA,CAAA;;;;ACGL,IAAa,qBAAb,MAAa,mBAAkB;CAC7B,YAAoB,cAAgC;EAAhC,KAAA,eAAA;CAAmC;CAEvD,UACE,KACA,MAAiB;EAEjB,IAAI,KAAK,aAAa,uBAAuB,GAAG,GAC9C,OAAO,KAAK,OAAO,GAAG;EAExB,OAAO,KAAK,OAAO,GAAG,CAAC,CAAC,KACtB,QAAQ,gBAAgB,GACxB,KAAK,UAAyB;GAC5B,IAAI,iBAAiB,cACnB,KAAK,aAAa,iBAAiB,KAAK;EAE5C,CAAC,GACD,YAAY,UAA4B;GACtC,KAAK,aAAa,YAAY,OAAO,GAAG;GACxC,OAAO,WAAW,KAAK;EACzB,CAAC,CAAC;CAEN;CAtBW;EAAA,KAAA,OAAA,GAAA,mBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAkB,MAAA,CAAA,EAAA,OAAA,mBAAA,CAAA;GAAA,QAAA,GAAA,gBAAA;EAAA,CAAA;CAAA;CAAlB;EAAA,KAAA,QAAA,GAAA,sBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;EAAkB,CAAA;CAAA;;AAAlB,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAkB,YAAA,CAAA,EAD9B,MAAA,WAAA,CAAA;;;ACiBD,MAAa,gCAAgC,IAAI,eAC/C,sCAAsC;AAkCxC,IAAa,wBAAb,MAAa,sBAAqB;CAChC,YAAoB,YAA8B;EAA9B,KAAA,aAAA;CAEpB;CAEO,OAAO,QACZ,mBAAiC;EAEjC,MAAM,YAAmB,CACvB;GAAE,SAAS;GAAgB,UAAU;EAAiB,GACtD;GAAE,SAAS;GAAc,UAAU;EAAkB,CACtD;EAED,IAAI,kBAAkB,cACpB,UAAU,KACR;GACE,SAAS,OAAO;GAChB,MAAM,CAAC,MAAM;EACd,GACD;GACE,SAAS;GACT,wBAAuB,CAAE;GACzB,MAAM,CAAC,OAAO,YAAY;GAC1B,OAAO;EACR,CAAA;EAIL,IAAI,kBAAkB,2BACpB,UAAU,KAAK;GACb,SAAS;GACT,UAAU;GACV,OAAO;EACR,CAAA;EAGH,OAAO;GACL,UAAU;GACC;EACZ;CACH;CAxCW;EAAA,KAAA,OAAA,GAAA,mBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAqB,MAAA,CAAA,EAAA,OAAA,mBAAA,CAAA;GAAA,QAAA,GAAA,gBAAA;EAAA,CAAA;CAAA;CAArB;EAAA,KAAA,OAAA,GAAA,oBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAqB,WAAA,CAFpB,wBAAwB;GAAA,cAAA;IA3BlC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;GAAkC;GAAA,SAAA;IAGlC;IACA;IACA;IACA;IACA;IACA;GAAa;GAAA,SAAA;IAGb;IACA;IACA;IACA;IACA;IACA;IACA;IACA;GAAkC;EAAA,CAAA;CAAA;CAIzB;EAAA,KAAA,OAAA,GAAA,oBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAqB,SAAA;IAnB9B;IACA;IACA;IAEA;IACA;GAAa;EAAA,CAAA;CAAA;;AAcJ,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAqB,YAAA,CAAA;EA/BjC,MAAA;EAAS,MAAA,CAAA;GACR,cAAc;IACZ;IACA;IACA;IACA;IACA;IACA;IACA;IACA;GACD;GACD,SAAS;IACP;IACA;IACA;IACA;IACA;IACA;GACD;GACD,SAAS;IACP;IACA;IACA;IACA;IACA;IACA;IACA;IACA;GACD;GACD,WAAW,CAAC,wBAAwB;EACrC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vc-error-handlers",
|
|
3
|
-
"version": "9.0.
|
|
3
|
+
"version": "9.0.1",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/common": " 13.x || 14.x || 15.x || 16.x || 17.x || 18.x || 19.x || 20.x || 21.x || 22.x || 23.x || 24.x ",
|
|
6
|
-
"@angular/core": "13.x || 14.x || 15.x || 16.x || 17.x || 18.x || 19.x || 20.x || 21.x || 22.x || 23.x || 24.x"
|
|
6
|
+
"@angular/core": "13.x || 14.x || 15.x || 16.x || 17.x || 18.x || 19.x || 20.x || 21.x || 22.x || 23.x || 24.x",
|
|
7
|
+
"@sentry/angular": "^11.8.0"
|
|
7
8
|
},
|
|
8
9
|
"publishConfig": {
|
|
9
10
|
"access": "public",
|
|
@@ -4,7 +4,7 @@ import { HttpClient, HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor,
|
|
|
4
4
|
import { ActivatedRoute, Router } from "@angular/router";
|
|
5
5
|
import { Observable, Subject, Subscription } from "rxjs";
|
|
6
6
|
import { AuthorizerService } from "@vcomply/authorizer";
|
|
7
|
-
import
|
|
7
|
+
import * as Sentry from "@sentry/angular";
|
|
8
8
|
import * as i3 from "@angular/common";
|
|
9
9
|
export declare class VcErrorHandlersService {
|
|
10
10
|
constructor();
|
|
@@ -524,7 +524,7 @@ declare class TooltipModule {
|
|
|
524
524
|
static ɵmod: i0.ɵɵNgModuleDeclaration<TooltipModule, [typeof ToolTipDirective], [typeof i3.CommonModule], [typeof ToolTipDirective]>;
|
|
525
525
|
static ɵinj: i0.ɵɵInjectorDeclaration<TooltipModule>;
|
|
526
526
|
}
|
|
527
|
-
export declare const FOR_ROOT_SENTRY_OPTIONS_TOKEN: InjectionToken<BrowserOptions>;
|
|
527
|
+
export declare const FOR_ROOT_SENTRY_OPTIONS_TOKEN: InjectionToken<Sentry.BrowserOptions>;
|
|
528
528
|
export declare class VcErrorHandlersModule {
|
|
529
529
|
private loadConfig;
|
|
530
530
|
constructor(loadConfig: FeatureFlagService);
|