@propmix/profet-common-header 3.5.0 → 3.6.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/README.md +46 -1
  2. package/esm2020/lib/api-endpoints.def.mjs +14 -0
  3. package/esm2020/lib/api-gateway.service.mjs +69 -0
  4. package/esm2020/lib/common-header.interface.mjs +11 -0
  5. package/{esm2022 → esm2020}/lib/common-header.module.mjs +33 -33
  6. package/esm2020/lib/common-header.service.mjs +177 -0
  7. package/{esm2022 → esm2020}/lib/company-switch-warning/company-switch-warning.component.mjs +6 -6
  8. package/esm2020/lib/config/app.config.mjs +21 -0
  9. package/esm2020/lib/header/header.component.mjs +429 -0
  10. package/esm2020/lib/pipes/active-route.pipe.mjs +24 -0
  11. package/{esm2022 → esm2020}/lib/pipes/milliseconds-to-minute.pipe.mjs +4 -4
  12. package/esm2020/lib/session-expiry-info/session-expiry-info.component.mjs +36 -0
  13. package/esm2020/lib/utils/Utilities.mjs +41 -0
  14. package/fesm2015/propmix-profet-common-header.mjs +964 -0
  15. package/fesm2015/propmix-profet-common-header.mjs.map +1 -0
  16. package/{fesm2022 → fesm2020}/propmix-profet-common-header.mjs +115 -96
  17. package/fesm2020/propmix-profet-common-header.mjs.map +1 -0
  18. package/lib/common-header.interface.d.ts +8 -0
  19. package/lib/header/header.component.d.ts +6 -3
  20. package/package.json +11 -5
  21. package/esm2022/lib/api-endpoints.def.mjs +0 -14
  22. package/esm2022/lib/api-gateway.service.mjs +0 -69
  23. package/esm2022/lib/common-header.interface.mjs +0 -2
  24. package/esm2022/lib/common-header.service.mjs +0 -177
  25. package/esm2022/lib/config/app.config.mjs +0 -21
  26. package/esm2022/lib/header/header.component.mjs +0 -420
  27. package/esm2022/lib/pipes/active-route.pipe.mjs +0 -24
  28. package/esm2022/lib/session-expiry-info/session-expiry-info.component.mjs +0 -36
  29. package/esm2022/lib/utils/Utilities.mjs +0 -41
  30. package/fesm2022/propmix-profet-common-header.mjs.map +0 -1
  31. /package/{esm2022 → esm2020}/lib/utils/app.constants.mjs +0 -0
  32. /package/{esm2022 → esm2020}/lib/utils/apps.enum.mjs +0 -0
  33. /package/{esm2022 → esm2020}/lib/utils/image.dataurl.mjs +0 -0
  34. /package/{esm2022 → esm2020}/propmix-profet-common-header.mjs +0 -0
  35. /package/{esm2022 → esm2020}/public-api.mjs +0 -0
package/README.md CHANGED
@@ -95,8 +95,53 @@ Use the configuration option in the app.module.ts file
95
95
 
96
96
  ## Input
97
97
 
98
- INACTIVITY_LIMIT - Provide the value in milliseconds. The default value is 30 minutes
98
+ | Input | Type | Description |
99
+ |-------|------|-------------|
100
+ | `INACTIVITY_LIMIT` | `number` | Inactivity timeout in milliseconds. Default is 30 minutes. |
101
+ | `appLogoNavigationUrl` | `string` | URL to navigate when the app logo is clicked. Overrides the value set in `HeaderConfig` if provided. |
102
+ | `disableAppMenu` | `boolean` | Disables the app menu when `true`. Overrides the value set in `HeaderConfig` if provided. |
103
+
104
+ Example:
105
+ ```html
106
+ <lib-header
107
+ [appLogoNavigationUrl]="'https://example.com'"
108
+ [disableAppMenu]="true">
109
+ </lib-header>
110
+ ```
111
+
112
+ ## Outputs
113
+
114
+ `logoutEvent` - Emitted during the logout process. It outputs an object with details about why the logout happened and its current lifecycle stage:
115
+
116
+ *Example:*
117
+
118
+ *HTML* -
119
+
120
+ <lib-header (logoutEvent)="handleLogout($event)"></lib-header>
121
+
122
+ *Typescript* -
99
123
 
124
+ import { LogoutReason, LogoutStatus } from '@propmix/profet-common-header';
125
+
126
+ handleLogout(event: { reason: LogoutReason, status: LogoutStatus }) {
127
+ if (event.status === LogoutStatus.INITIATED) {
128
+ // Logout has started - clean up app state, save data, etc.
129
+ // e.g. clear local storage, cancel pending requests
130
+ }
131
+
132
+ if (event.status === LogoutStatus.COMPLETED) {
133
+ // Sign out is complete, redirect is about to happen
134
+ }
135
+
136
+ if (event.reason === LogoutReason.SESSION_TIMEOUT) {
137
+ // Triggered by inactivity timer
138
+ }
139
+
140
+ if (event.reason === LogoutReason.USER_INITIATED) {
141
+ // Triggered by user clicking the logout button
142
+ }
143
+ }
144
+
100
145
  ### Optional Observables
101
146
 
102
147
  The library provides two observables that can be consumed by the application if needed. However, using these observables is not mandatory.
