@esfaenza/core 15.2.256 → 15.2.258

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.
@@ -2,7 +2,7 @@ import { Inject, Injectable } from "@angular/core";
2
2
  import { InboundMessageTypes } from "@esfaenza/extensions";
3
3
  import { AdmMessageTypes, MK_ADM } from "@esfaenza/admin-module";
4
4
  // Core
5
- import { ALLOW_ANONYMOUS } from "@esfaenza/core/domain";
5
+ import { ANONYMOUS_MODE } from "@esfaenza/core/domain";
6
6
  // Direttive, Componenti, Librerie
7
7
  import * as customParseFormat from 'dayjs/plugin/customParseFormat';
8
8
  import * as isSameOrBefore from 'dayjs/plugin/isSameOrBefore';
@@ -24,7 +24,7 @@ export class AppState {
24
24
  this.notifyDataChanged("modules.Retrieved", this._modules);
25
25
  }
26
26
  get Modules() { return this._modules; }
27
- constructor(router, lc, bts, notifications, MessageDef, intercom, emb, allowAnonymous) {
27
+ constructor(router, lc, bts, notifications, MessageDef, intercom, emb, anonymousMode) {
28
28
  this.router = router;
29
29
  this.lc = lc;
30
30
  this.bts = bts;
@@ -32,7 +32,7 @@ export class AppState {
32
32
  this.MessageDef = MessageDef;
33
33
  this.intercom = intercom;
34
34
  this.emb = emb;
35
- this.allowAnonymous = allowAnonymous;
35
+ this.anonymousMode = anonymousMode;
36
36
  this.redirectingToLogin = false;
37
37
  this.handlingError = false;
38
38
  this.christmasTime = false;
@@ -81,7 +81,7 @@ export class AppState {
81
81
  // Se non ho un id mi manca il login, quindi via di qua
82
82
  var id = this.getJaceIDentity();
83
83
  if (!id) {
84
- if (this.allowAnonymous)
84
+ if (this.anonymousMode)
85
85
  return "";
86
86
  this.router.navigate(["login"]);
87
87
  return "";
@@ -214,13 +214,13 @@ export class AppState {
214
214
  this.headerHeight = height;
215
215
  }
216
216
  }
217
- AppState.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AppState, deps: [{ token: i1.Router }, { token: i2.LocalizationService }, { token: i3.TokenService }, { token: i4.NotificationsService }, { token: i4.BaseMessageService }, { token: i5.InterComService }, { token: i5.AppEmbeddingExtensions }, { token: ALLOW_ANONYMOUS }], target: i0.ɵɵFactoryTarget.Injectable });
217
+ AppState.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AppState, deps: [{ token: i1.Router }, { token: i2.LocalizationService }, { token: i3.TokenService }, { token: i4.NotificationsService }, { token: i4.BaseMessageService }, { token: i5.InterComService }, { token: i5.AppEmbeddingExtensions }, { token: ANONYMOUS_MODE }], target: i0.ɵɵFactoryTarget.Injectable });
218
218
  AppState.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AppState, providedIn: "root" });
219
219
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AppState, decorators: [{
220
220
  type: Injectable,
221
221
  args: [{ providedIn: "root" }]
222
222
  }], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.LocalizationService }, { type: i3.TokenService }, { type: i4.NotificationsService }, { type: i4.BaseMessageService }, { type: i5.InterComService }, { type: i5.AppEmbeddingExtensions }, { type: undefined, decorators: [{
223
223
  type: Inject,
224
- args: [ALLOW_ANONYMOUS]
224
+ args: [ANONYMOUS_MODE]
225
225
  }] }]; } });
