@esfaenza/access-control 15.2.1 → 15.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,12 +1,3 @@
1
- import { Injectable, Optional, Inject } from "@angular/core";
2
- //Libs
3
- import { LocalizationService } from "@esfaenza/localizations";
4
- //Models
5
- import { ACC_LOCALE } from "./tokens";
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@esfaenza/extensions";
8
- import * as i2 from "./access-control.service";
9
- import * as i3 from "@angular/router";
10
1
  /**
11
2
  * Router Guard base per proteggere l'accesso alle route dell'applicazione. Per utilizzarla è sufficiente ereditarla e, nel costruttore della classe
12
3
  * che la ereditavalorizzare la variabile Routes con le route permesse dal modulo e il permesso per cui si vuole riservare l'accesso. Ad esempio:
@@ -28,7 +19,7 @@ export class AccessControlRouteGuard {
28
19
  /**
29
20
  * @ignore
30
21
  */
31
- constructor(msgService, ac, router, LOCALE) {
22
+ constructor(msgService, ac, router) {
32
23
  this.msgService = msgService;
33
24
  this.ac = ac;
34
25
  this.router = router;
@@ -47,7 +38,6 @@ export class AccessControlRouteGuard {
47
38
  * Lista di Route con la loro espressione di controllo per valutare i permessi
48
39
  */
49
40
  this.Routes = [];
50
- this.lc = new LocalizationService(LOCALE ?? 'it-IT');
51
41
  }
52
42
  /**
53
43
  * @ignore
@@ -94,7 +84,7 @@ export class AccessControlRouteGuard {
94
84
  //Se sono nel sito originale (non ho aperto un newtab) blocco la navigazione
95
85
  //Se ho aperto una nuova tab invece rispedisco al login
96
86
  if (window.history.length > 2 && this.ac.isLoggedIn()) {
97
- this.msgService.simpleError(this.lc.loc("You don't have the required permissions to view this page. The navigation has been blocked"));
87
+ this.msgService.simpleError("Page Unauthorized");
98
88
  return Promise.resolve(false);
99
89
  }
100
90
  else {
@@ -109,14 +99,4 @@ export class AccessControlRouteGuard {
109
99
  onRedirectInProgress() {
110
100
  }
111
101
  }
112
- AccessControlRouteGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AccessControlRouteGuard, deps: [{ token: i1.MessageService }, { token: i2.AccessControlService }, { token: i3.Router }, { token: ACC_LOCALE, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
113
- AccessControlRouteGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AccessControlRouteGuard });
114
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AccessControlRouteGuard, decorators: [{
115
- type: Injectable
116
- }], ctorParameters: function () { return [{ type: i1.MessageService }, { type: i2.AccessControlService }, { type: i3.Router }, { type: undefined, decorators: [{
117
- type: Optional
118
- }, {
119
- type: Inject,
120
- args: [ACC_LOCALE]
121
- }] }]; } });
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWNjZXNzQ29udHJvbFJvdXRlR3VhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2Nlc3MtY29udHJvbC9zcmMvbGliL0FjY2Vzc0NvbnRyb2xSb3V0ZUd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUc3RCxNQUFNO0FBQ04sT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHOUQsUUFBUTtBQUNSLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7O0FBR3RDOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBRUgsTUFBTSxPQUFPLHVCQUF1QjtJQXdCaEM7O09BRUc7SUFDSCxZQUFvQixVQUEyQixFQUFVLEVBQXdCLEVBQVUsTUFBYyxFQUFrQyxNQUFjO1FBQXJJLGVBQVUsR0FBVixVQUFVLENBQWlCO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBc0I7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBckJ6Rzs7OztXQUlHO1FBQ08sZUFBVSxHQUFZLE9BQU8sQ0FBQztRQUV4Qzs7O1dBR0c7UUFDTyx1QkFBa0IsR0FBYSxFQUFFLENBQUM7UUFFNUM7O1dBRUc7UUFDTyxXQUFNLEdBQTBDLEVBQUUsQ0FBQztRQU16RCxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksbUJBQW1CLENBQUMsTUFBTSxJQUFJLE9BQU8sQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRDs7T0FFRztJQUNILGdCQUFnQixDQUFDLEtBQTZCLEVBQUUsQ0FBc0I7UUFDbEUsSUFBSSxHQUFHLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDOUIsNEVBQTRFO1FBQzVFLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFdBQVcsSUFBSSxD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QkE0QnFHLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8vQW5ndWxhclxyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBDYW5BY3RpdmF0ZUNoaWxkLCBSb3V0ZXJTdGF0ZVNuYXBzaG90IH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCwgSW5qZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5cclxuLy9MaWJzXHJcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2xvY2FsaXphdGlvbnNcIjtcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2V4dGVuc2lvbnNcIjtcclxuXHJcbi8vTW9kZWxzXHJcbmltcG9ydCB7IEFDQ19MT0NBTEUgfSBmcm9tIFwiLi90b2tlbnNcIjtcclxuaW1wb3J0IHsgQWNjZXNzQ29udHJvbFNlcnZpY2UgfSBmcm9tICcuL2FjY2Vzcy1jb250cm9sLnNlcnZpY2UnO1xyXG5cclxuLyoqXHJcbiAqIFJvdXRlciBHdWFyZCBiYXNlIHBlciBwcm90ZWdnZXJlIGwnYWNjZXNzbyBhbGxlIHJvdXRlIGRlbGwnYXBwbGljYXppb25lLiBQZXIgdXRpbGl6emFybGEgw6ggc3VmZmljaWVudGUgZXJlZGl0YXJsYSBlLCBuZWwgY29zdHJ1dHRvcmUgZGVsbGEgY2xhc3NlXHJcbiAqIGNoZSBsYSBlcmVkaXRhdmFsb3JpenphcmUgbGEgdmFyaWFiaWxlIFJvdXRlcyBjb24gbGUgcm91dGUgcGVybWVzc2UgZGFsIG1vZHVsbyBlIGlsIHBlcm1lc3NvIHBlciBjdWkgc2kgdnVvbGUgcmlzZXJ2YXJlIGwnYWNjZXNzby4gQWQgZXNlbXBpbzpcclxuICogXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogQEluamVjdGFibGUoKVxyXG4gKiBleHBvcnQgY2xhc3MgSGFzQXV0aEd1YXJkQ29tcG9uZW50IGV4dGVuZHMgQmFzZVJvdXRlckd1YXJkIHtcclxuICogICAgICBjb25zdHJ1Y3RvcihhY2M6IEFjY2Vzc0NvbnRyb2xTZXJ2aWNlLCByb3V0ZXI6IFJvdXRlciwgbXM6IE1lc3NhZ2VTZXJ2aWNlLCB0czogQmFzZVRva2VuU2VydmljZSkge1xyXG4gKiAgICAgICAgICBzdXBlcihtcywgYWNjLCByb3V0ZXIsIHRzKTtcclxuICogICAgICAgICAgdGhpcy5Sb3V0ZXMgPSBbXHJcbiAqICAgICAgICAgICAgICB7IHJvdXRlOiBcInBhZ2Vfcm91dGVcIiwgcGVybWlzc2lvbjogXCJQOnBlcm1fb25lXCIgfSxcclxuICogICAgICAgICAgICAgIHsgcm91dGU6IFwiKlwiLCBwZXJtaXNzaW9uOiBcIlI6cm9sZV9vbmVcIiB9XHJcbiAqICAgICAgICAgIF1cclxuICogICAgICB9XHJcbiAqIH1cclxuICogYGBgXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBBY2Nlc3NDb250cm9sUm91dGVHdWFyZCBpbXBsZW1lbnRzIENhbkFjdGl2YXRlQ2hpbGQge1xyXG4gICAgLyoqXHJcbiAgICAgKiBAaWdub3JlXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgbGM6IExvY2FsaXphdGlvblNlcnZpY2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSb3V0ZSBkaSBsb2dpbiBjaGUgc2VydmUgcGVyIHJlaW5kaXJpenphcmUgYWxsYSBwYWdpbmEgZGkgbG9naW4gaW4gY2FzbyBkaSBmYWxsaW1lbnRvIGRlbCBjb250cm9sbG8gc3VpIFBlcm1lc3NpXHJcbiAgICAgKiBcclxuICAgICAqIEBkZWZhdWx0XHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBMb2dpblJvdXRlIDogc3RyaW5nID0gXCJsb2dpblwiO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUGVybWV0dGUgZGkgc3BlY2lmaWNhcmUgZGVsbGUgUm91dGUgc2VtcHJlIGNvbnNlbnRpdGUsIGFuY2hlIGEgbGl2ZWxsbyBkaSBcIlJhZGljZVwiLiBBZCBlc2VtcGlvIGxhIFJvb3QgXCJ0ZXN0XCIgcGVybWV0dGVyw6BcclxuICAgICAqIGwnYWNjZXNzbyBhIHR1dHRlIGxlIHJvdXRlIGNoZSBhbmNoZSBzb2xvIGluaXppYW5vIHBlciBcInRlc3RcIlxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgQWx3YXlzQWxsb3dlZFJvb3RzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgXHJcbiAgICAvKipcclxuICAgICAqIExpc3RhIGRpIFJvdXRlIGNvbiBsYSBsb3JvIGVzcHJlc3Npb25lIGRpIGNvbnRyb2xsbyBwZXIgdmFsdXRhcmUgaSBwZXJtZXNzaVxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgUm91dGVzOiB7IHJvdXRlOiBhbnk7IHBlcm1pc3Npb246IHN0cmluZzsgfVtdID0gW107XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAaWdub3JlXHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgbXNnU2VydmljZSA6IE1lc3NhZ2VTZXJ2aWNlLCBwcml2YXRlIGFjOiBBY2Nlc3NDb250cm9sU2VydmljZSwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgQE9wdGlvbmFsKCkgQEluamVjdChBQ0NfTE9DQUxFKSBMT0NBTEU6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMubGMgPSBuZXcgTG9jYWxpemF0aW9uU2VydmljZShMT0NBTEUgPz8gJ2l0LUlUJyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAaWdub3JlXHJcbiAgICAgKi9cclxuICAgIGNhbkFjdGl2YXRlQ2hpbGQocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIF86IFJvdXRlclN0YXRlU25hcHNob3QpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgICAgICB2YXIgdXJsID0gcm91dGUudXJsLmpvaW4oJy8nKTtcclxuICAgICAgICAvL1NlIGwnYXBwbGljYXppb25lIG5vbiDDqCBwcm9udGEgZSBub24gc3RvIG5hdmlnYW5kbyBuZWxsZSBwYWdpbmUgY29uc2VudGl0ZVxyXG4gICAgICAgIGlmICghdGhpcy5hYy5Jbml0aWFsaXplZCAmJiAhdGhpcy5BbHdheXNBbGxvd2VkUm9vdHMuZmluZChyID0+IHVybC5pbmRleE9mKHIpICE9IC0xKSlcclxuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShmYWxzZSk7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgIHZhciByb3V0ZU1hdGNoZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuUm91dGVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGxldCByID0gdGhpcy5Sb3V0ZXNbaV07XHJcbiAgICAgICAgICAgIC8vU2UgZmFjY2lvIG1hdGNoIGNvbiBsYSByb3V0ZSBzaWduaWZpY2EgY2hlIGhvIG5hdmlnYXRvIGluIHVuYSBkZWxsZSByb3V0ZSBjb25vc2NpdXRlLCBhbHRyaW1lbnRpIGF2dmVydG8gbWEgbGFzY2lvIGFuZGFyZVxyXG4gICAgICAgICAgICBpZiAodXJsLmluZGV4T2Yoci5yb3V0ZSkgIT0gLTEpIHtcclxuICAgICAgICAgICAgICAgIHJvdXRlTWF0Y2hlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5oYW5kbGVNYXRjaCh1cmwsIHIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vU2Ugbm9uIGZhY2NpbyBuZXNzdW4gbWF0Y2ggbWEgaG8gdW5hIHJvdXRlIHdpbGRjYXJkICgqKSBwcmVuZG8gcXVlbGxhIGUgY29udHJvbGxvIHN1IHF1ZWxsYVxyXG4gICAgICAgIGlmICghcm91dGVNYXRjaGVkKSB7XHJcbiAgICAgICAgICAgIHZhciB3aWxkY2FyZFJvdXRlID0gdGhpcy5Sb3V0ZXMuZmluZChyID0+IHIucm91dGUgPT0gXCIqXCIpO1xyXG4gICAgICAgICAgICBpZiAod2lsZGNhcmRSb3V0ZSlcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmhhbmRsZU1hdGNoKHVybCwgd2lsZGNhcmRSb3V0ZSk7XHJcbiAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiTmF2aWdhaXpvbmUgYXZ2ZW51dGEgc3Ugcm91dGUgc2Nvbm9zY2l1dGE6IFwiICsgdXJsKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0cnVlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBpZ25vcmVcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBoYW5kbGVNYXRjaChmcm9tdXJsOiBzdHJpbmcsIHI6IGFueSkge1xyXG4gICAgICAgIGxldCBpZGVudGl0eSA9IHRoaXMuYWMuSWRlbnRpdHk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmFjLmhhcyhyLnBlcm1pc3Npb24pIHx8XHJcbiAgICAgICAgICAgIChcclxuICAgICAgICAgICAgICAgIC8vIENvbnNpZGVybyBhbmNoZSBsYSBwb3NzaWJpbGl0w6AgZGkgYXZlcmUgbCdhY2Nlc3MgY29udHJvbCBpbml6aWFsaXp6YXRvIG1hIGNoZSBsJ2FjY291bnQgc2NvcGUgbm9uIHNpYSBhbmNvcmEgcHJlc2VudGVcclxuICAgICAgICAgICAgICAgIC8vIGluIHF1ZXN0byBjYXNvIHN1cHBvbmdvIHNpYSB1biBoYXJkIHJlZnJlc2ggZSBtaSBmaWRvIGRlbCBmYXR0byBjaGUgbCd1dGVudGUgcG9zc2EgZW50cmFyY2lcclxuICAgICAgICAgICAgICAgIC8vIFRPRE86IEZpeGFyZSBtZWdsaW8gY29uY2F0ZW5hbmRvIHVuYSBwcm9taXNlIGNoZSB2YSBhIHByZW5kZXJlIGwnYWNjb3VudCBzY29wZSBzZSBzZXJ2ZVxyXG4gICAgICAgICAgICAgICAgdGhpcy5hYy5Jbml0aWFsaXplZCAmJlxyXG4gICAgICAgICAgICAgICAgKCFpZGVudGl0eS5Sb2xlcyB8fCBpZGVudGl0eS5Sb2xlcy5sZW5ndGggPT0gMCkgJiZcclxuICAgICAgICAgICAgICAgICghaWRlbnRpdHkuUGVybWlzc2lvbnMgfHwgaWRlbnRpdHkuUGVybWlzc2lvbnMubGVuZ3RoID09IDApXHJcbiAgICAgICAgICAgICkpXHJcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodHJ1ZSk7XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIC8vU2Ugc29ubyBuZWwgc2l0byBvcmlnaW5hbGUgKG5vbiBobyBhcGVydG8gdW4gbmV3dGFiKSBibG9jY28gbGEgbmF2aWdhemlvbmVcclxuICAgICAgICAgICAgLy9TZSBobyBhcGVydG8gdW5hIG51b3ZhIHRhYiBpbnZlY2UgcmlzcGVkaXNjbyBhbCBsb2dpblxyXG4gICAgICAgICAgICBpZiAod2luZG93Lmhpc3RvcnkubGVuZ3RoID4gMiAmJiB0aGlzLmFjLmlzTG9nZ2VkSW4oKSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tc2dTZXJ2aWNlLnNpbXBsZUVycm9yKHRoaXMubGMubG9jKFwiWW91IGRvbid0IGhhdmUgdGhlIHJlcXVpcmVkIHBlcm1pc3Npb25zIHRvIHZpZXcgdGhpcyBwYWdlLiBUaGUgbmF2aWdhdGlvbiBoYXMgYmVlbiBibG9ja2VkXCIpKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoZmFsc2UpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vblJlZGlyZWN0SW5Qcm9ncmVzcygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3RoaXMuTG9naW5Sb3V0ZSwgeyBmcm9tVXJsOiBmcm9tdXJsIH1dKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGxiYWNrIGNoZSB2aWVuZSBlc2VndWl0byBwcmltYSBjaGUgbGEgR3VhcmQgcmVpbmRpcml6emkgYWwgbG9naW5cclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIG9uUmVkaXJlY3RJblByb2dyZXNzKCkge1xyXG4gICAgfVxyXG59Il19
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWNjZXNzQ29udHJvbFJvdXRlR3VhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2Nlc3MtY29udHJvbC9zcmMvbGliL0FjY2Vzc0NvbnRyb2xSb3V0ZUd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVdBOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsTUFBTSxPQUFPLHVCQUF1QjtJQW9CaEM7O09BRUc7SUFDSCxZQUFvQixVQUEyQixFQUFVLEVBQXdCLEVBQVUsTUFBYztRQUFyRixlQUFVLEdBQVYsVUFBVSxDQUFpQjtRQUFVLE9BQUUsR0FBRixFQUFFLENBQXNCO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQXJCekc7Ozs7V0FJRztRQUNPLGVBQVUsR0FBWSxPQUFPLENBQUM7UUFFeEM7OztXQUdHO1FBQ08sdUJBQWtCLEdBQWEsRUFBRSxDQUFDO1FBRTVDOztXQUVHO1FBQ08sV0FBTSxHQUEwQyxFQUFFLENBQUM7SUFNN0QsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZ0JBQWdCLENBQUMsS0FBNkIsRUFBRSxDQUFzQjtRQUNsRSxJQUFJLEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM5Qiw0RUFBNEU7UUFDNUUsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsV0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDaEYsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWxDLElBQUksWUFBWSxHQUFZLEtBQUssQ0FBQztRQUNsQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDekMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2QiwySEFBMkg7WUFDM0gsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRTtnQkFDNUIsWUFBWSxHQUFHLElBQUksQ0FBQztnQkFDcEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQzthQUNuQztTQUNKO1FBQ0QsNkZBQTZGO1FBQzdGLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDZixJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksR0FBRyxDQUFDLENBQUM7WUFDMUQsSUFBSSxhQUFhO2dCQUNiLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsYUFBYSxDQUFDLENBQUM7O2dCQUU1QyxPQUFPLENBQUMsR0FBRyxDQUFDLDZDQUE2QyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1NBQ3hFO1FBQ0QsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7T0FFRztJQUNLLFdBQVcsQ0FBQyxPQUFlLEVBQUUsQ0FBTTtRQUN2QyxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQztRQUVoQyxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7WUFDekI7WUFDSSx3SEFBd0g7WUFDeEgsOEZBQThGO1lBQzlGLDBGQUEwRjtZQUMxRixJQUFJLENBQUMsRUFBRSxDQUFDLFdBQVc7Z0JBQ25CLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQztnQkFDL0MsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLElBQUksUUFBUSxDQUFDLFdBQVcsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLENBQzlEO1lBQ0QsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQzVCO1lBQ0QsNEVBQTRFO1lBQzVFLHVEQUF1RDtZQUN2RCxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxFQUFFO2dCQUNuRCxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO2dCQUNqRCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDakM7aUJBQ0k7Z0JBQ0QsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDakU7U0FDSjtJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNPLG9CQUFvQjtJQUM5QixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvL0FuZ3VsYXJcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgQ2FuQWN0aXZhdGVDaGlsZCwgUm91dGVyU3RhdGVTbmFwc2hvdCB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuXHJcbi8vTGlic1xyXG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvZXh0ZW5zaW9uc1wiO1xyXG5cclxuLy9Nb2RlbHNcclxuaW1wb3J0IHsgQWNjZXNzQ29udHJvbFNlcnZpY2UgfSBmcm9tICcuL2FjY2Vzcy1jb250cm9sLnNlcnZpY2UnO1xyXG5cclxuLyoqXHJcbiAqIFJvdXRlciBHdWFyZCBiYXNlIHBlciBwcm90ZWdnZXJlIGwnYWNjZXNzbyBhbGxlIHJvdXRlIGRlbGwnYXBwbGljYXppb25lLiBQZXIgdXRpbGl6emFybGEgw6ggc3VmZmljaWVudGUgZXJlZGl0YXJsYSBlLCBuZWwgY29zdHJ1dHRvcmUgZGVsbGEgY2xhc3NlXHJcbiAqIGNoZSBsYSBlcmVkaXRhdmFsb3JpenphcmUgbGEgdmFyaWFiaWxlIFJvdXRlcyBjb24gbGUgcm91dGUgcGVybWVzc2UgZGFsIG1vZHVsbyBlIGlsIHBlcm1lc3NvIHBlciBjdWkgc2kgdnVvbGUgcmlzZXJ2YXJlIGwnYWNjZXNzby4gQWQgZXNlbXBpbzpcclxuICogXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogQEluamVjdGFibGUoKVxyXG4gKiBleHBvcnQgY2xhc3MgSGFzQXV0aEd1YXJkQ29tcG9uZW50IGV4dGVuZHMgQmFzZVJvdXRlckd1YXJkIHtcclxuICogICAgICBjb25zdHJ1Y3RvcihhY2M6IEFjY2Vzc0NvbnRyb2xTZXJ2aWNlLCByb3V0ZXI6IFJvdXRlciwgbXM6IE1lc3NhZ2VTZXJ2aWNlLCB0czogQmFzZVRva2VuU2VydmljZSkge1xyXG4gKiAgICAgICAgICBzdXBlcihtcywgYWNjLCByb3V0ZXIsIHRzKTtcclxuICogICAgICAgICAgdGhpcy5Sb3V0ZXMgPSBbXHJcbiAqICAgICAgICAgICAgICB7IHJvdXRlOiBcInBhZ2Vfcm91dGVcIiwgcGVybWlzc2lvbjogXCJQOnBlcm1fb25lXCIgfSxcclxuICogICAgICAgICAgICAgIHsgcm91dGU6IFwiKlwiLCBwZXJtaXNzaW9uOiBcIlI6cm9sZV9vbmVcIiB9XHJcbiAqICAgICAgICAgIF1cclxuICogICAgICB9XHJcbiAqIH1cclxuICogYGBgXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgQWNjZXNzQ29udHJvbFJvdXRlR3VhcmQgaW1wbGVtZW50cyBDYW5BY3RpdmF0ZUNoaWxkIHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJvdXRlIGRpIGxvZ2luIGNoZSBzZXJ2ZSBwZXIgcmVpbmRpcml6emFyZSBhbGxhIHBhZ2luYSBkaSBsb2dpbiBpbiBjYXNvIGRpIGZhbGxpbWVudG8gZGVsIGNvbnRyb2xsbyBzdWkgUGVybWVzc2lcclxuICAgICAqIFxyXG4gICAgICogQGRlZmF1bHRcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIExvZ2luUm91dGUgOiBzdHJpbmcgPSBcImxvZ2luXCI7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQZXJtZXR0ZSBkaSBzcGVjaWZpY2FyZSBkZWxsZSBSb3V0ZSBzZW1wcmUgY29uc2VudGl0ZSwgYW5jaGUgYSBsaXZlbGxvIGRpIFwiUmFkaWNlXCIuIEFkIGVzZW1waW8gbGEgUm9vdCBcInRlc3RcIiBwZXJtZXR0ZXLDoFxyXG4gICAgICogbCdhY2Nlc3NvIGEgdHV0dGUgbGUgcm91dGUgY2hlIGFuY2hlIHNvbG8gaW5pemlhbm8gcGVyIFwidGVzdFwiXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBBbHdheXNBbGxvd2VkUm9vdHM6IHN0cmluZ1tdID0gW107XHJcbiAgICBcclxuICAgIC8qKlxyXG4gICAgICogTGlzdGEgZGkgUm91dGUgY29uIGxhIGxvcm8gZXNwcmVzc2lvbmUgZGkgY29udHJvbGxvIHBlciB2YWx1dGFyZSBpIHBlcm1lc3NpXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBSb3V0ZXM6IHsgcm91dGU6IGFueTsgcGVybWlzc2lvbjogc3RyaW5nOyB9W10gPSBbXTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBpZ25vcmVcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBtc2dTZXJ2aWNlIDogTWVzc2FnZVNlcnZpY2UsIHByaXZhdGUgYWM6IEFjY2Vzc0NvbnRyb2xTZXJ2aWNlLCBwcml2YXRlIHJvdXRlcjogUm91dGVyKSB7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAaWdub3JlXHJcbiAgICAgKi9cclxuICAgIGNhbkFjdGl2YXRlQ2hpbGQocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIF86IFJvdXRlclN0YXRlU25hcHNob3QpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgICAgICB2YXIgdXJsID0gcm91dGUudXJsLmpvaW4oJy8nKTtcclxuICAgICAgICAvL1NlIGwnYXBwbGljYXppb25lIG5vbiDDqCBwcm9udGEgZSBub24gc3RvIG5hdmlnYW5kbyBuZWxsZSBwYWdpbmUgY29uc2VudGl0ZVxyXG4gICAgICAgIGlmICghdGhpcy5hYy5Jbml0aWFsaXplZCAmJiAhdGhpcy5BbHdheXNBbGxvd2VkUm9vdHMuZmluZChyID0+IHVybC5pbmRleE9mKHIpICE9IC0xKSlcclxuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShmYWxzZSk7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgIHZhciByb3V0ZU1hdGNoZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuUm91dGVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGxldCByID0gdGhpcy5Sb3V0ZXNbaV07XHJcbiAgICAgICAgICAgIC8vU2UgZmFjY2lvIG1hdGNoIGNvbiBsYSByb3V0ZSBzaWduaWZpY2EgY2hlIGhvIG5hdmlnYXRvIGluIHVuYSBkZWxsZSByb3V0ZSBjb25vc2NpdXRlLCBhbHRyaW1lbnRpIGF2dmVydG8gbWEgbGFzY2lvIGFuZGFyZVxyXG4gICAgICAgICAgICBpZiAodXJsLmluZGV4T2Yoci5yb3V0ZSkgIT0gLTEpIHtcclxuICAgICAgICAgICAgICAgIHJvdXRlTWF0Y2hlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5oYW5kbGVNYXRjaCh1cmwsIHIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vU2Ugbm9uIGZhY2NpbyBuZXNzdW4gbWF0Y2ggbWEgaG8gdW5hIHJvdXRlIHdpbGRjYXJkICgqKSBwcmVuZG8gcXVlbGxhIGUgY29udHJvbGxvIHN1IHF1ZWxsYVxyXG4gICAgICAgIGlmICghcm91dGVNYXRjaGVkKSB7XHJcbiAgICAgICAgICAgIHZhciB3aWxkY2FyZFJvdXRlID0gdGhpcy5Sb3V0ZXMuZmluZChyID0+IHIucm91dGUgPT0gXCIqXCIpO1xyXG4gICAgICAgICAgICBpZiAod2lsZGNhcmRSb3V0ZSlcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmhhbmRsZU1hdGNoKHVybCwgd2lsZGNhcmRSb3V0ZSk7XHJcbiAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiTmF2aWdhaXpvbmUgYXZ2ZW51dGEgc3Ugcm91dGUgc2Nvbm9zY2l1dGE6IFwiICsgdXJsKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0cnVlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBpZ25vcmVcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBoYW5kbGVNYXRjaChmcm9tdXJsOiBzdHJpbmcsIHI6IGFueSkge1xyXG4gICAgICAgIGxldCBpZGVudGl0eSA9IHRoaXMuYWMuSWRlbnRpdHk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmFjLmhhcyhyLnBlcm1pc3Npb24pIHx8XHJcbiAgICAgICAgICAgIChcclxuICAgICAgICAgICAgICAgIC8vIENvbnNpZGVybyBhbmNoZSBsYSBwb3NzaWJpbGl0w6AgZGkgYXZlcmUgbCdhY2Nlc3MgY29udHJvbCBpbml6aWFsaXp6YXRvIG1hIGNoZSBsJ2FjY291bnQgc2NvcGUgbm9uIHNpYSBhbmNvcmEgcHJlc2VudGVcclxuICAgICAgICAgICAgICAgIC8vIGluIHF1ZXN0byBjYXNvIHN1cHBvbmdvIHNpYSB1biBoYXJkIHJlZnJlc2ggZSBtaSBmaWRvIGRlbCBmYXR0byBjaGUgbCd1dGVudGUgcG9zc2EgZW50cmFyY2lcclxuICAgICAgICAgICAgICAgIC8vIFRPRE86IEZpeGFyZSBtZWdsaW8gY29uY2F0ZW5hbmRvIHVuYSBwcm9taXNlIGNoZSB2YSBhIHByZW5kZXJlIGwnYWNjb3VudCBzY29wZSBzZSBzZXJ2ZVxyXG4gICAgICAgICAgICAgICAgdGhpcy5hYy5Jbml0aWFsaXplZCAmJlxyXG4gICAgICAgICAgICAgICAgKCFpZGVudGl0eS5Sb2xlcyB8fCBpZGVudGl0eS5Sb2xlcy5sZW5ndGggPT0gMCkgJiZcclxuICAgICAgICAgICAgICAgICghaWRlbnRpdHkuUGVybWlzc2lvbnMgfHwgaWRlbnRpdHkuUGVybWlzc2lvbnMubGVuZ3RoID09IDApXHJcbiAgICAgICAgICAgICkpXHJcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodHJ1ZSk7XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIC8vU2Ugc29ubyBuZWwgc2l0byBvcmlnaW5hbGUgKG5vbiBobyBhcGVydG8gdW4gbmV3dGFiKSBibG9jY28gbGEgbmF2aWdhemlvbmVcclxuICAgICAgICAgICAgLy9TZSBobyBhcGVydG8gdW5hIG51b3ZhIHRhYiBpbnZlY2UgcmlzcGVkaXNjbyBhbCBsb2dpblxyXG4gICAgICAgICAgICBpZiAod2luZG93Lmhpc3RvcnkubGVuZ3RoID4gMiAmJiB0aGlzLmFjLmlzTG9nZ2VkSW4oKSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tc2dTZXJ2aWNlLnNpbXBsZUVycm9yKFwiUGFnZSBVbmF1dGhvcml6ZWRcIik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMub25SZWRpcmVjdEluUHJvZ3Jlc3MoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt0aGlzLkxvZ2luUm91dGUsIHsgZnJvbVVybDogZnJvbXVybCB9XSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWxsYmFjayBjaGUgdmllbmUgZXNlZ3VpdG8gcHJpbWEgY2hlIGxhIEd1YXJkIHJlaW5kaXJpenppIGFsIGxvZ2luXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBvblJlZGlyZWN0SW5Qcm9ncmVzcygpIHtcclxuICAgIH1cclxufSJdfQ==
@@ -1,19 +1,14 @@
1
- import { LocalizationModule } from '@esfaenza/localizations';
2
1
  import { NgModule } from '@angular/core';
3
- import { ACC_LOCALE, ACC_CUSTOMKEY, ACC_DEF_COND, ACC_DEF_COND_OP } from './tokens';
4
- import { AccessControlService } from './access-control.service';
5
- import { AccessControlRouteGuard } from './AccessControlRouteGuard';
2
+ import { ACC_CUSTOMKEY, ACC_DEF_COND, ACC_DEF_COND_OP } from './tokens';
6
3
  import { AccessControlDirective } from './access-control.directive';
7
4
  import { ContextAwareDirective } from './context-aware.directive';
5
+ import { AccessControlPipe } from './access-control.pipe';
8
6
  import * as i0 from "@angular/core";
9
7
  export class AccessControlModule {
10
8
  static forRoot(config) {
11
9
  return {
12
10
  ngModule: AccessControlModule,
13
11
  providers: [
14
- AccessControlService,
15
- AccessControlRouteGuard,
16
- { provide: ACC_LOCALE, useValue: config?.locale || 'it-IT' },
17
12
  { provide: ACC_CUSTOMKEY, useValue: config?.customKey || null },
18
13
  { provide: ACC_DEF_COND, useValue: config?.defaultCondition || null },
19
14
  { provide: ACC_DEF_COND_OP, useValue: config?.defaultConditionLogicalOperator || '||' }
@@ -22,14 +17,13 @@ export class AccessControlModule {
22
17
  }
23
18
  }
24
19
  AccessControlModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AccessControlModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
25
- AccessControlModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: AccessControlModule, declarations: [AccessControlDirective, ContextAwareDirective], imports: [LocalizationModule], exports: [AccessControlDirective, ContextAwareDirective] });
26
- AccessControlModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AccessControlModule, imports: [LocalizationModule] });
20
+ AccessControlModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: AccessControlModule, declarations: [AccessControlDirective, ContextAwareDirective, AccessControlPipe], exports: [AccessControlDirective, ContextAwareDirective, AccessControlPipe] });
21
+ AccessControlModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AccessControlModule });
27
22
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AccessControlModule, decorators: [{
28
23
  type: NgModule,
29
24
  args: [{
30
- imports: [LocalizationModule],
31
- declarations: [AccessControlDirective, ContextAwareDirective],
32
- exports: [AccessControlDirective, ContextAwareDirective]
25
+ declarations: [AccessControlDirective, ContextAwareDirective, AccessControlPipe],
26
+ exports: [AccessControlDirective, ContextAwareDirective, AccessControlPipe]
33
27
  }]
34
28
  }] });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzLWNvbnRyb2wubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNjZXNzLWNvbnRyb2wvc3JjL2xpYi9hY2Nlc3MtY29udHJvbC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFFBQVEsRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFFOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUdwRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFPbEUsTUFBTSxPQUFPLG1CQUFtQjtJQUM5QixNQUFNLENBQUMsT0FBTyxDQUFDLE1BQWtDO1FBQy9DLE9BQU87WUFDTCxRQUFRLEVBQUUsbUJBQW1CO1lBQzdCLFNBQVMsRUFBRTtnQkFDVCxvQkFBb0I7Z0JBQ3BCLHVCQUF1QjtnQkFDdkIsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxJQUFJLE9BQU8sRUFBRTtnQkFDNUQsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsU0FBUyxJQUFJLElBQUksRUFBRTtnQkFDL0QsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsZ0JBQWdCLElBQUksSUFBSSxFQUFFO2dCQUNyRSxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSwrQkFBK0IsSUFBSSxJQUFJLEVBQUU7YUFDeEY7U0FDRixDQUFDO0lBQ0osQ0FBQzs7Z0hBYlUsbUJBQW1CO2lIQUFuQixtQkFBbUIsaUJBSGYsc0JBQXNCLEVBQUUscUJBQXFCLGFBRGxELGtCQUFrQixhQUVuQixzQkFBc0IsRUFBRSxxQkFBcUI7aUhBRTNDLG1CQUFtQixZQUpwQixrQkFBa0I7MkZBSWpCLG1CQUFtQjtrQkFML0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztvQkFDN0IsWUFBWSxFQUFFLENBQUMsc0JBQXNCLEVBQUUscUJBQXFCLENBQUM7b0JBQzdELE9BQU8sRUFBQyxDQUFDLHNCQUFzQixFQUFFLHFCQUFxQixDQUFDO2lCQUN4RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvY2FsaXphdGlvbk1vZHVsZSB9IGZyb20gJ0Blc2ZhZW56YS9sb2NhbGl6YXRpb25zJztcclxuaW1wb3J0IHsgTmdNb2R1bGUsIE1vZHVsZVdpdGhQcm92aWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IEFDQ19MT0NBTEUsIEFDQ19DVVNUT01LRVksIEFDQ19ERUZfQ09ORCwgQUNDX0RFRl9DT05EX09QIH0gZnJvbSAnLi90b2tlbnMnO1xyXG5cclxuaW1wb3J0IHsgQWNjZXNzQ29udHJvbE1vZHVsZUNvbmZpZyB9IGZyb20gJy4vbW9kZWxzL0FjY2Vzc0NvbnRyb2xNb2R1bGVDb25maWcnO1xyXG5pbXBvcnQgeyBBY2Nlc3NDb250cm9sU2VydmljZSB9IGZyb20gJy4vYWNjZXNzLWNvbnRyb2wuc2VydmljZSc7XHJcbmltcG9ydCB7IEFjY2Vzc0NvbnRyb2xSb3V0ZUd1YXJkIH0gZnJvbSAnLi9BY2Nlc3NDb250cm9sUm91dGVHdWFyZCc7XHJcbmltcG9ydCB7IEFjY2Vzc0NvbnRyb2xEaXJlY3RpdmUgfSBmcm9tICcuL2FjY2Vzcy1jb250cm9sLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IENvbnRleHRBd2FyZURpcmVjdGl2ZSB9IGZyb20gJy4vY29udGV4dC1hd2FyZS5kaXJlY3RpdmUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbTG9jYWxpemF0aW9uTW9kdWxlXSxcclxuICBkZWNsYXJhdGlvbnM6IFtBY2Nlc3NDb250cm9sRGlyZWN0aXZlLCBDb250ZXh0QXdhcmVEaXJlY3RpdmVdLFxyXG4gIGV4cG9ydHM6W0FjY2Vzc0NvbnRyb2xEaXJlY3RpdmUsIENvbnRleHRBd2FyZURpcmVjdGl2ZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIEFjY2Vzc0NvbnRyb2xNb2R1bGUge1xyXG4gIHN0YXRpYyBmb3JSb290KGNvbmZpZz86IEFjY2Vzc0NvbnRyb2xNb2R1bGVDb25maWcpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPEFjY2Vzc0NvbnRyb2xNb2R1bGU+IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIG5nTW9kdWxlOiBBY2Nlc3NDb250cm9sTW9kdWxlLFxyXG4gICAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICBBY2Nlc3NDb250cm9sU2VydmljZSxcclxuICAgICAgICBBY2Nlc3NDb250cm9sUm91dGVHdWFyZCxcclxuICAgICAgICB7IHByb3ZpZGU6IEFDQ19MT0NBTEUsIHVzZVZhbHVlOiBjb25maWc/LmxvY2FsZSB8fCAnaXQtSVQnIH0sXHJcbiAgICAgICAgeyBwcm92aWRlOiBBQ0NfQ1VTVE9NS0VZLCB1c2VWYWx1ZTogY29uZmlnPy5jdXN0b21LZXkgfHwgbnVsbCB9LFxyXG4gICAgICAgIHsgcHJvdmlkZTogQUNDX0RFRl9DT05ELCB1c2VWYWx1ZTogY29uZmlnPy5kZWZhdWx0Q29uZGl0aW9uIHx8IG51bGwgfSxcclxuICAgICAgICB7IHByb3ZpZGU6IEFDQ19ERUZfQ09ORF9PUCwgdXNlVmFsdWU6IGNvbmZpZz8uZGVmYXVsdENvbmRpdGlvbkxvZ2ljYWxPcGVyYXRvciB8fCAnfHwnIH1cclxuICAgICAgXVxyXG4gICAgfTtcclxuICB9XHJcbn0iXX0=
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzLWNvbnRyb2wubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNjZXNzLWNvbnRyb2wvc3JjL2xpYi9hY2Nlc3MtY29udHJvbC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFFBQVEsRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFFOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBR3hFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQU0xRCxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBa0M7UUFDL0MsT0FBTztZQUNMLFFBQVEsRUFBRSxtQkFBbUI7WUFDN0IsU0FBUyxFQUFFO2dCQUNULEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFNBQVMsSUFBSSxJQUFJLEVBQUU7Z0JBQy9ELEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixJQUFJLElBQUksRUFBRTtnQkFDckUsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsK0JBQStCLElBQUksSUFBSSxFQUFFO2FBQ3hGO1NBQ0YsQ0FBQztJQUNKLENBQUM7O2dIQVZVLG1CQUFtQjtpSEFBbkIsbUJBQW1CLGlCQUhmLHNCQUFzQixFQUFFLHFCQUFxQixFQUFFLGlCQUFpQixhQUN0RSxzQkFBc0IsRUFBRSxxQkFBcUIsRUFBRSxpQkFBaUI7aUhBRTlELG1CQUFtQjsyRkFBbkIsbUJBQW1CO2tCQUovQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLHNCQUFzQixFQUFFLHFCQUFxQixFQUFFLGlCQUFpQixDQUFDO29CQUNoRixPQUFPLEVBQUMsQ0FBQyxzQkFBc0IsRUFBRSxxQkFBcUIsRUFBRSxpQkFBaUIsQ0FBQztpQkFDM0UiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuaW1wb3J0IHsgTmdNb2R1bGUsIE1vZHVsZVdpdGhQcm92aWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IEFDQ19DVVNUT01LRVksIEFDQ19ERUZfQ09ORCwgQUNDX0RFRl9DT05EX09QIH0gZnJvbSAnLi90b2tlbnMnO1xyXG5cclxuaW1wb3J0IHsgQWNjZXNzQ29udHJvbE1vZHVsZUNvbmZpZyB9IGZyb20gJy4vbW9kZWxzL0FjY2Vzc0NvbnRyb2xNb2R1bGVDb25maWcnO1xyXG5pbXBvcnQgeyBBY2Nlc3NDb250cm9sRGlyZWN0aXZlIH0gZnJvbSAnLi9hY2Nlc3MtY29udHJvbC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDb250ZXh0QXdhcmVEaXJlY3RpdmUgfSBmcm9tICcuL2NvbnRleHQtYXdhcmUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQWNjZXNzQ29udHJvbFBpcGUgfSBmcm9tICcuL2FjY2Vzcy1jb250cm9sLnBpcGUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtBY2Nlc3NDb250cm9sRGlyZWN0aXZlLCBDb250ZXh0QXdhcmVEaXJlY3RpdmUsIEFjY2Vzc0NvbnRyb2xQaXBlXSxcclxuICBleHBvcnRzOltBY2Nlc3NDb250cm9sRGlyZWN0aXZlLCBDb250ZXh0QXdhcmVEaXJlY3RpdmUsIEFjY2Vzc0NvbnRyb2xQaXBlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWNjZXNzQ29udHJvbE1vZHVsZSB7XHJcbiAgc3RhdGljIGZvclJvb3QoY29uZmlnPzogQWNjZXNzQ29udHJvbE1vZHVsZUNvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8QWNjZXNzQ29udHJvbE1vZHVsZT4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbmdNb2R1bGU6IEFjY2Vzc0NvbnRyb2xNb2R1bGUsXHJcbiAgICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHsgcHJvdmlkZTogQUNDX0NVU1RPTUtFWSwgdXNlVmFsdWU6IGNvbmZpZz8uY3VzdG9tS2V5IHx8IG51bGwgfSxcclxuICAgICAgICB7IHByb3ZpZGU6IEFDQ19ERUZfQ09ORCwgdXNlVmFsdWU6IGNvbmZpZz8uZGVmYXVsdENvbmRpdGlvbiB8fCBudWxsIH0sXHJcbiAgICAgICAgeyBwcm92aWRlOiBBQ0NfREVGX0NPTkRfT1AsIHVzZVZhbHVlOiBjb25maWc/LmRlZmF1bHRDb25kaXRpb25Mb2dpY2FsT3BlcmF0b3IgfHwgJ3x8JyB9XHJcbiAgICAgIF1cclxuICAgIH07XHJcbiAgfVxyXG59Il19
@@ -0,0 +1,31 @@
1
+ // Angular
2
+ import { Pipe } from "@angular/core";
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "./access-control.service";
5
+ /**
6
+ * Pipe che restituisce **true** quando il controllo sugli accessi ha successo, false altrimenti
7
+ *
8
+ * Per gli esempi di utilizzo fare riferimento al README.
9
+ */
10
+ export class AccessControlPipe {
11
+ /** @ignore Costruttore */
12
+ constructor(_ac) {
13
+ this._ac = _ac;
14
+ }
15
+ /**
16
+ * Trasforma l'espressione ac in un booleano
17
+ * @param value Espressione ac
18
+ * @param absolute Indica se valutare **ac** in maniera assoluta o meno
19
+ * @returns **true** se la condizione è verificata, **false** altrimenti
20
+ */
21
+ transform(value, absolute) {
22
+ return this._ac.has(value, absolute);
23
+ }
24
+ }
25
+ AccessControlPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AccessControlPipe, deps: [{ token: i1.AccessControlService }], target: i0.ɵɵFactoryTarget.Pipe });
26
+ AccessControlPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: AccessControlPipe, name: "ac" });
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AccessControlPipe, decorators: [{
28
+ type: Pipe,
29
+ args: [{ name: 'ac' }]
30
+ }], ctorParameters: function () { return [{ type: i1.AccessControlService }]; } });
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzLWNvbnRyb2wucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FjY2Vzcy1jb250cm9sL3NyYy9saWIvYWNjZXNzLWNvbnRyb2wucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7OztBQUtwRDs7OztHQUlHO0FBRUgsTUFBTSxPQUFPLGlCQUFpQjtJQUcxQiwwQkFBMEI7SUFDMUIsWUFBb0IsR0FBeUI7UUFBekIsUUFBRyxHQUFILEdBQUcsQ0FBc0I7SUFBSSxDQUFDO0lBRWxEOzs7OztPQUtHO0lBQ0gsU0FBUyxDQUFDLEtBQWEsRUFBRSxRQUFrQjtRQUN2QyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN6QyxDQUFDOzs4R0FkUSxpQkFBaUI7NEdBQWpCLGlCQUFpQjsyRkFBakIsaUJBQWlCO2tCQUQ3QixJQUFJO21CQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXJcclxuaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG4vLyBDb25maWd1cmF6aW9uaVxyXG5pbXBvcnQgeyBBY2Nlc3NDb250cm9sU2VydmljZSB9IGZyb20gXCIuL2FjY2Vzcy1jb250cm9sLnNlcnZpY2VcIjtcclxuXHJcbi8qKlxyXG4gKiBQaXBlIGNoZSByZXN0aXR1aXNjZSAqKnRydWUqKiBxdWFuZG8gaWwgY29udHJvbGxvIHN1Z2xpIGFjY2Vzc2kgaGEgc3VjY2Vzc28sIGZhbHNlIGFsdHJpbWVudGkgXHJcbiAqIFxyXG4gKiBQZXIgZ2xpIGVzZW1waSBkaSB1dGlsaXp6byBmYXJlIHJpZmVyaW1lbnRvIGFsIFJFQURNRS5cclxuICovXHJcbkBQaXBlKHsgbmFtZTogJ2FjJyB9KVxyXG5leHBvcnQgY2xhc3MgQWNjZXNzQ29udHJvbFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuXHJcblxyXG4gICAgLyoqIEBpZ25vcmUgQ29zdHJ1dHRvcmUgKi9cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2FjOiBBY2Nlc3NDb250cm9sU2VydmljZSkgeyB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUcmFzZm9ybWEgbCdlc3ByZXNzaW9uZSBhYyBpbiB1biBib29sZWFub1xyXG4gICAgICogQHBhcmFtIHZhbHVlIEVzcHJlc3Npb25lIGFjXHJcbiAgICAgKiBAcGFyYW0gYWJzb2x1dGUgSW5kaWNhIHNlIHZhbHV0YXJlICoqYWMqKiBpbiBtYW5pZXJhIGFzc29sdXRhIG8gbWVub1xyXG4gICAgICogQHJldHVybnMgKip0cnVlKiogc2UgbGEgY29uZGl6aW9uZSDDqCB2ZXJpZmljYXRhLCAqKmZhbHNlKiogYWx0cmltZW50aVxyXG4gICAgICovXHJcbiAgICB0cmFuc2Zvcm0odmFsdWU6IHN0cmluZywgYWJzb2x1dGU/OiBib29sZWFuKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FjLmhhcyh2YWx1ZSwgYWJzb2x1dGUpO1xyXG4gICAgfVxyXG59Il19
@@ -139,9 +139,10 @@ export class AccessControlService {
139
139
  }