@@ -0,0 +1,14 @@
1
+ export class EndPoints {
2
+ }
3
+ EndPoints.API_URLS = {
4
+ getAppsApi: '/api/company/getAllUserAccessApplications',
5
+ getCompanyApplications: '/api/company/getCompanyApplications',
6
+ getUserCompanies: '/api/profile/getUserCompanies',
7
+ updateUserCompany: '/api/company/updateUserCompany',
8
+ fetchCompanyProfile: '/fetchCompanyProfile',
9
+ getUserDetails: '/api/user/getUserInformation',
10
+ getCompanyList: '/api/user/getUserCompanies',
11
+ getAppMenu: '/api/user/getAppMenu',
12
+ updateLastAccessedApplication: '/api/user/updateLastAccessedApplication'
13
+ };
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWVuZHBvaW50cy5kZWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24taGVhZGVyL3NyYy9saWIvYXBpLWVuZHBvaW50cy5kZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLFNBQVM7O0FBQ0osa0JBQVEsR0FBRztJQUNyQixVQUFVLEVBQUUsMkNBQTJDO0lBQ3ZELHNCQUFzQixFQUFFLHFDQUFxQztJQUM3RCxnQkFBZ0IsRUFBRSwrQkFBK0I7SUFDakQsaUJBQWlCLEVBQUUsZ0NBQWdDO0lBQ25ELG1CQUFtQixFQUFFLHNCQUFzQjtJQUMzQyxjQUFjLEVBQUUsOEJBQThCO0lBRTlDLGNBQWMsRUFBRSw0QkFBNEI7SUFDNUMsVUFBVSxFQUFFLHNCQUFzQjtJQUNsQyw2QkFBNkIsRUFBRSx5Q0FBeUM7Q0FDM0UsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBFbmRQb2ludHMge1xuICAgIHB1YmxpYyBzdGF0aWMgQVBJX1VSTFMgPSB7XG4gICAgICAgIGdldEFwcHNBcGk6ICcvYXBpL2NvbXBhbnkvZ2V0QWxsVXNlckFjY2Vzc0FwcGxpY2F0aW9ucycsXG4gICAgICAgIGdldENvbXBhbnlBcHBsaWNhdGlvbnM6ICcvYXBpL2NvbXBhbnkvZ2V0Q29tcGFueUFwcGxpY2F0aW9ucycsXG4gICAgICAgIGdldFVzZXJDb21wYW5pZXM6ICcvYXBpL3Byb2ZpbGUvZ2V0VXNlckNvbXBhbmllcycsICAvLyBUT0RPIC0tIE5lZWRzIHRvIHJlbW92ZVxuICAgICAgICB1cGRhdGVVc2VyQ29tcGFueTogJy9hcGkvY29tcGFueS91cGRhdGVVc2VyQ29tcGFueScsXG4gICAgICAgIGZldGNoQ29tcGFueVByb2ZpbGU6ICcvZmV0Y2hDb21wYW55UHJvZmlsZScsXG4gICAgICAgIGdldFVzZXJEZXRhaWxzOiAnL2FwaS91c2VyL2dldFVzZXJJbmZvcm1hdGlvbicsXG5cbiAgICAgICAgZ2V0Q29tcGFueUxpc3Q6ICcvYXBpL3VzZXIvZ2V0VXNlckNvbXBhbmllcycsXG4gICAgICAgIGdldEFwcE1lbnU6ICcvYXBpL3VzZXIvZ2V0QXBwTWVudScsXG4gICAgICAgIHVwZGF0ZUxhc3RBY2Nlc3NlZEFwcGxpY2F0aW9uOiAnL2FwaS91c2VyL3VwZGF0ZUxhc3RBY2Nlc3NlZEFwcGxpY2F0aW9uJ1xuICAgIH1cbn0iXX0=
@@ -0,0 +1,69 @@
1
+ import { HttpClient } from '@angular/common/http';
2
+ import { Injectable, inject } from '@angular/core';
3
+ import { Observable } from 'rxjs';
4
+ import * as i0 from "@angular/core";
5
+ export class ApiGatewayService {
6
+ constructor() {
7
+ this._http = inject(HttpClient);
8
+ }
9
+ doGet(url, config) {
10
+ return new Observable(observer => {
11
+ if (!config) {
12
+ config = {
13
+ isLoaderHidden: false
14
+ };
15
+ }
16
+ ;
17
+ let headers;
18
+ if (config.isUnauthorized) {
19
+ headers = {
20
+ skip: "true"
21
+ };
22
+ }
23
+ // this._loaderService.requestStarted(config);
24
+ this._http
25
+ .get(url, { headers: headers })
26
+ .subscribe({
27
+ next: (data) => {
28
+ // this._loaderService.requestEnded();
29
+ observer.next(data);
30
+ observer.complete();
31
+ },
32
+ error: (error) => {
33
+ // this.handleError(error, config, observer);
34
+ }
35
+ });
36
+ });
37
+ }
38
+ doPost(url, req_body) {
39
+ return new Observable(observer => {
40
+ let headers;
41
+ this._http
42
+ .post(url, req_body, { headers: headers })
43
+ .subscribe({
44
+ next: (data) => {
45
+ if (data && data.hasOwnProperty('status')) {
46
+ observer.next(data);
47
+ observer.complete();
48
+ }
49
+ else {
50
+ observer.next(data);
51
+ observer.complete();
52
+ }
53
+ },
54
+ error: (error) => {
55
+ // this.handleError(error, config, observer);
56
+ }
57
+ });
58
+ });
59
+ }
60
+ }
61
+ ApiGatewayService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiGatewayService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
62
+ ApiGatewayService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiGatewayService, providedIn: 'root' });
63
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiGatewayService, decorators: [{
64
+ type: Injectable,
65
+ args: [{
66
+ providedIn: 'root'
67
+ }]
68
+ }] });
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWdhdGV3YXkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbW1vbi1oZWFkZXIvc3JjL2xpYi9hcGktZ2F0ZXdheS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUtsQyxNQUFNLE9BQU8saUJBQWlCO0lBSDlCO1FBSVUsVUFBSyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztLQW9EcEM7SUFsREMsS0FBSyxDQUFDLEdBQVcsRUFBRSxNQUFZO1FBQzdCLE9BQU8sSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDL0IsSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDWCxNQUFNLEdBQUc7b0JBQ1AsY0FBYyxFQUFFLEtBQUs7aUJBQ3RCLENBQUM7YUFDSDtZQUFBLENBQUM7WUFDRixJQUFJLE9BQVcsQ0FBQztZQUNoQixJQUFHLE1BQU0sQ0FBQyxjQUFjLEVBQUM7Z0JBQ3ZCLE9BQU8sR0FBRztvQkFDUixJQUFJLEVBQUUsTUFBTTtpQkFDYixDQUFBO2FBQ0Y7WUFFRCw4Q0FBOEM7WUFDOUMsSUFBSSxDQUFDLEtBQUs7aUJBQ1AsR0FBRyxDQUFDLEdBQUcsRUFBQyxFQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUMsQ0FBQztpQkFDM0IsU0FBUyxDQUFDO2dCQUNULElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO29CQUNiLHNDQUFzQztvQkFDdEMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDcEIsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUN0QixDQUFDO2dCQUNELEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO29CQUNmLDZDQUE2QztnQkFDL0MsQ0FBQzthQUNGLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUNELE1BQU0sQ0FBQyxHQUFXLEVBQUUsUUFBYztRQUNoQyxPQUFPLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQy9CLElBQUksT0FBVyxDQUFDO1lBQ2hCLElBQUksQ0FBQyxLQUFLO2lCQUNQLElBQUksQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFDLEVBQUMsT0FBTyxFQUFFLE9BQU8sRUFBQyxDQUFDO2lCQUN0QyxTQUFTLENBQUM7Z0JBQ1QsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUU7b0JBQ2IsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFBRTt3QkFDekMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFDcEIsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO3FCQUNyQjt5QkFBTTt3QkFDTCxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO3dCQUNwQixRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7cUJBQ3JCO2dCQUNILENBQUM7Z0JBQ0QsS0FBSyxFQUFFLENBQUMsS0FBUyxFQUFFLEVBQUU7b0JBQ25CLDZDQUE2QztnQkFDL0MsQ0FBQzthQUNGLENBQUMsQ0FBQTtRQUNOLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7K0dBcERVLGlCQUFpQjttSEFBakIsaUJBQWlCLGNBRmhCLE1BQU07NEZBRVAsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQXBpR2F0ZXdheVNlcnZpY2Uge1xuICBwcml2YXRlIF9odHRwID0gaW5qZWN0KEh0dHBDbGllbnQpO1xuICBcbiAgZG9HZXQodXJsOiBzdHJpbmcsIGNvbmZpZz86IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKG9ic2VydmVyID0+IHtcbiAgICAgIGlmICghY29uZmlnKSB7XG4gICAgICAgIGNvbmZpZyA9IHtcbiAgICAgICAgICBpc0xvYWRlckhpZGRlbjogZmFsc2VcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICBsZXQgaGVhZGVyczphbnk7XG4gICAgICBpZihjb25maWcuaXNVbmF1dGhvcml6ZWQpe1xuICAgICAgICBoZWFkZXJzID0ge1xuICAgICAgICAgIHNraXA6IFwidHJ1ZVwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICBcbiAgICAgIC8vIHRoaXMuX2xvYWRlclNlcnZpY2UucmVxdWVzdFN0YXJ0ZWQoY29uZmlnKTtcbiAgICAgIHRoaXMuX2h0dHBcbiAgICAgICAgLmdldCh1cmwse2hlYWRlcnM6IGhlYWRlcnN9KVxuICAgICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgICBuZXh0OiAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgLy8gdGhpcy5fbG9hZGVyU2VydmljZS5yZXF1ZXN0RW5kZWQoKTtcbiAgICAgICAgICAgIG9ic2VydmVyLm5leHQoZGF0YSk7XG4gICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICAgICAgLy8gdGhpcy5oYW5kbGVFcnJvcihlcnJvciwgY29uZmlnLCBvYnNlcnZlcik7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9KVxuICB9XG4gIGRvUG9zdCh1cmw6IHN0cmluZywgcmVxX2JvZHk/OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShvYnNlcnZlciA9PiB7XG4gICAgICBsZXQgaGVhZGVyczphbnk7XG4gICAgICB0aGlzLl9odHRwXG4gICAgICAgIC5wb3N0KHVybCwgcmVxX2JvZHkse2hlYWRlcnM6IGhlYWRlcnN9KVxuICAgICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgICBuZXh0OiAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgaWYgKGRhdGEgJiYgZGF0YS5oYXNPd25Qcm9wZXJ0eSgnc3RhdHVzJykpIHtcbiAgICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dChkYXRhKTtcbiAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIG9ic2VydmVyLm5leHQoZGF0YSk7XG4gICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBlcnJvcjogKGVycm9yOmFueSkgPT4ge1xuICAgICAgICAgICAgLy8gdGhpcy5oYW5kbGVFcnJvcihlcnJvciwgY29uZmlnLCBvYnNlcnZlcik7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,11 @@
1
+ export var LogoutReason;
2
+ (function (LogoutReason) {
3
+ LogoutReason["USER_INITIATED"] = "USER_INITIATED";
4
+ LogoutReason["SESSION_TIMEOUT"] = "SESSION_TIMEOUT";
5
+ })(LogoutReason || (LogoutReason = {}));
6
+ export var LogoutStatus;
7
+ (function (LogoutStatus) {
8
+ LogoutStatus["INITIATED"] = "INITIATED";
9
+ LogoutStatus["COMPLETED"] = "COMPLETED";
10
+ })(LogoutStatus || (LogoutStatus = {}));
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLWhlYWRlci5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24taGVhZGVyL3NyYy9saWIvY29tbW9uLWhlYWRlci5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBNkNBLE1BQU0sQ0FBTixJQUFZLFlBR1g7QUFIRCxXQUFZLFlBQVk7SUFDcEIsaURBQWlDLENBQUE7SUFDakMsbURBQW1DLENBQUE7QUFDdkMsQ0FBQyxFQUhXLFlBQVksS0FBWixZQUFZLFFBR3ZCO0FBRUQsTUFBTSxDQUFOLElBQVksWUFHWDtBQUhELFdBQVksWUFBWTtJQUNwQix1Q0FBdUIsQ0FBQTtJQUN2Qix1Q0FBdUIsQ0FBQTtBQUMzQixDQUFDLEVBSFcsWUFBWSxLQUFaLFlBQVksUUFHdkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQUk9GRVRfQVBQUyB9IGZyb20gXCIuL3V0aWxzL2FwcHMuZW51bVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFwcE1lbnUge1xuICAgIGFwcFR5cGU6IFBST0ZFVF9BUFBTO1xuICAgIG1lbnVOYW1lOiBzdHJpbmc7XG4gICAgaWNvbj86IHN0cmluZztcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgZ3JvdXBCeT86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgQXBwbGljYXRpb25Db25maWcgPSB7XG4gICAgW2tleSBpbiBQUk9GRVRfQVBQU106IHtcbiAgICAgICAgYXBwTmFtZTogc3RyaW5nO1xuICAgICAgICBhcHBMb2dvVXJpOiBzdHJpbmc7XG4gICAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhlYWRlckNvbmZpZyB7XG4gICAgYXBpVXJsOiBzdHJpbmc7XG4gICAgcG9ydGFsRnJvbnRlbmRVcmw/OiBzdHJpbmc7XG4gICAgc2lnbk91dFVybDogc3RyaW5nO1xuICAgIGFwcFR5cGU6IFBST0ZFVF9BUFBTO1xuICAgIGVuYWJsZUxhc3RVcmxSZWRpcmVjdGlvbj86IGJvb2xlYW47XG4gICAgZGlzYWJsZUFwcE1lbnU/OiBib29sZWFuO1xuICAgIGFwcExvZ29OYXZpZ2F0aW9uVXJsPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbXBhbnkge1xuICAgIGlkOiBudW1iZXI7XG4gICAgY29tcGFueUtleTogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBsb2dvPzogc3RyaW5nO1xuICAgIGlzQWN0aXZlOiBib29sZWFuO1xuICAgIGJhc2VVcmxzOiB7XG4gICAgICAgIHByb2ZldF9wb3J0YWw/OiBzdHJpbmcsXG4gICAgICAgIGFwcHJhaXNhbF9tYW5hZ2VtZW50Pzogc3RyaW5nLFxuICAgICAgICBhcHByYWlzYWxfcmV2aWV3Pzogc3RyaW5nLFxuICAgICAgICBhcHByYWlzYWxfdmFsdWF0aW9uPzogc3RyaW5nXG4gICAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlc3Npb25PdXRJbmZvIHtcbiAgICBzZXNzaW9uT3V0VGltZUluTWlucz86IG51bWJlcjtcbn1cblxuZXhwb3J0IGVudW0gTG9nb3V0UmVhc29uIHtcbiAgICBVU0VSX0lOSVRJQVRFRCA9ICdVU0VSX0lOSVRJQVRFRCcsXG4gICAgU0VTU0lPTl9USU1FT1VUID0gJ1NFU1NJT05fVElNRU9VVCdcbn1cblxuZXhwb3J0IGVudW0gTG9nb3V0U3RhdHVzIHtcbiAgICBJTklUSUFURUQgPSAnSU5JVElBVEVEJyxcbiAgICBDT01QTEVURUQgPSAnQ09NUExFVEVEJ1xufSJdfQ==
@@ -21,39 +21,39 @@ import { SessionExpiryInfoComponent } from './session-expiry-info/session-expiry
21
21
  import { MillisecondsToMinutePipe } from './pipes/milliseconds-to-minute.pipe';