226
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLnN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zZXJ2aWNlcy9zcmMvY2xhc3Nlcy9hcHAuc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJbkQsT0FBTyxFQUFFLG1CQUFtQixFQUFvQyxNQUFNLHNCQUFzQixDQUFDO0FBQzdGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFNakUsT0FBTztBQUNQLE9BQU8sRUFBb0IsZUFBZSxFQUE0QyxNQUFNLHVCQUF1QixDQUFDO0FBRXBILGtDQUFrQztBQUNsQyxPQUFPLEtBQUssaUJBQWlCLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxLQUFLLGNBQWMsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEtBQUssYUFBYSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sS0FBSyxTQUFTLE1BQU0sd0JBQXdCLENBQUM7QUFDcEQsT0FBTyxLQUFLLFFBQVEsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRCxPQUFPLEtBQUssTUFBTSxNQUFNLHFCQUFxQixDQUFDO0FBQzlDLE9BQU8sS0FBSyxHQUFHLE1BQU0sa0JBQWtCLENBQUM7QUFDeEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7QUFNdkMsTUFBTSxPQUFPLFFBQVE7SUF3QmpCLElBQVcsT0FBTyxDQUFDLE9BQTJCO1FBQzFDLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUNELElBQVcsT0FBTyxLQUF5QixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMs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QUFlO3lHQTlCM1EsUUFBUSxjQURLLE1BQU07MkZBQ25CLFFBQVE7a0JBRHBCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzswQkErQmdPLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXJcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuLy8gQ29uZmlndXJhemlvbmlcclxuaW1wb3J0IHsgQmFzZU1lc3NhZ2VTZXJ2aWNlLCBOb3RpZmljYXRpb25zU2VydmljZSwgSm9iUHJvZ3Jlc3NEdG8gfSBmcm9tIFwiQGVzZmFlbnphL3NpZ25hbHItbm90aWZpY2F0aW9uc1wiO1xyXG5pbXBvcnQgeyBJbmJvdW5kTWVzc2FnZVR5cGVzLCBJbnRlckNvbU1lc3NhZ2UsIEludGVyQ29tU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvZXh0ZW5zaW9uc1wiO1xyXG5pbXBvcnQgeyBBZG1NZXNzYWdlVHlwZXMsIE1LX0FETSB9IGZyb20gXCJAZXNmYWVuemEvYWRtaW4tbW9kdWxlXCI7XHJcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2xvY2FsaXphdGlvbnNcIjtcclxuaW1wb3J0IHsgVG9rZW5TZXJ2aWNlIH0gZnJvbSBcIi4vYXBwLmFjY2Vzc3Rva2VuXCI7XHJcblxyXG5pbXBvcnQgeyBBcHBFbWJlZGRpbmdFeHRlbnNpb25zIH0gZnJvbSBcIkBlc2ZhZW56YS9leHRlbnNpb25zXCI7XHJcblxyXG4vLyBDb3JlXHJcbmltcG9ydCB7IEFjdGl2ZU1vZHVsZVZpZXcsIEFMTE9XX0FOT05ZTU9VUywgQXBwbGljYXRpb25Kb2IsIEVudk9wdGlvbnMsIEphY2VJZGVudGl0eSB9IGZyb20gXCJAZXNmYWVuemEvY29yZS9kb21haW5cIjtcclxuXHJcbi8vIERpcmV0dGl2ZSwgQ29tcG9uZW50aSwgTGlicmVyaWVcclxuaW1wb3J0ICogYXMgY3VzdG9tUGFyc2VGb3JtYXQgZnJvbSAnZGF5anMvcGx1Z2luL2N1c3RvbVBhcnNlRm9ybWF0JztcclxuaW1wb3J0ICogYXMgaXNTYW1lT3JCZWZvcmUgZnJvbSAnZGF5anMvcGx1Z2luL2lzU2FtZU9yQmVmb3JlJztcclxuaW1wb3J0ICogYXMgaXNTYW1lT3JBZnRlciBmcm9tICdkYXlqcy9wbHVnaW4vaXNTYW1lT3JBZnRlcic7XHJcbmltcG9ydCAqIGFzIGlzQmV0d2VlbiBmcm9tICdkYXlqcy9wbHVnaW4vaXNCZXR3ZWVuJztcclxuaW1wb3J0ICogYXMgZHVyYXRpb24gZnJvbSAnZGF5anMvcGx1Z2luL2R1cmF0aW9uJztcclxuaW1wb3J0ICogYXMgbWluTWF4IGZyb20gJ2RheWpzL3BsdWdpbi9taW5NYXgnO1xyXG5pbXBvcnQgKiBhcyB1dGMgZnJvbSAnZGF5anMvcGx1Z2luL3V0Yyc7XHJcbmltcG9ydCB7IFN1YmplY3QsIGZpbHRlciB9IGZyb20gXCJyeGpzXCI7XHJcblxyXG5kZWNsYXJlIHZhciBkYXlqczogYW55O1xyXG5kZWNsYXJlIHZhciBteWNvbmZpZzogRW52T3B0aW9ucztcclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogXCJyb290XCIgfSlcclxuZXhwb3J0IGNsYXNzIEFwcFN0YXRlIHtcclxuXHJcbiAgICBwdWJsaWMgc2lkZWJhcldpZHRoOiBudW1iZXI7XHJcbiAgICBwdWJsaWMgaGVhZGVySGVpZ2h0OiBudW1iZXI7XHJcblxyXG4gICAgcHVibGljIHJlZGlyZWN0aW5nVG9Mb2dpbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIGhhbmRsaW5nRXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBjaHJpc3RtYXNUaW1lOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgaGFsbG93ZWVuVGltZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIHByaXZhdGUgU2Vzc2lvbklkZW50aXR5OiBzdHJpbmc7XHJcbiAgICBwcml2YXRlIEphY2VJZGVudGl0eTogSmFjZUlkZW50aXR5O1xyXG5cclxuICAgIHB1YmxpYyBqb2JzSW5Qcm9ncmVzczogbnVtYmVyID0gMDtcclxuICAgIHB1YmxpYyBhbGxKb2JzOiBBcHBsaWNhdGlvbkpvYltdID0gW107XHJcbiAgICBwcml2YXRlIGpvYldpdGhJZHNDYWNoZTogeyBbaW5kZXg6IHN0cmluZ106IEFwcGxpY2F0aW9uSm9iIH0gPSB7fTtcclxuICAgIHB1YmxpYyBub3RpZnlPbkNvbXBsZXRlZEpvYnM6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIHByaXZhdGUgX2RhdGEgPSBuZXcgU3ViamVjdDxPYmplY3Q+KCk7XHJcbiAgICBwcml2YXRlIF9zdWJzY3JpcHRpb25zOiBNYXA8c3RyaW5nLCBBcnJheTxGdW5jdGlvbj4+ID0gbmV3IE1hcDxzdHJpbmcsIEFycmF5PEZ1bmN0aW9uPj4oKTtcclxuXHJcbiAgICBwdWJsaWMgTW9kdWxlc0xvY2FsaXphdGlvbnM6IHsgW2lkOiBzdHJpbmddOiBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gPSB7fTtcclxuXHJcbiAgICBwcml2YXRlIF9tb2R1bGVzOiBBY3RpdmVNb2R1bGVWaWV3W107XHJcbiAgICBwdWJsaWMgc2V0IE1vZHVsZXMobW9kdWxlczogQWN0aXZlTW9kdWxlVmlld1tdKSB7XHJcbiAgICAgICAgdGhpcy5fbW9kdWxlcyA9IG1vZHVsZXM7XHJcbiAgICAgICAgdGhpcy5ub3RpZnlEYXRhQ2hhbmdlZChcIm1vZHVsZXMuUmV0cmlldmVkXCIsIHRoaXMuX21vZHVsZXMpO1xyXG4gICAgfVxyXG4gICAgcHVibGljIGdldCBNb2R1bGVzKCk6IEFjdGl2ZU1vZHVsZVZpZXdbXSB7IHJldHVybiB0aGlzLl9tb2R1bGVzOyB9XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSBsYzogTG9jYWxpemF0aW9uU2VydmljZSwgcHJpdmF0ZSBidHM6IFRva2VuU2VydmljZSwgcHJpdmF0ZSBub3RpZmljYXRpb25zOiBOb3RpZmljYXRpb25zU2VydmljZSwgcHJpdmF0ZSBNZXNzYWdlRGVmOiBCYXNlTWVzc2FnZVNlcnZpY2UsIHByaXZhdGUgaW50ZXJjb206IEludGVyQ29tU2VydmljZSwgcHJpdmF0ZSBlbWI6IEFwcEVtYmVkZGluZ0V4dGVuc2lvbnMsIEBJbmplY3QoQUxMT1dfQU5PTllNT1VTKSBwcml2YXRlIGFsbG93QW5vbnltb3VzIDogYm9vbGVhbikge1xyXG5cclxuICAgICAgICB0aGlzLmhvb2tFbWJlZGRpbmcoKTtcclxuXHJcbiAgICAgICAgdGhpcy5zZXR1cERheWpzKCk7XHJcbiAgICAgICAgdGhpcy5zZXR1cFNpZ25hbFJKb2JMaXN0ZW5pbmcoKTtcclxuXHJcbiAgICAgICAgdGhpcy5KYWNlSWRlbnRpdHkgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuX2RhdGEuc3Vic2NyaWJlKChkYXRhKSA9PiB0aGlzLl9vbkV2ZW50KGRhdGEpKTtcclxuXHJcbiAgICAgICAgLy9EZWNpZGUgc2Ugc2lhbW8gYXR0b3JubyBhIG5hdGFsZVxyXG4gICAgICAgIHZhciB0b2RheSA9IGRheWpzKCk7XHJcbiAgICAgICAgdmFyIHRoaXNZZWFyID0gdG9kYXkueWVhcigpO1xyXG4gICAgICAgIHZhciBsb3dlckJvdW5kID0gZGF5anMoXCIxOC8xMi9cIiArIHRoaXNZZWFyLCBcIkREL01NL1lZWVlcIik7XHJcbiAgICAgICAgdmFyIHVwcGVyQm91bmQgPSBkYXlqcyhcIjA3LzAxL1wiICsgKHRoaXNZZWFyICsgMSksIFwiREQvTU0vWVlZWVwiKTtcclxuICAgICAgICB0aGlzLmNocmlzdG1hc1RpbWUgPSB0b2RheSA+IGxvd2VyQm91bmQgJiYgdG9kYXkgPCB1cHBlckJvdW5kO1xyXG5cclxuICAgICAgICAvL0RlY2lkZSBzZSBzaWFtbyBhdHRvcm5vIGFkIGhhbGxvd2VlblxyXG4gICAgICAgIHZhciBsb3dlckJvdW5kID0gZGF5anMoXCIyOC8xMC9cIiArIHRoaXNZZWFyLCBcIkREL01NL1lZWVlcIik7XHJcbiAgICAgICAgdmFyIHVwcGVyQm91bmQgPSBkYXlqcyhcIjA1LzExL1wiICsgdGhpc1llYXIsIFwiREQvTU0vWVlZWVwiKTtcclxuICAgICAgICB0aGlzLmhhbGxvd2VlblRpbWUgPSB0b2RheSA+IGxvd2VyQm91bmQgJiYgdG9kYXkgPCB1cHBlckJvdW5kO1xyXG5cclxuICAgICAgICB0aGlzLmludGVyY29tLmluYm91bmRzLnN1YnNjcmliZSgodDogSW50ZXJDb21NZXNzYWdlKSA9PiB7IHRoaXMuaGFuZGxlSW5ib3VuZE1lc3NhZ2UodCk7IH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIENvbGxlZ28gbGUgaW5mb3JtYXppb25pIGRlbGwnZW1iZWRkaW5nIGNoZSBkZXZvbm8gYXBwb2dnaWFyc2kgYWxsJ2FwcCBzdGF0ZSBpbiBtb2RvIGNoZSBwb3NzYW5vIGNvbXVuaWNhcmUgY29sIHJlc3RvIGRlbGwnYXBwbGljYXppb25lXHJcbiAgICBob29rRW1iZWRkaW5nKCkge1xyXG4gICAgICAgIHRoaXMuZW1iLk1lc3NhZ2VPYnNlcnZlci5waXBlKGZpbHRlcihldiA9PiBldi5ldmVudCA9PSBcIm5hdmlnYXRpb25cIikpLnN1YnNjcmliZShldmVudCA9PiB7XHJcbiAgICAgICAgICAgIHZhciBuYXZpZ2F0aW9uT3AgPSBldmVudD8uZGF0YT8uaW50ZXJuYWxOYXZpZ2F0aW9uID8gXCJtZW51LmFkanVzdFN1Yk5hdmlnYXRpb25Ub1wiIDogXCJtZW51LmFkanVzdE5hdmlnYXRpb25Ub1wiO1xyXG4gICAgICAgICAgICB0aGlzLm5vdGlmeURhdGFDaGFuZ2VkKG5hdmlnYXRpb25PcCwgZXZlbnQ/LmRhdGE/LnRpdGxlKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5lbWIuTWVzc2FnZU9ic2VydmVyLnBpcGUoZmlsdGVyKGV2ID0+IGV2LmV2ZW50ID09IFwid2luZG93LW1lc3NhZ2VcIikpLnN1YnNjcmliZShldmVudCA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubm90aWZ5RGF0YUNoYW5nZWQoXCJ3aW5kb3ctbWVzc2FnZVwiLCBldmVudD8uZGF0YSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuX2RhdGEucGlwZShmaWx0ZXIoZSA9PiAoZSBhcyBhbnkpLmV2ZW50ID09IFwibWVudS5pc0NvbGxhcHNlZFwiKSkuc3Vic2NyaWJlKF8gPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmVtYi5yZWZyZXNoQm91bmRhcmllc09uTWVudUNvbGxhcHNlKClcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogVGVuYW50wqdBY2NvdW50wqdVc2VywqdBUFBOQU1FICovXHJcbiAgICBnZXRTZXNzaW9uSWRlbnRpdHkoKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAodGhpcy5TZXNzaW9uSWRlbnRpdHkpXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLlNlc3Npb25JZGVudGl0eTtcclxuXHJcbiAgICAgICAgLy8gU2Ugbm9uIGhvIHVuIGlkIG1pIG1hbmNhIGlsIGxvZ2luLCBxdWluZGkgdmlhIGRpIHF1YVxyXG4gICAgICAgIHZhciBpZCA9IHRoaXMuZ2V0SmFjZUlEZW50aXR5KCk7XHJcbiAgICAgICAgaWYgKCFpZCkge1xyXG4gICAgICAgICAgICBpZih0aGlzLmFsbG93QW5vbnltb3VzKVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiXCI7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXCJsb2dpblwiXSk7XHJcbiAgICAgICAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5TZXNzaW9uSWRlbnRpdHkgPSBcIlwiICsgaWQuSWR0ZW5hbnQgKyBcIsKnXCIgKyBpZC5JZEFjY291bnQgKyBcIsKnXCIgKyBpZC5JZFVzZXIgKyBcIsKnXCIgKyBteWNvbmZpZy5BcHBEYXRhLk1vZHVsZUlkO1xyXG4gICAgICAgIHJldHVybiB0aGlzLlNlc3Npb25JZGVudGl0eTtcclxuICAgIH1cclxuXHJcbiAgICByZWdpc3Rlck5hdmlnYXRpb25JZk1lYW5pbmdmdWwocm91dGU/OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KSB7XHJcbiAgICAgICAgbGV0IHRpdGxlID0gcm91dGUuZGF0YVtcInRpdGxlXCJdO1xyXG4gICAgICAgIGxldCBpbnRlcm5hbCA9IHJvdXRlLmRhdGFbXCJpbnRlcm5hbE5hdmlnYXRpb25cIl1cclxuXHJcbiAgICAgICAgLy8gUGVybWV0dGUgZGkgY2hpYW1hcmUgc3RvIHJlZ2lzdGVyTmF2aWdhdGlvbiBhIHByZXNjaW5kZXJlIGUgZmFyZSBvcHQgb3V0IHNlIG5vbiDDqCB1bmEgcm91dGUgbmF2aWdhYmlsZVxyXG4gICAgICAgIGlmKCF0aXRsZSkgcmV0dXJuO1xyXG5cclxuICAgICAgICAvKlxyXG4gICAgICAgICAqICBQYXJlbnQgKHt1cmw6IFt7cGF0aDogXCJ7bW9kdWxlfVwifV19KVxyXG4gICAgICAgICAqICAgICAgUGFyZW50ICh7dXJsOiBbe3BhdGg6IFwiXCJ9XX0pIChSb290IGRlbCBtb2R1bG8gbGF6eSlcclxuICAgICAgICAgKiAgICAgICAgICAtPiBOYXZpZ2F6aW9uZSBhdHR1YWxlIDwtXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgbGV0IG1vZHVsZSA9IHJvdXRlLnBhcmVudD8ucGFyZW50Py51cmxbMF0/LnBhdGg7XHJcbiAgICAgICAgbGV0IGxvYyA9IG1vZHVsZSA/IHRoaXMuTW9kdWxlc0xvY2FsaXphdGlvbnNbbW9kdWxlXSA6IG51bGw7XHJcblxyXG4gICAgICAgIGlmICghbW9kdWxlKVxyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiSW1wb3NzaWJpbGUgZXN0cmFwb2xhcmUgaWwgbW9kdWxvIGRhbGxhIG5hdmlnYXppb25lIChBdHRlc28gTW9kdWxvIGFsIHNlY29uZG8gbGl2ZWxsbyBkaSBwYXJlbnRlbGEgcGFydGVuZG8gZGFsIGNvbXBvbmVudGUgYXR0dWFsZSk6IFwiICsgcm91dGUucGF0aEZyb21Sb290Lm1hcCh2ID0+IHYudXJsLm1hcChzZWdtZW50ID0+IHNlZ21lbnQudG9TdHJpbmcoKSkuam9pbignLycpKS5qb2luKCcvJykpO1xyXG5cclxuICAgICAgICB0aGlzLm5vdGlmeURhdGFDaGFuZ2VkKGludGVybmFsID8gXCJtZW51LmFkanVzdFN1Yk5hdmlnYXRpb25Ub1wiIDogXCJtZW51LmFkanVzdE5hdmlnYXRpb25Ub1wiLCBsb2MgPyBsb2MubG9jKHRpdGxlKSA6IHRpdGxlKTtcclxuICAgIH1cclxuXHJcbiAgICBoYW5kbGVJbmJvdW5kTWVzc2FnZSh0OiBJbnRlckNvbU1lc3NhZ2UpIHtcclxuICAgICAgICBzd2l0Y2ggKHQudHlwZSkge1xyXG4gICAgICAgICAgICBjYXNlIEluYm91bmRNZXNzYWdlVHlwZXMuTmF2aWdhdGlvbjpcclxuICAgICAgICAgICAgICAgIHRoaXMubm90aWZ5RGF0YUNoYW5nZWQodC5tZXNzYWdlLnN1YiA/IFwibWVudS5hZGp1c3RTdWJOYXZpZ2F0aW9uVG9cIiA6IFwibWVudS5hZGp1c3ROYXZpZ2F0aW9uVG9cIiwgdC5tZXNzYWdlLnJvdXRlVGl0bGUpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pbnRlcmNvbS5zZW5kKEFkbU1lc3NhZ2VUeXBlcy5NZXNzYWdlLCBcIk5hdmlnYXRpb24gTWVzc2FnZSBSZWNlaXZlZFwiLCBNS19BRE0pO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNldHVwRGF5anMoKSB7XHJcbiAgICAgICAgZGF5anMuZXh0ZW5kKCg8YW55PmN1c3RvbVBhcnNlRm9ybWF0KS5kZWZhdWx0IHx8IGN1c3RvbVBhcnNlRm9ybWF0KTtcclxuICAgICAgICBkYXlqcy5leHRlbmQoKDxhbnk+bWluTWF4KS5kZWZhdWx0IHx8IG1pbk1heCk7XHJcbiAgICAgICAgZGF5anMuZXh0ZW5kKCg8YW55PmlzQmV0d2VlbikuZGVmYXVsdCB8fCBpc0JldHdlZW4pO1xyXG4gICAgICAgIGRheWpzLmV4dGVuZCgoPGFueT5pc1NhbWVPckJlZm9yZSkuZGVmYXVsdCB8fCBpc1NhbWVPckJlZm9yZSk7XHJcbiAgICAgICAgZGF5anMuZXh0ZW5kKCg8YW55PmlzU2FtZU9yQWZ0ZXIpLmRlZmF1bHQgfHwgaXNTYW1lT3JBZnRlcik7XHJcbiAgICAgICAgZGF5anMuZXh0ZW5kKCg8YW55PmR1cmF0aW9uKS5kZWZhdWx0IHx8IGR1cmF0aW9uKTtcclxuICAgICAgICBkYXlqcy5leHRlbmQoKDxhbnk+dXRjKS5kZWZhdWx0IHx8IHV0Yyk7XHJcblxyXG4gICAgICAgIC8vIFJlcXVpcmUgZSBjb2xsZWdhbWVudG8gY29uIGxhIGxvY2FsaXp6YXppb25lIHBlciBkYXlqc1xyXG4gICAgICAgIGltcG9ydChcImRheWpzL2xvY2FsZS9cIiArIHRoaXMubGMuU21hbGxMb2NhbGUgKyBcIi5qc1wiKS50aGVuKGxvY2FsZSA9PiB7IGRheWpzLmxvY2FsZShsb2NhbGUpOyB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzZXR1cFNpZ25hbFJKb2JMaXN0ZW5pbmcoKSB7XHJcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zLm9ic2VydmUodGhpcy5NZXNzYWdlRGVmLklOX0pvYlByb2dyZXNzTm90aWZpY2F0aW9uKS5zdWJzY3JpYmUoKGV2OiBKb2JQcm9ncmVzc0R0bykgPT4ge1xyXG5cclxuICAgICAgICAgICAgdmFyIGlkZW50aXR5ID0gdGhpcy5nZXRKYWNlSURlbnRpdHkoKTtcclxuICAgICAgICAgICAgaWYgKCFpZGVudGl0eSlcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgdmFyIGRlc2MgPSAoZXYuZGVzY3JpcHRpb24gfHwgZXYuYWN0aW9uaWQpICsgXCIgKFwiICsgKGV2LnVzZXIgfHwgaWRlbnRpdHkuRHNVc2VyKSArIFwiKVwiO1xyXG4gICAgICAgICAgICBsZXQgam9iOiBBcHBsaWNhdGlvbkpvYiA9IHtcclxuICAgICAgICAgICAgICAgIGlkOiBldi5pbnN0YW5jZSxcclxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBkZXNjLFxyXG4gICAgICAgICAgICAgICAgc21hbGxkZXNjcmlwdGlvbjogZGVzYy5sZW5ndGggPiAzNSA/IGRlc2Muc3Vic3RyaW5nKDAsIDMwKSArIFwiLi4uXCIgOiBkZXNjLFxyXG4gICAgICAgICAgICAgICAgcGVyY2VudGFnZTogdGhpcy5yb3VuZFRvVHdvKGV2LnByb2dyZXNzKSxcclxuICAgICAgICAgICAgICAgIGNvbXBsZXRlZDogZXYudHlwZSA9PSAnQ29tcGxldGVkJyxcclxuICAgICAgICAgICAgICAgIGZpbGVpZDogZXYucmVzdWx0ZmlsZSxcclxuICAgICAgICAgICAgICAgIHJlcG9ydGlkOiBldi5yZXN1bHRyZXBvcnQsXHJcbiAgICAgICAgICAgICAgICByZXBvcnRwYXJzOiBldi5yZXN1bHRyZXBvcnRwYXJhbXMsXHJcbiAgICAgICAgICAgICAgICBjb21wbGV4cmVwb3J0aWQ6IGV2LnJlc3VsdGNvbXBsZXhyZXBvcnRcclxuICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgIHN3aXRjaCAoZXYudHlwZSkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSBcIlN0YXJ0ZWRcIjpcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5qb2JXaXRoSWRzQ2FjaGVbZXYuaW5zdGFuY2VdKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcIkpvYiBhbHJlYWR5IHJlZ2lzdGVyZWQgb24gdGhlICdTdGFydGVkJyBjYWxsYmFja1wiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmpvYldpdGhJZHNDYWNoZVtldi5pbnN0YW5jZV0gPSBqb2I7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGxKb2JzLnNwbGljZSgwLCAwLCBqb2IpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZ5RGF0YUNoYW5nZWQoXCJhcHAuc3RhcnRlZEpvYlwiLCBqb2IuZGVzY3JpcHRpb24pO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBcIlByb2dyZXNzXCI6XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gU2UgbWkgYXJyaXZhIHVuIHByb2dyZXNzIGRpIHVuIGpvYiBjaGUgbm9uIGhvIHNpZ25pZmljYSBjaGUgbWkgc29ubyBsb2dnYXRvIG9yYSBjb24gZGVpIEpvYiBpbiBjb3Jzb1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIHF1aW5kaSBwZXIgcHJpbWEgY29zYSBkZXZvIG1ldHRlcmxvIGluIGxpc3RhXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmpvYldpdGhJZHNDYWNoZVtldi5pbnN0YW5jZV0pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5qb2JXaXRoSWRzQ2FjaGVbZXYuaW5zdGFuY2VdID0gam9iO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFsbEpvYnMuc3BsaWNlKDAsIDAsIGpvYik7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuam9iV2l0aElkc0NhY2hlW2V2Lmluc3RhbmNlXS5wZXJjZW50YWdlID0gdGhpcy5yb3VuZFRvVHdvKGV2LnByb2dyZXNzKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmeURhdGFDaGFuZ2VkKFwiYXBwLnByb2dyZXNzSm9iXCIsIHsgZGVzY3JpcHRpb246IGpvYi5kZXNjcmlwdGlvbiwgcHJvZ3Jlc3M6IHRoaXMuam9iV2l0aElkc0NhY2hlW2V2Lmluc3RhbmNlXS5wZXJjZW50YWdlIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBcIkNvbXBsZXRlZFwiOlxyXG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5qb2JXaXRoSWRzQ2FjaGVbZXYuaW5zdGFuY2VdKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuam9iV2l0aElkc0NhY2hlW2V2Lmluc3RhbmNlXSA9IGpvYjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGxKb2JzLnNwbGljZSgwLCAwLCBqb2IpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB2YXIgam9iVG9VcGRhdGUgPSB0aGlzLmpvYldpdGhJZHNDYWNoZVtldi5pbnN0YW5jZV07XHJcbiAgICAgICAgICAgICAgICAgICAgam9iVG9VcGRhdGUucGVyY2VudGFnZSA9IDEwMDtcclxuICAgICAgICAgICAgICAgICAgICBqb2JUb1VwZGF0ZS5maWxlaWQgPSBldi5yZXN1bHRmaWxlO1xyXG4gICAgICAgICAgICAgICAgICAgIGpvYlRvVXBkYXRlLnJlcG9ydGlkID0gZXYucmVzdWx0cmVwb3J0O1xyXG4gICAgICAgICAgICAgICAgICAgIGpvYlRvVXBkYXRlLnJlcG9ydHBhcnMgPSBldi5yZXN1bHRyZXBvcnRwYXJhbXM7XHJcbiAgICAgICAgICAgICAgICAgICAgam9iVG9VcGRhdGUuY29tcGxldGVkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubm90aWZ5T25Db21wbGV0ZWRKb2JzKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmeURhdGFDaGFuZ2VkKFwiYXBwLmNvbXBsZXRlZEpvYlwiLCBqb2JUb1VwZGF0ZS5kZXNjcmlwdGlvbik7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLmpvYnNJblByb2dyZXNzID0gdGhpcy5hbGxKb2JzLmZpbHRlcih0ID0+ICF0LmNvbXBsZXRlZCkubGVuZ3RoO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJvdW5kVG9Ud28obnVtKSB7XHJcbiAgICAgICAgcmV0dXJuIE1hdGgucm91bmQobnVtICogMTAwKSAvIDEwMDtcclxuICAgIH1cclxuXHJcbiAgICBnZXRKYWNlSURlbnRpdHkoKTogSmFjZUlkZW50aXR5IHtcclxuICAgICAgICBpZiAodGhpcy5KYWNlSWRlbnRpdHkpXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLkphY2VJZGVudGl0eTtcclxuICAgICAgICB0aGlzLkphY2VJZGVudGl0eSA9IHRoaXMuYnRzLmdldEphY2VJZGVudGl0eSgpO1xyXG4gICAgICAgIHJldHVybiB0aGlzLkphY2VJZGVudGl0eTtcclxuICAgIH1cclxuXHJcbiAgICBub3RpZnlEYXRhQ2hhbmdlZChldmVudCwgdmFsdWUpIHtcclxuICAgICAgICB0aGlzLl9kYXRhW2V2ZW50XSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuX2RhdGEubmV4dCh7XHJcbiAgICAgICAgICAgIGV2ZW50OiBldmVudCxcclxuICAgICAgICAgICAgZGF0YTogdGhpcy5fZGF0YVtldmVudF1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzdWJzY3JpYmUoZXZlbnQ6IHN0cmluZywgY2FsbGJhY2s6IEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgdmFyIHN1YnNjcmliZXJzID0gdGhpcy5fc3Vic2NyaXB0aW9ucy5nZXQoZXZlbnQpIHx8IFtdO1xyXG4gICAgICAgIHN1YnNjcmliZXJzLnB1c2goY2FsbGJhY2spO1xyXG5cclxuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnNldChldmVudCwgc3Vic2NyaWJlcnMpO1xyXG4gICAgfVxyXG5cclxuICAgIF9vbkV2ZW50KGRhdGE6IGFueSkge1xyXG4gICAgICAgIHZhciBzdWJzY3JpYmVycyA9IHRoaXMuX3N1YnNjcmlwdGlvbnMuZ2V0KGRhdGFbXCJldmVudFwiXSkgfHwgW107XHJcblxyXG4gICAgICAgIHN1YnNjcmliZXJzLmZvckVhY2goKGNhbGxiYWNrKSA9PiB7XHJcbiAgICAgICAgICAgIGNhbGxiYWNrLmNhbGwobnVsbCwgZGF0YVtcImRhdGFcIl0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXRTaWRlYmFyV2lkdGgod2lkdGg6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuc2lkZWJhcldpZHRoID0gd2lkdGg7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldEhlYWRlckhlaWdodChoZWlnaHQ6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuaGVhZGVySGVpZ2h0ID0gaGVpZ2h0O1xyXG4gICAgfVxyXG59Il19
226
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLnN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zZXJ2aWNlcy9zcmMvY2xhc3Nlcy9hcHAuc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJbkQsT0FBTyxFQUFFLG1CQUFtQixFQUFvQyxNQUFNLHNCQUFzQixDQUFDO0FBQzdGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFNakUsT0FBTztBQUNQLE9BQU8sRUFBb0IsY0FBYyxFQUE0QyxNQUFNLHVCQUF1QixDQUFDO0FBRW5ILGtDQUFrQztBQUNsQyxPQUFPLEtBQUssaUJBQWlCLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxLQUFLLGNBQWMsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEtBQUssYUFBYSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sS0FBSyxTQUFTLE1BQU0sd0JBQXdCLENBQUM7QUFDcEQsT0FBTyxLQUFLLFFBQVEsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRCxPQUFPLEtBQUssTUFBTSxNQUFNLHFCQUFxQixDQUFDO0FBQzlDLE9BQU8sS0FBSyxHQUFHLE1BQU0sa0JBQWtCLENBQUM7QUFDeEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7QUFNdkMsTUFBTSxPQUFPLFFBQVE7SUF3QmpCLElBQVcsT0FBTyxDQUFDLE9BQTJCO1FBQzFDLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUNELElBQVcsT0FBTyxLQUF5QixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMs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QUFjO3lHQTlCMVEsUUFBUSxjQURLLE1BQU07MkZBQ25CLFFBQVE7a0JBRHBCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzswQkErQmdPLE1BQU07MkJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXJcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuLy8gQ29uZmlndXJhemlvbmlcclxuaW1wb3J0IHsgQmFzZU1lc3NhZ2VTZXJ2aWNlLCBOb3RpZmljYXRpb25zU2VydmljZSwgSm9iUHJvZ3Jlc3NEdG8gfSBmcm9tIFwiQGVzZmFlbnphL3NpZ25hbHItbm90aWZpY2F0aW9uc1wiO1xyXG5pbXBvcnQgeyBJbmJvdW5kTWVzc2FnZVR5cGVzLCBJbnRlckNvbU1lc3NhZ2UsIEludGVyQ29tU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvZXh0ZW5zaW9uc1wiO1xyXG5pbXBvcnQgeyBBZG1NZXNzYWdlVHlwZXMsIE1LX0FETSB9IGZyb20gXCJAZXNmYWVuemEvYWRtaW4tbW9kdWxlXCI7XHJcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2xvY2FsaXphdGlvbnNcIjtcclxuaW1wb3J0IHsgVG9rZW5TZXJ2aWNlIH0gZnJvbSBcIi4vYXBwLmFjY2Vzc3Rva2VuXCI7XHJcblxyXG5pbXBvcnQgeyBBcHBFbWJlZGRpbmdFeHRlbnNpb25zIH0gZnJvbSBcIkBlc2ZhZW56YS9leHRlbnNpb25zXCI7XHJcblxyXG4vLyBDb3JlXHJcbmltcG9ydCB7IEFjdGl2ZU1vZHVsZVZpZXcsIEFOT05ZTU9VU19NT0RFLCBBcHBsaWNhdGlvbkpvYiwgRW52T3B0aW9ucywgSmFjZUlkZW50aXR5IH0gZnJvbSBcIkBlc2ZhZW56YS9jb3JlL2RvbWFpblwiO1xyXG5cclxuLy8gRGlyZXR0aXZlLCBDb21wb25lbnRpLCBMaWJyZXJpZVxyXG5pbXBvcnQgKiBhcyBjdXN0b21QYXJzZUZvcm1hdCBmcm9tICdkYXlqcy9wbHVnaW4vY3VzdG9tUGFyc2VGb3JtYXQnO1xyXG5pbXBvcnQgKiBhcyBpc1NhbWVPckJlZm9yZSBmcm9tICdkYXlqcy9wbHVnaW4vaXNTYW1lT3JCZWZvcmUnO1xyXG5pbXBvcnQgKiBhcyBpc1NhbWVPckFmdGVyIGZyb20gJ2RheWpzL3BsdWdpbi9pc1NhbWVPckFmdGVyJztcclxuaW1wb3J0ICogYXMgaXNCZXR3ZWVuIGZyb20gJ2RheWpzL3BsdWdpbi9pc0JldHdlZW4nO1xyXG5pbXBvcnQgKiBhcyBkdXJhdGlvbiBmcm9tICdkYXlqcy9wbHVnaW4vZHVyYXRpb24nO1xyXG5pbXBvcnQgKiBhcyBtaW5NYXggZnJvbSAnZGF5anMvcGx1Z2luL21pbk1heCc7XHJcbmltcG9ydCAqIGFzIHV0YyBmcm9tICdkYXlqcy9wbHVnaW4vdXRjJztcclxuaW1wb3J0IHsgU3ViamVjdCwgZmlsdGVyIH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbmRlY2xhcmUgdmFyIGRheWpzOiBhbnk7XHJcbmRlY2xhcmUgdmFyIG15Y29uZmlnOiBFbnZPcHRpb25zO1xyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiBcInJvb3RcIiB9KVxyXG5leHBvcnQgY2xhc3MgQXBwU3RhdGUge1xyXG5cclxuICAgIHB1YmxpYyBzaWRlYmFyV2lkdGg6IG51bWJlcjtcclxuICAgIHB1YmxpYyBoZWFkZXJIZWlnaHQ6IG51bWJlcjtcclxuXHJcbiAgICBwdWJsaWMgcmVkaXJlY3RpbmdUb0xvZ2luOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgaGFuZGxpbmdFcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIGNocmlzdG1hc1RpbWU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBoYWxsb3dlZW5UaW1lOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgcHJpdmF0ZSBTZXNzaW9uSWRlbnRpdHk6IHN0cmluZztcclxuICAgIHByaXZhdGUgSmFjZUlkZW50aXR5OiBKYWNlSWRlbnRpdHk7XHJcblxyXG4gICAgcHVibGljIGpvYnNJblByb2dyZXNzOiBudW1iZXIgPSAwO1xyXG4gICAgcHVibGljIGFsbEpvYnM6IEFwcGxpY2F0aW9uSm9iW10gPSBbXTtcclxuICAgIHByaXZhdGUgam9iV2l0aElkc0NhY2hlOiB7IFtpbmRleDogc3RyaW5nXTogQXBwbGljYXRpb25Kb2IgfSA9IHt9O1xyXG4gICAgcHVibGljIG5vdGlmeU9uQ29tcGxldGVkSm9iczogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgcHJpdmF0ZSBfZGF0YSA9IG5ldyBTdWJqZWN0PE9iamVjdD4oKTtcclxuICAgIHByaXZhdGUgX3N1YnNjcmlwdGlvbnM6IE1hcDxzdHJpbmcsIEFycmF5PEZ1bmN0aW9uPj4gPSBuZXcgTWFwPHN0cmluZywgQXJyYXk8RnVuY3Rpb24+PigpO1xyXG5cclxuICAgIHB1YmxpYyBNb2R1bGVzTG9jYWxpemF0aW9uczogeyBbaWQ6IHN0cmluZ106IExvY2FsaXphdGlvblNlcnZpY2UgfSA9IHt9O1xyXG5cclxuICAgIHByaXZhdGUgX21vZHVsZXM6IEFjdGl2ZU1vZHVsZVZpZXdbXTtcclxuICAgIHB1YmxpYyBzZXQgTW9kdWxlcyhtb2R1bGVzOiBBY3RpdmVNb2R1bGVWaWV3W10pIHtcclxuICAgICAgICB0aGlzLl9tb2R1bGVzID0gbW9kdWxlcztcclxuICAgICAgICB0aGlzLm5vdGlmeURhdGFDaGFuZ2VkKFwibW9kdWxlcy5SZXRyaWV2ZWRcIiwgdGhpcy5fbW9kdWxlcyk7XHJcbiAgICB9XHJcbiAgICBwdWJsaWMgZ2V0IE1vZHVsZXMoKTogQWN0aXZlTW9kdWxlVmlld1tdIHsgcmV0dXJuIHRoaXMuX21vZHVsZXM7IH1cclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjogUm91dGVyLCBwcml2YXRlIGxjOiBMb2NhbGl6YXRpb25TZXJ2aWNlLCBwcml2YXRlIGJ0czogVG9rZW5TZXJ2aWNlLCBwcml2YXRlIG5vdGlmaWNhdGlvbnM6IE5vdGlmaWNhdGlvbnNTZXJ2aWNlLCBwcml2YXRlIE1lc3NhZ2VEZWY6IEJhc2VNZXNzYWdlU2VydmljZSwgcHJpdmF0ZSBpbnRlcmNvbTogSW50ZXJDb21TZXJ2aWNlLCBwcml2YXRlIGVtYjogQXBwRW1iZWRkaW5nRXh0ZW5zaW9ucywgQEluamVjdChBTk9OWU1PVVNfTU9ERSkgcHJpdmF0ZSBhbm9ueW1vdXNNb2RlIDogYm9vbGVhbikge1xyXG5cclxuICAgICAgICB0aGlzLmhvb2tFbWJlZGRpbmcoKTtcclxuXHJcbiAgICAgICAgdGhpcy5zZXR1cERheWpzKCk7XHJcbiAgICAgICAgdGhpcy5zZXR1cFNpZ25hbFJKb2JMaXN0ZW5pbmcoKTtcclxuXHJcbiAgICAgICAgdGhpcy5KYWNlSWRlbnRpdHkgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuX2RhdGEuc3Vic2NyaWJlKChkYXRhKSA9PiB0aGlzLl9vbkV2ZW50KGRhdGEpKTtcclxuXHJcbiAgICAgICAgLy9EZWNpZGUgc2Ugc2lhbW8gYXR0b3JubyBhIG5hdGFsZVxyXG4gICAgICAgIHZhciB0b2RheSA9IGRheWpzKCk7XHJcbiAgICAgICAgdmFyIHRoaXNZZWFyID0gdG9kYXkueWVhcigpO1xyXG4gICAgICAgIHZhciBsb3dlckJvdW5kID0gZGF5anMoXCIxOC8xMi9cIiArIHRoaXNZZWFyLCBcIkREL01NL1lZWVlcIik7XHJcbiAgICAgICAgdmFyIHVwcGVyQm91bmQgPSBkYXlqcyhcIjA3LzAxL1wiICsgKHRoaXNZZWFyICsgMSksIFwiREQvTU0vWVlZWVwiKTtcclxuICAgICAgICB0aGlzLmNocmlzdG1hc1RpbWUgPSB0b2RheSA+IGxvd2VyQm91bmQgJiYgdG9kYXkgPCB1cHBlckJvdW5kO1xyXG5cclxuICAgICAgICAvL0RlY2lkZSBzZSBzaWFtbyBhdHRvcm5vIGFkIGhhbGxvd2VlblxyXG4gICAgICAgIHZhciBsb3dlckJvdW5kID0gZGF5anMoXCIyOC8xMC9cIiArIHRoaXNZZWFyLCBcIkREL01NL1lZWVlcIik7XHJcbiAgICAgICAgdmFyIHVwcGVyQm91bmQgPSBkYXlqcyhcIjA1LzExL1wiICsgdGhpc1llYXIsIFwiREQvTU0vWVlZWVwiKTtcclxuICAgICAgICB0aGlzLmhhbGxvd2VlblRpbWUgPSB0b2RheSA+IGxvd2VyQm91bmQgJiYgdG9kYXkgPCB1cHBlckJvdW5kO1xyXG5cclxuICAgICAgICB0aGlzLmludGVyY29tLmluYm91bmRzLnN1YnNjcmliZSgodDogSW50ZXJDb21NZXNzYWdlKSA9PiB7IHRoaXMuaGFuZGxlSW5ib3VuZE1lc3NhZ2UodCk7IH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIENvbGxlZ28gbGUgaW5mb3JtYXppb25pIGRlbGwnZW1iZWRkaW5nIGNoZSBkZXZvbm8gYXBwb2dnaWFyc2kgYWxsJ2FwcCBzdGF0ZSBpbiBtb2RvIGNoZSBwb3NzYW5vIGNvbXVuaWNhcmUgY29sIHJlc3RvIGRlbGwnYXBwbGljYXppb25lXHJcbiAgICBob29rRW1iZWRkaW5nKCkge1xyXG4gICAgICAgIHRoaXMuZW1iLk1lc3NhZ2VPYnNlcnZlci5waXBlKGZpbHRlcihldiA9PiBldi5ldmVudCA9PSBcIm5hdmlnYXRpb25cIikpLnN1YnNjcmliZShldmVudCA9PiB7XHJcbiAgICAgICAgICAgIHZhciBuYXZpZ2F0aW9uT3AgPSBldmVudD8uZGF0YT8uaW50ZXJuYWxOYXZpZ2F0aW9uID8gXCJtZW51LmFkanVzdFN1Yk5hdmlnYXRpb25Ub1wiIDogXCJtZW51LmFkanVzdE5hdmlnYXRpb25Ub1wiO1xyXG4gICAgICAgICAgICB0aGlzLm5vdGlmeURhdGFDaGFuZ2VkKG5hdmlnYXRpb25PcCwgZXZlbnQ/LmRhdGE/LnRpdGxlKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5lbWIuTWVzc2FnZU9ic2VydmVyLnBpcGUoZmlsdGVyKGV2ID0+IGV2LmV2ZW50ID09IFwid2luZG93LW1lc3NhZ2VcIikpLnN1YnNjcmliZShldmVudCA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubm90aWZ5RGF0YUNoYW5nZWQoXCJ3aW5kb3ctbWVzc2FnZVwiLCBldmVudD8uZGF0YSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuX2RhdGEucGlwZShmaWx0ZXIoZSA9PiAoZSBhcyBhbnkpLmV2ZW50ID09IFwibWVudS5pc0NvbGxhcHNlZFwiKSkuc3Vic2NyaWJlKF8gPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmVtYi5yZWZyZXNoQm91bmRhcmllc09uTWVudUNvbGxhcHNlKClcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogVGVuYW50wqdBY2NvdW50wqdVc2VywqdBUFBOQU1FICovXHJcbiAgICBnZXRTZXNzaW9uSWRlbnRpdHkoKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAodGhpcy5TZXNzaW9uSWRlbnRpdHkpXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLlNlc3Npb25JZGVudGl0eTtcclxuXHJcbiAgICAgICAgLy8gU2Ugbm9uIGhvIHVuIGlkIG1pIG1hbmNhIGlsIGxvZ2luLCBxdWluZGkgdmlhIGRpIHF1YVxyXG4gICAgICAgIHZhciBpZCA9IHRoaXMuZ2V0SmFjZUlEZW50aXR5KCk7XHJcbiAgICAgICAgaWYgKCFpZCkge1xyXG4gICAgICAgICAgICBpZih0aGlzLmFub255bW91c01vZGUpXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJcIjtcclxuXHJcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcImxvZ2luXCJdKTtcclxuICAgICAgICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLlNlc3Npb25JZGVudGl0eSA9IFwiXCIgKyBpZC5JZHRlbmFudCArIFwiwqdcIiArIGlkLklkQWNjb3VudCArIFwiwqdcIiArIGlkLklkVXNlciArIFwiwqdcIiArIG15Y29uZmlnLkFwcERhdGEuTW9kdWxlSWQ7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuU2Vzc2lvbklkZW50aXR5O1xyXG4gICAgfVxyXG5cclxuICAgIHJlZ2lzdGVyTmF2aWdhdGlvbklmTWVhbmluZ2Z1bChyb3V0ZT86IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpIHtcclxuICAgICAgICBsZXQgdGl0bGUgPSByb3V0ZS5kYXRhW1widGl0bGVcIl07XHJcbiAgICAgICAgbGV0IGludGVybmFsID0gcm91dGUuZGF0YVtcImludGVybmFsTmF2aWdhdGlvblwiXVxyXG5cclxuICAgICAgICAvLyBQZXJtZXR0ZSBkaSBjaGlhbWFyZSBzdG8gcmVnaXN0ZXJOYXZpZ2F0aW9uIGEgcHJlc2NpbmRlcmUgZSBmYXJlIG9wdCBvdXQgc2Ugbm9uIMOoIHVuYSByb3V0ZSBuYXZpZ2FiaWxlXHJcbiAgICAgICAgaWYoIXRpdGxlKSByZXR1cm47XHJcblxyXG4gICAgICAgIC8qXHJcbiAgICAgICAgICogIFBhcmVudCAoe3VybDogW3twYXRoOiBcInttb2R1bGV9XCJ9XX0pXHJcbiAgICAgICAgICogICAgICBQYXJlbnQgKHt1cmw6IFt7cGF0aDogXCJcIn1dfSkgKFJvb3QgZGVsIG1vZHVsbyBsYXp5KVxyXG4gICAgICAgICAqICAgICAgICAgIC0+IE5hdmlnYXppb25lIGF0dHVhbGUgPC1cclxuICAgICAgICAgKi9cclxuICAgICAgICBsZXQgbW9kdWxlID0gcm91dGUucGFyZW50Py5wYXJlbnQ/LnVybFswXT8ucGF0aDtcclxuICAgICAgICBsZXQgbG9jID0gbW9kdWxlID8gdGhpcy5Nb2R1bGVzTG9jYWxpemF0aW9uc1ttb2R1bGVdIDogbnVsbDtcclxuXHJcbiAgICAgICAgaWYgKCFtb2R1bGUpXHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJJbXBvc3NpYmlsZSBlc3RyYXBvbGFyZSBpbCBtb2R1bG8gZGFsbGEgbmF2aWdhemlvbmUgKEF0dGVzbyBNb2R1bG8gYWwgc2Vjb25kbyBsaXZlbGxvIGRpIHBhcmVudGVsYSBwYXJ0ZW5kbyBkYWwgY29tcG9uZW50ZSBhdHR1YWxlKTogXCIgKyByb3V0ZS5wYXRoRnJvbVJvb3QubWFwKHYgPT4gdi51cmwubWFwKHNlZ21lbnQgPT4gc2VnbWVudC50b1N0cmluZygpKS5qb2luKCcvJykpLmpvaW4oJy8nKSk7XHJcblxyXG4gICAgICAgIHRoaXMubm90aWZ5RGF0YUNoYW5nZWQoaW50ZXJuYWwgPyBcIm1lbnUuYWRqdXN0U3ViTmF2aWdhdGlvblRvXCIgOiBcIm1lbnUuYWRqdXN0TmF2aWdhdGlvblRvXCIsIGxvYyA/IGxvYy5sb2ModGl0bGUpIDogdGl0bGUpO1xyXG4gICAgfVxyXG5cclxuICAgIGhhbmRsZUluYm91bmRNZXNzYWdlKHQ6IEludGVyQ29tTWVzc2FnZSkge1xyXG4gICAgICAgIHN3aXRjaCAodC50eXBlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgSW5ib3VuZE1lc3NhZ2VUeXBlcy5OYXZpZ2F0aW9uOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5ub3RpZnlEYXRhQ2hhbmdlZCh0Lm1lc3NhZ2Uuc3ViID8gXCJtZW51LmFkanVzdFN1Yk5hdmlnYXRpb25Ub1wiIDogXCJtZW51LmFkanVzdE5hdmlnYXRpb25Ub1wiLCB0Lm1lc3NhZ2Uucm91dGVUaXRsZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmludGVyY29tLnNlbmQoQWRtTWVzc2FnZVR5cGVzLk1lc3NhZ2UsIFwiTmF2aWdhdGlvbiBNZXNzYWdlIFJlY2VpdmVkXCIsIE1LX0FETSk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc2V0dXBEYXlqcygpIHtcclxuICAgICAgICBkYXlqcy5leHRlbmQoKDxhbnk+Y3VzdG9tUGFyc2VGb3JtYXQpLmRlZmF1bHQgfHwgY3VzdG9tUGFyc2VGb3JtYXQpO1xyXG4gICAgICAgIGRheWpzLmV4dGVuZCgoPGFueT5taW5NYXgpLmRlZmF1bHQgfHwgbWluTWF4KTtcclxuICAgICAgICBkYXlqcy5leHRlbmQoKDxhbnk+aXNCZXR3ZWVuKS5kZWZhdWx0IHx8IGlzQmV0d2Vlbik7XHJcbiAgICAgICAgZGF5anMuZXh0ZW5kKCg8YW55PmlzU2FtZU9yQmVmb3JlKS5kZWZhdWx0IHx8IGlzU2FtZU9yQmVmb3JlKTtcclxuICAgICAgICBkYXlqcy5leHRlbmQoKDxhbnk+aXNTYW1lT3JBZnRlcikuZGVmYXVsdCB8fCBpc1NhbWVPckFmdGVyKTtcclxuICAgICAgICBkYXlqcy5leHRlbmQoKDxhbnk+ZHVyYXRpb24pLmRlZmF1bHQgfHwgZHVyYXRpb24pO1xyXG4gICAgICAgIGRheWpzLmV4dGVuZCgoPGFueT51dGMpLmRlZmF1bHQgfHwgdXRjKTtcclxuXHJcbiAgICAgICAgLy8gUmVxdWlyZSBlIGNvbGxlZ2FtZW50byBjb24gbGEgbG9jYWxpenphemlvbmUgcGVyIGRheWpzXHJcbiAgICAgICAgaW1wb3J0KFwiZGF5anMvbG9jYWxlL1wiICsgdGhpcy5sYy5TbWFsbExvY2FsZSArIFwiLmpzXCIpLnRoZW4obG9jYWxlID0+IHsgZGF5anMubG9jYWxlKGxvY2FsZSk7IH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHNldHVwU2lnbmFsUkpvYkxpc3RlbmluZygpIHtcclxuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnMub2JzZXJ2ZSh0aGlzLk1lc3NhZ2VEZWYuSU5fSm9iUHJvZ3Jlc3NOb3RpZmljYXRpb24pLnN1YnNjcmliZSgoZXY6IEpvYlByb2dyZXNzRHRvKSA9PiB7XHJcblxyXG4gICAgICAgICAgICB2YXIgaWRlbnRpdHkgPSB0aGlzLmdldEphY2VJRGVudGl0eSgpO1xyXG4gICAgICAgICAgICBpZiAoIWlkZW50aXR5KVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB2YXIgZGVzYyA9IChldi5kZXNjcmlwdGlvbiB8fCBldi5hY3Rpb25pZCkgKyBcIiAoXCIgKyAoZXYudXNlciB8fCBpZGVudGl0eS5Ec1VzZXIpICsgXCIpXCI7XHJcbiAgICAgICAgICAgIGxldCBqb2I6IEFwcGxpY2F0aW9uSm9iID0ge1xyXG4gICAgICAgICAgICAgICAgaWQ6IGV2Lmluc3RhbmNlLFxyXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGRlc2MsXHJcbiAgICAgICAgICAgICAgICBzbWFsbGRlc2NyaXB0aW9uOiBkZXNjLmxlbmd0aCA+IDM1ID8gZGVzYy5zdWJzdHJpbmcoMCwgMzApICsgXCIuLi5cIiA6IGRlc2MsXHJcbiAgICAgICAgICAgICAgICBwZXJjZW50YWdlOiB0aGlzLnJvdW5kVG9Ud28oZXYucHJvZ3Jlc3MpLFxyXG4gICAgICAgICAgICAgICAgY29tcGxldGVkOiBldi50eXBlID09ICdDb21wbGV0ZWQnLFxyXG4gICAgICAgICAgICAgICAgZmlsZWlkOiBldi5yZXN1bHRmaWxlLFxyXG4gICAgICAgICAgICAgICAgcmVwb3J0aWQ6IGV2LnJlc3VsdHJlcG9ydCxcclxuICAgICAgICAgICAgICAgIHJlcG9ydHBhcnM6IGV2LnJlc3VsdHJlcG9ydHBhcmFtcyxcclxuICAgICAgICAgICAgICAgIGNvbXBsZXhyZXBvcnRpZDogZXYucmVzdWx0Y29tcGxleHJlcG9ydFxyXG4gICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgc3dpdGNoIChldi50eXBlKSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlIFwiU3RhcnRlZFwiOlxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmpvYldpdGhJZHNDYWNoZVtldi5pbnN0YW5jZV0pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKFwiSm9iIGFscmVhZHkgcmVnaXN0ZXJlZCBvbiB0aGUgJ1N0YXJ0ZWQnIGNhbGxiYWNrXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuam9iV2l0aElkc0NhY2hlW2V2Lmluc3RhbmNlXSA9IGpvYjtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFsbEpvYnMuc3BsaWNlKDAsIDAsIGpvYik7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZnlEYXRhQ2hhbmdlZChcImFwcC5zdGFydGVkSm9iXCIsIGpvYi5kZXNjcmlwdGlvbik7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIFwiUHJvZ3Jlc3NcIjpcclxuICAgICAgICAgICAgICAgICAgICAvLyBTZSBtaSBhcnJpdmEgdW4gcHJvZ3Jlc3MgZGkgdW4gam9iIGNoZSBub24gaG8gc2lnbmlmaWNhIGNoZSBtaSBzb25vIGxvZ2dhdG8gb3JhIGNvbiBkZWkgSm9iIGluIGNvcnNvXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gcXVpbmRpIHBlciBwcmltYSBjb3NhIGRldm8gbWV0dGVybG8gaW4gbGlzdGFcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuam9iV2l0aElkc0NhY2hlW2V2Lmluc3RhbmNlXSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmpvYldpdGhJZHNDYWNoZVtldi5pbnN0YW5jZV0gPSBqb2I7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWxsSm9icy5zcGxpY2UoMCwgMCwgam9iKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5qb2JXaXRoSWRzQ2FjaGVbZXYuaW5zdGFuY2VdLnBlcmNlbnRhZ2UgPSB0aGlzLnJvdW5kVG9Ud28oZXYucHJvZ3Jlc3MpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZ5RGF0YUNoYW5nZWQoXCJhcHAucHJvZ3Jlc3NKb2JcIiwgeyBkZXNjcmlwdGlvbjogam9iLmRlc2NyaXB0aW9uLCBwcm9ncmVzczogdGhpcy5qb2JXaXRoSWRzQ2FjaGVbZXYuaW5zdGFuY2VdLnBlcmNlbnRhZ2UgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIFwiQ29tcGxldGVkXCI6XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmpvYldpdGhJZHNDYWNoZVtldi5pbnN0YW5jZV0pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5qb2JXaXRoSWRzQ2FjaGVbZXYuaW5zdGFuY2VdID0gam9iO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFsbEpvYnMuc3BsaWNlKDAsIDAsIGpvYik7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHZhciBqb2JUb1VwZGF0ZSA9IHRoaXMuam9iV2l0aElkc0NhY2hlW2V2Lmluc3RhbmNlXTtcclxuICAgICAgICAgICAgICAgICAgICBqb2JUb1VwZGF0ZS5wZXJjZW50YWdlID0gMTAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGpvYlRvVXBkYXRlLmZpbGVpZCA9IGV2LnJlc3VsdGZpbGU7XHJcbiAgICAgICAgICAgICAgICAgICAgam9iVG9VcGRhdGUucmVwb3J0aWQgPSBldi5yZXN1bHRyZXBvcnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgam9iVG9VcGRhdGUucmVwb3J0cGFycyA9IGV2LnJlc3VsdHJlcG9ydHBhcmFtcztcclxuICAgICAgICAgICAgICAgICAgICBqb2JUb1VwZGF0ZS5jb21wbGV0ZWQgPSB0cnVlO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5ub3RpZnlPbkNvbXBsZXRlZEpvYnMpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZ5RGF0YUNoYW5nZWQoXCJhcHAuY29tcGxldGVkSm9iXCIsIGpvYlRvVXBkYXRlLmRlc2NyaXB0aW9uKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMuam9ic0luUHJvZ3Jlc3MgPSB0aGlzLmFsbEpvYnMuZmlsdGVyKHQgPT4gIXQuY29tcGxldGVkKS5sZW5ndGg7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcm91bmRUb1R3byhudW0pIHtcclxuICAgICAgICByZXR1cm4gTWF0aC5yb3VuZChudW0gKiAxMDApIC8gMTAwO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEphY2VJRGVudGl0eSgpOiBKYWNlSWRlbnRpdHkge1xyXG4gICAgICAgIGlmICh0aGlzLkphY2VJZGVudGl0eSlcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuSmFjZUlkZW50aXR5O1xyXG4gICAgICAgIHRoaXMuSmFjZUlkZW50aXR5ID0gdGhpcy5idHMuZ2V0SmFjZUlkZW50aXR5KCk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuSmFjZUlkZW50aXR5O1xyXG4gICAgfVxyXG5cclxuICAgIG5vdGlmeURhdGFDaGFuZ2VkKGV2ZW50LCB2YWx1ZSkge1xyXG4gICAgICAgIHRoaXMuX2RhdGFbZXZlbnRdID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5fZGF0YS5uZXh0KHtcclxuICAgICAgICAgICAgZXZlbnQ6IGV2ZW50LFxyXG4gICAgICAgICAgICBkYXRhOiB0aGlzLl9kYXRhW2V2ZW50XVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHN1YnNjcmliZShldmVudDogc3RyaW5nLCBjYWxsYmFjazogRnVuY3Rpb24pIHtcclxuICAgICAgICB2YXIgc3Vic2NyaWJlcnMgPSB0aGlzLl9zdWJzY3JpcHRpb25zLmdldChldmVudCkgfHwgW107XHJcbiAgICAgICAgc3Vic2NyaWJlcnMucHVzaChjYWxsYmFjayk7XHJcblxyXG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuc2V0KGV2ZW50LCBzdWJzY3JpYmVycyk7XHJcbiAgICB9XHJcblxyXG4gICAgX29uRXZlbnQoZGF0YTogYW55KSB7XHJcbiAgICAgICAgdmFyIHN1YnNjcmliZXJzID0gdGhpcy5fc3Vic2NyaXB0aW9ucy5nZXQoZGF0YVtcImV2ZW50XCJdKSB8fCBbXTtcclxuXHJcbiAgICAgICAgc3Vic2NyaWJlcnMuZm9yRWFjaCgoY2FsbGJhY2spID0+IHtcclxuICAgICAgICAgICAgY2FsbGJhY2suY2FsbChudWxsLCBkYXRhW1wiZGF0YVwiXSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldFNpZGViYXJXaWR0aCh3aWR0aDogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5zaWRlYmFyV2lkdGggPSB3aWR0aDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0SGVhZGVySGVpZ2h0KGhlaWdodDogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5oZWFkZXJIZWlnaHQgPSBoZWlnaHQ7XHJcbiAgICB9XHJcbn0iXX0=
@@ -188,7 +188,7 @@ const MENU = new InjectionToken('MENU');
188
188
  /** Token che indica se il servizio di autenticazione deve utilizzare un token finto */