140
140
  }
141
141
  AccessControlService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AccessControlService, deps: [{ token: ACC_DEF_COND, optional: true }, { token: ACC_DEF_COND_OP, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
142
- AccessControlService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AccessControlService });
142
+ AccessControlService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AccessControlService, providedIn: "root" });
143
143
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AccessControlService, decorators: [{
144
- type: Injectable
144
+ type: Injectable,
145
+ args: [{ providedIn: "root" }]
145
146
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
146
147
  type: Optional
147
148
  }, {
@@ -153,4 +154,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
153
154
  type: Inject,
154
155
  args: [ACC_DEF_COND_OP]
155
156
  }] }]; } });
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzLWNvbnRyb2wuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FjY2Vzcy1jb250cm9sL3NyYy9saWIvYWNjZXNzLWNvbnRyb2wuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0sVUFBVSxDQUFDOztBQUV6RDs7R0FFRztBQUVILE1BQU0sT0FBTyxvQkFBb0I7SUF1Qi9CLGNBQWM7SUFDZCxZQUFzRCxZQUFvQixFQUErQyxlQUF1QjtRQUExRixpQkFBWSxHQUFaLFlBQVksQ0FBUTtRQUErQyxvQkFBZSxHQUFmLGVBQWUsQ0FBUTtRQXRCaEo7O1dBRUc7UUFDSSxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUVwQzs7V0FFRztRQUNJLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQUUxQyxjQUFjO1FBQ04sVUFBSyxHQUFPLEVBQUUsQ0FBQztRQUV2QixjQUFjO1FBQ04scUJBQWdCLEdBQXVDLEVBQUUsQ0FBQztJQVFtRixDQUFDO0lBRXRKOzs7O09BSUc7SUFDSSxrQkFBa0IsQ0FBQyxRQUFvRDtRQUM1RSxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztJQUMxQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLDJCQUEyQixDQUFDLGlCQUFxRDtRQUN0RixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ2pELElBQUksaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQ3ZDLE9BQU8sQ0FBQyxLQUFLLENBQUMsMEhBQTBILENBQUMsQ0FBQztnQkFDMUksT0FBTzthQUNSO1NBQ0Y7UUFFRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsaUJBQWlCLENBQUM7UUFDMUMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztJQUNoQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxVQUFVO1FBQ2YsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxlQUFlLENBQUMsVUFBa0IsRUFBRSxXQUFvQixLQUFLO1FBQ25FLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVztZQUNuQixPQUFPLENBQUMsS0FBSyxDQUFDLHVIQUF1SCxDQUFDLENBQUM7UUFFekksSUFBSSxDQUFDLFVBQVU7WUFDYixPQUFPLElBQUksQ0FBQztRQUVkLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xCLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0dBQWtHLENBQUMsQ0FBQTtZQUNoSCxPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsMElBQTBJO1FBQzFJLGtKQUFrSjtRQUNsSixJQUFHLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLFFBQVEsSUFBSSxVQUFVLElBQUksS0FBSyxJQUFJLFVBQVUsSUFBSSxLQUFLO1lBQ3JHLFVBQVUsR0FBRyxJQUFJLFVBQVUsS0FBSyxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUU5RSxrREFBa0Q7UUFDbEQsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQztZQUN4QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFaEMsSUFBSSxzQkFBc0IsR0FBRyxhQUFhLENBQUM7UUFFM0MsSUFBSSxPQUFPLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBRXZELElBQUksQ0FBQyxPQUFPO1lBQ1YsTUFBTSx5Q0FBeUMsR0FBRyxVQUFVLEdBQUcsZ0RBQWdELENBQUM7UUFFbEgsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNsQixJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzFCLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUc7Z0JBQ2xCLFVBQVUsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7aUJBQ25GLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUc7Z0JBQ3ZCLFVBQVUsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxzQkFBc0IsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7O2dCQUU1RixVQUFVLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsa0JBQWtCLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxHQUFHLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDeEgsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLEdBQUcsR0FBWSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDcEMsZUFBZTtRQUNmLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBQzdCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxPQUFPLENBQUMsSUFBWTtRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNsQixPQUFPLENBQUMsSUFBSSxDQUFDLGtHQUFrRyxDQUFDLENBQUE7WUFDaEgsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDMUcsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxhQUFhLENBQUMsVUFBa0I7UUFDdEMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIsT0FBTyxDQUFDLElBQUksQ0FBQyxrR0FBa0csQ0FBQyxDQUFBO1lBQ2hILE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ2xJLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssU0FBUyxDQUFDLEtBQWEsRUFBRSxHQUFXO1FBQzFDLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQztRQUNqRSxJQUFJLENBQUMsS0FBSztZQUNSLE9BQU8sSUFBSSxDQUFDO2FBQ1QsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUM7WUFDeEIsT0FBTyxLQUFLLENBQUM7O1lBRWIsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxHQUFHLENBQUMsSUFBWSxFQUFFLFdBQW9CLEtBQUs7UUFDaEQsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM5QyxDQUFDOztpSEE1SlUsb0JBQW9CLGtCQXdCQyxZQUFZLDZCQUFvRCxlQUFlO3FIQXhCcEcsb0JBQW9COzJGQUFwQixvQkFBb0I7a0JBRGhDLFVBQVU7OzBCQXlCSSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLFlBQVk7OzBCQUFpQyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBBQ0NfREVGX0NPTkQsIEFDQ19ERUZfQ09ORF9PUCB9IGZyb20gXCIuL3Rva2Vuc1wiO1xyXG5cclxuLyoqXHJcbiAqIEVudHJ5cG9pbnQgZGkgdHV0dGUgbGUgb3BlcmF6aW9uaSBlc3Bvc3RlIGRhbGxhIGxpYnJlcmlhIGFjY2Vzcy1jb250cm9sXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBBY2Nlc3NDb250cm9sU2VydmljZSB7XHJcblxyXG4gIC8qKlxyXG4gICAqIEluZGljYSBzZSBsJ0lkZW50aXR5IMOoIHN0YXRhIGluaXppYWxpenphdGFcclxuICAgKi9cclxuICBwdWJsaWMgSW5pdGlhbGl6ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogSW5kaWNhIHNlIHNvbm8gc3RhdGUgZWZmZXR0dWF0ZSBpbml6aWFsaXp6YXppb25pIGRpIEN1c3RvbSBQZXJtaXNzaW9uc1xyXG4gICAqL1xyXG4gIHB1YmxpYyBJbml0aWFsaXplZEN1c3RvbTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKiogQGlnbm9yZSAqL1xyXG4gIHByaXZhdGUgY2FjaGU6IHt9ID0ge307XHJcblxyXG4gIC8qKiBAaWdub3JlICovXHJcbiAgcHJpdmF0ZSB0YWdnZWRJdGVtc0NhY2hlOiB7IGtleTogc3RyaW5nLCBpdGVtczogc3RyaW5nW10gfVtdID0gW107XHJcblxyXG4gIC8qKlxyXG4gICAqIElkZW50aXR5IGFzc29jaWF0YSBhIHF1ZXN0J2lzdGFuemEgZGVsIFNlcnZpemlvIEFjY2VzcyBDb250cm9sLCB1dGlsZSBzZSBzaSB2dW9sZSBhdmVyZSBhY2Nlc3NvIGEgUnVvbGkgZSBQZXJtZXNzaSBkaXJldHRhbWVudGUgZGEgcXVpLCBwZXIgcXVhbHNpdm9nbGlhIG1vdGl2b1xyXG4gICAqL1xyXG4gIHB1YmxpYyBJZGVudGl0eTogeyBSb2xlczogc3RyaW5nW10sIFBlcm1pc3Npb25zOiBzdHJpbmdbXSB9O1xyXG5cclxuICAvKiogQGlnbm9yZSAqL1xyXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBJbmplY3QoQUNDX0RFRl9DT05EKSBwcml2YXRlIEFDQ19ERUZfQ09ORDogc3RyaW5nLCBAT3B0aW9uYWwoKSBASW5qZWN0KEFDQ19ERUZfQ09ORF9PUCkgcHJpdmF0ZSBBQ0NfREVGX0NPTkRfT1A6IHN0cmluZywpIHsgfVxyXG5cclxuICAvKipcclxuICAgKiBJbml6aWFsaXp6YSBsJ0lkZW50aXR5IGRlbCBzZXJ2aXppbyBjb24gaWwgbW9kZWxsbyBzcGVjaWZpY2F0b1xyXG4gICAqIFxyXG4gICAqIEBwYXJhbXMge3sgUm9sZXM6IHN0cmluZ1tdLCBQZXJtaXNzaW9uczogc3RyaW5nW10gfX0gaWRlbnRpdHkgSWRlbnRpdMOgIGFwcGxpY2F0aXZhIGNvbiBydW9saSBlIHBlcm1lc3NpXHJcbiAgICovXHJcbiAgcHVibGljIGluaXRpYWxpemVJZGVudGl0eShpZGVudGl0eTogeyBSb2xlczogc3RyaW5nW10sIFBlcm1pc3Npb25zOiBzdHJpbmdbXSB9KSB7XHJcbiAgICB0aGlzLklkZW50aXR5ID0gaWRlbnRpdHk7XHJcbiAgICB0aGlzLkluaXRpYWxpemVkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXppYWxpenphIGkgcGVybWVzc2kgQ3VzdG9tIGRlbCBzZXJ2aXppbyBjb24gaWwgbW9kZWxsbyBzcGVjaWZpY2F0b1xyXG4gICAqIFxyXG4gICAqIEBwYXJhbSB7eyBrZXk6IHN0cmluZywgaXRlbXM6IHN0cmluZ1tdIH1bXX0gY3VzdG9tUGVybWlzc2lvbnMgUGVybWVzc2kgQ3VzdG9tXHJcbiAgICovXHJcbiAgcHVibGljIGluaXRpYWxpemVDdXN0b21QZXJtaXNzaW9ucyhjdXN0b21QZXJtaXNzaW9uczogeyBrZXk6IHN0cmluZywgaXRlbXM6IHN0cmluZ1tdIH1bXSkge1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjdXN0b21QZXJtaXNzaW9ucy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBpZiAoY3VzdG9tUGVybWlzc2lvbnNbaV0ua2V5Lmxlbmd0aCA+IDEpIHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKFwiW0Blc2ZhZW56YS9hY2Nlc3MtY29udHJvbF0gQ3VzdG9tIHBlcm1pc3Npb24gaW5pdGlhbGl6ZWQgd2l0aCBrZXlzIGxvbmdlciB0aGFuIGEgc2luZ2xlIGNoYXJhY3RlcnMuIElnbm9yaW5nIEVWRVJZVEhJTkcuXCIpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMudGFnZ2VkSXRlbXNDYWNoZSA9IGN1c3RvbVBlcm1pc3Npb25zO1xyXG4gICAgdGhpcy5Jbml0aWFsaXplZEN1c3RvbSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbmRpY2Egc2UgbmVsbGEgc2Vzc2lvbmUgYXR0dWFsZSBlc2lzdGUgdW4gdXRlbnRlIGxvZ2dhdG8uIEZhIHVuIHNlbXBsaWNlIGNvbnRyb2xsbyBkaSBwcmVzZW56YSBzdWxsJ0lkZW50aXR5XHJcbiAgICovXHJcbiAgcHVibGljIGlzTG9nZ2VkSW4oKSB7XHJcbiAgICByZXR1cm4gISF0aGlzLklkZW50aXR5O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRXhwcmVzc2lvbiDDqCBzY3JpdHRhIHRpcG8gLS0+IFI6Um9sZTEgJiYgUDpQZXJtaXNzaW9uMSB8fCAoUjpSb2xlMiAmJiBQOlBlcm1pc3Npb24xKVxyXG4gICAqIFF1aW5kaSBwaXV0dG9zdG8gY2hlIGltcGxlbWVudGFyc2kgdW4gcGFyc2VyIGRlbGxhIG1hZG9ubmEgaW4gc3RpbGUgQWxlc3NhbmRybyBwcmVuZG8gbGEgc3RyYWRhIHN0cm9uemEgZSB2ZWxvY2UgY29uIGwnZXZhbCA6UFxyXG4gICAqIFxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBwcml2YXRlIGhhc0FDRXhwcmVzc2lvbihleHByZXNzaW9uOiBzdHJpbmcsIGFic29sdXRlOiBib29sZWFuID0gZmFsc2UpOiBib29sZWFuIHtcclxuICAgIGlmICghdGhpcy5Jbml0aWFsaXplZClcclxuICAgICAgY29uc29sZS5lcnJvcihcIkFjY2VzcyBDb250cm9sIFN5c3RlbSBoYXMgbm90IGJlZW4gaW5pdGlhbGl6ZWQuIENhbGwgdGhpcy5hY2Nlc3NDb250cm9sLmluaXRpYWxpemUoLi4uLCAuLi4pIGJlZm9yZSB1c2luZyB0aGUgc2VydmljZVwiKTtcclxuXHJcbiAgICBpZiAoIWV4cHJlc3Npb24pXHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG5cclxuICAgIGlmICghdGhpcy5JZGVudGl0eSkge1xyXG4gICAgICBjb25zb2xlLndhcm4oXCJFbGVtZW50byBJZGVudGl0eSBub24gc3BlY2lmaWNhdG8gaW4gQWNjZXNzIENvbnRyb2wuIEdsaSBhY2Nlc3NpIHNhcmFubm8gdHV0dGkgbGliZXJpIGRpIGRlZmF1bHRcIilcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gUGVyIGxlIGVzcHJlc3Npb25pIGRpIHZpc2liaWxpdMOgIFwiZGlyZXR0ZVwiIHN1bGxhIFggaWdub3JvIGxlIGNvbmRpemlvbmkgZGkgZGVmYXVsdCBwZXJjaMOpIHNvbm8gY29uZGl6aW9uaSBmaXNpY2hlIHBpdXR0b3N0byBjaGUgbG9naWNoZVxyXG4gICAgLy8gU2lnbmlmaWNhIGNoZSBzaWFtbyBvIGRlbnRybyBvIGZ1b3JpIGRhIHVuIGlmcmFtZSBlIHF1ZXN0byBvdnZpYW1lbnRlIHZhIGEgc29wcmFzc2VkZXJlIGV2ZW50dWFsaSBjb25kaXppb25pIGxvZ2ljaGUgZGVsIHRpcG8gXCJzb25vIEphY2UgQWRtaW5cIlxyXG4gICAgaWYodGhpcy5BQ0NfREVGX0NPTkQgJiYgdGhpcy5BQ0NfREVGX0NPTkRfT1AgJiYgIWFic29sdXRlICYmIGV4cHJlc3Npb24gIT0gJ1g6MCcgJiYgZXhwcmVzc2lvbiAhPSAnWDoxJylcclxuICAgICAgZXhwcmVzc2lvbiA9IGAoJHtleHByZXNzaW9ufSkgJHt0aGlzLkFDQ19ERUZfQ09ORF9PUH0gJHt0aGlzLkFDQ19ERUZfQ09ORH1gO1xyXG4gICAgICBcclxuICAgIC8vIEVzcHJlc3Npb25lIGdpw6AgdmFsdXRhdGEsIG5vbiBzZXJ2ZSByaXZhbHV0YXJsYVxyXG4gICAgaWYgKHRoaXMuY2FjaGVbZXhwcmVzc2lvbl0pXHJcbiAgICAgIHJldHVybiB0aGlzLmNhY2hlW2V4cHJlc3Npb25dO1xyXG5cclxuICAgIHZhciBSb2xlc1Blcm1pc3Npb25zUmVnZXhwID0gLy46W158JigpXSsvZztcclxuXHJcbiAgICB2YXIgbWF0Y2hlcyA9IGV4cHJlc3Npb24ubWF0Y2goUm9sZXNQZXJtaXNzaW9uc1JlZ2V4cCk7XHJcbiAgICBcclxuICAgIGlmICghbWF0Y2hlcylcclxuICAgICAgdGhyb3cgXCJFc3ByZXNzaW9uZSBBY2Nlc3MgQ29udHJvbCBub24gdmFsaWRhOiBcIiArIGV4cHJlc3Npb24gKyBcIi4gQXNzaWN1cmFyc2kgY2hlIHNpYSBzY3JpdHRhIGluIG1vZG8gY29ycmV0dG9cIjtcclxuXHJcbiAgICBtYXRjaGVzLmZvckVhY2godCA9PiB7XHJcbiAgICAgIHZhciBzcGxpdHMgPSB0LnNwbGl0KCc6Jyk7XHJcbiAgICAgIGlmIChzcGxpdHNbMF0gPT0gXCJSXCIpXHJcbiAgICAgICAgZXhwcmVzc2lvbiA9IGV4cHJlc3Npb24ucmVwbGFjZSh0LnRyaW0oKSwgXCJ0aGlzLmhhc1JvbGUoJ1wiICsgc3BsaXRzWzFdLnRyaW0oKSArIFwiJylcIik7XHJcbiAgICAgIGVsc2UgaWYgKHNwbGl0c1swXSA9PSBcIlBcIilcclxuICAgICAgICBleHByZXNzaW9uID0gZXhwcmVzc2lvbi5yZXBsYWNlKHQudHJpbSgpLCBcInRoaXMuaGFzUGVybWlzc2lvbignXCIgKyBzcGxpdHNbMV0udHJpbSgpICsgXCInKVwiKTtcclxuICAgICAgZWxzZVxyXG4gICAgICAgIGV4cHJlc3Npb24gPSBleHByZXNzaW9uLnJlcGxhY2UodC50cmltKCksIFwidGhpcy5oYXNDdXN0b20oJ1wiICsgc3BsaXRzWzFdLnRyaW0oKSArIFwiJywgJ1wiICsgc3BsaXRzWzBdLnRyaW0oKSArIFwiJylcIik7XHJcbiAgICB9KTtcclxuXHJcbiAgICB2YXIgcmV0ID0gPGJvb2xlYW4+ZXZhbChleHByZXNzaW9uKTtcclxuICAgIC8vIENhY2hlIHZhbG9yZVxyXG4gICAgdGhpcy5jYWNoZVtleHByZXNzaW9uXSA9IHJldDtcclxuICAgIHJldHVybiByZXQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVdGlsaXp6YXRvIGRhIGhhc0FDRXhwcmVzc2lvbiBkZW50cm8gZXZhbFxyXG4gICAqIFxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBwcml2YXRlIGhhc1JvbGUocm9sZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXRoaXMuSWRlbnRpdHkpIHtcclxuICAgICAgY29uc29sZS53YXJuKFwiRWxlbWVudG8gSWRlbnRpdHkgbm9uIHNwZWNpZmljYXRvIGluIEFjY2VzcyBDb250cm9sLiBHbGkgYWNjZXNzaSBzYXJhbm5vIHR1dHRpIGxpYmVyaSBkaSBkZWZhdWx0XCIpXHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuSWRlbnRpdHkuUm9sZXMgJiYgdGhpcy5JZGVudGl0eS5Sb2xlcy5sZW5ndGggPiAwICYmIHRoaXMuSWRlbnRpdHkuUm9sZXMuaW5kZXhPZihyb2xlKSAhPSAtMTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFV0aWxpenphdG8gZGEgaGFzQUNFeHByZXNzaW9uIGRlbnRybyBldmFsXHJcbiAgICogXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgaGFzUGVybWlzc2lvbihwZXJtaXNzaW9uOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGlmICghdGhpcy5JZGVudGl0eSkge1xyXG4gICAgICBjb25zb2xlLndhcm4oXCJFbGVtZW50byBJZGVudGl0eSBub24gc3BlY2lmaWNhdG8gaW4gQWNjZXNzIENvbnRyb2wuIEdsaSBhY2Nlc3NpIHNhcmFubm8gdHV0dGkgbGliZXJpIGRpIGRlZmF1bHRcIilcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5JZGVudGl0eS5QZXJtaXNzaW9ucyAmJiB0aGlzLklkZW50aXR5LlBlcm1pc3Npb25zLmxlbmd0aCA+IDAgJiYgdGhpcy5JZGVudGl0eS5QZXJtaXNzaW9ucy5pbmRleE9mKHBlcm1pc3Npb24pICE9IC0xO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXRpbGl6emF0byBkYSBoYXNBQ0V4cHJlc3Npb24gZGVudHJvIGV2YWxcclxuICAgKiBcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBoYXNDdXN0b20odmFsdWU6IHN0cmluZywgdGFnOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIHZhciBpdGVtcyA9IHRoaXMudGFnZ2VkSXRlbXNDYWNoZS5maW5kKHQgPT4gdC5rZXkgPT0gdGFnKT8uaXRlbXM7XHJcbiAgICBpZiAoIWl0ZW1zKVxyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIGVsc2UgaWYgKGl0ZW1zLmxlbmd0aCA9PSAwKVxyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICBlbHNlXHJcbiAgICAgIHJldHVybiAhIWl0ZW1zLmZpbmQodCA9PiB0ID09IHZhbHVlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVudHJ5IHBvaW50IGNoZSBjb250cm9sbGEgdW4nZXNwcmVzc2lvbmUgaWRlbnRpZmljYW50ZSB1biBwZXJtZXNzbywgYWQgZXNlbXBpbyBcIlA6dmlzdWFsaXp6YXppb25lXCIgY29udHJvbGxhIGNoZSBsJ3V0ZW50ZSBjb2xsZWdhdG8gYWJiaWEgdW4gcGVybWVzc28gY2hlIHNpIGNoaWFtYSBcInZpc3VhbGl6emF6aW9uZVwiXHJcbiAgICovXHJcbiAgcHVibGljIGhhcyhleHByOiBzdHJpbmcsIGFic29sdXRlOiBib29sZWFuID0gZmFsc2UpIHtcclxuICAgIHJldHVybiB0aGlzLmhhc0FDRXhwcmVzc2lvbihleHByLCBhYnNvbHV0ZSk7XHJcbiAgfVxyXG59Il19
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzLWNvbnRyb2wuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FjY2Vzcy1jb250cm9sL3NyYy9saWIvYWNjZXNzLWNvbnRyb2wuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0sVUFBVSxDQUFDOztBQUV6RDs7R0FFRztBQUVILE1BQU0sT0FBTyxvQkFBb0I7SUF1Qi9CLGNBQWM7SUFDZCxZQUFzRCxZQUFvQixFQUErQyxlQUF1QjtRQUExRixpQkFBWSxHQUFaLFlBQVksQ0FBUTtRQUErQyxvQkFBZSxHQUFmLGVBQWUsQ0FBUTtRQXRCaEo7O1dBRUc7UUFDSSxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUVwQzs7V0FFRztRQUNJLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQUUxQyxjQUFjO1FBQ04sVUFBSyxHQUFPLEVBQUUsQ0FBQztRQUV2QixjQUFjO1FBQ04scUJBQWdCLEdBQXVDLEVBQUUsQ0FBQztJQVFtRixDQUFDO0lBRXRKOzs7O09BSUc7SUFDSSxrQkFBa0IsQ0FBQyxRQUFvRDtRQUM1RSxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztJQUMxQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLDJCQUEyQixDQUFDLGlCQUFxRDtRQUN0RixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ2pELElBQUksaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQ3ZD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RUQ7O09BRUc7SUFDSSxHQUFHLENBQUMsSUFBWSxFQUFFLFdBQW9CLEtBQUs7UUFDaEQsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM5QyxDQUFDOztpSEE1SlUsb0JBQW9CLGtCQXdCQyxZQUFZLDZCQUFvRCxlQUFlO3FIQXhCcEcsb0JBQW9CLGNBRFIsTUFBTTsyRkFDbEIsb0JBQW9CO2tCQURoQyxVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQzs7MEJBeUJqQixRQUFROzswQkFBSSxNQUFNOzJCQUFDLFlBQVk7OzBCQUFpQyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBBQ0NfREVGX0NPTkQsIEFDQ19ERUZfQ09ORF9PUCB9IGZyb20gXCIuL3Rva2Vuc1wiO1xyXG5cclxuLyoqXHJcbiAqIEVudHJ5cG9pbnQgZGkgdHV0dGUgbGUgb3BlcmF6aW9uaSBlc3Bvc3RlIGRhbGxhIGxpYnJlcmlhIGFjY2Vzcy1jb250cm9sXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogXCJyb290XCJ9KVxyXG5leHBvcnQgY2xhc3MgQWNjZXNzQ29udHJvbFNlcnZpY2Uge1xyXG5cclxuICAvKipcclxuICAgKiBJbmRpY2Egc2UgbCdJZGVudGl0eSDDqCBzdGF0YSBpbml6aWFsaXp6YXRhXHJcbiAgICovXHJcbiAgcHVibGljIEluaXRpYWxpemVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIEluZGljYSBzZSBzb25vIHN0YXRlIGVmZmV0dHVhdGUgaW5pemlhbGl6emF6aW9uaSBkaSBDdXN0b20gUGVybWlzc2lvbnNcclxuICAgKi9cclxuICBwdWJsaWMgSW5pdGlhbGl6ZWRDdXN0b206IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqIEBpZ25vcmUgKi9cclxuICBwcml2YXRlIGNhY2hlOiB7fSA9IHt9O1xyXG5cclxuICAvKiogQGlnbm9yZSAqL1xyXG4gIHByaXZhdGUgdGFnZ2VkSXRlbXNDYWNoZTogeyBrZXk6IHN0cmluZywgaXRlbXM6IHN0cmluZ1tdIH1bXSA9IFtdO1xyXG5cclxuICAvKipcclxuICAgKiBJZGVudGl0eSBhc3NvY2lhdGEgYSBxdWVzdCdpc3RhbnphIGRlbCBTZXJ2aXppbyBBY2Nlc3MgQ29udHJvbCwgdXRpbGUgc2Ugc2kgdnVvbGUgYXZlcmUgYWNjZXNzbyBhIFJ1b2xpIGUgUGVybWVzc2kgZGlyZXR0YW1lbnRlIGRhIHF1aSwgcGVyIHF1YWxzaXZvZ2xpYSBtb3Rpdm9cclxuICAgKi9cclxuICBwdWJsaWMgSWRlbnRpdHk6IHsgUm9sZXM6IHN0cmluZ1tdLCBQZXJtaXNzaW9uczogc3RyaW5nW10gfTtcclxuXHJcbiAgLyoqIEBpZ25vcmUgKi9cclxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBASW5qZWN0KEFDQ19ERUZfQ09ORCkgcHJpdmF0ZSBBQ0NfREVGX0NPTkQ6IHN0cmluZywgQE9wdGlvbmFsKCkgQEluamVjdChBQ0NfREVGX0NPTkRfT1ApIHByaXZhdGUgQUNDX0RFRl9DT05EX09QOiBzdHJpbmcsKSB7IH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5pemlhbGl6emEgbCdJZGVudGl0eSBkZWwgc2Vydml6aW8gY29uIGlsIG1vZGVsbG8gc3BlY2lmaWNhdG9cclxuICAgKiBcclxuICAgKiBAcGFyYW1zIHt7IFJvbGVzOiBzdHJpbmdbXSwgUGVybWlzc2lvbnM6IHN0cmluZ1tdIH19IGlkZW50aXR5IElkZW50aXTDoCBhcHBsaWNhdGl2YSBjb24gcnVvbGkgZSBwZXJtZXNzaVxyXG4gICAqL1xyXG4gIHB1YmxpYyBpbml0aWFsaXplSWRlbnRpdHkoaWRlbnRpdHk6IHsgUm9sZXM6IHN0cmluZ1tdLCBQZXJtaXNzaW9uczogc3RyaW5nW10gfSkge1xyXG4gICAgdGhpcy5JZGVudGl0eSA9IGlkZW50aXR5O1xyXG4gICAgdGhpcy5Jbml0aWFsaXplZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbml6aWFsaXp6YSBpIHBlcm1lc3NpIEN1c3RvbSBkZWwgc2Vydml6aW8gY29uIGlsIG1vZGVsbG8gc3BlY2lmaWNhdG9cclxuICAgKiBcclxuICAgKiBAcGFyYW0ge3sga2V5OiBzdHJpbmcsIGl0ZW1zOiBzdHJpbmdbXSB9W119IGN1c3RvbVBlcm1pc3Npb25zIFBlcm1lc3NpIEN1c3RvbVxyXG4gICAqL1xyXG4gIHB1YmxpYyBpbml0aWFsaXplQ3VzdG9tUGVybWlzc2lvbnMoY3VzdG9tUGVybWlzc2lvbnM6IHsga2V5OiBzdHJpbmcsIGl0ZW1zOiBzdHJpbmdbXSB9W10pIHtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY3VzdG9tUGVybWlzc2lvbnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWYgKGN1c3RvbVBlcm1pc3Npb25zW2ldLmtleS5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcihcIltAZXNmYWVuemEvYWNjZXNzLWNvbnRyb2xdIEN1c3RvbSBwZXJtaXNzaW9uIGluaXRpYWxpemVkIHdpdGgga2V5cyBsb25nZXIgdGhhbiBhIHNpbmdsZSBjaGFyYWN0ZXJzLiBJZ25vcmluZyBFVkVSWVRISU5HLlwiKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnRhZ2dlZEl0ZW1zQ2FjaGUgPSBjdXN0b21QZXJtaXNzaW9ucztcclxuICAgIHRoaXMuSW5pdGlhbGl6ZWRDdXN0b20gPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5kaWNhIHNlIG5lbGxhIHNlc3Npb25lIGF0dHVhbGUgZXNpc3RlIHVuIHV0ZW50ZSBsb2dnYXRvLiBGYSB1biBzZW1wbGljZSBjb250cm9sbG8gZGkgcHJlc2VuemEgc3VsbCdJZGVudGl0eVxyXG4gICAqL1xyXG4gIHB1YmxpYyBpc0xvZ2dlZEluKCkge1xyXG4gICAgcmV0dXJuICEhdGhpcy5JZGVudGl0eTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEV4cHJlc3Npb24gw6ggc2NyaXR0YSB0aXBvIC0tPiBSOlJvbGUxICYmIFA6UGVybWlzc2lvbjEgfHwgKFI6Um9sZTIgJiYgUDpQZXJtaXNzaW9uMSlcclxuICAgKiBRdWluZGkgcGl1dHRvc3RvIGNoZSBpbXBsZW1lbnRhcnNpIHVuIHBhcnNlciBkZWxsYSBtYWRvbm5hIGluIHN0aWxlIEFsZXNzYW5kcm8gcHJlbmRvIGxhIHN0cmFkYSBzdHJvbnphIGUgdmVsb2NlIGNvbiBsJ2V2YWwgOlBcclxuICAgKiBcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBoYXNBQ0V4cHJlc3Npb24oZXhwcmVzc2lvbjogc3RyaW5nLCBhYnNvbHV0ZTogYm9vbGVhbiA9IGZhbHNlKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXRoaXMuSW5pdGlhbGl6ZWQpXHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJBY2Nlc3MgQ29udHJvbCBTeXN0ZW0gaGFzIG5vdCBiZWVuIGluaXRpYWxpemVkLiBDYWxsIHRoaXMuYWNjZXNzQ29udHJvbC5pbml0aWFsaXplKC4uLiwgLi4uKSBiZWZvcmUgdXNpbmcgdGhlIHNlcnZpY2VcIik7XHJcblxyXG4gICAgaWYgKCFleHByZXNzaW9uKVxyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuXHJcbiAgICBpZiAoIXRoaXMuSWRlbnRpdHkpIHtcclxuICAgICAgY29uc29sZS53YXJuKFwiRWxlbWVudG8gSWRlbnRpdHkgbm9uIHNwZWNpZmljYXRvIGluIEFjY2VzcyBDb250cm9sLiBHbGkgYWNjZXNzaSBzYXJhbm5vIHR1dHRpIGxpYmVyaSBkaSBkZWZhdWx0XCIpXHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFBlciBsZSBlc3ByZXNzaW9uaSBkaSB2aXNpYmlsaXTDoCBcImRpcmV0dGVcIiBzdWxsYSBYIGlnbm9ybyBsZSBjb25kaXppb25pIGRpIGRlZmF1bHQgcGVyY2jDqSBzb25vIGNvbmRpemlvbmkgZmlzaWNoZSBwaXV0dG9zdG8gY2hlIGxvZ2ljaGVcclxuICAgIC8vIFNpZ25pZmljYSBjaGUgc2lhbW8gbyBkZW50cm8gbyBmdW9yaSBkYSB1biBpZnJhbWUgZSBxdWVzdG8gb3Z2aWFtZW50ZSB2YSBhIHNvcHJhc3NlZGVyZSBldmVudHVhbGkgY29uZGl6aW9uaSBsb2dpY2hlIGRlbCB0aXBvIFwic29ubyBKYWNlIEFkbWluXCJcclxuICAgIGlmKHRoaXMuQUNDX0RFRl9DT05EICYmIHRoaXMuQUNDX0RFRl9DT05EX09QICYmICFhYnNvbHV0ZSAmJiBleHByZXNzaW9uICE9ICdYOjAnICYmIGV4cHJlc3Npb24gIT0gJ1g6MScpXHJcbiAgICAgIGV4cHJlc3Npb24gPSBgKCR7ZXhwcmVzc2lvbn0pICR7dGhpcy5BQ0NfREVGX0NPTkRfT1B9ICR7dGhpcy5BQ0NfREVGX0NPTkR9YDtcclxuICAgICAgXHJcbiAgICAvLyBFc3ByZXNzaW9uZSBnacOgIHZhbHV0YXRhLCBub24gc2VydmUgcml2YWx1dGFybGFcclxuICAgIGlmICh0aGlzLmNhY2hlW2V4cHJlc3Npb25dKVxyXG4gICAgICByZXR1cm4gdGhpcy5jYWNoZVtleHByZXNzaW9uXTtcclxuXHJcbiAgICB2YXIgUm9sZXNQZXJtaXNzaW9uc1JlZ2V4cCA9IC8uOltefCYoKV0rL2c7XHJcblxyXG4gICAgdmFyIG1hdGNoZXMgPSBleHByZXNzaW9uLm1hdGNoKFJvbGVzUGVybWlzc2lvbnNSZWdleHApO1xyXG4gICAgXHJcbiAgICBpZiAoIW1hdGNoZXMpXHJcbiAgICAgIHRocm93IFwiRXNwcmVzc2lvbmUgQWNjZXNzIENvbnRyb2wgbm9uIHZhbGlkYTogXCIgKyBleHByZXNzaW9uICsgXCIuIEFzc2ljdXJhcnNpIGNoZSBzaWEgc2NyaXR0YSBpbiBtb2RvIGNvcnJldHRvXCI7XHJcblxyXG4gICAgbWF0Y2hlcy5mb3JFYWNoKHQgPT4ge1xyXG4gICAgICB2YXIgc3BsaXRzID0gdC5zcGxpdCgnOicpO1xyXG4gICAgICBpZiAoc3BsaXRzWzBdID09IFwiUlwiKVxyXG4gICAgICAgIGV4cHJlc3Npb24gPSBleHByZXNzaW9uLnJlcGxhY2UodC50cmltKCksIFwidGhpcy5oYXNSb2xlKCdcIiArIHNwbGl0c1sxXS50cmltKCkgKyBcIicpXCIpO1xyXG4gICAgICBlbHNlIGlmIChzcGxpdHNbMF0gPT0gXCJQXCIpXHJcbiAgICAgICAgZXhwcmVzc2lvbiA9IGV4cHJlc3Npb24ucmVwbGFjZSh0LnRyaW0oKSwgXCJ0aGlzLmhhc1Blcm1pc3Npb24oJ1wiICsgc3BsaXRzWzFdLnRyaW0oKSArIFwiJylcIik7XHJcbiAgICAgIGVsc2VcclxuICAgICAgICBleHByZXNzaW9uID0gZXhwcmVzc2lvbi5yZXBsYWNlKHQudHJpbSgpLCBcInRoaXMuaGFzQ3VzdG9tKCdcIiArIHNwbGl0c1sxXS50cmltKCkgKyBcIicsICdcIiArIHNwbGl0c1swXS50cmltKCkgKyBcIicpXCIpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdmFyIHJldCA9IDxib29sZWFuPmV2YWwoZXhwcmVzc2lvbik7XHJcbiAgICAvLyBDYWNoZSB2YWxvcmVcclxuICAgIHRoaXMuY2FjaGVbZXhwcmVzc2lvbl0gPSByZXQ7XHJcbiAgICByZXR1cm4gcmV0O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXRpbGl6emF0byBkYSBoYXNBQ0V4cHJlc3Npb24gZGVudHJvIGV2YWxcclxuICAgKiBcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBoYXNSb2xlKHJvbGU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCF0aGlzLklkZW50aXR5KSB7XHJcbiAgICAgIGNvbnNvbGUud2FybihcIkVsZW1lbnRvIElkZW50aXR5IG5vbiBzcGVjaWZpY2F0byBpbiBBY2Nlc3MgQ29udHJvbC4gR2xpIGFjY2Vzc2kgc2FyYW5ubyB0dXR0aSBsaWJlcmkgZGkgZGVmYXVsdFwiKVxyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLklkZW50aXR5LlJvbGVzICYmIHRoaXMuSWRlbnRpdHkuUm9sZXMubGVuZ3RoID4gMCAmJiB0aGlzLklkZW50aXR5LlJvbGVzLmluZGV4T2Yocm9sZSkgIT0gLTE7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVdGlsaXp6YXRvIGRhIGhhc0FDRXhwcmVzc2lvbiBkZW50cm8gZXZhbFxyXG4gICAqIFxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBwcml2YXRlIGhhc1Blcm1pc3Npb24ocGVybWlzc2lvbjogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXRoaXMuSWRlbnRpdHkpIHtcclxuICAgICAgY29uc29sZS53YXJuKFwiRWxlbWVudG8gSWRlbnRpdHkgbm9uIHNwZWNpZmljYXRvIGluIEFjY2VzcyBDb250cm9sLiBHbGkgYWNjZXNzaSBzYXJhbm5vIHR1dHRpIGxpYmVyaSBkaSBkZWZhdWx0XCIpXHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuSWRlbnRpdHkuUGVybWlzc2lvbnMgJiYgdGhpcy5JZGVudGl0eS5QZXJtaXNzaW9ucy5sZW5ndGggPiAwICYmIHRoaXMuSWRlbnRpdHkuUGVybWlzc2lvbnMuaW5kZXhPZihwZXJtaXNzaW9uKSAhPSAtMTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFV0aWxpenphdG8gZGEgaGFzQUNFeHByZXNzaW9uIGRlbnRybyBldmFsXHJcbiAgICogXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgaGFzQ3VzdG9tKHZhbHVlOiBzdHJpbmcsIHRhZzogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICB2YXIgaXRlbXMgPSB0aGlzLnRhZ2dlZEl0ZW1zQ2FjaGUuZmluZCh0ID0+IHQua2V5ID09IHRhZyk/Lml0ZW1zO1xyXG4gICAgaWYgKCFpdGVtcylcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICBlbHNlIGlmIChpdGVtcy5sZW5ndGggPT0gMClcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgZWxzZVxyXG4gICAgICByZXR1cm4gISFpdGVtcy5maW5kKHQgPT4gdCA9PSB2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFbnRyeSBwb2ludCBjaGUgY29udHJvbGxhIHVuJ2VzcHJlc3Npb25lIGlkZW50aWZpY2FudGUgdW4gcGVybWVzc28sIGFkIGVzZW1waW8gXCJQOnZpc3VhbGl6emF6aW9uZVwiIGNvbnRyb2xsYSBjaGUgbCd1dGVudGUgY29sbGVnYXRvIGFiYmlhIHVuIHBlcm1lc3NvIGNoZSBzaSBjaGlhbWEgXCJ2aXN1YWxpenphemlvbmVcIlxyXG4gICAqL1xyXG4gIHB1YmxpYyBoYXMoZXhwcjogc3RyaW5nLCBhYnNvbHV0ZTogYm9vbGVhbiA9IGZhbHNlKSB7XHJcbiAgICByZXR1cm4gdGhpcy5oYXNBQ0V4cHJlc3Npb24oZXhwciwgYWJzb2x1dGUpO1xyXG4gIH1cclxufSJdfQ==
@@ -1,10 +1,8 @@
1
1
  import { InjectionToken } from '@angular/core';