22
22
  import * as i0 from "@angular/core";
23
23
  export class CommonHeaderModule {
24
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CommonHeaderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
25
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: CommonHeaderModule, declarations: [HeaderComponent, CompanySwitchWarningComponent, ActiveRoutePipe, SessionExpiryInfoComponent, MillisecondsToMinutePipe], imports: [CommonModule,
26
- MatToolbarModule,
27
- MatIconModule,
28
- HttpClientModule,
29
- MatButtonModule,
30
- MatSidenavModule,
31
- MatMenuModule,
32
- MatSnackBarModule,
33
- MatTooltipModule,
34
- MatDividerModule,
35
- MatListModule,
36
- MatFormFieldModule,
37
- MatSelectModule,
38
- ReactiveFormsModule,
39
- MatDialogModule], exports: [HeaderComponent] }); }
40
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CommonHeaderModule, providers: [TitleCasePipe, LowerCasePipe], imports: [CommonModule,
41
- MatToolbarModule,
42
- MatIconModule,
43
- HttpClientModule,
44
- MatButtonModule,
45
- MatSidenavModule,
46
- MatMenuModule,
47
- MatSnackBarModule,
48
- MatTooltipModule,
49
- MatDividerModule,
50
- MatListModule,
51
- MatFormFieldModule,
52
- MatSelectModule,
53
- ReactiveFormsModule,
54
- MatDialogModule] }); }
55
24
  }