189
189
  const USE_FAKE_ACCESS_TOKEN = new InjectionToken('USE_FAKE_ACCESS_TOKEN');
190
190
  /** Token che indica se il servizio di autenticazione deve funzionare in anonimo lato Frontend. Dev'essere utilizzato insieme al tag "Auth" in code behind */
191
- const ALLOW_ANONYMOUS = new InjectionToken('USE_FAKE_ACCESS_TOKEN');
191
+ const ANONYMOUS_MODE = new InjectionToken('USE_FAKE_ACCESS_TOKEN');
192
192
  /** Token che indica i componenti di estensione da aggiungere alla navbar. Verranno bootstrappati in maniera dinamica */
193
193
  const NAVBAR_EXTENSIONS = new InjectionToken('NAVBAR_EXTENSIONS');
194
194
  /** Token che identifica se utilizzare la versione vecchia dell'url di auth (${myconfig.AUTH_URL}/login/form?client=${myconfig.CLIENT_NAME}) invece che la nuova (${myconfig.AUTH_URL}/login;client=${myconfig.CLIENT_NAME}) */
@@ -198,5 +198,5 @@ const LOGIN_URL_LEGACY = new InjectionToken('LOGIN_URL_LEGACY');
198
198
  * Generated bundle index. Do not edit.