2
- /** Token che racchiude il locale scelto per l'applicazione */
3
- export const ACC_LOCALE = new InjectionToken('ACC_LOCALE');
4
2
  /** Token che racchiude la chiave custom da controllare quando si effettuano controlli sul ComponentContext */
5
3
  export const ACC_CUSTOMKEY = new InjectionToken('ACC_CUSTOMKEY');
6
4
  /** Token che indica la condizione di default da aggiungere ai check utente */
7
5
  export const ACC_DEF_COND = new InjectionToken('ACC_DEF_COND');
8
6
  /** Token che indica l'operatore della condizione di default da aggiungere ai check utente */
9
7
  export const ACC_DEF_COND_OP = new InjectionToken('ACC_DEF_COND_OP');
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNjZXNzLWNvbnRyb2wvc3JjL2xpYi90b2tlbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQyw4REFBOEQ7QUFDOUQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUEyQixJQUFJLGNBQWMsQ0FBUyxZQUFZLENBQUMsQ0FBQztBQUUzRiw4R0FBOEc7QUFDOUcsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUEyQixJQUFJLGNBQWMsQ0FBUyxlQUFlLENBQUMsQ0FBQztBQUVqRyw4RUFBOEU7QUFDOUUsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUEyQixJQUFJLGNBQWMsQ0FBUyxjQUFjLENBQUMsQ0FBQztBQUUvRiw2RkFBNkY7QUFDN0YsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUEyQixJQUFJLGNBQWMsQ0FBUyxpQkFBaUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbi8qKiBUb2tlbiBjaGUgcmFjY2hpdWRlIGlsIGxvY2FsZSBzY2VsdG8gcGVyIGwnYXBwbGljYXppb25lICovXHJcbmV4cG9ydCBjb25zdCBBQ0NfTE9DQUxFOiBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+ID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ0FDQ19MT0NBTEUnKTtcclxuXHJcbi8qKiBUb2tlbiBjaGUgcmFjY2hpdWRlIGxhIGNoaWF2ZSBjdXN0b20gZGEgY29udHJvbGxhcmUgcXVhbmRvIHNpIGVmZmV0dHVhbm8gY29udHJvbGxpIHN1bCBDb21wb25lbnRDb250ZXh0ICovXHJcbmV4cG9ydCBjb25zdCBBQ0NfQ1VTVE9NS0VZOiBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+ID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ0FDQ19DVVNUT01LRVknKTtcclxuXHJcbi8qKiBUb2tlbiBjaGUgaW5kaWNhIGxhIGNvbmRpemlvbmUgZGkgZGVmYXVsdCBkYSBhZ2dpdW5nZXJlIGFpIGNoZWNrIHV0ZW50ZSAqL1xyXG5leHBvcnQgY29uc3QgQUNDX0RFRl9DT05EOiBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+ID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ0FDQ19ERUZfQ09ORCcpO1xyXG5cclxuLyoqIFRva2VuIGNoZSBpbmRpY2EgbCdvcGVyYXRvcmUgZGVsbGEgY29uZGl6aW9uZSBkaSBkZWZhdWx0IGRhIGFnZ2l1bmdlcmUgYWkgY2hlY2sgdXRlbnRlICovXHJcbmV4cG9ydCBjb25zdCBBQ0NfREVGX0NPTkRfT1A6IEluamVjdGlvblRva2VuPHN0cmluZz4gPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPignQUNDX0RFRl9DT05EX09QJyk7Il19
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNjZXNzLWNvbnRyb2wvc3JjL2xpYi90b2tlbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQyw4R0FBOEc7QUFDOUcsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUEyQixJQUFJLGNBQWMsQ0FBUyxlQUFlLENBQUMsQ0FBQztBQUVqRyw4RUFBOEU7QUFDOUUsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUEyQixJQUFJLGNBQWMsQ0FBUyxjQUFjLENBQUMsQ0FBQztBQUUvRiw2RkFBNkY7QUFDN0YsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUEyQixJQUFJLGNBQWMsQ0FBUyxpQkFBaUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbi8qKiBUb2tlbiBjaGUgcmFjY2hpdWRlIGxhIGNoaWF2ZSBjdXN0b20gZGEgY29udHJvbGxhcmUgcXVhbmRvIHNpIGVmZmV0dHVhbm8gY29udHJvbGxpIHN1bCBDb21wb25lbnRDb250ZXh0ICovXHJcbmV4cG9ydCBjb25zdCBBQ0NfQ1VTVE9NS0VZOiBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+ID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ0FDQ19DVVNUT01LRVknKTtcclxuXHJcbi8qKiBUb2tlbiBjaGUgaW5kaWNhIGxhIGNvbmRpemlvbmUgZGkgZGVmYXVsdCBkYSBhZ2dpdW5nZXJlIGFpIGNoZWNrIHV0ZW50ZSAqL1xyXG5leHBvcnQgY29uc3QgQUNDX0RFRl9DT05EOiBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+ID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ0FDQ19ERUZfQ09ORCcpO1xyXG5cclxuLyoqIFRva2VuIGNoZSBpbmRpY2EgbCdvcGVyYXRvcmUgZGVsbGEgY29uZGl6aW9uZSBkaSBkZWZhdWx0IGRhIGFnZ2l1bmdlcmUgYWkgY2hlY2sgdXRlbnRlICovXHJcbmV4cG9ydCBjb25zdCBBQ0NfREVGX0NPTkRfT1A6IEluamVjdGlvblRva2VuPHN0cmluZz4gPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPignQUNDX0RFRl9DT05EX09QJyk7Il19
@@ -2,6 +2,7 @@
2
2
  * Public API Surface of access-control