56
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CommonHeaderModule, decorators: [{
25
+ CommonHeaderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CommonHeaderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
26
+ CommonHeaderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: CommonHeaderModule, declarations: [HeaderComponent, CompanySwitchWarningComponent, ActiveRoutePipe, SessionExpiryInfoComponent, MillisecondsToMinutePipe], imports: [CommonModule,
27
+ MatToolbarModule,
28
+ MatIconModule,
29
+ HttpClientModule,
30
+ MatButtonModule,
31
+ MatSidenavModule,
32
+ MatMenuModule,
33
+ MatSnackBarModule,
34
+ MatTooltipModule,
35
+ MatDividerModule,
36
+ MatListModule,
37
+ MatFormFieldModule,
38
+ MatSelectModule,
39
+ ReactiveFormsModule,
40
+ MatDialogModule], exports: [HeaderComponent] });
41
+ CommonHeaderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CommonHeaderModule, providers: [TitleCasePipe, LowerCasePipe], imports: [CommonModule,
42
+ MatToolbarModule,
43
+ MatIconModule,
44
+ HttpClientModule,
45
+ MatButtonModule,
46
+ MatSidenavModule,
47
+ MatMenuModule,
48
+ MatSnackBarModule,
49
+ MatTooltipModule,
50
+ MatDividerModule,
51
+ MatListModule,
52
+ MatFormFieldModule,
53
+ MatSelectModule,
54
+ ReactiveFormsModule,
55
+ MatDialogModule] });
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CommonHeaderModule, decorators: [{
57
57
  type: NgModule,
58
58
  args: [{
59
59
  declarations: [HeaderComponent, CompanySwitchWarningComponent, ActiveRoutePipe, SessionExpiryInfoComponent, MillisecondsToMinutePipe],
@@ -78,4 +78,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
78
78
  exports: [HeaderComponent],
79
79
  }]
80
80
  }] });
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLWhlYWRlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24taGVhZGVyL3NyYy9saWIvY29tbW9uLWhlYWRlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUMxRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOztBQXVCL0UsTUFBTSxPQUFPLGtCQUFrQjsrR0FBbEIsa0JBQWtCO2dIQUFsQixrQkFBa0IsaUJBckJkLGVBQWUsRUFBRSw2QkFBNkIsRUFBRSxlQUFlLEVBQUUsMEJBQTBCLEVBQUUsd0JBQXdCLGFBRWxJLFlBQVk7WUFDWixnQkFBZ0I7WUFDaEIsYUFBYTtZQUNiLGdCQUFnQjtZQUNoQixlQUFlO1lBQ2YsZ0JBQWdCO1lBQ2hCLGFBQWE7WUFDYixpQkFBaUI7WUFDakIsZ0JBQWdCO1lBQ2hCLGdCQUFnQjtZQUNoQixhQUFhO1lBQ2Isa0JBQWtCO1lBQ2xCLGVBQWU7WUFDZixtQkFBbUI7WUFDbkIsZUFBZSxhQUdQLGVBQWU7Z0hBRWQsa0JBQWtCLGFBSGxCLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxZQWhCdkMsWUFBWTtZQUNaLGdCQUFnQjtZQUNoQixhQUFhO1lBQ2IsZ0JBQWdCO1lBQ2hCLGVBQWU7WUFDZixnQkFBZ0I7WUFDaEIsYUFBYTtZQUNiLGlCQUFpQjtZQUNqQixnQkFBZ0I7WUFDaEIsZ0JBQWdCO1lBQ2hCLGFBQWE7WUFDYixrQkFBa0I7WUFDbEIsZUFBZTtZQUNmLG1CQUFtQjtZQUNuQixlQUFlOzs0RkFLTixrQkFBa0I7a0JBdEI5QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGVBQWUsRUFBRSw2QkFBNkIsRUFBRSxlQUFlLEVBQUUsMEJBQTBCLEVBQUUsd0JBQXdCLENBQUM7b0JBQ3JJLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGdCQUFnQjt3QkFDaEIsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLGlCQUFpQjt3QkFDakIsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2Isa0JBQWtCO3dCQUNsQixlQUFlO3dCQUNmLG1CQUFtQjt3QkFDbkIsZUFBZTtxQkFDaEI7b0JBQ0QsU0FBUyxFQUFFLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQztvQkFDekMsT0FBTyxFQUFFLENBQUMsZUFBZSxDQUFDO2lCQUMzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSwgTG93ZXJDYXNlUGlwZSwgVGl0bGVDYXNlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBIdHRwQ2xpZW50TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0RGlhbG9nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1hdERpdmlkZXJNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGl2aWRlclwiO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGRcIjtcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdExpc3RNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvbGlzdFwiO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3NlbGVjdFwiO1xuaW1wb3J0IHsgTWF0U2lkZW5hdk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NpZGVuYXYnO1xuaW1wb3J0IHsgTWF0U25hY2tCYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xuaW1wb3J0IHsgTWF0VG9vbGJhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2xiYXInO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuaW1wb3J0IHsgQ29tcGFueVN3aXRjaFdhcm5pbmdDb21wb25lbnQgfSBmcm9tICcuL2NvbXBhbnktc3dpdGNoLXdhcm5pbmcvY29tcGFueS1zd2l0Y2gtd2FybmluZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBY3RpdmVSb3V0ZVBpcGUgfSBmcm9tICcuL3BpcGVzL2FjdGl2ZS1yb3V0ZS5waXBlJztcbmltcG9ydCB7IFNlc3Npb25FeHBpcnlJbmZvQ29tcG9uZW50IH0gZnJvbSAnLi9zZXNzaW9uLWV4cGlyeS1pbmZvL3Nlc3Npb24tZXhwaXJ5LWluZm8uY29tcG9uZW50JztcbmltcG9ydCB7IE1pbGxpc2Vjb25kc1RvTWludXRlUGlwZSB9IGZyb20gJy4vcGlwZXMvbWlsbGlzZWNvbmRzLXRvLW1pbnV0ZS5waXBlJztcbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW0hlYWRlckNvbXBvbmVudCwgQ29tcGFueVN3aXRjaFdhcm5pbmdDb21wb25lbnQsIEFjdGl2ZVJvdXRlUGlwZSwgU2Vzc2lvbkV4cGlyeUluZm9Db21wb25lbnQsIE1pbGxpc2Vjb25kc1RvTWludXRlUGlwZV0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTWF0VG9vbGJhck1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIEh0dHBDbGllbnRNb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdFNpZGVuYXZNb2R1bGUsXG4gICAgTWF0TWVudU1vZHVsZSxcbiAgICBNYXRTbmFja0Jhck1vZHVsZSxcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxuICAgIE1hdERpdmlkZXJNb2R1bGUsXG4gICAgTWF0TGlzdE1vZHVsZSxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTWF0RGlhbG9nTW9kdWxlXG4gIF0sXG4gIHByb3ZpZGVyczogW1RpdGxlQ2FzZVBpcGUsIExvd2VyQ2FzZVBpcGVdLFxuICBleHBvcnRzOiBbSGVhZGVyQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgQ29tbW9uSGVhZGVyTW9kdWxlIHsgfVxuIl19
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLWhlYWRlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24taGVhZGVyL3NyYy9saWIvY29tbW9uLWhlYWRlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUMxRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOztBQXVCL0UsTUFBTSxPQUFPLGtCQUFrQjs7Z0hBQWxCLGtCQUFrQjtpSEFBbEIsa0JBQWtCLGlCQXJCZCxlQUFlLEVBQUUsNkJBQTZCLEVBQUUsZUFBZSxFQUFFLDBCQUEwQixFQUFFLHdCQUF3QixhQUVsSSxZQUFZO1FBQ1osZ0JBQWdCO1FBQ2hCLGFBQWE7UUFDYixnQkFBZ0I7UUFDaEIsZUFBZTtRQUNmLGdCQUFnQjtRQUNoQixhQUFhO1FBQ2IsaUJBQWlCO1FBQ2pCLGdCQUFnQjtRQUNoQixnQkFBZ0I7UUFDaEIsYUFBYTtRQUNiLGtCQUFrQjtRQUNsQixlQUFlO1FBQ2YsbUJBQW1CO1FBQ25CLGVBQWUsYUFHUCxlQUFlO2lIQUVkLGtCQUFrQixhQUhsQixDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUMsWUFoQnZDLFlBQVk7UUFDWixnQkFBZ0I7UUFDaEIsYUFBYTtRQUNiLGdCQUFnQjtRQUNoQixlQUFlO1FBQ2YsZ0JBQWdCO1FBQ2hCLGFBQWE7UUFDYixpQkFBaUI7UUFDakIsZ0JBQWdCO1FBQ2hCLGdCQUFnQjtRQUNoQixhQUFhO1FBQ2Isa0JBQWtCO1FBQ2xCLGVBQWU7UUFDZixtQkFBbUI7UUFDbkIsZUFBZTs0RkFLTixrQkFBa0I7a0JBdEI5QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGVBQWUsRUFBRSw2QkFBNkIsRUFBRSxlQUFlLEVBQUUsMEJBQTBCLEVBQUUsd0JBQXdCLENBQUM7b0JBQ3JJLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGdCQUFnQjt3QkFDaEIsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLGlCQUFpQjt3QkFDakIsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2Isa0JBQWtCO3dCQUNsQixlQUFlO3dCQUNmLG1CQUFtQjt3QkFDbkIsZUFBZTtxQkFDaEI7b0JBQ0QsU0FBUyxFQUFFLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQztvQkFDekMsT0FBTyxFQUFFLENBQUMsZUFBZSxDQUFDO2lCQUMzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSwgTG93ZXJDYXNlUGlwZSwgVGl0bGVDYXNlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBIdHRwQ2xpZW50TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0RGlhbG9nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1hdERpdmlkZXJNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGl2aWRlclwiO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGRcIjtcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdExpc3RNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvbGlzdFwiO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3NlbGVjdFwiO1xuaW1wb3J0IHsgTWF0U2lkZW5hdk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NpZGVuYXYnO1xuaW1wb3J0IHsgTWF0U25hY2tCYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xuaW1wb3J0IHsgTWF0VG9vbGJhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2xiYXInO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuaW1wb3J0IHsgQ29tcGFueVN3aXRjaFdhcm5pbmdDb21wb25lbnQgfSBmcm9tICcuL2NvbXBhbnktc3dpdGNoLXdhcm5pbmcvY29tcGFueS1zd2l0Y2gtd2FybmluZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBY3RpdmVSb3V0ZVBpcGUgfSBmcm9tICcuL3BpcGVzL2FjdGl2ZS1yb3V0ZS5waXBlJztcbmltcG9ydCB7IFNlc3Npb25FeHBpcnlJbmZvQ29tcG9uZW50IH0gZnJvbSAnLi9zZXNzaW9uLWV4cGlyeS1pbmZvL3Nlc3Npb24tZXhwaXJ5LWluZm8uY29tcG9uZW50JztcbmltcG9ydCB7IE1pbGxpc2Vjb25kc1RvTWludXRlUGlwZSB9IGZyb20gJy4vcGlwZXMvbWlsbGlzZWNvbmRzLXRvLW1pbnV0ZS5waXBlJztcbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW0hlYWRlckNvbXBvbmVudCwgQ29tcGFueVN3aXRjaFdhcm5pbmdDb21wb25lbnQsIEFjdGl2ZVJvdXRlUGlwZSwgU2Vzc2lvbkV4cGlyeUluZm9Db21wb25lbnQsIE1pbGxpc2Vjb25kc1RvTWludXRlUGlwZV0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTWF0VG9vbGJhck1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIEh0dHBDbGllbnRNb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdFNpZGVuYXZNb2R1bGUsXG4gICAgTWF0TWVudU1vZHVsZSxcbiAgICBNYXRTbmFja0Jhck1vZHVsZSxcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxuICAgIE1hdERpdmlkZXJNb2R1bGUsXG4gICAgTWF0TGlzdE1vZHVsZSxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTWF0RGlhbG9nTW9kdWxlXG4gIF0sXG4gIHByb3ZpZGVyczogW1RpdGxlQ2FzZVBpcGUsIExvd2VyQ2FzZVBpcGVdLFxuICBleHBvcnRzOiBbSGVhZGVyQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgQ29tbW9uSGVhZGVyTW9kdWxlIHsgfVxuIl19
@@ -0,0 +1,177 @@
1
+ import { Inject, inject, Injectable } from '@angular/core';
2
+ import { MatDialog } from '@angular/material/dialog';
3
+ import { reduce, ReplaySubject } from 'rxjs';
4
+ import { APP_DOMAIN } from '../public-api';
5
+ import { EndPoints } from './api-endpoints.def';
6
+ import { ApiGatewayService } from './api-gateway.service';
7
+ import { SessionExpiryInfoComponent } from './session-expiry-info/session-expiry-info.component';
8
+ import { Utilities } from './utils/Utilities';
9
+ import * as i0 from "@angular/core";
10
+ export class CommonHeaderService {
11
+ constructor(config) {
12
+ this.config = config;
13
+ this.SESSION_EXPIRED_KEY = 'session_expired';
14
+ this.LAST_ACTIVE_SESSION_KEY = 'lastActiveSessionTime';
15
+ this.baseUrl = '';
16
+ this.isSessionExpiryDialogOpen = false;
17
+ this._apiGatewayService = inject(ApiGatewayService);
18
+ this._dialog = inject(MatDialog);
19
+ this.menuStateSubject = new ReplaySubject(1);
20
+ this.activeMenuList$ = this.menuStateSubject.asObservable();
21
+ this.companyListSubject = new ReplaySubject(1);
22
+ this.companyList$ = this.companyListSubject.asObservable();
23
+ this.headerConfig = config;
24
+ this.baseUrl = config.apiUrl;
25
+ }
26
+ setMenuState(data) {
27
+ this.menuStateSubject.next(data);
28
+ }
29
+ setCompanyList(data) {
30
+ this.companyListSubject.next(data);
31
+ }
32
+ obtainDataByUrl(url) {
33
+ return this._apiGatewayService.doGet(url);
34
+ }
35
+ openSessionExpireInfo(sessioninfo) {
36
+ let info = {};
37
+ if (sessioninfo) {
38
+ info = sessioninfo;
39
+ }
40
+ this.isSessionExpiryDialogOpen = true;
41
+ this._dialog.open(SessionExpiryInfoComponent, { data: sessioninfo });
42
+ }
43
+ getDomainInfo() {
44
+ let dom = document.location.host.split('.');
45
+ let domainInfo = APP_DOMAIN.find(x => x.domain === dom[0]);
46
+ if (domainInfo) {
47
+ return domainInfo;
48
+ }
49
+ // Check if the second part of the domain exists before using it
50
+ domainInfo = dom[1] ? APP_DOMAIN.find(x => x.domain === dom[1]) : undefined;
51
+ return domainInfo || undefined;
52
+ }
53
+ getApps() {
54
+ let url = `${this.baseUrl + EndPoints.API_URLS.getAppsApi}`;
55
+ return this._apiGatewayService.doGet(url);
56
+ }
57
+ getCompanyApplications() {
58
+ let url = `${this.baseUrl + EndPoints.API_URLS.getCompanyApplications}`;
59
+ return this._apiGatewayService.doGet(url);
60
+ }
61
+ // TODO -- need to remove
62
+ getUserCompanies() {
63
+ let url = `${this.baseUrl + EndPoints.API_URLS.getUserCompanies}`;
64
+ return this._apiGatewayService.doGet(url);
65
+ }
66
+ updateUserCompany(reqBody) {
67
+ let url = `${this.baseUrl + EndPoints.API_URLS.updateUserCompany}`;
68
+ return this._apiGatewayService.doPost(url, reqBody);
69
+ }
70
+ fetchCompanyProfile(reqBody) {
71
+ let config = {
72
+ isUnauthorized: true
73
+ };
74
+ let url = `${this.baseUrl + EndPoints.API_URLS.fetchCompanyProfile + '?' + Utilities.convertObjectToQueryString(reqBody)}`;
75
+ return this._apiGatewayService.doGet(url, config).pipe(reduce((acc, res) => {
76
+ if (res?.data) {
77
+ acc = res.data;
78
+ }
79
+ return acc;
80
+ }, {}));
81
+ }
82
+ getUserDetails() {
83
+ let url = `${this.baseUrl + EndPoints.API_URLS.getUserDetails}`;
84
+ return this._apiGatewayService.doGet(url);
85
+ }
86
+ getCompanyList() {
87
+ let url = `${this.baseUrl + EndPoints.API_URLS.getCompanyList}`;
88
+ return this._apiGatewayService.doGet(url).pipe(reduce((acc, res) => {
89
+ if (res?.data?.companies) {
90
+ acc = res?.data?.companies;
91
+ }
92
+ return acc;
93
+ }, {}));
94
+ }
95
+ getMenuList() {
96
+ let url = `${this.baseUrl + EndPoints.API_URLS.getAppMenu}`;
97
+ return this._apiGatewayService.doGet(url).pipe(reduce((acc, res) => {
98
+ if (res?.data?.AppMenu) {
99
+ acc = res?.data?.AppMenu;
100
+ }
101
+ return acc;
102
+ }, {}));
103
+ }
104
+ updateLastAccessedApplication(reqBody) {
105
+ let url = `${this.baseUrl + EndPoints.API_URLS.updateLastAccessedApplication}`;
106
+ return this._apiGatewayService.doPost(url, reqBody);
107
+ }
108
+ /**
109
+ * Helper to get the root domain (e.g. .profet.ai) to share cookies across subdomains/ports.
110
+ * If on localhost or an IP, it falls back to the hostname.
111
+ */
112
+ getRootDomain() {
113
+ const hostname = window.location.hostname;
114
+ const parts = hostname.split('.');
115
+ if (parts.length > 2 && !/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(hostname)) {
116
+ // If we have 4+ parts (e.g. app1.local.profet.ai), we want to include the environment (local.profet.ai)
117
+ // to avoid sharing cookies with app1.dev.profet.ai or app1.profet.ai.
118
+ if (parts.length > 3) {
119
+ return '.' + parts.slice(-3).join('.');
120
+ }
121
+ // For standard 3 parts (app1.profet.ai), share on .profet.ai
122
+ return '.' + parts.slice(-2).join('.');
123
+ }
124
+ return hostname;
125
+ }
126
+ /**
127
+ * Generates a unique cookie name based on the environment root domain.
128
+ * e.g. 'lastActive' on .qa.profet.ai -> 'lastActive_qa_profet_ai'
129
+ * @param name Base cookie name
130
+ */
131
+ getSuffixedCookieName(name) {
132
+ const rootDomain = this.getRootDomain();
133
+ // Replace dots with underscores to create a clean suffix
134
+ const suffix = rootDomain.replace(/\./g, '_');
135
+ return `${name}${suffix}`;
136
+ }
137
+ setCookie(name, value, days) {
138
+ const uniqueName = this.getSuffixedCookieName(name);
139
+ let expires = "";
140
+ if (days) {
141
+ const date = new Date();
142
+ date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
143
+ expires = "; expires=" + date.toUTCString();
144
+ }
145
+ // Important: set domain to allow sharing across subdomains
146
+ const domain = "; domain=" + this.getRootDomain();
147
+ document.cookie = uniqueName + "=" + (value || "") + expires + domain + "; path=/";
148
+ }
149
+ getCookie(name) {
150
+ const uniqueName = this.getSuffixedCookieName(name);
151
+ const nameEQ = uniqueName + "=";
152
+ const ca = document.cookie.split(';');
153
+ for (let i = 0; i < ca.length; i++) {
154
+ let c = ca[i];
155
+ while (c.charAt(0) == ' ')
156
+ c = c.substring(1, c.length);
157
+ if (c.indexOf(nameEQ) == 0)
158
+ return c.substring(nameEQ.length, c.length);
159
+ }
160
+ return null;
161
+ }
162
+ deleteCookie(name) {
163
+ this.setCookie(name, '', -1);
164
+ }
165
+ }
166
+ CommonHeaderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CommonHeaderService, deps: [{ token: 'headerConfig' }], target: i0.ɵɵFactoryTarget.Injectable });
167
+ CommonHeaderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CommonHeaderService, providedIn: 'root' });
168
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CommonHeaderService, decorators: [{
169
+ type: Injectable,
170
+ args: [{
171
+ providedIn: 'root'
172
+ }]
173
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
174
+ type: Inject,
175
+ args: ['headerConfig']
176
+ }] }]; } });
177
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLWhlYWRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uLWhlYWRlci9zcmMvbGliL2NvbW1vbi1oZWFkZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTFELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFLOUMsTUFBTSxPQUFPLG1CQUFtQjtJQWdCOUIsWUFBNEMsTUFBb0I7UUFBcEIsV0FBTSxHQUFOLE1BQU0sQ0FBYztRQWZoRCx3QkFBbUIsR0FBRyxpQkFBaUIsQ0FBQztRQUN4Qyw0QkFBdUIsR0FBRyx1QkFBdUIsQ0FBQztRQUUxRCxZQUFPLEdBQVcsRUFBRSxDQUFDO1FBRTdCLDhCQUF5QixHQUFHLEtBQUssQ0FBQztRQUMxQix1QkFBa0IsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNoRCxZQUFPLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTNCLHFCQUFnQixHQUFHLElBQUksYUFBYSxDQUFtQixDQUFDLENBQUMsQ0FBQztRQUMzRCxvQkFBZSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZ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O21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBaUJjLE1BQU07MkJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgcmVkdWNlLCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBUFBfRE9NQUlOIH0gZnJvbSAnLi4vcHVibGljLWFwaSc7XG5pbXBvcnQgeyBFbmRQb2ludHMgfSBmcm9tICcuL2FwaS1lbmRwb2ludHMuZGVmJztcbmltcG9ydCB7IEFwaUdhdGV3YXlTZXJ2aWNlIH0gZnJvbSAnLi9hcGktZ2F0ZXdheS5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcE1lbnUsIENvbXBhbnksIEhlYWRlckNvbmZpZywgU2Vzc2lvbk91dEluZm8gfSBmcm9tICcuL2NvbW1vbi1oZWFkZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IFNlc3Npb25FeHBpcnlJbmZvQ29tcG9uZW50IH0gZnJvbSAnLi9zZXNzaW9uLWV4cGlyeS1pbmZvL3Nlc3Npb24tZXhwaXJ5LWluZm8uY29tcG9uZW50JztcbmltcG9ydCB7IFV0aWxpdGllcyB9IGZyb20gJy4vdXRpbHMvVXRpbGl0aWVzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQ29tbW9uSGVhZGVyU2VydmljZSB7XG4gIHB1YmxpYyByZWFkb25seSBTRVNTSU9OX0VYUElSRURfS0VZID0gJ3Nlc3Npb25fZXhwaXJlZCc7XG4gIHB1YmxpYyByZWFkb25seSBMQVNUX0FDVElWRV9TRVNTSU9OX0tFWSA9ICdsYXN0QWN0aXZlU2Vzc2lvblRpbWUnO1xuXG4gIHByaXZhdGUgYmFzZVVybDogc3RyaW5nID0gJyc7XG4gIGhlYWRlckNvbmZpZzogSGVhZGVyQ29uZmlnO1xuICBpc1Nlc3Npb25FeHBpcnlEaWFsb2dPcGVuID0gZmFsc2U7XG4gIHByaXZhdGUgX2FwaUdhdGV3YXlTZXJ2aWNlID0gaW5qZWN0KEFwaUdhdGV3YXlTZXJ2aWNlKTtcbiAgcHVibGljIF9kaWFsb2cgPSBpbmplY3QoTWF0RGlhbG9nKTtcblxuICBwcml2YXRlIG1lbnVTdGF0ZVN1YmplY3QgPSBuZXcgUmVwbGF5U3ViamVjdDxBcHBNZW51W10gfCBudWxsPigxKTtcbiAgcHVibGljIGFjdGl2ZU1lbnVMaXN0JCA9IHRoaXMubWVudVN0YXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcblxuICBwcml2YXRlIGNvbXBhbnlMaXN0U3ViamVjdCA9IG5ldyBSZXBsYXlTdWJqZWN0PENvbXBhbnlbXSB8IG51bGw+KDEpO1xuICBwdWJsaWMgY29tcGFueUxpc3QkID0gdGhpcy5jb21wYW55TGlzdFN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG5cbiAgY29uc3RydWN0b3IoQEluamVjdCgnaGVhZGVyQ29uZmlnJykgcHJpdmF0ZSBjb25maWc6IEhlYWRlckNvbmZpZykge1xuICAgIHRoaXMuaGVhZGVyQ29uZmlnID0gY29uZmlnO1xuICAgIHRoaXMuYmFzZVVybCA9IGNvbmZpZy5hcGlVcmw7XG4gIH1cblxuICBzZXRNZW51U3RhdGUoZGF0YTogQXBwTWVudVtdKTogdm9pZCB7XG4gICAgdGhpcy5tZW51U3RhdGVTdWJqZWN0Lm5leHQoZGF0YSk7XG4gIH1cbiAgc2V0Q29tcGFueUxpc3QoZGF0YTogQ29tcGFueVtdKTogdm9pZCB7XG4gICAgdGhpcy5jb21wYW55TGlzdFN1YmplY3QubmV4dChkYXRhKTtcbiAgfVxuXG4gIG9idGFpbkRhdGFCeVVybCh1cmw6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLl9hcGlHYXRld2F5U2VydmljZS5kb0dldCh1cmwpO1xuICB9XG5cbiAgb3BlblNlc3Npb25FeHBpcmVJbmZvKHNlc3Npb25pbmZvPzogU2Vzc2lvbk91dEluZm8pIHtcbiAgICBsZXQgaW5mbzogU2Vzc2lvbk91dEluZm8gPSB7fTtcbiAgICBpZiAoc2Vzc2lvbmluZm8pIHtcbiAgICAgIGluZm8gPSBzZXNzaW9uaW5mbztcbiAgICB9XG4gICAgdGhpcy5pc1Nlc3Npb25FeHBpcnlEaWFsb2dPcGVuID0gdHJ1ZTtcbiAgICB0aGlzLl9kaWFsb2cub3BlbihTZXNzaW9uRXhwaXJ5SW5mb0NvbXBvbmVudCwgeyBkYXRhOiBzZXNzaW9uaW5mbyB9KTtcbiAgfVxuXG4gIGdldERvbWFpbkluZm8oKSB7XG4gICAgbGV0IGRvbSA9IGRvY3VtZW50LmxvY2F0aW9uLmhvc3Quc3BsaXQoJy4nKTtcbiAgICBsZXQgZG9tYWluSW5mbyA9IEFQUF9ET01BSU4uZmluZCh4ID0+IHguZG9tYWluID09PSBkb21bMF0pO1xuICAgIGlmIChkb21haW5JbmZvKSB7XG4gICAgICByZXR1cm4gZG9tYWluSW5mbztcbiAgICB9XG5cbiAgICAvLyBDaGVjayBpZiB0aGUgc2Vjb25kIHBhcnQgb2YgdGhlIGRvbWFpbiBleGlzdHMgYmVmb3JlIHVzaW5nIGl0XG4gICAgZG9tYWluSW5mbyA9IGRvbVsxXSA/IEFQUF9ET01BSU4uZmluZCh4ID0+IHguZG9tYWluID09PSBkb21bMV0pIDogdW5kZWZpbmVkO1xuICAgIHJldHVybiBkb21haW5JbmZvIHx8IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGdldEFwcHMoKSB7XG4gICAgbGV0IHVybCA9IGAke3RoaXMuYmFzZVVybCArIEVuZFBvaW50cy5BUElfVVJMUy5nZXRBcHBzQXBpfWA7XG4gICAgcmV0dXJuIHRoaXMuX2FwaUdhdGV3YXlTZXJ2aWNlLmRvR2V0KHVybCk7XG4gIH1cbiAgZ2V0Q29tcGFueUFwcGxpY2F0aW9ucygpIHtcbiAgICBsZXQgdXJsID0gYCR7dGhpcy5iYXNlVXJsICsgRW5kUG9pbnRzLkFQSV9VUkxTLmdldENvbXBhbnlBcHBsaWNhdGlvbnN9YDtcbiAgICByZXR1cm4gdGhpcy5fYXBpR2F0ZXdheVNlcnZpY2UuZG9HZXQodXJsKTtcbiAgfVxuXG4gIC8vIFRPRE8gLS0gbmVlZCB0byByZW1vdmVcbiAgZ2V0VXNlckNvbXBhbmllcygpIHtcbiAgICBsZXQgdXJsID0gYCR7dGhpcy5iYXNlVXJsICsgRW5kUG9pbnRzLkFQSV9VUkxTLmdldFVzZXJDb21wYW5pZXN9YDtcbiAgICByZXR1cm4gdGhpcy5fYXBpR2F0ZXdheVNlcnZpY2UuZG9HZXQodXJsKTtcbiAgfVxuICB1cGRhdGVVc2VyQ29tcGFueShyZXFCb2R5OiBhbnkpIHtcbiAgICBsZXQgdXJsID0gYCR7dGhpcy5iYXNlVXJsICsgRW5kUG9pbnRzLkFQSV9VUkxTLnVwZGF0ZVVzZXJDb21wYW55fWA7XG4gICAgcmV0dXJuIHRoaXMuX2FwaUdhdGV3YXlTZXJ2aWNlLmRvUG9zdCh1cmwsIHJlcUJvZHkpO1xuICB9XG5cbiAgZmV0Y2hDb21wYW55UHJvZmlsZShyZXFCb2R5OiBhbnkpIHtcbiAgICBsZXQgY29uZmlnOiBhbnkgPSB7XG4gICAgICBpc1VuYXV0aG9yaXplZDogdHJ1ZVxuICAgIH1cbiAgICBsZXQgdXJsID0gYCR7dGhpcy5iYXNlVXJsICsgRW5kUG9pbnRzLkFQSV9VUkxTLmZldGNoQ29tcGFueVByb2ZpbGUgKyAnPycgKyBVdGlsaXRpZXMuY29udmVydE9iamVjdFRvUXVlcnlTdHJpbmcocmVxQm9keSl9YDtcbiAgICByZXR1cm4gdGhpcy5fYXBpR2F0ZXdheVNlcnZpY2UuZG9HZXQodXJsLCBjb25maWcpLnBpcGUoXG4gICAgICByZWR1Y2UoKGFjYywgcmVzKSA9PiB7XG4gICAgICAgIGlmIChyZXM/LmRhdGEpIHtcbiAgICAgICAgICBhY2MgPSByZXMuZGF0YTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSwge30pXG4gICAgKTtcbiAgfVxuICBnZXRVc2VyRGV0YWlscygpIHtcbiAgICBsZXQgdXJsID0gYCR7dGhpcy5iYXNlVXJsICsgRW5kUG9pbnRzLkFQSV9VUkxTLmdldFVzZXJEZXRhaWxzfWA7XG4gICAgcmV0dXJuIHRoaXMuX2FwaUdhdGV3YXlTZXJ2aWNlLmRvR2V0KHVybCk7XG4gIH1cblxuICBnZXRDb21wYW55TGlzdCgpIHtcbiAgICBsZXQgdXJsID0gYCR7dGhpcy5iYXNlVXJsICsgRW5kUG9pbnRzLkFQSV9VUkxTLmdldENvbXBhbnlMaXN0fWA7XG4gICAgcmV0dXJuIHRoaXMuX2FwaUdhdGV3YXlTZXJ2aWNlLmRvR2V0KHVybCkucGlwZShcbiAgICAgIHJlZHVjZSgoYWNjLCByZXMpID0+IHtcbiAgICAgICAgaWYgKHJlcz8uZGF0YT8uY29tcGFuaWVzKSB7XG4gICAgICAgICAgYWNjID0gcmVzPy5kYXRhPy5jb21wYW5pZXM7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIHt9KVxuICAgICk7XG4gIH1cbiAgZ2V0TWVudUxpc3QoKSB7XG4gICAgbGV0IHVybCA9IGAke3RoaXMuYmFzZVVybCArIEVuZFBvaW50cy5BUElfVVJMUy5nZXRBcHBNZW51fWA7XG4gICAgcmV0dXJuIHRoaXMuX2FwaUdhdGV3YXlTZXJ2aWNlLmRvR2V0KHVybCkucGlwZShcbiAgICAgIHJlZHVjZSgoYWNjLCByZXMpID0+IHtcbiAgICAgICAgaWYgKHJlcz8uZGF0YT8uQXBwTWVudSkge1xuICAgICAgICAgIGFjYyA9IHJlcz8uZGF0YT8uQXBwTWVudTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSwge30pXG4gICAgKTtcbiAgfVxuXG4gIHVwZGF0ZUxhc3RBY2Nlc3NlZEFwcGxpY2F0aW9uKHJlcUJvZHk6IGFueSkge1xuICAgIGxldCB1cmwgPSBgJHt0aGlzLmJhc2VVcmwgKyBFbmRQb2ludHMuQVBJX1VSTFMudXBkYXRlTGFzdEFjY2Vzc2VkQXBwbGljYXRpb259YDtcbiAgICByZXR1cm4gdGhpcy5fYXBpR2F0ZXdheVNlcnZpY2UuZG9Qb3N0KHVybCwgcmVxQm9keSk7XG4gIH1cblxuICAvKipcbiAgICogSGVscGVyIHRvIGdldCB0aGUgcm9vdCBkb21haW4gKGUuZy4gLnByb2ZldC5haSkgdG8gc2hhcmUgY29va2llcyBhY3Jvc3Mgc3ViZG9tYWlucy9wb3J0cy5cbiAgICogSWYgb24gbG9jYWxob3N0IG9yIGFuIElQLCBpdCBmYWxscyBiYWNrIHRvIHRoZSBob3N0bmFtZS5cbiAgICovXG4gIHB1YmxpYyBnZXRSb290RG9tYWluKCk6IHN0cmluZyB7XG4gICAgY29uc3QgaG9zdG5hbWUgPSB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWU7XG4gICAgY29uc3QgcGFydHMgPSBob3N0bmFtZS5zcGxpdCgnLicpO1xuXG4gICAgaWYgKHBhcnRzLmxlbmd0aCA+IDIgJiYgIS9eXFxkezEsM31cXC5cXGR7MSwzfVxcLlxcZHsxLDN9XFwuXFxkezEsM30kLy50ZXN0KGhvc3RuYW1lKSkge1xuICAgICAgLy8gSWYgd2UgaGF2ZSA0KyBwYXJ0cyAoZS5nLiBhcHAxLmxvY2FsLnByb2ZldC5haSksIHdlIHdhbnQgdG8gaW5jbHVkZSB0aGUgZW52aXJvbm1lbnQgKGxvY2FsLnByb2ZldC5haSlcbiAgICAgIC8vIHRvIGF2b2lkIHNoYXJpbmcgY29va2llcyB3aXRoIGFwcDEuZGV2LnByb2ZldC5haSBvciBhcHAxLnByb2ZldC5haS5cbiAgICAgIGlmIChwYXJ0cy5sZW5ndGggPiAzKSB7XG4gICAgICAgIHJldHVybiAnLicgKyBwYXJ0cy5zbGljZSgtMykuam9pbignLicpO1xuICAgICAgfVxuICAgICAgLy8gRm9yIHN0YW5kYXJkIDMgcGFydHMgKGFwcDEucHJvZmV0LmFpKSwgc2hhcmUgb24gLnByb2ZldC5haVxuICAgICAgcmV0dXJuICcuJyArIHBhcnRzLnNsaWNlKC0yKS5qb2luKCcuJyk7XG4gICAgfVxuICAgIHJldHVybiBob3N0bmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgYSB1bmlxdWUgY29va2llIG5hbWUgYmFzZWQgb24gdGhlIGVudmlyb25tZW50IHJvb3QgZG9tYWluLlxuICAgKiBlLmcuICdsYXN0QWN0aXZlJyBvbiAucWEucHJvZmV0LmFpIC0+ICdsYXN0QWN0aXZlX3FhX3Byb2ZldF9haSdcbiAgICogQHBhcmFtIG5hbWUgQmFzZSBjb29raWUgbmFtZVxuICAgKi9cbiAgcHVibGljIGdldFN1ZmZpeGVkQ29va2llTmFtZShuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHJvb3REb21haW4gPSB0aGlzLmdldFJvb3REb21haW4oKTtcbiAgICAvLyBSZXBsYWNlIGRvdHMgd2l0aCB1bmRlcnNjb3JlcyB0byBjcmVhdGUgYSBjbGVhbiBzdWZmaXhcbiAgICBjb25zdCBzdWZmaXggPSByb290RG9tYWluLnJlcGxhY2UoL1xcLi9nLCAnXycpO1xuICAgIHJldHVybiBgJHtuYW1lfSR7c3VmZml4fWA7XG4gIH1cblxuICBwdWJsaWMgc2V0Q29va2llKG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZywgZGF5czogbnVtYmVyKSB7XG4gICAgY29uc3QgdW5pcXVlTmFtZSA9IHRoaXMuZ2V0U3VmZml4ZWRDb29raWVOYW1lKG5hbWUpO1xuICAgIGxldCBleHBpcmVzID0gXCJcIjtcbiAgICBpZiAoZGF5cykge1xuICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgICBkYXRlLnNldFRpbWUoZGF0ZS5nZXRUaW1lKCkgKyAoZGF5cyAqIDI0ICogNjAgKiA2MCAqIDEwMDApKTtcbiAgICAgIGV4cGlyZXMgPSBcIjsgZXhwaXJlcz1cIiArIGRhdGUudG9VVENTdHJpbmcoKTtcbiAgICB9XG4gICAgLy8gSW1wb3J0YW50OiBzZXQgZG9tYWluIHRvIGFsbG93IHNoYXJpbmcgYWNyb3NzIHN1YmRvbWFpbnNcbiAgICBjb25zdCBkb21haW4gPSBcIjsgZG9tYWluPVwiICsgdGhpcy5nZXRSb290RG9tYWluKCk7XG4gICAgZG9jdW1lbnQuY29va2llID0gdW5pcXVlTmFtZSArIFwiPVwiICsgKHZhbHVlIHx8IFwiXCIpICsgZXhwaXJlcyArIGRvbWFpbiArIFwiOyBwYXRoPS9cIjtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDb29raWUobmFtZTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgY29uc3QgdW5pcXVlTmFtZSA9IHRoaXMuZ2V0U3VmZml4ZWRDb29raWVOYW1lKG5hbWUpO1xuICAgIGNvbnN0IG5hbWVFUSA9IHVuaXF1ZU5hbWUgKyBcIj1cIjtcbiAgICBjb25zdCBjYSA9IGRvY3VtZW50LmNvb2tpZS5zcGxpdCgnOycpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2EubGVuZ3RoOyBpKyspIHtcbiAgICAgIGxldCBjID0gY2FbaV07XG4gICAgICB3aGlsZSAoYy5jaGFyQXQoMCkgPT0gJyAnKSBjID0gYy5zdWJzdHJpbmcoMSwgYy5sZW5ndGgpO1xuICAgICAgaWYgKGMuaW5kZXhPZihuYW1lRVEpID09IDApIHJldHVybiBjLnN1YnN0cmluZyhuYW1lRVEubGVuZ3RoLCBjLmxlbmd0aCk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHVibGljIGRlbGV0ZUNvb2tpZShuYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldENvb2tpZShuYW1lLCAnJywgLTEpO1xuICB9XG59XG4iXX0=
@@ -7,14 +7,14 @@ export class CompanySwitchWarningComponent {
7
7
  constructor(comInfo) {
8
8
  this.comInfo = comInfo;
9
9
  }
10
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CompanySwitchWarningComponent, deps: [{ token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
11
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CompanySwitchWarningComponent, selector: "lib-company-switch-warning", ngImport: i0, template: "<div class=\"switchCompanyDialog\">\n <h3 mat-dialog-title class=\"mb-5\">Switch Company</h3>\n <p class=\"confirmation-msg\">\n Switching company to <span>{{comInfo?.switchingCompany}}.</span> <br />\n Are you sure to continue?\n </p>\n <mat-dialog-actions class=\"switchCompanyActions\">\n <button color=\"primary\" mat-button mat-dialog-close>Cancel</button>\n <button color=\"primary\" class=\"proceedBtn\" mat-flat-button [mat-dialog-close]=\"true\"\n cdkFocusInitial>Yes, Switch Company</button>\n </mat-dialog-actions>\n</div> ", styles: [".switchCompanyDialog{min-width:320px}.switchCompanyDialog h3{padding:0;text-align:center}.switchCompanyDialog p{width:100%;text-align:center;color:#292929}.switchCompanyDialog p span{font-weight:500;color:#000}.switchCompanyActions{text-align:center;display:block}.proceedBtn{color:#fff}.confirmation-msg{font-size:1rem}\n"], dependencies: [{ kind: "component", type: i1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i2.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }] }); }
12
10
  }
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CompanySwitchWarningComponent, decorators: [{
11
+ CompanySwitchWarningComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CompanySwitchWarningComponent, deps: [{ token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
12
+ CompanySwitchWarningComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CompanySwitchWarningComponent, selector: "lib-company-switch-warning", ngImport: i0, template: "<div class=\"switchCompanyDialog\">\n <h3 mat-dialog-title class=\"mb-5\">Switch Company</h3>\n <p class=\"confirmation-msg\">\n Switching company to <span>{{comInfo?.switchingCompany}}.</span> <br />\n Are you sure to continue?\n </p>\n <mat-dialog-actions class=\"switchCompanyActions\">\n <button color=\"primary\" mat-button mat-dialog-close>Cancel</button>\n <button color=\"primary\" class=\"proceedBtn\" mat-flat-button [mat-dialog-close]=\"true\"\n cdkFocusInitial>Yes, Switch Company</button>\n </mat-dialog-actions>\n</div> ", styles: [".switchCompanyDialog{min-width:320px}.switchCompanyDialog h3{padding:0;text-align:center}.switchCompanyDialog p{width:100%;text-align:center;color:#292929}.switchCompanyDialog p span{font-weight:500;color:#000}.switchCompanyActions{text-align:center;display:block}.proceedBtn{color:#fff}.confirmation-msg{font-size:1rem}\n"], dependencies: [{ kind: "component", type: i1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i2.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }] });
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CompanySwitchWarningComponent, decorators: [{
14
14
  type: Component,
15
15
  args: [{ selector: 'lib-company-switch-warning', template: "<div class=\"switchCompanyDialog\">\n <h3 mat-dialog-title class=\"mb-5\">Switch Company</h3>\n <p class=\"confirmation-msg\">\n Switching company to <span>{{comInfo?.switchingCompany}}.</span> <br />\n Are you sure to continue?\n </p>\n <mat-dialog-actions class=\"switchCompanyActions\">\n <button color=\"primary\" mat-button mat-dialog-close>Cancel</button>\n <button color=\"primary\" class=\"proceedBtn\" mat-flat-button [mat-dialog-close]=\"true\"\n cdkFocusInitial>Yes, Switch Company</button>\n </mat-dialog-actions>\n</div> ", styles: [".switchCompanyDialog{min-width:320px}.switchCompanyDialog h3{padding:0;text-align:center}.switchCompanyDialog p{width:100%;text-align:center;color:#292929}.switchCompanyDialog p span{font-weight:500;color:#000}.switchCompanyActions{text-align:center;display:block}.proceedBtn{color:#fff}.confirmation-msg{font-size:1rem}\n"] }]
16
- }], ctorParameters: () => [{ type: undefined, decorators: [{
16
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
17
17
  type: Inject,
18
18
  args: [MAT_DIALOG_DATA]
19
- }] }] });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFueS1zd2l0Y2gtd2FybmluZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24taGVhZGVyL3NyYy9saWIvY29tcGFueS1zd2l0Y2gtd2FybmluZy9jb21wYW55LXN3aXRjaC13YXJuaW5nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbW1vbi1oZWFkZXIvc3JjL2xpYi9jb21wYW55LXN3aXRjaC13YXJuaW5nL2NvbXBhbnktc3dpdGNoLXdhcm5pbmcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7O0FBTzNELE1BQU0sT0FBTyw2QkFBNkI7SUFDeEMsWUFBNEMsT0FBWTtRQUFaLFlBQU8sR0FBUCxPQUFPLENBQUs7SUFBSSxDQUFDOytHQURsRCw2QkFBNkIsa0JBQ3BCLGVBQWU7bUdBRHhCLDZCQUE2QixrRUNSMUMsK2tCQVdROzs0RkRISyw2QkFBNkI7a0JBTHpDLFNBQVM7K0JBQ0UsNEJBQTRCOzswQkFLekIsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1jb21wYW55LXN3aXRjaC13YXJuaW5nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbXBhbnktc3dpdGNoLXdhcm5pbmcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb21wYW55LXN3aXRjaC13YXJuaW5nLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ29tcGFueVN3aXRjaFdhcm5pbmdDb21wb25lbnQge1xuICBjb25zdHJ1Y3RvcihASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGNvbUluZm86IGFueSkgeyB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic3dpdGNoQ29tcGFueURpYWxvZ1wiPlxuICAgIDxoMyBtYXQtZGlhbG9nLXRpdGxlIGNsYXNzPVwibWItNVwiPlN3aXRjaCBDb21wYW55PC9oMz5cbiAgICA8cCBjbGFzcz1cImNvbmZpcm1hdGlvbi1tc2dcIj5cbiAgICAgICAgU3dpdGNoaW5nIGNvbXBhbnkgdG8gPHNwYW4+e3tjb21JbmZvPy5zd2l0Y2hpbmdDb21wYW55fX0uPC9zcGFuPiA8YnIgLz5cbiAgICAgICAgQXJlIHlvdSBzdXJlIHRvIGNvbnRpbnVlP1xuICAgIDwvcD5cbiAgICA8bWF0LWRpYWxvZy1hY3Rpb25zIGNsYXNzPVwic3dpdGNoQ29tcGFueUFjdGlvbnNcIj5cbiAgICAgICAgPGJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBtYXQtYnV0dG9uIG1hdC1kaWFsb2ctY2xvc2U+Q2FuY2VsPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gY29sb3I9XCJwcmltYXJ5XCIgY2xhc3M9XCJwcm9jZWVkQnRuXCIgbWF0LWZsYXQtYnV0dG9uIFttYXQtZGlhbG9nLWNsb3NlXT1cInRydWVcIlxuICAgICAgICAgICAgY2RrRm9jdXNJbml0aWFsPlllcywgU3dpdGNoIENvbXBhbnk8L2J1dHRvbj5cbiAgICA8L21hdC1kaWFsb2ctYWN0aW9ucz5cbjwvZGl2PiAgIl19
19
+ }] }]; } });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFueS1zd2l0Y2gtd2FybmluZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24taGVhZGVyL3NyYy9saWIvY29tcGFueS1zd2l0Y2gtd2FybmluZy9jb21wYW55LXN3aXRjaC13YXJuaW5nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbW1vbi1oZWFkZXIvc3JjL2xpYi9jb21wYW55LXN3aXRjaC13YXJuaW5nL2NvbXBhbnktc3dpdGNoLXdhcm5pbmcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7O0FBTzNELE1BQU0sT0FBTyw2QkFBNkI7SUFDeEMsWUFBNEMsT0FBWTtRQUFaLFlBQU8sR0FBUCxPQUFPLENBQUs7SUFBSSxDQUFDOzsySEFEbEQsNkJBQTZCLGtCQUNwQixlQUFlOytHQUR4Qiw2QkFBNkIsa0VDUjFDLCtrQkFXUTs0RkRISyw2QkFBNkI7a0JBTHpDLFNBQVM7K0JBQ0UsNEJBQTRCOzswQkFLekIsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1jb21wYW55LXN3aXRjaC13YXJuaW5nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbXBhbnktc3dpdGNoLXdhcm5pbmcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb21wYW55LXN3aXRjaC13YXJuaW5nLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ29tcGFueVN3aXRjaFdhcm5pbmdDb21wb25lbnQge1xuICBjb25zdHJ1Y3RvcihASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGNvbUluZm86IGFueSkgeyB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic3dpdGNoQ29tcGFueURpYWxvZ1wiPlxuICAgIDxoMyBtYXQtZGlhbG9nLXRpdGxlIGNsYXNzPVwibWItNVwiPlN3aXRjaCBDb21wYW55PC9oMz5cbiAgICA8cCBjbGFzcz1cImNvbmZpcm1hdGlvbi1tc2dcIj5cbiAgICAgICAgU3dpdGNoaW5nIGNvbXBhbnkgdG8gPHNwYW4+e3tjb21JbmZvPy5zd2l0Y2hpbmdDb21wYW55fX0uPC9zcGFuPiA8YnIgLz5cbiAgICAgICAgQXJlIHlvdSBzdXJlIHRvIGNvbnRpbnVlP1xuICAgIDwvcD5cbiAgICA8bWF0LWRpYWxvZy1hY3Rpb25zIGNsYXNzPVwic3dpdGNoQ29tcGFueUFjdGlvbnNcIj5cbiAgICAgICAgPGJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBtYXQtYnV0dG9uIG1hdC1kaWFsb2ctY2xvc2U+Q2FuY2VsPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gY29sb3I9XCJwcmltYXJ5XCIgY2xhc3M9XCJwcm9jZWVkQnRuXCIgbWF0LWZsYXQtYnV0dG9uIFttYXQtZGlhbG9nLWNsb3NlXT1cInRydWVcIlxuICAgICAgICAgICAgY2RrRm9jdXNJbml0aWFsPlllcywgU3dpdGNoIENvbXBhbnk8L2J1dHRvbj5cbiAgICA8L21hdC1kaWFsb2ctYWN0aW9ucz5cbjwvZGl2PiAgIl19