@netgrif/components-core 6.2.1 → 6.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/commons/schema.d.ts +1 -0
  2. package/esm2020/assets/i18n/de.json +11 -9
  3. package/esm2020/assets/i18n/en.json +4 -2
  4. package/esm2020/assets/i18n/sk.json +4 -2
  5. package/esm2020/commons/schema.mjs +1 -1
  6. package/esm2020/lib/authentication/components/abstract-authentication-overlay.mjs +4 -1
  7. package/esm2020/lib/authorization/permission/access.service.mjs +2 -2
  8. package/esm2020/lib/authorization/role/role-guard.service.mjs +36 -11
  9. package/esm2020/lib/data-fields/file-field/abstract-file-field.component.mjs +7 -3
  10. package/esm2020/lib/data-fields/file-list-field/abstract-file-list-field.component.mjs +5 -2
  11. package/esm2020/lib/data-fields/i18n-field/i18n-divider-field/abstract-i18n-divider-field.component.mjs +7 -1
  12. package/esm2020/lib/data-fields/i18n-field/models/i18n-field.mjs +5 -5
  13. package/esm2020/lib/data-fields/models/abstract-data-field.mjs +1 -1
  14. package/esm2020/lib/data-fields/multichoice-field/multichoice-autocomplete-field/abstract-multichoice-autocomplete-field-component.component.mjs +5 -2
  15. package/esm2020/lib/data-fields/number-field/currency-number-field/abstract-currency-number-field.component.mjs +3 -2
  16. package/esm2020/lib/navigation/navigation-double-drawer/abstract-navigation-double-drawer.mjs +7 -4
  17. package/esm2020/lib/resources/engine-endpoint/task-resource.service.mjs +3 -3
  18. package/esm2020/lib/search/models/category/case/case-dataset.mjs +7 -4
  19. package/esm2020/lib/search/search-operand-input-component/abstract-search-operand-input.component.mjs +3 -3
  20. package/esm2020/lib/side-menu/content-components/new-case/abstract-new-case.component.mjs +34 -12
  21. package/esm2020/lib/task-content/field-component-resolver/abstract-field-component-resolver.component.mjs +2 -3
  22. package/fesm2015/netgrif-components-core.mjs +132 -56
  23. package/fesm2015/netgrif-components-core.mjs.map +1 -1
  24. package/fesm2020/netgrif-components-core.mjs +131 -56
  25. package/fesm2020/netgrif-components-core.mjs.map +1 -1
  26. package/lib/authorization/role/role-guard.service.d.ts +2 -1
  27. package/lib/data-fields/i18n-field/i18n-divider-field/abstract-i18n-divider-field.component.d.ts +1 -0
  28. package/lib/data-fields/models/abstract-data-field.d.ts +1 -1
  29. package/lib/data-fields/multichoice-field/multichoice-autocomplete-field/abstract-multichoice-autocomplete-field-component.component.d.ts +1 -0
  30. package/lib/data-fields/number-field/currency-number-field/abstract-currency-number-field.component.d.ts +1 -0
  31. package/lib/navigation/navigation-double-drawer/abstract-navigation-double-drawer.d.ts +1 -1
  32. package/lib/resources/engine-endpoint/task-resource.service.d.ts +2 -1
  33. package/lib/search/search-operand-input-component/abstract-search-operand-input.component.d.ts +1 -1
  34. package/lib/side-menu/content-components/new-case/abstract-new-case.component.d.ts +2 -0
  35. package/package.json +1 -1
  36. package/src/assets/i18n/de.json +11 -9
  37. package/src/assets/i18n/en.json +5 -2
  38. package/src/assets/i18n/sk.json +4 -2
@@ -222,6 +222,7 @@ export interface Access {
222
222
  * For `string` values the format is: <net import id>.<role name>
223
223
  */
224
224
  role?: Array<string> | string | RoleAccess | Array<RoleAccess>;
225
+ bannedRole?: Array<string> | string | RoleAccess | Array<RoleAccess>;
225
226
  group?: Array<string> | string;
226
227
  authority?: Array<string> | string;
227
228
  [k: string]: any;
@@ -87,14 +87,15 @@
87
87
  "errThird": "Sie müssen eine Farbe auswählen.",
88
88
  "noNets": "Es gibt keine erlaubte Netze",
89
89
  "createCase": "Neuen Fall würde erfolgreich erzeugt",
90
- "defaultCaseName": "mit einem Standardfallnamen"
90
+ "defaultCaseName": "mit einem Standardfallnamen",
91
+ "createCaseError": "Neuer Fall wurde erstellt, aber beim Ausführen von Aktionen ist ein Fehler aufgetreten"
91
92
  },
92
93
  "user": {
93
- "assign": "Benützer zuweisen",
94
- "choose": "Benützer auswählen",
95
- "noUser": "Es gibt keine Benützer",
96
- "err": "Beim laden der Benützer ist eine Fehler aufgetreten",
97
- "showcase": "Benützeransichtmodus ist nicht ausgewählt!"
94
+ "assign": "Benutzer zuweisen",
95
+ "choose": "Benutzer auswählen",
96
+ "noUser": "Es gibt keine Benutzer",
97
+ "err": "Beim laden der Benutzer ist eine Fehler aufgetreten",
98
+ "showcase": "Die Benutzeransicht ist nicht gesetzt!"
98
99
  },
99
100
  "ldapGroup": {
100
101
  "choose": "LDAP-Gruppe suchen",
@@ -288,8 +289,8 @@
288
289
  "enterEmail": "Ihre E-Mail Adresse eingeben"
289
290
  },
290
291
  "login": {
291
- "length": "Das Benützername muss mindestens 4 Zeichen enthalten",
292
- "login": "Benützername",
292
+ "length": "Das Benutzername muss mindestens 4 Zeichen enthalten",
293
+ "login": "Benutzername",
293
294
  "wrongCredentials": "Falsche Anmeldeinformationen!",
294
295
  "loginButton": "Anmelden",
295
296
  "reset": "Kennwort wiederherstellen",
@@ -386,7 +387,8 @@
386
387
  },
387
388
  "ldapGroup-list": {
388
389
  "noLdapGroupsWereFound": "Keine LDAP Gruppe wurde gefunden",
389
- "listTitle": "LDAP Gruppen"
390
+ "listTitle": "LDAP Gruppen",
391
+ "count": "Anzahl der Gruppen"
390
392
  },
391
393
  "process-list": {
392
394
  "newestVersion": "Neuste Version",
@@ -87,7 +87,8 @@
87
87
  "errThird": "Color is required.",
88
88
  "noNets": "No allowed Nets",
89
89
  "createCase": "Successful create new case",
90
- "defaultCaseName": "with default case name"
90
+ "defaultCaseName": "with default case name",
91
+ "createCaseError": "A new case was created, but an error occurred while executing actions"
91
92
  },
92
93
  "user": {
93
94
  "assign": "User Assign",
@@ -386,7 +387,8 @@
386
387
  },
387
388
  "ldapGroup-list": {
388
389
  "noLdapGroupsWereFound": "No LDAP group was found",
389
- "listTitle": "Ldap Groups"
390
+ "listTitle": "LDAP groups",
391
+ "count": "Number of groups"
390
392
  },
391
393
  "process-list": {
392
394
  "newestVersion": "Newest version",
@@ -87,7 +87,8 @@
87
87
  "errThird": "Farba je povinné pole.",
88
88
  "noNets": "Žiadne povolené siete",
89
89
  "createCase": "Úspešne vytvorený nový prípad",
90
- "defaultCaseName": "s prednastaveným názvom prípadu"
90
+ "defaultCaseName": "s prednastaveným názvom prípadu",
91
+ "createCaseError": "Nový prípad vytvorený, nastala však chyba pri vykonávaní akcií"
91
92
  },
92
93
  "user": {
93
94
  "assign": "Priradiť používateľa",
@@ -386,7 +387,8 @@
386
387
  },
387
388
  "ldapGroup-list": {
388
389
  "noLdapGroupsWereFound": "Žiadna LDAP skupina nebola najdená",
389
- "listTitle": "Ldap Skupiny"
390
+ "listTitle": "LDAP Skupiny",
391
+ "count": "Počet skupín"
390
392
  },