3
3
  */
4
4
  export * from './lib/access-control.module';
5
+ export * from './lib/access-control.pipe';
5
6
  export * from './lib/access-control.service';
6
7
  export * from './lib/access-control.directive';
7
8
  export * from './lib/context-aware.directive';
@@ -9,4 +10,4 @@ export * from "./lib/models/AccessControlModuleConfig";
9
10
  export * from "./lib/AccessControlRouteGuard";
10
11
  export * from "./lib/tokens";
11
12
  export * from "./lib/models/ComponentContext";
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2FjY2Vzcy1jb250cm9sL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsZ0NBQWdDLENBQUE7QUFDOUMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYywrQkFBK0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBhY2Nlc3MtY29udHJvbFxyXG4gKi9cclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FjY2Vzcy1jb250cm9sLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FjY2Vzcy1jb250cm9sLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hY2Nlc3MtY29udHJvbC5kaXJlY3RpdmUnXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbnRleHQtYXdhcmUuZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSBcIi4vbGliL21vZGVscy9BY2Nlc3NDb250cm9sTW9kdWxlQ29uZmlnXCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9BY2Nlc3NDb250cm9sUm91dGVHdWFyZFwiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9saWIvdG9rZW5zXCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9tb2RlbHMvQ29tcG9uZW50Q29udGV4dFwiOyJdfQ==
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2FjY2Vzcy1jb250cm9sL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxnQ0FBZ0MsQ0FBQTtBQUM5QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLCtCQUErQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGFjY2Vzcy1jb250cm9sXHJcbiAqL1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYWNjZXNzLWNvbnRyb2wubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYWNjZXNzLWNvbnRyb2wucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FjY2Vzcy1jb250cm9sLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hY2Nlc3MtY29udHJvbC5kaXJlY3RpdmUnXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbnRleHQtYXdhcmUuZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSBcIi4vbGliL21vZGVscy9BY2Nlc3NDb250cm9sTW9kdWxlQ29uZmlnXCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9BY2Nlc3NDb250cm9sUm91dGVHdWFyZFwiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9saWIvdG9rZW5zXCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9tb2RlbHMvQ29tcG9uZW50Q29udGV4dFwiOyJdfQ==
@@ -1,11 +1,6 @@
1
- import { LocalizationService, LocalizationModule } from '@esfaenza/localizations';
2
1
  import * as i0 from '@angular/core';