199
199
  */
200
200
 
201
- export { ALLOW_ANONYMOUS, AccountScope, ActiveModuleView, ApplicationJob, ApplicationMenu, CategoriesWithModules, EMBEDDED_ROUTE, EnvOptions, GenericItem, JaceAccount, JaceIdentity, JaceModule, JacePermission, JaceRole, JaceUser, KeyValue, LOGIN_URL_LEGACY, MENU, MENU_LOCALIZATION, NAVBAR_EXTENSIONS, REDIRECT_MAP, ROUTE, SearchResult, SearchResultContainer, USE_FAKE_ACCESS_TOKEN, UpdateAccountRecoverySettingsDto, UpdatePasswordDto, UpdateProfilePictureDto, UserAccount };
201
+ export { ANONYMOUS_MODE, AccountScope, ActiveModuleView, ApplicationJob, ApplicationMenu, CategoriesWithModules, EMBEDDED_ROUTE, EnvOptions, GenericItem, JaceAccount, JaceIdentity, JaceModule, JacePermission, JaceRole, JaceUser, KeyValue, LOGIN_URL_LEGACY, MENU, MENU_LOCALIZATION, NAVBAR_EXTENSIONS, REDIRECT_MAP, ROUTE, SearchResult, SearchResultContainer, USE_FAKE_ACCESS_TOKEN, UpdateAccountRecoverySettingsDto, UpdatePasswordDto, UpdateProfilePictureDto, UserAccount };
202
202
  //# sourceMappingURL=esfaenza-core-domain.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"esfaenza-core-domain.mjs","sources":["../../../projects/core/domain/src/models/core/ApplicationMenu.ts","../../../projects/core/domain/src/models/core/ApplicationJob.ts","../../../projects/core/domain/src/models/core/EnvOptions.ts","../../../projects/core/domain/src/models/core/KeyValue.ts","../../../projects/core/domain/src/models/core/GenericItem.ts","../../../projects/core/domain/src/models/core/ApplicationRoutes.ts","../../../projects/core/domain/src/models/jace/CategoriesWithModules.ts","../../../projects/core/domain/src/models/jace/AccountScope.ts","../../../projects/core/domain/src/models/jace/ActiveModuleView.ts","../../../projects/core/domain/src/models/jace/JaceAccount.ts","../../../projects/core/domain/src/models/jace/JaceIdentity.ts","../../../projects/core/domain/src/models/jace/JaceModule.ts","../../../projects/core/domain/src/models/jace/JacePermission.ts","../../../projects/core/domain/src/models/jace/JaceRole.ts","../../../projects/core/domain/src/models/jace/JaceUser.ts","../../../projects/core/domain/src/models/global_search/SaerchResultContainer.ts","../../../projects/core/domain/src/models/global_search/SearchResult.ts","../../../projects/core/domain/src/models/user/UpdateAccountRecoverySettingsDto.ts","../../../projects/core/domain/src/models/user/UpdatePasswordDto.ts","../../../projects/core/domain/src/models/user/UpdateProfilePictureDto.ts","../../../projects/core/domain/src/models/user/UserAccount.ts","../../../projects/core/domain/src/tokens.ts","../../../projects/core/domain/src/esfaenza-core-domain.ts"],"sourcesContent":["export class ApplicationMenu {\r\n constructor(\r\n public title: string,\r\n public link?: string,\r\n public routerLink?: string,\r\n public icon?: string,\r\n public ac?: string,\r\n public wip?: boolean,\r\n public subMenu?: ApplicationMenu[],\r\n public queryParams?: {}) { }\r\n\r\n static Group(title: string, icon: string, ac: string, wip: boolean, subMenu: ApplicationMenu[], queryParams?: any): ApplicationMenu {\r\n return new ApplicationMenu(title, null, null, icon, ac, wip, subMenu, queryParams);\r\n }\r\n\r\n static TopItem(title: string, icon: string, routerLink?: string, ac?: string, queryParams?: any, wip?: boolean): ApplicationMenu {\r\n return new ApplicationMenu(title, null, routerLink, icon, ac, wip, null, queryParams);\r\n }\r\n\r\n static Item(title: string, routerLink?: string, ac?: string, queryParams?: any, wip?: boolean): ApplicationMenu {\r\n return new ApplicationMenu(title, null, routerLink, null, ac, !routerLink && !ac && !queryParams ? true : wip, null, queryParams);\r\n }\r\n\r\n static Link(title: string, link?: string) {\r\n return new ApplicationMenu(title, link);\r\n }\r\n\r\n static ignoreStorage: any = { ignoreStorage: true };\r\n}\r\n","import { ReportParam } from \"@esfaenza/es-table\";\r\n\r\nexport class ApplicationJob {\r\n id: string;\r\n description: string;\r\n smalldescription: string;\r\n percentage: number;\r\n completed: boolean;\r\n fileid: string;\r\n reportid: string;\r\n complexreportid: string;\r\n reportpars: ReportParam[];\r\n}","export class EnvOptions {\r\n constructor(moduleId: string, moduleDef: number, env: string, varsion: string, description: string) {\r\n this.AppData = {\r\n ModuleDefId: moduleDef,\r\n ModuleId: moduleId,\r\n ComponentEnvironment: env,\r\n ComponentVersion: varsion,\r\n ModuleDescription: description\r\n }\r\n }\r\n\r\n //Proprietà di configurazione\r\n AppData: { ModuleId: string, ModuleDefId: number, ComponentEnvironment: string, ComponentVersion: string, ModuleDescription: string };\r\n AuthUrl?: string;\r\n Client?: string;\r\n JaceDashboardUrl?: string;\r\n TransactionTimeoutSeconds: number;\r\n\r\n //Proprietà di sistema\r\n redirectInProgress?: boolean;\r\n};","import { Export } from \"@esfaenza/extensions\";\r\n\r\nexport class KeyValue {\r\n constructor(id: string, description: string) {\r\n this.id = id;\r\n this.description = description;\r\n }\r\n @Export(10, \"Cod.\") id: string;\r\n @Export(20, \"Descrizione\") description: string;\r\n}","/** Rappresentazione di un oggetto generico */\r\nexport class GenericItem {\r\n /**\r\n * Costruttore \r\n * \r\n * @param properties Dizionario Chiave - Valore delle proprietà di questo oggetto generico\r\n */\r\n constructor(public properties: Record<string, string>) { }\r\n}\r\n","export const EMBEDDED_ROUTE: string = \"pages_ext\";\r\nexport const ROUTE: string = \"pages\";","import { ActiveModuleView } from \"./ActiveModuleView\";\r\n\r\n\r\nexport class CategoriesWithModules {\r\n constructor(module: ActiveModuleView) {\r\n this.category = module?.category?.toUpperCase();\r\n this.module_rows = [[module]];\r\n }\r\n category: string;\r\n module_rows: ActiveModuleView[][];\r\n}\r\n","import { JaceModule } from \"./JaceModule\";\r\nimport { JacePermission } from \"./JacePermission\";\r\nimport { JaceRole } from \"./JaceRole\";\r\n\r\nexport class AccountScope {\r\n constructor(public modules: JaceModule[] = [], public roles: JaceRole[] = [], public permissions: JacePermission[] = []) { }\r\n}","export class ActiveModuleView {\r\n constructor(public name: string) { }\r\n idmodule: number;\r\n altname: string;\r\n category: string;\r\n tenant: string;\r\n uiurl: string;\r\n environment: string;\r\n href: string;\r\n}","export class JaceAccount {\r\n idaccount: number;\r\n iduser: number;\r\n idtenant: string;\r\n dsusername: string;\r\n dspassword: string;\r\n dtvalidfrom: Date;\r\n dtvalidto: Date;\r\n sydatains: Date;\r\n sydataupd: Date;\r\n dtlockdown: Date;\r\n syuserupd: string;\r\n syuserins: string;\r\n dsreasonlockdown: string;\r\n cnattempts: number;\r\n\r\n //Solo UI\r\n description: string;\r\n}","import { AccountScope } from \"./AccountScope\";\r\n\r\nexport class JaceIdentity {\r\n Expired: boolean;\r\n IdAccount: number;\r\n IdUser: number;\r\n DsUser: string;\r\n FullName: string;\r\n Idtenant: string;\r\n TenantName: string;\r\n IdActor: number;\r\n IdActorRole: number;\r\n ExpirationTime: Date;\r\n\r\n constructor(scope: AccountScope = null) {\r\n this.Roles = [];\r\n this.Modules = [];\r\n this.Permissions = [];\r\n if (scope) {\r\n // Doppio parametro per gestione del nuovo AUTH.\r\n // TODO: Rimuovere quando non serve\r\n this.Roles = scope.roles.map(x=> x.idrolealt || x.roleidalt);\r\n this.Permissions = scope.permissions.map(x=> x.idpermissionalt || x.permissionidalt);\r\n this.Modules = scope.modules.map(x=> x.idmodule || x.moduleid);\r\n }\r\n }\r\n Roles: string[];\r\n Modules: number[];\r\n Permissions: string[];\r\n}\r\n","export class JaceModule {\r\n constructor(\r\n public idmodule: number,\r\n public dsname?: string,\r\n public dscategory?: string,\r\n public idmodulealt?: string\r\n ) {\r\n this.moduleid = idmodule;\r\n }\r\n\r\n // Nouvo Auth\r\n moduleid?: number;\r\n}\r\n","export class JacePermission {\r\n idpermission: number;\r\n dspermission?: string;\r\n idpermissionalt?: string;\r\n sydatains?: Date;\r\n syuserins?: string;\r\n sydataupd?: Date;\r\n syuserupd?: string;\r\n\r\n // Nuovo Auth\r\n permissionidalt?: string;\r\n}\r\n","export class JaceRole\r\n{\r\n constructor(public idrole: number, public idrolealt: string, public dsrole: string) {\r\n this.roleidalt = idrolealt;\r\n }\r\n\r\n dsnote?: string;\r\n idparent?: number;\r\n sydatains?: Date;\r\n syuserins?: string;\r\n sydataupd?: Date;\r\n syuserupd?: string;\r\n\r\n // Nuovo AUTH\r\n roleidalt?: string;\r\n}","\r\nexport class JaceUser {\r\n iduser: number;\r\n dsnome: string;\r\n dscognome: string;\r\n sydatains: Date;\r\n syuserins: string;\r\n sydataupd: Date;\r\n syuserupd: string;\r\n}\r\n","import { SearchResult } from \"./SearchResult\";\r\n\r\nexport class SearchResultContainer {\r\n constructor(public results: SearchResult[]) { }\r\n}","import { GenericItem } from \"../core/GenericItem\";\r\nimport { KeyValue } from \"../core/KeyValue\";\r\nimport { EsTableColumnsDefinition } from \"@esfaenza/es-table\";\r\n\r\nexport class SearchResult {\r\n\r\n constructor(\r\n public description: string,\r\n public columns: KeyValue[],\r\n public items: GenericItem[]\r\n ) { }\r\n\r\n // Solo UI per la visualizzazione dei risultati\r\n est_cols: EsTableColumnsDefinition[];\r\n}\r\n","export class UpdateAccountRecoverySettingsDto {\r\n constructor(public accountid?: string, public email?: string) { }\r\n}","export class UpdatePasswordDto {\r\n constructor(\r\n public accountid?: string,\r\n public oldpwd?: string,\r\n public newpwd?: string,\r\n public confirmpwd?: string,\r\n public changeall: boolean = true,\r\n public changeforexternals: boolean = true) { }\r\n}","export class UpdateProfilePictureDto {\r\n constructor(public accountid?: string) { }\r\n}","export class UserAccount {\r\n id: string;\r\n tenantid: string;\r\n username: string;\r\n typeid: string;\r\n type: string;\r\n dtvalidfrom: Date;\r\n dtvalidto: Date;\r\n dtlock: Date;\r\n lockreason: string;\r\n userid: string;\r\n userdescription: string;\r\n uuid: string;\r\n firstname: string;\r\n lastname: string;\r\n recoveryemail: string;\r\n recoveryphone: string;\r\n dtottexpiration: Date;\r\n dtlastlogin: Date;\r\n lastloginattempts: number;\r\n islocked: boolean;\r\n isvalid: boolean;\r\n}","// Angular\r\nimport { InjectionToken, Type } from \"@angular/core\";\r\n\r\n// Configurazioni\r\nimport { LocalizationService } from \"@esfaenza/localizations\";\r\n\r\n// Applicazione\r\nimport { ApplicationMenu } from \"./models/core/ApplicationMenu\";\r\n\r\n/** Token che indica i default da assegnare agli Input */\r\nexport const REDIRECT_MAP: InjectionToken<{ [index: string]: { url: string, params: string[] } }> = new InjectionToken<{ [index: string]: { url: string, params: string[] } }>('REDIRECT_MAP');\r\n\r\n/** Token che indica il servizio di localizzazione utilizzato per i menù */\r\nexport const MENU_LOCALIZATION: InjectionToken<Type<LocalizationService>> = new InjectionToken<Type<LocalizationService>>('MENU_LOCALIZATION');\r\n\r\n/** Token che indica i menù dell'applicazione, da quello vegano fino a quello celiaco */\r\nexport const MENU: InjectionToken<ApplicationMenu[]> = new InjectionToken<ApplicationMenu[]>('MENU');\r\n\r\n/** Token che indica se il servizio di autenticazione deve utilizzare un token finto */\r\nexport const USE_FAKE_ACCESS_TOKEN: InjectionToken<boolean> = new InjectionToken<boolean>('USE_FAKE_ACCESS_TOKEN');\r\n\r\n/** Token che indica se il servizio di autenticazione deve funzionare in anonimo lato Frontend. Dev'essere utilizzato insieme al tag \"Auth\" in code behind */\r\nexport const ALLOW_ANONYMOUS: InjectionToken<boolean> = new InjectionToken<boolean>('USE_FAKE_ACCESS_TOKEN');\r\n\r\n/** Token che indica i componenti di estensione da aggiungere alla navbar. Verranno bootstrappati in maniera dinamica */\r\nexport const NAVBAR_EXTENSIONS: InjectionToken<Type<any>[]> = new InjectionToken<Type<any>[]>('NAVBAR_EXTENSIONS');\r\n\r\n/** Token che identifica se utilizzare la versione vecchia dell'url di auth (${myconfig.AUTH_URL}/login/form?client=${myconfig.CLIENT_NAME}) invece che la nuova (${myconfig.AUTH_URL}/login;client=${myconfig.CLIENT_NAME}) */\r\nexport const LOGIN_URL_LEGACY: InjectionToken<boolean> = new InjectionToken<boolean>('LOGIN_URL_LEGACY');","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"esfaenza-core-domain.mjs","sources":["../../../projects/core/domain/src/models/core/ApplicationMenu.ts","../../../projects/core/domain/src/models/core/ApplicationJob.ts","../../../projects/core/domain/src/models/core/EnvOptions.ts","../../../projects/core/domain/src/models/core/KeyValue.ts","../../../projects/core/domain/src/models/core/GenericItem.ts","../../../projects/core/domain/src/models/core/ApplicationRoutes.ts","../../../projects/core/domain/src/models/jace/CategoriesWithModules.ts","../../../projects/core/domain/src/models/jace/AccountScope.ts","../../../projects/core/domain/src/models/jace/ActiveModuleView.ts","../../../projects/core/domain/src/models/jace/JaceAccount.ts","../../../projects/core/domain/src/models/jace/JaceIdentity.ts","../../../projects/core/domain/src/models/jace/JaceModule.ts","../../../projects/core/domain/src/models/jace/JacePermission.ts","../../../projects/core/domain/src/models/jace/JaceRole.ts","../../../projects/core/domain/src/models/jace/JaceUser.ts","../../../projects/core/domain/src/models/global_search/SaerchResultContainer.ts","../../../projects/core/domain/src/models/global_search/SearchResult.ts","../../../projects/core/domain/src/models/user/UpdateAccountRecoverySettingsDto.ts","../../../projects/core/domain/src/models/user/UpdatePasswordDto.ts","../../../projects/core/domain/src/models/user/UpdateProfilePictureDto.ts","../../../projects/core/domain/src/models/user/UserAccount.ts","../../../projects/core/domain/src/tokens.ts","../../../projects/core/domain/src/esfaenza-core-domain.ts"],"sourcesContent":["export class ApplicationMenu {\r\n constructor(\r\n public title: string,\r\n public link?: string,\r\n public routerLink?: string,\r\n public icon?: string,\r\n public ac?: string,\r\n public wip?: boolean,\r\n public subMenu?: ApplicationMenu[],\r\n public queryParams?: {}) { }\r\n\r\n static Group(title: string, icon: string, ac: string, wip: boolean, subMenu: ApplicationMenu[], queryParams?: any): ApplicationMenu {\r\n return new ApplicationMenu(title, null, null, icon, ac, wip, subMenu, queryParams);\r\n }\r\n\r\n static TopItem(title: string, icon: string, routerLink?: string, ac?: string, queryParams?: any, wip?: boolean): ApplicationMenu {\r\n return new ApplicationMenu(title, null, routerLink, icon, ac, wip, null, queryParams);\r\n }\r\n\r\n static Item(title: string, routerLink?: string, ac?: string, queryParams?: any, wip?: boolean): ApplicationMenu {\r\n return new ApplicationMenu(title, null, routerLink, null, ac, !routerLink && !ac && !queryParams ? true : wip, null, queryParams);\r\n }\r\n\r\n static Link(title: string, link?: string) {\r\n return new ApplicationMenu(title, link);\r\n }\r\n\r\n static ignoreStorage: any = { ignoreStorage: true };\r\n}\r\n","import { ReportParam } from \"@esfaenza/es-table\";\r\n\r\nexport class ApplicationJob {\r\n id: string;\r\n description: string;\r\n smalldescription: string;\r\n percentage: number;\r\n completed: boolean;\r\n fileid: string;\r\n reportid: string;\r\n complexreportid: string;\r\n reportpars: ReportParam[];\r\n}","export class EnvOptions {\r\n constructor(moduleId: string, moduleDef: number, env: string, varsion: string, description: string) {\r\n this.AppData = {\r\n ModuleDefId: moduleDef,\r\n ModuleId: moduleId,\r\n ComponentEnvironment: env,\r\n ComponentVersion: varsion,\r\n ModuleDescription: description\r\n }\r\n }\r\n\r\n //Proprietà di configurazione\r\n AppData: { ModuleId: string, ModuleDefId: number, ComponentEnvironment: string, ComponentVersion: string, ModuleDescription: string };\r\n AuthUrl?: string;\r\n Client?: string;\r\n JaceDashboardUrl?: string;\r\n TransactionTimeoutSeconds: number;\r\n\r\n //Proprietà di sistema\r\n redirectInProgress?: boolean;\r\n};","import { Export } from \"@esfaenza/extensions\";\r\n\r\nexport class KeyValue {\r\n constructor(id: string, description: string) {\r\n this.id = id;\r\n this.description = description;\r\n }\r\n @Export(10, \"Cod.\") id: string;\r\n @Export(20, \"Descrizione\") description: string;\r\n}","/** Rappresentazione di un oggetto generico */\r\nexport class GenericItem {\r\n /**\r\n * Costruttore \r\n * \r\n * @param properties Dizionario Chiave - Valore delle proprietà di questo oggetto generico\r\n */\r\n constructor(public properties: Record<string, string>) { }\r\n}\r\n","export const EMBEDDED_ROUTE: string = \"pages_ext\";\r\nexport const ROUTE: string = \"pages\";","import { ActiveModuleView } from \"./ActiveModuleView\";\r\n\r\n\r\nexport class CategoriesWithModules {\r\n constructor(module: ActiveModuleView) {\r\n this.category = module?.category?.toUpperCase();\r\n this.module_rows = [[module]];\r\n }\r\n category: string;\r\n module_rows: ActiveModuleView[][];\r\n}\r\n","import { JaceModule } from \"./JaceModule\";\r\nimport { JacePermission } from \"./JacePermission\";\r\nimport { JaceRole } from \"./JaceRole\";\r\n\r\nexport class AccountScope {\r\n constructor(public modules: JaceModule[] = [], public roles: JaceRole[] = [], public permissions: JacePermission[] = []) { }\r\n}","export class ActiveModuleView {\r\n constructor(public name: string) { }\r\n idmodule: number;\r\n altname: string;\r\n category: string;\r\n tenant: string;\r\n uiurl: string;\r\n environment: string;\r\n href: string;\r\n}","export class JaceAccount {\r\n idaccount: number;\r\n iduser: number;\r\n idtenant: string;\r\n dsusername: string;\r\n dspassword: string;\r\n dtvalidfrom: Date;\r\n dtvalidto: Date;\r\n sydatains: Date;\r\n sydataupd: Date;\r\n dtlockdown: Date;\r\n syuserupd: string;\r\n syuserins: string;\r\n dsreasonlockdown: string;\r\n cnattempts: number;\r\n\r\n //Solo UI\r\n description: string;\r\n}","import { AccountScope } from \"./AccountScope\";\r\n\r\nexport class JaceIdentity {\r\n Expired: boolean;\r\n IdAccount: number;\r\n IdUser: number;\r\n DsUser: string;\r\n FullName: string;\r\n Idtenant: string;\r\n TenantName: string;\r\n IdActor: number;\r\n IdActorRole: number;\r\n ExpirationTime: Date;\r\n\r\n constructor(scope: AccountScope = null) {\r\n this.Roles = [];\r\n this.Modules = [];\r\n this.Permissions = [];\r\n if (scope) {\r\n // Doppio parametro per gestione del nuovo AUTH.\r\n // TODO: Rimuovere quando non serve\r\n this.Roles = scope.roles.map(x=> x.idrolealt || x.roleidalt);\r\n this.Permissions = scope.permissions.map(x=> x.idpermissionalt || x.permissionidalt);\r\n this.Modules = scope.modules.map(x=> x.idmodule || x.moduleid);\r\n }\r\n }\r\n Roles: string[];\r\n Modules: number[];\r\n Permissions: string[];\r\n}\r\n","export class JaceModule {\r\n constructor(\r\n public idmodule: number,\r\n public dsname?: string,\r\n public dscategory?: string,\r\n public idmodulealt?: string\r\n ) {\r\n this.moduleid = idmodule;\r\n }\r\n\r\n // Nouvo Auth\r\n moduleid?: number;\r\n}\r\n","export class JacePermission {\r\n idpermission: number;\r\n dspermission?: string;\r\n idpermissionalt?: string;\r\n sydatains?: Date;\r\n syuserins?: string;\r\n sydataupd?: Date;\r\n syuserupd?: string;\r\n\r\n // Nuovo Auth\r\n permissionidalt?: string;\r\n}\r\n","export class JaceRole\r\n{\r\n constructor(public idrole: number, public idrolealt: string, public dsrole: string) {\r\n this.roleidalt = idrolealt;\r\n }\r\n\r\n dsnote?: string;\r\n idparent?: number;\r\n sydatains?: Date;\r\n syuserins?: string;\r\n sydataupd?: Date;\r\n syuserupd?: string;\r\n\r\n // Nuovo AUTH\r\n roleidalt?: string;\r\n}","\r\nexport class JaceUser {\r\n iduser: number;\r\n dsnome: string;\r\n dscognome: string;\r\n sydatains: Date;\r\n syuserins: string;\r\n sydataupd: Date;\r\n syuserupd: string;\r\n}\r\n","import { SearchResult } from \"./SearchResult\";\r\n\r\nexport class SearchResultContainer {\r\n constructor(public results: SearchResult[]) { }\r\n}","import { GenericItem } from \"../core/GenericItem\";\r\nimport { KeyValue } from \"../core/KeyValue\";\r\nimport { EsTableColumnsDefinition } from \"@esfaenza/es-table\";\r\n\r\nexport class SearchResult {\r\n\r\n constructor(\r\n public description: string,\r\n public columns: KeyValue[],\r\n public items: GenericItem[]\r\n ) { }\r\n\r\n // Solo UI per la visualizzazione dei risultati\r\n est_cols: EsTableColumnsDefinition[];\r\n}\r\n","export class UpdateAccountRecoverySettingsDto {\r\n constructor(public accountid?: string, public email?: string) { }\r\n}","export class UpdatePasswordDto {\r\n constructor(\r\n public accountid?: string,\r\n public oldpwd?: string,\r\n public newpwd?: string,\r\n public confirmpwd?: string,\r\n public changeall: boolean = true,\r\n public changeforexternals: boolean = true) { }\r\n}","export class UpdateProfilePictureDto {\r\n constructor(public accountid?: string) { }\r\n}","export class UserAccount {\r\n id: string;\r\n tenantid: string;\r\n username: string;\r\n typeid: string;\r\n type: string;\r\n dtvalidfrom: Date;\r\n dtvalidto: Date;\r\n dtlock: Date;\r\n lockreason: string;\r\n userid: string;\r\n userdescription: string;\r\n uuid: string;\r\n firstname: string;\r\n lastname: string;\r\n recoveryemail: string;\r\n recoveryphone: string;\r\n dtottexpiration: Date;\r\n dtlastlogin: Date;\r\n lastloginattempts: number;\r\n islocked: boolean;\r\n isvalid: boolean;\r\n}","// Angular\r\nimport { InjectionToken, Type } from \"@angular/core\";\r\n\r\n// Configurazioni\r\nimport { LocalizationService } from \"@esfaenza/localizations\";\r\n\r\n// Applicazione\r\nimport { ApplicationMenu } from \"./models/core/ApplicationMenu\";\r\n\r\n/** Token che indica i default da assegnare agli Input */\r\nexport const REDIRECT_MAP: InjectionToken<{ [index: string]: { url: string, params: string[] } }> = new InjectionToken<{ [index: string]: { url: string, params: string[] } }>('REDIRECT_MAP');\r\n\r\n/** Token che indica il servizio di localizzazione utilizzato per i menù */\r\nexport const MENU_LOCALIZATION: InjectionToken<Type<LocalizationService>> = new InjectionToken<Type<LocalizationService>>('MENU_LOCALIZATION');\r\n\r\n/** Token che indica i menù dell'applicazione, da quello vegano fino a quello celiaco */\r\nexport const MENU: InjectionToken<ApplicationMenu[]> = new InjectionToken<ApplicationMenu[]>('MENU');\r\n\r\n/** Token che indica se il servizio di autenticazione deve utilizzare un token finto */\r\nexport const USE_FAKE_ACCESS_TOKEN: InjectionToken<boolean> = new InjectionToken<boolean>('USE_FAKE_ACCESS_TOKEN');\r\n\r\n/** Token che indica se il servizio di autenticazione deve funzionare in anonimo lato Frontend. Dev'essere utilizzato insieme al tag \"Auth\" in code behind */\r\nexport const ANONYMOUS_MODE: InjectionToken<boolean> = new InjectionToken<boolean>('USE_FAKE_ACCESS_TOKEN');\r\n\r\n/** Token che indica i componenti di estensione da aggiungere alla navbar. Verranno bootstrappati in maniera dinamica */\r\nexport const NAVBAR_EXTENSIONS: InjectionToken<Type<any>[]> = new InjectionToken<Type<any>[]>('NAVBAR_EXTENSIONS');\r\n\r\n/** Token che identifica se utilizzare la versione vecchia dell'url di auth (${myconfig.AUTH_URL}/login/form?client=${myconfig.CLIENT_NAME}) invece che la nuova (${myconfig.AUTH_URL}/login;client=${myconfig.CLIENT_NAME}) */\r\nexport const LOGIN_URL_LEGACY: InjectionToken<boolean> = new InjectionToken<boolean>('LOGIN_URL_LEGACY');","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAAa,eAAe,CAAA;AACxB,IAAA,WAAA,CACW,KAAa,EACb,IAAa,EACb,UAAmB,EACnB,IAAa,EACb,EAAW,EACX,GAAa,EACb,OAA2B,EAC3B,WAAgB,EAAA;AAPhB,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAQ;AACb,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAS;AACb,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAS;AACnB,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAS;AACb,QAAA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAS;AACX,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAU;AACb,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAoB;AAC3B,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAK;KAAK;AAEhC,IAAA,OAAO,KAAK,CAAC,KAAa,EAAE,IAAY,EAAE,EAAU,EAAE,GAAY,EAAE,OAA0B,EAAE,WAAiB,EAAA;AAC7G,QAAA,OAAO,IAAI,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;KACtF;AAED,IAAA,OAAO,OAAO,CAAC,KAAa,EAAE,IAAY,EAAE,UAAmB,EAAE,EAAW,EAAE,WAAiB,EAAE,GAAa,EAAA;AAC1G,QAAA,OAAO,IAAI,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;KACzF;IAED,OAAO,IAAI,CAAC,KAAa,EAAE,UAAmB,EAAE,EAAW,EAAE,WAAiB,EAAE,GAAa,EAAA;AACzF,QAAA,OAAO,IAAI,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,UAAU,IAAI,CAAC,EAAE,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;KACrI;AAED,IAAA,OAAO,IAAI,CAAC,KAAa,EAAE,IAAa,EAAA;AACpC,QAAA,OAAO,IAAI,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;KAC3C;;AAEM,eAAA,CAAA,aAAa,GAAQ,EAAE,aAAa,EAAE,IAAI,EAAE;;MCzB1C,cAAc,CAAA;AAU1B;;MCZY,UAAU,CAAA;IACnB,WAAY,CAAA,QAAgB,EAAE,SAAiB,EAAE,GAAW,EAAE,OAAe,EAAE,WAAmB,EAAA;QAC9F,IAAI,CAAC,OAAO,GAAG;AACX,YAAA,WAAW,EAAE,SAAS;AACtB,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,oBAAoB,EAAE,GAAG;AACzB,YAAA,gBAAgB,EAAE,OAAO;AACzB,YAAA,iBAAiB,EAAE,WAAW;SACjC,CAAA;KACJ;AAWJ,CAAA;AAAA;;MClBY,QAAQ,CAAA;IACjB,WAAY,CAAA,EAAU,EAAE,WAAmB,EAAA;AACvC,QAAA,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;AACb,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;KAClC;AAGJ,CAAA;AAFuB,UAAA,CAAA;AAAnB,IAAA,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC;CAAY,EAAA,QAAA,CAAA,SAAA,EAAA,IAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AACJ,UAAA,CAAA;AAA1B,IAAA,MAAM,CAAC,EAAE,EAAE,aAAa,CAAC;CAAqB,EAAA,QAAA,CAAA,SAAA,EAAA,aAAA,EAAA,KAAA,CAAA,CAAA;;ACRnD;MACa,WAAW,CAAA;AACpB;;;;AAIG;AACH,IAAA,WAAA,CAAmB,UAAkC,EAAA;AAAlC,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAwB;KAAK;AAC7D;;ACRM,MAAM,cAAc,GAAW,YAAY;AAC3C,MAAM,KAAK,GAAW;;MCEhB,qBAAqB,CAAA;AAC9B,IAAA,WAAA,CAAY,MAAwB,EAAA;;AAChC,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAA,EAAA,GAAA,MAAM,KAAN,IAAA,IAAA,MAAM,KAAN,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,MAAM,CAAE,QAAQ,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,WAAW,EAAE,CAAC;QAChD,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;KACjC;AAGJ;;MCNY,YAAY,CAAA;IACrB,WAAmB,CAAA,UAAwB,EAAE,EAAS,QAAoB,EAAE,EAAS,cAAgC,EAAE,EAAA;AAApG,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAmB;AAAS,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAiB;AAAS,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAuB;KAAK;AAC/H;;MCNY,gBAAgB,CAAA;AACzB,IAAA,WAAA,CAAmB,IAAY,EAAA;AAAZ,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAQ;KAAK;AAQvC;;MCTY,WAAW,CAAA;AAkBvB;;MChBY,YAAY,CAAA;IAYrB,WAAY,CAAA,QAAsB,IAAI,EAAA;AAClC,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AAChB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACtB,QAAA,IAAI,KAAK,EAAE;;;YAGP,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC;YAC7D,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAG,CAAC,CAAC,eAAe,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC;YACrF,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;AAClE,SAAA;KACJ;AAIJ;;MC7BY,UAAU,CAAA;AACpB,IAAA,WAAA,CACU,QAAgB,EAChB,MAAe,EACf,UAAmB,EACnB,WAAoB,EAAA;AAHpB,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAQ;AAChB,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAS;AACf,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAS;AACnB,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAS;AAE3B,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;KAC3B;AAIH;;MCZY,cAAc,CAAA;AAW1B;;MCXY,QAAQ,CAAA;AAElB,IAAA,WAAA,CAAmB,MAAc,EAAS,SAAiB,EAAS,MAAc,EAAA;AAA/D,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;AAAS,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAQ;AAAS,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;AAC/E,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;KAC5B;AAWJ;;MCdY,QAAQ,CAAA;AAQpB;;MCPY,qBAAqB,CAAA;AAC9B,IAAA,WAAA,CAAmB,OAAuB,EAAA;AAAvB,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAgB;KAAK;AAClD;;MCAY,YAAY,CAAA;AAErB,IAAA,WAAA,CACW,WAAmB,EACnB,OAAmB,EACnB,KAAoB,EAAA;AAFpB,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAQ;AACnB,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAY;AACnB,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAe;KAC1B;AAIR;;MCdY,gCAAgC,CAAA;IACzC,WAAmB,CAAA,SAAkB,EAAS,KAAc,EAAA;AAAzC,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAS;AAAS,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAS;KAAK;AACpE;;MCFY,iBAAiB,CAAA;AAC1B,IAAA,WAAA,CACW,SAAkB,EAClB,MAAe,EACf,MAAe,EACf,UAAmB,EACnB,SAAqB,GAAA,IAAI,EACzB,kBAAA,GAA8B,IAAI,EAAA;AALlC,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAS;AAClB,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAS;AACf,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAS;AACf,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAS;AACnB,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAgB;AACzB,QAAA,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAgB;KAAK;AACrD;;MCRY,uBAAuB,CAAA;AAChC,IAAA,WAAA,CAAmB,SAAkB,EAAA;AAAlB,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAS;KAAK;AAC7C;;MCFY,WAAW,CAAA;AAsBvB;;ACtBD;AASA;MACa,YAAY,GAA2E,IAAI,cAAc,CAAyD,cAAc,EAAE;AAE/L;MACa,iBAAiB,GAA8C,IAAI,cAAc,CAA4B,mBAAmB,EAAE;AAE/I;MACa,IAAI,GAAsC,IAAI,cAAc,CAAoB,MAAM,EAAE;AAErG;MACa,qBAAqB,GAA4B,IAAI,cAAc,CAAU,uBAAuB,EAAE;AAEnH;MACa,cAAc,GAA4B,IAAI,cAAc,CAAU,uBAAuB,EAAE;AAE5G;MACa,iBAAiB,GAAgC,IAAI,cAAc,CAAc,mBAAmB,EAAE;AAEnH;MACa,gBAAgB,GAA4B,IAAI,cAAc,CAAU,kBAAkB;;AC5BvG;;AAEG;;;;"}
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Injectable, Optional, Inject } from '@angular/core';
3
- import { JaceIdentity, USE_FAKE_ACCESS_TOKEN, ALLOW_ANONYMOUS, UpdateProfilePictureDto, UpdateAccountRecoverySettingsDto, UpdatePasswordDto } from '@esfaenza/core/domain';
3
+ import { JaceIdentity, USE_FAKE_ACCESS_TOKEN, ANONYMOUS_MODE, UpdateProfilePictureDto, UpdateAccountRecoverySettingsDto, UpdatePasswordDto } from '@esfaenza/core/domain';
4
4
  import * as i1 from 'ngx-cookie-service';
