ngx-histaff-alpha 2.9.6 → 2.9.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/app/services/app-config.service.mjs +1 -1
- package/esm2022/lib/app/services/app-initialization.service.mjs +3 -2
- package/esm2022/lib/app/services/app.service.mjs +25 -1
- package/esm2022/lib/app/services/socket.service.mjs +11 -31
- package/fesm2022/ngx-histaff-alpha.mjs +35 -31
- package/fesm2022/ngx-histaff-alpha.mjs.map +1 -1
- package/lib/app/services/app-config.service.d.ts +1 -0
- package/lib/app/services/app.service.d.ts +1 -0
- package/lib/app/services/socket.service.d.ts +3 -1
- package/package.json +1 -1
|
@@ -32,4 +32,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
|
|
|
32
32
|
providedIn: 'root',
|
|
33
33
|
}]
|
|
34
34
|
}] });
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWNvbmZpZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWhpc3RhZmYtYWxwaGEvc3JjL2xpYi9hcHAvc2VydmljZXMvYXBwLWNvbmZpZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSzNDLE1BQU0sT0FBTyxnQkFBZ0I7SUFIN0I7UUFpQkUsa0JBQWEsR0FBWSxLQUFLLENBQUMsQ0FBQywwREFBMEQ7UUFFMUYsZUFBVSxHQUFXLEVBQUUsQ0FBQztRQUN4QixnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUN6QiwwQkFBcUIsR0FBVyxFQUFFLENBQUM7UUFFbkMsd0JBQW1CLEdBQVksS0FBSyxDQUFDO1FBQ3JDLDBCQUFxQixHQUFXLEVBQUUsQ0FBQztRQUNuQywwQkFBcUIsR0FBVyxFQUFFLENBQUM7UUFDbkMsNkJBQXdCLEdBQVcsRUFBRSxDQUFDO1FBQ3RDLHNCQUFpQixHQUFXLHNCQUFzQixDQUFDO1FBRW5ELHNCQUFpQixHQUFZLElBQUksQ0FBQztRQUNsQyxrQkFBYSxHQUFXLEVBQUUsQ0FBQztRQUMzQix5QkFBb0IsR0FBVyxFQUFFLENBQUM7UUFDbEMsd0JBQW1CLEdBQVcsRUFBRSxDQUFDO1FBQ2pDLHlCQUFvQixHQUFXLEVBQUUsQ0FBQztRQUNsQyxxQkFBZ0IsR0FBVyxFQUFFLENBQUM7UUFFOUIsa0JBQWEsR0FBVyxPQUFPLENBQUM7UUFDaEMsa0JBQWEsR0FBVyxRQUFRLENBQUM7UUFDakMsa0JBQWEsR0FBVyxTQUFTLENBQUM7UUFDbEMsc0JBQWlCLEdBQVcsYUFBYSxDQUFDO1FBQzFDLG9CQUFlLEdBQVcsVUFBVSxDQUFDO0tBQ3RDOzhHQXRDWSxnQkFBZ0I7a0hBQWhCLGdCQUFnQixjQUZmLE1BQU07OzJGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXBwQ29uZmlnU2VydmljZSB7XHJcblxyXG4gIEFQUF9UWVBFITogc3RyaW5nO1xyXG5cclxuICBBUFBfVUlJRCE6IHN0cmluZztcclxuICBBTExPV19JTl9BUFBfTk9USUZJQ0FUSU9OITogYm9vbGVhbjtcclxuICBTSE9XX0xPR0lOX05PVElGSUNBVElPTiE6IGJvb2xlYW47XHJcblxyXG4gIEJBU0VfVVJMITogc3RyaW5nO1xyXG4gIEJBU0VfVVJMX0ZPUl9TVEFUSVNUSUMhOiBzdHJpbmc7XHJcbiAgQkFTRV9VUkxfRk9SX0NPTlRFTlQhOiBzdHJpbmc7IC8vIGZvciBtaXVrYWZvdG8uY29tIG9ubHlcclxuXHJcblxyXG4gIEdPTElWRV9VUkwhOiBzdHJpbmc7XHJcbiAgREVCVUdfRU5BQkxFRDogYm9vbGVhbiA9IGZhbHNlOyAvLyBIaeG7g24gdGjhu4sgbeG7mXQgc+G7kSBhbGVydCBr4buDIGPhuqMgdHJvbmcgbcO0aSB0csaw4budbmcgUHJvZHVjdGlvblxyXG5cclxuICBMT0dPX0xPR0lOOiBzdHJpbmcgPSBcIlwiO1xyXG4gIExPR09fSEVBREVSOiBzdHJpbmcgPSBcIlwiO1xyXG4gIEhPTUVfQkFDS0dST1VORF9JTUFHRTogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgT0FVVEgyX09JRENfRU5BQkxFRDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIE9BVVRIMl9PSURDX0NMSUVOVF9JRDogc3RyaW5nID0gXCJcIjtcclxuICBPQVVUSDJfT0lEQ19MT0dJTl9VUkk6IHN0cmluZyA9IFwiXCI7XHJcbiAgT0FVVEgyX09JRENfUkVESVJFQ1RfVVJJOiBzdHJpbmcgPSBcIlwiO1xyXG4gIE9BVVRIMl9PSURDX1NDT1BFOiBzdHJpbmcgPSBcIm9wZW5pZCBwcm9maWxlIGVtYWlsXCI7XHJcblxyXG4gIFNBTUwyQURGU19FTkFCTEVEOiBib29sZWFuID0gdHJ1ZTtcclxuICBTQU1MMkFERlNfSURQOiBzdHJpbmcgPSBcIlwiO1xyXG4gIFNBTUwyQURGU19JREVOVElGSUVSOiBzdHJpbmcgPSBcIlwiO1xyXG4gIFNBTUwyQURGU19XQV9TSUdOSU46IHN0cmluZyA9IFwiXCI7XHJcbiAgU0FNTDJBREZTX1dBX1NJR05PVVQ6IHN0cmluZyA9IFwiXCI7XHJcbiAgU0FNTDJBREZTX1dSRVBMWTogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgSEFOR0ZJUkVfUEFUSDogc3RyaW5nID0gJy9qb2JzJztcclxuICBTVEFUSUNfRk9MREVSOiBzdHJpbmcgPSAnc3RhdGljJztcclxuICBBVkFUQVJfRk9MREVSOiBzdHJpbmcgPSAnYXZhdGFycyc7XHJcbiAgQVRUQUNITUVOVF9GT0xERVI6IHN0cmluZyA9ICdhdHRhY2htZW50cyc7XHJcbiAgTkVXU0ZFRURfRk9MREVSOiBzdHJpbmcgPSAnbmV3c2ZlZWQnO1xyXG59XHJcbiJdfQ==
|
|
@@ -42,10 +42,11 @@ export class AppInitializationService {
|
|
|
42
42
|
this.mls.lang$.next("en");
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
|
-
fetch('../../assets/app.config.json').then(res => res.json()).then(({ APP_TYPE, APP_UIID, ALLOW_IN_APP_NOTIFICATION, BASE_URL, BASE_URL_FOR_STATISTIC, GOLIVE_URL, DEBUG_ENABLED, LOGO_LOGIN, LOGO_HEADER, HOME_BACKGROUND_IMAGE, OAUTH2_OIDC_ENABLED, OAUTH2_OIDC_CLIENT_ID, OAUTH2_OIDC_LOGIN_URI, OAUTH2_OIDC_REDIRECT_URI, OAUTH2_OIDC_SCOPE, SAML2ADFS_ENABLED, SAML2ADFS_IDP, SAML2ADFS_IDENTIFIER, SAML2ADFS_WA_SIGNIN, SAML2ADFS_WA_SIGNOUT, SAML2ADFS_WREPLY, HANGFIRE_PATH, STATIC_FOLDER, }) => {
|
|
45
|
+
fetch('../../assets/app.config.json').then(res => res.json()).then(({ APP_TYPE, APP_UIID, ALLOW_IN_APP_NOTIFICATION, SHOW_LOGIN_NOTIFICATION, BASE_URL, BASE_URL_FOR_STATISTIC, GOLIVE_URL, DEBUG_ENABLED, LOGO_LOGIN, LOGO_HEADER, HOME_BACKGROUND_IMAGE, OAUTH2_OIDC_ENABLED, OAUTH2_OIDC_CLIENT_ID, OAUTH2_OIDC_LOGIN_URI, OAUTH2_OIDC_REDIRECT_URI, OAUTH2_OIDC_SCOPE, SAML2ADFS_ENABLED, SAML2ADFS_IDP, SAML2ADFS_IDENTIFIER, SAML2ADFS_WA_SIGNIN, SAML2ADFS_WA_SIGNOUT, SAML2ADFS_WREPLY, HANGFIRE_PATH, STATIC_FOLDER, }) => {
|
|
46
46
|
this.appConfigService.APP_TYPE = APP_TYPE;
|
|
47
47
|
this.appConfigService.APP_UIID = APP_UIID;
|
|
48
48
|
this.appConfigService.ALLOW_IN_APP_NOTIFICATION = ALLOW_IN_APP_NOTIFICATION;
|
|
49
|
+
this.appConfigService.SHOW_LOGIN_NOTIFICATION = SHOW_LOGIN_NOTIFICATION;
|
|
49
50
|
this.appConfigService.BASE_URL = BASE_URL;
|
|
50
51
|
this.appConfigService.BASE_URL_FOR_STATISTIC = BASE_URL_FOR_STATISTIC;
|
|
51
52
|
this.appConfigService.GOLIVE_URL = GOLIVE_URL;
|
|
@@ -257,4 +258,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
|
|
|
257
258
|
providedIn: 'root'
|
|
258
259
|
}]
|
|
259
260
|
}], ctorParameters: () => [{ type: i1.AuthService }, { type: i2.MultiLanguageService }, { type: i3.LayoutService }, { type: i4.OrganizationService }, { type: i5.RoutingService }, { type: i6.AppConfigService }, { type: i7.AppService }, { type: i8.GrpcService }, { type: i9.SeekerService }] });
|
|
260
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWluaXRpYWxpemF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9zZXJ2aWNlcy9hcHAtaW5pdGlhbGl6YXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQWdCLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQVdsRixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7O0FBTzdDLE1BQU0sT0FBTyx3QkFBd0I7SUFhbkMsWUFDVSxXQUF3QixFQUN4QixHQUF5QixFQUN6QixhQUE0QixFQUM1QixtQkFBd0MsRUFDeEMsY0FBOEIsRUFDOUIsZ0JBQWtDLEVBQ2xDLFVBQXNCLEVBQ3RCLFdBQXdCLEVBQ3hCLGFBQTRCO1FBUjVCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLFFBQUcsR0FBSCxHQUFHLENBQXNCO1FBQ3pCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQXBCdEMsa0JBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBVSxJQUFJLENBQUMsQ0FBQztRQUNuRCxtQkFBYyxHQUFHLElBQUksZUFBZSxDQUFVLElBQUksQ0FBQyxDQUFDO1FBQ3BELGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztRQUVuQyx1QkFB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VSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgemlwLCBjYXRjaEVycm9yLCBvZiwgU3Vic2NyaXB0aW9uLCBmaWx0ZXIgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9tdWx0aS1sYW5ndWFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTGF5b3V0U2VydmljZSB9IGZyb20gJy4vbGF5b3V0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcHBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9hcHAtY29uZmlnLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJRm9ybWF0ZWRSZXNwb25zZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvSUZvcm1hdGVkUmVzcG9uc2UnO1xyXG5pbXBvcnQgeyBJQXV0aERhdGEgfSBmcm9tICcuLi9pbnRlcmZhY2VzL0lBdXRoRGF0YSc7XHJcbmltcG9ydCB7IFJvdXRpbmdTZXJ2aWNlIH0gZnJvbSAnLi9yb3V0aW5nLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBPcmdhbml6YXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9vcmdhbml6YXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IElFdmVyeVRyZWVTdGF0dXMgfSBmcm9tICcuLi9saWJyYXJpZXMvc2VydmljZXMvcmVjdXJzaXZlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcHBTZXJ2aWNlIH0gZnJvbSAnLi9hcHAuc2VydmljZSc7XHJcbmltcG9ydCB7IGFwaSB9IGZyb20gJ2FscGhhLWdsb2JhbC1jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBHcnBjU2VydmljZSB9IGZyb20gJy4vZ3JwYy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2Vla2VyU2VydmljZSB9IGZyb20gJy4uL2xpYnJhcmllcy9jb3JlLWZvcm0tY29udHJvbC1zZWVrZXIvc2Vla2VyLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXBwSW5pdGlhbGl6YXRpb25TZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuIFxyXG4gIGluaXRpYWxpemluZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xyXG4gIHNzb1Byb2Nlc3NpbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcclxuICBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICBwcmltYXJ5SW5pdGlhbGl6ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzdG9yZVNlc3Npb25PazogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwZW5kaW5nQXV0aERhdGEkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxJQXV0aERhdGEgfCBudWxsPihudWxsKTtcclxuXHJcbiAgc3NvRmFpbGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG1sczogTXVsdGlMYW5ndWFnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGxheW91dFNlcnZpY2U6IExheW91dFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG9yZ2FuaXphdGlvblNlcnZpY2U6IE9yZ2FuaXphdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJvdXRpbmdTZXJ2aWNlOiBSb3V0aW5nU2VydmljZSxcclxuICAgIHByaXZhdGUgYXBwQ29uZmlnU2VydmljZTogQXBwQ29uZmlnU2VydmljZSxcclxuICAgIHByaXZhdGUgYXBwU2VydmljZTogQXBwU2VydmljZSxcclxuICAgIHByaXZhdGUgZ3JwY1NlcnZpY2U6IEdycGNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzZWVrZXJTZXJ2aWNlOiBTZWVrZXJTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLnNlZWtlclNlcnZpY2Uuc291cmNlU3BhY2VIZWlnaHQkLm5leHQod2luZG93LmlubmVySGVpZ2h0IC0gMTAwKTtcclxuICB9XHJcblxyXG4gIGFwcEluaXRpYWxpemUoKTogdm9pZCB7XHJcblxyXG4gICAgdHJ5IHtcclxuXHJcbiAgICAgIGlmICghbG9jYWxTdG9yYWdlKSB7XHJcbiAgICAgICAgY29uc3QgbGFuZyA9IChsb2NhbFN0b3JhZ2UgYXMgU3RvcmFnZSkuZ2V0SXRlbShcImxhbmdcIik7XHJcbiAgICAgICAgaWYgKCEhbGFuZykge1xyXG4gICAgICAgICAgdGhpcy5tbHMubGFuZyQubmV4dChKU09OLnBhcnNlKGxhbmcpKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5tbHMubGFuZyQubmV4dChcImVuXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgZmV0Y2goJy4uLy4uL2Fzc2V0cy9hcHAuY29uZmlnLmpzb24nKS50aGVuKHJlcyA9PiByZXMuanNvbigpKS50aGVuKCh7XHJcblxyXG4gICAgICAgIEFQUF9UWVBFLFxyXG4gICAgICAgIEFQUF9VSUlELFxyXG4gICAgICAgIEFMTE9XX0lOX0FQUF9OT1RJRklDQVRJT04sXHJcblxyXG4gICAgICAgIEJBU0VfVVJMLFxyXG4gICAgICAgIEJBU0VfVVJMX0ZPUl9TVEFUSVNUSUMsXHJcbiAgICAgICAgR09MSVZFX1VSTCxcclxuICAgICAgICBERUJVR19FTkFCTEVELFxyXG5cclxuICAgICAgICBMT0dPX0xPR0lOLFxyXG4gICAgICAgIExPR09fSEVBREVSLFxyXG4gICAgICAgIEhPTUVfQkFDS0dST1VORF9JTUFHRSwgXHJcblxyXG4gICAgICAgIE9BVVRIMl9PSURDX0VOQUJMRUQsXHJcbiAgICAgICAgT0FVVEgyX09JRENfQ0xJRU5UX0lELFxyXG4gICAgICAgIE9BVVRIMl9PSURDX0xPR0lOX1VSSSxcclxuICAgICAgICBPQVVUSDJfT0lEQ19SRURJUkVDVF9VUkksXHJcbiAgICAgICAgT0FVVEgyX09JRENfU0NPUEUsXHJcblxyXG4gICAgICAgIFNBTUwyQURGU19FTkFCTEVELCBcclxuICAgICAgICBTQU1MMkFERlNfSURQLCBcclxuICAgICAgICBTQU1MMkFERlNfSURFTlRJRklFUixcclxuICAgICAgICBTQU1MMkFERlNfV0FfU0lHTklOLFxyXG4gICAgICAgIFNBTUwyQURGU19XQV9TSUdOT1VULFxyXG4gICAgICAgIFNBTUwyQURGU19XUkVQTFksXHJcblxyXG4gICAgICAgIEhBTkdGSVJFX1BBVEgsXHJcbiAgICAgICAgU1RBVElDX0ZPTERFUixcclxuICAgICAgfSkgPT4ge1xyXG5cclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuQVBQX1RZUEUgPSBBUFBfVFlQRTtcclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuQVBQX1VJSUQgPSBBUFBfVUlJRDtcclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuQUxMT1dfSU5fQVBQX05PVElGSUNBVElPTiA9IEFMTE9XX0lOX0FQUF9OT1RJRklDQVRJT047XHJcblxyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5CQVNFX1VSTCA9IEJBU0VfVVJMO1xyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5CQVNFX1VSTF9GT1JfU1RBVElTVElDID0gQkFTRV9VUkxfRk9SX1NUQVRJU1RJQztcclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuR09MSVZFX1VSTCA9IEdPTElWRV9VUkw7XHJcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLkRFQlVHX0VOQUJMRUQgPSBERUJVR19FTkFCTEVEO1xyXG5cclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuTE9HT19MT0dJTiA9IExPR09fTE9HSU47XHJcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLkxPR09fSEVBREVSID0gTE9HT19IRUFERVI7XHJcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLkhPTUVfQkFDS0dST1VORF9JTUFHRSA9IEhPTUVfQkFDS0dST1VORF9JTUFHRTtcclxuXHJcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLk9BVVRIMl9PSURDX0VOQUJMRUQgPSBPQVVUSDJfT0lEQ19FTkFCTEVEO1xyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5PQVVUSDJfT0lEQ19DTElFTlRfSUQgPSBPQVVUSDJfT0lEQ19DTElFTlRfSUQ7XHJcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLk9BVVRIMl9PSURDX0xPR0lOX1VSSSA9IE9BVVRIMl9PSURDX0xPR0lOX1VSSTtcclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuT0FVVEgyX09JRENfUkVESVJFQ1RfVVJJID0gT0FVVEgyX09JRENfUkVESVJFQ1RfVVJJO1xyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5PQVVUSDJfT0lEQ19TQ09QRSA9IE9BVVRIMl9PSURDX1NDT1BFO1xyXG5cclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuU0FNTDJBREZTX0VOQUJMRUQgPSBTQU1MMkFERlNfRU5BQkxFRDtcclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuU0FNTDJBREZTX0lEUCA9IFNBTUwyQURGU19JRFA7XHJcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLlNBTUwyQURGU19JREVOVElGSUVSID0gU0FNTDJBREZTX0lERU5USUZJRVI7XHJcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLlNBTUwyQURGU19XQV9TSUdOSU4gPSBTQU1MMkFERlNfV0FfU0lHTklOO1xyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5TQU1MMkFERlNfV0FfU0lHTk9VVCA9IFNBTUwyQURGU19XQV9TSUdOT1VUO1xyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5TQU1MMkFERlNfV1JFUExZID0gU0FNTDJBREZTX1dSRVBMWTtcclxuXHJcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLkhBTkdGSVJFX1BBVEggPSBIQU5HRklSRV9QQVRIO1xyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5TVEFUSUNfRk9MREVSID0gU1RBVElDX0ZPTERFUjtcclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuQVZBVEFSX0ZPTERFUiA9IFwiYXZhdGFyc1wiO1xyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5BVFRBQ0hNRU5UX0ZPTERFUiA9IFwiYXR0YWNobWVudHNcIjtcclxuXHJcbiAgICAgICAgY29uc3QgcGFyYW1zID0gKG5ldyBVUkwod2luZG93LmxvY2F0aW9uLmhyZWYpKS5zZWFyY2hQYXJhbXM7XHJcbiAgICAgICAgY29uc3QgbG9jYWwgPSBwYXJhbXMuZ2V0KFwibG9jYWxcIik7XHJcblxyXG4gICAgICAgIGlmIChTQU1MMkFERlNfRU5BQkxFRCAmJiAhbG9jYWwpIHtcclxuICAgICAgICAgIGlmICghdGhpcy5zc29GYWlsZWQpIHtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgY29uc3QgdG9rZW4gPSBwYXJhbXMuZ2V0KFwidG9rZW5cIik7XHJcbiAgICAgICAgICAgICAgaWYgKHRva2VuICE9PSBudWxsKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgdGhpcy5hcHBTZXJ2aWNlLmdldChhcGkuU1lTX1NIT1JUX0xJVkVEX1RPS0VOX0xPR0lOICsgXCI/dG9rZW49XCIgKyB0b2tlbikuc3Vic2NyaWJlKHggPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh4Lm9rICYmIHguc3RhdHVzID09PSAyMDAgJiYgeC5ib2R5Py5zdGF0dXNDb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJvZHk6IElGb3JtYXRlZFJlc3BvbnNlID0geC5ib2R5XHJcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoYm9keS5zdGF0dXNDb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wZW5kaW5nQXV0aERhdGEkLm5leHQoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmJvZHkuaW5uZXJCb2R5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2luVGltZTogbmV3IERhdGUoKS5nZXRUaW1lKClcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5zc29GYWlsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNzb1Byb2Nlc3NpbmckLm5leHQoZmFsc2UpO1xyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoISFsb2NhbFN0b3JhZ2UpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGVmdGJhclJlZHVjZWRTdHJpbmcgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbGVmdGJhclJlZHVjZWQnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGVmdGJhclJlZHVjZWQgPSBKU09OLnBhcnNlKGxlZnRiYXJSZWR1Y2VkU3RyaW5nISlcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXlvdXRTZXJ2aWNlLmxlZnRiYXJSZWR1Y2VkJC5uZXh0KCEhbGVmdGJhclJlZHVjZWQpO1xyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJvdXRpbmdIaXN0b3J5U3RyaW5nID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3JvdXRpbmdIaXN0b3J5Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghIXJvdXRpbmdIaXN0b3J5U3RyaW5nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgcm91dGluZ0hpc3RvcnkgPSBKU09OLnBhcnNlKHJvdXRpbmdIaXN0b3J5U3RyaW5nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdXRpbmdTZXJ2aWNlLnJvdXRpbmdIaXN0b3J5JC5uZXh0KHJvdXRpbmdIaXN0b3J5KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvcmVPcmdUcmVlU3RhdHVzU3RyaW5nID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJjb3JlT3JnVHJlZVN0YXR1c1wiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvcmVPcmdUcmVlU3RhdHVzU3RyaW5nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2F2ZWRPYmplY3Q6IElFdmVyeVRyZWVTdGF0dXMgPSBKU09OLnBhcnNlKGNvcmVPcmdUcmVlU3RhdHVzU3RyaW5nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9yZ2FuaXphdGlvblNlcnZpY2Uuc3RhdHVzJC5uZXh0KHNhdmVkT2JqZWN0KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0sIDIwMClcclxuICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIClcclxuICAgIFxyXG4gICAgXHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyBBTFdBWVMgUkVESVJFQ1QgVE8gVEhFIEFOR1VMQVIgQVBQTElDQVRJT04gTE9HSU4gUEFHRSBJRiBOTyBTRVNTSU9OIEZPVU5EICg/bG9jYWw9MSlcclxuICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYCR7dGhpcy5hcHBDb25maWdTZXJ2aWNlLlNBTUwyQURGU19JREVOVElGSUVSfT9sb2NhbD0xYDtcclxuXHJcbiAgICAgICAgICAgICAgICAvKlxyXG5cclxuICAgICAgICAgICAgICAgIC8vSUYgVEhFIEFOR1VMQVIgQVBQTElDQVRJT04gTE9HSU4gUEFHRSBJUyBOT1QgTUFOREFUT1JZID0+IENBTEwgU0FNTDIuMCBJZFBcclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBjb2RlVmVyaWZpZXIgPSB0aGlzLmF1dGhTZXJ2aWNlLmdlbmVyYXRlUmFuZG9tQ29kZVZlcmlmaWVyKDQzKTtcclxuICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFwiY29kZVZlcmlmaWVyXCIsIGNvZGVWZXJpZmllcik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdlbmVyYXRlQ29kZUNoYWxsZW5nZUZyb21WZXJpZmllcihjb2RlVmVyaWZpZXIpLnRoZW4oY29kZUNoYWxsZW5nZSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGF1dGhvcml6YXRpb25VcmwgPSBgJHt0aGlzLmFwcENvbmZpZ1NlcnZpY2UuU0FNTDJBREZTX0lEUH0/YCArXHJcbiAgICAgICAgICAgICAgICAgICAgYHd0cmVhbG09JHt0aGlzLmFwcENvbmZpZ1NlcnZpY2UuU0FNTDJBREZTX0lERU5USUZJRVJ9YCArXHJcbiAgICAgICAgICAgICAgICAgICAgYCZ3YT0ke3RoaXMuYXBwQ29uZmlnU2VydmljZS5TQU1MMkFERlNfV0FfU0lHTklOIHx8ICd3c2lnbmluMS4wJ31gICsgXHJcbiAgICAgICAgICAgICAgICAgICAgYCZ3cmVwbHk9JHt0aGlzLmFwcENvbmZpZ1NlcnZpY2UuQkFTRV9VUkx9JHt0aGlzLmFwcENvbmZpZ1NlcnZpY2UuU0FNTDJBREZTX1dSRVBMWX1gICsgXHJcbiAgICAgICAgICAgICAgICAgICAgYCZ3Y3R4PSR7Y29kZUNoYWxsZW5nZX1gXHJcbiAgICAgICAgICAgICAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGFsZXJ0KGF1dGhvcml6YXRpb25VcmwpO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGF1dGhvcml6YXRpb25Vcmw7XHJcblxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAqL1xyXG5cclxuXHJcbiAgICAgICAgICAgICAgfVxyXG4gIFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5zc29Qcm9jZXNzaW5nJC5uZXh0KGZhbHNlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBib2R5MTogSUZvcm1hdGVkUmVzcG9uc2U7XHJcbiAgICAgICAgbGV0IGJvZHkyOiBJRm9ybWF0ZWRSZXNwb25zZTtcclxuICAgICAgICBsZXQgYm9keTM6IElGb3JtYXRlZFJlc3BvbnNlO1xyXG4gICAgICAgIC8vbGV0IGJvZHk0OiBJRm9ybWF0ZWRSZXNwb25zZTtcclxuXHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgICB0aGlzLnNzb1Byb2Nlc3NpbmckLnBpcGUoXHJcbiAgICAgICAgICAgIGZpbHRlcih4ID0+ICF4KVxyXG4gICAgICAgICAgKS5zdWJzY3JpYmUoXyA9PiB7XHJcblxyXG4gICAgICAgICAgICBsZXQgYXBwVHlwZU51bWJlcjogbnVtYmVyIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICBzd2l0Y2ggKHRoaXMuYXBwQ29uZmlnU2VydmljZS5BUFBfVFlQRSkge1xyXG4gICAgICAgICAgICAgIGNhc2UgXCJXRUJBUFBcIjpcclxuICAgICAgICAgICAgICAgIGFwcFR5cGVOdW1iZXIgPSAxO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgY2FzZSBcIlBPUlRBTFwiOlxyXG4gICAgICAgICAgICAgICAgYXBwVHlwZU51bWJlciA9IDI7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgYXBwVHlwZU51bWJlciA9IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICAgICAgICB6aXAoW1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tbHMucmVhZEFsbE1pbmkoKSxcclxuICAgICAgICAgICAgICAgIHRoaXMucm91dGluZ1NlcnZpY2UucmVhZEFsbEZ1bmN0aW9uV2l0aEFsbEFjdGlvbnMoKSxcclxuICAgICAgICAgICAgICAgIHRoaXMucm91dGluZ1NlcnZpY2UuZ2V0SWdub3JlUGF0aHMoKSxcclxuICAgICAgICAgICAgICAgIC8vdGhpcy5hcHBTZXJ2aWNlLmdldChhcGkuUE9SVEFMX1JPVVRFX1JFQURfQUxMX01JTkkpXHJcbiAgICAgICAgICAgICAgXSkucGlwZShcclxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodmFsID0+IG9mKGBUaGUgYXBwIGNhdWdodDogJHt2YWx9YCkpXHJcbiAgICAgICAgICAgICAgKS5zdWJzY3JpYmUocmVzcG9uc2VzID0+IHtcclxuXHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImFwcEluaXRpYWxpemUoKSB6aXAoKSBkb25lXCIpXHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3QgeDEgPSByZXNwb25zZXNbMF07XHJcbiAgICAgICAgICAgICAgICBpZiAoeDEub2sgJiYgeDEuc3RhdHVzID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgYm9keTEgPSB4MS5ib2R5XHJcbiAgICAgICAgICAgICAgICAgIGlmIChib2R5MS5zdGF0dXNDb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1scy5kYXRhJC5uZXh0KGJvZHkxLmlubmVyQm9keSk7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCB4MiA9IHJlc3BvbnNlc1sxXTtcclxuICAgICAgICAgICAgICAgIGlmICh4Mi5vayAmJiB4Mi5zdGF0dXMgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICBib2R5MiA9IHgyLmJvZHlcclxuICAgICAgICAgICAgICAgICAgaWYgKGJvZHkyLnN0YXR1c0NvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm91dGluZ1NlcnZpY2UuZnVsbEZ1bmN0aW9ucyQubmV4dChib2R5Mi5pbm5lckJvZHkpO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3QgeDMgPSByZXNwb25zZXNbMl07XHJcbiAgICAgICAgICAgICAgICBpZiAoeDMub2sgJiYgeDMuc3RhdHVzID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgYm9keTMgPSB4My5ib2R5XHJcbiAgICAgICAgICAgICAgICAgIGlmIChib2R5My5zdGF0dXNDb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdXRpbmdTZXJ2aWNlLmlnbm9yZWRQYXRocyQubmV4dChib2R5My5pbm5lckJvZHkpO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gY29uc3QgeDQgPSByZXNwb25zZXNbM107XHJcbiAgICAgICAgICAgICAgICAvLyBpZiAoeDQub2sgJiYgeDQuc3RhdHVzID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgIC8vICAgYm9keTQgPSB4NC5ib2R5XHJcbiAgICAgICAgICAgICAgICAvLyAgIGlmIChib2R5NC5zdGF0dXNDb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgIC8vICAgICB0aGlzLnJvdXRpbmdTZXJ2aWNlLnBvcnRhbFJvdXRlcyQubmV4dChib2R5NC5pbm5lckJvZHkpO1xyXG4gICAgICAgICAgICAgICAgLy8gICB9XHJcbiAgICAgICAgICAgICAgICAvLyB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGJvZHkxPy5zdGF0dXNDb2RlID09PSAyMDAgJiYgYm9keTI/LnN0YXR1c0NvZGUgPT09IDIwMCAmJiBib2R5Mz8uc3RhdHVzQ29kZSA9PT0gMjAwKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICB0aGlzLnByaW1hcnlJbml0aWFsaXplZCA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICAgICAgICBpZiAoISFPQVVUSDJfT0lEQ19FTkFCTEVEICYmICEhdGhpcy5wZW5kaW5nQXV0aERhdGEkLnZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdG9yZVNlc3Npb25PayA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hdXRoU2VydmljZS5kYXRhJC5uZXh0KHRoaXMucGVuZGluZ0F1dGhEYXRhJC52YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wZW5kaW5nQXV0aERhdGEkLm5leHQobnVsbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hdXRoU2VydmljZS5hdXRoZW50aWNhdGVkJC5uZXh0KHRydWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6aW5nJC5uZXh0KGZhbHNlKTtcclxuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLnRyeVJlc3RvcmVTZXNzaW9uKClcclxuICAgICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoeCA9PiB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoeC5vayAmJiB4LnN0YXR1cyA9PT0gMjAwICYmIHguYm9keT8uc3RhdHVzQ29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYm9keTogSUZvcm1hdGVkUmVzcG9uc2UgPSB4LmJvZHlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYm9keS5zdGF0dXNDb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld0F1dGhEYXRhOiBJQXV0aERhdGEgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmJvZHkuaW5uZXJCb2R5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dpblRpbWU6IG5ldyBEYXRlKCkuZ2V0VGltZSgpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0b3JlU2Vzc2lvbk9rID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZGF0YSQubmV4dChuZXdBdXRoRGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoISFsb2NhbFN0b3JhZ2UpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxlZnRiYXJSZWR1Y2VkU3RyaW5nID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2xlZnRiYXJSZWR1Y2VkJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsZWZ0YmFyUmVkdWNlZCA9IEpTT04ucGFyc2UobGVmdGJhclJlZHVjZWRTdHJpbmchKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXlvdXRTZXJ2aWNlLmxlZnRiYXJSZWR1Y2VkJC5uZXh0KCEhbGVmdGJhclJlZHVjZWQpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJvdXRpbmdIaXN0b3J5U3RyaW5nID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3JvdXRpbmdIaXN0b3J5Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoISFyb3V0aW5nSGlzdG9yeVN0cmluZykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByb3V0aW5nSGlzdG9yeSA9IEpTT04ucGFyc2Uocm91dGluZ0hpc3RvcnlTdHJpbmcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdXRpbmdTZXJ2aWNlLnJvdXRpbmdIaXN0b3J5JC5uZXh0KHJvdXRpbmdIaXN0b3J5KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb3JlT3JnVHJlZVN0YXR1c1N0cmluZyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiY29yZU9yZ1RyZWVTdGF0dXNcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29yZU9yZ1RyZWVTdGF0dXNTdHJpbmcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2F2ZWRPYmplY3Q6IElFdmVyeVRyZWVTdGF0dXMgPSBKU09OLnBhcnNlKGNvcmVPcmdUcmVlU3RhdHVzU3RyaW5nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vcmdhbml6YXRpb25TZXJ2aWNlLnN0YXR1cyQubmV4dChzYXZlZE9iamVjdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6aW5nJC5uZXh0KGZhbHNlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgMjAwKVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKVxyXG5cclxuXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIClcclxuXHJcbiAgICAgIH0pLmNhdGNoKGUgPT4gY29uc29sZS5sb2coXCJmZXRjaCBhcHAuY29uZmlnLmpzb24gZXJyb3JcIiwgZSkpXHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiYXBwSW5pdGlhbGl6ZSgpIHppcCgpIGVycm9yOiBcIiwgZSlcclxuICAgIH0gZmluYWxseSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiZmluYWxseVwiKVxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLm1hcCh4ID0+IHg/LnVuc3Vic2NyaWJlKCkpXHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
|
|
261
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWluaXRpYWxpemF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9zZXJ2aWNlcy9hcHAtaW5pdGlhbGl6YXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQWdCLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQVdsRixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7O0FBTzdDLE1BQU0sT0FBTyx3QkFBd0I7SUFhbkMsWUFDVSxXQUF3QixFQUN4QixHQUF5QixFQUN6QixhQUE0QixFQUM1QixtQkFBd0MsRUFDeEMsY0FBOEIsRUFDOUIsZ0JBQWtDLEVBQ2xDLFVBQXNCLEVBQ3RCLFdBQXdCLEVBQ3hCLGFBQTRCO1FBUjVCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLFFBQUcsR0FBSCxHQUFHLENBQXNCO1FBQ3pCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQXBCdEMsa0JBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBVSxJQUFJLENBQUMsQ0FBQztRQUNuRCxtQkFBYyxHQUFHLElBQUksZUFBZSxDQUFVLElBQUksQ0FBQyxDQUFDO1FBQ3BELGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztRQUVuQyx1QkFB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a0hBQXhCLHdCQUF3QixjQUZ2QixNQUFNOzsyRkFFUCx3QkFBd0I7a0JBSHBDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgemlwLCBjYXRjaEVycm9yLCBvZiwgU3Vic2NyaXB0aW9uLCBmaWx0ZXIgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9tdWx0aS1sYW5ndWFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTGF5b3V0U2VydmljZSB9IGZyb20gJy4vbGF5b3V0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcHBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9hcHAtY29uZmlnLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJRm9ybWF0ZWRSZXNwb25zZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvSUZvcm1hdGVkUmVzcG9uc2UnO1xyXG5pbXBvcnQgeyBJQXV0aERhdGEgfSBmcm9tICcuLi9pbnRlcmZhY2VzL0lBdXRoRGF0YSc7XHJcbmltcG9ydCB7IFJvdXRpbmdTZXJ2aWNlIH0gZnJvbSAnLi9yb3V0aW5nLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBPcmdhbml6YXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9vcmdhbml6YXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IElFdmVyeVRyZWVTdGF0dXMgfSBmcm9tICcuLi9saWJyYXJpZXMvc2VydmljZXMvcmVjdXJzaXZlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcHBTZXJ2aWNlIH0gZnJvbSAnLi9hcHAuc2VydmljZSc7XHJcbmltcG9ydCB7IGFwaSB9IGZyb20gJ2FscGhhLWdsb2JhbC1jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBHcnBjU2VydmljZSB9IGZyb20gJy4vZ3JwYy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2Vla2VyU2VydmljZSB9IGZyb20gJy4uL2xpYnJhcmllcy9jb3JlLWZvcm0tY29udHJvbC1zZWVrZXIvc2Vla2VyLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXBwSW5pdGlhbGl6YXRpb25TZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuIFxyXG4gIGluaXRpYWxpemluZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xyXG4gIHNzb1Byb2Nlc3NpbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcclxuICBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICBwcmltYXJ5SW5pdGlhbGl6ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzdG9yZVNlc3Npb25PazogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwZW5kaW5nQXV0aERhdGEkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxJQXV0aERhdGEgfCBudWxsPihudWxsKTtcclxuXHJcbiAgc3NvRmFpbGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG1sczogTXVsdGlMYW5ndWFnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGxheW91dFNlcnZpY2U6IExheW91dFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG9yZ2FuaXphdGlvblNlcnZpY2U6IE9yZ2FuaXphdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJvdXRpbmdTZXJ2aWNlOiBSb3V0aW5nU2VydmljZSxcclxuICAgIHByaXZhdGUgYXBwQ29uZmlnU2VydmljZTogQXBwQ29uZmlnU2VydmljZSxcclxuICAgIHByaXZhdGUgYXBwU2VydmljZTogQXBwU2VydmljZSxcclxuICAgIHByaXZhdGUgZ3JwY1NlcnZpY2U6IEdycGNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzZWVrZXJTZXJ2aWNlOiBTZWVrZXJTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLnNlZWtlclNlcnZpY2Uuc291cmNlU3BhY2VIZWlnaHQkLm5leHQod2luZG93LmlubmVySGVpZ2h0IC0gMTAwKTtcclxuICB9XHJcblxyXG4gIGFwcEluaXRpYWxpemUoKTogdm9pZCB7XHJcblxyXG4gICAgdHJ5IHtcclxuXHJcbiAgICAgIGlmICghbG9jYWxTdG9yYWdlKSB7XHJcbiAgICAgICAgY29uc3QgbGFuZyA9IChsb2NhbFN0b3JhZ2UgYXMgU3RvcmFnZSkuZ2V0SXRlbShcImxhbmdcIik7XHJcbiAgICAgICAgaWYgKCEhbGFuZykge1xyXG4gICAgICAgICAgdGhpcy5tbHMubGFuZyQubmV4dChKU09OLnBhcnNlKGxhbmcpKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5tbHMubGFuZyQubmV4dChcImVuXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgZmV0Y2goJy4uLy4uL2Fzc2V0cy9hcHAuY29uZmlnLmpzb24nKS50aGVuKHJlcyA9PiByZXMuanNvbigpKS50aGVuKCh7XHJcblxyXG4gICAgICAgIEFQUF9UWVBFLFxyXG4gICAgICAgIEFQUF9VSUlELFxyXG4gICAgICAgIEFMTE9XX0lOX0FQUF9OT1RJRklDQVRJT04sXHJcbiAgICAgICAgU0hPV19MT0dJTl9OT1RJRklDQVRJT04sXHJcblxyXG4gICAgICAgIEJBU0VfVVJMLFxyXG4gICAgICAgIEJBU0VfVVJMX0ZPUl9TVEFUSVNUSUMsXHJcbiAgICAgICAgR09MSVZFX1VSTCxcclxuICAgICAgICBERUJVR19FTkFCTEVELFxyXG5cclxuICAgICAgICBMT0dPX0xPR0lOLFxyXG4gICAgICAgIExPR09fSEVBREVSLFxyXG4gICAgICAgIEhPTUVfQkFDS0dST1VORF9JTUFHRSwgXHJcblxyXG4gICAgICAgIE9BVVRIMl9PSURDX0VOQUJMRUQsXHJcbiAgICAgICAgT0FVVEgyX09JRENfQ0xJRU5UX0lELFxyXG4gICAgICAgIE9BVVRIMl9PSURDX0xPR0lOX1VSSSxcclxuICAgICAgICBPQVVUSDJfT0lEQ19SRURJUkVDVF9VUkksXHJcbiAgICAgICAgT0FVVEgyX09JRENfU0NPUEUsXHJcblxyXG4gICAgICAgIFNBTUwyQURGU19FTkFCTEVELCBcclxuICAgICAgICBTQU1MMkFERlNfSURQLCBcclxuICAgICAgICBTQU1MMkFERlNfSURFTlRJRklFUixcclxuICAgICAgICBTQU1MMkFERlNfV0FfU0lHTklOLFxyXG4gICAgICAgIFNBTUwyQURGU19XQV9TSUdOT1VULFxyXG4gICAgICAgIFNBTUwyQURGU19XUkVQTFksXHJcblxyXG4gICAgICAgIEhBTkdGSVJFX1BBVEgsXHJcbiAgICAgICAgU1RBVElDX0ZPTERFUixcclxuICAgICAgfSkgPT4ge1xyXG5cclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuQVBQX1RZUEUgPSBBUFBfVFlQRTtcclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuQVBQX1VJSUQgPSBBUFBfVUlJRDtcclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuQUxMT1dfSU5fQVBQX05PVElGSUNBVElPTiA9IEFMTE9XX0lOX0FQUF9OT1RJRklDQVRJT047XHJcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLlNIT1dfTE9HSU5fTk9USUZJQ0FUSU9OID0gU0hPV19MT0dJTl9OT1RJRklDQVRJT047XHJcblxyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5CQVNFX1VSTCA9IEJBU0VfVVJMO1xyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5CQVNFX1VSTF9GT1JfU1RBVElTVElDID0gQkFTRV9VUkxfRk9SX1NUQVRJU1RJQztcclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuR09MSVZFX1VSTCA9IEdPTElWRV9VUkw7XHJcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLkRFQlVHX0VOQUJMRUQgPSBERUJVR19FTkFCTEVEO1xyXG5cclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuTE9HT19MT0dJTiA9IExPR09fTE9HSU47XHJcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLkxPR09fSEVBREVSID0gTE9HT19IRUFERVI7XHJcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLkhPTUVfQkFDS0dST1VORF9JTUFHRSA9IEhPTUVfQkFDS0dST1VORF9JTUFHRTtcclxuXHJcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLk9BVVRIMl9PSURDX0VOQUJMRUQgPSBPQVVUSDJfT0lEQ19FTkFCTEVEO1xyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5PQVVUSDJfT0lEQ19DTElFTlRfSUQgPSBPQVVUSDJfT0lEQ19DTElFTlRfSUQ7XHJcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLk9BVVRIMl9PSURDX0xPR0lOX1VSSSA9IE9BVVRIMl9PSURDX0xPR0lOX1VSSTtcclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuT0FVVEgyX09JRENfUkVESVJFQ1RfVVJJID0gT0FVVEgyX09JRENfUkVESVJFQ1RfVVJJO1xyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5PQVVUSDJfT0lEQ19TQ09QRSA9IE9BVVRIMl9PSURDX1NDT1BFO1xyXG5cclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuU0FNTDJBREZTX0VOQUJMRUQgPSBTQU1MMkFERlNfRU5BQkxFRDtcclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuU0FNTDJBREZTX0lEUCA9IFNBTUwyQURGU19JRFA7XHJcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLlNBTUwyQURGU19JREVOVElGSUVSID0gU0FNTDJBREZTX0lERU5USUZJRVI7XHJcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLlNBTUwyQURGU19XQV9TSUdOSU4gPSBTQU1MMkFERlNfV0FfU0lHTklOO1xyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5TQU1MMkFERlNfV0FfU0lHTk9VVCA9IFNBTUwyQURGU19XQV9TSUdOT1VUO1xyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5TQU1MMkFERlNfV1JFUExZID0gU0FNTDJBREZTX1dSRVBMWTtcclxuXHJcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLkhBTkdGSVJFX1BBVEggPSBIQU5HRklSRV9QQVRIO1xyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5TVEFUSUNfRk9MREVSID0gU1RBVElDX0ZPTERFUjtcclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuQVZBVEFSX0ZPTERFUiA9IFwiYXZhdGFyc1wiO1xyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5BVFRBQ0hNRU5UX0ZPTERFUiA9IFwiYXR0YWNobWVudHNcIjtcclxuXHJcbiAgICAgICAgY29uc3QgcGFyYW1zID0gKG5ldyBVUkwod2luZG93LmxvY2F0aW9uLmhyZWYpKS5zZWFyY2hQYXJhbXM7XHJcbiAgICAgICAgY29uc3QgbG9jYWwgPSBwYXJhbXMuZ2V0KFwibG9jYWxcIik7XHJcblxyXG4gICAgICAgIGlmIChTQU1MMkFERlNfRU5BQkxFRCAmJiAhbG9jYWwpIHtcclxuICAgICAgICAgIGlmICghdGhpcy5zc29GYWlsZWQpIHtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgY29uc3QgdG9rZW4gPSBwYXJhbXMuZ2V0KFwidG9rZW5cIik7XHJcbiAgICAgICAgICAgICAgaWYgKHRva2VuICE9PSBudWxsKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgdGhpcy5hcHBTZXJ2aWNlLmdldChhcGkuU1lTX1NIT1JUX0xJVkVEX1RPS0VOX0xPR0lOICsgXCI/dG9rZW49XCIgKyB0b2tlbikuc3Vic2NyaWJlKHggPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh4Lm9rICYmIHguc3RhdHVzID09PSAyMDAgJiYgeC5ib2R5Py5zdGF0dXNDb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJvZHk6IElGb3JtYXRlZFJlc3BvbnNlID0geC5ib2R5XHJcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoYm9keS5zdGF0dXNDb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wZW5kaW5nQXV0aERhdGEkLm5leHQoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmJvZHkuaW5uZXJCb2R5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2luVGltZTogbmV3IERhdGUoKS5nZXRUaW1lKClcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5zc29GYWlsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNzb1Byb2Nlc3NpbmckLm5leHQoZmFsc2UpO1xyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoISFsb2NhbFN0b3JhZ2UpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGVmdGJhclJlZHVjZWRTdHJpbmcgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbGVmdGJhclJlZHVjZWQnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGVmdGJhclJlZHVjZWQgPSBKU09OLnBhcnNlKGxlZnRiYXJSZWR1Y2VkU3RyaW5nISlcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXlvdXRTZXJ2aWNlLmxlZnRiYXJSZWR1Y2VkJC5uZXh0KCEhbGVmdGJhclJlZHVjZWQpO1xyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJvdXRpbmdIaXN0b3J5U3RyaW5nID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3JvdXRpbmdIaXN0b3J5Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghIXJvdXRpbmdIaXN0b3J5U3RyaW5nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgcm91dGluZ0hpc3RvcnkgPSBKU09OLnBhcnNlKHJvdXRpbmdIaXN0b3J5U3RyaW5nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdXRpbmdTZXJ2aWNlLnJvdXRpbmdIaXN0b3J5JC5uZXh0KHJvdXRpbmdIaXN0b3J5KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvcmVPcmdUcmVlU3RhdHVzU3RyaW5nID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJjb3JlT3JnVHJlZVN0YXR1c1wiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvcmVPcmdUcmVlU3RhdHVzU3RyaW5nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2F2ZWRPYmplY3Q6IElFdmVyeVRyZWVTdGF0dXMgPSBKU09OLnBhcnNlKGNvcmVPcmdUcmVlU3RhdHVzU3RyaW5nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9yZ2FuaXphdGlvblNlcnZpY2Uuc3RhdHVzJC5uZXh0KHNhdmVkT2JqZWN0KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0sIDIwMClcclxuICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIClcclxuICAgIFxyXG4gICAgXHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyBBTFdBWVMgUkVESVJFQ1QgVE8gVEhFIEFOR1VMQVIgQVBQTElDQVRJT04gTE9HSU4gUEFHRSBJRiBOTyBTRVNTSU9OIEZPVU5EICg/bG9jYWw9MSlcclxuICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYCR7dGhpcy5hcHBDb25maWdTZXJ2aWNlLlNBTUwyQURGU19JREVOVElGSUVSfT9sb2NhbD0xYDtcclxuXHJcbiAgICAgICAgICAgICAgICAvKlxyXG5cclxuICAgICAgICAgICAgICAgIC8vSUYgVEhFIEFOR1VMQVIgQVBQTElDQVRJT04gTE9HSU4gUEFHRSBJUyBOT1QgTUFOREFUT1JZID0+IENBTEwgU0FNTDIuMCBJZFBcclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBjb2RlVmVyaWZpZXIgPSB0aGlzLmF1dGhTZXJ2aWNlLmdlbmVyYXRlUmFuZG9tQ29kZVZlcmlmaWVyKDQzKTtcclxuICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFwiY29kZVZlcmlmaWVyXCIsIGNvZGVWZXJpZmllcik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdlbmVyYXRlQ29kZUNoYWxsZW5nZUZyb21WZXJpZmllcihjb2RlVmVyaWZpZXIpLnRoZW4oY29kZUNoYWxsZW5nZSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGF1dGhvcml6YXRpb25VcmwgPSBgJHt0aGlzLmFwcENvbmZpZ1NlcnZpY2UuU0FNTDJBREZTX0lEUH0/YCArXHJcbiAgICAgICAgICAgICAgICAgICAgYHd0cmVhbG09JHt0aGlzLmFwcENvbmZpZ1NlcnZpY2UuU0FNTDJBREZTX0lERU5USUZJRVJ9YCArXHJcbiAgICAgICAgICAgICAgICAgICAgYCZ3YT0ke3RoaXMuYXBwQ29uZmlnU2VydmljZS5TQU1MMkFERlNfV0FfU0lHTklOIHx8ICd3c2lnbmluMS4wJ31gICsgXHJcbiAgICAgICAgICAgICAgICAgICAgYCZ3cmVwbHk9JHt0aGlzLmFwcENvbmZpZ1NlcnZpY2UuQkFTRV9VUkx9JHt0aGlzLmFwcENvbmZpZ1NlcnZpY2UuU0FNTDJBREZTX1dSRVBMWX1gICsgXHJcbiAgICAgICAgICAgICAgICAgICAgYCZ3Y3R4PSR7Y29kZUNoYWxsZW5nZX1gXHJcbiAgICAgICAgICAgICAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGFsZXJ0KGF1dGhvcml6YXRpb25VcmwpO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGF1dGhvcml6YXRpb25Vcmw7XHJcblxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAqL1xyXG5cclxuXHJcbiAgICAgICAgICAgICAgfVxyXG4gIFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5zc29Qcm9jZXNzaW5nJC5uZXh0KGZhbHNlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBib2R5MTogSUZvcm1hdGVkUmVzcG9uc2U7XHJcbiAgICAgICAgbGV0IGJvZHkyOiBJRm9ybWF0ZWRSZXNwb25zZTtcclxuICAgICAgICBsZXQgYm9keTM6IElGb3JtYXRlZFJlc3BvbnNlO1xyXG4gICAgICAgIC8vbGV0IGJvZHk0OiBJRm9ybWF0ZWRSZXNwb25zZTtcclxuXHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgICB0aGlzLnNzb1Byb2Nlc3NpbmckLnBpcGUoXHJcbiAgICAgICAgICAgIGZpbHRlcih4ID0+ICF4KVxyXG4gICAgICAgICAgKS5zdWJzY3JpYmUoXyA9PiB7XHJcblxyXG4gICAgICAgICAgICBsZXQgYXBwVHlwZU51bWJlcjogbnVtYmVyIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICBzd2l0Y2ggKHRoaXMuYXBwQ29uZmlnU2VydmljZS5BUFBfVFlQRSkge1xyXG4gICAgICAgICAgICAgIGNhc2UgXCJXRUJBUFBcIjpcclxuICAgICAgICAgICAgICAgIGFwcFR5cGVOdW1iZXIgPSAxO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgY2FzZSBcIlBPUlRBTFwiOlxyXG4gICAgICAgICAgICAgICAgYXBwVHlwZU51bWJlciA9IDI7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgYXBwVHlwZU51bWJlciA9IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICAgICAgICB6aXAoW1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tbHMucmVhZEFsbE1pbmkoKSxcclxuICAgICAgICAgICAgICAgIHRoaXMucm91dGluZ1NlcnZpY2UucmVhZEFsbEZ1bmN0aW9uV2l0aEFsbEFjdGlvbnMoKSxcclxuICAgICAgICAgICAgICAgIHRoaXMucm91dGluZ1NlcnZpY2UuZ2V0SWdub3JlUGF0aHMoKSxcclxuICAgICAgICAgICAgICAgIC8vdGhpcy5hcHBTZXJ2aWNlLmdldChhcGkuUE9SVEFMX1JPVVRFX1JFQURfQUxMX01JTkkpXHJcbiAgICAgICAgICAgICAgXSkucGlwZShcclxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodmFsID0+IG9mKGBUaGUgYXBwIGNhdWdodDogJHt2YWx9YCkpXHJcbiAgICAgICAgICAgICAgKS5zdWJzY3JpYmUocmVzcG9uc2VzID0+IHtcclxuXHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImFwcEluaXRpYWxpemUoKSB6aXAoKSBkb25lXCIpXHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3QgeDEgPSByZXNwb25zZXNbMF07XHJcbiAgICAgICAgICAgICAgICBpZiAoeDEub2sgJiYgeDEuc3RhdHVzID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgYm9keTEgPSB4MS5ib2R5XHJcbiAgICAgICAgICAgICAgICAgIGlmIChib2R5MS5zdGF0dXNDb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1scy5kYXRhJC5uZXh0KGJvZHkxLmlubmVyQm9keSk7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCB4MiA9IHJlc3BvbnNlc1sxXTtcclxuICAgICAgICAgICAgICAgIGlmICh4Mi5vayAmJiB4Mi5zdGF0dXMgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICBib2R5MiA9IHgyLmJvZHlcclxuICAgICAgICAgICAgICAgICAgaWYgKGJvZHkyLnN0YXR1c0NvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm91dGluZ1NlcnZpY2UuZnVsbEZ1bmN0aW9ucyQubmV4dChib2R5Mi5pbm5lckJvZHkpO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3QgeDMgPSByZXNwb25zZXNbMl07XHJcbiAgICAgICAgICAgICAgICBpZiAoeDMub2sgJiYgeDMuc3RhdHVzID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgYm9keTMgPSB4My5ib2R5XHJcbiAgICAgICAgICAgICAgICAgIGlmIChib2R5My5zdGF0dXNDb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdXRpbmdTZXJ2aWNlLmlnbm9yZWRQYXRocyQubmV4dChib2R5My5pbm5lckJvZHkpO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gY29uc3QgeDQgPSByZXNwb25zZXNbM107XHJcbiAgICAgICAgICAgICAgICAvLyBpZiAoeDQub2sgJiYgeDQuc3RhdHVzID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgIC8vICAgYm9keTQgPSB4NC5ib2R5XHJcbiAgICAgICAgICAgICAgICAvLyAgIGlmIChib2R5NC5zdGF0dXNDb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgIC8vICAgICB0aGlzLnJvdXRpbmdTZXJ2aWNlLnBvcnRhbFJvdXRlcyQubmV4dChib2R5NC5pbm5lckJvZHkpO1xyXG4gICAgICAgICAgICAgICAgLy8gICB9XHJcbiAgICAgICAgICAgICAgICAvLyB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGJvZHkxPy5zdGF0dXNDb2RlID09PSAyMDAgJiYgYm9keTI/LnN0YXR1c0NvZGUgPT09IDIwMCAmJiBib2R5Mz8uc3RhdHVzQ29kZSA9PT0gMjAwKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICB0aGlzLnByaW1hcnlJbml0aWFsaXplZCA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICAgICAgICBpZiAoISFPQVVUSDJfT0lEQ19FTkFCTEVEICYmICEhdGhpcy5wZW5kaW5nQXV0aERhdGEkLnZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdG9yZVNlc3Npb25PayA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hdXRoU2VydmljZS5kYXRhJC5uZXh0KHRoaXMucGVuZGluZ0F1dGhEYXRhJC52YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wZW5kaW5nQXV0aERhdGEkLm5leHQobnVsbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hdXRoU2VydmljZS5hdXRoZW50aWNhdGVkJC5uZXh0KHRydWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6aW5nJC5uZXh0KGZhbHNlKTtcclxuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLnRyeVJlc3RvcmVTZXNzaW9uKClcclxuICAgICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoeCA9PiB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoeC5vayAmJiB4LnN0YXR1cyA9PT0gMjAwICYmIHguYm9keT8uc3RhdHVzQ29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYm9keTogSUZvcm1hdGVkUmVzcG9uc2UgPSB4LmJvZHlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYm9keS5zdGF0dXNDb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld0F1dGhEYXRhOiBJQXV0aERhdGEgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmJvZHkuaW5uZXJCb2R5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dpblRpbWU6IG5ldyBEYXRlKCkuZ2V0VGltZSgpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0b3JlU2Vzc2lvbk9rID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZGF0YSQubmV4dChuZXdBdXRoRGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoISFsb2NhbFN0b3JhZ2UpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxlZnRiYXJSZWR1Y2VkU3RyaW5nID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2xlZnRiYXJSZWR1Y2VkJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsZWZ0YmFyUmVkdWNlZCA9IEpTT04ucGFyc2UobGVmdGJhclJlZHVjZWRTdHJpbmchKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXlvdXRTZXJ2aWNlLmxlZnRiYXJSZWR1Y2VkJC5uZXh0KCEhbGVmdGJhclJlZHVjZWQpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJvdXRpbmdIaXN0b3J5U3RyaW5nID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3JvdXRpbmdIaXN0b3J5Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoISFyb3V0aW5nSGlzdG9yeVN0cmluZykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByb3V0aW5nSGlzdG9yeSA9IEpTT04ucGFyc2Uocm91dGluZ0hpc3RvcnlTdHJpbmcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdXRpbmdTZXJ2aWNlLnJvdXRpbmdIaXN0b3J5JC5uZXh0KHJvdXRpbmdIaXN0b3J5KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb3JlT3JnVHJlZVN0YXR1c1N0cmluZyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiY29yZU9yZ1RyZWVTdGF0dXNcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29yZU9yZ1RyZWVTdGF0dXNTdHJpbmcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2F2ZWRPYmplY3Q6IElFdmVyeVRyZWVTdGF0dXMgPSBKU09OLnBhcnNlKGNvcmVPcmdUcmVlU3RhdHVzU3RyaW5nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vcmdhbml6YXRpb25TZXJ2aWNlLnN0YXR1cyQubmV4dChzYXZlZE9iamVjdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6aW5nJC5uZXh0KGZhbHNlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgMjAwKVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKVxyXG5cclxuXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIClcclxuXHJcbiAgICAgIH0pLmNhdGNoKGUgPT4gY29uc29sZS5sb2coXCJmZXRjaCBhcHAuY29uZmlnLmpzb24gZXJyb3JcIiwgZSkpXHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiYXBwSW5pdGlhbGl6ZSgpIHppcCgpIGVycm9yOiBcIiwgZSlcclxuICAgIH0gZmluYWxseSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiZmluYWxseVwiKVxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLm1hcCh4ID0+IHg/LnVuc3Vic2NyaWJlKCkpXHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
|
|
@@ -81,6 +81,30 @@ export class AppService {
|
|
|
81
81
|
return crypto.randomUUID();
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
|
+
showNotification(title, options) {
|
|
85
|
+
if ('Notification' in window) {
|
|
86
|
+
// Check if notification permissions are granted
|
|
87
|
+
if (Notification.permission === 'granted') {
|
|
88
|
+
// Create and display the notification
|
|
89
|
+
new Notification(title, options);
|
|
90
|
+
}
|
|
91
|
+
else if (Notification.permission !== 'denied') {
|
|
92
|
+
// Request permission from the user
|
|
93
|
+
Notification.requestPermission().then(permission => {
|
|
94
|
+
if (permission === 'granted') {
|
|
95
|
+
// Create and display the notification
|
|
96
|
+
new Notification(title, options);
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
console.warn('Notification permissions not granted or denied.');
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
console.warn('Notifications are not supported in this browser.');
|
|
106
|
+
}
|
|
107
|
+
}
|
|
84
108
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: AppService, deps: [{ token: i1.CommonHttpRequestService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
85
109
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: AppService, providedIn: 'root' }); }
|
|
86
110
|
}
|
|
@@ -90,4 +114,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
|
|
|
90
114
|
providedIn: 'root'
|
|
91
115
|
}]
|
|
92
116
|
}], ctorParameters: () => [{ type: i1.CommonHttpRequestService }] });
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9zZXJ2aWNlcy9hcHAuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFLM0Msd0JBQXdCO0FBSXhCLE1BQU0sT0FBTyxVQUFVO0lBRXJCLFlBQW9CLHdCQUFrRDtRQUFsRCw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO0lBQUksQ0FBQztJQUUzRSxHQUFHLENBQUMsR0FBVyxFQUFFLGVBQXdCLEtBQUs7UUFDNUMsT0FBTyxJQUFJLENBQUMsd0JBQXdCLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFDLENBQUE7SUFDL0UsQ0FBQztJQUVELGtCQUFrQixDQUFDLEdBQVcsRUFBRSxlQUF3QixLQUFLO1FBQzNELE9BQU8sSUFBSSxDQUFDLHdCQUF3QixDQUFDLDZCQUE2QixDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFDLENBQUE7SUFDOUYsQ0FBQztJQUVELElBQUksQ0FBQyxHQUFXLEVBQUUsT0FBWTtRQUM1QixPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixFQUFFLEdBQUcsQ0FBQyxDQUFBO1FBQ25DLE9BQU8sSUFBSSxDQUFDLHdCQUF3QixDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFBO0lBQzVFLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxHQUFXLEVBQUUsT0FBWTtRQUMzQyxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixFQUFFLEdBQUcsQ0FBQyxDQUFBO1FBQ25DLE9BQU8sSUFBSSxDQUFDLHdCQUF3QixDQUFDLDhCQUE4QixDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUE7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QUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgQ29tbW9uSHR0cFJlcXVlc3RTZXJ2aWNlIH0gZnJvbSAnLi9jb21tb24taHR0cC1yZXF1ZXN0LnNlcnZpY2UnO1xyXG5cclxuLy9kZWNsYXJlIGxldCBYTFNYOiBhbnk7XHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEFwcFNlcnZpY2Uge1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbW1vbkh0dHBSZXF1ZXN0U2VydmljZTogQ29tbW9uSHR0cFJlcXVlc3RTZXJ2aWNlKSB7IH1cclxuXHJcbiAgZ2V0KHVybDogc3RyaW5nLCBjYWNoZVJlcXVlc3Q6IGJvb2xlYW4gPSBmYWxzZSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5jb21tb25IdHRwUmVxdWVzdFNlcnZpY2UubWFrZUdldFJlcXVlc3QoJ2dldCcsIHVybCwgY2FjaGVSZXF1ZXN0KVxyXG4gIH1cclxuXHJcbiAgZ2V0U2tpcEludGVyY2VwdG9yKHVybDogc3RyaW5nLCBjYWNoZVJlcXVlc3Q6IGJvb2xlYW4gPSBmYWxzZSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5jb21tb25IdHRwUmVxdWVzdFNlcnZpY2UubWFrZUdldFJlcXVlc3RTa2lwSW50ZXJjZXB0b3IoJ2dldCcsIHVybCwgY2FjaGVSZXF1ZXN0KVxyXG4gIH1cclxuXHJcbiAgcG9zdCh1cmw6IHN0cmluZywgcGF5bG9hZDogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnNvbGUubG9nKFwiYXBwU2VydmljZSBwb3N0XCIsIHVybClcclxuICAgIHJldHVybiB0aGlzLmNvbW1vbkh0dHBSZXF1ZXN0U2VydmljZS5tYWtlUG9zdFJlcXVlc3QoJ3Bvc3QnLCB1cmwsIHBheWxvYWQpXHJcbiAgfVxyXG5cclxuICBwb3N0U2tpcEludGVyY2VwdG9yKHVybDogc3RyaW5nLCBwYXlsb2FkOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc29sZS5sb2coXCJhcHBTZXJ2aWNlIHBvc3RcIiwgdXJsKVxyXG4gICAgcmV0dXJuIHRoaXMuY29tbW9uSHR0cFJlcXVlc3RTZXJ2aWNlLm1ha2VQb3N0UmVxdWVzdFNraXBJbnRlcmNlcHRvcigncG9zdCcsIHVybCwgcGF5bG9hZClcclxuICB9XHJcblxyXG4gIGdldEZ1bGxVcmwodXJsOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY29tbW9uSHR0cFJlcXVlc3RTZXJ2aWNlLm1ha2VHZXRSZXF1ZXN0RnVsbFVybCh1cmwpXHJcbiAgfVxyXG5cclxuICBwb3N0RnVsbFVybCh1cmw6IHN0cmluZywgcGF5bG9hZDogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnNvbGUubG9nKFwiYXBwU2VydmljZSBwb3N0XCIsIHVybClcclxuICAgIHJldHVybiB0aGlzLmNvbW1vbkh0dHBSZXF1ZXN0U2VydmljZS5tYWtlUG9zdFJlcXVlc3RGdWxsVXJsKHVybCwgcGF5bG9hZClcclxuICB9XHJcblxyXG4gIGJsb2JQb3N0KHVybDogc3RyaW5nLCBwYXlsb2FkOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY29tbW9uSHR0cFJlcXVlc3RTZXJ2aWNlLm1ha2VQb3N0UmVxdWVzdFJlcG9uc2VCbG9iKCdwb3N0JywgdXJsLCBwYXlsb2FkKVxyXG4gIH1cclxuXHJcbiAgYmxvYlBvc3RTa2lwSW50ZXJjZXB0b3IodXJsOiBzdHJpbmcsIHBheWxvYWQ6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5jb21tb25IdHRwUmVxdWVzdFNlcnZpY2UubWFrZVBvc3RSZXF1ZXN0UmVwb25zZUJsb2JTa2lwSW50ZXJjZXB0b3IoJ3Bvc3QnLCB1cmwsIHBheWxvYWQpXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVhZEV4Y2VsKGZpbGU6IEZpbGUpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgaWYgKGZpbGUpIHtcclxuICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgICAgICByZWFkZXIucmVhZEFzQmluYXJ5U3RyaW5nKGZpbGUpO1xyXG4gICAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XHJcbiAgICAgICAgICBhbGVydChcIlhMU1ggd2FzIG5vdCBkZWZpbmVkXCIpO1xyXG4gICAgICAgICAgLypcclxuICAgICAgICAgIHZhciB3b3JrYm9vayA9IFhMU1gucmVhZChyZWFkZXIucmVzdWx0LCB7IHR5cGU6IFwiYmluYXJ5XCIsIGNlbGxEYXRlczogdHJ1ZSB9KTtcclxuICAgICAgICAgIHZhciB3b3Jrc2hlZXQgPSB3b3JrYm9vay5TaGVldHNbd29ya2Jvb2suU2hlZXROYW1lc1swXV07XHJcbiAgICAgICAgICB2YXIgZGF0YSA9IFhMU1gudXRpbHMuc2hlZXRfdG9fanNvbih3b3Jrc2hlZXQpO1xyXG4gICAgICAgICAgKi9cclxuICAgICAgICAgIC8vcmVzb2x2ZShkYXRhKTtcclxuICAgICAgICAgIHJlc29sdmUobnVsbCk7XHJcbiAgICAgICAgfTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZWplY3QoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZW5lcmF0ZVV1aWQoKTogc3RyaW5nIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIC8vIFVzZSB0aGUgY3J5cHRvIG1vZHVsZSB0byBnZW5lcmF0ZSBhIHJhbmRvbSBhcnJheSBvZiBieXRlc1xyXG4gICAgICB2YXIgYXJyYXkgPSBuZXcgVWludDhBcnJheSgxNik7XHJcbiAgICAgIGNyeXB0by5nZXRSYW5kb21WYWx1ZXMoYXJyYXkpO1xyXG4gIFxyXG4gICAgICAvLyBDb252ZXJ0IHRoZSBhcnJheSBvZiBieXRlcyB0byBhIGhleGFkZWNpbWFsIHN0cmluZ1xyXG4gICAgICB2YXIgdXVpZCA9IFwiXCI7XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICB1dWlkICs9IGFycmF5W2ldLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgyLCBcIjBcIik7XHJcbiAgICAgIH1cclxuICBcclxuICAgICAgLy8gQWRkIGh5cGhlbnMgdG8gdGhlIFVVSUQgdG8gc2VwYXJhdGUgaXQgaW50byBncm91cHNcclxuICAgICAgdXVpZCA9IHV1aWQuc3Vic3RyaW5nKDAsIDgpICsgXCItXCIgKyB1dWlkLnN1YnN0cmluZyg4LCAxMikgKyBcIi1cIiArIHV1aWQuc3Vic3RyaW5nKDEyLCAxNikgKyBcIi1cIiArIHV1aWQuc3Vic3RyaW5nKDE2LCAyMCkgKyBcIi1cIiArIHV1aWQuc3Vic3RyaW5nKDIwLCAzMik7XHJcbiAgXHJcbiAgICAgIHJldHVybiB1dWlkO1xyXG5cclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGdlbmVyYXRpbmcgVVVJRDonLCBlcnJvcik7XHJcbiAgICAgIC8vIEhhbmRsZSBlcnJvciBhcHByb3ByaWF0ZWx5LCBlLmcuLCBmYWxsYmFjayB0byBhIGRpZmZlcmVudCBtZXRob2Qgb3IgdGhyb3cgYW4gZXJyb3JcclxuICAgICAgLypcclxuICAgICAgVXNpbmcgY3J5cHRvLnJhbmRvbVVVSUQoKSBkaXJlY3RseSAoaWYgYXZhaWxhYmxlIGluIHlvdXIgZW52aXJvbm1lbnQpIHNpbXBsaWZpZXMgXHJcbiAgICAgIHRoZSB0YXNrIG9mIGdlbmVyYXRpbmcgVVVJRHMgYnkgbGV2ZXJhZ2luZyBidWlsdC1pbiBjcnlwdG9ncmFwaGljIGZ1bmN0aW9ucy4gXHJcbiAgICAgIFRoaXMgYXBwcm9hY2ggaXMgaWRlYWwgZm9yIGFwcGxpY2F0aW9ucyByZXF1aXJpbmcgdW5pcXVlIGlkZW50aWZpZXJzIHdpdGhvdXQgdGhlIFxyXG4gICAgICBuZWVkIGZvciBtYW51YWwgYnl0ZSBtYW5pcHVsYXRpb24gb3Igc3RyaW5nIGZvcm1hdHRpbmcuIFxyXG4gICAgICBBbHdheXMgdmVyaWZ5IGNvbXBhdGliaWxpdHkgYW5kIGJlaGF2aW9yIGluIHlvdXIgc3BlY2lmaWMgcnVudGltZSBlbnZpcm9ubWVudCB0byBlbnN1cmUgc2VhbWxlc3MgaW50ZWdyYXRpb24uXHJcbiAgICAgICovXHJcbiAgICAgIHJldHVybiBjcnlwdG8ucmFuZG9tVVVJRCgpO1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxufVxyXG4iXX0=
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9zZXJ2aWNlcy9hcHAuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFLM0Msd0JBQXdCO0FBSXhCLE1BQU0sT0FBTyxVQUFVO0lBRXJCLFlBQW9CLHdCQUFrRDtRQUFsRCw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO0lBQUksQ0FBQztJQUUzRSxHQUFHLENBQUMsR0FBVyxFQUFFLGVBQXdCLEtBQUs7UUFDNUMsT0FBTyxJQUFJLENBQUMsd0JBQXdCLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFDLENBQUE7SUFDL0UsQ0FBQztJQUVELGtCQUFrQixDQUFDLEdBQVcsRUFBRSxlQUF3QixLQUFLO1FBQzNELE9BQU8sSUFBSSxDQUFDLHdCQUF3QixDQUFDLDZCQUE2QixDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFDLENBQUE7SUFDOUYsQ0FBQztJQUVELElBQUksQ0FBQyxHQUFXLEVBQUUsT0FBWTtRQUM1QixPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixFQUFFLEdBQUcsQ0FBQyxDQUFBO1FBQ25DLE9BQU8sSUFBSSxDQUFDLHdCQUF3QixDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFBO0lBQzVFLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxHQUFXLEVBQUUsT0FBWTtRQUMzQyxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixFQUFFLEdBQUcsQ0FBQyxDQUFBO1FBQ25DLE9BQU8sSUFBSSxDQUFDLHdCQUF3QixDQUFDLDhCQUE4QixDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUE7SUFDM0YsQ0FBQztJQUVELFVBQVUsQ0FBQyxHQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLHdCQUF3QixDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ2pFLENBQUM7SUFFRCxXQUFXLENBQUMsR0FBVyxFQUFFLE9BQVk7UUFDbkMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLENBQUMsQ0FBQTtRQUNuQyxPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUE7SUFDM0UsQ0FBQztJQUVELFFBQVEsQ0FBQyxHQUFXLEVBQUUsT0FBWTtRQUNoQyxPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FBQywwQkFBMEIsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFBO0lBQ3ZGLENBQUM7SUFFRCx1QkFBdUIsQ0FBQyxHQUFXLEVBQUUsT0FBWTtRQUMvQyxPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyx5Q0FBeUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFBO0lBQ3RHLENBQUM7SUFFTSxTQUFTLENBQUMsSUFBVTtRQUN6QixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3JDLElBQUksSUFBSSxFQUFFO2dCQUNSLElBQUksTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7Z0JBQzlCLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDaEMsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUU7b0JBQ25CLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO29CQUM5Qjs7OztzQkFJRTtvQkFDRixnQkFBZ0I7b0JBQ2hCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDaEIsQ0FBQyxDQUFDO2FBQ0g7aUJBQU07Z0JBQ0wsTUFBTSxFQUFFLENBQUM7YUFDVjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJO1lBQ0YsNERBQTREO1lBQzVELElBQUksS0FBSyxHQUFHLElBQUksVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQy9CLE1BQU0sQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFOUIscURBQXFEO1lBQ3JELElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNkLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUNyQyxJQUFJLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2FBQ2hEO1lBRUQscURBQXFEO1lBQ3JELElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFFdkosT0FBTyxJQUFJLENBQUM7U0FFYjtRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ2QsT0FBTyxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUMvQyxxRkFBcUY7WUFDckY7Ozs7OztjQU1FO1lBQ0YsT0FBTyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7U0FDNUI7SUFDSCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBYSxFQUFFLE9BQVk7UUFDMUMsSUFBSSxjQUFjLElBQUksTUFBTSxFQUFFO1lBQzVCLGdEQUFnRDtZQUNoRCxJQUFJLFlBQVksQ0FBQyxVQUFVLEtBQUssU0FBUyxFQUFFO2dCQUN6QyxzQ0FBc0M7Z0JBQ3RDLElBQUksWUFBWSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQzthQUNsQztpQkFBTSxJQUFJLFlBQVksQ0FBQyxVQUFVLEtBQUssUUFBUSxFQUFFO2dCQUMvQyxtQ0FBbUM7Z0JBQ25DLFlBQVksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtvQkFDakQsSUFBSSxVQUFVLEtBQUssU0FBUyxFQUFFO3dCQUM1QixzQ0FBc0M7d0JBQ3RDLElBQUksWUFBWSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztxQkFDbEM7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7YUFDSjtpQkFBTTtnQkFDTCxPQUFPLENBQUMsSUFBSSxDQUFDLGlEQUFpRCxDQUFDLENBQUM7YUFDakU7U0FDRjthQUFNO1lBQ0wsT0FBTyxDQUFDLElBQUksQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO1NBQ2xFO0lBQ0gsQ0FBQzs4R0EvR1UsVUFBVTtrSEFBVixVQUFVLGNBRlQsTUFBTTs7MkZBRVAsVUFBVTtrQkFIdEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IENvbW1vbkh0dHBSZXF1ZXN0U2VydmljZSB9IGZyb20gJy4vY29tbW9uLWh0dHAtcmVxdWVzdC5zZXJ2aWNlJztcclxuXHJcbi8vZGVjbGFyZSBsZXQgWExTWDogYW55O1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcHBTZXJ2aWNlIHtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb21tb25IdHRwUmVxdWVzdFNlcnZpY2U6IENvbW1vbkh0dHBSZXF1ZXN0U2VydmljZSkgeyB9XHJcblxyXG4gIGdldCh1cmw6IHN0cmluZywgY2FjaGVSZXF1ZXN0OiBib29sZWFuID0gZmFsc2UpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY29tbW9uSHR0cFJlcXVlc3RTZXJ2aWNlLm1ha2VHZXRSZXF1ZXN0KCdnZXQnLCB1cmwsIGNhY2hlUmVxdWVzdClcclxuICB9XHJcblxyXG4gIGdldFNraXBJbnRlcmNlcHRvcih1cmw6IHN0cmluZywgY2FjaGVSZXF1ZXN0OiBib29sZWFuID0gZmFsc2UpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY29tbW9uSHR0cFJlcXVlc3RTZXJ2aWNlLm1ha2VHZXRSZXF1ZXN0U2tpcEludGVyY2VwdG9yKCdnZXQnLCB1cmwsIGNhY2hlUmVxdWVzdClcclxuICB9XHJcblxyXG4gIHBvc3QodXJsOiBzdHJpbmcsIHBheWxvYWQ6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBjb25zb2xlLmxvZyhcImFwcFNlcnZpY2UgcG9zdFwiLCB1cmwpXHJcbiAgICByZXR1cm4gdGhpcy5jb21tb25IdHRwUmVxdWVzdFNlcnZpY2UubWFrZVBvc3RSZXF1ZXN0KCdwb3N0JywgdXJsLCBwYXlsb2FkKVxyXG4gIH1cclxuXHJcbiAgcG9zdFNraXBJbnRlcmNlcHRvcih1cmw6IHN0cmluZywgcGF5bG9hZDogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnNvbGUubG9nKFwiYXBwU2VydmljZSBwb3N0XCIsIHVybClcclxuICAgIHJldHVybiB0aGlzLmNvbW1vbkh0dHBSZXF1ZXN0U2VydmljZS5tYWtlUG9zdFJlcXVlc3RTa2lwSW50ZXJjZXB0b3IoJ3Bvc3QnLCB1cmwsIHBheWxvYWQpXHJcbiAgfVxyXG5cclxuICBnZXRGdWxsVXJsKHVybDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmNvbW1vbkh0dHBSZXF1ZXN0U2VydmljZS5tYWtlR2V0UmVxdWVzdEZ1bGxVcmwodXJsKVxyXG4gIH1cclxuXHJcbiAgcG9zdEZ1bGxVcmwodXJsOiBzdHJpbmcsIHBheWxvYWQ6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBjb25zb2xlLmxvZyhcImFwcFNlcnZpY2UgcG9zdFwiLCB1cmwpXHJcbiAgICByZXR1cm4gdGhpcy5jb21tb25IdHRwUmVxdWVzdFNlcnZpY2UubWFrZVBvc3RSZXF1ZXN0RnVsbFVybCh1cmwsIHBheWxvYWQpXHJcbiAgfVxyXG5cclxuICBibG9iUG9zdCh1cmw6IHN0cmluZywgcGF5bG9hZDogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmNvbW1vbkh0dHBSZXF1ZXN0U2VydmljZS5tYWtlUG9zdFJlcXVlc3RSZXBvbnNlQmxvYigncG9zdCcsIHVybCwgcGF5bG9hZClcclxuICB9XHJcblxyXG4gIGJsb2JQb3N0U2tpcEludGVyY2VwdG9yKHVybDogc3RyaW5nLCBwYXlsb2FkOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY29tbW9uSHR0cFJlcXVlc3RTZXJ2aWNlLm1ha2VQb3N0UmVxdWVzdFJlcG9uc2VCbG9iU2tpcEludGVyY2VwdG9yKCdwb3N0JywgdXJsLCBwYXlsb2FkKVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlYWRFeGNlbChmaWxlOiBGaWxlKTogUHJvbWlzZTxhbnk+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgIGlmIChmaWxlKSB7XHJcbiAgICAgICAgdmFyIHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiAgICAgICAgcmVhZGVyLnJlYWRBc0JpbmFyeVN0cmluZyhmaWxlKTtcclxuICAgICAgICByZWFkZXIub25sb2FkID0gKCkgPT4ge1xyXG4gICAgICAgICAgYWxlcnQoXCJYTFNYIHdhcyBub3QgZGVmaW5lZFwiKTtcclxuICAgICAgICAgIC8qXHJcbiAgICAgICAgICB2YXIgd29ya2Jvb2sgPSBYTFNYLnJlYWQocmVhZGVyLnJlc3VsdCwgeyB0eXBlOiBcImJpbmFyeVwiLCBjZWxsRGF0ZXM6IHRydWUgfSk7XHJcbiAgICAgICAgICB2YXIgd29ya3NoZWV0ID0gd29ya2Jvb2suU2hlZXRzW3dvcmtib29rLlNoZWV0TmFtZXNbMF1dO1xyXG4gICAgICAgICAgdmFyIGRhdGEgPSBYTFNYLnV0aWxzLnNoZWV0X3RvX2pzb24od29ya3NoZWV0KTtcclxuICAgICAgICAgICovXHJcbiAgICAgICAgICAvL3Jlc29sdmUoZGF0YSk7XHJcbiAgICAgICAgICByZXNvbHZlKG51bGwpO1xyXG4gICAgICAgIH07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmVqZWN0KCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2VuZXJhdGVVdWlkKCk6IHN0cmluZyB7XHJcbiAgICB0cnkge1xyXG4gICAgICAvLyBVc2UgdGhlIGNyeXB0byBtb2R1bGUgdG8gZ2VuZXJhdGUgYSByYW5kb20gYXJyYXkgb2YgYnl0ZXNcclxuICAgICAgdmFyIGFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoMTYpO1xyXG4gICAgICBjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKGFycmF5KTtcclxuICBcclxuICAgICAgLy8gQ29udmVydCB0aGUgYXJyYXkgb2YgYnl0ZXMgdG8gYSBoZXhhZGVjaW1hbCBzdHJpbmdcclxuICAgICAgdmFyIHV1aWQgPSBcIlwiO1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgdXVpZCArPSBhcnJheVtpXS50b1N0cmluZygxNikucGFkU3RhcnQoMiwgXCIwXCIpO1xyXG4gICAgICB9XHJcbiAgXHJcbiAgICAgIC8vIEFkZCBoeXBoZW5zIHRvIHRoZSBVVUlEIHRvIHNlcGFyYXRlIGl0IGludG8gZ3JvdXBzXHJcbiAgICAgIHV1aWQgPSB1dWlkLnN1YnN0cmluZygwLCA4KSArIFwiLVwiICsgdXVpZC5zdWJzdHJpbmcoOCwgMTIpICsgXCItXCIgKyB1dWlkLnN1YnN0cmluZygxMiwgMTYpICsgXCItXCIgKyB1dWlkLnN1YnN0cmluZygxNiwgMjApICsgXCItXCIgKyB1dWlkLnN1YnN0cmluZygyMCwgMzIpO1xyXG4gIFxyXG4gICAgICByZXR1cm4gdXVpZDtcclxuXHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBnZW5lcmF0aW5nIFVVSUQ6JywgZXJyb3IpO1xyXG4gICAgICAvLyBIYW5kbGUgZXJyb3IgYXBwcm9wcmlhdGVseSwgZS5nLiwgZmFsbGJhY2sgdG8gYSBkaWZmZXJlbnQgbWV0aG9kIG9yIHRocm93IGFuIGVycm9yXHJcbiAgICAgIC8qXHJcbiAgICAgIFVzaW5nIGNyeXB0by5yYW5kb21VVUlEKCkgZGlyZWN0bHkgKGlmIGF2YWlsYWJsZSBpbiB5b3VyIGVudmlyb25tZW50KSBzaW1wbGlmaWVzIFxyXG4gICAgICB0aGUgdGFzayBvZiBnZW5lcmF0aW5nIFVVSURzIGJ5IGxldmVyYWdpbmcgYnVpbHQtaW4gY3J5cHRvZ3JhcGhpYyBmdW5jdGlvbnMuIFxyXG4gICAgICBUaGlzIGFwcHJvYWNoIGlzIGlkZWFsIGZvciBhcHBsaWNhdGlvbnMgcmVxdWlyaW5nIHVuaXF1ZSBpZGVudGlmaWVycyB3aXRob3V0IHRoZSBcclxuICAgICAgbmVlZCBmb3IgbWFudWFsIGJ5dGUgbWFuaXB1bGF0aW9uIG9yIHN0cmluZyBmb3JtYXR0aW5nLiBcclxuICAgICAgQWx3YXlzIHZlcmlmeSBjb21wYXRpYmlsaXR5IGFuZCBiZWhhdmlvciBpbiB5b3VyIHNwZWNpZmljIHJ1bnRpbWUgZW52aXJvbm1lbnQgdG8gZW5zdXJlIHNlYW1sZXNzIGludGVncmF0aW9uLlxyXG4gICAgICAqL1xyXG4gICAgICByZXR1cm4gY3J5cHRvLnJhbmRvbVVVSUQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNob3dOb3RpZmljYXRpb24odGl0bGU6IHN0cmluZywgb3B0aW9uczogYW55KSB7XHJcbiAgICBpZiAoJ05vdGlmaWNhdGlvbicgaW4gd2luZG93KSB7XHJcbiAgICAgIC8vIENoZWNrIGlmIG5vdGlmaWNhdGlvbiBwZXJtaXNzaW9ucyBhcmUgZ3JhbnRlZFxyXG4gICAgICBpZiAoTm90aWZpY2F0aW9uLnBlcm1pc3Npb24gPT09ICdncmFudGVkJykge1xyXG4gICAgICAgIC8vIENyZWF0ZSBhbmQgZGlzcGxheSB0aGUgbm90aWZpY2F0aW9uXHJcbiAgICAgICAgbmV3IE5vdGlmaWNhdGlvbih0aXRsZSwgb3B0aW9ucyk7XHJcbiAgICAgIH0gZWxzZSBpZiAoTm90aWZpY2F0aW9uLnBlcm1pc3Npb24gIT09ICdkZW5pZWQnKSB7XHJcbiAgICAgICAgLy8gUmVxdWVzdCBwZXJtaXNzaW9uIGZyb20gdGhlIHVzZXJcclxuICAgICAgICBOb3RpZmljYXRpb24ucmVxdWVzdFBlcm1pc3Npb24oKS50aGVuKHBlcm1pc3Npb24gPT4ge1xyXG4gICAgICAgICAgaWYgKHBlcm1pc3Npb24gPT09ICdncmFudGVkJykge1xyXG4gICAgICAgICAgICAvLyBDcmVhdGUgYW5kIGRpc3BsYXkgdGhlIG5vdGlmaWNhdGlvblxyXG4gICAgICAgICAgICBuZXcgTm90aWZpY2F0aW9uKHRpdGxlLCBvcHRpb25zKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zb2xlLndhcm4oJ05vdGlmaWNhdGlvbiBwZXJtaXNzaW9ucyBub3QgZ3JhbnRlZCBvciBkZW5pZWQuJyk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnNvbGUud2FybignTm90aWZpY2F0aW9ucyBhcmUgbm90IHN1cHBvcnRlZCBpbiB0aGlzIGJyb3dzZXIuJyk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG59XHJcbiJdfQ==
|
|
@@ -10,8 +10,9 @@ import * as i4 from "./app-config.service";
|
|
|
10
10
|
import * as i5 from "../libraries/alert/alert.service";
|
|
11
11
|
import * as i6 from "@angular/router";
|
|
12
12
|
import * as i7 from "../libraries/services/long-task.service";
|
|
13
|
+
import * as i8 from "./app.service";
|
|
13
14
|
export class SocketService {
|
|
14
|
-
constructor(authService, userActivityService, hubConnectionService, appConfigService, alertService, router, longTaskService) {
|
|
15
|
+
constructor(authService, userActivityService, hubConnectionService, appConfigService, alertService, router, longTaskService, appService) {
|
|
15
16
|
this.authService = authService;
|
|
16
17
|
this.userActivityService = userActivityService;
|
|
17
18
|
this.hubConnectionService = hubConnectionService;
|
|
@@ -19,6 +20,7 @@ export class SocketService {
|
|
|
19
20
|
this.alertService = alertService;
|
|
20
21
|
this.router = router;
|
|
21
22
|
this.longTaskService = longTaskService;
|
|
23
|
+
this.appService = appService;
|
|
22
24
|
}
|
|
23
25
|
createHubConnection() {
|
|
24
26
|
const token = this.authService.data$.value?.token;
|
|
@@ -54,33 +56,11 @@ export class SocketService {
|
|
|
54
56
|
case EnumSignalRType.LOG_IN:
|
|
55
57
|
if (isDevMode())
|
|
56
58
|
this.alertService.info(activity.message, alertOptions);
|
|
57
|
-
if (this.appConfigService.
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
};
|
|
63
|
-
// Check if notification permissions are granted
|
|
64
|
-
if (Notification.permission === 'granted') {
|
|
65
|
-
// Create and display the notification
|
|
66
|
-
new Notification("Information", options);
|
|
67
|
-
}
|
|
68
|
-
else if (Notification.permission !== 'denied') {
|
|
69
|
-
// Request permission from the user
|
|
70
|
-
Notification.requestPermission().then(permission => {
|
|
71
|
-
if (permission === 'granted') {
|
|
72
|
-
// Create and display the notification
|
|
73
|
-
new Notification("Information", options);
|
|
74
|
-
}
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
console.warn('Notification permissions not granted or denied.');
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
else {
|
|
82
|
-
console.warn('Notifications are not supported in this browser.');
|
|
83
|
-
}
|
|
59
|
+
if (this.appConfigService.SHOW_LOGIN_NOTIFICATION) {
|
|
60
|
+
this.appService.showNotification("You are not alone", {
|
|
61
|
+
body: activity.message,
|
|
62
|
+
icon: 'assets/icons/icon-72x72.png',
|
|
63
|
+
});
|
|
84
64
|
}
|
|
85
65
|
break;
|
|
86
66
|
case EnumSignalRType.ENTITY_CHANGED:
|
|
@@ -163,7 +143,7 @@ export class SocketService {
|
|
|
163
143
|
// Start the connection.
|
|
164
144
|
start();
|
|
165
145
|
}
|
|
166
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: SocketService, deps: [{ token: i1.AuthService }, { token: i2.UserActivityService }, { token: i3.HubConnectionService }, { token: i4.AppConfigService }, { token: i5.AlertService }, { token: i6.Router }, { token: i7.LongTaskService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
146
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: SocketService, deps: [{ token: i1.AuthService }, { token: i2.UserActivityService }, { token: i3.HubConnectionService }, { token: i4.AppConfigService }, { token: i5.AlertService }, { token: i6.Router }, { token: i7.LongTaskService }, { token: i8.AppService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
167
147
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: SocketService, providedIn: 'root' }); }
|
|
168
148
|
}
|
|
169
149
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: SocketService, decorators: [{
|
|
@@ -171,5 +151,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
|
|
|
171
151
|
args: [{
|
|
172
152
|
providedIn: 'root'
|
|
173
153
|
}]
|
|
174
|
-
}], ctorParameters: () => [{ type: i1.AuthService }, { type: i2.UserActivityService }, { type: i3.HubConnectionService }, { type: i4.AppConfigService }, { type: i5.AlertService }, { type: i6.Router }, { type: i7.LongTaskService }] });
|
|
175
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ja2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9zZXJ2aWNlcy9zb2NrZXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd0RCxPQUFPLEVBQWlCLG9CQUFvQixFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBTW5GLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7OztBQU0xRCxNQUFNLE9BQU8sYUFBYTtJQUV4QixZQUNVLFdBQXdCLEVBQ3hCLG1CQUF3QyxFQUN4QyxvQkFBMEMsRUFDMUMsZ0JBQWtDLEVBQ2xDLFlBQTBCLEVBQzFCLE1BQWMsRUFDZCxlQUFnQztRQU5oQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4Qix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDMUMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2Qsb0JBQWUsR0FBZixlQUFlLENBQWlCO0lBQ3RDLENBQUM7SUFFTCxtQkFBbUI7UUFDakIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQztRQUNsRCxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRTtZQUNaLE9BQU8sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUNsQyxPQUFPO1NBQ1I7UUFFRCxNQUFNLFVBQVUsR0FBa0Is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RSxDQUFBO2FBQ25CO1FBQ0gsQ0FBQyxDQUFBO1FBRUQsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksRUFBRTtZQUM1QixNQUFNLEtBQUssRUFBRSxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUFBO1FBRUYsd0JBQXdCO1FBQ3hCLEtBQUssRUFBRSxDQUFDO0lBQ1YsQ0FBQzs4R0EvS1UsYUFBYTtrSEFBYixhQUFhLGNBRlosTUFBTTs7MkZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpc0Rldk1vZGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IEh1YkNvbm5lY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi9odWItY29ubmVjdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSHViQ29ubmVjdGlvbiwgSHViQ29ubmVjdGlvbkJ1aWxkZXIsIExvZ0xldmVsIH0gZnJvbSAnQG1pY3Jvc29mdC9zaWduYWxyJztcclxuaW1wb3J0IHsgSVVzZXJBY3Rpdml0eURhdGEsIFVzZXJBY3Rpdml0eVNlcnZpY2UgfSBmcm9tICcuL3VzZXItYWN0aXZpdHkuc2VydmljZSc7XHJcbmltcG9ydCB7IEFwcENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuL2FwcC1jb25maWcuc2VydmljZSc7XHJcbmltcG9ydCB7IElIdWJDb25uZWN0aW9uQWN0aXZpdHkgfSBmcm9tICcuLi9pbnRlcmZhY2VzL0lIdWJDb25uZWN0aW9uQWN0aXZpdHknO1xyXG5pbXBvcnQgeyBBbGVydFNlcnZpY2UgfSBmcm9tICcuLi9saWJyYXJpZXMvYWxlcnQvYWxlcnQuc2VydmljZSc7XHJcbmltcG9ydCB7IExvbmdUYXNrU2VydmljZSB9IGZyb20gJy4uL2xpYnJhcmllcy9zZXJ2aWNlcy9sb25nLXRhc2suc2VydmljZSc7XHJcbmltcG9ydCB7IGFsZXJ0T3B0aW9ucyB9IGZyb20gJy4uL2NvbnN0YW50cy9hbGVydE9wdGlvbnMnO1xyXG5pbXBvcnQgeyBFbnVtU2lnbmFsUlR5cGUgfSBmcm9tICcuLi9lbnVtL0VudW1TaWduYWxSVHlwZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTb2NrZXRTZXJ2aWNlIHtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcclxuICAgIHByaXZhdGUgdXNlckFjdGl2aXR5U2VydmljZTogVXNlckFjdGl2aXR5U2VydmljZSxcclxuICAgIHByaXZhdGUgaHViQ29ubmVjdGlvblNlcnZpY2U6IEh1YkNvbm5lY3Rpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhcHBDb25maWdTZXJ2aWNlOiBBcHBDb25maWdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIGxvbmdUYXNrU2VydmljZTogTG9uZ1Rhc2tTZXJ2aWNlXHJcbiAgKSB7IH1cclxuXHJcbiAgY3JlYXRlSHViQ29ubmVjdGlvbigpIHtcclxuICAgIGNvbnN0IHRva2VuID0gdGhpcy5hdXRoU2VydmljZS5kYXRhJC52YWx1ZT8udG9rZW47XHJcbiAgICBpZiAoISEhdG9rZW4pIHtcclxuICAgICAgY29uc29sZS53YXJuKFwiTm8gdXNlciBsb2dnZWQgaW5cIik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBjb25uZWN0aW9uOiBIdWJDb25uZWN0aW9uID0gbmV3IEh1YkNvbm5lY3Rpb25CdWlsZGVyKClcclxuICAgICAgLndpdGhVcmwodGhpcy5hcHBDb25maWdTZXJ2aWNlLkJBU0VfVVJMICsgJy9odWJzL3NpZ25hbCcsIHtcclxuICAgICAgICAvLyAud2l0aFVybCgnaHR0cHM6Ly90YW5sZWljYS5jb20vaHVicy9zaWduYWwnLCB7XHJcbiAgICAgICAgaGVhZGVyczoge1xyXG4gICAgICAgICAgXCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1DcmVkZW50aWFsc1wiOiB0cnVlLFxyXG4gICAgICAgICAgXCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW5cIjogdHJ1ZSxcclxuICAgICAgICB9IGFzIGFueSxcclxuICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IGZhbHNlLFxyXG4gICAgICAgIGFjY2Vzc1Rva2VuRmFjdG9yeTogKCkgPT4gdG9rZW4sXHJcbiAgICAgIH0pXHJcbiAgICAgIC5jb25maWd1cmVMb2dnaW5nKExvZ0xldmVsLk5vbmUpXHJcbiAgICAgIC5idWlsZCgpXHJcblxyXG4gICAgY29ubmVjdGlvbi5vbihcIlJlY2VpdmVTeXN0ZW1NZXNzYWdlXCIsIG1lc3NhZ2UgPT4ge1xyXG4gICAgICBjb25zb2xlLmxvZyhcIlN5c3RlbSBtZXNzYWdlOiBcIiwgbWVzc2FnZSlcclxuICAgIH0pXHJcblxyXG4gICAgY29ubmVjdGlvbi5vbihcIlJlY2VpdmVNZXNzYWdlXCIsIChhY3Rpdml0eTogSUh1YkNvbm5lY3Rpb25BY3Rpdml0eSkgPT4ge1xyXG5cclxuICAgICAgY29uc29sZS5sb2coXCJNT05JVE9SSU5HOiBcIiwgYWN0aXZpdHkpO1xyXG4gICAgICBpZiAodGhpcy5hcHBDb25maWdTZXJ2aWNlLkRFQlVHX0VOQUJMRUQpIGRlYnVnZ2VyXHJcblxyXG4gICAgICBzd2l0Y2ggKGFjdGl2aXR5LnNpZ25hbFR5cGUpIHtcclxuICAgICAgICBjYXNlIEVudW1TaWduYWxSVHlwZS5UQVNLX1BST0dSRVNTOlxyXG4gICAgICAgICAgdGhpcy5sb25nVGFza1NlcnZpY2UubWVzc2FnZSQubmV4dChhY3Rpdml0eS5tZXNzYWdlKVxyXG4gICAgICAgICAgdGhpcy5sb25nVGFza1NlcnZpY2UuZGF0YSQubmV4dCgoYWN0aXZpdHkgYXMgYW55KS5kYXRhKVxyXG4gICAgICAgICAgdGhpcy5sb25nVGFza1NlcnZpY2UuZXJyb3IkLm5leHQoKGFjdGl2aXR5IGFzIGFueSkuZXJyb3IpXHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIEVudW1TaWduYWxSVHlwZS5MT0dfSU46XHJcbiAgICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHRoaXMuYWxlcnRTZXJ2aWNlLmluZm8oYWN0aXZpdHkubWVzc2FnZSwgYWxlcnRPcHRpb25zKVxyXG5cclxuICAgICAgICAgIGlmICh0aGlzLmFwcENvbmZpZ1NlcnZpY2UuQUxMT1dfSU5fQVBQX05PVElGSUNBVElPTikge1xyXG4gICAgICAgICAgICBpZiAoJ05vdGlmaWNhdGlvbicgaW4gd2luZG93KSB7XHJcblxyXG4gICAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XHJcbiAgICAgICAgICAgICAgICBib2R5OiBhY3Rpdml0eS5tZXNzYWdlLFxyXG4gICAgICAgICAgICAgICAgaWNvbjogJ2Fzc2V0cy9pY29ucy9pY29uLTcyeDcyLnBuZycsXHJcbiAgICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgICAgLy8gQ2hlY2sgaWYgbm90aWZpY2F0aW9uIHBlcm1pc3Npb25zIGFyZSBncmFudGVkXHJcbiAgICAgICAgICAgICAgaWYgKE5vdGlmaWNhdGlvbi5wZXJtaXNzaW9uID09PSAnZ3JhbnRlZCcpIHtcclxuICAgICAgICAgICAgICAgIC8vIENyZWF0ZSBhbmQgZGlzcGxheSB0aGUgbm90aWZpY2F0aW9uXHJcbiAgICAgICAgICAgICAgICBuZXcgTm90aWZpY2F0aW9uKFwiSW5mb3JtYXRpb25cIiwgb3B0aW9ucyk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChOb3RpZmljYXRpb24ucGVybWlzc2lvbiAhPT0gJ2RlbmllZCcpIHtcclxuICAgICAgICAgICAgICAgIC8vIFJlcXVlc3QgcGVybWlzc2lvbiBmcm9tIHRoZSB1c2VyXHJcbiAgICAgICAgICAgICAgICBOb3RpZmljYXRpb24ucmVxdWVzdFBlcm1pc3Npb24oKS50aGVuKHBlcm1pc3Npb24gPT4ge1xyXG4gICAgICAgICAgICAgICAgICBpZiAocGVybWlzc2lvbiA9PT0gJ2dyYW50ZWQnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gQ3JlYXRlIGFuZCBkaXNwbGF5IHRoZSBub3RpZmljYXRpb25cclxuICAgICAgICAgICAgICAgICAgICBuZXcgTm90aWZpY2F0aW9uKFwiSW5mb3JtYXRpb25cIiwgb3B0aW9ucyk7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ05vdGlmaWNhdGlvbiBwZXJtaXNzaW9ucyBub3QgZ3JhbnRlZCBvciBkZW5pZWQuJyk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGNvbnNvbGUud2FybignTm90aWZpY2F0aW9ucyBhcmUgbm90IHN1cHBvcnRlZCBpbiB0aGlzIGJyb3dzZXIuJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIEVudW1TaWduYWxSVHlwZS5FTlRJVFlfQ0hBTkdFRDpcclxuICAgICAgICAgIGlmIChpc0Rldk1vZGUoKSkgdGhpcy5hbGVydFNlcnZpY2UuaW5mbyhhY3Rpdml0eS5tZXNzYWdlLCBhbGVydE9wdGlvbnMpXHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIEVudW1TaWduYWxSVHlwZS5BQ1RJVklUWTpcclxuICAgICAgICAgIGNvbnN0IHsgbG9naW5UaW1lIH0gPSBhY3Rpdml0eTtcclxuICAgICAgICAgIGNvbnN0IHsgc2lkLCB1c2VybmFtZSwgcGF0aG5hbWUsIGF2YXRhciwgaHViQ29ubmVjdGlvbklkLCBhY2Nlc3NUaW1lLCB1c2VyQWN0aXZpdHkgfSA9IGFjdGl2aXR5LmRhdGE7XHJcblxyXG4gICAgICAgICAgY29uc3QgY3VycmVudFNpZCA9IHRoaXMuYXV0aFNlcnZpY2UuZGF0YSQudmFsdWU/LmZ1bGxOYW1lO1xyXG5cclxuICAgICAgICAgIGNvbnNvbGUuZ3JvdXAoXCJBQ1RJVklUWVwiKVxyXG4gICAgICAgICAgY29uc29sZS5sb2coXCJpc0Rldk1vZGUoKVwiLCBpc0Rldk1vZGUoKSk7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcIkluY29taW5nIGxvZ2luVGltZVwiLCBsb2dpblRpbWUpO1xyXG4gICAgICAgICAgY29uc29sZS5sb2coXCJZb3VyIGxvZ2luVGltZVwiLCB0aGlzLmF1dGhTZXJ2aWNlLmRhdGEkLnZhbHVlPy5sb2dpblRpbWUhKTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwiSW5jb21pbmcgc2lkXCIsIHNpZCk7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcIllvdXIgc2lkXCIsIGN1cnJlbnRTaWQpO1xyXG5cclxuICAgICAgICAgIGNvbnNvbGUuZ3JvdXBFbmQoKTtcclxuXHJcbiAgICAgICAgICBpZiAobG9naW5UaW1lIDwgdGhpcy5hdXRoU2VydmljZS5kYXRhJC52YWx1ZT8ubG9naW5UaW1lISAmJiBzaWQgPT09IGN1cnJlbnRTaWQgLyomJiBpc0Rldk1vZGUoKSovKSB7XHJcblxyXG4gICAgICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuXHJcbiAgICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoXHJcbiAgICAgICAgICAgICAgICBgVHJvbmcgbcO0aSB0csaw4budbmcgRGV2LCB0w6BpIGtob+G6o24gKCR7c2lkfSkgxJHDoyDEkcaw4bujYyBkw7luZyB0csaw4bubYyBy4buTaSBuaMOpLiBYaW4gxJHEg25nIG5o4bqtcCBi4bqxbmcgdMOgaSBraG/huqNuIGtow6FjYCxcclxuICAgICAgICAgICAgICAgIHsgLi4uYWxlcnRPcHRpb25zLCBhdXRvQ2xvc2U6IGZhbHNlIH1cclxuICAgICAgICAgICAgICApXHJcblxyXG4gICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hdXRoU2VydmljZS51c2VyTG9nb3V0KCkuc3Vic2NyaWJlKHggPT4ge1xyXG4gICAgICAgICAgICAgICAgICBpZiAoeC5vayAmJiB4LnN0YXR1cyA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hdXRoU2VydmljZS5wb3N0TG9nb3V0KCk7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIH0sIDMwMDApXHJcblxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgY29uc3QgbWVyZ2VkID0gdGhpcy51c2VyQWN0aXZpdHlTZXJ2aWNlLm1lcmdlQWN0aXZpdGllcyh1c2VyQWN0aXZpdHkpXHJcbiAgICAgICAgICBjb25zdCBmb3VuZCA9IG1lcmdlZC5maWx0ZXIoaXRlbSA9PiBpdGVtLnNpZCA9PT0gc2lkKVxyXG4gICAgICAgICAgaWYgKGZvdW5kLmxlbmd0aCkge1xyXG4gICAgICAgICAgICBjb25zdCBuZXdTdGF0ZTogSVVzZXJBY3Rpdml0eURhdGEgPSB7IHNpZCwgdXNlcm5hbWUsIHBhdGhuYW1lLCBhdmF0YXIsIGh1YkNvbm5lY3Rpb25JZCwgYWNjZXNzVGltZSB9XHJcbiAgICAgICAgICAgIG1lcmdlZC5maWx0ZXIoaXRlbSA9PiBpdGVtLnNpZCAhPT0gc2lkKS5wdXNoKG5ld1N0YXRlKVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgbWVyZ2VkLnB1c2goeyBzaWQsIHVzZXJuYW1lLCBwYXRobmFtZSwgYXZhdGFyLCBodWJDb25uZWN0aW9uSWQsIGFjY2Vzc1RpbWUgfSlcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICB0aGlzLnVzZXJBY3Rpdml0eVNlcnZpY2UudXNlckFjdGl2aXR5JC5uZXh0KG1lcmdlZCk7XHJcblxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBFbnVtU2lnbmFsUlR5cGUuQUNUSVZJVFlfSElTVE9SWV9SRVNFVDpcclxuICAgICAgICAgIHRoaXMudXNlckFjdGl2aXR5U2VydmljZS51c2VyQWN0aXZpdHkkLm5leHQoW10pO1xyXG4gICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG5cclxuXHJcbiAgICB9KVxyXG5cclxuICAgIGNvbnN0IHN0YXJ0ID0gYXN5bmMgKCkgPT4ge1xyXG4gICAgICBsZXQgaWRcclxuICAgICAgdHJ5IHtcclxuICAgICAgICB0aGlzLmh1YkNvbm5lY3Rpb25TZXJ2aWNlLm1lc3NhZ2UgPSBcIkh1YkNvbm5lY3Rpb24gY3JlYXRpbmcgcmVxdWVzdGVkLlwiXHJcbiAgICAgICAgYXdhaXQgY29ubmVjdGlvbi5zdGFydCgpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwi8J+fovCfn6Lwn5+iIFNpZ25hbFIgQ29ubmVjdGVkLlwiKTtcclxuICAgICAgICB0aGlzLmh1YkNvbm5lY3Rpb25TZXJ2aWNlLm1lc3NhZ2UgPSBcIkh1YkNvbm5lY3Rpb24gY3JlYXRlZC5cIjtcclxuICAgICAgICB0aGlzLmh1YkNvbm5lY3Rpb25TZXJ2aWNlLmh1YkNvbm5lY3Rpb24kLm5leHQoY29ubmVjdGlvbik7XHJcblxyXG4gICAgICAgIGlmIChpZCkgY2xlYXJUaW1lb3V0KGlkKVxyXG5cclxuICAgICAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcclxuICAgICAgICBjb25zb2xlLmdyb3VwKGDwn5S08J+UtPCflLQgSFVCIENPTk5FQ1RJT04gUFJPQkxFTSA9PT09PT09PT09PT09PT09PT09PWApXHJcbiAgICAgICAgdGhpcy5odWJDb25uZWN0aW9uU2VydmljZS5tZXNzYWdlID0gZXJyO1xyXG4gICAgICAgIGNvbnNvbGUud2FybihcImh1YkNvbm5lY3Rpb24gc3RhcnQoKSBlcnJvcjogXCIsIGVycilcclxuXHJcbiAgICAgICAgaWYgKHR5cGVvZiBlcnIgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICBpZiAoZXJyLmluZGV4T2YoYFN0YXR1cyBjb2RlICc0MDEnYCkgPj0gMCkge1xyXG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXCJUaGUgdG9rZW4gZXhwaXJlZFwiKVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWQgPSBzZXRUaW1lb3V0KHN0YXJ0LCA1MDAwKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZCA9IHNldFRpbWVvdXQoc3RhcnQsIDUwMDApXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnNvbGUuZ3JvdXBFbmQoKVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY29ubmVjdGlvbi5vbmNsb3NlKGFzeW5jICgpID0+IHtcclxuICAgICAgYXdhaXQgc3RhcnQoKTtcclxuICAgIH0pXHJcblxyXG4gICAgLy8gU3RhcnQgdGhlIGNvbm5lY3Rpb24uXHJcbiAgICBzdGFydCgpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
|
|
154
|
+
}], ctorParameters: () => [{ type: i1.AuthService }, { type: i2.UserActivityService }, { type: i3.HubConnectionService }, { type: i4.AppConfigService }, { type: i5.AlertService }, { type: i6.Router }, { type: i7.LongTaskService }, { type: i8.AppService }] });
|
|
155
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ja2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9zZXJ2aWNlcy9zb2NrZXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd0RCxPQUFPLEVBQWlCLG9CQUFvQixFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBTW5GLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7Ozs7QUFPMUQsTUFBTSxPQUFPLGFBQWE7SUFFeEIsWUFDVSxXQUF3QixFQUN4QixtQkFBd0MsRUFDeEMsb0JBQTBDLEVBQzFDLGdCQUFrQyxFQUNsQyxZQUEwQixFQUMxQixNQUFjLEVBQ2QsZUFBZ0MsRUFDaEMsVUFBc0I7UUFQdEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4Qyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQzFDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxlQUFVLEdBQVYsVUFBVSxDQUFZO0lBQzVCLENBQUM7SUFFTCxtQkFBbUI7UUFDakIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQztRQUNsRCxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRTtZQUNaLE9BQU8sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FB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QVEsRUFBRTtnQkFDakIsT0FBTyxDQUFDLEtBQUssQ0FBQyxvREFBb0QsQ0FBQyxDQUFBO2dCQUNuRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztnQkFDeEMsT0FBTyxDQUFDLElBQUksQ0FBQywrQkFBK0IsRUFBRSxHQUFHLENBQUMsQ0FBQTtnQkFFbEQsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUU7b0JBQzNCLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsRUFBRTt3QkFDekMsT0FBTyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO3FCQUNsQzt5QkFBTTt3QkFDTCxFQUFFLEdBQUcsVUFBVSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQTtxQkFDN0I7aUJBQ0Y7cUJBQU07b0JBQ0wsRUFBRSxHQUFHLFVBQVUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUE7aUJBQzdCO2dCQUNELE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQTthQUNuQjtRQUNILENBQUMsQ0FBQTtRQUVELFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDNUIsTUFBTSxLQUFLLEVBQUUsQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQTtRQUVGLHdCQUF3QjtRQUN4QixLQUFLLEVBQUUsQ0FBQztJQUNWLENBQUM7OEdBM0pVLGFBQWE7a0hBQWIsYUFBYSxjQUZaLE1BQU07OzJGQUVQLGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaXNEZXZNb2RlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIdWJDb25uZWN0aW9uU2VydmljZSB9IGZyb20gJy4vaHViLWNvbm5lY3Rpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IEh1YkNvbm5lY3Rpb24sIEh1YkNvbm5lY3Rpb25CdWlsZGVyLCBMb2dMZXZlbCB9IGZyb20gJ0BtaWNyb3NvZnQvc2lnbmFscic7XHJcbmltcG9ydCB7IElVc2VyQWN0aXZpdHlEYXRhLCBVc2VyQWN0aXZpdHlTZXJ2aWNlIH0gZnJvbSAnLi91c2VyLWFjdGl2aXR5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcHBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9hcHAtY29uZmlnLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJSHViQ29ubmVjdGlvbkFjdGl2aXR5IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JSHViQ29ubmVjdGlvbkFjdGl2aXR5JztcclxuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vbGlicmFyaWVzL2FsZXJ0L2FsZXJ0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMb25nVGFza1NlcnZpY2UgfSBmcm9tICcuLi9saWJyYXJpZXMvc2VydmljZXMvbG9uZy10YXNrLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBhbGVydE9wdGlvbnMgfSBmcm9tICcuLi9jb25zdGFudHMvYWxlcnRPcHRpb25zJztcclxuaW1wb3J0IHsgRW51bVNpZ25hbFJUeXBlIH0gZnJvbSAnLi4vZW51bS9FbnVtU2lnbmFsUlR5cGUnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBBcHBTZXJ2aWNlIH0gZnJvbSAnLi9hcHAuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTb2NrZXRTZXJ2aWNlIHtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcclxuICAgIHByaXZhdGUgdXNlckFjdGl2aXR5U2VydmljZTogVXNlckFjdGl2aXR5U2VydmljZSxcclxuICAgIHByaXZhdGUgaHViQ29ubmVjdGlvblNlcnZpY2U6IEh1YkNvbm5lY3Rpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhcHBDb25maWdTZXJ2aWNlOiBBcHBDb25maWdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIGxvbmdUYXNrU2VydmljZTogTG9uZ1Rhc2tTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhcHBTZXJ2aWNlOiBBcHBTZXJ2aWNlLFxyXG4gICkgeyB9XHJcblxyXG4gIGNyZWF0ZUh1YkNvbm5lY3Rpb24oKSB7XHJcbiAgICBjb25zdCB0b2tlbiA9IHRoaXMuYXV0aFNlcnZpY2UuZGF0YSQudmFsdWU/LnRva2VuO1xyXG4gICAgaWYgKCEhIXRva2VuKSB7XHJcbiAgICAgIGNvbnNvbGUud2FybihcIk5vIHVzZXIgbG9nZ2VkIGluXCIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgY29ubmVjdGlvbjogSHViQ29ubmVjdGlvbiA9IG5ldyBIdWJDb25uZWN0aW9uQnVpbGRlcigpXHJcbiAgICAgIC53aXRoVXJsKHRoaXMuYXBwQ29uZmlnU2VydmljZS5CQVNFX1VSTCArICcvaHVicy9zaWduYWwnLCB7XHJcbiAgICAgICAgLy8gLndpdGhVcmwoJ2h0dHBzOi8vdGFubGVpY2EuY29tL2h1YnMvc2lnbmFsJywge1xyXG4gICAgICAgIGhlYWRlcnM6IHtcclxuICAgICAgICAgIFwiQWNjZXNzLUNvbnRyb2wtQWxsb3ctQ3JlZGVudGlhbHNcIjogdHJ1ZSxcclxuICAgICAgICAgIFwiQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luXCI6IHRydWUsXHJcbiAgICAgICAgfSBhcyBhbnksXHJcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiBmYWxzZSxcclxuICAgICAgICBhY2Nlc3NUb2tlbkZhY3Rvcnk6ICgpID0+IHRva2VuLFxyXG4gICAgICB9KVxyXG4gICAgICAuY29uZmlndXJlTG9nZ2luZyhMb2dMZXZlbC5Ob25lKVxyXG4gICAgICAuYnVpbGQoKVxyXG5cclxuICAgIGNvbm5lY3Rpb24ub24oXCJSZWNlaXZlU3lzdGVtTWVzc2FnZVwiLCBtZXNzYWdlID0+IHtcclxuICAgICAgY29uc29sZS5sb2coXCJTeXN0ZW0gbWVzc2FnZTogXCIsIG1lc3NhZ2UpXHJcbiAgICB9KVxyXG5cclxuICAgIGNvbm5lY3Rpb24ub24oXCJSZWNlaXZlTWVzc2FnZVwiLCAoYWN0aXZpdHk6IElIdWJDb25uZWN0aW9uQWN0aXZpdHkpID0+IHtcclxuXHJcbiAgICAgIGNvbnNvbGUubG9nKFwiTU9OSVRPUklORzogXCIsIGFjdGl2aXR5KTtcclxuICAgICAgaWYgKHRoaXMuYXBwQ29uZmlnU2VydmljZS5ERUJVR19FTkFCTEVEKSBkZWJ1Z2dlclxyXG5cclxuICAgICAgc3dpdGNoIChhY3Rpdml0eS5zaWduYWxUeXBlKSB7XHJcbiAgICAgICAgY2FzZSBFbnVtU2lnbmFsUlR5cGUuVEFTS19QUk9HUkVTUzpcclxuICAgICAgICAgIHRoaXMubG9uZ1Rhc2tTZXJ2aWNlLm1lc3NhZ2UkLm5leHQoYWN0aXZpdHkubWVzc2FnZSlcclxuICAgICAgICAgIHRoaXMubG9uZ1Rhc2tTZXJ2aWNlLmRhdGEkLm5leHQoKGFjdGl2aXR5IGFzIGFueSkuZGF0YSlcclxuICAgICAgICAgIHRoaXMubG9uZ1Rhc2tTZXJ2aWNlLmVycm9yJC5uZXh0KChhY3Rpdml0eSBhcyBhbnkpLmVycm9yKVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBFbnVtU2lnbmFsUlR5cGUuTE9HX0lOOlxyXG4gICAgICAgICAgaWYgKGlzRGV2TW9kZSgpKSB0aGlzLmFsZXJ0U2VydmljZS5pbmZvKGFjdGl2aXR5Lm1lc3NhZ2UsIGFsZXJ0T3B0aW9ucylcclxuXHJcbiAgICAgICAgICBpZiAodGhpcy5hcHBDb25maWdTZXJ2aWNlLlNIT1dfTE9HSU5fTk9USUZJQ0FUSU9OKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYXBwU2VydmljZS5zaG93Tm90aWZpY2F0aW9uKFwiWW91IGFyZSBub3QgYWxvbmVcIiwge1xyXG4gICAgICAgICAgICAgIGJvZHk6IGFjdGl2aXR5Lm1lc3NhZ2UsXHJcbiAgICAgICAgICAgICAgaWNvbjogJ2Fzc2V0cy9pY29ucy9pY29uLTcyeDcyLnBuZycsXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBFbnVtU2lnbmFsUlR5cGUuRU5USVRZX0NIQU5HRUQ6XHJcbiAgICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHRoaXMuYWxlcnRTZXJ2aWNlLmluZm8oYWN0aXZpdHkubWVzc2FnZSwgYWxlcnRPcHRpb25zKVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBFbnVtU2lnbmFsUlR5cGUuQUNUSVZJVFk6XHJcbiAgICAgICAgICBjb25zdCB7IGxvZ2luVGltZSB9ID0gYWN0aXZpdHk7XHJcbiAgICAgICAgICBjb25zdCB7IHNpZCwgdXNlcm5hbWUsIHBhdGhuYW1lLCBhdmF0YXIsIGh1YkNvbm5lY3Rpb25JZCwgYWNjZXNzVGltZSwgdXNlckFjdGl2aXR5IH0gPSBhY3Rpdml0eS5kYXRhO1xyXG5cclxuICAgICAgICAgIGNvbnN0IGN1cnJlbnRTaWQgPSB0aGlzLmF1dGhTZXJ2aWNlLmRhdGEkLnZhbHVlPy5mdWxsTmFtZTtcclxuXHJcbiAgICAgICAgICBjb25zb2xlLmdyb3VwKFwiQUNUSVZJVFlcIilcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwiaXNEZXZNb2RlKClcIiwgaXNEZXZNb2RlKCkpO1xyXG4gICAgICAgICAgY29uc29sZS5sb2coXCJJbmNvbWluZyBsb2dpblRpbWVcIiwgbG9naW5UaW1lKTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwiWW91ciBsb2dpblRpbWVcIiwgdGhpcy5hdXRoU2VydmljZS5kYXRhJC52YWx1ZT8ubG9naW5UaW1lISk7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcIkluY29taW5nIHNpZFwiLCBzaWQpO1xyXG4gICAgICAgICAgY29uc29sZS5sb2coXCJZb3VyIHNpZFwiLCBjdXJyZW50U2lkKTtcclxuXHJcbiAgICAgICAgICBjb25zb2xlLmdyb3VwRW5kKCk7XHJcblxyXG4gICAgICAgICAgaWYgKGxvZ2luVGltZSA8IHRoaXMuYXV0aFNlcnZpY2UuZGF0YSQudmFsdWU/LmxvZ2luVGltZSEgJiYgc2lkID09PSBjdXJyZW50U2lkIC8qJiYgaXNEZXZNb2RlKCkqLykge1xyXG5cclxuICAgICAgICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcblxyXG4gICAgICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmVycm9yKFxyXG4gICAgICAgICAgICAgICAgYFRyb25nIG3DtGkgdHLGsOG7nW5nIERldiwgdMOgaSBraG/huqNuICgke3NpZH0pIMSRw6MgxJHGsOG7o2MgZMO5bmcgdHLGsOG7m2MgcuG7k2kgbmjDqS4gWGluIMSRxINuZyBuaOG6rXAgYuG6sW5nIHTDoGkga2hv4bqjbiBraMOhY2AsXHJcbiAgICAgICAgICAgICAgICB7IC4uLmFsZXJ0T3B0aW9ucywgYXV0b0Nsb3NlOiBmYWxzZSB9XHJcbiAgICAgICAgICAgICAgKVxyXG5cclxuICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYXV0aFNlcnZpY2UudXNlckxvZ291dCgpLnN1YnNjcmliZSh4ID0+IHtcclxuICAgICAgICAgICAgICAgICAgaWYgKHgub2sgJiYgeC5zdGF0dXMgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXV0aFNlcnZpY2UucG9zdExvZ291dCgpO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB9LCAzMDAwKVxyXG5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGNvbnN0IG1lcmdlZCA9IHRoaXMudXNlckFjdGl2aXR5U2VydmljZS5tZXJnZUFjdGl2aXRpZXModXNlckFjdGl2aXR5KVxyXG4gICAgICAgICAgY29uc3QgZm91bmQgPSBtZXJnZWQuZmlsdGVyKGl0ZW0gPT4gaXRlbS5zaWQgPT09IHNpZClcclxuICAgICAgICAgIGlmIChmb3VuZC5sZW5ndGgpIHtcclxuICAgICAgICAgICAgY29uc3QgbmV3U3RhdGU6IElVc2VyQWN0aXZpdHlEYXRhID0geyBzaWQsIHVzZXJuYW1lLCBwYXRobmFtZSwgYXZhdGFyLCBodWJDb25uZWN0aW9uSWQsIGFjY2Vzc1RpbWUgfVxyXG4gICAgICAgICAgICBtZXJnZWQuZmlsdGVyKGl0ZW0gPT4gaXRlbS5zaWQgIT09IHNpZCkucHVzaChuZXdTdGF0ZSlcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIG1lcmdlZC5wdXNoKHsgc2lkLCB1c2VybmFtZSwgcGF0aG5hbWUsIGF2YXRhciwgaHViQ29ubmVjdGlvbklkLCBhY2Nlc3NUaW1lIH0pXHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgdGhpcy51c2VyQWN0aXZpdHlTZXJ2aWNlLnVzZXJBY3Rpdml0eSQubmV4dChtZXJnZWQpO1xyXG5cclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgRW51bVNpZ25hbFJUeXBlLkFDVElWSVRZX0hJU1RPUllfUkVTRVQ6XHJcbiAgICAgICAgICB0aGlzLnVzZXJBY3Rpdml0eVNlcnZpY2UudXNlckFjdGl2aXR5JC5uZXh0KFtdKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuXHJcblxyXG4gICAgfSlcclxuXHJcbiAgICBjb25zdCBzdGFydCA9IGFzeW5jICgpID0+IHtcclxuICAgICAgbGV0IGlkXHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgdGhpcy5odWJDb25uZWN0aW9uU2VydmljZS5tZXNzYWdlID0gXCJIdWJDb25uZWN0aW9uIGNyZWF0aW5nIHJlcXVlc3RlZC5cIlxyXG4gICAgICAgIGF3YWl0IGNvbm5lY3Rpb24uc3RhcnQoKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIvCfn6Lwn5+i8J+foiBTaWduYWxSIENvbm5lY3RlZC5cIik7XHJcbiAgICAgICAgdGhpcy5odWJDb25uZWN0aW9uU2VydmljZS5tZXNzYWdlID0gXCJIdWJDb25uZWN0aW9uIGNyZWF0ZWQuXCI7XHJcbiAgICAgICAgdGhpcy5odWJDb25uZWN0aW9uU2VydmljZS5odWJDb25uZWN0aW9uJC5uZXh0KGNvbm5lY3Rpb24pO1xyXG5cclxuICAgICAgICBpZiAoaWQpIGNsZWFyVGltZW91dChpZClcclxuXHJcbiAgICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XHJcbiAgICAgICAgY29uc29sZS5ncm91cChg8J+UtPCflLTwn5S0IEhVQiBDT05ORUNUSU9OIFBST0JMRU0gPT09PT09PT09PT09PT09PT09PT1gKVxyXG4gICAgICAgIHRoaXMuaHViQ29ubmVjdGlvblNlcnZpY2UubWVzc2FnZSA9IGVycjtcclxuICAgICAgICBjb25zb2xlLndhcm4oXCJodWJDb25uZWN0aW9uIHN0YXJ0KCkgZXJyb3I6IFwiLCBlcnIpXHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgZXJyID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgaWYgKGVyci5pbmRleE9mKGBTdGF0dXMgY29kZSAnNDAxJ2ApID49IDApIHtcclxuICAgICAgICAgICAgY29uc29sZS53YXJuKFwiVGhlIHRva2VuIGV4cGlyZWRcIilcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlkID0gc2V0VGltZW91dChzdGFydCwgNTAwMClcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaWQgPSBzZXRUaW1lb3V0KHN0YXJ0LCA1MDAwKVxyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zb2xlLmdyb3VwRW5kKClcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNvbm5lY3Rpb24ub25jbG9zZShhc3luYyAoKSA9PiB7XHJcbiAgICAgIGF3YWl0IHN0YXJ0KCk7XHJcbiAgICB9KVxyXG5cclxuICAgIC8vIFN0YXJ0IHRoZSBjb25uZWN0aW9uLlxyXG4gICAgc3RhcnQoKTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
@@ -2549,6 +2549,30 @@ class AppService {
|
|
|
2549
2549
|
return crypto.randomUUID();
|
|
2550
2550
|
}
|
|
2551
2551
|
}
|
|
2552
|
+
showNotification(title, options) {
|
|
2553
|
+
if ('Notification' in window) {
|
|
2554
|
+
// Check if notification permissions are granted
|
|
2555
|
+
if (Notification.permission === 'granted') {
|
|
2556
|
+
// Create and display the notification
|
|
2557
|
+
new Notification(title, options);
|
|
2558
|
+
}
|
|
2559
|
+
else if (Notification.permission !== 'denied') {
|
|
2560
|
+
// Request permission from the user
|
|
2561
|
+
Notification.requestPermission().then(permission => {
|
|
2562
|
+
if (permission === 'granted') {
|
|
2563
|
+
// Create and display the notification
|
|
2564
|
+
new Notification(title, options);
|
|
2565
|
+
}
|
|
2566
|
+
});
|
|
2567
|
+
}
|
|
2568
|
+
else {
|
|
2569
|
+
console.warn('Notification permissions not granted or denied.');
|
|
2570
|
+
}
|
|
2571
|
+
}
|
|
2572
|
+
else {
|
|
2573
|
+
console.warn('Notifications are not supported in this browser.');
|
|
2574
|
+
}
|
|
2575
|
+
}
|
|
2552
2576
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: AppService, deps: [{ token: CommonHttpRequestService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2553
2577
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: AppService, providedIn: 'root' }); }
|
|
2554
2578
|
}
|
|
@@ -2698,10 +2722,11 @@ class AppInitializationService {
|
|
|
2698
2722
|
this.mls.lang$.next("en");
|
|
2699
2723
|
}
|
|
2700
2724
|
}
|
|
2701
|
-
fetch('../../assets/app.config.json').then(res => res.json()).then(({ APP_TYPE, APP_UIID, ALLOW_IN_APP_NOTIFICATION, BASE_URL, BASE_URL_FOR_STATISTIC, GOLIVE_URL, DEBUG_ENABLED, LOGO_LOGIN, LOGO_HEADER, HOME_BACKGROUND_IMAGE, OAUTH2_OIDC_ENABLED, OAUTH2_OIDC_CLIENT_ID, OAUTH2_OIDC_LOGIN_URI, OAUTH2_OIDC_REDIRECT_URI, OAUTH2_OIDC_SCOPE, SAML2ADFS_ENABLED, SAML2ADFS_IDP, SAML2ADFS_IDENTIFIER, SAML2ADFS_WA_SIGNIN, SAML2ADFS_WA_SIGNOUT, SAML2ADFS_WREPLY, HANGFIRE_PATH, STATIC_FOLDER, }) => {
|
|
2725
|
+
fetch('../../assets/app.config.json').then(res => res.json()).then(({ APP_TYPE, APP_UIID, ALLOW_IN_APP_NOTIFICATION, SHOW_LOGIN_NOTIFICATION, BASE_URL, BASE_URL_FOR_STATISTIC, GOLIVE_URL, DEBUG_ENABLED, LOGO_LOGIN, LOGO_HEADER, HOME_BACKGROUND_IMAGE, OAUTH2_OIDC_ENABLED, OAUTH2_OIDC_CLIENT_ID, OAUTH2_OIDC_LOGIN_URI, OAUTH2_OIDC_REDIRECT_URI, OAUTH2_OIDC_SCOPE, SAML2ADFS_ENABLED, SAML2ADFS_IDP, SAML2ADFS_IDENTIFIER, SAML2ADFS_WA_SIGNIN, SAML2ADFS_WA_SIGNOUT, SAML2ADFS_WREPLY, HANGFIRE_PATH, STATIC_FOLDER, }) => {
|
|
2702
2726
|
this.appConfigService.APP_TYPE = APP_TYPE;
|
|
2703
2727
|
this.appConfigService.APP_UIID = APP_UIID;
|
|
2704
2728
|
this.appConfigService.ALLOW_IN_APP_NOTIFICATION = ALLOW_IN_APP_NOTIFICATION;
|
|
2729
|
+
this.appConfigService.SHOW_LOGIN_NOTIFICATION = SHOW_LOGIN_NOTIFICATION;
|
|
2705
2730
|
this.appConfigService.BASE_URL = BASE_URL;
|
|
2706
2731
|
this.appConfigService.BASE_URL_FOR_STATISTIC = BASE_URL_FOR_STATISTIC;
|
|
2707
2732
|
this.appConfigService.GOLIVE_URL = GOLIVE_URL;
|
|
@@ -4329,7 +4354,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
|
|
|
4329
4354
|
}], ctorParameters: () => [] });
|
|
4330
4355
|
|
|
4331
4356
|
class SocketService {
|
|
4332
|
-
constructor(authService, userActivityService, hubConnectionService, appConfigService, alertService, router, longTaskService) {
|
|
4357
|
+
constructor(authService, userActivityService, hubConnectionService, appConfigService, alertService, router, longTaskService, appService) {
|
|
4333
4358
|
this.authService = authService;
|
|
4334
4359
|
this.userActivityService = userActivityService;
|
|
4335
4360
|
this.hubConnectionService = hubConnectionService;
|
|
@@ -4337,6 +4362,7 @@ class SocketService {
|
|
|
4337
4362
|
this.alertService = alertService;
|
|
4338
4363
|
this.router = router;
|
|
4339
4364
|
this.longTaskService = longTaskService;
|
|
4365
|
+
this.appService = appService;
|
|
4340
4366
|
}
|
|
4341
4367
|
createHubConnection() {
|
|
4342
4368
|
const token = this.authService.data$.value?.token;
|
|
@@ -4372,33 +4398,11 @@ class SocketService {
|
|
|
4372
4398
|
case EnumSignalRType.LOG_IN:
|
|
4373
4399
|
if (isDevMode())
|
|
4374
4400
|
this.alertService.info(activity.message, alertOptions);
|
|
4375
|
-
if (this.appConfigService.
|
|
4376
|
-
|
|
4377
|
-
|
|
4378
|
-
|
|
4379
|
-
|
|
4380
|
-
};
|
|
4381
|
-
// Check if notification permissions are granted
|
|
4382
|
-
if (Notification.permission === 'granted') {
|
|
4383
|
-
// Create and display the notification
|
|
4384
|
-
new Notification("Information", options);
|
|
4385
|
-
}
|
|
4386
|
-
else if (Notification.permission !== 'denied') {
|
|
4387
|
-
// Request permission from the user
|
|
4388
|
-
Notification.requestPermission().then(permission => {
|
|
4389
|
-
if (permission === 'granted') {
|
|
4390
|
-
// Create and display the notification
|
|
4391
|
-
new Notification("Information", options);
|
|
4392
|
-
}
|
|
4393
|
-
});
|
|
4394
|
-
}
|
|
4395
|
-
else {
|
|
4396
|
-
console.warn('Notification permissions not granted or denied.');
|
|
4397
|
-
}
|
|
4398
|
-
}
|
|
4399
|
-
else {
|
|
4400
|
-
console.warn('Notifications are not supported in this browser.');
|
|
4401
|
-
}
|
|
4401
|
+
if (this.appConfigService.SHOW_LOGIN_NOTIFICATION) {
|
|
4402
|
+
this.appService.showNotification("You are not alone", {
|
|
4403
|
+
body: activity.message,
|
|
4404
|
+
icon: 'assets/icons/icon-72x72.png',
|
|
4405
|
+
});
|
|
4402
4406
|
}
|
|
4403
4407
|
break;
|
|
4404
4408
|
case EnumSignalRType.ENTITY_CHANGED:
|
|
@@ -4481,7 +4485,7 @@ class SocketService {
|
|
|
4481
4485
|
// Start the connection.
|
|
4482
4486
|
start();
|
|
4483
4487
|
}
|
|
4484
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: SocketService, deps: [{ token: AuthService }, { token: UserActivityService }, { token: HubConnectionService }, { token: AppConfigService }, { token: AlertService }, { token: i1$2.Router }, { token: LongTaskService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4488
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: SocketService, deps: [{ token: AuthService }, { token: UserActivityService }, { token: HubConnectionService }, { token: AppConfigService }, { token: AlertService }, { token: i1$2.Router }, { token: LongTaskService }, { token: AppService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4485
4489
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: SocketService, providedIn: 'root' }); }
|
|
4486
4490
|
}
|
|
4487
4491
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: SocketService, decorators: [{
|
|
@@ -4489,7 +4493,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
|
|
|
4489
4493
|
args: [{
|
|
4490
4494
|
providedIn: 'root'
|
|
4491
4495
|
}]
|
|
4492
|
-
}], ctorParameters: () => [{ type: AuthService }, { type: UserActivityService }, { type: HubConnectionService }, { type: AppConfigService }, { type: AlertService }, { type: i1$2.Router }, { type: LongTaskService }] });
|
|
4496
|
+
}], ctorParameters: () => [{ type: AuthService }, { type: UserActivityService }, { type: HubConnectionService }, { type: AppConfigService }, { type: AlertService }, { type: i1$2.Router }, { type: LongTaskService }, { type: AppService }] });
|
|
4493
4497
|
|
|
4494
4498
|
class SysMenuService {
|
|
4495
4499
|
constructor(commonHttpRequestService) {
|