3
- import { InjectionToken, Injectable, Optional, Inject, Directive, Input, NgModule } from '@angular/core';
4
- import * as i1 from '@esfaenza/extensions';
5
- import * as i3 from '@angular/router';
2
+ import { InjectionToken, Injectable, Optional, Inject, Directive, Input, Pipe, NgModule } from '@angular/core';
6
3
 
7
- /** Token che racchiude il locale scelto per l'applicazione */
8
- const ACC_LOCALE = new InjectionToken('ACC_LOCALE');
9
4
  /** Token che racchiude la chiave custom da controllare quando si effettuano controlli sul ComponentContext */
10
5
  const ACC_CUSTOMKEY = new InjectionToken('ACC_CUSTOMKEY');
11
6
  /** Token che indica la condizione di default da aggiungere ai check utente */
@@ -152,9 +147,10 @@ class AccessControlService {
152
147
  }
153
148
  }
154
149
  AccessControlService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AccessControlService, deps: [{ token: ACC_DEF_COND, optional: true }, { token: ACC_DEF_COND_OP, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
155
- AccessControlService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AccessControlService });
150
+ AccessControlService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AccessControlService, providedIn: "root" });
156
151
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AccessControlService, decorators: [{
157
- type: Injectable
152
+ type: Injectable,
153
+ args: [{ providedIn: "root" }]
158
154
  }], ctorParameters: function () {
159
155
  return [{ type: undefined, decorators: [{
160
156
  type: Optional
@@ -169,121 +165,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
169
165
  }] }];
170
166
  } });