5
5
  import { of, Subject, filter, firstValueFrom } from 'rxjs';
6
6
  import * as i2 from '@angular/common/http';
@@ -31,9 +31,10 @@ import { HTTPService } from '@esfaenza/httpservice';
31
31
 
32
32
  // Angular
33
33
  class TokenService {
34
- constructor(cs, USE_FAKE_ACCESS_TOKEN) {
34
+ constructor(cs, USE_FAKE_ACCESS_TOKEN, ANONYMOUS_MODE) {
35
35
  this.cs = cs;
36
36
  this.USE_FAKE_ACCESS_TOKEN = USE_FAKE_ACCESS_TOKEN;
37
+ this.ANONYMOUS_MODE = ANONYMOUS_MODE;
37
38
  if (this.USE_FAKE_ACCESS_TOKEN)
38
39
  this.accountScope = this.getFakeAccountScope();
39
40
  }
@@ -41,9 +42,13 @@ class TokenService {
41
42
  this.cs.delete("access_token");
42
43
  }
43
44
  getAccessToken() {
45
+ if (this.ANONYMOUS_MODE)
46
+ return "";
44
47
  return this.USE_FAKE_ACCESS_TOKEN ? this.getFakeToken() : this.cs.get("accessToken");
45
48
  }
46
49
  getJaceIdentity() {
50
+ if (this.ANONYMOUS_MODE)
51
+ return null;
47
52
  let token = this.USE_FAKE_ACCESS_TOKEN ? this.getFakeToken() : this.cs.get("accessToken");
48
53
  if (!token)
49
54
  return null;
@@ -1044,7 +1049,7 @@ class TokenService {
1044
1049
  return accountScope;
1045
1050
  }
1046
1051
  }
1047
- TokenService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TokenService, deps: [{ token: i1.CookieService }, { token: USE_FAKE_ACCESS_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
1052
+ TokenService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TokenService, deps: [{ token: i1.CookieService }, { token: USE_FAKE_ACCESS_TOKEN, optional: true }, { token: ANONYMOUS_MODE, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
1048
1053
  TokenService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TokenService, providedIn: "root" });
1049
1054
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TokenService, decorators: [{
1050
1055
  type: Injectable,
@@ -1055,6 +1060,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
1055
1060
  }, {
1056
1061
  type: Inject,
1057
1062
  args: [USE_FAKE_ACCESS_TOKEN]
1063
+ }] }, { type: undefined, decorators: [{
1064
+ type: Optional
1065
+ }, {
1066
+ type: Inject,
1067
+ args: [ANONYMOUS_MODE]
1058
1068
  }] }];
1059
1069
  } });