391
393
  "process-list": {
392
394
  "newestVersion": "Najnovšia verzia",
@@ -4,4 +4,4 @@
4
4
  // noticing. However as soon as we include other interfaces from the lib here, schematics will reference them and fail to compile.
5
5
  // We need to find a good solution for this.
6
6
  export {};
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2NvbW1vbnMvc2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDRJQUE0STtBQUM1SSwySUFBMkk7QUFDM0ksMklBQTJJO0FBQzNJLG1JQUFtSTtBQUNuSSw2Q0FBNkMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUT0RPIEJVRyAxNy40LjIwMjAgLSB0aGlzIGZpbGUgc2hvdWxkIGNvbnRhaW4gdmVyeSBwcmVjaXNlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBpbnRlbmRlZCBzdHJ1Y3R1cmUgb2YgbmFlLmpzb24gQlVUIHRoaXMgaXMgYSAuZC50cyBmaWxlLlxuLy8gIElmIHdlIGluY2x1ZGUgb3RoZXIgaW50ZXJmYWNlcyBmcm9tIHRoZSBsaWIgaW50byB0aGlzIGZpbGUsIHNjaGVtYXRpYyBjb21waWxhdGlvbiBmYWlscy4gU2NoZW1hdGljcyByZWZlcmVuY2UgdGhpcyBmaWxlIHdpdGhvdXQgcHJvYmxlbVxuLy8gIGJ1dCB0aGV5IGNhbid0IHJlZmVyZW5jZSBmaWxlcyBhYm92ZSB0aGVpciBzb3VyY2VSb290IGRlY2xhcmVkIGluIHRoZWlyIHRzY29uZmlnIGZpbGUuIFNpbmNlIHRoaXMgZmlsZSBpcyAuZC50cyBpdCBydW5zIHdpdGhvdXQgYW55Ym9keVxuLy8gIG5vdGljaW5nLiBIb3dldmVyIGFzIHNvb24gYXMgd2UgaW5jbHVkZSBvdGhlciBpbnRlcmZhY2VzIGZyb20gdGhlIGxpYiBoZXJlLCBzY2hlbWF0aWNzIHdpbGwgcmVmZXJlbmNlIHRoZW0gYW5kIGZhaWwgdG8gY29tcGlsZS5cbi8vICBXZSBuZWVkIHRvIGZpbmQgYSBnb29kIHNvbHV0aW9uIGZvciB0aGlzLlxuXG4vKipcbiAqIFRoaXMgZmlsZSBpcyBzaW5nbGUgcG9pbnQgb2YgdHJ1dGggZm9yIE5BRSBmcm9udGVuZCBjb25maWd1cmF0aW9uIHNjaGVtYS5cbiAqL1xuXG5leHBvcnQgdHlwZSBSZXNvdXJjZXMgPVxuICAgIHwgUmVzb3VyY2VcbiAgICB8IEFycmF5PFJlc291cmNlPjtcblxuLyoqXG4gKiBTY2hlbWEgZm9yIE5BRSBjb25maWd1cmF0aW9uIG9iamVjdFxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5ldGdyaWZBcHBsaWNhdGlvbkVuZ2luZSB7XG4gICAgcHJvdmlkZXJzOiBTZXRBdXRoQW5kUmVzb3VyY2VzQWRkcmVzcztcbiAgICB0aGVtZTogVGhlbWU7XG4gICAgbG9jYWxlcz86IExvY2FsZXM7XG4gICAgZmlsdGVycz86IEZpbHRlcnM7XG4gICAgdmlld3M6IFZpZXdzO1xuICAgIHNlcnZpY2VzPzogU2VydmljZXM7XG5cbiAgICBbazogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvY2FsZXMge1xuICAgIC8qKlxuICAgICAqIEtleSBpcyBsb2NhbGUgY29kZSAoSVNPNjM5LTEgJy0nIElTTzMxNjYtMSlcbiAgICAgKiBWYWx1ZSBpcyBhIGZpbGUgb2YgdHJhbnNsYXRpb25cbiAgICAgKi9cbiAgICBbazogc3RyaW5nXTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNldEF1dGhBbmRSZXNvdXJjZXNBZGRyZXNzIHtcbiAgICBhdXRoOiBBdXRoO1xuICAgIHJlc291cmNlczogUmVzb3VyY2VzO1xuXG4gICAgW2s6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdXRoIHtcbiAgICBhZGRyZXNzOiBzdHJpbmc7XG4gICAgYXV0aGVudGljYXRpb246IHN0cmluZztcbiAgICBzZXNzaW9uQmVhcmVyPzogc3RyaW5nO1xuICAgIGVuZHBvaW50cz86IHN0cmluZyB8IHsgW2s6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gICAgW2s6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXNvdXJjZSB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGFkZHJlc3M6IHN0cmluZztcbiAgICBmb3JtYXQ6IHN0cmluZztcbiAgICBvcGVuQXBpPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRoZW1lIHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgcGFsbGV0czoge1xuICAgICAgICBsaWdodDoge1xuICAgICAgICAgICAgcHJpbWFyeTpcbiAgICAgICAgICAgICAgICBzdHJpbmdcbiAgICAgICAgICAgICAgICB8IHtcbiAgICAgICAgICAgICAgICAnNTAnPzogc3RyaW5nO1xuICAgICAgICAgICAgICAgICcxMDAnPzogc3RyaW5nO1xuICAgICAgICAgICAgICAgICcyMDAnPzogc3RyaW5nO1xuICAgICAgICAgICAgICAgICczMDAnPzogc3RyaW5nO1xuICAgICAgICAgICAgICAgICc0MDAnPzogc3RyaW5nO1xuICAgICAgICAgICAgICAgICc1MDAnPzogc3RyaW5nO1xuICAgICAgICAgICAgICAgICc2MDAnPzogc3RyaW5nO1xuICAgICAgICAgICAgICAgICc3MDAnPzogc3RyaW5nO1xuICAgICAgICAgICAgICAgICc4MDAnPzogc3RyaW5nO1xuICAgICAgICAgICAgICAgICc5MDAnPzogc3RyaW5nO1xuICAgICAgICAgICAgICAgIGNvbnRyYXN0PzogeyAnbGlnaHQnOiBBcnJheTxzdHJpbmc+OyAnZGFyayc6IEFycmF5PHN0cmluZz47IH07XG4gICAgICAgICAgICAgICAgW2s6IHN0cmluZ106IGFueTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBzZWNvbmRhcnk/OlxuICAgICAgICAgICAgICAgIHN0cmluZ1xuICAgICAgICAgICAgICAgIHwge1xuICAgICAgICAgICAgICAgICc1MCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzEwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzIwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzMwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzQwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzUwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzYwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzcwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzgwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzkwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgY29udHJhc3Q/OiB7ICdsaWdodCc6IEFycmF5PHN0cmluZz47ICdkYXJrJzogQXJyYXk8c3RyaW5nPjsgfTtcbiAgICAgICAgICAgICAgICBbazogc3RyaW5nXTogYW55O1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdhcm4/OlxuICAgICAgICAgICAgICAgIHN0cmluZ1xuICAgICAgICAgICAgICAgIHwge1xuICAgICAgICAgICAgICAgICc1MCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzEwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzIwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzMwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzQwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzUwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzYwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzcwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzgwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzkwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgY29udHJhc3Q/OiB7ICdsaWdodCc6IEFycmF5PHN0cmluZz47ICdkYXJrJzogQXJyYXk8c3RyaW5nPjsgfTtcbiAgICAgICAgICAgICAgICBbazogc3RyaW5nXTogYW55O1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIFtrOiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH07XG4gICAgICAgIGRhcms/OiB7XG4gICAgICAgICAgICBwcmltYXJ5PzpcbiAgICAgICAgICAgICAgICBzdHJpbmdcbiAgICAgICAgICAgICAgICB8IHtcbiAgICAgICAgICAgICAgICAnNTAnPzogc3RyaW5nO1xuICAgICAgICAgICAgICAgICcxMDAnPzogc3RyaW5nO1xuICAgICAgICAgICAgICAgICcyMDAnPzogc3RyaW5nO1xuICAgICAgICAgICAgICAgICczMDAnPzogc3RyaW5nO1xuICAgICAgICAgICAgICAgICc0MDAnPzogc3RyaW5nO1xuICAgICAgICAgICAgICAgICc1MDAnPzogc3RyaW5nO1xuICAgICAgICAgICAgICAgICc2MDAnPzogc3RyaW5nO1xuICAgICAgICAgICAgICAgICc3MDAnPzogc3RyaW5nO1xuICAgICAgICAgICAgICAgICc4MDAnPzogc3RyaW5nO1xuICAgICAgICAgICAgICAgICc5MDAnPzogc3RyaW5nO1xuICAgICAgICAgICAgICAgIGNvbnRyYXN0PzogeyAnbGlnaHQnOiBBcnJheTxzdHJpbmc+OyAnZGFyayc6IEFycmF5PHN0cmluZz47IH07XG4gICAgICAgICAgICAgICAgW2s6IHN0cmluZ106IGFueTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBzZWNvbmRhcnk/OlxuICAgICAgICAgICAgICAgIHN0cmluZ1xuICAgICAgICAgICAgICAgIHwge1xuICAgICAgICAgICAgICAgICc1MCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzEwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzIwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzMwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzQwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzUwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzYwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzcwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzgwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzkwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgY29udHJhc3Q/OiB7ICdsaWdodCc6IEFycmF5PHN0cmluZz47ICdkYXJrJzogQXJyYXk8c3RyaW5nPjsgfTtcbiAgICAgICAgICAgICAgICBbazogc3RyaW5nXTogYW55O1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdhcm4/OlxuICAgICAgICAgICAgICAgIHN0cmluZ1xuICAgICAgICAgICAgICAgIHwge1xuICAgICAgICAgICAgICAgICc1MCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzEwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzIwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzMwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzQwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzUwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzYwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzcwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzgwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzkwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgY29udHJhc3Q/OiB7ICdsaWdodCc6IEFycmF5PHN0cmluZz47ICdkYXJrJzogQXJyYXk8c3RyaW5nPjsgfTtcbiAgICAgICAgICAgICAgICBbazogc3RyaW5nXTogYW55O1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIFtrOiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH07XG4gICAgICAgIFtrOiBzdHJpbmddOiBhbnk7XG4gICAgfTtcblxuICAgIFtrOiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsdGVycyB7XG4gICAgW2s6IHN0cmluZ106IENvbmZpZ0ZpbHRlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb25maWdGaWx0ZXIge1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgYWNjZXNzPzogc3RyaW5nO1xuICAgIGJvZHk6IG9iamVjdCB8IEFycmF5PG9iamVjdD47XG4gICAgdHlwZTogJ1Rhc2snIHwgJ0Nhc2UnO1xuICAgIG1lcmdlT3BlcmF0b3I/OiAnQU5EJyB8ICdPUic7XG5cbiAgICBbazogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFZpZXdzIHtcbiAgICAvKipcbiAgICAgKiBUaGlzIGludGVyZmFjZSB3YXMgcmVmZXJlbmNlZCBieSBgdW5kZWZpbmVkYCdzIEpTT04tU2NoZW1hIGRlZmluaXRpb25cbiAgICAgKiB2aWEgdGhlIGBwYXR0ZXJuUHJvcGVydHlgIFwiXlthLXpBLVowLTlfXSskXCIuXG4gICAgICovXG4gICAgW2s6IHN0cmluZ106IFZpZXc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmlldyB7XG4gICAgbGF5b3V0Pzoge1xuICAgICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICAgIGVuYWJsZUNhc2VUaXRsZT86IGJvb2xlYW47XG4gICAgICAgIGlzQ2FzZVRpdGxlUmVxdWlyZWQ/OiBib29sZWFuO1xuICAgICAgICBzaG93RGVsZXRlTWVudT86IGJvb2xlYW47XG4gICAgICAgIGNvbmZpcm1Xb3JrZmxvd0RlbGV0aW9uPzogYm9vbGVhbjtcbiAgICAgICAgcGFyYW1zPzoge1xuICAgICAgICAgICAgb3JpZW50YXRpb24/OiBzdHJpbmc7XG4gICAgICAgICAgICBbazogc3RyaW5nXTogYW55O1xuICAgICAgICB9O1xuICAgICAgICAvKipcbiAgICAgICAgICogT3ZlcnJpZGUgYXV0b2dlbmVyYXRlZCBuYW1lLiAnQ29tcG9uZW50JyB3aWxsIGJlIGFwcGVuZGVkIGF1dG9tYXRpY2FsbHkuXG4gICAgICAgICAqL1xuICAgICAgICBjb21wb25lbnROYW1lPzogc3RyaW5nO1xuICAgICAgICBbazogc3RyaW5nXTogYW55O1xuICAgIH07XG4gICAgLyoqXG4gICAgICogVXNlIG93biBjdXN0b20gY29tcG9uZW50IGZvciB0aGlzIHZpZXdcbiAgICAgKi9cbiAgICBjb21wb25lbnQ/OiB7XG4gICAgICAgIGNsYXNzOiBzdHJpbmc7XG4gICAgICAgIGZyb206IHN0cmluZztcbiAgICB9O1xuICAgIC8vIGxheW91dDogQ2FzZUxheW91dCB8IFRhc2tMYXlvdXQ7XG4gICAgYWNjZXNzOlxuICAgICAgICB8ICdwdWJsaWMnIHwgJ3ByaXZhdGUnXG4gICAgICAgIHwgQWNjZXNzO1xuICAgIG5hdmlnYXRpb246XG4gICAgICAgIHwgYm9vbGVhblxuICAgICAgICB8IHtcbiAgICAgICAgdGl0bGU/OiBzdHJpbmc7XG4gICAgICAgIGljb24/OiBzdHJpbmc7XG4gICAgICAgIHRyYW5zbGF0ZT86IGJvb2xlYW47XG4gICAgICAgIFtrOiBzdHJpbmddOiBhbnk7XG4gICAgfTtcbiAgICBjaGlsZHJlbj86IFZpZXdzO1xuICAgIHJvdXRpbmc6IHtcbiAgICAgICAgcGF0aDogc3RyaW5nO1xuICAgICAgICBtYXRjaD86IGJvb2xlYW47XG4gICAgfTtcblxuICAgIFtrOiBzdHJpbmddOiBhbnk7XG59XG5cbi8qKlxuICogRGVmaW5lcyB0aGUgYWNjZXNzIGNvbnN0cmFpbnRzIG9mIGFuIGFwcGxpY2F0aW9uIHZpZXdcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBY2Nlc3Mge1xuICAgIC8qKlxuICAgICAqIGBzdHJpbmdgIGFuZCBgQXJyYXk8c3RyaW5nPmAgdHlwZXMgYXJlIGRlcHJlY2F0ZWQgYW5kIHN1cHBvcnQgZm9yIHRoZW0gd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHZlcnNpb24uXG4gICAgICpcbiAgICAgKiAgRm9yIGBzdHJpbmdgIHZhbHVlcyB0aGUgZm9ybWF0IGlzOiA8bmV0IGltcG9ydCBpZD4uPHJvbGUgbmFtZT5cbiAgICAgKi9cbiAgICByb2xlPzogQXJyYXk8c3RyaW5nPiB8IHN0cmluZyB8IFJvbGVBY2Nlc3MgfCBBcnJheTxSb2xlQWNjZXNzPjtcbiAgICBncm91cD86IEFycmF5PHN0cmluZz4gfCBzdHJpbmc7XG4gICAgYXV0aG9yaXR5PzogQXJyYXk8c3RyaW5nPiB8IHN0cmluZztcblxuICAgIFtrOiBzdHJpbmddOiBhbnk7XG59XG5cbi8qKlxuICogRGVmaW5lcyBhIHNpbmdsZSByb2xlIGFjY2VzcyBjb25zdHJhaW50XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUm9sZUFjY2VzcyB7XG4gICAgLyoqXG4gICAgICogUHJvY2VzcyBpZGVudGlmaWVyIChpbXBvcnQgSUQpXG4gICAgICovXG4gICAgcHJvY2Vzc0lkOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogUm9sZSBpbXBvcnQgSURcbiAgICAgKi9cbiAgICByb2xlSWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDYXNlTGF5b3V0IHtcbiAgICBuYW1lOiAnY2FzZVZpZXcnO1xuICAgIHBhcmFtczogb2JqZWN0O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRhc2tMYXlvdXQge1xuICAgIG5hbWU6ICd0YXNrVmlldyc7XG4gICAgcGFyYW1zOiBvYmplY3Q7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VydmljZXMge1xuICAgIGxvZz86IHtcbiAgICAgICAgbGV2ZWw/OiBzdHJpbmc7XG4gICAgICAgIGxvZ1dpdGhEYXRlPzogYm9vbGVhbjtcbiAgICAgICAgc2VyaWFsaXplUGFyYW1zPzogYm9vbGVhbjtcbiAgICAgICAgaW5jbHVkZUxvZ0xldmVsPzogYm9vbGVhbjtcbiAgICAgICAgcHVibGlzaGVycz86IEFycmF5PGFueT47XG4gICAgICAgIFtrOiBzdHJpbmddOiBhbnk7XG4gICAgfTtcbiAgICBhdXRoPzoge1xuICAgICAgICBsb2dvdXRSZWRpcmVjdD86IHN0cmluZztcbiAgICAgICAgbG9naW5SZWRpcmVjdD86IHN0cmluZztcbiAgICB9O1xuICAgIHJvdXRpbmc/OiB7XG4gICAgICAgIGRlZmF1bHRSZWRpcmVjdD86IHN0cmluZztcbiAgICAgICAgd2lsZGNhcmRSZWRpcmVjdD86IHN0cmluZztcbiAgICB9O1xuICAgIGRhdGFGaWVsZHM/OiB7XG4gICAgICAgIHRlbXBsYXRlPzogc3RyaW5nLFxuICAgICAgICBhcHBlYXJhbmNlPzogc3RyaW5nXG4gICAgfTtcbiAgICBsZWdhbDoge1xuICAgICAgICB0ZXJtc09mU2VydmljZTogc3RyaW5nLFxuICAgICAgICBwcml2YWN5UG9saWN5OiBzdHJpbmdcbiAgICB9O1xuICAgIGdyb3VwTmF2aWdhdGlvbj86IHtcbiAgICAgICAgZ3JvdXBOYXZpZ2F0aW9uUm91dGU6IHN0cmluZyxcbiAgICB9O1xuXG4gICAgW2s6IHN0cmluZ106IGFueTtcbn1cbiJdfQ==
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2NvbW1vbnMvc2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDRJQUE0STtBQUM1SSwySUFBMkk7QUFDM0ksMklBQTJJO0FBQzNJLG1JQUFtSTtBQUNuSSw2Q0FBNkMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUT0RPIEJVRyAxNy40LjIwMjAgLSB0aGlzIGZpbGUgc2hvdWxkIGNvbnRhaW4gdmVyeSBwcmVjaXNlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBpbnRlbmRlZCBzdHJ1Y3R1cmUgb2YgbmFlLmpzb24gQlVUIHRoaXMgaXMgYSAuZC50cyBmaWxlLlxuLy8gIElmIHdlIGluY2x1ZGUgb3RoZXIgaW50ZXJmYWNlcyBmcm9tIHRoZSBsaWIgaW50byB0aGlzIGZpbGUsIHNjaGVtYXRpYyBjb21waWxhdGlvbiBmYWlscy4gU2NoZW1hdGljcyByZWZlcmVuY2UgdGhpcyBmaWxlIHdpdGhvdXQgcHJvYmxlbVxuLy8gIGJ1dCB0aGV5IGNhbid0IHJlZmVyZW5jZSBmaWxlcyBhYm92ZSB0aGVpciBzb3VyY2VSb290IGRlY2xhcmVkIGluIHRoZWlyIHRzY29uZmlnIGZpbGUuIFNpbmNlIHRoaXMgZmlsZSBpcyAuZC50cyBpdCBydW5zIHdpdGhvdXQgYW55Ym9keVxuLy8gIG5vdGljaW5nLiBIb3dldmVyIGFzIHNvb24gYXMgd2UgaW5jbHVkZSBvdGhlciBpbnRlcmZhY2VzIGZyb20gdGhlIGxpYiBoZXJlLCBzY2hlbWF0aWNzIHdpbGwgcmVmZXJlbmNlIHRoZW0gYW5kIGZhaWwgdG8gY29tcGlsZS5cbi8vICBXZSBuZWVkIHRvIGZpbmQgYSBnb29kIHNvbHV0aW9uIGZvciB0aGlzLlxuXG4vKipcbiAqIFRoaXMgZmlsZSBpcyBzaW5nbGUgcG9pbnQgb2YgdHJ1dGggZm9yIE5BRSBmcm9udGVuZCBjb25maWd1cmF0aW9uIHNjaGVtYS5cbiAqL1xuXG5leHBvcnQgdHlwZSBSZXNvdXJjZXMgPVxuICAgIHwgUmVzb3VyY2VcbiAgICB8IEFycmF5PFJlc291cmNlPjtcblxuLyoqXG4gKiBTY2hlbWEgZm9yIE5BRSBjb25maWd1cmF0aW9uIG9iamVjdFxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5ldGdyaWZBcHBsaWNhdGlvbkVuZ2luZSB7XG4gICAgcHJvdmlkZXJzOiBTZXRBdXRoQW5kUmVzb3VyY2VzQWRkcmVzcztcbiAgICB0aGVtZTogVGhlbWU7XG4gICAgbG9jYWxlcz86IExvY2FsZXM7XG4gICAgZmlsdGVycz86IEZpbHRlcnM7XG4gICAgdmlld3M6IFZpZXdzO1xuICAgIHNlcnZpY2VzPzogU2VydmljZXM7XG5cbiAgICBbazogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvY2FsZXMge1xuICAgIC8qKlxuICAgICAqIEtleSBpcyBsb2NhbGUgY29kZSAoSVNPNjM5LTEgJy0nIElTTzMxNjYtMSlcbiAgICAgKiBWYWx1ZSBpcyBhIGZpbGUgb2YgdHJhbnNsYXRpb25cbiAgICAgKi9cbiAgICBbazogc3RyaW5nXTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNldEF1dGhBbmRSZXNvdXJjZXNBZGRyZXNzIHtcbiAgICBhdXRoOiBBdXRoO1xuICAgIHJlc291cmNlczogUmVzb3VyY2VzO1xuXG4gICAgW2s6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdXRoIHtcbiAgICBhZGRyZXNzOiBzdHJpbmc7XG4gICAgYXV0aGVudGljYXRpb246IHN0cmluZztcbiAgICBzZXNzaW9uQmVhcmVyPzogc3RyaW5nO1xuICAgIGVuZHBvaW50cz86IHN0cmluZyB8IHsgW2s6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gICAgW2s6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXNvdXJjZSB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGFkZHJlc3M6IHN0cmluZztcbiAgICBmb3JtYXQ6IHN0cmluZztcbiAgICBvcGVuQXBpPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRoZW1lIHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgcGFsbGV0czoge1xuICAgICAgICBsaWdodDoge1xuICAgICAgICAgICAgcHJpbWFyeTpcbiAgICAgICAgICAgICAgICBzdHJpbmdcbiAgICAgICAgICAgICAgICB8IHtcbiAgICAgICAgICAgICAgICAnNTAnPzogc3RyaW5nO1xuICAgICAgICAgICAgICAgICcxMDAnPzogc3RyaW5nO1xuICAgICAgICAgICAgICAgICcyMDAnPzogc3RyaW5nO1xuICAgICAgICAgICAgICAgICczMDAnPzogc3RyaW5nO1xuICAgICAgICAgICAgICAgICc0MDAnPzogc3RyaW5nO1xuICAgICAgICAgICAgICAgICc1MDAnPzogc3RyaW5nO1xuICAgICAgICAgICAgICAgICc2MDAnPzogc3RyaW5nO1xuICAgICAgICAgICAgICAgICc3MDAnPzogc3RyaW5nO1xuICAgICAgICAgICAgICAgICc4MDAnPzogc3RyaW5nO1xuICAgICAgICAgICAgICAgICc5MDAnPzogc3RyaW5nO1xuICAgICAgICAgICAgICAgIGNvbnRyYXN0PzogeyAnbGlnaHQnOiBBcnJheTxzdHJpbmc+OyAnZGFyayc6IEFycmF5PHN0cmluZz47IH07XG4gICAgICAgICAgICAgICAgW2s6IHN0cmluZ106IGFueTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBzZWNvbmRhcnk/OlxuICAgICAgICAgICAgICAgIHN0cmluZ1xuICAgICAgICAgICAgICAgIHwge1xuICAgICAgICAgICAgICAgICc1MCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzEwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzIwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzMwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzQwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzUwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzYwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzcwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzgwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzkwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgY29udHJhc3Q/OiB7ICdsaWdodCc6IEFycmF5PHN0cmluZz47ICdkYXJrJzogQXJyYXk8c3RyaW5nPjsgfTtcbiAgICAgICAgICAgICAgICBbazogc3RyaW5nXTogYW55O1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdhcm4/OlxuICAgICAgICAgICAgICAgIHN0cmluZ1xuICAgICAgICAgICAgICAgIHwge1xuICAgICAgICAgICAgICAgICc1MCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzEwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzIwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzMwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzQwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzUwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzYwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzcwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzgwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzkwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgY29udHJhc3Q/OiB7ICdsaWdodCc6IEFycmF5PHN0cmluZz47ICdkYXJrJzogQXJyYXk8c3RyaW5nPjsgfTtcbiAgICAgICAgICAgICAgICBbazogc3RyaW5nXTogYW55O1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIFtrOiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH07XG4gICAgICAgIGRhcms/OiB7XG4gICAgICAgICAgICBwcmltYXJ5PzpcbiAgICAgICAgICAgICAgICBzdHJpbmdcbiAgICAgICAgICAgICAgICB8IHtcbiAgICAgICAgICAgICAgICAnNTAnPzogc3RyaW5nO1xuICAgICAgICAgICAgICAgICcxMDAnPzogc3RyaW5nO1xuICAgICAgICAgICAgICAgICcyMDAnPzogc3RyaW5nO1xuICAgICAgICAgICAgICAgICczMDAnPzogc3RyaW5nO1xuICAgICAgICAgICAgICAgICc0MDAnPzogc3RyaW5nO1xuICAgICAgICAgICAgICAgICc1MDAnPzogc3RyaW5nO1xuICAgICAgICAgICAgICAgICc2MDAnPzogc3RyaW5nO1xuICAgICAgICAgICAgICAgICc3MDAnPzogc3RyaW5nO1xuICAgICAgICAgICAgICAgICc4MDAnPzogc3RyaW5nO1xuICAgICAgICAgICAgICAgICc5MDAnPzogc3RyaW5nO1xuICAgICAgICAgICAgICAgIGNvbnRyYXN0PzogeyAnbGlnaHQnOiBBcnJheTxzdHJpbmc+OyAnZGFyayc6IEFycmF5PHN0cmluZz47IH07XG4gICAgICAgICAgICAgICAgW2s6IHN0cmluZ106IGFueTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBzZWNvbmRhcnk/OlxuICAgICAgICAgICAgICAgIHN0cmluZ1xuICAgICAgICAgICAgICAgIHwge1xuICAgICAgICAgICAgICAgICc1MCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzEwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzIwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzMwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzQwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzUwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzYwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzcwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzgwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzkwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgY29udHJhc3Q/OiB7ICdsaWdodCc6IEFycmF5PHN0cmluZz47ICdkYXJrJzogQXJyYXk8c3RyaW5nPjsgfTtcbiAgICAgICAgICAgICAgICBbazogc3RyaW5nXTogYW55O1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdhcm4/OlxuICAgICAgICAgICAgICAgIHN0cmluZ1xuICAgICAgICAgICAgICAgIHwge1xuICAgICAgICAgICAgICAgICc1MCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzEwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzIwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzMwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzQwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzUwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzYwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzcwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzgwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgJzkwMCc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgY29udHJhc3Q/OiB7ICdsaWdodCc6IEFycmF5PHN0cmluZz47ICdkYXJrJzogQXJyYXk8c3RyaW5nPjsgfTtcbiAgICAgICAgICAgICAgICBbazogc3RyaW5nXTogYW55O1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIFtrOiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH07XG4gICAgICAgIFtrOiBzdHJpbmddOiBhbnk7XG4gICAgfTtcblxuICAgIFtrOiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsdGVycyB7XG4gICAgW2s6IHN0cmluZ106IENvbmZpZ0ZpbHRlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb25maWdGaWx0ZXIge1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgYWNjZXNzPzogc3RyaW5nO1xuICAgIGJvZHk6IG9iamVjdCB8IEFycmF5PG9iamVjdD47XG4gICAgdHlwZTogJ1Rhc2snIHwgJ0Nhc2UnO1xuICAgIG1lcmdlT3BlcmF0b3I/OiAnQU5EJyB8ICdPUic7XG5cbiAgICBbazogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFZpZXdzIHtcbiAgICAvKipcbiAgICAgKiBUaGlzIGludGVyZmFjZSB3YXMgcmVmZXJlbmNlZCBieSBgdW5kZWZpbmVkYCdzIEpTT04tU2NoZW1hIGRlZmluaXRpb25cbiAgICAgKiB2aWEgdGhlIGBwYXR0ZXJuUHJvcGVydHlgIFwiXlthLXpBLVowLTlfXSskXCIuXG4gICAgICovXG4gICAgW2s6IHN0cmluZ106IFZpZXc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmlldyB7XG4gICAgbGF5b3V0Pzoge1xuICAgICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICAgIGVuYWJsZUNhc2VUaXRsZT86IGJvb2xlYW47XG4gICAgICAgIGlzQ2FzZVRpdGxlUmVxdWlyZWQ/OiBib29sZWFuO1xuICAgICAgICBzaG93RGVsZXRlTWVudT86IGJvb2xlYW47XG4gICAgICAgIGNvbmZpcm1Xb3JrZmxvd0RlbGV0aW9uPzogYm9vbGVhbjtcbiAgICAgICAgcGFyYW1zPzoge1xuICAgICAgICAgICAgb3JpZW50YXRpb24/OiBzdHJpbmc7XG4gICAgICAgICAgICBbazogc3RyaW5nXTogYW55O1xuICAgICAgICB9O1xuICAgICAgICAvKipcbiAgICAgICAgICogT3ZlcnJpZGUgYXV0b2dlbmVyYXRlZCBuYW1lLiAnQ29tcG9uZW50JyB3aWxsIGJlIGFwcGVuZGVkIGF1dG9tYXRpY2FsbHkuXG4gICAgICAgICAqL1xuICAgICAgICBjb21wb25lbnROYW1lPzogc3RyaW5nO1xuICAgICAgICBbazogc3RyaW5nXTogYW55O1xuICAgIH07XG4gICAgLyoqXG4gICAgICogVXNlIG93biBjdXN0b20gY29tcG9uZW50IGZvciB0aGlzIHZpZXdcbiAgICAgKi9cbiAgICBjb21wb25lbnQ/OiB7XG4gICAgICAgIGNsYXNzOiBzdHJpbmc7XG4gICAgICAgIGZyb206IHN0cmluZztcbiAgICB9O1xuICAgIC8vIGxheW91dDogQ2FzZUxheW91dCB8IFRhc2tMYXlvdXQ7XG4gICAgYWNjZXNzOlxuICAgICAgICB8ICdwdWJsaWMnIHwgJ3ByaXZhdGUnXG4gICAgICAgIHwgQWNjZXNzO1xuICAgIG5hdmlnYXRpb246XG4gICAgICAgIHwgYm9vbGVhblxuICAgICAgICB8IHtcbiAgICAgICAgdGl0bGU/OiBzdHJpbmc7XG4gICAgICAgIGljb24/OiBzdHJpbmc7XG4gICAgICAgIHRyYW5zbGF0ZT86IGJvb2xlYW47XG4gICAgICAgIFtrOiBzdHJpbmddOiBhbnk7XG4gICAgfTtcbiAgICBjaGlsZHJlbj86IFZpZXdzO1xuICAgIHJvdXRpbmc6IHtcbiAgICAgICAgcGF0aDogc3RyaW5nO1xuICAgICAgICBtYXRjaD86IGJvb2xlYW47XG4gICAgfTtcblxuICAgIFtrOiBzdHJpbmddOiBhbnk7XG59XG5cbi8qKlxuICogRGVmaW5lcyB0aGUgYWNjZXNzIGNvbnN0cmFpbnRzIG9mIGFuIGFwcGxpY2F0aW9uIHZpZXdcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBY2Nlc3Mge1xuICAgIC8qKlxuICAgICAqIGBzdHJpbmdgIGFuZCBgQXJyYXk8c3RyaW5nPmAgdHlwZXMgYXJlIGRlcHJlY2F0ZWQgYW5kIHN1cHBvcnQgZm9yIHRoZW0gd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHZlcnNpb24uXG4gICAgICpcbiAgICAgKiAgRm9yIGBzdHJpbmdgIHZhbHVlcyB0aGUgZm9ybWF0IGlzOiA8bmV0IGltcG9ydCBpZD4uPHJvbGUgbmFtZT5cbiAgICAgKi9cbiAgICByb2xlPzogQXJyYXk8c3RyaW5nPiB8IHN0cmluZyB8IFJvbGVBY2Nlc3MgfCBBcnJheTxSb2xlQWNjZXNzPjtcbiAgICBiYW5uZWRSb2xlPzogQXJyYXk8c3RyaW5nPiB8IHN0cmluZyB8IFJvbGVBY2Nlc3MgfCBBcnJheTxSb2xlQWNjZXNzPjtcbiAgICBncm91cD86IEFycmF5PHN0cmluZz4gfCBzdHJpbmc7XG4gICAgYXV0aG9yaXR5PzogQXJyYXk8c3RyaW5nPiB8IHN0cmluZztcblxuICAgIFtrOiBzdHJpbmddOiBhbnk7XG59XG5cbi8qKlxuICogRGVmaW5lcyBhIHNpbmdsZSByb2xlIGFjY2VzcyBjb25zdHJhaW50XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUm9sZUFjY2VzcyB7XG4gICAgLyoqXG4gICAgICogUHJvY2VzcyBpZGVudGlmaWVyIChpbXBvcnQgSUQpXG4gICAgICovXG4gICAgcHJvY2Vzc0lkOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogUm9sZSBpbXBvcnQgSURcbiAgICAgKi9cbiAgICByb2xlSWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDYXNlTGF5b3V0IHtcbiAgICBuYW1lOiAnY2FzZVZpZXcnO1xuICAgIHBhcmFtczogb2JqZWN0O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRhc2tMYXlvdXQge1xuICAgIG5hbWU6ICd0YXNrVmlldyc7XG4gICAgcGFyYW1zOiBvYmplY3Q7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VydmljZXMge1xuICAgIGxvZz86IHtcbiAgICAgICAgbGV2ZWw/OiBzdHJpbmc7XG4gICAgICAgIGxvZ1dpdGhEYXRlPzogYm9vbGVhbjtcbiAgICAgICAgc2VyaWFsaXplUGFyYW1zPzogYm9vbGVhbjtcbiAgICAgICAgaW5jbHVkZUxvZ0xldmVsPzogYm9vbGVhbjtcbiAgICAgICAgcHVibGlzaGVycz86IEFycmF5PGFueT47XG4gICAgICAgIFtrOiBzdHJpbmddOiBhbnk7XG4gICAgfTtcbiAgICBhdXRoPzoge1xuICAgICAgICBsb2dvdXRSZWRpcmVjdD86IHN0cmluZztcbiAgICAgICAgbG9naW5SZWRpcmVjdD86IHN0cmluZztcbiAgICB9O1xuICAgIHJvdXRpbmc/OiB7XG4gICAgICAgIGRlZmF1bHRSZWRpcmVjdD86IHN0cmluZztcbiAgICAgICAgd2lsZGNhcmRSZWRpcmVjdD86IHN0cmluZztcbiAgICB9O1xuICAgIGRhdGFGaWVsZHM/OiB7XG4gICAgICAgIHRlbXBsYXRlPzogc3RyaW5nLFxuICAgICAgICBhcHBlYXJhbmNlPzogc3RyaW5nXG4gICAgfTtcbiAgICBsZWdhbDoge1xuICAgICAgICB0ZXJtc09mU2VydmljZTogc3RyaW5nLFxuICAgICAgICBwcml2YWN5UG9saWN5OiBzdHJpbmdcbiAgICB9O1xuICAgIGdyb3VwTmF2aWdhdGlvbj86IHtcbiAgICAgICAgZ3JvdXBOYXZpZ2F0aW9uUm91dGU6IHN0cmluZyxcbiAgICB9O1xuXG4gICAgW2s6IHN0cmluZ106IGFueTtcbn1cbiJdfQ==
@@ -24,6 +24,9 @@ export class AbstractAuthenticationOverlayComponent {
24
24
  if (!!user && !!user.id && user.id.length > 0) {
25
25
  this.redirect(!active);
26
26
  }
27
+ else if (!active) {
28
+ this._spinnerOverlay.spin$.next(false);
29
+ }
27
30
  });