171
167
 
172
- /**
173
- * Router Guard base per proteggere l'accesso alle route dell'applicazione. Per utilizzarla è sufficiente ereditarla e, nel costruttore della classe
174
- * che la ereditavalorizzare la variabile Routes con le route permesse dal modulo e il permesso per cui si vuole riservare l'accesso. Ad esempio:
175
- *
176
- * ```typescript
177
- * @Injectable()
178
- * export class HasAuthGuardComponent extends BaseRouterGuard {
179
- * constructor(acc: AccessControlService, router: Router, ms: MessageService, ts: BaseTokenService) {
180
- * super(ms, acc, router, ts);
181
- * this.Routes = [
182
- * { route: "page_route", permission: "P:perm_one" },
183
- * { route: "*", permission: "R:role_one" }
184
- * ]
185
- * }
186
- * }
187
- * ```
188
- */
189
- class AccessControlRouteGuard {
190
- /**
191
- * @ignore
192
- */
193
- constructor(msgService, ac, router, LOCALE) {
194
- this.msgService = msgService;
195
- this.ac = ac;
196
- this.router = router;
197
- /**
198
- * Route di login che serve per reindirizzare alla pagina di login in caso di fallimento del controllo sui Permessi
199
- *
200
- * @default
201
- */
202
- this.LoginRoute = "login";
203
- /**
204
- * Permette di specificare delle Route sempre consentite, anche a livello di "Radice". Ad esempio la Root "test" permetterà
205
- * l'accesso a tutte le route che anche solo iniziano per "test"
206
- */
207
- this.AlwaysAllowedRoots = [];
208
- /**
209
- * Lista di Route con la loro espressione di controllo per valutare i permessi
210
- */
211
- this.Routes = [];
212
- this.lc = new LocalizationService(LOCALE !== null && LOCALE !== void 0 ? LOCALE : 'it-IT');
213
- }
214
- /**
215
- * @ignore
216
- */
217
- canActivateChild(route, _) {
218
- var url = route.url.join('/');
219
- //Se l'applicazione non è pronta e non sto navigando nelle pagine consentite
220
- if (!this.ac.Initialized && !this.AlwaysAllowedRoots.find(r => url.indexOf(r) != -1))
221
- return Promise.resolve(false);
222
- var routeMatched = false;
223
- for (let i = 0; i < this.Routes.length; i++) {
224
- let r = this.Routes[i];
225
- //Se faccio match con la route significa che ho navigato in una delle route conosciute, altrimenti avverto ma lascio andare
226
- if (url.indexOf(r.route) != -1) {
227
- routeMatched = true;
228
- return this.handleMatch(url, r);
229
- }
230
- }
231
- //Se non faccio nessun match ma ho una route wildcard (*) prendo quella e controllo su quella
232
- if (!routeMatched) {
233
- var wildcardRoute = this.Routes.find(r => r.route == "*");
234
- if (wildcardRoute)
235
- return this.handleMatch(url, wildcardRoute);
236
- else
237
- console.log("Navigaizone avvenuta su route sconosciuta: " + url);
238
- }
239
- return Promise.resolve(true);
240
- }
241
- /**
242
- * @ignore
243
- */
244
- handleMatch(fromurl, r) {
245
- let identity = this.ac.Identity;
246
- if (this.ac.has(r.permission) ||
247
- (
248
- // Considero anche la possibilità di avere l'access control inizializzato ma che l'account scope non sia ancora presente
249
- // in questo caso suppongo sia un hard refresh e mi fido del fatto che l'utente possa entrarci
250
- // TODO: Fixare meglio concatenando una promise che va a prendere l'account scope se serve
251
- this.ac.Initialized &&
252
- (!identity.Roles || identity.Roles.length == 0) &&
253
- (!identity.Permissions || identity.Permissions.length == 0)))
254
- return Promise.resolve(true);
255
- else {
256
- //Se sono nel sito originale (non ho aperto un newtab) blocco la navigazione
257
- //Se ho aperto una nuova tab invece rispedisco al login
258
- if (window.history.length > 2 && this.ac.isLoggedIn()) {
259
- this.msgService.simpleError(this.lc.loc("You don't have the required permissions to view this page. The navigation has been blocked"));
260
- return Promise.resolve(false);
261
- }
262
- else {
263
- this.onRedirectInProgress();
264
- this.router.navigate([this.LoginRoute, { fromUrl: fromurl }]);
265
- }
266
- }
267
- }
268
- /**
269
- * Callback che viene eseguito prima che la Guard reindirizzi al login
270
- */
271
- onRedirectInProgress() {
272
- }
273
- }
274
- AccessControlRouteGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AccessControlRouteGuard, deps: [{ token: i1.MessageService }, { token: AccessControlService }, { token: i3.Router }, { token: ACC_LOCALE, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
275
- AccessControlRouteGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AccessControlRouteGuard });
276
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AccessControlRouteGuard, decorators: [{
277
- type: Injectable
278
- }], ctorParameters: function () {
279
- return [{ type: i1.MessageService }, { type: AccessControlService }, { type: i3.Router }, { type: undefined, decorators: [{
280
- type: Optional
281
- }, {
282
- type: Inject,
283
- args: [ACC_LOCALE]
284
- }] }];
285
- } });
286
-
287
168
  // Angular