1060
1070
 
@@ -1168,7 +1178,7 @@ class AppState {
1168
1178
  this.notifyDataChanged("modules.Retrieved", this._modules);
1169
1179
  }
1170
1180
  get Modules() { return this._modules; }
1171
- constructor(router, lc, bts, notifications, MessageDef, intercom, emb, allowAnonymous) {
1181
+ constructor(router, lc, bts, notifications, MessageDef, intercom, emb, anonymousMode) {
1172
1182
  this.router = router;
1173
1183
  this.lc = lc;
1174
1184
  this.bts = bts;
@@ -1176,7 +1186,7 @@ class AppState {
1176
1186
  this.MessageDef = MessageDef;
1177
1187
  this.intercom = intercom;
1178
1188
  this.emb = emb;
1179
- this.allowAnonymous = allowAnonymous;
1189
+ this.anonymousMode = anonymousMode;
1180
1190
  this.redirectingToLogin = false;
1181
1191
  this.handlingError = false;
1182
1192
  this.christmasTime = false;
@@ -1226,7 +1236,7 @@ class AppState {
1226
1236
  // Se non ho un id mi manca il login, quindi via di qua
1227
1237
  var id = this.getJaceIDentity();
1228
1238
  if (!id) {
1229
- if (this.allowAnonymous)
1239
+ if (this.anonymousMode)
1230
1240
  return "";
1231
1241
  this.router.navigate(["login"]);
1232
1242
  return "";
@@ -1360,7 +1370,7 @@ class AppState {
1360
1370
  this.headerHeight = height;
1361
1371
  }
1362
1372
  }
1363
- AppState.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AppState, deps: [{ token: i1$1.Router }, { token: i1$2.LocalizationService }, { token: TokenService }, { token: i4.NotificationsService }, { token: i4.BaseMessageService }, { token: i5.InterComService }, { token: i5.AppEmbeddingExtensions }, { token: ALLOW_ANONYMOUS }], target: i0.ɵɵFactoryTarget.Injectable });
1373
+ AppState.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AppState, deps: [{ token: i1$1.Router }, { token: i1$2.LocalizationService }, { token: TokenService }, { token: i4.NotificationsService }, { token: i4.BaseMessageService }, { token: i5.InterComService }, { token: i5.AppEmbeddingExtensions }, { token: ANONYMOUS_MODE }], target: i0.ɵɵFactoryTarget.Injectable });
1364
1374
  AppState.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AppState, providedIn: "root" });