28
31
  });
29
32
  }
@@ -63,4 +66,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
63
66
  template: ''
64
67
  }]
65
68
  }], ctorParameters: function () { return [{ type: i1.SessionService }, { type: i2.SpinnerOverlayService }, { type: i3.Router }, { type: i4.RedirectService }, { type: i5.UserService }]; } });
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtYXV0aGVudGljYXRpb24tb3ZlcmxheS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvYXV0aGVudGljYXRpb24vY29tcG9uZW50cy9hYnN0cmFjdC1hdXRoZW50aWNhdGlvbi1vdmVybGF5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQW9CLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBWTNELE1BQU0sT0FBZ0Isc0NBQXNDO0lBSXhELFlBQXNCLFFBQXdCLEVBQVksZUFBc0MsRUFDMUUsTUFBYyxFQUFZLGVBQWdDLEVBQVksV0FBd0I7UUFEOUYsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFBWSxvQkFBZSxHQUFmLGVBQWUsQ0FBdUI7UUFDMUUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFZLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUFZLGdCQUFXLEdBQVgsV0FBVyxDQUFhO0lBQ3BILENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRTtZQUN4QixJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ25DO2FBQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFO1lBQzdELElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN0QyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDekQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUNwQyxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO3dCQUMzQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7cUJBQzFCO2dCQUNMLENBQUMsQ0FBQyxDQUFDO1lBQ1AsQ0FBQyxDQUFDLENBQUM7U0FDTjthQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFO1lBQ2hFLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN0QyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsRUFBRTtnQkFDdEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUMvQixDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0wsQ0FBQztJQUVTLFFBQVEsQ0FBQyxJQUFJO1FBQ25CLElBQUksSUFBSSxFQUFFO1lBQ04sSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUU7Z0JBQ3hCLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUM7YUFDbkM7U0FDSjtJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDakM7UUFDRCxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUN0QztRQUNELElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNYLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDM0I7SUFDTCxDQUFDOztvSUEvQ2lCLHNDQUFzQzt3SEFBdEMsc0NBQXNDLGlFQUY5QyxFQUFFOzRGQUVNLHNDQUFzQztrQkFKM0QsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxRQUFRLEVBQUUsRUFBRTtpQkFDZiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1Nlc3Npb25TZXJ2aWNlfSBmcm9tICcuLi9zZXNzaW9uL3NlcnZpY2VzL3Nlc3Npb24uc2VydmljZSc7XG5pbXBvcnQge1NwaW5uZXJPdmVybGF5U2VydmljZX0gZnJvbSAnLi4vLi4vdXRpbGl0eS9zZXJ2aWNlL3NwaW5uZXItb3ZlcmxheS5zZXJ2aWNlJztcbmltcG9ydCB7Um91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtSZWRpcmVjdFNlcnZpY2V9IGZyb20gJy4uLy4uL3JvdXRpbmcvcmVkaXJlY3Qtc2VydmljZS9yZWRpcmVjdC5zZXJ2aWNlJztcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7VXNlclNlcnZpY2V9IGZyb20gJy4uLy4uL3VzZXIvc2VydmljZXMvdXNlci5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduY2MtYWJzdHJhY3QtYXV0aC1vdmVybGF5JyxcbiAgICB0ZW1wbGF0ZTogJydcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RBdXRoZW50aWNhdGlvbk92ZXJsYXlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgcHJvdGVjdGVkIHN1YlNlc3Npb246IFN1YnNjcmlwdGlvbjtcbiAgICBwcm90ZWN0ZWQgdXNlcjogU3Vic2NyaXB0aW9uO1xuICAgIHByb3RlY3RlZCBzdWJJbml0aWFsaXppbmc6IFN1YnNjcmlwdGlvbjtcbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlLCBwcm90ZWN0ZWQgX3NwaW5uZXJPdmVybGF5OiBTcGlubmVyT3ZlcmxheVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIHJvdXRlcjogUm91dGVyLCBwcm90ZWN0ZWQgcmVkaXJlY3RTZXJ2aWNlOiBSZWRpcmVjdFNlcnZpY2UsIHByb3RlY3RlZCB1c2VyU2VydmljZTogVXNlclNlcnZpY2UpIHtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX3Nlc3Npb24udmVyaWZpZWQpIHtcbiAgICAgICAgICAgIHRoaXMucmVkaXJlY3RTZXJ2aWNlLnJlZGlyZWN0KCk7XG4gICAgICAgIH0gZWxzZSBpZiAoIXRoaXMuX3Nlc3Npb24udmVyaWZpZWQgJiYgdGhpcy5fc2Vzc2lvbi5pc1ZlcmlmeWluZykge1xuICAgICAgICAgICAgdGhpcy5fc3Bpbm5lck92ZXJsYXkuc3BpbiQubmV4dCh0cnVlKTtcbiAgICAgICAgICAgIHRoaXMuc3ViU2Vzc2lvbiA9IHRoaXMuX3Nlc3Npb24udmVyaWZ5aW5nLnN1YnNjcmliZShhY3RpdmUgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudXNlclNlcnZpY2UudXNlciQuc3Vic2NyaWJlKHVzZXIgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoISF1c2VyICYmICEhdXNlci5pZCAmJiB1c2VyLmlkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVkaXJlY3QoIWFjdGl2ZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLl9zZXNzaW9uLnZlcmlmaWVkICYmICF0aGlzLl9zZXNzaW9uLmlzSW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX3NwaW5uZXJPdmVybGF5LnNwaW4kLm5leHQodHJ1ZSk7XG4gICAgICAgICAgICB0aGlzLnN1YkluaXRpYWxpemluZyA9IHRoaXMuX3Nlc3Npb24uaW5pdGlhbGl6aW5nLnN1YnNjcmliZShpbml0aWFsaXplZCA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZWRpcmVjdChpbml0aWFsaXplZCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCByZWRpcmVjdChib29sKTogdm9pZCB7XG4gICAgICAgIGlmIChib29sKSB7XG4gICAgICAgICAgICB0aGlzLl9zcGlubmVyT3ZlcmxheS5zcGluJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICAgIGlmICh0aGlzLl9zZXNzaW9uLnZlcmlmaWVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZWRpcmVjdFNlcnZpY2UucmVkaXJlY3QoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zdWJTZXNzaW9uKSB7XG4gICAgICAgICAgICB0aGlzLnN1YlNlc3Npb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zdWJJbml0aWFsaXppbmcpIHtcbiAgICAgICAgICAgIHRoaXMuc3ViSW5pdGlhbGl6aW5nLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMudXNlcikge1xuICAgICAgICAgICAgdGhpcy51c2VyLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtYXV0aGVudGljYXRpb24tb3ZlcmxheS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvYXV0aGVudGljYXRpb24vY29tcG9uZW50cy9hYnN0cmFjdC1hdXRoZW50aWNhdGlvbi1vdmVybGF5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQW9CLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBWTNELE1BQU0sT0FBZ0Isc0NBQXNDO0lBSXhELFlBQXNCLFFBQXdCLEVBQVksZUFBc0MsRUFDMUUsTUFBYyxFQUFZLGVBQWdDLEVBQVksV0FBd0I7UUFEOUYsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFBWSxvQkFBZSxHQUFmLGVBQWUsQ0FBdUI7UUFDMUUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFZLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUFZLGdCQUFXLEdBQVgsV0FBVyxDQUFhO0lBQ3BILENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRTtZQUN4QixJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ25DO2FBQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFO1lBQzdELElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN0QyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDekQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUNwQyxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO3dCQUMzQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7cUJBQzFCO3lCQUFNLElBQUksQ0FBQyxNQUFNLEVBQUU7d0JBQ2hCLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztxQkFDMUM7Z0JBQ0wsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDLENBQUMsQ0FBQztTQUNOO2FBQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUU7WUFDaEUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3RDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxFQUFFO2dCQUN0RSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQy9CLENBQUMsQ0FBQyxDQUFDO1NBQ047SUFDTCxDQUFDO0lBRVMsUUFBUSxDQUFDLElBQUk7UUFDbkIsSUFBSSxJQUFJLEVBQUU7WUFDTixJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdkMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRTtnQkFDeEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQzthQUNuQztTQUNKO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDakIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNqQztRQUNELElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN0QixJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3RDO1FBQ0QsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUMzQjtJQUNMLENBQUM7O29JQWpEaUIsc0NBQXNDO3dIQUF0QyxzQ0FBc0MsaUVBRjlDLEVBQUU7NEZBRU0sc0NBQXNDO2tCQUozRCxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLFFBQVEsRUFBRSxFQUFFO2lCQUNmIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7U2Vzc2lvblNlcnZpY2V9IGZyb20gJy4uL3Nlc3Npb24vc2VydmljZXMvc2Vzc2lvbi5zZXJ2aWNlJztcbmltcG9ydCB7U3Bpbm5lck92ZXJsYXlTZXJ2aWNlfSBmcm9tICcuLi8uLi91dGlsaXR5L3NlcnZpY2Uvc3Bpbm5lci1vdmVybGF5LnNlcnZpY2UnO1xuaW1wb3J0IHtSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1JlZGlyZWN0U2VydmljZX0gZnJvbSAnLi4vLi4vcm91dGluZy9yZWRpcmVjdC1zZXJ2aWNlL3JlZGlyZWN0LnNlcnZpY2UnO1xuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtVc2VyU2VydmljZX0gZnJvbSAnLi4vLi4vdXNlci9zZXJ2aWNlcy91c2VyLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25jYy1hYnN0cmFjdC1hdXRoLW92ZXJsYXknLFxuICAgIHRlbXBsYXRlOiAnJ1xufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdEF1dGhlbnRpY2F0aW9uT3ZlcmxheUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBwcm90ZWN0ZWQgc3ViU2Vzc2lvbjogU3Vic2NyaXB0aW9uO1xuICAgIHByb3RlY3RlZCB1c2VyOiBTdWJzY3JpcHRpb247XG4gICAgcHJvdGVjdGVkIHN1YkluaXRpYWxpemluZzogU3Vic2NyaXB0aW9uO1xuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsIHByb3RlY3RlZCBfc3Bpbm5lck92ZXJsYXk6IFNwaW5uZXJPdmVybGF5U2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgcm91dGVyOiBSb3V0ZXIsIHByb3RlY3RlZCByZWRpcmVjdFNlcnZpY2U6IFJlZGlyZWN0U2VydmljZSwgcHJvdGVjdGVkIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSkge1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fc2Vzc2lvbi52ZXJpZmllZCkge1xuICAgICAgICAgICAgdGhpcy5yZWRpcmVjdFNlcnZpY2UucmVkaXJlY3QoKTtcbiAgICAgICAgfSBlbHNlIGlmICghdGhpcy5fc2Vzc2lvbi52ZXJpZmllZCAmJiB0aGlzLl9zZXNzaW9uLmlzVmVyaWZ5aW5nKSB7XG4gICAgICAgICAgICB0aGlzLl9zcGlubmVyT3ZlcmxheS5zcGluJC5uZXh0KHRydWUpO1xuICAgICAgICAgICAgdGhpcy5zdWJTZXNzaW9uID0gdGhpcy5fc2Vzc2lvbi52ZXJpZnlpbmcuc3Vic2NyaWJlKGFjdGl2ZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy51c2VyU2VydmljZS51c2VyJC5zdWJzY3JpYmUodXNlciA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghIXVzZXIgJiYgISF1c2VyLmlkICYmIHVzZXIuaWQubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWRpcmVjdCghYWN0aXZlKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghYWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zcGlubmVyT3ZlcmxheS5zcGluJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAoIXRoaXMuX3Nlc3Npb24udmVyaWZpZWQgJiYgIXRoaXMuX3Nlc3Npb24uaXNJbml0aWFsaXplZCkge1xuICAgICAgICAgICAgdGhpcy5fc3Bpbm5lck92ZXJsYXkuc3BpbiQubmV4dCh0cnVlKTtcbiAgICAgICAgICAgIHRoaXMuc3ViSW5pdGlhbGl6aW5nID0gdGhpcy5fc2Vzc2lvbi5pbml0aWFsaXppbmcuc3Vic2NyaWJlKGluaXRpYWxpemVkID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlZGlyZWN0KGluaXRpYWxpemVkKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlZGlyZWN0KGJvb2wpOiB2b2lkIHtcbiAgICAgICAgaWYgKGJvb2wpIHtcbiAgICAgICAgICAgIHRoaXMuX3NwaW5uZXJPdmVybGF5LnNwaW4kLm5leHQoZmFsc2UpO1xuICAgICAgICAgICAgaWYgKHRoaXMuX3Nlc3Npb24udmVyaWZpZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlZGlyZWN0U2VydmljZS5yZWRpcmVjdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnN1YlNlc3Npb24pIHtcbiAgICAgICAgICAgIHRoaXMuc3ViU2Vzc2lvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnN1YkluaXRpYWxpemluZykge1xuICAgICAgICAgICAgdGhpcy5zdWJJbml0aWFsaXppbmcudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy51c2VyKSB7XG4gICAgICAgICAgICB0aGlzLnVzZXIudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -45,7 +45,7 @@ export class AccessService {
45
45
  * @returns whether the user passes the role guard condition for accessing the specified view
46
46
  */
47
47
  passesRoleGuard(view, url) {
48
- return !view.access.hasOwnProperty('role') || this._roleGuard.canAccessView(view, url);
48
+ return (!view.access.hasOwnProperty('role') && !view.access.hasOwnProperty('bannedRole')) || this._roleGuard.canAccessView(view, url);
49
49
  }
50
50
  /**
51
51
  * @param view the view whose access permissions we want to check
@@ -71,4 +71,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
71
71
  providedIn: 'root'
72
72
  }]
73
73
  }], ctorParameters: function () { return [{ type: i1.ConfigurationService }, { type: i2.UserService }, { type: i3.RoleGuardService }, { type: i4.AuthorityGuardService }, { type: i5.GroupGuardService }]; } });
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMtY29yZS9zcmMvbGliL2F1dGhvcml6YXRpb24vcGVybWlzc2lvbi9hY2Nlc3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBV3pDLE1BQU0sT0FBTyxhQUFhO0lBRXRCLFlBQ1ksT0FBNkIsRUFDN0IsWUFBeUIsRUFDekIsVUFBNEIsRUFDNUIsZUFBc0MsRUFDdEMsV0FBOEI7UUFKOUIsWUFBTyxHQUFQLE9BQU8sQ0FBc0I7UUFDN0IsaUJBQVksR0FBWixZQUFZLENBQWE7UUFDekIsZUFBVSxHQUFWLFVBQVUsQ0FBa0I7UUFDNUIsb0JBQWUsR0FBZixlQUFlLENBQXVCO1FBQ3RDLGdCQUFXLEdBQVgsV0FBVyxDQUFtQjtJQUUxQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGFBQWEsQ0FBQyxJQUFVLEVBQUUsR0FBWTtRQUN6QyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNoQyxPQUFPLElBQUksQ0FBQztTQUNmO1FBRUQsSUFBSSxPQUFPLElBQUksQ0FBQyxNQUFNLEtBQUssUUFBUSxFQUFFO1lBQ2pDLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxRQUFRLEVBQUU7Z0JBQzFCLE9BQU8sSUFBSSxDQUFDO2FBQ2Y7WUFDRCxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssU0FBUyxFQUFFO2dCQUMzQixNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixJQUFJLENBQUMsTUFBTSwyQ0FBMkMsQ0FBQyxDQUFDO2FBQ3JHO1lBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQzVDO1FBRUQsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNOLEdBQUcsR0FBRyxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQztTQUM3QjtRQUVELE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxZQUFZO2VBQzlDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQztlQUMvQixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDO2VBQy9CLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxlQUFlLENBQUMsSUFBVSxFQUFFLEdBQVc7UUFDMUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksb0JBQW9CLENBQUMsSUFBVTtRQUNsQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEcsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxnQkFBZ0IsQ0FBQyxJQUFVLEVBQUUsR0FBVztRQUMzQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzdGLENBQUM7OzJHQWpFUSxhQUFhOytHQUFiLGFBQWEsY0FGVixNQUFNOzRGQUVULGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Um9sZUd1YXJkU2VydmljZX0gZnJvbSBcIi4uL3JvbGUvcm9sZS1ndWFyZC5zZXJ2aWNlXCI7XG5pbXBvcnQge0F1dGhvcml0eUd1YXJkU2VydmljZX0gZnJvbSBcIi4uL2F1dGhvcml0eS9hdXRob3JpdHktZ3VhcmQuc2VydmljZVwiO1xuaW1wb3J0IHtHcm91cEd1YXJkU2VydmljZX0gZnJvbSBcIi4uL2dyb3VwL2dyb3VwLWd1YXJkLnNlcnZpY2VcIjtcbmltcG9ydCB7Q29uZmlndXJhdGlvblNlcnZpY2V9IGZyb20gXCIuLi8uLi9jb25maWd1cmF0aW9uL2NvbmZpZ3VyYXRpb24uc2VydmljZVwiO1xuaW1wb3J0IHtWaWV3fSBmcm9tIFwiLi4vLi4vLi4vY29tbW9ucy9zY2hlbWFcIjtcbmltcG9ydCB7VXNlclNlcnZpY2V9IGZyb20gJy4uLy4uL3VzZXIvc2VydmljZXMvdXNlci5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBY2Nlc3NTZXJ2aWNlIHtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9jb25maWc6IENvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF91c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX3JvbGVHdWFyZDogUm9sZUd1YXJkU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBfYXV0aG9yaXR5R3VhcmQ6IEF1dGhvcml0eUd1YXJkU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBfZ3JvdXBHdWFyZDogR3JvdXBHdWFyZFNlcnZpY2UsXG4gICAgKSB7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIHZpZXcgdGhlIHZpZXcgd2hvc2UgYWNjZXNzIHBlcm1pc3Npb25zIHdlIHdhbnQgdG8gY2hlY2tcbiAgICAgKiBAcGFyYW0gdXJsIFVSTCB0byB3aGljaCB0aGUgdmlldyBtYXBzLiBJcyB1c2VkIG9ubHkgZm9yIGVycm9yIG1lc3NhZ2UgZ2VuZXJhdGlvblxuICAgICAqIEByZXR1cm5zIHdoZXRoZXIgdGhlIHVzZXIgY2FuIGFjY2VzcyB0aGUgcHJvdmlkZWQgdmlld1xuICAgICAqL1xuICAgIHB1YmxpYyBjYW5BY2Nlc3NWaWV3KHZpZXc6IFZpZXcsIHVybD86IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXZpZXcuaGFzT3duUHJvcGVydHkoJ2FjY2VzcycpKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2Ygdmlldy5hY2Nlc3MgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBpZiAodmlldy5hY2Nlc3MgPT09ICdwdWJsaWMnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodmlldy5hY2Nlc3MgIT09ICdwcml2YXRlJykge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBhY2Nlc3Mgb3B0aW9uICcke3ZpZXcuYWNjZXNzfScuIE9ubHkgJ3B1YmxpYycgb3IgJ3ByaXZhdGUnIGlzIGFsbG93ZWQuYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gIXRoaXMuX3VzZXJTZXJ2aWNlLnVzZXIuaXNFbXB0eSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF1cmwpIHtcbiAgICAgICAgICAgIHVybCA9IHZpZXc/LnJvdXRpbmc/LnBhdGg7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gIXRoaXMuX3VzZXJTZXJ2aWNlLnVzZXIuaXNFbXB0eSgpIC8vIEF1dGhHdWFyZFxuICAgICAgICAgICAgJiYgdGhpcy5wYXNzZXNSb2xlR3VhcmQodmlldywgdXJsKVxuICAgICAgICAgICAgJiYgdGhpcy5wYXNzZXNBdXRob3JpdHlHdWFyZCh2aWV3KVxuICAgICAgICAgICAgJiYgdGhpcy5wYXNzZXNHcm91cEd1YXJkKHZpZXcsIHVybCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIHZpZXcgdGhlIHZpZXcgd2hvc2UgYWNjZXNzIHBlcm1pc3Npb25zIHdlIHdhbnQgdG8gY2hlY2tcbiAgICAgKiBAcGFyYW0gdXJsIFVSTCB0byB3aGljaCB0aGUgdmlldyBtYXBzLiBJcyB1c2VkIG9ubHkgZm9yIGVycm9yIG1lc3NhZ2UgZ2VuZXJhdGlvblxuICAgICAqIEByZXR1cm5zIHdoZXRoZXIgdGhlIHVzZXIgcGFzc2VzIHRoZSByb2xlIGd1YXJkIGNvbmRpdGlvbiBmb3IgYWNjZXNzaW5nIHRoZSBzcGVjaWZpZWQgdmlld1xuICAgICAqL1xuICAgIHB1YmxpYyBwYXNzZXNSb2xlR3VhcmQodmlldzogVmlldywgdXJsOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF2aWV3LmFjY2Vzcy5oYXNPd25Qcm9wZXJ0eSgncm9sZScpIHx8IHRoaXMuX3JvbGVHdWFyZC5jYW5BY2Nlc3NWaWV3KHZpZXcsIHVybCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIHZpZXcgdGhlIHZpZXcgd2hvc2UgYWNjZXNzIHBlcm1pc3Npb25zIHdlIHdhbnQgdG8gY2hlY2tcbiAgICAgKiBAcmV0dXJucyB3aGV0aGVyIHRoZSB1c2VyIHBhc3NlcyB0aGUgYXV0aG9yaXR5IGd1YXJkIGNvbmRpdGlvbiBmb3IgYWNjZXNzaW5nIHRoZSBzcGVjaWZpZWQgdmlld1xuICAgICAqL1xuICAgIHB1YmxpYyBwYXNzZXNBdXRob3JpdHlHdWFyZCh2aWV3OiBWaWV3KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdmlldy5hY2Nlc3MuaGFzT3duUHJvcGVydHkoJ2F1dGhvcml0eScpIHx8IHRoaXMuX2F1dGhvcml0eUd1YXJkLmNhbkFjY2Vzc1ZpZXcodmlldyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIHZpZXcgdGhlIHZpZXcgd2hvc2UgYWNjZXNzIHBlcm1pc3Npb25zIHdlIHdhbnQgdG8gY2hlY2tcbiAgICAgKiBAcGFyYW0gdXJsIFVSTCB0byB3aGljaCB0aGUgdmlldyBtYXBzLiBJcyB1c2VkIG9ubHkgZm9yIGVycm9yIG1lc3NhZ2UgZ2VuZXJhdGlvblxuICAgICAqIEByZXR1cm5zIHdoZXRoZXIgdGhlIHVzZXIgcGFzc2VzIHRoZSByb2xlIGd1YXJkIGNvbmRpdGlvbiBmb3IgYWNjZXNzaW5nIHRoZSBzcGVjaWZpZWQgdmlld1xuICAgICAqL1xuICAgIHB1YmxpYyBwYXNzZXNHcm91cEd1YXJkKHZpZXc6IFZpZXcsIHVybDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdmlldy5hY2Nlc3MuaGFzT3duUHJvcGVydHkoJ2dyb3VwJykgfHwgdGhpcy5fZ3JvdXBHdWFyZC5jYW5BY2Nlc3NWaWV3KHZpZXcsIHVybCk7XG4gICAgfVxufVxuIl19
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMtY29yZS9zcmMvbGliL2F1dGhvcml6YXRpb24vcGVybWlzc2lvbi9hY2Nlc3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBV3pDLE1BQU0sT0FBTyxhQUFhO0lBRXRCLFlBQ1ksT0FBNkIsRUFDN0IsWUFBeUIsRUFDekIsVUFBNEIsRUFDNUIsZUFBc0MsRUFDdEMsV0FBOEI7UUFKOUIsWUFBTyxHQUFQLE9BQU8sQ0FBc0I7UUFDN0IsaUJBQVksR0FBWixZQUFZLENBQWE7UUFDekIsZUFBVSxHQUFWLFVBQVUsQ0FBa0I7UUFDNUIsb0JBQWUsR0FBZixlQUFlLENBQXVCO1FBQ3RDLGdCQUFXLEdBQVgsV0FBVyxDQUFtQjtJQUUxQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGFBQWEsQ0FBQyxJQUFVLEVBQUUsR0FBWTtRQUN6QyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNoQyxPQUFPLElBQUksQ0FBQztTQUNmO1FBRUQsSUFBSSxPQUFPLElBQUksQ0FBQyxNQUFNLEtBQUssUUFBUSxFQUFFO1lBQ2pDLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxRQUFRLEVBQUU7Z0JBQzFCLE9BQU8sSUFBSSxDQUFDO2FBQ2Y7WUFDRCxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssU0FBUyxFQUFFO2dCQUMzQixNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixJQUFJLENBQUMsTUFBTSwyQ0FBMkMsQ0FBQyxDQUFDO2FBQ3JHO1lBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQzVDO1FBRUQsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNOLEdBQUcsR0FBRyxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQztTQUM3QjtRQUVELE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxZQUFZO2VBQzlDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQztlQUMvQixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDO2VBQy9CLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxlQUFlLENBQUMsSUFBVSxFQUFFLEdBQVc7UUFDMUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMxSSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksb0JBQW9CLENBQUMsSUFBVTtRQUNsQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEcsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxnQkFBZ0IsQ0FBQyxJQUFVLEVBQUUsR0FBVztRQUMzQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzdGLENBQUM7OzJHQWpFUSxhQUFhOytHQUFiLGFBQWEsY0FGVixNQUFNOzRGQUVULGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Um9sZUd1YXJkU2VydmljZX0gZnJvbSBcIi4uL3JvbGUvcm9sZS1ndWFyZC5zZXJ2aWNlXCI7XG5pbXBvcnQge0F1dGhvcml0eUd1YXJkU2VydmljZX0gZnJvbSBcIi4uL2F1dGhvcml0eS9hdXRob3JpdHktZ3VhcmQuc2VydmljZVwiO1xuaW1wb3J0IHtHcm91cEd1YXJkU2VydmljZX0gZnJvbSBcIi4uL2dyb3VwL2dyb3VwLWd1YXJkLnNlcnZpY2VcIjtcbmltcG9ydCB7Q29uZmlndXJhdGlvblNlcnZpY2V9IGZyb20gXCIuLi8uLi9jb25maWd1cmF0aW9uL2NvbmZpZ3VyYXRpb24uc2VydmljZVwiO1xuaW1wb3J0IHtWaWV3fSBmcm9tIFwiLi4vLi4vLi4vY29tbW9ucy9zY2hlbWFcIjtcbmltcG9ydCB7VXNlclNlcnZpY2V9IGZyb20gJy4uLy4uL3VzZXIvc2VydmljZXMvdXNlci5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBY2Nlc3NTZXJ2aWNlIHtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9jb25maWc6IENvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF91c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX3JvbGVHdWFyZDogUm9sZUd1YXJkU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBfYXV0aG9yaXR5R3VhcmQ6IEF1dGhvcml0eUd1YXJkU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBfZ3JvdXBHdWFyZDogR3JvdXBHdWFyZFNlcnZpY2UsXG4gICAgKSB7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIHZpZXcgdGhlIHZpZXcgd2hvc2UgYWNjZXNzIHBlcm1pc3Npb25zIHdlIHdhbnQgdG8gY2hlY2tcbiAgICAgKiBAcGFyYW0gdXJsIFVSTCB0byB3aGljaCB0aGUgdmlldyBtYXBzLiBJcyB1c2VkIG9ubHkgZm9yIGVycm9yIG1lc3NhZ2UgZ2VuZXJhdGlvblxuICAgICAqIEByZXR1cm5zIHdoZXRoZXIgdGhlIHVzZXIgY2FuIGFjY2VzcyB0aGUgcHJvdmlkZWQgdmlld1xuICAgICAqL1xuICAgIHB1YmxpYyBjYW5BY2Nlc3NWaWV3KHZpZXc6IFZpZXcsIHVybD86IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXZpZXcuaGFzT3duUHJvcGVydHkoJ2FjY2VzcycpKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2Ygdmlldy5hY2Nlc3MgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBpZiAodmlldy5hY2Nlc3MgPT09ICdwdWJsaWMnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodmlldy5hY2Nlc3MgIT09ICdwcml2YXRlJykge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBhY2Nlc3Mgb3B0aW9uICcke3ZpZXcuYWNjZXNzfScuIE9ubHkgJ3B1YmxpYycgb3IgJ3ByaXZhdGUnIGlzIGFsbG93ZWQuYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gIXRoaXMuX3VzZXJTZXJ2aWNlLnVzZXIuaXNFbXB0eSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF1cmwpIHtcbiAgICAgICAgICAgIHVybCA9IHZpZXc/LnJvdXRpbmc/LnBhdGg7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gIXRoaXMuX3VzZXJTZXJ2aWNlLnVzZXIuaXNFbXB0eSgpIC8vIEF1dGhHdWFyZFxuICAgICAgICAgICAgJiYgdGhpcy5wYXNzZXNSb2xlR3VhcmQodmlldywgdXJsKVxuICAgICAgICAgICAgJiYgdGhpcy5wYXNzZXNBdXRob3JpdHlHdWFyZCh2aWV3KVxuICAgICAgICAgICAgJiYgdGhpcy5wYXNzZXNHcm91cEd1YXJkKHZpZXcsIHVybCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIHZpZXcgdGhlIHZpZXcgd2hvc2UgYWNjZXNzIHBlcm1pc3Npb25zIHdlIHdhbnQgdG8gY2hlY2tcbiAgICAgKiBAcGFyYW0gdXJsIFVSTCB0byB3aGljaCB0aGUgdmlldyBtYXBzLiBJcyB1c2VkIG9ubHkgZm9yIGVycm9yIG1lc3NhZ2UgZ2VuZXJhdGlvblxuICAgICAqIEByZXR1cm5zIHdoZXRoZXIgdGhlIHVzZXIgcGFzc2VzIHRoZSByb2xlIGd1YXJkIGNvbmRpdGlvbiBmb3IgYWNjZXNzaW5nIHRoZSBzcGVjaWZpZWQgdmlld1xuICAgICAqL1xuICAgIHB1YmxpYyBwYXNzZXNSb2xlR3VhcmQodmlldzogVmlldywgdXJsOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICghdmlldy5hY2Nlc3MuaGFzT3duUHJvcGVydHkoJ3JvbGUnKSAmJiAhdmlldy5hY2Nlc3MuaGFzT3duUHJvcGVydHkoJ2Jhbm5lZFJvbGUnKSkgfHwgdGhpcy5fcm9sZUd1YXJkLmNhbkFjY2Vzc1ZpZXcodmlldywgdXJsKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0gdmlldyB0aGUgdmlldyB3aG9zZSBhY2Nlc3MgcGVybWlzc2lvbnMgd2Ugd2FudCB0byBjaGVja1xuICAgICAqIEByZXR1cm5zIHdoZXRoZXIgdGhlIHVzZXIgcGFzc2VzIHRoZSBhdXRob3JpdHkgZ3VhcmQgY29uZGl0aW9uIGZvciBhY2Nlc3NpbmcgdGhlIHNwZWNpZmllZCB2aWV3XG4gICAgICovXG4gICAgcHVibGljIHBhc3Nlc0F1dGhvcml0eUd1YXJkKHZpZXc6IFZpZXcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF2aWV3LmFjY2Vzcy5oYXNPd25Qcm9wZXJ0eSgnYXV0aG9yaXR5JykgfHwgdGhpcy5fYXV0aG9yaXR5R3VhcmQuY2FuQWNjZXNzVmlldyh2aWV3KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0gdmlldyB0aGUgdmlldyB3aG9zZSBhY2Nlc3MgcGVybWlzc2lvbnMgd2Ugd2FudCB0byBjaGVja1xuICAgICAqIEBwYXJhbSB1cmwgVVJMIHRvIHdoaWNoIHRoZSB2aWV3IG1hcHMuIElzIHVzZWQgb25seSBmb3IgZXJyb3IgbWVzc2FnZSBnZW5lcmF0aW9uXG4gICAgICogQHJldHVybnMgd2hldGhlciB0aGUgdXNlciBwYXNzZXMgdGhlIHJvbGUgZ3VhcmQgY29uZGl0aW9uIGZvciBhY2Nlc3NpbmcgdGhlIHNwZWNpZmllZCB2aWV3XG4gICAgICovXG4gICAgcHVibGljIHBhc3Nlc0dyb3VwR3VhcmQodmlldzogVmlldywgdXJsOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF2aWV3LmFjY2Vzcy5oYXNPd25Qcm9wZXJ0eSgnZ3JvdXAnKSB8fCB0aGlzLl9ncm91cEd1YXJkLmNhbkFjY2Vzc1ZpZXcodmlldywgdXJsKTtcbiAgICB9XG59XG4iXX0=
@@ -19,16 +19,35 @@ export class RoleGuardService {
19
19
  return this.canAccessView(view, state.url.toString());
20
20
  }
21
21
  canAccessView(view, url) {
22
- if (typeof view.access !== 'string' && view.access.hasOwnProperty('role')) {
23
- const allowedRoles = this.parseRoleConstraints(view.access.role, url);
24
- return allowedRoles.some(constraint => {
25
- if (constraint.roleIdentifier) {
26
- return this._userService.hasRoleByIdentifier(constraint.roleIdentifier, constraint.processIdentifier);
22
+ if (typeof view.access !== 'string' && (view.access.hasOwnProperty('role') || view.access.hasOwnProperty('bannedRole'))) {
23
+ if (view.access.hasOwnProperty('role') && view.access.hasOwnProperty('bannedRole')) {
24
+ const bannedRoles = this.parseRoleConstraints(view.access.bannedRole, url);
25
+ const allowedRoles = this.parseRoleConstraints(view.access.role, url);
26
+ if (bannedRoles.some(role => this.decideAccessByRole(role))) {
27
+ return false;
27
28
  }
28
- else {
29
- return this._userService.hasRoleByName(constraint.roleName, constraint.processIdentifier);
29
+ if (allowedRoles.length === 0) {
30
+ this._log.warn(`View at '${url}' defines role access constraint with an empty array!`
31
+ + ` No users will be allowed to enter this view!`);
30
32
  }
31
- });
33
+ return allowedRoles.some(role => this.decideAccessByRole(role)); // user was not denied access by a banned role, they need at least one allowed role
34
+ }
35
+ if (view.access.hasOwnProperty('bannedRole')) {
36
+ const bannedRoles = this.parseRoleConstraints(view.access.bannedRole, url);
37
+ return !bannedRoles.some(constraint => {
38
+ return this.decideAccessByRole(constraint);
39
+ });
40
+ }
41
+ if (view.access.hasOwnProperty('role')) {
42
+ const allowedRoles = this.parseRoleConstraints(view.access.role, url);
43
+ if (allowedRoles.length === 0) {
44
+ this._log.warn(`View at '${url}' defines role access constraint with an empty array!`
45
+ + ` No users will be allowed to enter this view!`);
46
+ }
47
+ return allowedRoles.some(constraint => {
48
+ return this.decideAccessByRole(constraint);
49
+ });
50
+ }
32
51
  }
33
52
  throw new Error('Role guard is declared for a view with no role guard configuration!'
34
53
  + ` Add role guard configuration for view at ${url}, or remove the guard.`);
@@ -39,8 +58,6 @@ export class RoleGuardService {
39
58
  }
40
59
  if (Array.isArray(roleConstrains)) {
41
60
  if (roleConstrains.length === 0) {
42
- this._log.warn(`View at '${viewUrl}' defines role access constraint with an empty array!`
43
- + ` No users will be allowed to enter this view!`);
44
61
  return [];
45
62
  }
46
63
  if (typeof roleConstrains[0] === 'string') {
@@ -78,6 +95,14 @@ export class RoleGuardService {
78
95
  return { processIdentifier: constraint.processId, roleIdentifier: constraint.roleId };
79
96
  });
80
97
  }
98
+ decideAccessByRole(constraint) {
99
+ if (constraint.roleIdentifier) {
100
+ return this._userService.hasRoleByIdentifier(constraint.roleIdentifier, constraint.processIdentifier);
101
+ }
102
+ else {
103
+ return this._userService.hasRoleByName(constraint.roleName, constraint.processIdentifier);
104
+ }
105
+ }
81
106
  }
82
107
  RoleGuardService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: RoleGuardService, deps: [{ token: i1.RedirectService }, { token: i2.UserService }, { token: i3.ConfigurationService }, { token: i4.LoggerService }], target: i0.ɵɵFactoryTarget.Injectable });
83
108
  RoleGuardService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: RoleGuardService, providedIn: AuthenticationModule });
@@ -87,4 +112,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
87
112
  providedIn: AuthenticationModule
88
113
  }]
89
114
  }], ctorParameters: function () { return [{ type: i1.RedirectService }, { type: i2.UserService }, { type: i3.ConfigurationService }, { type: i4.LoggerService }]; } });
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZS1ndWFyZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi9hdXRob3JpemF0aW9uL3JvbGUvcm9sZS1ndWFyZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHekMsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sNENBQTRDLENBQUM7Ozs7OztBQWlCaEYsTUFBTSxPQUFPLGdCQUFnQjtJQUl6QixZQUFzQixnQkFBaUMsRUFDakMsWUFBeUIsRUFDekIsY0FBb0MsRUFDcEMsSUFBbUI7UUFIbkIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQjtRQUNqQyxpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUN6QixtQkFBYyxHQUFkLGNBQWMsQ0FBc0I7UUFDcEMsU0FBSSxHQUFKLElBQUksQ0FBZTtRQUNyQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzlELENBQUM7SUFFRCxXQUFXLENBQUMsS0FBNkIsRUFDN0IsS0FBMEI7UUFDbEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDNUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3BFLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFTSxhQUFhLENBQUMsSUFBVSxFQUFFLEdBQVc7UUFDeEMsSUFBSSxPQUFPLElBQUksQ0FBQyxNQUFNLEtBQUssUUFBUSxJQUFJLElBQUks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aUIsRUFBRSxVQUFVLENBQUMsU0FBUyxFQUFFLGNBQWMsRUFBRSxVQUFVLENBQUMsTUFBTSxFQUFDLENBQUM7UUFDeEYsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzs4R0FsRlEsZ0JBQWdCO2tIQUFoQixnQkFBZ0IsY0FGYixvQkFBb0I7NEZBRXZCLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsb0JBQW9CO2lCQUNuQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlU25hcHNob3QsIENhbkFjdGl2YXRlLCBSb3V0ZXJTdGF0ZVNuYXBzaG90LCBVcmxUcmVlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtVc2VyU2VydmljZX0gZnJvbSAnLi4vLi4vdXNlci9zZXJ2aWNlcy91c2VyLnNlcnZpY2UnO1xuaW1wb3J0IHtBdXRoZW50aWNhdGlvbk1vZHVsZX0gZnJvbSAnLi4vLi4vYXV0aGVudGljYXRpb24vYXV0aGVudGljYXRpb24ubW9kdWxlJztcbmltcG9ydCB7UmVkaXJlY3RTZXJ2aWNlfSBmcm9tICcuLi8uLi9yb3V0aW5nL3JlZGlyZWN0LXNlcnZpY2UvcmVkaXJlY3Quc2VydmljZSc7XG5pbXBvcnQge0NvbmZpZ3VyYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9jb25maWd1cmF0aW9uL2NvbmZpZ3VyYXRpb24uc2VydmljZSc7XG5pbXBvcnQge0FjY2VzcywgUm9sZUFjY2VzcywgVmlld30gZnJvbSAnLi4vLi4vLi4vY29tbW9ucy9zY2hlbWEnO1xuaW1wb3J0IHtMb2dnZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi9sb2dnZXIvc2VydmljZXMvbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuXG5pbnRlcmZhY2UgUm9sZUNvbnN0cmFpbnQge1xuICAgIHByb2Nlc3NJZGVudGlmaWVyOiBzdHJpbmc7XG4gICAgcm9sZUlkZW50aWZpZXI/OiBzdHJpbmc7XG4gICAgcm9sZU5hbWU/OiBzdHJpbmc7XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiBBdXRoZW50aWNhdGlvbk1vZHVsZVxufSlcbmV4cG9ydCBjbGFzcyBSb2xlR3VhcmRTZXJ2aWNlIGltcGxlbWVudHMgQ2FuQWN0aXZhdGUge1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBfbG9naW5Vcmw6IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfcmVkaXJlY3RTZXJ2aWNlOiBSZWRpcmVjdFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF91c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9jb25maWdTZXJ2aWNlOiBDb25maWd1cmF0aW9uU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2xvZzogTG9nZ2VyU2VydmljZSkge1xuICAgICAgICB0aGlzLl9sb2dpblVybCA9IHRoaXMuX3JlZGlyZWN0U2VydmljZS5yZXNvbHZlTG9naW5QYXRoKCk7XG4gICAgfVxuXG4gICAgY2FuQWN0aXZhdGUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXG4gICAgICAgICAgICAgICAgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QpOiBPYnNlcnZhYmxlPGJvb2xlYW4gfCBVcmxUcmVlPiB8IFByb21pc2U8Ym9vbGVhbiB8IFVybFRyZWU+IHwgYm9vbGVhbiB8IFVybFRyZWUge1xuICAgICAgICB0aGlzLl9yZWRpcmVjdFNlcnZpY2UuaW50ZW5kZWRSb3V0ZSA9IHJvdXRlO1xuICAgICAgICBjb25zdCB2aWV3ID0gdGhpcy5fY29uZmlnU2VydmljZS5nZXRWaWV3QnlVcmwoc3RhdGUudXJsLnRvU3RyaW5nKCkpO1xuICAgICAgICByZXR1cm4gdGhpcy5jYW5BY2Nlc3NWaWV3KHZpZXcsIHN0YXRlLnVybC50b1N0cmluZygpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2FuQWNjZXNzVmlldyh2aWV3OiBWaWV3LCB1cmw6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodHlwZW9mIHZpZXcuYWNjZXNzICE9PSAnc3RyaW5nJyAmJiB2aWV3LmFjY2Vzcy5oYXNPd25Qcm9wZXJ0eSgncm9sZScpKSB7XG4gICAgICAgICAgICBjb25zdCBhbGxvd2VkUm9sZXMgPSB0aGlzLnBhcnNlUm9sZUNvbnN0cmFpbnRzKHZpZXcuYWNjZXNzLnJvbGUsIHVybCk7XG5cbiAgICAgICAgICAgIHJldHVybiBhbGxvd2VkUm9sZXMuc29tZShjb25zdHJhaW50ID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoY29uc3RyYWludC5yb2xlSWRlbnRpZmllcikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fdXNlclNlcnZpY2UuaGFzUm9sZUJ5SWRlbnRpZmllcihjb25zdHJhaW50LnJvbGVJZGVudGlmaWVyLCBjb25zdHJhaW50LnByb2Nlc3NJZGVudGlmaWVyKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fdXNlclNlcnZpY2UuaGFzUm9sZUJ5TmFtZShjb25zdHJhaW50LnJvbGVOYW1lLCBjb25zdHJhaW50LnByb2Nlc3NJZGVudGlmaWVyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JvbGUgZ3VhcmQgaXMgZGVjbGFyZWQgZm9yIGEgdmlldyB3aXRoIG5vIHJvbGUgZ3VhcmQgY29uZmlndXJhdGlvbiEnXG4gICAgICAgICAgICArIGAgQWRkIHJvbGUgZ3VhcmQgY29uZmlndXJhdGlvbiBmb3IgdmlldyBhdCAke3VybH0sIG9yIHJlbW92ZSB0aGUgZ3VhcmQuYCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHBhcnNlUm9sZUNvbnN0cmFpbnRzKHJvbGVDb25zdHJhaW5zOiBBY2Nlc3NbJ3JvbGUnXSwgdmlld1VybDogc3RyaW5nKTogQXJyYXk8Um9sZUNvbnN0cmFpbnQ+IHtcbiAgICAgICAgaWYgKHR5cGVvZiByb2xlQ29uc3RyYWlucyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnBhcnNlU3RyaW5nUm9sZUNvbnN0cmFpbnRzKHJvbGVDb25zdHJhaW5zKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShyb2xlQ29uc3RyYWlucykpIHtcbiAgICAgICAgICAgIGlmIChyb2xlQ29uc3RyYWlucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9sb2cud2FybihgVmlldyBhdCAnJHt2aWV3VXJsfScgZGVmaW5lcyByb2xlIGFjY2VzcyBjb25zdHJhaW50IHdpdGggYW4gZW1wdHkgYXJyYXkhYFxuICAgICAgICAgICAgICAgICAgICArIGAgTm8gdXNlcnMgd2lsbCBiZSBhbGxvd2VkIHRvIGVudGVyIHRoaXMgdmlldyFgKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHlwZW9mIHJvbGVDb25zdHJhaW5zWzBdID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnBhcnNlU3RyaW5nUm9sZUNvbnN0cmFpbnRzKHJvbGVDb25zdHJhaW5zIGFzIEFycmF5PHN0cmluZz4pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnBhcnNlT2JqZWN0Um9sZUNvbnN0cmFpbnMocm9sZUNvbnN0cmFpbnMgYXMgUm9sZUFjY2VzcyB8IEFycmF5PFJvbGVBY2Nlc3M+KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCBpbiA1LjAuMFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBwYXJzZVN0cmluZ1JvbGVDb25zdHJhaW50cyhyb2xlQ29uc3RyYWluczogc3RyaW5nIHwgQXJyYXk8c3RyaW5nPik6IEFycmF5PFJvbGVDb25zdHJhaW50PiB7XG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShyb2xlQ29uc3RyYWlucykpIHtcbiAgICAgICAgICAgIHJvbGVDb25zdHJhaW5zID0gW3JvbGVDb25zdHJhaW5zXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2xvZy53YXJuKCdVc2luZyBzdHJpbmcgcm9sZSBndWFyZCBjb25maWd1cmF0aW9uIGlzIGRlcHJlY2F0ZWQhIE1pZ3JhdGUgdG8gb2JqZWN0IGJhc2VkIGNvbmZpZ3VyYXRpb24gaW5zdGVhZC4nKTtcblxuICAgICAgICByZXR1cm4gcm9sZUNvbnN0cmFpbnMubWFwKGNvbnN0cmFpbnQgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc3BsaXRSb2xlQXJyYXkgPSBjb25zdHJhaW50LnNwbGl0KCcuJyk7XG4gICAgICAgICAgICBpZiAoc3BsaXRSb2xlQXJyYXkubGVuZ3RoID09PSAyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtwcm9jZXNzSWRlbnRpZmllcjogc3BsaXRSb2xlQXJyYXlbMF0sIHJvbGVOYW1lOiBzcGxpdFJvbGVBcnJheVsxXX07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUGxlYXNlIGVudGVyIHRoZSBjb3JyZWN0IGZvcm1hdCA8bmV0IGltcG9ydCBpZD4uPHJvbGUgbmFtZT4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHBhcnNlT2JqZWN0Um9sZUNvbnN0cmFpbnMocm9sZUNvbnN0cmFpbnM6IFJvbGVBY2Nlc3MgfCBBcnJheTxSb2xlQWNjZXNzPik6IEFycmF5PFJvbGVDb25zdHJhaW50PiB7XG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShyb2xlQ29uc3RyYWlucykpIHtcbiAgICAgICAgICAgIHJvbGVDb25zdHJhaW5zID0gW3JvbGVDb25zdHJhaW5zXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByb2xlQ29uc3RyYWlucy5tYXAoY29uc3RyYWludCA9PiB7XG4gICAgICAgICAgICBpZiAoIWNvbnN0cmFpbnQucm9sZUlkIHx8ICFjb25zdHJhaW50LnByb2Nlc3NJZCkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUGxlYXNlIGVudGVyIGJvdGggcHJvY2VzcyBhbmQgcm9sZSBpZCBmb3IgYSByb2xlIGNvbnN0cmFpbnQ6ICcgKyBjb25zdHJhaW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB7cHJvY2Vzc0lkZW50aWZpZXI6IGNvbnN0cmFpbnQucHJvY2Vzc0lkLCByb2xlSWRlbnRpZmllcjogY29uc3RyYWludC5yb2xlSWR9O1xuICAgICAgICB9KTtcbiAgICB9XG5cbn1cbiJdfQ==
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZS1ndWFyZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi9hdXRob3JpemF0aW9uL3JvbGUvcm9sZS1ndWFyZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHekMsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sNENBQTRDLENBQUM7Ozs7OztBQWlCaEYsTUFBTSxPQUFPLGdCQUFnQjtJQUl6QixZQUFzQixnQkFBaUMsRUFDakMsWUFBeUIsRUFDekIsY0FBb0MsRUFDcEMsSUFBbUI7UUFIbkIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQjtRQUNqQyxpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUN6QixtQkFBYyxHQUFkLGNBQWMsQ0FBc0I7UUFDcEMsU0FBSSxHQUFKLElBQUksQ0FBZTtRQUNyQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzlELENBQUM7SUFFRCxXQUFXLENBQUMsS0FBNkIsRUFDN0IsS0FBMEI7UUFDbEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDNUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3BFLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFTSxhQUFhLENBQUMsSUFBVSxFQUFFLEdBQVc7UUFDeEMsSUFBSSxPQUFPLElBQUksQ0FBQyxNQUFNLEtBQUssUUFBUSxJQUFJLENBQUMs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QUFFLFVBQVUsQ0FBQyxTQUFTLEVBQUUsY0FBYyxFQUFFLFVBQVUsQ0FBQyxNQUFNLEVBQUMsQ0FBQztRQUN4RixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxVQUEwQjtRQUNqRCxJQUFJLFVBQVUsQ0FBQyxjQUFjLEVBQUU7WUFDM0IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUUsVUFBVSxDQUFDLGlCQUFpQixDQUFDLENBQUM7U0FDekc7YUFBTTtZQUNILE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUM3RjtJQUNMLENBQUM7OzhHQWhIUSxnQkFBZ0I7a0hBQWhCLGdCQUFnQixjQUZiLG9CQUFvQjs0RkFFdkIsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxvQkFBb0I7aUJBQ25DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgQ2FuQWN0aXZhdGUsIFJvdXRlclN0YXRlU25hcHNob3QsIFVybFRyZWV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1VzZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi91c2VyL3NlcnZpY2VzL3VzZXIuc2VydmljZSc7XG5pbXBvcnQge0F1dGhlbnRpY2F0aW9uTW9kdWxlfSBmcm9tICcuLi8uLi9hdXRoZW50aWNhdGlvbi9hdXRoZW50aWNhdGlvbi5tb2R1bGUnO1xuaW1wb3J0IHtSZWRpcmVjdFNlcnZpY2V9IGZyb20gJy4uLy4uL3JvdXRpbmcvcmVkaXJlY3Qtc2VydmljZS9yZWRpcmVjdC5zZXJ2aWNlJztcbmltcG9ydCB7Q29uZmlndXJhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL2NvbmZpZ3VyYXRpb24vY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7QWNjZXNzLCBSb2xlQWNjZXNzLCBWaWV3fSBmcm9tICcuLi8uLi8uLi9jb21tb25zL3NjaGVtYSc7XG5pbXBvcnQge0xvZ2dlclNlcnZpY2V9IGZyb20gJy4uLy4uL2xvZ2dlci9zZXJ2aWNlcy9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuXG5cbmludGVyZmFjZSBSb2xlQ29uc3RyYWludCB7XG4gICAgcHJvY2Vzc0lkZW50aWZpZXI6IHN0cmluZztcbiAgICByb2xlSWRlbnRpZmllcj86IHN0cmluZztcbiAgICByb2xlTmFtZT86IHN0cmluZztcbn1cblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46IEF1dGhlbnRpY2F0aW9uTW9kdWxlXG59KVxuZXhwb3J0IGNsYXNzIFJvbGVHdWFyZFNlcnZpY2UgaW1wbGVtZW50cyBDYW5BY3RpdmF0ZSB7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9sb2dpblVybDogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIF9yZWRpcmVjdFNlcnZpY2U6IFJlZGlyZWN0U2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3VzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2NvbmZpZ1NlcnZpY2U6IENvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfbG9nOiBMb2dnZXJTZXJ2aWNlKSB7XG4gICAgICAgIHRoaXMuX2xvZ2luVXJsID0gdGhpcy5fcmVkaXJlY3RTZXJ2aWNlLnJlc29sdmVMb2dpblBhdGgoKTtcbiAgICB9XG5cbiAgICBjYW5BY3RpdmF0ZShyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcbiAgICAgICAgICAgICAgICBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCk6IE9ic2VydmFibGU8Ym9vbGVhbiB8IFVybFRyZWU+IHwgUHJvbWlzZTxib29sZWFuIHwgVXJsVHJlZT4gfCBib29sZWFuIHwgVXJsVHJlZSB7XG4gICAgICAgIHRoaXMuX3JlZGlyZWN0U2VydmljZS5pbnRlbmRlZFJvdXRlID0gcm91dGU7XG4gICAgICAgIGNvbnN0IHZpZXcgPSB0aGlzLl9jb25maWdTZXJ2aWNlLmdldFZpZXdCeVVybChzdGF0ZS51cmwudG9TdHJpbmcoKSk7XG4gICAgICAgIHJldHVybiB0aGlzLmNhbkFjY2Vzc1ZpZXcodmlldywgc3RhdGUudXJsLnRvU3RyaW5nKCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjYW5BY2Nlc3NWaWV3KHZpZXc6IFZpZXcsIHVybDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0eXBlb2Ygdmlldy5hY2Nlc3MgIT09ICdzdHJpbmcnICYmICh2aWV3LmFjY2Vzcy5oYXNPd25Qcm9wZXJ0eSgncm9sZScpIHx8IHZpZXcuYWNjZXNzLmhhc093blByb3BlcnR5KCdiYW5uZWRSb2xlJykpKSB7XG5cbiAgICAgICAgICAgIGlmICh2aWV3LmFjY2Vzcy5oYXNPd25Qcm9wZXJ0eSgncm9sZScpICYmIHZpZXcuYWNjZXNzLmhhc093blByb3BlcnR5KCdiYW5uZWRSb2xlJykpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBiYW5uZWRSb2xlcyA9IHRoaXMucGFyc2VSb2xlQ29uc3RyYWludHModmlldy5hY2Nlc3MuYmFubmVkUm9sZSwgdXJsKTtcbiAgICAgICAgICAgICAgICBjb25zdCBhbGxvd2VkUm9sZXMgPSB0aGlzLnBhcnNlUm9sZUNvbnN0cmFpbnRzKHZpZXcuYWNjZXNzLnJvbGUsIHVybCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoYmFubmVkUm9sZXMuc29tZShyb2xlID0+IHRoaXMuZGVjaWRlQWNjZXNzQnlSb2xlKHJvbGUpKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKGFsbG93ZWRSb2xlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbG9nLndhcm4oYFZpZXcgYXQgJyR7dXJsfScgZGVmaW5lcyByb2xlIGFjY2VzcyBjb25zdHJhaW50IHdpdGggYW4gZW1wdHkgYXJyYXkhYFxuICAgICAgICAgICAgICAgICAgICAgICAgKyBgIE5vIHVzZXJzIHdpbGwgYmUgYWxsb3dlZCB0byBlbnRlciB0aGlzIHZpZXchYCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBhbGxvd2VkUm9sZXMuc29tZShyb2xlID0+IHRoaXMuZGVjaWRlQWNjZXNzQnlSb2xlKHJvbGUpKTsgLy8gdXNlciB3YXMgbm90IGRlbmllZCBhY2Nlc3MgYnkgYSBiYW5uZWQgcm9sZSwgdGhleSBuZWVkIGF0IGxlYXN0IG9uZSBhbGxvd2VkIHJvbGVcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHZpZXcuYWNjZXNzLmhhc093blByb3BlcnR5KCdiYW5uZWRSb2xlJykpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBiYW5uZWRSb2xlcyA9IHRoaXMucGFyc2VSb2xlQ29uc3RyYWludHModmlldy5hY2Nlc3MuYmFubmVkUm9sZSwgdXJsKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gIWJhbm5lZFJvbGVzLnNvbWUoY29uc3RyYWludCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmRlY2lkZUFjY2Vzc0J5Um9sZShjb25zdHJhaW50KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHZpZXcuYWNjZXNzLmhhc093blByb3BlcnR5KCdyb2xlJykpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBhbGxvd2VkUm9sZXMgPSB0aGlzLnBhcnNlUm9sZUNvbnN0cmFpbnRzKHZpZXcuYWNjZXNzLnJvbGUsIHVybCk7XG4gICAgICAgICAgICAgICAgaWYgKGFsbG93ZWRSb2xlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbG9nLndhcm4oYFZpZXcgYXQgJyR7dXJsfScgZGVmaW5lcyByb2xlIGFjY2VzcyBjb25zdHJhaW50IHdpdGggYW4gZW1wdHkgYXJyYXkhYFxuICAgICAgICAgICAgICAgICAgICAgICAgKyBgIE5vIHVzZXJzIHdpbGwgYmUgYWxsb3dlZCB0byBlbnRlciB0aGlzIHZpZXchYCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBhbGxvd2VkUm9sZXMuc29tZShjb25zdHJhaW50ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGVjaWRlQWNjZXNzQnlSb2xlKGNvbnN0cmFpbnQpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignUm9sZSBndWFyZCBpcyBkZWNsYXJlZCBmb3IgYSB2aWV3IHdpdGggbm8gcm9sZSBndWFyZCBjb25maWd1cmF0aW9uISdcbiAgICAgICAgICAgICsgYCBBZGQgcm9sZSBndWFyZCBjb25maWd1cmF0aW9uIGZvciB2aWV3IGF0ICR7dXJsfSwgb3IgcmVtb3ZlIHRoZSBndWFyZC5gKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgcGFyc2VSb2xlQ29uc3RyYWludHMocm9sZUNvbnN0cmFpbnM6IEFjY2Vzc1sncm9sZSddIHwgQWNjZXNzWydiYW5uZWRSb2xlJ10sIHZpZXdVcmw6IHN0cmluZyk6IEFycmF5PFJvbGVDb25zdHJhaW50PiB7XG4gICAgICAgIGlmICh0eXBlb2Ygcm9sZUNvbnN0cmFpbnMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wYXJzZVN0cmluZ1JvbGVDb25zdHJhaW50cyhyb2xlQ29uc3RyYWlucyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocm9sZUNvbnN0cmFpbnMpKSB7XG4gICAgICAgICAgICBpZiAocm9sZUNvbnN0cmFpbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHR5cGVvZiByb2xlQ29uc3RyYWluc1swXSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wYXJzZVN0cmluZ1JvbGVDb25zdHJhaW50cyhyb2xlQ29uc3RyYWlucyBhcyBBcnJheTxzdHJpbmc+KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5wYXJzZU9iamVjdFJvbGVDb25zdHJhaW5zKHJvbGVDb25zdHJhaW5zIGFzIFJvbGVBY2Nlc3MgfCBBcnJheTxSb2xlQWNjZXNzPik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgaW4gNS4wLjBcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcGFyc2VTdHJpbmdSb2xlQ29uc3RyYWludHMocm9sZUNvbnN0cmFpbnM6IHN0cmluZyB8IEFycmF5PHN0cmluZz4pOiBBcnJheTxSb2xlQ29uc3RyYWludD4ge1xuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkocm9sZUNvbnN0cmFpbnMpKSB7XG4gICAgICAgICAgICByb2xlQ29uc3RyYWlucyA9IFtyb2xlQ29uc3RyYWluc107XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9sb2cud2FybignVXNpbmcgc3RyaW5nIHJvbGUgZ3VhcmQgY29uZmlndXJhdGlvbiBpcyBkZXByZWNhdGVkISBNaWdyYXRlIHRvIG9iamVjdCBiYXNlZCBjb25maWd1cmF0aW9uIGluc3RlYWQuJyk7XG5cbiAgICAgICAgcmV0dXJuIHJvbGVDb25zdHJhaW5zLm1hcChjb25zdHJhaW50ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNwbGl0Um9sZUFycmF5ID0gY29uc3RyYWludC5zcGxpdCgnLicpO1xuICAgICAgICAgICAgaWYgKHNwbGl0Um9sZUFycmF5Lmxlbmd0aCA9PT0gMikge1xuICAgICAgICAgICAgICAgIHJldHVybiB7cHJvY2Vzc0lkZW50aWZpZXI6IHNwbGl0Um9sZUFycmF5WzBdLCByb2xlTmFtZTogc3BsaXRSb2xlQXJyYXlbMV19O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1BsZWFzZSBlbnRlciB0aGUgY29ycmVjdCBmb3JtYXQgPG5ldCBpbXBvcnQgaWQ+Ljxyb2xlIG5hbWU+Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBwYXJzZU9iamVjdFJvbGVDb25zdHJhaW5zKHJvbGVDb25zdHJhaW5zOiBSb2xlQWNjZXNzIHwgQXJyYXk8Um9sZUFjY2Vzcz4pOiBBcnJheTxSb2xlQ29uc3RyYWludD4ge1xuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkocm9sZUNvbnN0cmFpbnMpKSB7XG4gICAgICAgICAgICByb2xlQ29uc3RyYWlucyA9IFtyb2xlQ29uc3RyYWluc107XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcm9sZUNvbnN0cmFpbnMubWFwKGNvbnN0cmFpbnQgPT4ge1xuICAgICAgICAgICAgaWYgKCFjb25zdHJhaW50LnJvbGVJZCB8fCAhY29uc3RyYWludC5wcm9jZXNzSWQpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1BsZWFzZSBlbnRlciBib3RoIHByb2Nlc3MgYW5kIHJvbGUgaWQgZm9yIGEgcm9sZSBjb25zdHJhaW50OiAnICsgY29uc3RyYWludCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4ge3Byb2Nlc3NJZGVudGlmaWVyOiBjb25zdHJhaW50LnByb2Nlc3NJZCwgcm9sZUlkZW50aWZpZXI6IGNvbnN0cmFpbnQucm9sZUlkfTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZWNpZGVBY2Nlc3NCeVJvbGUoY29uc3RyYWludDogUm9sZUNvbnN0cmFpbnQpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKGNvbnN0cmFpbnQucm9sZUlkZW50aWZpZXIpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl91c2VyU2VydmljZS5oYXNSb2xlQnlJZGVudGlmaWVyKGNvbnN0cmFpbnQucm9sZUlkZW50aWZpZXIsIGNvbnN0cmFpbnQucHJvY2Vzc0lkZW50aWZpZXIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3VzZXJTZXJ2aWNlLmhhc1JvbGVCeU5hbWUoY29uc3RyYWludC5yb2xlTmFtZSwgY29uc3RyYWludC5wcm9jZXNzSWRlbnRpZmllcik7XG4gICAgICAgIH1cbiAgICB9XG5cbn1cbiJdfQ==