288
169
  /**
289
170
  * Direttiva che permette di gestire il controllo accessi su componenti HTML.
@@ -383,14 +264,39 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
383
264
  }] }];
384
265
  } });
385
266
 
267
+ // Angular
268
+ /**
269
+ * Pipe che restituisce **true** quando il controllo sugli accessi ha successo, false altrimenti
270
+ *
271
+ * Per gli esempi di utilizzo fare riferimento al README.
272
+ */
273
+ class AccessControlPipe {
274
+ /** @ignore Costruttore */
275
+ constructor(_ac) {
276
+ this._ac = _ac;
277
+ }
278
+ /**
279
+ * Trasforma l'espressione ac in un booleano
280
+ * @param value Espressione ac
281
+ * @param absolute Indica se valutare **ac** in maniera assoluta o meno
282
+ * @returns **true** se la condizione è verificata, **false** altrimenti
283
+ */
284
+ transform(value, absolute) {
285
+ return this._ac.has(value, absolute);
286
+ }
287
+ }
288
+ AccessControlPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AccessControlPipe, deps: [{ token: AccessControlService }], target: i0.ɵɵFactoryTarget.Pipe });
289
+ AccessControlPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: AccessControlPipe, name: "ac" });
290
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AccessControlPipe, decorators: [{
291
+ type: Pipe,
292
+ args: [{ name: 'ac' }]
293
+ }], ctorParameters: function () { return [{ type: AccessControlService }]; } });
294
+
386
295
  class AccessControlModule {
387
296
  static forRoot(config) {
388
297
  return {
389
298
  ngModule: AccessControlModule,
390
299
  providers: [
391
- AccessControlService,
392
- AccessControlRouteGuard,
393
- { provide: ACC_LOCALE, useValue: (config === null || config === void 0 ? void 0 : config.locale) || 'it-IT' },
394
300
  { provide: ACC_CUSTOMKEY, useValue: (config === null || config === void 0 ? void 0 : config.customKey) || null },
395
301
  { provide: ACC_DEF_COND, useValue: (config === null || config === void 0 ? void 0 : config.defaultCondition) || null },
396
302
  { provide: ACC_DEF_COND_OP, useValue: (config === null || config === void 0 ? void 0 : config.defaultConditionLogicalOperator) || '||' }
@@ -399,14 +305,13 @@ class AccessControlModule {
399
305
  }
400
306
  }
401
307
  AccessControlModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AccessControlModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
402
- AccessControlModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: AccessControlModule, declarations: [AccessControlDirective, ContextAwareDirective], imports: [LocalizationModule], exports: [AccessControlDirective, ContextAwareDirective] });
403
- AccessControlModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AccessControlModule, imports: [LocalizationModule] });
308
+ AccessControlModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: AccessControlModule, declarations: [AccessControlDirective, ContextAwareDirective, AccessControlPipe], exports: [AccessControlDirective, ContextAwareDirective, AccessControlPipe] });
309
+ AccessControlModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AccessControlModule });
404
310
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AccessControlModule, decorators: [{
405
311
  type: NgModule,
406
312
  args: [{
407
- imports: [LocalizationModule],
408
- declarations: [AccessControlDirective, ContextAwareDirective],
409
- exports: [AccessControlDirective, ContextAwareDirective]
313
+ declarations: [AccessControlDirective, ContextAwareDirective, AccessControlPipe],
314
+ exports: [AccessControlDirective, ContextAwareDirective, AccessControlPipe]
410
315
  }]
411
316
  }] });