1365
1375
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AppState, decorators: [{
1366
1376
  type: Injectable,
@@ -1368,7 +1378,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
1368
1378
  }], ctorParameters: function () {
1369
1379
  return [{ type: i1$1.Router }, { type: i1$2.LocalizationService }, { type: TokenService }, { type: i4.NotificationsService }, { type: i4.BaseMessageService }, { type: i5.InterComService }, { type: i5.AppEmbeddingExtensions }, { type: undefined, decorators: [{
1370
1380
  type: Inject,
1371
- args: [ALLOW_ANONYMOUS]
1381
+ args: [ANONYMOUS_MODE]
1372
1382
  }] }];
1373
1383
  } });
1374
1384
 
@@ -1488,10 +1498,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
1488
1498
 
1489
1499
  // Angular
1490
1500
  class SessionRetriever {
1491
- constructor(bts, router, allowAnonymous) {
1501
+ constructor(bts, router, anonymousMode) {
1492
1502
  this.bts = bts;
1493
1503
  this.router = router;
1494
- this.allowAnonymous = allowAnonymous;
1504
+ this.anonymousMode = anonymousMode;
1495
1505
  }
1496
1506
  /** Tenant§Account§User§ModuleId */
1497
1507
  getSessionKey() {
@@ -1501,7 +1511,7 @@ class SessionRetriever {
1501
1511
  // Se non ho un id mi manca il login, quindi via di qua
1502
1512
  var id = this.bts.getJaceIdentity();
1503
1513
  if (!id) {
1504
- if (this.allowAnonymous)
1514
+ if (this.anonymousMode)
1505
1515
  return "";
1506
1516
  console.log("SessionRetriever - no identity, redirecting to login");
1507
1517
  this.router.navigate(["login"]);
@@ -1511,7 +1521,7 @@ class SessionRetriever {
1511
1521
  return this.SessionIdentity;
1512
1522
  }
1513
1523
  }
1514
- SessionRetriever.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SessionRetriever, deps: [{ token: TokenService }, { token: i1$1.Router }, { token: ALLOW_ANONYMOUS }], target: i0.ɵɵFactoryTarget.Injectable });
1524
+ SessionRetriever.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SessionRetriever, deps: [{ token: TokenService }, { token: i1$1.Router }, { token: ANONYMOUS_MODE }], target: i0.ɵɵFactoryTarget.Injectable });
1515
1525
  SessionRetriever.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SessionRetriever, providedIn: "root" });
1516
1526
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SessionRetriever, decorators: [{
1517
1527
  type: Injectable,
@@ -1519,7 +1529,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
1519
1529
  }], ctorParameters: function () {
1520
1530
  return [{ type: TokenService }, { type: i1$1.Router }, { type: undefined, decorators: [{
1521
1531
  type: Inject,
1522
- args: [ALLOW_ANONYMOUS]
1532
+ args: [ANONYMOUS_MODE]
1523
1533
  }] }];
1524
1534
  } });
1525
1535