412
317
 
@@ -416,6 +321,108 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
416
321
  class AccessControlModuleConfig {
417
322
  }
418
323
 
324
+ /**
325
+ * Router Guard base per proteggere l'accesso alle route dell'applicazione. Per utilizzarla è sufficiente ereditarla e, nel costruttore della classe
326
+ * che la ereditavalorizzare la variabile Routes con le route permesse dal modulo e il permesso per cui si vuole riservare l'accesso. Ad esempio:
327
+ *
328
+ * ```typescript
329
+ * @Injectable()
330
+ * export class HasAuthGuardComponent extends BaseRouterGuard {
331
+ * constructor(acc: AccessControlService, router: Router, ms: MessageService, ts: BaseTokenService) {
332
+ * super(ms, acc, router, ts);
333
+ * this.Routes = [
334
+ * { route: "page_route", permission: "P:perm_one" },
335
+ * { route: "*", permission: "R:role_one" }
336
+ * ]
337
+ * }
338
+ * }
339
+ * ```
340
+ */
341
+ class AccessControlRouteGuard {
342
+ /**
343
+ * @ignore
344
+ */
345
+ constructor(msgService, ac, router) {
346
+ this.msgService = msgService;
347
+ this.ac = ac;
348
+ this.router = router;
349
+ /**
350
+ * Route di login che serve per reindirizzare alla pagina di login in caso di fallimento del controllo sui Permessi
351
+ *
352
+ * @default
353
+ */
354
+ this.LoginRoute = "login";
355
+ /**
356
+ * Permette di specificare delle Route sempre consentite, anche a livello di "Radice". Ad esempio la Root "test" permetterà
357
+ * l'accesso a tutte le route che anche solo iniziano per "test"
358
+ */
359
+ this.AlwaysAllowedRoots = [];
360
+ /**
361
+ * Lista di Route con la loro espressione di controllo per valutare i permessi
362
+ */
363
+ this.Routes = [];
364
+ }
365
+ /**
366
+ * @ignore
367
+ */
368
+ canActivateChild(route, _) {
369
+ var url = route.url.join('/');
370
+ //Se l'applicazione non è pronta e non sto navigando nelle pagine consentite
371
+ if (!this.ac.Initialized && !this.AlwaysAllowedRoots.find(r => url.indexOf(r) != -1))
372
+ return Promise.resolve(false);
373
+ var routeMatched = false;
374
+ for (let i = 0; i < this.Routes.length; i++) {
375
+ let r = this.Routes[i];
376
+ //Se faccio match con la route significa che ho navigato in una delle route conosciute, altrimenti avverto ma lascio andare
377
+ if (url.indexOf(r.route) != -1) {
378
+ routeMatched = true;
379
+ return this.handleMatch(url, r);
380
+ }
381
+ }
382
+ //Se non faccio nessun match ma ho una route wildcard (*) prendo quella e controllo su quella
383
+ if (!routeMatched) {
384
+ var wildcardRoute = this.Routes.find(r => r.route == "*");
385
+ if (wildcardRoute)
386
+ return this.handleMatch(url, wildcardRoute);
387
+ else
388
+ console.log("Navigaizone avvenuta su route sconosciuta: " + url);
389
+ }
390
+ return Promise.resolve(true);
391
+ }
392
+ /**
393
+ * @ignore
394
+ */
395
+ handleMatch(fromurl, r) {
396
+ let identity = this.ac.Identity;
397
+ if (this.ac.has(r.permission) ||
398
+ (
399
+ // Considero anche la possibilità di avere l'access control inizializzato ma che l'account scope non sia ancora presente
400
+ // in questo caso suppongo sia un hard refresh e mi fido del fatto che l'utente possa entrarci
401
+ // TODO: Fixare meglio concatenando una promise che va a prendere l'account scope se serve
402
+ this.ac.Initialized &&
403
+ (!identity.Roles || identity.Roles.length == 0) &&
404
+ (!identity.Permissions || identity.Permissions.length == 0)))
405
+ return Promise.resolve(true);
406
+ else {
407
+ //Se sono nel sito originale (non ho aperto un newtab) blocco la navigazione
408
+ //Se ho aperto una nuova tab invece rispedisco al login
409
+ if (window.history.length > 2 && this.ac.isLoggedIn()) {
410
+ this.msgService.simpleError("Page Unauthorized");
411
+ return Promise.resolve(false);
412
+ }
413
+ else {
414
+ this.onRedirectInProgress();
415
+ this.router.navigate([this.LoginRoute, { fromUrl: fromurl }]);
416
+ }
417
+ }
418
+ }
419
+ /**
420
+ * Callback che viene eseguito prima che la Guard reindirizzi al login
421
+ */
422
+ onRedirectInProgress() {
423
+ }
424
+ }
425
+
419
426
  /*
420
427
  * Public API Surface of access-control
421
428
  */
@@ -424,5 +431,5 @@ class AccessControlModuleConfig {
424
431
  * Generated bundle index. Do not edit.
425
432
  */
426
433
 
427
- export { ACC_CUSTOMKEY, ACC_DEF_COND, ACC_DEF_COND_OP, ACC_LOCALE, AccessControlDirective, AccessControlModule, AccessControlModuleConfig, AccessControlRouteGuard, AccessControlService, ComponentContext, ContextAwareDirective };
434
+ export { ACC_CUSTOMKEY, ACC_DEF_COND, ACC_DEF_COND_OP, AccessControlDirective, AccessControlModule, AccessControlModuleConfig, AccessControlPipe, AccessControlRouteGuard, AccessControlService, ComponentContext, ContextAwareDirective };
428
435
  //# sourceMappingURL=esfaenza-access-control.mjs.map